FixVibe
Covered by FixVibehigh

Firebase Biztonsági szabályok: A jogosulatlan adatleadás megelőzése

A Firebase biztonsági szabályok jelentik az elsődleges védelmet a Firestore-t és a Cloud Storage-t használó kiszolgáló nélküli alkalmazások számára. Ha ezek a szabályok túlságosan megengedők, például globális olvasási vagy írási hozzáférést engedélyeznek az éles környezetben, a támadók megkerülhetik a tervezett alkalmazáslogikát érzékeny adatok ellopása vagy törlése érdekében. Ez a kutatás feltárja a gyakori hibás konfigurációkat, a „tesztmód” alapértelmezett kockázatait, és az identitásalapú hozzáférés-vezérlés megvalósítását.

CWE-284CWE-863

A Firebase biztonsági szabályok részletes, szerver által kényszerített mechanizmust biztosítanak a Firestore, a Realtime Database és a Cloud Storage [S1] adatainak védelmére. Mivel a Firebase alkalmazások gyakran közvetlenül az ügyféloldalról lépnek kapcsolatba ezekkel a felhőszolgáltatásokkal, ezek a szabályok jelentik az egyetlen akadályt, amely megakadályozza a [S1] háttéradatokhoz való jogosulatlan hozzáférést.

A megengedő szabályok hatása

A rosszul konfigurált szabályok jelentős adatlehetőséghez vezethetnek [S2]. Ha a szabályok túlságosan megengedőkre vannak állítva – például a globális hozzáférést lehetővé tevő alapértelmezett „tesztmód”-beállítások használatával –, a projektazonosítót ismerő bármely felhasználó elolvashatja, módosíthatja vagy törölheti a teljes adatbázis-tartalmat [S2]. Ez megkerül minden ügyféloldali biztonsági intézkedést, és érzékeny felhasználói adatok elvesztéséhez vagy a szolgáltatás teljes megszakadásához vezethet. [S2].

Kiváltó ok: Nem megfelelő engedélyezési logika

E sérülékenységek kiváltó oka általában a hozzáférést korlátozó, a felhasználói identitáson vagy a [S3] erőforrás-attribútumokon alapuló feltételek megvalósításának elmulasztása. A fejlesztők gyakran aktívan hagynak alapértelmezett konfigurációkat éles környezetben, amelyek nem érvényesítik a [S3] request.auth objektumot. A request.auth értékelése nélkül a rendszer nem tud különbséget tenni a jogos hitelesített felhasználó és a névtelen kérelmező között.

Műszaki helyreállítás

A Firebase környezet biztonságossá tételéhez a nyílt hozzáférésről a legkevesebb jogosultságot biztosító modellre kell áttérni.

  • Hitelesítés kényszerítése: Győződjön meg arról, hogy minden érzékeny elérési úthoz érvényes felhasználói munkamenet szükséges, ha ellenőrzi, hogy a request.auth objektum nem null [S3].
  • Identitásalapú hozzáférés megvalósítása: Olyan szabályok konfigurálása, amelyek összehasonlítják a felhasználó UID-jét (request.auth.uid) a dokumentumon belüli mezőkkel vagy magával a dokumentumazonosítóval, így biztosítva, hogy a felhasználók csak a saját adataikhoz férhessenek hozzá: [S3].
  • Granuláris engedélyek hatóköre: Kerülje a globális helyettesítő karaktereket a gyűjteményeknél. Ehelyett határozzon meg konkrét szabályokat minden egyes gyűjteményhez és algyűjteményhez, hogy minimalizálja a lehetséges támadási felületet [S2].
  • Érvényesítés az Emulator Suite segítségével: A biztonsági szabályok helyi teszteléséhez használja a Firebase Emulator Suite szoftvert. Ez lehetővé teszi a hozzáférés-vezérlési logika ellenőrzését különböző felhasználói személyekkel szemben, mielőtt éles környezetben telepítené a [S2].

Hogyan teszteli a FixVibe

A FixVibe ezt most csak olvasható BaaS szkennelésként tartalmazza. A baas.firebase-rules kibontja a Firebase konfigurációt azonos eredetű JavaScript-kötegekből, beleértve a modern initializeApp(...) köteg alakzatokat, majd ellenőrzi a Realtime Database-t, a Firestore-t és a ZXCVFIXZVIBETOKEN12-re beolvasott tárolási kéréssel. A Firestore esetében először a gyökérgyűjtemény-listával próbálkozik; ha a listázás le van tiltva, akkor az olyan gyakori érzékeny gyűjtemények neveit is megvizsgálja, mint a users, accounts, customers, orders, users, ZXCVFIXVIBETOKEN, messages, admin és settings. Csak a sikeres névtelen olvasásokat vagy listázásokat jelenti, és nem írja, törölje vagy tárolja az ügyféldokumentum tartalmát.