// docs / baas security / umbrella scanner
Skener BaaS pogrešnih konfiguracija: pronađite javne data putanje prije korisnika
Backend-as-a-Service provideri — Supabase, Firebase, Clerk, Auth0, Appwrite, Convex — svi padaju u sigurnosti u istom obliku: platforma isporučuje razumne defaulte, developer (ili AI alat za kodiranje) poseže za prečicom, i javan put se otvara između neautenticiranog napadača i korisničkih podataka. Skener BaaS pogrešnih konfiguracija je jedini alat koji ispituje taj put izvana onako kako bi to učinio napadač. Ovaj članak mapira pet ponavljajućih klasa pogrešnih konfiguracija, objašnjava kako radi umbrella FixVibe BaaS sken, uspoređuje četiri glavna providera i kontrastira BaaS-svjestan skener u odnosu na opće DAST alate.
Zašto BaaS pogrešne konfiguracije imaju ponavljajući oblik
Svaka BaaS platforma slijedi istu arhitekturu: upravljani backend s tankim klijentskim SDK-om koji s njim razgovara iz preglednika. Klijent okrenut pregledniku treba nekakvu vjerodajnicu — anon ključ, publishable ključ, Firebase project ID — da bi se identificirao backendu. Ta vjerodajnica je namjerno javna; sigurnost arhitekture počiva na tome da kontrole pristupa na razini platforme (RLS, pravila, allowliste) rade svoj posao.
AI alati za kodiranje grade povrh ove arhitekture bez interiorizacije sloja platforme-kontrola. Žice klijentski SDK ispravno, prihvaćaju platformina defaultna permisivna pravila (koja postoje zbog prijateljskog tutorijala) i isporučuju. Ponavljajući oblik je: javna vjerodajnica + permisivno defaultno pravilo + nedostajući override = izlaganje podataka. Pet klasa pogrešnih konfiguracija u nastavku su sve varijante ovog oblika.
Pet ponavljajućih klasa pogrešnih konfiguracija
Ove se pojavljuju u svim BaaS providerima. Potpun sken pokriva svih pet u odnosu na svakog providera u upotrebi:
Klasa 1: Pogrešan ključ u bundleu preglednika
Preglednik isporučuje tajni/admin ključ (Supabase service_role, Firebase Admin SDK private key, Clerk sk_*, Auth0 client secret) umjesto javnog/anon ekvivalenta. Preglednik postaje neograničen admin klijent. Pokriveno FixVibe-ovom provjerom bundle-secrets.
Klasa 2: Sloj kontrole pristupa onemogućen ili permisivan
RLS je isključen, Firebase pravila su if true, Auth0 callback popis ima wildcard. Vjerodajnica u pregledniku je ispravna — ali granica na razini platforme koja je trebala ograničiti je ne radi svoj posao.
Klasa 3: Anonimna čitanja osjetljivih resursa
Anon-čitljive Firestore kolekcije, anon-listable Supabase storage bucketi, anon-dostupan Auth0 management API. Sken pita: "bez vjerodajnica, što mogu pročitati?"
Klasa 4: Artefakti test-modea u produkciji
Test ključevi (pk_test_*, sb_test_*) u produkcijskom deploy-u; dev-mode Firebase aplikacije dostupne s live domene; test-tenant Auth0 aplikacije sa slabijim postavkama od produkcije. Sken uspoređuje runtime ključeve u odnosu na očekivane produkcijske prefikse.
Klasa 5: Nedostaje verifikacija potpisa webhooka
Clerk webhookovi, Stripe webhookovi, Supabase webhookovi svi potpisuju svoje payloadove. Handler koji ne verificira potpis je primitiva za pisanje u bazi za svakog napadača koji pogodi URL. Detektira se preko oblika odgovora — nepotpisan zahtjev koji dobije 200 znači da je verifikacija preskočena.
Kako radi umbrella FixVibe BaaS sken
FixVibe-ova BaaS faza radi u tri stupnja, svaki proizvodi različite nalaze:
- <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.
- Stupanj 2 — probe specifične za providera. Za svakog detektiranog providera, skener pokreće provjeru specifičnu za providera:
baas.supabase-rlsispituje PostgREST;baas.firebase-rulesispituje Firestore + RTDB + Storage;baas.clerk-auth0validira prefiks bundlanih ključeva; provjera bundle-secrets validira da nije procurila nijedna vjerodajnica service-tier-a. Svaka proba radi neovisno — Supabase nalaz ne blokira Firebase sken. - Stupanj 3 — međusobna korelacija providera. Skener međusobno uspoređuje nalaze. Procurio Supabase service-role ključ zajedno s nedostajućim RLS-om je ozbiljniji od bilo kojeg od ova dva nalaza pojedinačno — izvještaj to ističe. Više identity providera (Clerk + Auth0 + custom auth) u istoj aplikaciji je strukturni nalaz označen za pregled.
Svaka proba je pasivna: najviše jedno anonimno čitanje po resursu, s oblikom odgovora zabilježenim ali sadržajem redaka nikada paginiranim niti pohranjenim. Probe pisanja i modifikacije uvjetovane su verificiranim vlasništvom domene — nikada se ne pokreću prema neverificiranim ciljevima.
Što skener pronalazi po provideru
Svaki BaaS provider ima drugačiju površinu i drugačiju strategiju skeniranja. Evo što je pokriveno:
- Supabase: nedostajući RLS na tablicama, anon-listable storage bucketi, procurio
service_roleJWT ilisb_secret_*ključ u bundleu, izloženje sheme preko anonimnog OpenAPI popisivanja. Pogledajte Supabase RLS skener i Storage checklistu. - Firebase: pravila
if trueu Firestoreu, Realtime Databaseu i Cloud Storageu; anon-listable Storage bucketi; nedostaje primjena App Checka. Pogledajte Skener Firebase pravila i Objašnjenje if-true pravila. - Clerk: bundleani
sk_*tajni ključevi,pk_test_*u produkciji, nedostaje verifikacija potpisa webhooka, wildcard dopušteni origini. Pogledajte Clerk checklistu. - Auth0: bundleani client secreti, Implicit grant omogućen, wildcard callback / logout URL-ovi, nedostaje PKCE na SPA-ovima. Pogledajte Auth0 checklistu.
Kako se BaaS skener uspoređuje s općim DAST i SAST alatima
BaaS-svjestan skener radi specifičan posao koji drugi alati ne rade. Usporedba:
| Aspekt | FixVibe (BaaS-svjestan DAST) | Opći DAST (Burp / ZAP) | SAST / SCA (Snyk / Semgrep) |
|---|---|---|---|
| BaaS pokrivenost | Nativne provjere za Supabase, Firebase, Clerk, Auth0, Appwrite | Generički web crawl; bez proba specifičnih za providera | Statička analiza samo repoa; bez produkcijske validacije |
| Vrijeme postavljanja | URL → pokretanje → rezultati u 60 sekundi | Sati: konfigurirati spider, auth, scope | Dan: integrirati u repo CI |
| Što dokazuje | Izloženost u produkcijskom runtimeu s HTTP-razinskim dokazom | Web-app ranjivosti (XSS, SQLi); BaaS preko ručne konfiguracije | Obrasci u kodu koji se mogu i ne moraju deployati |
| Inspekcija JavaScript bundlea | Dekodira JWT-ove, hvata tajne prefikse, prolazi kroz chunkove | Ograničeno — samo grep utemeljen na stringovima | Da, ali samo na strani repoa, ne deployano |
| Kontinuirano skeniranje | Mjesečno / pri deploy-u preko API + MCP | Ručno; sami konfigurirajte raspored | Po commitu (dobro za kod, slijepo za runtime) |
| Cijena za solo / mali tim | Besplatni paket; plaćeni od 19 USD/mj | Burp Pro 499 USD/god; ZAP besplatan ali s mnogo lažnih pozitiva | Snyk besplatan / Semgrep besplatan; plaćeni paketi od 25 USD/dev |
Iskren opseg: što ovaj skener ne zamjenjuje
BaaS-svjestan DAST skener je fokusiran alat, a ne potpun sigurnosni program. Ne:
- Zamjenjuje SAST ili SCA. Statička analiza pronalazi dependency CVE-ove (Snyk, Semgrep) i ranjivosti na razini koda (SonarQube) koje DAST skener ne može. Pokrenite oba.
- Zamjenjuje ručno penetracijsko testiranje. Ljudski pentester pronalazi propuste u poslovnoj logici, rubne slučajeve autorizacije i ulančane ranjivosti koje nijedan skener ne može. Unajmite pentestera prije velikog lansiranja ili audita usklađenosti.
- Auditira vaš kod ili repo za tajne u git povijesti. Provjera bundle-secrets pokriva ono što je trenutno deployano, a ne ono što je povijesno commitirano. Koristite
git-secretsiligitleaksza higijenu repoa. - Pokriva non-BaaS backend servise. Ako vaša aplikacija koristi prilagođeni backend (Express, Rails, Django, FastAPI), FixVibe skenira njegovu HTTP površinu, ali ne ispituje bazu podataka ili infrastrukturu iza nje. To je teritorij općeg DAST-a + SAST-a.
Često postavljana pitanja
Da li umbrella sken radi ako moja aplikacija koristi dva BaaS providera (npr. Supabase + Clerk)?
Da — fingerprintiranje providera i probe po providerima su neovisne. Skener detektira oba, pokreće oba paketa provjera i prijavljuje korelacije između providera (npr. Supabase JWT template iz Clerka koji šalje email kao claim uz nedostajući RLS).
Kako se ovo razlikuje od pokretanja Burp Suite Pro protiv moje aplikacije?
Burp je opća DAST radna ploča. Iz kutije, Burp ne zna što je PostgREST, Firestore ili Auth0 callback putanja — morate ručno konfigurirati opseg, pisati ekstenzije i tumačiti odgovore. FixVibe se isporučuje s ugrađenim BaaS probama i BaaS-oblikovanim formatiranjem dokaza. Burp pobjeđuje u općoj pokrivenosti web aplikacija (XSS, SQLi, poslovna logika); FixVibe pobjeđuje u BaaS-specifičnim nalazima.
Što je s App Checkom (Firebase) ili atestacijom (Apple / Google)?
App Check čini da oportunistički vanjski skenovi vrate 403 na svakoj probi — ispravan ishod za zlonamjernog bota. FixVibe sken iz neatestiranog klijenta ponaša se isto. Ako imate uključen App Check i FixVibe i dalje prijavljuje nalaze, to znači da su vaša pravila otvorena i za atestirane klijente, što je stvarni rizik. App Check + ispravna pravila je obrazac dubinske obrane.
Može li skener verificirati moj popravak?
Da — pokrenite ponovo nakon primjene popravka. ID-ovi provjera (npr. baas.supabase-rls) stabilni su između pokretanja, pa možete usporediti nalaze: nalaz koji je bio open u pokretanju 1 i odsutan u pokretanju 2 dokaz je da je popravak primijenjen.
Sljedeći koraci
Pokrenite besplatan FixVibe sken prema svom produkcijskom URL-u — provjere BaaS faze isporučuju se u svakom paketu, uključujući i besplatni. Za pojedinačne deep-dive-ove po provideru, pojedinačni članci u ovom odjeljku detaljno pokrivaju svakog providera: Supabase RLS, Izloženost Supabase service-key-a, Supabase storage, Firebase pravila, Firebase if-true, Clerk i Auth0.
