Sigurnosna pravila Firebase pružaju granularni mehanizam koji provodi poslužitelj za zaštitu podataka u Firestoreu, bazi podataka u stvarnom vremenu i pohrani u oblaku [S1]. Budući da aplikacije Firebase često komuniciraju s ovim uslugama u oblaku izravno sa strane klijenta, ova pravila predstavljaju jedinu prepreku koja sprječava neovlašteni pristup pozadinskim podacima [S1].
Utjecaj dopuštenih pravila
Pogrešno konfigurirana pravila mogu dovesti do značajnog izlaganja podataka [S2]. Ako su pravila postavljena kao pretjerano dopuštena—na primjer, koristeći zadane postavke 'testnog načina rada' koje dopuštaju globalni pristup—svaki korisnik sa znanjem ID-a projekta može čitati, mijenjati ili brisati cijeli sadržaj baze podataka [S2]. Time se zaobilaze sve sigurnosne mjere na strani klijenta i može rezultirati gubitkom osjetljivih korisničkih podataka ili potpunim prekidom usluge [S2].
Glavni uzrok: Nedovoljna logika autorizacije
Glavni uzrok ovih ranjivosti obično je neuspjeh u implementaciji specifičnih uvjeta koji ograničavaju pristup na temelju korisničkog identiteta ili atributa resursa [S3]. Programeri često ostavljaju aktivne zadane konfiguracije u proizvodnim okruženjima koja ne potvrđuju request.auth objekt [S3]. Bez evaluacije request.auth, sustav ne može razlikovati legitimnog autentificiranog korisnika i anonimnog podnositelja zahtjeva [S3].
Tehnička sanacija
Osiguranje Firebase okruženja zahtijeva prelazak s otvorenog pristupa na model principal-of-least-privilege.
- Nametni autentifikaciju: Osigurajte da svi osjetljivi putovi zahtijevaju važeću korisničku sesiju provjerom nije li objekt
request.authnull [S3]. - Implementirajte pristup temeljen na identitetu: Konfigurirajte pravila koja uspoređuju korisnički UID (
request.auth.uid) s poljem unutar dokumenta ili sam ID dokumenta kako biste osigurali da korisnici mogu pristupiti samo svojim podacima [S3]. - Granularni opseg dopuštenja: Izbjegavajte globalne zamjenske znakove za zbirke. Umjesto toga, definirajte posebna pravila za svaku zbirku i pod-kolekciju kako biste smanjili potencijalnu površinu napada [S2].
- Validacija putem Emulator Suite-a: Koristite Firebase Emulator Suite za lokalno testiranje sigurnosnih pravila. To omogućuje provjeru logike kontrole pristupa u odnosu na različite korisničke osobe prije postavljanja u živo okruženje [S2].
Kako FixVibe to testira
FixVibe sada uključuje ovo kao BaaS skeniranje samo za čitanje. baas.firebase-rules izdvaja konfiguraciju Firebase iz JavaScript paketa istog porijekla, uključujući moderne oblike paketa initializeApp(...), zatim provjerava bazu podataka u stvarnom vremenu, Firestore i Firebase pohranu s neautentificiranim zahtjevima samo za čitanje. Za Firestore, prvo pokušava ispisati root zbirku; kada je popis blokiran, također ispituje uobičajena osjetljiva imena kolekcija kao što su users, accounts, customers, orders, payments, messages, admin i settings. Izvještava samo o uspješnim anonimnim čitanjima ili popisima i ne piše, briše niti pohranjuje sadržaje korisničkih dokumenata.
