FixVibe

// docs / baas security / umbrella scanner

BaaS-fejlkonfigurationsscanner: find offentlige datastier, før brugere gør det

Backend-as-a-Service-udbydere — Supabase, Firebase, Clerk, Auth0, Appwrite, Convex — fejler alle sikkerheden i den samme form: platformen leverer fornuftige standarder, udvikleren (eller AI-kodeværktøjet) griber efter en genvej, og en offentlig sti åbner sig mellem en uautentificeret angriber og kundedata. En BaaS-fejlkonfigurationsscanner er det eneste værktøj, der sonderer den sti udefra, som en angriber ville. Denne artikel kortlægger de fem tilbagevendende fejlkonfigurationsklasser, forklarer, hvordan FixVibes paraply-BaaS-scanning fungerer, sammenligner de fire store udbydere og kontrasterer den BaaS-bevidste scanner mod generelle DAST-værktøjer.

Hvorfor BaaS-fejlkonfigurationer har en tilbagevendende form

Hver BaaS-platform følger den samme arkitektur: en administreret backend med en tynd klient-SDK, der taler med den fra browseren. Den browser-vendte klient har brug for en eller anden legitimation — en anon-nøgle, en publicerbar nøgle, et Firebase-projekt-ID — til at identificere sig selv over for backenden. Den legitimation er bevidst offentlig; sikkerheden af arkitekturen hviler på, at platformsniveau-adgangskontroller (RLS, regler, allowlists) gør deres arbejde.

AI-kodeværktøjer bygger oven på denne arkitektur uden at internalisere platformskontrollag-laget. De kobler klient-SDK'en korrekt, accepterer platformens standard-tilladende regler (som eksisterer for tutorial-venlighed) og leverer. Den tilbagevendende form er: offentlig legitimation + tilladende standard-regel + manglende tilsidesættelse = dataeksponering. De fem fejlkonfigurationsklasser nedenfor er alle varianter af denne form.

De fem tilbagevendende fejlkonfigurationsklasser

Disse vises på tværs af hver BaaS-udbyder. En komplet scanning dækker alle fem mod hver udbyder i brug:

Klasse 1: Forkert nøgle i browserbundtet

Browseren sender den hemmelige/admin-nøgle (Supabase service_role, Firebase Admin SDK private key, Clerk sk_*, Auth0 client secret) i stedet for den offentlige/anon-ækvivalent. Browseren bliver en ubegrænset admin-klient. Dækket af FixVibes bundle-secrets-check.

Klasse 2: Adgangskontrollag deaktiveret eller tilladende

RLS er slået fra, Firebase-regler er if true, Auth0-callback-listen er wildcardet. Legitimationen i browseren er den rigtige — men platformsniveau-grænsen, der skulle begrænse den, gør ikke sit arbejde.

Klasse 3: Anonyme læsninger af følsomme ressourcer

Anon-læsbare Firestore-samlinger, anon-listbare Supabase storage-buckets, anon-tilgængelige Auth0 management API. Scanningen spørger: "uden legitimationsoplysninger, hvad kan jeg læse?"

Klasse 4: Test-mode-artefakter i produktion

Testnøgler (pk_test_*, sb_test_*) i en produktionsdeploy; dev-mode Firebase-apps tilgængelige fra live-domænet; test-tenant Auth0-applikationer med svagere indstillinger end produktion. Scanningen sammenligner runtime-nøglerne mod de forventede produktionspræfikser.

Klasse 5: Webhook-signaturverifikation mangler

Clerk-webhooks, Stripe-webhooks, Supabase-webhooks signerer alle deres payloads. En handler, der ikke verificerer signaturen, er en database-skrive-primitiv for enhver angriber, der gætter URL'en. Opdages via response-form — en usigneret anmodning, der får et 200, betyder, at verifikation springes over.

Sådan fungerer FixVibes paraply-BaaS-scanning

FixVibes BaaS-fase kører i tre trin, hver der producerer distinkte fund:

  1. <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.
  2. Trin 2 — udbyder-specifikke sonderinger. For hver opdaget udbyder kører scanneren det udbyder-specifikke check: baas.supabase-rls sonderer PostgREST; baas.firebase-rules sonderer Firestore + RTDB + Storage; baas.clerk-auth0 validerer præfikset på bundlede nøgler; bundle-secrets-checken validerer, at ingen service-tier-legitimationer lækkede. Hver sondering kører uafhængigt — et Supabase-fund blokerer ikke Firebase-scanningen.
  3. Trin 3 — krydsudbyderkorrelation. Scanneren krydsrefererer fund. En lækket Supabase service-role-nøgle ved siden af manglende RLS er mere alvorlig end nogen af fundene alene — rapporten overflader dette. Flere identitetsudbydere (Clerk + Auth0 + custom auth) i den samme app er et strukturelt fund markeret til gennemgang.

Hver sondering er passiv: højst én anonym læsning per ressource, med response-form registreret, men rækkeindhold aldrig pagineret eller gemt. Skrive- og modifikationssonderinger er begrænset bag verificeret domæneejerskab — de kører aldrig mod uverificerede mål.

Hvad scanneren finder per udbyder

Hver BaaS-udbyder har en anden overflade og en anden scanningsstrategi. Her er, hvad der er dækket:

  • Supabase: manglende RLS på tabeller, anon-listbare storage-buckets, lækket service_role-JWT eller sb_secret_*-nøgle i bundt, eksponerede skemaer via anonym OpenAPI-listning. Se Supabase RLS-scanner og Storage-tjekliste.
  • Firebase: if true-regler på Firestore, Realtime Database og Cloud Storage; anon-listbare Storage-buckets; manglende App Check-håndhævelse. Se Firebase-regelscanner og If-true-regel-forklaring.
  • Clerk: bundlede sk_*-hemmelige nøgler, pk_test_* i produktion, manglende webhook-signaturverifikation, wildcard-tilladte oprindelser. Se Clerk-tjekliste.
  • Auth0: bundlede client secrets, Implicit grant aktiveret, wildcard-callback-/logout-URL'er, manglende PKCE på SPA'er. Se Auth0-tjekliste.

Sådan sammenlignes en BaaS-scanner med generelle DAST- og SAST-værktøjer

En BaaS-bevidst scanner gør specifikt arbejde, som andre værktøjer ikke gør. Sammenligningen:

AspektFixVibe (BaaS-bevidst DAST)Generel DAST (Burp / ZAP)SAST / SCA (Snyk / Semgrep)
BaaS-dækningNative checks for Supabase, Firebase, Clerk, Auth0, AppwriteGenerel web-crawl; ingen udbyder-specifikke sonderingerStatisk analyse af kun repo; ingen produktionsvalidering
OpsætningstidURL → kør → resultater på 60 sekunderTimer: konfigurer spider, auth, scopeDag: integrer i repo CI
Hvad det beviserProduktions-runtime-eksponering med HTTP-niveau-evidensWeb-app-sårbarheder (XSS, SQLi); BaaS via manuel konfigurationKodemønstre, der måske eller måske ikke deployes
JavaScript-bundtinspektionAfkoder JWT'er, matcher hemmelighedspræfikser, gennemgår chunksBegrænset — kun streng-baseret grepJa, men kun på repo-siden, ikke deployet
Kontinuerlig scanningMånedligt / ved deploy via API + MCPManuel; konfigurer tidsplan selvPer commit (godt til kode, blind for runtime)
Pris for solo / lille teamGratis tier; betalt fra $19/månedBurp Pro $499/år; ZAP gratis, men højt antal falske positiverSnyk gratis / Semgrep gratis; betalte tiers fra $25/udvikler

Ærligt omfang: hvad denne scanner ikke erstatter

En BaaS-bevidst DAST-scanner er et fokuseret værktøj, ikke et fuldt sikkerhedsprogram. Den gør ikke:

  • Erstatte SAST eller SCA. Statisk analyse finder afhængigheds-CVE'er (Snyk, Semgrep) og kodeniveau-sårbarheder (SonarQube), som en DAST-scanner ikke kan. Kør begge.
  • Erstatte manuel penetrationstest. En menneskelig pentester finder forretningslogik-fejl, autorisations-kanttilfælde og kædede sårbarheder, som ingen scanner kan. Hyr en pentester før en større launch eller compliance-revision.
  • Revidere din kode eller repo for hemmeligheder i git-historik. Bundle-secrets-checken dækker, hvad der aktuelt er deployet, ikke hvad der historisk er committet. Brug git-secrets eller gitleaks til repo-hygiejne.
  • Dække ikke-BaaS-backend-tjenester. Hvis din app bruger en custom backend (Express, Rails, Django, FastAPI), scanner FixVibe dens HTTP-overflade, men sonderer ikke databasen eller infrastrukturen bag den. Det er generelt DAST + SAST-territorium.

Ofte stillede spørgsmål

Fungerer paraplyscanningen, hvis min app bruger to BaaS-udbydere (fx Supabase + Clerk)?

Ja — udbyder-fingeraftrykning og per-udbyder-sonderinger er uafhængige. Scanneren opdager begge, kører begge checksuiter og rapporterer krydsudbyderkorrelationer (fx en Supabase JWT-skabelon fra Clerk, der sender email som et claim ved siden af manglende RLS).

Hvordan adskiller dette sig fra at køre Burp Suite Pro mod min app?

Burp er en generel DAST-arbejdsbænk. Out of the box ved Burp ikke, hvad PostgREST, Firestore eller Auth0-callback-stien er — du skal manuelt konfigurere scope, skrive udvidelser og fortolke svar. FixVibe leveres med indbyggede BaaS-sonderinger og BaaS-formet evidensformatering. Burp vinder på generel web-app-dækning (XSS, SQLi, forretningslogik); FixVibe vinder på BaaS-specifikke fund.

Hvad med App Check (Firebase) eller attestation (Apple / Google)?

App Check får opportunistiske eksterne scanninger til at returnere 403 på hver sondering — det korrekte resultat for en ondsindet bot. En FixVibe-scanning fra en uattesteret klient opfører sig på samme måde. Hvis du har App Check aktiveret, og FixVibe stadig rapporterer fund, betyder det, at dine regler er åbne for attesterede klienter også, hvilket er den reelle risiko. App Check + korrekte regler er defense-in-depth-mønsteret.

Kan scanneren verificere min fix?

Ja — kør igen efter at have anvendt fixen. Check-ID'erne (fx baas.supabase-rls) er stabile på tværs af kørsler, så du kan diffe fund: et fund, der var open i kørsel 1 og fraværende i kørsel 2, er bevis på, at fixen landede.

Næste skridt

Kør en gratis FixVibe-scanning mod din produktions-URL — BaaS-fase-checks leveres på hver plan, inklusive gratis tier. For udbyder-specifikke deep-dives, dækker de individuelle artikler i dette afsnit hver udbyder i detaljer: Supabase RLS, Supabase service-key-eksponering, Supabase storage, Firebase-regler, Firebase if-true, Clerk og Auth0.

// scan din baas-overflade

Find den åbne tabel, før nogen anden gør det.

Indsæt en produktions-URL. FixVibe opregner de BaaS-udbydere, din app taler med, fingeraftrykker deres offentlige endpoints og rapporterer, hvad en uautentificeret klient kan læse eller skrive. Gratis, ingen installation, intet kort.

  • Gratis niveau — 3 scanninger/måned, intet kort ved tilmelding.
  • Passiv BaaS-fingeraftrykning — ingen domæneverifikation påkrævet.
  • Supabase, Firebase, Clerk, Auth0, Appwrite og flere.
  • AI-fix-prompts på hvert fund — indsæt tilbage i Cursor / Claude Code.
Kør en gratis BaaS-scanning

ingen tilmelding krævet

BaaS-fejlkonfigurationsscanner: find offentlige datastier, før brugere gør det — Docs · FixVibe