Firebase drošības noteikumi nodrošina detalizētu, servera īstenotu mehānismu, lai aizsargātu datus pakalpojumā Firestore, Realtime Database un Cloud Storage [S1]. Tā kā Firebase lietojumprogrammas bieži mijiedarbojas ar šiem mākoņpakalpojumiem tieši no klienta puses, šie noteikumi ir vienīgais šķērslis, kas novērš nesankcionētu piekļuvi aizmugures datiem [S1].
Atļaujošo noteikumu ietekme
Nepareizi konfigurēti noteikumi var izraisīt ievērojamu datu ekspozīciju [S2]. Ja kārtulas ir iestatītas kā pārāk pieļaujamas, piemēram, izmantojot noklusējuma testa režīma iestatījumus, kas nodrošina globālu piekļuvi, jebkurš lietotājs, kuram ir zināšanas par projekta ID, var lasīt, modificēt vai dzēst visu datu bāzes saturu [S2]. Tas apiet visus klienta puses drošības pasākumus un var izraisīt sensitīvas lietotāja informācijas zudumu vai pilnīgu pakalpojuma pārtraukumu [S2].
Galvenais iemesls: Nepietiekama autorizācijas loģika
Šo ievainojamību galvenais iemesls parasti ir nespēja ieviest īpašus nosacījumus, kas ierobežo piekļuvi, pamatojoties uz lietotāja identitāti vai resursu atribūtiem [S3]. Izstrādātāji bieži atstāj aktīvas noklusējuma konfigurācijas ražošanas vidēs, kas neapstiprina request.auth objektu [S3]. Neizvērtējot request.auth, sistēma nevar atšķirt likumīgu autentificētu lietotāju un anonīmu pieprasītāju [S3].
Tehniskā sanācija
Lai nodrošinātu Firebase vidi, ir jāpāriet no atvērtas piekļuves uz modeli ar vismazākajām privilēģijām.
- Ieviest autentifikāciju: nodrošiniet, lai visiem sensitīviem ceļiem būtu nepieciešama derīga lietotāja sesija, pārbaudot, vai objekts
request.authnav nulles [S3]. - Ieviesiet uz identitāti balstītu piekļuvi: konfigurējiet kārtulas, kas salīdzina lietotāja UID (
request.auth.uid) ar lauku dokumentā vai pašu dokumenta ID, lai nodrošinātu, ka lietotāji var piekļūt tikai saviem datiem [S3]. - Granulārās atļaujas tvērums: izvairieties no globālām aizstājējzīmēm kolekcijās. Tā vietā definējiet īpašus noteikumus katrai kolekcijai un apakškolekcijai, lai samazinātu iespējamo uzbrukuma virsmu [S2].
- Validācija, izmantojot emulatora komplektu: izmantojiet Firebase emulatora komplektu, lai pārbaudītu drošības noteikumus lokāli. Tas ļauj pārbaudīt piekļuves kontroles loģiku pret dažādām lietotāju personām pirms izvietošanas dzīvajā vidē [S2].
Kā FixVibe to pārbauda
FixVibe tagad tas ietver tikai lasāmu BaaS skenēšanu. baas.firebase-rules izvelk Firebase konfigurāciju no vienas izcelsmes JavaScript komplektiem, tostarp modernām initializeApp(...) komplektu formām, pēc tam pārbauda reāllaika datu bāzi, Firestore un ZXCVFIXZVIBETOKEN12 ar nelasītiem unXCOKEN12 pieprasījumiem. Firestore vispirms izmēģina saknes kolekcijas sarakstu; kad saraksts ir bloķēts, tas arī pārbauda tādus izplatītus sensitīvus kolekciju nosaukumus kā users, accounts, customers, orders, ZXCVFIXZVIBETOK, messages, admin un settings. Tas ziņo tikai par veiksmīgiem anonīmiem lasījumiem vai sarakstiem un neraksta, nedzēš un neuzglabā klienta dokumentu saturu.
