Правілы бяспекі 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. Ён паведамляе толькі пра паспяховыя ананімныя чытанні або спісы і не запісвае, не выдаляе і не захоўвае змесціва дакументаў кліента.
