// docs / baas security / umbrella scanner
BaaS-felkonfigurationsscanner: hitta publika datastigar innan användarna gör det
Backend-as-a-Service-leverantörer — Supabase, Firebase, Clerk, Auth0, Appwrite, Convex — fallerar alla säkerhetsmässigt i samma form: plattformen levererar vettiga defaults, utvecklaren (eller AI-kodningsverktyget) griper efter en genväg, och en publik stig öppnas mellan en oautentiserad angripare och kunddata. En BaaS-felkonfigurationsscanner är det enda verktyget som sonderar den stigen utifrån på samma sätt som en angripare skulle. Den här artikeln kartlägger de fem återkommande felkonfigurationsklasserna, förklarar hur FixVibes paraply-BaaS-skanning fungerar, jämför de fyra huvudleverantörerna och kontrasterar den BaaS-medvetna scannern mot generella DAST-verktyg.
Varför BaaS-felkonfigurationer har en återkommande form
Varje BaaS-plattform följer samma arkitektur: en hanterad backend med ett tunt klient-SDK som pratar med den från webbläsaren. Den webbläsarvända klienten behöver någon credential — en anon-nyckel, en publicerbar nyckel, ett Firebase-projekt-ID — för att identifiera sig mot backenden. Den credentialen är avsiktligt publik; arkitekturens säkerhet vilar på att åtkomstkontroller på plattformsnivå (RLS, rules, allowlists) gör sitt jobb.
AI-kodningsverktyg bygger ovanpå den här arkitekturen utan att internalisera plattformskontroll-lagret. De kopplar upp klient-SDK:t korrekt, accepterar plattformens default-tillåtande regler (som finns för handlednings-vänlighet) och levererar. Den återkommande formen är: publik credential + tillåtande default-regel + saknad åsidosättning = dataexponering. De fem felkonfigurationsklasserna nedan är alla varianter av denna form.
De fem återkommande felkonfigurationsklasserna
Dessa dyker upp över varje BaaS-leverantör. En komplett skanning täcker alla fem mot varje leverantör i bruk:
Klass 1: Fel nyckel i webbläsarbundlen
Webbläsaren levererar secret-/admin-nyckeln (Supabase service_role, Firebase Admin SDK private key, Clerk sk_*, Auth0 client secret) istället för den publika/anon-motsvarigheten. Webbläsaren blir en obegränsad admin-klient. Täcks av FixVibes bundle-secrets-check.
Klass 2: Åtkomstkontroll-lager inaktiverat eller tillåtande
RLS är av, Firebase-regler är if true, Auth0-callback-listan är wildcardad. Credentialen i webbläsaren är den korrekta — men plattformsnivå-gränsen som var tänkt att begränsa den gör inte sitt jobb.
Klass 3: Anonyma läsningar av känsliga resurser
Anonymt läsbara Firestore-collections, anonymt listbara Supabase storage-buckets, anonymt åtkomliga Auth0 management API. Skanningen frågar: "utan inloggningsuppgifter, vad kan jag läsa?"
Klass 4: Testlägesartefakter i produktion
Testnycklar (pk_test_*, sb_test_*) i en produktionsdeploy; dev-mode-Firebase-appar nåbara från live-domänen; test-tenant-Auth0-applikationer med svagare inställningar än produktion. Skanningen jämför runtime-nycklarna mot förväntade produktionsprefix.
Klass 5: Saknad webhook-signaturverifiering
Clerk-webhooks, Stripe-webhooks, Supabase-webhooks signerar alla sina payloads. En handler som inte verifierar signaturen är en databasskriv-primitiv för vilken angripare som helst som gissar URL:en. Detekteras via response-form — en osignerad förfrågan som får 200 betyder att verifiering hoppas över.
Hur FixVibes paraply-BaaS-skanning fungerar
FixVibes BaaS-fas körs i tre steg, var och en som producerar distinkta fynd:
- <strong>Stage 1 — provider fingerprinting.</strong> The scanner crawls the deployed app, parses every JavaScript chunk, and identifies which BaaS providers the app uses. Each provider has a distinctive runtime signature: Supabase uses <code>*.supabase.co</code>; Firebase uses <code>firebase.initializeApp({ projectId: ... })</code>; Clerk uses <code>pk_*</code> keys with a known prefix; Auth0 uses <code>clientId</code> and <code>domain</code>. The scanner records which providers are present and extracts the project identifiers.
- Steg 2 — leverantörsspecifika sonderingar. För varje upptäckt leverantör kör scannern den leverantörsspecifika checken:
baas.supabase-rlssonderar PostgREST;baas.firebase-rulessonderar Firestore + RTDB + Storage;baas.clerk-auth0validerar prefix för buntade nycklar; bundle-secrets-checken validerar att inga service-tier-credentials har läckt. Varje sondering körs oberoende — ett Supabase-fynd blockerar inte Firebase-skanningen. - Steg 3 — leverantörsöverskridande korrelation. Scannern korsrefererar fynd. En läckt Supabase service-role-nyckel jämte saknad RLS är allvarligare än något av fynden ensamt — rapporten lyfter fram det. Flera identitetsleverantörer (Clerk + Auth0 + custom auth) i samma app är ett strukturellt fynd flaggat för granskning.
Varje sondering är passiv: som mest en anonym läsning per resurs, med response-form noterad men radinnehåll aldrig paginerat eller lagrat. Skriv- och modifieringssonderingar är begränsade bakom verifierat domänägarskap — de körs aldrig mot overifierade mål.
Vad scannern hittar per leverantör
Varje BaaS-leverantör har en annan yta och en annan skanningsstrategi. Så här ser täckningen ut:
- Supabase: saknad RLS på tabeller, anonymt listbara storage-buckets, läckt
service_role-JWT ellersb_secret_*-nyckel i bundle, exponerade scheman via anonym OpenAPI-listning. Se Supabase RLS-scanner och Storage-checklista. - Firebase:
if true-regler på Firestore, Realtime Database och Cloud Storage; anonymt listbara Storage-buckets; saknad App Check-tillämpning. Se Firebase rules-scanner och If-true-regel förklarad. - Clerk: buntade
sk_*-secret-nycklar,pk_test_*i produktion, saknad webhook-signaturverifiering, wildcard-tillåtna origins. Se Clerk-checklista. - Auth0: buntade client secrets, Implicit grant aktiverat, wildcard-callback-/logout-URL:er, saknad PKCE på SPA:er. Se Auth0-checklista.
Hur en BaaS-scanner jämförs med generella DAST- och SAST-verktyg
En BaaS-medveten scanner gör specifikt arbete som andra verktyg inte gör. Jämförelsen:
| Aspekt | FixVibe (BaaS-medveten DAST) | Generell DAST (Burp / ZAP) | SAST / SCA (Snyk / Semgrep) |
|---|---|---|---|
| BaaS-täckning | Inbyggda checks för Supabase, Firebase, Clerk, Auth0, Appwrite | Generisk webbcrawl; inga leverantörsspecifika sonderingar | Statisk analys av repo enbart; ingen produktionsvalidering |
| Uppsättningstid | URL → kör → resultat på 60 sekunder | Timmar: konfigurera spider, auth, scope | Dag: integrera i repo-CI |
| Vad det bevisar | Produktions-runtime-exponering med HTTP-nivå-bevis | Webbapp-vulns (XSS, SQLi); BaaS via manuell konfiguration | Kodmönster som kanske eller kanske inte deployas |
| JavaScript-bundle-inspektion | Avkodar JWT:er, matchar secret-prefix, går igenom chunks | Begränsad — endast strängbaserad grep | Ja, men endast repo-sida, inte deployad |
| Kontinuerlig skanning | Månadsvis / vid-deploy via API + MCP | Manuell; konfigurera schema själv | Per commit (bra för kod, blind för runtime) |
| Pris för solo / liten team | Gratisnivå; betald från $19/mån | Burp Pro $499/år; ZAP gratis men höga falska positiva | Snyk gratis / Semgrep gratis; betalda nivåer från $25/utvecklare |
Ärligt omfång: vad den här scannern inte ersätter
En BaaS-medveten DAST-scanner är ett fokuserat verktyg, inte ett komplett säkerhetsprogram. Den:
- Ersätter inte SAST eller SCA. Statisk analys hittar dependency-CVE:er (Snyk, Semgrep) och kodnivå-sårbarheter (SonarQube) som en DAST-scanner inte kan. Kör båda.
- Ersätter inte manuella penetrationstester. En mänsklig pentester hittar logikfel i affärsregler, auktoriserings-edge-cases och kedjade sårbarheter som ingen scanner kan. Hyr in en pentester före en stor lansering eller compliance-granskning.
- Granskar inte din kod eller ditt repo efter hemligheter i git-historik. Bundle-secrets-checken täcker vad som för närvarande är deployat, inte vad som historiskt committats. Använd
git-secretsellergitleaksför repo-hygien. - Täcker inte icke-BaaS backend-tjänster. Om din app använder en egen backend (Express, Rails, Django, FastAPI), skannar FixVibe dess HTTP-yta men sonderar inte databasen eller infrastrukturen bakom den. Det är territorium för generell DAST + SAST.
Vanliga frågor
Fungerar paraply-skanningen om min app använder två BaaS-leverantörer (t.ex. Supabase + Clerk)?
Ja — leverantörsfingeravtryckning och per-leverantör-sonderingar är oberoende. Scannern upptäcker båda, kör båda check-sviterna och rapporterar leverantörsöverskridande korrelationer (t.ex. en Supabase JWT-mall från Clerk som skickar email som claim jämte saknad RLS).
Hur skiljer sig detta från att köra Burp Suite Pro mot min app?
Burp är en generell DAST-arbetsbänk. Out of the box vet Burp inte vad PostgREST, Firestore eller Auth0-callback-stigen är — du måste manuellt konfigurera scope, skriva extensions och tolka svar. FixVibe levereras med inbyggda BaaS-sonderingar och BaaS-formad bevisformatering. Burp vinner på generell webbapp-täckning (XSS, SQLi, affärslogik); FixVibe vinner på BaaS-specifika fynd.
Vad gäller App Check (Firebase) eller attestation (Apple / Google)?
App Check får opportunistiska externa skanningar att returnera 403 på varje sondering — det korrekta utfallet för en skadlig bot. En FixVibe-scanning från en oattestrad klient beter sig på samma sätt. Om du har App Check aktiverat och FixVibe ändå rapporterar fynd, betyder det att dina regler är öppna även för attestrade klienter, vilket är den verkliga risken. App Check + korrekta regler är defense-in-depth-mönstret.
Kan scannern verifiera min fix?
Ja — kör igen efter att fixen tillämpats. Check-ID:n (t.ex. baas.supabase-rls) är stabila över körningar, så du kan diffa fynd: ett fynd som var open i körning 1 och frånvarande i körning 2 är bevis på att fixen landat.
Nästa steg
Kör en gratis FixVibe-scanning mot din produktions-URL — BaaS-fas-checkarna ingår i varje plan, inklusive gratisnivån. För leverantörsspecifika fördjupningar täcker de enskilda artiklarna i den här sektionen varje leverantör i detalj: Supabase RLS, Supabase service-nyckel-exponering, Supabase storage, Firebase rules, Firebase if-true, Clerk och Auth0.
