FixVibe
Covered by FixVibehigh

Firebase Varnostna pravila: Preprečevanje nepooblaščene izpostavljenosti podatkov

Varnostna pravila Firebase so primarna obramba za brezstrežniške aplikacije, ki uporabljajo Firestore in Cloud Storage. Ko so ta pravila preveč permisivna, na primer dovoljevanje globalnega dostopa za branje ali pisanje v produkciji, lahko napadalci zaobidejo predvideno logiko aplikacije in ukradejo ali izbrišejo občutljive podatke. Ta raziskava raziskuje pogoste napačne konfiguracije, tveganja privzetih nastavitev v 'testnem načinu' in kako implementirati nadzor dostopa na podlagi identitete.

CWE-284CWE-863

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.auth ni 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.