Zabezpečenie API

Zabezpečenie API bolo problémom za behu. Nemusí to tak byť

každý pull request Pridanie alebo zmena koncového bodu mení povrch útoku API. Väčšina nástrojov na zabezpečenie API si to nevšimne, kým daný koncový bod nie je aktívny a už nezačína prijímať prevádzku. V tom čase už oprava nie je len jednoriadková zmena v kontrole kódu, ale konverzácia o reakcii na incident.

Bezpečnosť API je prax hľadania a odstraňovania rizík v spôsobe, akým aplikácia odhaľuje svoje koncové body: kto ich môže volať, aké údaje vracajú a či robia to, čo je uvedené v dokumentácii.

Väčšina nástrojov vytvorených pre tento problém testuje API za behu, zvonku, rovnakým spôsobom ako útočník. Tento prístup funguje, ale funguje až po nasadení API. Xygeni zvolí skoršiu cestu: prečíta váš zdrojový kód a špecifikáciu API ešte predtým, ako sa jedna požiadavka dostane do koncového bodu.

Štyri spôsoby testovania API a odpovede každého z nich

Väčšina programov pre dospelých spúšťa viac ako jeden z týchto programov:

  • Statické testovanie analyzuje zdrojový kód a špecifikácie API pred nasadením. Odpovedá na otázku „čo sme práve odhalili?“. Na tento prístup sa tento článok zameriava.
  • Dynamické testovanie (DAST) odosiela skutočnú prevádzku do spusteného API a sleduje, ako reaguje. Odpovedá na otázku „čo je momentálne skutočne dosiahnuteľné a zneužiteľné?“. 
  • Fuzzing Vyvoláva chybný alebo neočakávaný vstup na koncových bodoch, čo vedie k povrchovým haváriám a zlyhaniam na okraji systému. Odpovedá na otázku „aké chyby pri vstupe sme nepredvídali?“.
  • Manuálne penetračné testovanie pridáva ľudský úsudok na nájdenie logických chýb, ktoré automatizované nástroje prehliadajú. Odpovedá na otázku „čo by inteligentný útočník spojil v reťazci?“

Žiaden z nich nenahrádza ostatné. Odpovedajú na rôzne otázky v rôznych bodoch životného cyklu a medzera, ktorú má väčšina programov, je práve v tej prvej.

Prečo väčšina nástrojov na zabezpečenie API vidí riziko príliš neskoro

Testovanie zabezpečenia runtime API odosiela prevádzku do živej aplikácie a sleduje, ako reaguje. Je to legitímna a nevyhnutná vrstva. Je tiež svojou konštrukciou indikátorom oneskorenia: koncový bod musí existovať, byť nasadený a dosiahnuteľný, aby o ňom runtime skener mohol čokoľvek povedať. Čokoľvek nájde, už bolo vystavené tak dlho, ako trvalo spustenie skenovania.

Pod týmto problémom s načasovaním sa skrýva druhá medzera. Runtime nástroje dokážu testovať iba to, o čom vedia, že existuje. Ak koncový bod nebol nikdy zdokumentovaný alebo špecifikácia OpenAPI zastarala v momente, keď niekto vydal novú trasu, runtime skener nemá ako zistiť, či tam je. Testuje mapu, nie územie.

Statické testovanie zabezpečenia API uzatvára obe medzery presunutím kontroly na miesto, kde je definovaný koncový bod: váš kód a špecifikácia API, pred nasadením. To isté pull request ktorý zavádza koncový bod, je pull request čo odhaľuje jeho riziko.

Čo vlastne znamená statické zabezpečenie API

Xygeni vytvára váš inventár API z dvoch zdrojov: zdrojového kódu vašej aplikácie a vašich špecifikácií API vrátane OpenAPI a Swagger.

Inventár iba špecifikácií zobrazuje koncové body, ktoré si niekto nezabudol zdokumentovať. Inventár iba kódu ukazuje, čo existuje, ale nie nevyhnutne ako sa to malo používať. Čítanie oboch vám poskytne ucelený obraz: koncové body, ktoré vaše tímy zdokumentovali, a tie, ktoré nikto neurobil.

Tento inventár je základom, na ktorom stavia všetko ostatné:

  • Celkový počet objavených API a rizikových aktív meraných v porovnaní s východiskovým stavom
  • Koncové body rozdelené podľa metódy HTTP
  • Problémy zoskupené podľa služby
  • Každý koncový bod s jeho metódou, cestou, službou, modulom, stavom autentifikácie a skóre rizika

Vaši inžinieri vidia tvar vášho API rozhrania bez toho, aby museli otvoriť jediný tiket.

Každý nájdený koncový bod Xygeni spolu s jeho metódou, stavom autentifikácie a skóre rizika bol zostavený z kódu a špecifikácie spoločne.

Production note Orežte panel AI Triage z ľubovoľnej snímky obrazovky zabezpečenia API.

Priradené k OWASP API Security Top 10

Zistenia hovoria o rámci, ktorý vaše bezpečnostné tímy a audítori už používajú. Xygeni detekuje riziká v rámci zabezpečenia rozhrania OWASP API. Najlepšie 10 (2023):

OWASP riziko Čo to znamená v praxi
API1 Autorizácia na úrovni poškodeného objektu Koncový bod vracia alebo upravuje údaje patriace inému používateľovi alebo nájomníkovi.
API2 Neoverené koncové body Trasa je dosiahnuteľná bez akejkoľvek autentifikácie
API3 Nadmerné vystavenie údajom Odpoveď vráti viac polí, než volajúci potrebuje alebo by mal vidieť
API3 Hromadné priradenie Koncový bod prijíma a používa polia, ktoré nikdy nemal prijímať
API3 / API10 Citlivé údaje v odpovediach PII, PCI alebo PHI sa ku klientovi dostanú z koncového bodu, ktorý by ich nemal odosielať.
API4 Chýbajúce limity sadzieb Koncový bod nemá žiadnu ochranu pred zneužitím alebo volaniami hrubou silou.
API5 Autorizácia na úrovni porušenej funkcie Koncový bod vykoná privilegovanú akciu bez overenia, či má volajúci povolenie na vykonanie
API7 SSRF API sa dá oklamať a zasielať požiadavky v mene útočníka.
API8 Nesprávna konfigurácia JWT Overenie, podpisovanie alebo expirácia tokenu je nesprávne nastavená
API8 Nesprávna konfigurácia CORS Pravidlá pre krížový pôvod sú dostatočne tolerantné na to, aby sa dali zneužiť
API9 Koncové body zombie a osirotených systémov Zastarané alebo zabudnuté trasy, ktoré sú stále dostupné, a trasy, ktoré nikto nevlastní

Jedna kategória zámerne chýba. API6, Neobmedzený prístup k citlivým obchodným tokom, vyžaduje pochopenie toho, čo má obchodný proces umožňovať, a žiadny statický analyzátor to dôveryhodne nedetekuje. Každý dodávateľ, ktorý tvrdí opak, vám predáva zaškrtávacie políčko. To zostáva u vášho modelovania hrozieb a vašich penetračných testerov.

Nie každé zistenie je rovnaké: Citlivosť údajov a toxické kombinácie

Plochý zoznam zistení zaobchádza s neovereným koncovým bodom kontroly stavu rovnako ako s neovereným koncovým bodom, ktorý vracia záznamy o zákazníkoch. Nie sú to rovnaké problémy a model prioritizácie, ktorý ich hodnotí identicky, naučí vaše tímy ignorovať zoznam.

Xygeni klasifikuje dáta, ktoré každý koncový bod spracováva, pričom v parametroch požiadavky a v odpovediach označuje PII, PCI a PHI a páruje ich so stavom autentifikácie koncového bodu.

Taktiež koreluje zistenia, ktoré sa nachádzajú na rovnakom koncovom bode, a zvyšuje závažnosť, keď sa sčítajú. Únik PII v odpovedi je sám o sebe vážnym zistením. Rovnaký únik na koncovom bode, ktorý nevyžaduje overenie, je kritický a platforma ho takto hodnotí namiesto toho, aby nechala pripojenie na niekoho, kto si ho všimne manuálne.

Koncové body Zombie a Osirelé: Drift medzi kódom a špecifikáciou

Keďže Xygeni číta váš kód a špecifikáciu API vedľa seba, vidí, kde sa nezhodujú. Tento odklon sa prejavuje tromi rozpoznateľnými vzormi:

  • Nedokumentované koncové body. Žijú v kóde a nikdy neboli pridané do špecifikácie.
  • Koncové body zombie. Sú označené ako zastarané alebo vyradené z prevádzky a stále sú dostupné.
  • Osirelé koncové body. Nikto v súčasnom tíme ich nevlastní.

Žiadna z nich sa nezobrazuje v inventári iba so špecifikáciou, pretože presne špecifikácia im chýba.

Dôkazy, na základe ktorých môžete konať, nie lístok na vyšetrovanie

Každý nález poukazuje na presný zodpovedný obslužný program: súbor, triedu, metódu a konkrétny riadok, ktorý spôsobil chybu, spolu s problematickým kódom vykresleným vedľa nej. Každý z nich má tiež svoju závažnosť, kategóriu OWASP API Security Top 10, svoju CWE, stav autentifikácie koncového bodu a klasifikáciu citlivosti príslušných údajov.

Zistenie, ktoré pomenuje iba koncový bod, prinúti vývojára prehľadávať kódovú základňu ešte predtým, ako vôbec začne niečo opravovať. Zistenie, ktoré pomenuje konkrétny bod, ho okamžite privedie k oprave.

Zistenia sa exportujú ako JSON, CSV, Markdown a SARIF 2.1.0, takže sa zobrazia vv ktorých vaše tímy už pracujú. 

Obslužný program, riadok a kód, ktorý zaviedol expozíciu. Nie je to tiket na vyšetrovanie.

Prečo toto existuje na jednej platforme, nie na inej konzole

Spoločnosť Xygeni prevádzkuje API Security popri SAST, SCA, Tajomstvá bezpečnosti, IaC a DAST v rámci jednej platformy, prepojenej prostredníctvom ASPM, namiesto toho, aby sa dodával ako samostatný nástroj s vlastným login a vlastné nevybavené záležitosti.

To je dôležité, pretože statické zistenia a zistenia za behu odpovedajú na rôzne otázky o tom istom koncovom bode a sú užitočnejšie spolu ako oddelene. Statické zistenia vám povie, že koncový bod je rizikový ešte pred jeho odoslaním. DAST potvrdzuje, čo je skutočne dosiahnuteľné a zneužiteľné, hneď ako je spustené.

Rozdelením tejto skutočnosti medzi dve konzoly sa korelované riziko stane dvoma nesúvisiacimi nevybavenými úlohami. Nikto ich nezjednocuje a koncový bod, ktorý je nezdokumentovaný aj neoverený, sa nenachádza v žiadnom z radov.

Pozrite si skutočnú plochu útoku na API. Zabezpečenie API je k dispozícii ako Enterprise doplnok k platforme Xygeni a skenovanie sa spustí proti vašim vlastným repozitárom v rámci vašej vlastnej infraštruktúry.

Často kladené otázky

Dokáže zistiť, ktoré koncové body spracovávajú citlivé údaje?

Áno. Spoločnosť Xygeni označuje PII, PCI a PHI v parametroch a odpovediach koncových bodov a túto klasifikáciu používa na zoradenie zistení podľa skutočnej expozície.

Môže to bežať na každom pull request?

Áno. Inkrementálne skenovanie analyzuje iba koncové body, ktoré sa zmenili, a manifest, ktorý vygeneruje, môže zamerať následné skenovanie DAST na tie isté koncové body, takže statické testovanie a testovanie za behu zostanú zarovnané s tým, čo sa skutočne zmenilo.

Opúšťa môj kód moje prostredie?

Nie. Skenovania prebiehajú vo vašej vlastnej infraštruktúre. Nahrávajú sa iba výsledky, ktoré sú chránené počas prenosu a v pokoji.

Ako získam zabezpečenie API?

Zabezpečenie API je k dispozícii ako Enterprise doplnok. Vyžiadajte si PoC a bude s vami prediskutovaný jeho rozsah.

nástroje na analýzu zloženia softvéru SCA
Stanovte si priority, odstraňujte a zabezpečte svoje softvérové ​​riziká
Získajte svoj bezplatný účet.
Nie je potrebná kreditná karta.

Zabezpečte si vývoj a dodávku softvéru

s produktovým balíkom Xygeni