FixVibe
Covered by FixVibehigh

Firebase Правілы бяспекі: прадухіленне несанкцыянаванага раскрыцця даных

Firebase Правілы бяспекі з'яўляюцца асноўнай абаронай бессерверных праграм, якія выкарыстоўваюць Firestore і Cloud Storage. Калі гэтыя правілы занадта дазвольныя, напрыклад, дазвол на глабальны доступ для чытання або запісу ў вытворчасці, зламыснікі могуць абыйсці прызначаную логіку прыкладання, каб скрасці або выдаліць канфідэнцыяльныя даныя. Гэта даследаванне даследуе распаўсюджаныя няправільныя канфігурацыі, рызыкі па змаўчанні ў «тэставым рэжыме» і тое, як рэалізаваць кантроль доступу на аснове ідэнтыфікацыйных дадзеных.

CWE-284CWE-863

Правілы бяспекі Firebase забяспечваюць дэталёвы механізм абароны даных у Firestore, базе даных у рэальным часе і воблачным сховішчы [S1], які забяспечваецца серверам. Паколькі прыкладанні Firebase часта ўзаемадзейнічаюць з гэтымі хмарнымі службамі непасрэдна з боку кліента, гэтыя правілы ўяўляюць сабой адзіны бар'ер, які прадухіляе несанкцыянаваны доступ да бэкэнд-дадзеных [S1].

Уплыў дазвольных правілаў

Няправільна настроеныя правілы могуць прывесці да значнага ўздзеяння даных [S2]. Калі правілы ўсталяваны празмерна дазвольнымі — напрыклад, пры выкарыстанні налад «тэставага рэжыму» па змаўчанні, якія дазваляюць глабальны доступ — любы карыстальнік, які ведае ідэнтыфікатар праекта, можа прачытаць, змяніць або выдаліць увесь змест базы дадзеных [S2]. Гэта дазваляе абысці ўсе меры бяспекі на баку кліента і можа прывесці да страты канфідэнцыйнай інфармацыі карыстальніка або поўнага збою ў абслугоўванні [S2].

Асноўная прычына: недастатковая логіка аўтарызацыі

Асноўнай прычынай гэтых уразлівасцяў звычайна з'яўляецца невыкананне пэўных умоў, якія абмяжоўваюць доступ на аснове ідэнтыфікацыі карыстальніка або атрыбутаў рэсурсу [S3]. Распрацоўшчыкі часта пакідаюць канфігурацыі па змаўчанні актыўнымі ў вытворчых асяроддзях, якія не правяраюць аб'ект request.auth [S3]. Без ацэнкі request.auth сістэма не можа адрозніць законнага аўтэнтыфікаванага карыстальніка ад ананімнага запытальніка [S3].

Тэхнічнае выпраўленне

Бяспека асяроддзя Firebase патрабуе пераходу ад адкрытага доступу да мадэлі прынцыпала з найменшымі прывілеямі.

  • Прымусовая аўтэнтыфікацыя: пераканайцеся, што для ўсіх канфідэнцыйных шляхоў патрабуецца сапраўдны сеанс карыстальніка, правяраючы, ці не з'яўляецца аб'ект request.auth нулявым [S3].
  • Укараніць доступ на аснове ідэнтыфікацыі: наладзьце правілы, якія параўноўваюць UID карыстальніка (request.auth.uid) з полем у дакуменце або з самім ідэнтыфікатарам дакумента, каб карыстальнікі маглі атрымліваць доступ толькі да сваіх уласных даных [S3].
  • Падрабязны аб'ём дазволаў: пазбягайце глабальных падстаноўных знакаў для калекцый. Замест гэтага вызначце канкрэтныя правілы для кожнай калекцыі і падкалекцыі, каб мінімізаваць патэнцыйную паверхню атакі [S2].
  • Праверка з дапамогай Emulator Suite: выкарыстоўвайце Firebase Emulator Suite, каб праверыць правілы бяспекі лакальна. Гэта дазваляе праверыць логіку кіравання доступам у параўнанні з асобамі розных карыстальнікаў перад разгортваннем у жывым асяроддзі [S2].

Як FixVibe правярае гэта

FixVibe цяпер уключае гэта як сканаванне BaaS толькі для чытання. baas.firebase-rules здабывае канфігурацыю Firebase з пакетаў JavaScript таго ж паходжання, уключаючы сучасныя формы пакетаў initializeApp(...), затым правярае базу дадзеных у рэальным часе, Firestore і сховішча Firebase з дапамогай неаўтэнтыфікаваных запытаў толькі для чытання. Для Firestore ён спачатку спрабуе пералічыць каранёвую калекцыю; калі спіс заблакіраваны, ён таксама правярае агульныя канфідэнцыяльныя назвы калекцый, такія як users, accounts, customers, orders, payments, messages, admin і settings. Ён паведамляе толькі пра паспяховыя ананімныя чытанні або спісы і не запісвае, не выдаляе і не захоўвае змесціва дакументаў кліента.