Pravidlá zabezpečenia Firebase poskytujú podrobný, serverom vynútený mechanizmus na ochranu údajov vo Firestore, databáze v reálnom čase a cloudovom úložisku [S1]. Keďže aplikácie Firebase často interagujú s týmito cloudovými službami priamo zo strany klienta, tieto pravidlá predstavujú jedinú bariéru, ktorá bráni neoprávnenému prístupu k backendovým dátam [S1].
Vplyv povolených pravidiel
Nesprávne nakonfigurované pravidlá môžu viesť k značnému vystaveniu údajov [S2]. Ak sú pravidlá nastavené ako príliš tolerantné – napríklad pomocou predvolených nastavení „testovacieho režimu“, ktoré umožňujú globálny prístup – môže čítať, upravovať alebo vymazávať celý obsah databázy [S2] každý používateľ so znalosťou ID projektu. Tým sa obchádzajú všetky bezpečnostné opatrenia na strane klienta a môže to viesť k strate citlivých informácií o používateľovi alebo úplnému prerušeniu služby [S2].
Hlavná príčina: Nedostatočná autorizačná logika
Hlavnou príčinou týchto zraniteľností je zvyčajne zlyhanie pri implementácii špecifických podmienok, ktoré obmedzujú prístup na základe identity užívateľa alebo atribútov prostriedkov [S3]. Vývojári často nechávajú aktívne predvolené konfigurácie v produkčných prostrediach, ktoré neoverujú objekt request.auth [S3]. Bez vyhodnotenia request.auth systém nedokáže rozlíšiť medzi legitímnym overeným používateľom a anonymným žiadateľom [S3].
Technická náprava
Zabezpečenie prostredia Firebase vyžaduje prechod z otvoreného prístupu na model princípu s najnižším privilégiom.
- Vynútiť autentifikáciu: Zabezpečte, aby všetky citlivé cesty vyžadovali platnú reláciu používateľa kontrolou, či objekt
request.authnie je prázdny [S3]. - Implementácia prístupu na základe identity: Nakonfigurujte pravidlá, ktoré porovnávajú UID používateľa (
request.auth.uid) s poľom v dokumente alebo so samotným ID dokumentu, aby sa zabezpečilo, že používatelia budú mať prístup len k svojim vlastným údajom [S3]. - Granular Permission Scoping: Vyhnite sa globálnym zástupným znakom pre zbierky. Namiesto toho definujte špecifické pravidlá pre každú kolekciu a podzbierku, aby ste minimalizovali potenciálny povrch útoku [S2].
- Overenie cez Emulator Suite: Použite Firebase Emulator Suite na lokálne testovanie bezpečnostných pravidiel. To umožňuje overenie logiky riadenia prístupu voči rôznym používateľom pred nasadením do živého prostredia [S2].
Ako to testuje FixVibe
FixVibe to teraz obsahuje ako skenovanie BaaS iba na čítanie. baas.firebase-rules extrahuje konfiguráciu Firebase zo zväzkov JavaScriptu rovnakého pôvodu, vrátane moderných tvarov zväzkov initializeApp(...), potom skontroluje databázu v reálnom čase, Firestore a ZXCVFIXVIBETOKEN12ZXhenticated Storage prečítané požiadavky. V prípade Firestore sa najprv pokúsi o výpis koreňovej kolekcie; keď je zoznam zablokovaný, testuje aj bežné citlivé názvy kolekcií, ako napríklad users, accounts, customers, orders, ZXCVFIXZXCEVOKEN,6 messages, admin a settings. Hlási iba úspešné anonymné čítania alebo zoznamy a nezapisuje, neodstraňuje ani neukladá obsah zákazníckych dokumentov.
