Turvareeglid Firebase pakuvad üksikasjalikku serveri poolt jõustatavat mehhanismi andmete kaitsmiseks Firestore'is, reaalajas andmebaasis ja pilvmälustus [S1]. Kuna rakendused Firebase suhtlevad sageli nende pilveteenustega otse kliendi poolelt, on need reeglid ainus takistus, mis takistab volitamata juurdepääsu taustaandmetele [S1].
Lubavate reeglite mõju
Valesti konfigureeritud reeglid võivad põhjustada märkimisväärset andmete kokkupuudet [S2]. Kui reeglid on seatud liiga lubavateks – näiteks kasutades globaalset juurdepääsu lubavaid testrežiimi vaikesätteid –, saavad kõik projekti ID-d tundvad kasutajad lugeda, muuta või kustutada kogu andmebaasi sisu [S2]. See jätab kõrvale kõik kliendipoolsed turvameetmed ja võib põhjustada tundliku kasutajateabe kadumise või teenuse täieliku katkemise [S2].
Algpõhjus: ebapiisav autoriseerimisloogika
Nende haavatavuste algpõhjus on tavaliselt suutmatus rakendada konkreetseid tingimusi, mis piiravad juurdepääsu kasutaja identiteedi või ressursiatribuutide [S3] alusel. Arendajad jätavad sageli aktiivseks vaikekonfiguratsioonid tootmiskeskkondades, mis ei kinnita objekti request.auth [S3]. Ilma request.auth hindamata ei suuda süsteem eristada seaduslikku autentitud kasutajat ja anonüümset taotlejat [S3].
Tehniline heastamine
Firebase keskkonna turvamine eeldab üleminekut avatud juurdepääsult vähima privileegiga mudelile.
- Autentimise jõustamine: veenduge, et kõik tundlikud teed nõuavad kehtivat kasutajaseanssi, kontrollides, kas objekt
request.authpole null [S3]. - Rakendage identiteedipõhine juurdepääs: seadistage reeglid, mis võrdlevad kasutaja UID-d (
request.auth.uid) dokumendis oleva väljaga või dokumendi ID-ga, et tagada kasutajatele juurdepääs ainult oma andmetele [S3]. - Granulaarne loa ulatus: vältige kogude puhul globaalseid metamärke. Selle asemel määrake iga kogu ja alamkogu jaoks konkreetsed reeglid, et minimeerida võimalikku ründepinda [S2].
- Valideerimine emulaatorikomplekti kaudu: kasutage turbereeglite kohapealseks testimiseks Firebase emulaatorikomplekti. See võimaldab enne reaalajas keskkonda juurutamist [S2] juurdepääsukontrolli loogikat kontrollida erinevate kasutajaisikute suhtes.
Kuidas FixVibe seda testib
FixVibe sisaldab seda nüüd kirjutuskaitstud BaaS skannimisena. baas.firebase-rules eraldab Firebase konfiguratsiooni sama päritoluga JavaScripti kimpudest, sealhulgas moodsatest initializeApp(...) kimpude kujudest, seejärel kontrollib reaalajas andmebaasi, Firestore'i ja ZXCVFIXZXCVETOKEN12-loetud salvestustaotlusega. Firestore'i puhul proovib see esmalt juurkogude loendit; kui loend on blokeeritud, uurib see ka levinud tundlike kogude nimesid, nagu users, accounts, customers, orders, users, messages, admin ja settings. See teatab ainult edukatest anonüümsetest lugemistest või loenditest ning ei kirjuta, kustuta ega salvesta kliendi dokumentide sisu.
