FixVibe
Covered by FixVibehigh

Firebase Sigurnosna pravila: Sprečavanje neovlaštenog izlaganja podataka

Firebase Sigurnosna pravila su primarna odbrana za aplikacije bez servera koje koriste Firestore i Cloud Storage. Kada su ova pravila previše dopuštena, kao što je omogućavanje globalnog pristupa za čitanje ili pisanje u proizvodnji, napadači mogu zaobići predviđenu logiku aplikacije kako bi ukrali ili izbrisali osjetljive podatke. Ovo istraživanje istražuje uobičajene pogrešne konfiguracije, rizike zadanih postavki u 'test modu' i kako implementirati kontrolu pristupa zasnovanu na identitetu.

CWE-284CWE-863

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