Security ng API

Ang Seguridad ng API ay Isang Problema sa Runtime. Hindi Ito Kailangang Maging Ganito

Bawat pull request Ang pagdaragdag o pagbabago ng isang endpoint ay nagbabago sa iyong API attack surface. Karamihan sa mga API security tool ay hindi napapansin hangga't hindi pa live ang endpoint na iyon at tumatanggap na ng trapiko. Sa panahong iyon, ang pag-aayos ay hindi na isang one-line na pagbabago sa isang code review, kundi isang incident response conversation.

Ang seguridad ng API ay ang kasanayan sa paghahanap at pagsasara ng mga panganib sa kung paano inilalantad ng isang aplikasyon ang mga endpoint nito: kung sino ang maaaring tumawag sa kanila, anong data ang ibinabalik nila, at kung ginagawa ba nila ang nakasaad sa dokumentasyon.

Karamihan sa mga tooling na ginawa para sa problemang ito ay sumusubok sa API habang tumatakbo, mula sa labas, sa parehong paraan na gagawin ng isang attacker. Gumagana ang pamamaraang iyon, ngunit gumagana lamang ito pagkatapos ma-deploy ang API. Xygeni tinatahak ang naunang landas: binabasa nito ang iyong source code at ang iyong ispesipikasyon ng API bago pa man umabot ang isang kahilingan sa endpoint.

Ang Apat na Paraan para Subukan ang Isang API, at Ang Sagot ng Bawat Isa

Karamihan sa mga programang pang-mature ay nagpapatakbo ng higit sa isa sa mga ito:

  • Static na pagsubok Sinusuri ang mga detalye ng source code at API bago i-deploy. Sinasagot nito ang "ano ang kakalabas lang natin?" Ito ang pamamaraang pinagtutuunan ng pansin ng artikulong ito.
  • Dinamikong pagsubok (DAST) Nagpapadala ng totoong trapiko sa isang tumatakbong API at inoobserbahan kung paano ito tumutugon. Sinasagot nito ang "ano ang talagang maaabot at magagamit ngayon?" 
  • Naglalabo Naghahagis ng mga maling porma o hindi inaasahang input sa mga endpoint patungo sa mga surface crash at edge-case failure. Sinasagot nito ang "ano ang nasisira sa ilalim ng input na hindi natin inaasahan?"
  • Manu-manong pagsubok sa pagtagos Nagdaragdag ito ng paghatol ng tao upang mahanap ang mga kapintasan sa lohika na hindi napapansin ng mga awtomatikong tool. Sinasagot nito ang "ano ang pagsasama-samahin ng isang matalinong attacker?"

Wala sa mga ito ang pumapalit sa iba. Sinasagot nila ang iba't ibang tanong sa iba't ibang punto sa lifecycle, at ang agwat na mayroon ang karamihan sa mga programa ay ang una.

Bakit Karamihan sa mga API Security Tool ay Huli na ang Pagkakita sa Panganib

Ang pagsubok sa seguridad ng Runtime API ay nagpapadala ng trapiko sa isang live na aplikasyon at binabantayan kung paano ito tumutugon. Ito ay isang lehitimo at kinakailangang layer. Ito rin, sa konstruksyon, ay isang lagging indicator: ang isang endpoint ay kailangang umiral, ma-deploy, at maabot bago makapagsalita ang isang runtime scanner tungkol dito. Anuman ang matuklasan nito ay nakalantad na kahit gaano katagal tumakbo ang scan.

May pangalawang puwang sa ilalim ng problemang iyon sa timing. Ang mga runtime tool ay maaari lamang sumubok sa kung ano ang alam nilang umiiral. Kung ang isang endpoint ay hindi kailanman naidokumento, o ang OpenAPI spec ay luma na sa oras na may nagpadala ng isang bagong ruta, ang isang runtime scanner ay walang paraan upang malaman na naroon ito. Sinusubukan nito ang mapa, hindi ang teritoryo.

Tinatakpan ng static API security testing ang parehong puwang sa pamamagitan ng paglipat ng check sa kung saan tinukoy ang endpoint: ang iyong code at ang iyong API specification, bago ang deployment. pull request na nagpapakilala ng isang endpoint ay ang pull request na nagpapakita ng panganib nito.

Ang Tunay na Kahulugan ng Static API Security

Binubuo ng Xygeni ang iyong imbentaryo ng API mula sa dalawang pinagmumulan: ang source code ng iyong aplikasyon at ang mga detalye ng iyong API, kabilang ang OpenAPI at Swagger.

Ipinapakita ng isang spec-only inventory ang mga endpoint na naalala ng isang tao na idokumento. Ipinapakita naman ng isang code-only inventory kung ano ang umiiral ngunit hindi kinakailangan kung paano ito nilalayong gamitin. Ang pagbabasa ng pareho ay magbibigay sa iyo ng kumpletong larawan: ang mga endpoint na idinokumento ng iyong mga koponan, at ang mga walang gumawa nito.

Ang imbentaryong iyon ang pundasyon ng lahat ng iba pa:

  • Kabuuang mga API na natuklasan, at mga asset na nasa panganib na sinukat laban sa isang baseline
  • Mga endpoint na pinaghiwa-hiwalay ayon sa HTTP method
  • Mga isyung nakapangkat ayon sa serbisyo
  • Ang bawat endpoint kasama ang pamamaraan, landas, serbisyo, modyul, estado ng pagpapatotoo at marka ng peligro nito

Nakikita ng iyong mga engineering lead ang hugis ng iyong API surface nang hindi nagbubukas ng kahit isang ticket.

Ang bawat endpoint na natagpuan ng Xygeni, kasama ang pamamaraan, estado ng pagpapatotoo, at marka ng panganib nito, ay binuo mula sa code at ispesipikasyon nang magkasama.

Production note I-crop ang AI Triage panel mula sa anumang screenshot ng API Security.

Naka-map sa OWASP API Security Top 10

Ang mga natuklasan ay nagpapakita ng balangkas na ginagamit na ng inyong mga security team at ng inyong mga auditor. Natutukoy ng Xygeni ang panganib sa buong OWASP API Security. Nangungunang 10 (2023):

OWASP Panganib Ano ang ibig sabihin nito sa pagsasanay
API1 Sirang Object Level Authorization Ang isang endpoint ay nagbabalik o nagbabago ng data na pagmamay-ari ng ibang user o tenant
API2 Mga hindi na-authenticate na endpoint Maaabot ang isang ruta nang walang anumang pagpapatotoo
API3 Labis na pagkakalantad sa datos Ang tugon ay nagbabalik ng mas maraming field kaysa sa kailangan o dapat makita ng tumatawag
API3 assignment ng misa Tinatanggap at inilalapat ng isang endpoint ang mga field na hindi nito kailanman nilayong tanggapin
API3 / API10 Sensitibong datos sa mga tugon Ang PII, PCI o PHI ay nakakarating sa kliyente mula sa isang endpoint na hindi dapat magpadala nito
API4 Mga nawawalang limitasyon sa rate Walang proteksyon ang isang endpoint laban sa pang-aabuso o mga brute-force na tawag
API5 Awtorisasyon sa Antas ng Sirang Function Ang isang endpoint ay nagsasagawa ng isang privileged action nang hindi tinitingnan kung pinapayagan ang tumatawag na
API7 SSRF Maaaring malinlang ang API sa paggawa ng mga kahilingan sa ngalan ng umaatake
API8 Maling pag-configure ng JWT Hindi tama ang pagkaka-set up ng pagpapatunay, paglagda, o pag-expire ng token
API8 Maling pag-configure ng CORS Ang mga patakaran sa cross-origin ay sapat na mapagpahintulot upang maging mapagsamantalahan
API9 Mga endpoint ng zombie at ulila Mga rutang hindi na ginagamit o nakalimutan na naaabot pa rin, at mga rutang walang nagmamay-ari

May isang kategoryang sadyang wala. Ang API6, o Unrestricted Access to Sensitive Business Flows, ay nangangailangan ng pag-unawa sa kung ano ang dapat pahintulutan ng isang proseso ng negosyo, at walang static analyzer ang makakapag-detect nito nang may kredibilidad. Anumang vendor na nagsasabing hindi ay nagbebenta sa iyo ng checkbox. Ang isa ay mananatili sa iyong threat modeling at iyong mga penetration tester.

Hindi Lahat ng Natuklasan ay Pantay: Sensitivity ng Datos at mga Nakalalasong Kumbinasyon

Ang isang patag na listahan ng mga natuklasan ay tinatrato ang isang hindi na-authenticate na endpoint ng health-check kapareho ng isang hindi na-authenticate na endpoint na nagbabalik ng mga rekord ng customer. Hindi pareho ang mga problemang iyon, at ang isang modelo ng pagbibigay-priyoridad na nagbibigay ng parehong marka sa mga ito ay sinasanay ang iyong mga koponan na huwag pansinin ang listahan.

Inuuri ng Xygeni ang datos na hinahawakan ng bawat endpoint, minamarkahan ang PII, PCI at PHI sa mga parameter ng kahilingan at sa mga tugon, at ipinapares iyon sa estado ng pagpapatotoo ng endpoint.

Iniuugnay din nito ang mga natuklasang napupunta sa iisang endpoint at pinapataas ang kalubhaan kapag lumalala ang mga ito. Ang isang PII leak sa isang tugon ay isang seryosong natuklasan sa sarili nito. Ang parehong leak sa isang endpoint na hindi nangangailangan ng authentication ay kritikal, at binibigyan ito ng marka ng platform sa ganoong paraan sa halip na iwanan ang koneksyon para mano-manong mapansin ng iba.

Mga Endpoint ng Zombie at Ulila: Ang Pag-agos sa Pagitan ng Code at Spec

Dahil sabay na binabasa ng Xygeni ang iyong code at ang iyong API specification, nakikita nito kung saan sila hindi magkasundo. Ang pagkakaibang iyon ay lumalabas bilang tatlong makikilalang pattern:

  • Mga hindi dokumentadong endpoint. Nakatira sila sa code at hindi kailanman idinagdag sa spec.
  • Mga endpoint ng zombie. Minarkahan ang mga ito bilang hindi na ginagamit o hindi na ginagamit, at maaabot pa rin ang mga ito.
  • Mga ulilang endpoint. Walang sinuman sa kasalukuyang koponan ang nagmamay-ari ng mga ito.

Wala sa mga ito ang lumalabas sa imbentaryo na para lamang sa mga detalye, dahil ang detalye mismo ang kulang sa mga ito.

Ebidensyang Maaari Mong Pag-aralan, Hindi Isang Tiket para Mag-imbestiga

Ang bawat natuklasan ay nakaturo sa eksaktong handler na responsable: ang file, ang klase, ang pamamaraan, at ang partikular na linya na nagdulot ng depekto, kasama ang lumalabag na code na ipinakita sa tabi nito. Ang bawat isa ay mayroon ding sariling kalubhaan, ang kategoryang OWASP API Security Top 10, ang CWE nito, ang estado ng pagpapatotoo ng endpoint, at ang sensitivity classification ng data na kasangkot.

Ang isang natuklasan na nagpapangalan lamang ng isang endpoint ay nagpapadala sa isang developer na maghanap sa codebase bago pa man nila masimulang ayusin ang anuman. Ang isang natuklasan na nagpapangalan sa linya ay agad na maglalagay sa kanila sa pag-aayos.

Ang mga natuklasan ay ine-export bilang JSON, CSV, Markdown at SARIF 2.1.0, kaya't napupunta ang mga ito sa tNagtutulungan na ang mga team ninyo. 

Ang handler, ang linya, at ang code na nagpakilala ng exposure. Hindi ito isang tiket para mag-imbestiga.

Bakit Ito Nabubuhay sa Iisang Plataporma, Hindi sa Ibang Console

Kasama ng Xygeni ang API Security SAST, SCA, Mga Lihim na Seguridad, IaC at dast sa loob ng iisang plataporma, na may kaugnayan sa pamamagitan ng ASPM, sa halip na ipadala ito bilang isang hiwalay na kagamitan na may sarili nitong login at ang sarili nitong backlog.

Mahalaga iyon dahil ang mga static finding at runtime finding ay sumasagot sa magkakaibang tanong tungkol sa iisang endpoint, at mas kapaki-pakinabang ang mga ito nang magkasama kaysa sa magkahiwalay. Sinasabi sa iyo ng static na mapanganib ang isang endpoint bago ito ipadala. Kinukumpirma ng DAST kung ano ang talagang maaabot at magagamit kapag ito ay tumatakbo na.

Kung hahatiin iyan sa dalawang console, ang magkakaugnay na panganib ay magiging dalawang hindi magkaugnay na backlog. Walang sinuman ang makakapagtugma sa mga ito, at ang endpoint na parehong hindi dokumentado at hindi authenticated ay wala sa alinmang pila.

Tingnan ang iyong tunay na API attack surface. Ang Seguridad ng API ay magagamit bilang isang Enterprise add-on sa platform ng Xygeni, at isang scan ang isinasagawa laban sa sarili mong mga repository sa loob ng sarili mong imprastraktura.

FAQ

Masasabi ba nito kung aling mga endpoint ang humahawak ng sensitibong data?

Oo. Nilalagyan ng marka ng Xygeni ang PII, PCI at PHI sa mga parameter at tugon ng endpoint, at ginagamit ang klasipikasyong iyon upang i-ranggo ang mga natuklasan ayon sa totoong pagkakalantad.

Maaari ba itong tumakbo sa bawat pull request?

Oo. Sinusuri lamang ng incremental scanning ang mga endpoint na nagbago, at ang manifest na nalilikha nito ay maaaring mag-focus ng kasunod na DAST scan sa mga parehong endpoint na iyon, kaya ang static at runtime testing ay mananatiling nakahanay sa kung ano talaga ang lumipat.

Aalis ba ang aking code sa aking kapaligiran?

Hindi. Ang mga scan ay tumatakbo sa sarili mong imprastraktura. Tanging ang mga resulta lamang ang ina-upload, pinoprotektahan habang dinadala at habang hindi iniimbak.

Paano ako makakakuha ng Seguridad ng API?

Ang Seguridad ng API ay magagamit bilang isang Enterprise add-on. Humingi ng PoC at ito ay susuriin kasama mo.

mga tool sa pagsusuri ng komposisyon ng software ng mga tool sa sca
Unahin, ayusin, at i-secure ang mga panganib ng iyong software
Kunin ang Iyong Libreng Account.
Walang kinakailangang credit card.

I-secure ang Iyong Pag-develop at Paghahatid ng Software

kasama ang Xygeni Product Suite