FixVibe

// docs / baas security / umbrella scanner

BaaS-misconfiguratiescanner: vind openbare datapaden voordat gebruikers dat doen

Backend-as-a-Service-providers β€” Supabase, Firebase, Clerk, Auth0, Appwrite, Convex β€” falen allemaal in beveiliging in dezelfde vorm: het platform levert verstandige standaardinstellingen, de ontwikkelaar (of de AI-codeertool) reikt naar een snelkoppeling, en er opent zich een openbaar pad tussen een niet-geauthenticeerde aanvaller en klantgegevens. Een BaaS-misconfiguratiescanner is de enige tool die dat pad van buitenaf sondeert zoals een aanvaller dat zou doen. Dit artikel brengt de vijf terugkerende misconfiguratieklassen in kaart, legt uit hoe de paraplu-FixVibe BaaS-scan werkt, vergelijkt de vier grote providers en contrasteert de BaaS-bewuste scanner met algemene DAST-tools.

Waarom BaaS-misconfiguraties een terugkerende vorm hebben

Elk BaaS-platform volgt dezelfde architectuur: een beheerde backend met een dunne client-SDK die ermee praat vanuit de browser. De browser-gerichte client heeft een credential nodig β€” een anon-sleutel, een publiceerbare sleutel, een Firebase-project-ID β€” om zichzelf te identificeren bij de backend. Die credential is opzettelijk openbaar; de veiligheid van de architectuur berust op platform-niveau toegangscontroles (RLS, regels, allowlists) die hun werk doen.

AI-codeertools bouwen bovenop deze architectuur zonder de platform-controle-laag te internaliseren. Ze bedraden de client-SDK correct, accepteren de standaard permissieve regels van het platform (die bestaan voor tutorial-vriendelijkheid) en lanceren. De terugkerende vorm is: openbare credential + permissieve standaardregel + ontbrekende override = data-blootstelling. De vijf misconfiguratieklassen hieronder zijn allemaal varianten van deze vorm.

De vijf terugkerende misconfiguratieklassen

Deze verschijnen bij elke BaaS-provider. Een volledige scan dekt alle vijf bij elke gebruikte provider:

Klasse 1: Verkeerde sleutel in de browserbundle

De browser verzendt de geheim/admin-sleutel (Supabase service_role, Firebase Admin SDK privΓ©sleutel, Clerk sk_*, Auth0 client-secret) in plaats van het openbare/anon-equivalent. De browser wordt een onbeperkte admin-client. Gedekt door FixVibe's bundel-geheimen-check.

Klasse 2: Toegangscontrole-laag uitgeschakeld of permissief

RLS staat uit, Firebase-regels zijn if true, de Auth0-callbacklijst is wildcarded. De credential in de browser is de juiste β€” maar de platform-niveau-grens die hem zou moeten beperken, doet zijn werk niet.

Klasse 3: Anonieme reads van gevoelige bronnen

Anoniem-leesbare Firestore-collecties, anoniem-oplijstbare Supabase-opslagbuckets, anoniem-toegankelijke Auth0-management-API. De scan vraagt: "zonder credentials, wat kan ik lezen?"

Klasse 4: Testmodus-artefacten in productie

Testsleutels (pk_test_*, sb_test_*) in een productie-deployment; dev-mode Firebase-apps bereikbaar vanaf het live domein; test-tenant Auth0-applicaties met zwakkere instellingen dan productie. De scan vergelijkt de runtime-sleutels met de verwachte productie-voorvoegsels.

Klasse 5: Webhook-handtekeningverificatie ontbreekt

Clerk-webhooks, Stripe-webhooks, Supabase-webhooks ondertekenen allemaal hun payloads. Een handler die de handtekening niet verifieert, is een database-schrijfprimitief voor elke aanvaller die de URL raadt. Gedetecteerd via antwoordvorm β€” een niet-ondertekende aanvraag die een 200 krijgt, betekent dat verificatie wordt overgeslagen.

Hoe de paraplu-FixVibe BaaS-scan werkt

De BaaS-fase van FixVibe draait in drie fasen, elk met onderscheiden bevindingen:

  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. Fase 2 β€” provider-specifieke sondes. Voor elke gedetecteerde provider draait de scanner de provider-specifieke check: baas.supabase-rls sondeert PostgREST; baas.firebase-rules sondeert Firestore + RTDB + Storage; baas.clerk-auth0 valideert het voorvoegsel van gebundelde sleutels; de bundel-geheimen-check valideert dat geen service-tier-credentials zijn gelekt. Elke sonde loopt onafhankelijk β€” een Supabase-bevinding blokkeert de Firebase-scan niet.
  3. Fase 3 β€” cross-provider-correlatie. De scanner kruisverwijst bevindingen. Een gelekte Supabase service-rolsleutel naast ontbrekende RLS is ernstiger dan elke bevinding afzonderlijk β€” het rapport brengt dit naar voren. Meerdere identity-providers (Clerk + Auth0 + aangepaste auth) in dezelfde app is een structurele bevinding gemarkeerd voor beoordeling.

Elke sonde is passief: hooguit één anonieme read per bron, met antwoordvorm geregistreerd maar rij-inhoud nooit gepagineerd of opgeslagen. Schrijf- en wijzigingssondes zijn afgeschermd achter geverifieerd domeineigenaarschap β€” ze lopen nooit tegen ongeverifieerde doelen.

Wat de scanner vindt per provider

Elke BaaS-provider heeft een ander oppervlak en een andere scan-strategie. Dit is wat wordt gedekt:

  • Supabase: ontbrekende RLS op tabellen, anoniem-oplijstbare opslagbuckets, gelekte service_role-JWT of sb_secret_*-sleutel in bundle, blootgestelde schema's via anonieme OpenAPI-oplijsting. Zie Supabase RLS-scanner en Opslagchecklist.
  • Firebase: if true-regels op Firestore, Realtime Database en Cloud Storage; anoniem-oplijstbare Storage-buckets; ontbrekende App Check-handhaving. Zie Firebase-regelsscanner en If-true-regel-uitlegger.
  • Clerk: gebundelde sk_* geheime sleutels, pk_test_* in productie, ontbrekende webhook-handtekening-verificatie, wildcard toegestane oorsprongen. Zie Clerk-checklist.
  • Auth0: gebundelde client-secrets, Implicit-grant ingeschakeld, wildcard callback- / logout-URL's, ontbrekende PKCE op SPA's. Zie Auth0-checklist.

Hoe een BaaS-scanner zich verhoudt tot algemene DAST- en SAST-tools

Een BaaS-bewuste scanner doet specifiek werk dat andere tools niet doen. De vergelijking:

AspectFixVibe (BaaS-bewuste DAST)Algemene DAST (Burp / ZAP)SAST / SCA (Snyk / Semgrep)
BaaS-dekkingNative checks voor Supabase, Firebase, Clerk, Auth0, AppwriteAlgemene web-crawl; geen provider-specifieke sondesStatische analyse van alleen repo; geen productie-validatie
OpzetttijdURL β†’ run β†’ resultaten in 60 secondenUren: configureer spider, auth, scopeDag: integreer in repo-CI
Wat het bewijstProductie-runtime-blootstelling met HTTP-niveau-bewijsWeb-app-kwetsbaarheden (XSS, SQLi); BaaS via handmatige configuratieCodepatronen die misschien wel of niet worden gedeployd
JavaScript-bundle-inspectieDecodeert JWT's, matcht geheim-voorvoegsels, loopt door chunksBeperkt β€” alleen string-gebaseerd grepJa, maar alleen aan repo-kant, niet gedeployd
Doorlopend scannenMaandelijks / bij deployment via API + MCPHandmatig; configureer planning zelfPer commit (goed voor code, blind voor runtime)
Prijs voor solo / klein teamGratis tier; betaald vanaf $19/mndBurp Pro $499/jr; ZAP gratis maar hoge false positivesSnyk gratis / Semgrep gratis; betaalde tiers vanaf $25/dev

Eerlijke scope: wat deze scanner niet vervangt

Een BaaS-bewuste DAST-scanner is een gerichte tool, geen volledig beveiligingsprogramma. Het doet niet:

  • Vervang SAST of SCA. Statische analyse vindt dependency-CVE's (Snyk, Semgrep) en code-niveau-kwetsbaarheden (SonarQube) die een DAST-scanner niet kan. Voer beide uit.
  • Vervang handmatige penetratietesten. Een menselijke pentester vindt business-logic-fouten, autorisatie-randgevallen en geketende kwetsbaarheden die geen scanner kan. Huur een pentester in vΓ³Γ³r een grote lancering of compliance-audit.
  • Audit je code of repo op geheimen in git-geschiedenis. De bundel-geheimen-check dekt wat momenteel is gedeployd, niet wat historisch is gecommit. Gebruik git-secrets of gitleaks voor repo-hygiΓ«ne.
  • Dekt niet-BaaS backend-services. Als je app een aangepaste backend gebruikt (Express, Rails, Django, FastAPI), scant FixVibe het HTTP-oppervlak maar sondeert niet de database of infrastructuur erachter. Dat is algemeen DAST + SAST-terrein.

Veelgestelde vragen

Werkt de paraplu-scan als mijn app twee BaaS-providers gebruikt (bijv. Supabase + Clerk)?

Ja β€” provider-fingerprinting en per-provider-sondes zijn onafhankelijk. De scanner detecteert beide, voert beide check-suites uit en rapporteert cross-provider-correlaties (bijv. een Supabase JWT-template van Clerk die email als een claim verzendt naast ontbrekende RLS).

Hoe verschilt dit van het draaien van Burp Suite Pro tegen mijn app?

Burp is een algemene DAST-werkbank. Out of the box weet Burp niet wat PostgREST, Firestore of het Auth0-callbackpad is β€” je moet handmatig scope configureren, extensies schrijven en antwoorden interpreteren. FixVibe wordt geleverd met ingebouwde BaaS-sondes en BaaS-vormig bewijsmateriaalformatting. Burp wint op algemene web-app-dekking (XSS, SQLi, business logic); FixVibe wint op BaaS-specifieke bevindingen.

En App Check (Firebase) of attestation (Apple / Google)?

App Check zorgt ervoor dat opportunistische externe scans 403 retourneren op elke sonde β€” de juiste uitkomst voor een kwaadaardige bot. Een FixVibe-scan van een niet-geattesteerde client gedraagt zich op dezelfde manier. Als je App Check hebt ingeschakeld en FixVibe rapporteert nog steeds bevindingen, betekent dit dat je regels ook open zijn voor geattesteerde clients, wat het echte risico is. App Check + correcte regels is het defense-in-depth-patroon.

Kan de scanner mijn fix verifiΓ«ren?

Ja β€” voer opnieuw uit na het toepassen van de fix. De check-ID's (bijv. baas.supabase-rls) zijn stabiel over runs, zodat je bevindingen kunt diffen: een bevinding die open was in run 1 en afwezig in run 2 is bewijs dat de fix is geland.

Volgende stappen

Voer een gratis FixVibe-scan uit tegen je productie-URL β€” de BaaS-fase-checks worden geleverd op elk plan, inclusief de gratis tier. Voor provider-specifieke dieptes dekken de individuele artikelen in deze sectie elke provider in detail: Supabase RLS, Supabase service-key-blootstelling, Supabase-opslag, Firebase-regels, Firebase if-true, Clerk en Auth0.

// scan je baas-oppervlak

Vind de open tabel voordat iemand anders dat doet.

Voer een productie-URL in. FixVibe somt de BaaS-providers op waarmee je app communiceert, fingerprint hun openbare endpoints en rapporteert wat een niet-geauthenticeerde client kan lezen of schrijven. Gratis, geen installatie, geen kaart.

  • Gratis tier β€” 3 scans / maand, geen kaart bij aanmelden.
  • Passieve BaaS-fingerprinting β€” geen domeinverificatie nodig.
  • Supabase, Firebase, Clerk, Auth0, Appwrite en meer.
  • AI-fixprompts bij elke bevinding β€” plak terug in Cursor / Claude Code.
BaaS-misconfiguratiescanner: vind openbare datapaden voordat gebruikers dat doen β€” Docs Β· FixVibe