FixVibe
Covered by FixVibehigh

Firebase Öryggisreglur: Koma í veg fyrir óleyfilega útsetningu gagna

Firebase Öryggisreglur eru aðal vörnin fyrir netþjónalaus forrit sem nota Firestore og Cloud Storage. Þegar þessar reglur eru of leyfilegar, eins og að leyfa alþjóðlegan les- eða skrifaðgang í framleiðslu, geta árásarmenn farið framhjá fyrirhugaðri umsóknarrökfræði til að stela eða eyða viðkvæmum gögnum. Þessi rannsókn kannar algengar rangstillingar, hættuna á vanskilum „prófunarhams“ og hvernig á að innleiða auðkennismiðaða aðgangsstýringu.

CWE-284CWE-863

Firebase öryggisreglur bjóða upp á kornótt, framfylgt kerfi fyrir netþjóna til að vernda gögn í Firestore, rauntímagagnagrunni og skýjageymslu [S1]. Vegna þess að Firebase forrit hafa oft samskipti við þessar skýjaþjónustur beint frá viðskiptavininum, eru þessar reglur eina hindrunin sem kemur í veg fyrir óviðkomandi aðgang að bakendagögnunum [S1].

Áhrif leyfilegra reglna

Rangstillingar reglur geta leitt til verulegrar útsetningar fyrir gögnum [S2]. Ef reglur eru stilltar til að vera of leyfilegar - til dæmis með því að nota sjálfgefnar „prófunarstillingar" sem leyfa alþjóðlegan aðgang - getur hver notandi með þekkingu á auðkenni verkefnisins lesið, breytt eða eytt öllu gagnagrunnsinnihaldinu [S2]. Þetta framhjá öllum öryggisráðstöfunum viðskiptavinar og getur leitt til taps á viðkvæmum notendaupplýsingum eða algerrar truflunar á þjónustu [S2].

Grunnorsök: Ófullnægjandi heimildarrökfræði

Uppistaðan fyrir þessum veikleikum er venjulega sú að ekki hefur tekist að innleiða sérstakar aðstæður sem takmarka aðgang á grundvelli notendaauðkennis eða auðlindareiginleika [S3]. Hönnuðir skilja oft sjálfgefnar stillingar eftir virkar í framleiðsluumhverfi sem staðfesta ekki request.auth hlutinn [S3]. Án þess að meta request.auth getur kerfið ekki greint á milli lögmæts auðkenndrar notanda og nafnlauss beiðanda [S3].

Tæknileg úrbætur

Til að tryggja Firebase umhverfi þarf að færa sig úr opnum aðgangi yfir í líkan með minnstu forréttindi.

  • Framfylgja auðkenningu: Gakktu úr skugga um að allar viðkvæmar slóðir krefjist gilda notandalotu með því að athuga hvort request.auth hluturinn sé ekki núll [S3].
  • Innleiða auðkennismiðaðan aðgang: Stilltu reglur sem bera saman UID notandans (request.auth.uid) við reit innan skjalsins eða skjalauðkennið sjálft til að tryggja að notendur hafi aðeins aðgang að eigin gögnum [S3].
  • Kynt leyfissvið: Forðastu alheimskort fyrir söfn. Í staðinn skaltu skilgreina sérstakar reglur fyrir hvert safn og undirsafn til að lágmarka hugsanlegt árásarflöt [S2].
  • Staðfesting í gegnum emulator Suite: Notaðu Firebase emulator Suite til að prófa öryggisreglur á staðnum. Þetta gerir kleift að sannreyna rökfræði aðgangsstýringar gegn ýmsum notendapersónum áður en það er dreift í lifandi umhverfi [S2].

Hvernig FixVibe prófar það

FixVibe inniheldur þetta nú sem skrifvarinn BaaS skönnun. baas.firebase-rules dregur út Firebase stillingar úr JavaScript búntum af sama uppruna, þar á meðal nútíma initializeApp(...) búntformum, athugar síðan rauntímagagnagrunn, Firestore og Firebase beiðni um lesið á ónautnlegan hátt. Fyrir Firestore reynir það fyrst rótasafnsskráningu; þegar skráning er læst rannsakar hún einnig algeng viðkvæm safnheiti eins og users, accounts, customers, orders, ZXCVFIXVIBETOKEN6ZXZCVI, ZXCVFIXVIBETOKEN6ZXZCVI, ZXCVC7. admin og settings. Það tilkynnir aðeins árangursríkan nafnlausan lestur eða skráningar og skrifar ekki, eyðir eða geymir innihald viðskiptavinaskjala.