Правилата за безбедност на Firebase обезбедуваат грануларен механизам насилен од серверот за заштита на податоците во Firestore, База на податоци во реално време и складирање во облак [S1]. Бидејќи апликациите Firebase често комуницираат со овие облак услуги директно од страната на клиентот, овие правила ја претставуваат единствената бариера што спречува неовластен пристап до податоците за заднината [S1].
Влијание на попустливите правила
Погрешно конфигурираните правила може да доведат до значителна изложеност на податоци [S2]. Ако правилата се поставени да бидат премногу попустливи - на пример, со користење на стандардните поставки за „тест режим“ што овозможуваат глобален пристап - секој корисник со познавање на проектниот проект може да ја чита, менува или брише целата содржина на базата на податоци [S2]. Ова ги заобиколува сите безбедносни мерки на клиентот и може да резултира со губење на чувствителни информации за корисникот или целосно прекинување на услугата [S2].
Основна причина: недоволна логика за авторизација
Основната причина за овие пропусти е обично неуспехот да се имплементираат специфични услови кои го ограничуваат пристапот врз основа на идентитетот на корисникот или атрибутите на ресурсите [S3]. Програмерите често ги оставаат стандардните конфигурации активни во производствените средини кои не го потврдуваат објектот request.auth [S3]. Без евалуација на request.auth, системот не може да прави разлика помеѓу легитимен автентификуван корисник и анонимен барател [S3].
Техничка санација
Обезбедувањето на околината Firebase бара премин од отворен пристап до модел со главна најмала привилегија.
- Спроведување на автентикација: Осигурете се дека сите чувствителни патеки бараат валидна корисничка сесија со проверка дали објектот
request.authне е нула [S3]. - Имплементирајте пристап заснован на идентитет: Конфигурирајте правила што го споредуваат UID на корисникот (
request.auth.uid) со поле во документот или самиот ID на документот за да се осигурате дека корисниците можат да пристапат само до нивните сопствени податоци [S3]. - Грануларен опсег на дозвола: Избегнувајте глобални џокери за збирки. Наместо тоа, дефинирајте специфични правила за секоја колекција и под-колекција за да ја минимизирате потенцијалната површина за напад [S2].
- Валидација преку Suite за емулатори: Користете го Firebase Emulator Suite за да ги тестирате безбедносните правила локално. Ова овозможува проверка на логиката за контрола на пристап против различни кориснички личности пред да се распореди во живо опкружување [S2].
Како FixVibe тестира за него
FixVibe сега го вклучува ова како BaaS скенирање само за читање. baas.firebase-rules ја извлекува конфигурацијата Firebase од пакетите JavaScript од исто потекло, вклучувајќи ги модерните облици на пакетите initializeApp(...), а потоа ги проверува Базата на податоци во реално време, Firestore и ZXETCVOKENFIXated со BXCVOKENFIX2 барања само за читање. За Firestore, прво се обидува со список на root колекции; кога огласот е блокиран, исто така ги испитува и вообичаените чувствителни имиња на збирки како што се users, accounts, customers, orders, users, messages, admin и settings. Пријавува само успешни анонимни читања или огласи и не запишува, брише или складира содржина на документите на клиентите.
