Firebase Sigurnosna pravila obezbjeđuju granularni mehanizam koji provodi server za zaštitu podataka u Firestoreu, bazi podataka u realnom vremenu i Cloud Storageu [S1]. Budući da aplikacije Firebase često stupaju u interakciju s ovim uslugama u oblaku direktno sa strane klijenta, ova pravila predstavljaju jedinu prepreku koja sprječava neovlašteni pristup pozadinskim podacima [S1].
Uticaj permisivnih pravila
Pogrešno konfigurisana pravila mogu dovesti do značajnog izlaganja podataka [S2]. Ako su pravila postavljena da budu previše dopuštena – na primjer, korištenjem zadanih postavki 'test moda' koje dozvoljavaju globalni pristup - svaki korisnik koji poznaje ID projekta može pročitati, modificirati ili izbrisati cijeli sadržaj baze podataka [S2]. Ovo zaobilazi sve sigurnosne mjere na strani klijenta i može rezultirati gubitkom osjetljivih korisničkih informacija ili potpunim prekidom usluge [S2].
Osnovni uzrok: Nedovoljna logika autorizacije
Osnovni uzrok ovih ranjivosti je obično neuspjeh implementacije specifičnih uvjeta koji ograničavaju pristup na osnovu korisničkog identiteta ili atributa resursa [S3]. Programeri često ostavljaju zadane konfiguracije aktivne u proizvodnim okruženjima koje ne potvrđuju valjanost objekta request.auth [S3]. Bez evaluacije request.auth, sistem ne može razlikovati između legitimnog autentificiranog korisnika i anonimnog zahtjevatelja [S3].
Tehnička sanacija
Osiguravanje Firebase okruženja zahtijeva prelazak sa otvorenog pristupa na model principal-sa najmanje privilegija.
- Provedi autentifikaciju: Osigurajte da sve osjetljive staze zahtijevaju valjanu korisničku sesiju provjeravanjem da
request.authobjekat nije null [S3]. - Implementirajte pristup zasnovan 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 dozvola: Izbjegavajte globalne zamjenske znakove za kolekcije. Umjesto toga, definirajte specifična pravila za svaku kolekciju i podkolekciju kako biste minimizirali površinu potencijalnog napada [S2].
- Provjera valjanosti putem paketa emulatora: Koristite Firebase paket emulatora za lokalno testiranje sigurnosnih pravila. Ovo omogućava provjeru logike kontrole pristupa u odnosu na različite korisničke ličnosti prije implementacije u živo okruženje [S2].
Kako FixVibe testira za to
FixVibe sada uključuje ovo kao BaaS skeniranje samo za čitanje. baas.firebase-rules izvlači konfiguraciju Firebase iz JavaScript paketa istog porijekla, uključujući moderne initializeApp(...) oblike paketa, a zatim provjerava Realtime Database, Firestore i ZXCVFIXVIBETOKEN12 Storage učitano učitano sa učitanim zahtjevom za pohranu u uziZna-hentic. Za Firestore, prvo pokušava ispisati root kolekciju; kada je listing blokiran, takođe ispituje uobičajena osjetljiva imena kolekcija kao što su users, accounts, customers, orders, ZXCVFIXVICV, ZXCVFIXZVICV messages, admin i settings. Prijavljuje samo uspješna anonimna čitanja ili liste i ne piše, briše ili pohranjuje sadržaj dokumenata korisnika.
