Hatás
A feltört API-k lehetővé teszik a támadók számára, hogy megkerüljék a felhasználói felületeket, és közvetlenül lépjenek kapcsolatba a háttéradatbázisokkal és -szolgáltatásokkal. [S1]. Ez az adatok jogosulatlan kiszűréséhez, a fiókok brutális erővel történő átvételéhez vagy az erőforrások kimerülése miatti elérhetetlenséghez vezethet. [S3][S5].
Kiváltó ok
Az elsődleges kiváltó ok a belső logika expozíciója olyan végpontokon keresztül, amelyek nem rendelkeznek kellő érvényesítéssel és védelemmel. [S1]. A fejlesztők gyakran azt feltételezik, hogy ha egy funkció nem látható a felhasználói felületen, az biztonságos, ami hibás hozzáférés-vezérléshez ([S2]) és megengedő CORS házirendekhez vezet, amelyek túl sok eredetben bíznak meg ([S4]).
Alapvető API biztonsági ellenőrzőlista
- Szigorú hozzáférés-szabályozás érvényesítése: Minden végpontnak ellenőriznie kell, hogy a kérelmező rendelkezik-e a megfelelő engedélyekkel az elért adott erőforráshoz [S2].
- Megvalósítási sebesség korlátozása: Védelem az automatizált visszaélések és a DoS támadások ellen azáltal, hogy korlátozza az ügyfél által adott időkereten belül benyújtható kérések számát. [S3].
- A CORS helyes konfigurálása: Kerülje a helyettesítő karakterek (
*) használatát a hitelesített végpontokhoz. Explicit módon határozza meg a megengedett eredeteket, hogy megakadályozza a helyek közötti adatszivárgást. [S4]. - A végpontok láthatósága: Rendszeresen keressen „rejtett” vagy nem dokumentált végpontokat, amelyek érzékeny funkciókat tehetnek közzé. [S1].
Hogyan teszteli a FixVibe
A FixVibe több élő ellenőrzésen keresztül lefedi ezt az ellenőrzőlistát. Az aktív kapujú szondák csak ellenőrzés után tesztelik a hitelesítési végpont-sebesség korlátozását, a CORS-t, a CSRF-et, az SQL-befecskendezést, az auth-flow gyengeségeket és más, API-vel kapcsolatos problémákat. A passzív ellenőrzések megvizsgálják a biztonsági fejléceket, a nyilvános API dokumentációt és az OpenAPI-expozíciót, valamint az ügyfélcsomagokban lévő titkokat. A repo-ellenőrzések kódszintű kockázatértékelést adnak a nem biztonságos CORS, a nyers SQL-interpoláció, a gyenge JWT-titkok, a csak dekódolható JWT használat, a webhook aláírási hiányosságok és a függőségi problémák miatt.
