
Az Autoswagger működése
Az Autoswagger egy ingyenes, nyílt forráskódú eszköz, amely automatizáltan vizsgálja az API-k dokumentációját (például az OpenAPI vagy Swagger sémát), és az abban található végpontokat teszteli. Érvényes paraméterekkel próbálkozik, és minden olyan végpontot megjelöl, amely megfelelő hozzáférés-ellenőrzés hiányában adatokat szolgáltat vissza – például, ha nem ad vissza 401-es vagy 403-as hibakódot. Amennyiben a válasz érzékeny adatokat (fiókadatokat, személyazonosító információkat) tartalmaz, és a végpont nincs megfelelően védve, az külön megjelenik az outputban.
Az Autoswagger letölthető és telepíthető, fejlettebb teszteléshez pedig a –brute kapcsolóval futtatható, amely megpróbálja megkerülni az ellenőrzéseket, így még több, speciálisabb hibát is feltárhat.
Valódi sérülékenységek – néhány meglepő példa
Az eszközt több nagyvállalati bug bounty programban is tesztelték, és számos valódi problémára bukkantak. Ennek ellenére a vállalatok nagy része azt hiszi, hogy API-jaik jól védettek.
Az egyik végponton keresztül például a Microsoft Partner Program rendszeréből szivárogtak ki adatok: egy konfigurációs API-n keresztül Redis-adatbázis elérési adatokhoz, valamint a partnerek nevét, képzéseit, tanúsítványait is tartalmazó személyes információkhoz lehetett hozzáférni. Az adott végpont olyan mélyen, hat réteggel lejjebb rejtőzött a mappastruktúrában, hogy kizárólag a nyilvános OpenAPI-séma miatt tudták feltérképezni.
Egy másik esetben egy nagy technológiai vállalat Salesforce API-ja engedett le 60 000 rekordot – névvel, elérhetőséggel és rendeléssel –, amelyeket a “ByDate” URL-paraméter variálásával lehetett csoportosan letölteni, egyszerre akár 1 000 rekordot.
Még extrémebb példa, amikor egy üdítőipari cég belső oktatási applikációja, amely Azure Functions-ben futott, bárki számára lehetővé tette SQL-lekérdezések futtatását – mindenféle autentikáció nélkül. Így belső munkatársak nevét, céges e-mail-címeit is kiszerezhette volna egy támadó egy célzott adathalász-kampányhoz.
Végül az Octopus Deploy-hoz kapcsolt Active Directory-integráció jelenléte is feltérképezhető volt egy API-végponton keresztül, akár bejelentkezés nélkül.
Nyílt dokumentáció = nyitott támadási felület?
Az automatizált API-dokumentáció a fejlesztőknek hasznos, de ugyanannyira megkönnyíti a támadók dolgát is. Ha az API-séma szabadon hozzáférhető, a támadónak szinte komplett térképe van minden végpontról, amit megcélozhat. Ezzel szemben dokumentáció híján a “vakon” próbálkozás sokkal időigényesebb. Ennek következtében a nyilvánossá tett, de valójában nem szükséges dokumentáció jelentős kockázatot hordoz. Az API-k legtöbb hibája olyan szolgáltatásokban jelent meg, amelyeket nem is terveztek nyilvánosnak – csak a dokumentáció szivárgott ki.
Az Intruder platform például folyamatosan pásztázza az API-végpontokat, hogy még időben felderítse az ilyen kritikus hibákat – mielőtt a támadók lépnek.