Varnostna pravila Firebase zagotavljajo razdrobljen, strežniško vsiljen mehanizem za zaščito podatkov v Firestore, Realtime Database in Cloud Storage [S1]. Ker aplikacije Firebase pogosto komunicirajo s temi storitvami v oblaku neposredno s strani odjemalca, ta pravila predstavljajo edino oviro, ki preprečuje nepooblaščen dostop do zalednih podatkov [S1].
Vpliv permisivnih pravil
Napačno konfigurirana pravila lahko povzročijo znatno izpostavljenost podatkov [S2]. Če so pravila nastavljena tako, da so preveč permisivna – na primer z uporabo privzetih nastavitev 'preizkusnega načina', ki omogočajo globalni dostop, lahko vsak uporabnik, ki pozna ID projekta, prebere, spremeni ali izbriše celotno vsebino baze podatkov [S2]. To zaobide vse varnostne ukrepe na strani odjemalca in lahko povzroči izgubo občutljivih uporabniških podatkov ali popolno prekinitev storitve [S2].
Temeljni vzrok: Nezadostna avtorizacijska logika
Glavni vzrok teh ranljivosti je običajno neuspeh pri izvajanju posebnih pogojev, ki omejujejo dostop na podlagi identitete uporabnika ali atributov vira [S3]. Razvijalci pogosto pustijo aktivne privzete konfiguracije v produkcijskih okoljih, ki ne preverjajo objekta request.auth [S3]. Brez ovrednotenja request.auth sistem ne more razlikovati med legitimnim overjenim uporabnikom in anonimnim zahtevnikom [S3].
Tehnična sanacija
Zaščita okolja Firebase zahteva prehod z odprtega dostopa na model principal-of-least-privilege.
- Uveljavi avtentikacijo: Zagotovite, da vse občutljive poti zahtevajo veljavno uporabniško sejo, tako da preverite, ali objekt
request.authni nič [S3]. - Implementirajte dostop na podlagi identitete: Konfigurirajte pravila, ki primerjajo uporabniški UID (
request.auth.uid) s poljem v dokumentu ali samim ID-jem dokumenta, da zagotovite, da lahko uporabniki dostopajo samo do svojih podatkov [S3]. - Granularno določanje obsega dovoljenj: Izogibajte se globalnim nadomestnim znakom za zbirke. Namesto tega določite posebna pravila za vsako zbirko in podzbirko, da zmanjšate potencialno površino napadov [S2].
- Preverjanje prek Emulator Suite: Uporabite Firebase Emulator Suite za lokalno testiranje varnostnih pravil. To omogoča preverjanje logike nadzora dostopa glede na različne osebnosti uporabnikov pred uvedbo v živo okolje [S2].
Kako ga FixVibe testira
FixVibe to zdaj vključuje kot skeniranje BaaS samo za branje. baas.firebase-rules izvleče konfiguracijo Firebase iz svežnjev JavaScript istega izvora, vključno s sodobnimi oblikami svežnjev initializeApp(...), nato preveri zbirko podatkov v realnem času, Firestore in shrambo Firebase z nepreverjenimi zahtevami samo za branje. Za Firestore najprej poskusi seznam korenske zbirke; ko je seznam blokiran, preišče tudi pogosta občutljiva imena zbirk, kot so users, accounts, customers, orders, payments, messages, admin in settings. Poroča samo o uspešnih anonimnih branjih ali seznamih in ne piše, briše ali shranjuje vsebine dokumentov strank.
