FixVibe
Covered by FixVibehigh

Firebase Segurtasun-arauak: baimenik gabeko datuen esposizioa saihestea

Firebase Segurtasun-arauak Firestore eta Cloud Storage erabiltzen dituzten zerbitzaririk gabeko aplikazioen defentsa nagusia dira. Arau hauek baimentsuegiak direnean, esaterako, ekoizpenean irakurtzeko edo idazteko sarbide globala baimentzea, erasotzaileek datu sentikorrak lapurtzeko edo ezabatzeko aurreikusitako aplikazio-logika saihestu dezakete. Ikerketa honek ohiko konfigurazio okerrak, "proba modua" lehenetsitako arriskuak eta identitatean oinarritutako sarbide-kontrola nola ezarri aztertzen ditu.

CWE-284CWE-863

Firebase Segurtasun-arauek zerbitzariak behartutako mekanismo zehatza eskaintzen dute Firestore, denbora errealeko datu-basea eta hodeiko biltegiratze-ko datuak babesteko [S1]. Firebase aplikazioek hodeiko zerbitzu hauekin zuzenean bezeroaren aldetik elkarreragiten dutenez, arau hauek [S1] backend datuetara baimenik gabeko sarbidea eragozten duen oztopo bakarra dira.

Arau baimenduen eragina

Gaizki konfiguratuta dauden arauek datuen esposizio garrantzitsua ekar dezakete [S2]. Arauak baimengarriegiak izateko ezartzen badira (adibidez, sarbide globala ahalbidetzen duten "proba modua" ezarpen lehenetsiak erabiliz), proiektuaren IDa ezagutzen duen edozein erabiltzailek datu-basearen eduki osoa irakurri, aldatu edo ezaba dezake [S2]. Horrek bezeroaren aldeko segurtasun-neurri guztiak saihesten ditu eta erabiltzailearen informazio sentikorra galtzea edo zerbitzu osoa eten dezake [S2].

Arrazoia: Baimen-logika nahikoa

Ahultasun hauen oinarrizko kausa normalean erabiltzailearen identitatearen edo baliabideen atributuetan oinarritutako sarbidea mugatzen duten baldintza zehatzak ez ezartzea izan ohi da [S3]. Garatzaileek maiz uzten dituzte aktibo lehenetsitako konfigurazioak request.auth [S3] objektua baliozkotzen ez duten ekoizpen-inguruneetan. request.auth ebaluatu gabe, sistemak ezin ditu bereizi autentifikatutako erabiltzaile legitimoa eta [S3] eskatzaile anonimo bat.

Konponketa teknikoa

Firebase ingurune bat ziurtatzeko sarbide irekitik pribilegio txikieneko eredu nagusi batera pasa behar da.

  • Beartu autentifikazioa: Ziurtatu bide sentikor guztiek baliozko erabiltzailearen saio bat behar dutela egiaztatuz request.auth objektua ez den [S3] nulua.
  • Identitatean oinarritutako sarbidea ezartzea: erabiltzailearen UID (request.auth.uid) dokumentuaren eremu batekin edo dokumentuaren IDarekin berarekin alderatzen duten arauak konfiguratu, erabiltzaileek beren datuak [S3] bakarrik atzi ditzaketela ziurtatzeko.
  • Baimen Granularra: saihestu komodin globalak bildumetarako. Horren ordez, zehaztu bilduma eta azpibilduma bakoitzeko arau zehatzak, [S2] eraso-azalera potentziala minimizatzeko.
  • Emulator Suite bidez baliozkotzea: Erabili Firebase Emulator Suite-a segurtasun-arauak lokalean probatzeko. Horri esker, sarbide-kontroleko logika egiaztatzea da hainbat erabiltzaile-pertsonen aurka [S2] zuzeneko ingurune batera zabaldu aurretik.

FixVibe probak nola egiten dituen

FixVibe-k irakurtzeko soilik den BaaS eskaneatu gisa sartzen du orain. baas.firebase-rules-k Firebase konfigurazioa ateratzen du jatorri bereko JavaScript sortetatik, initializeApp(...) sorta forma modernoak barne, eta, ondoren, denbora errealeko datu-basea, Firestore eta ZXCVFIXVIBETOKEN12 irakurketa-eskaerarik gabe egiaztatzen ditu. Firestore-rako, lehenik eta behin erro-bilduma zerrendatzen saiatzen da; zerrenda blokeatuta dagoenean, bildumaren izen sentikor arruntak aztertzen ditu, hala nola messages, admin eta settings. Irakurketa edo zerrenda anonimo arrakastatsuen berri ematen du eta ez du bezeroen dokumentuen edukia idazten, ezabatzen edo gordetzen.