Firebase Säkerhetsregler tillhandahåller en granulär, serverpåtvingad mekanism för att skydda data i Firestore, Realtime Database och Cloud Storage [S1]. Eftersom Firebase-applikationer ofta interagerar med dessa molntjänster direkt från klientsidan, representerar dessa regler den enda barriären som förhindrar obehörig åtkomst till backend-data [S1].
Inverkan av tillåtande regler
Felkonfigurerade regler kan leda till betydande dataexponering [S2]. Om regler är inställda på att vara alltför tillåtande – till exempel genom att använda standardinställningar för 'testläge' som tillåter global åtkomst – kan alla användare med kunskap om projekt-ID:t läsa, ändra eller ta bort hela databasinnehållet [S2]. Detta kringgår alla säkerhetsåtgärder på klientsidan och kan resultera i förlust av känslig användarinformation eller total avbrott i tjänsten [S2].
Rotorsak: Otillräcklig auktoriseringslogik
Grundorsaken till dessa sårbarheter är vanligtvis misslyckandet med att implementera specifika villkor som begränsar åtkomst baserat på användaridentitet eller resursattribut [S3]. Utvecklare lämnar ofta standardkonfigurationer aktiva i produktionsmiljöer som inte validerar request.auth-objektet [S3]. Utan att utvärdera request.auth kan systemet inte skilja mellan en legitim autentiserad användare och en anonym begärande [S3].
Teknisk sanering
Att säkra en Firebase-miljö kräver att man går från öppen åtkomst till en principal-of-minst-privilege-modell.
- Tvinga upp autentisering: Se till att alla känsliga sökvägar kräver en giltig användarsession genom att kontrollera om
request.auth-objektet inte är null [S3]. - Implementera identitetsbaserad åtkomst: Konfigurera regler som jämför användarens UID (
request.auth.uid) med ett fält i dokumentet eller själva dokument-ID:t för att säkerställa att användare endast kan komma åt sina egna data [S3]. - Granular Permission Scoping: Undvik globala jokertecken för samlingar. Definiera istället specifika regler för varje samling och undersamling för att minimera den potentiella attackytan [S2].
- Validering via Emulator Suite: Använd Firebase Emulator Suite för att testa säkerhetsregler lokalt. Detta möjliggör verifiering av logik för åtkomstkontroll mot olika användarpersoner innan de distribueras till en livemiljö [S2].
Hur FixVibe testar det
FixVibe inkluderar nu detta som en skrivskyddad BaaS-skanning. baas.firebase-rules extraherar Firebase-konfiguration från JavaScript-buntar med samma ursprung, inklusive moderna initializeApp(...)-buntformer, och kontrollerar sedan Realtime Database, Firestore och Firebase-begäran läs-på-på-äkta lagring. För Firestore försöker den först rotsamlingslistning; när listningen är blockerad undersöker den också vanliga känsliga samlingsnamn som users, accounts, customers, orders, ZXCVFIXVIBETOKEN6ZXZCVI, ZXCVFIXVIBETOKEN6ZXZVIXX, ZXCVCKEN6ZXZCVI, ZBEVC7 admin och settings. Den rapporterar endast framgångsrika anonyma läsningar eller listor och skriver, raderar eller lagrar inte kunddokumentinnehåll.
