// docs / baas security / umbrella scanner
BaaS väärseadistuse skanner: leia avalikud andmerajad enne kasutajaid
Backend-as-a-Service pakkujad — Supabase, Firebase, Clerk, Auth0, Appwrite, Convex — kõik ebaõnnestuvad turvalisuses sama kuju järgi: platvorm tarnitakse mõistlike vaikeväärtustega, arendaja (või AI-koodimistööriist) sirutab käe otsetee järele ja avalik rada avaneb autentimata ründaja ja kliendiandmete vahel. BaaS väärseadistuse skanner on ainus tööriist, mis sondeerib seda rada väljast nii nagu seda teeks ründaja. See artikkel kaardistab viis korduvat väärseadistuste klassi, selgitab, kuidas FixVibe üldine BaaS-skannimine töötab, võrdleb nelja peamist pakkujat ja kontrastib BaaS-teadlikku skannerit üldiste DAST-tööriistadega.
Miks BaaS väärseadistustel on korduv kuju
Iga BaaS-platvorm järgib sama arhitektuuri: hallatud backend ohukliendi-SDK-ga, mis brauserist sellega räägib. Brauserile suunatud klient vajab mingit mandaati — anon-võti, avaldatav võti, Firebase'i projekti ID — et end backendile tutvustada. See mandaat on tahtlikult avalik; arhitektuuri turvalisus tugineb sellele, et platvormi-tasandi juurdepääsukontroll (RLS, reeglid, allowlistid) oma tööd teeb.
AI-koodimistööriistad ehitavad selle arhitektuuri peale ilma platvormi-kontrolli kihti omaks võtmata. Nad ühendavad klient-SDK õigesti, võtavad vastu platvormi vaikimisi lubavad reeglid (mis eksisteerivad õppe-sõbralikkuse pärast) ja juurutavad. Korduv kuju on: avalik mandaat + lubav vaikereegel + puuduv ülekirjutus = andmete paljastus. Allpool olevad viis väärseadistuste klassi on kõik selle kuju variandid.
Viis korduvat väärseadistuste klassi
Need esinevad iga BaaS-pakkuja juures. Täielik skannimine katab kõik viis kasutusel oleva iga pakkuja vastu:
Klass 1: Vale võti brauseripakis
Brauser tarnitakse saladuse / administraatori võtmega (Supabase service_role, Firebase Admin SDK privaatvõti, Clerk sk_*, Auth0 kliendi-saladus) avaliku / anon ekvivalendi asemel. Brauserist saab piiramata administraatori-klient. Kaetud FixVibe bundle-secrets-kontrolliga.
Klass 2: Juurdepääsukontrolli kiht välja lülitatud või lubav
RLS on väljas, Firebase reeglid on if true, Auth0 callback-loend on metasümboliga. Mandaat brauseris on õige — kuid platvormi-tasandi piirang, mis pidi seda piirama, ei tee oma tööd.
Klass 3: Anonüümsed lugemised tundlikest ressurssidest
Anon-loetavad Firestore kollektsioonid, anon-loendatavad Supabase salvestuskonteinerid, anon-juurdepääsetav Auth0 Management API. Skannimine küsib: "mandaate ei ole, mida ma lugeda saan?"
Klass 4: Test-mode'i artefaktid tootmises
Test-võtmed (pk_test_*, sb_test_*) tootmise juurutuses; dev-mode Firebase'i rakendused jõudvalt elavast domeenist; test-rentniku Auth0 rakendused nõrgemate seadetega kui tootmises. Skannimine võrdleb käitusaja võtmeid eeldatud tootmise eesliidetega.
Klass 5: Webhooki allkirja kontroll puudub
Clerki webhookid, Stripe'i webhookid, Supabase'i webhookid kõik allkirjastavad oma kasulikke koormusi. Käsitleja, mis allkirja ei kontrolli, on andmebaasi-kirjutamise primitiiv igale ründajale, kes URL-i ära arvab. Tuvastatakse vastuse kuju kaudu — allkirjastamata päring, mis saab 200, tähendab, et kontroll on vahele jäetud.
Kuidas FixVibe üldine BaaS-skannimine töötab
FixVibe BaaS-faas töötab kolmes etapis, igaüks toodab erinevaid leide:
- <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.
- Etapp 2 — pakkuja-spetsiifilised sondid. Iga tuvastatud pakkuja jaoks käivitab skanner pakkuja-spetsiifilise kontrolli:
baas.supabase-rlssondeerib PostgRESTi;baas.firebase-rulessondeerib Firestore + RTDB + Storage'i;baas.clerk-auth0valideerib paki sisse jätkatud võtmete eesliite; bundle-secrets-kontroll valideerib, et ühtegi service-tasemel mandaati ei ole lekkinud. Iga sond töötab iseseisvalt — Supabase leid ei blokeeri Firebase'i skannimist. - Etapp 3 — risti-pakkuja korrelatsioon. Skanner ristviitestab leide. Lekkinud Supabase service-role'i võti koos puuduva RLS-iga on tõsisem kui kumbki leid eraldi — aruanne tõstab selle esile. Mitmed identiteedi-pakkujad (Clerk + Auth0 + kohandatud auth) samas rakenduses on struktuurne leid, mis on märgitud ülevaateks.
Iga sond on passiivne: ressursi kohta kõige rohkem üks anonüümne lugemine, kus vastuse kuju on salvestatud, kuid rea-sisu pole kunagi lehekülgendatud ega salvestatud. Kirjutus- ja muutmissondid on piiratud kinnitatud domeeniomandi taha — neid ei käivitata kunagi kinnitamata sihtmärkide vastu.
Mida skanner pakkuja kohta leiab
Igal BaaS-pakkujal on erinev pind ja erinev skannimise strateegia. Siin on kaetud:
- Supabase: puuduv RLS tabelitel, anon-loendatavad salvestuskonteinerid, lekkinud
service_role-JWT võisb_secret_*-võti pakis, paljastunud skeemid anonüümse OpenAPI loetelu kaudu. Vaata Supabase RLS-skanner ja Salvestuse kontrollnimekiri. - Firebase:
if true-reeglid Firestoreis, Realtime Database'is ja Cloud Storage'is; anon-loendatavad Storage konteinerid; puuduv App Check'i jõustamine. Vaata Firebase reeglite skanner ja If-true reegli selgitaja. - Clerk: paki sisse jätkatud
sk_*-saladusvõtmed,pk_test_*tootmises, puuduv webhooki allkirja kontroll, metasümboliga lubatud originid. Vaata Clerki kontrollnimekiri. - Auth0: paki sisse jätkatud kliendi-saladused, Implicit grant lubatud, metasümbolitega callback / logout URL-id, puuduv PKCE SPA-del. Vaata Auth0 kontrollnimekiri.
Kuidas BaaS-skanner võrdleb üldiste DAST ja SAST-tööriistadega
BaaS-teadlik skanner teeb spetsiifilist tööd, mida teised tööriistad ei tee. Võrdlus:
| Aspekt | FixVibe (BaaS-teadlik DAST) | Üldine DAST (Burp / ZAP) | SAST / SCA (Snyk / Semgrep) |
|---|---|---|---|
| BaaS-katvus | Sisseehitatud kontrollid Supabase, Firebase, Clerk, Auth0, Appwrite jaoks | Üldine veebi-roomamine; pakkuja-spetsiifilisi sonde pole | Staatiline analüüs ainult reposse; tootmise valideerimist pole |
| Seadistuse aeg | URL → käivita → tulemused 60 sekundiga | Tunnid: seadista spider, auth, skoobi | Päev: integreeri repo CI-sse |
| Mida tõestab | Tootmise käitusaja paljastus HTTP-tasemel tõendusmaterjaliga | Veebi-rakenduse haavatavused (XSS, SQLi); BaaS käsitsi seadistamise kaudu | Koodimustrid, mis võivad juurutuda või mitte |
| JavaScripti paki kontroll | Dekodeerib JWT-d, vastab saladuse eesliidetele, kõnnib läbi tükid | Piiratud — ainult stringi-põhine grep | Jah, kuid ainult repo-poolt, mitte juurutatud |
| Pidev skannimine | Kuus / juurutusel API + MCP kaudu | Käsitsi; seadista ajastus ise | Iga kommiti puhul (hea koodile, käitusajale pime) |
| Hind üksiku / väikese meeskonna jaoks | Tasuta tase; tasuline alates 19 dollarit/kuus | Burp Pro 499 dollarit/aastas; ZAP tasuta, kuid palju valepositiivseid | Snyk tasuta / Semgrep tasuta; tasulised alates 25 dollarit/arendaja |
Aus skoobi: mida see skanner ei asenda
BaaS-teadlik DAST-skanner on sihitud tööriist, mitte täielik turvaprogramm. See ei:
- Asenda SAST-i ega SCA-d. Staatiline analüüs leiab sõltuvuste CVE-d (Snyk, Semgrep) ja koodi-tasemel haavatavusi (SonarQube), mida DAST-skanner ei suuda. Käivita mõlemad.
- Asenda käsitsi tehtud läbistustestimist. Inimene-pentester leiab ärlilooduslikud vead, autoriseerimise serva-juhtumid ja aheldatud haavatavused, mida ükski skanner ei suuda. Palka pentester enne suuremat lansseerimist või vastavusauditi.
- Auditeeri koodi või repot saladuste suhtes giti ajaloos. Bundle-secrets-kontroll katab seda, mis on praegu juurutatud, mitte seda, mis ajalooliselt kommititud on. Kasuta repo hügieeni jaoks
git-secrets-i võigitleaks-i. - Kata mitte-BaaS-i tagaserveri-teenused. Kui sinu rakendus kasutab kohandatud tagaserverit (Express, Rails, Django, FastAPI), skannib FixVibe selle HTTP-pinda, kuid ei sondeeri selle taga olevat andmebaasi ega infrastruktuuri. See on üldine DAST + SAST territoorium.
Korduma kippuvad küsimused
Kas üldine skannimine töötab, kui mu rakendus kasutab kahte BaaS-pakkujat (nt Supabase + Clerk)?
Jah — pakkuja sõrmejälgede võtmine ja pakkuja-kohased sondid on sõltumatud. Skanner tuvastab mõlemad, jookseb läbi mõlemad kontrollikomplektid ja teatab risti-pakkuja korrelatsioonidest (nt Clerki Supabase'i JWT-mall, mis saadab email väitena, kombineerituna puuduva RLS-iga).
Kuidas see erineb Burp Suite Pro käivitamisest mu rakenduse vastu?
Burp on üldine DAST-tööruum. Karbist välja ei tea Burp, mis on PostgREST, Firestore ega Auth0 callback-rada — sa pead käsitsi skoobi seadistama, laiendusi kirjutama ja vastuseid tõlgendama. FixVibe tarnitakse sisseehitatud BaaS-sondidega ja BaaS-kujulise tõendusmaterjali vormindamisega. Burp võidab üldise veebi-rakenduse katvuse osas (XSS, SQLi, äriloogika); FixVibe võidab BaaS-spetsiifiliste leidude osas.
Mis on App Check'iga (Firebase) või kinnitamisega (Apple / Google)?
App Check muudab oportunistlikud välised skannimised igal sondil 403-i tagastama — õige tulemus pahatahtliku botile. FixVibe-skannimine kinnitamata kliendilt käitub samamoodi. Kui sul on App Check lubatud ja FixVibe teatab ikkagi leide, tähendab see, et sinu reeglid on avatud ka kinnitatud klientidele, mis on tegelik risk. App Check + õiged reeglid on kaitse-sügavuse muster.
Kas skanner saab kontrollida mu paranduse?
Jah — käivita uuesti pärast paranduse rakendamist. Kontrolli ID-d (nt baas.supabase-rls) on käivitusüleselt stabiilsed, nii et saad leide diffida: leid, mis oli käivituses 1 avatud ja käivituses 2 puudub, on tõend, et parandus on jõustunud.
Järgmised sammud
Käivita tasuta FixVibe-skannimine oma tootmise URL-i vastu — BaaS-faasi kontrollid tarnitakse igas plaanis, sealhulgas tasuta tasemel. Pakkuja-spetsiifiliste süvauurimiste jaoks katavad selle jaotise üksikud artiklid iga pakkujat detailselt: Supabase RLS, Supabase service-võtme paljastus, Supabase salvestus, Firebase reeglid, Firebase if-true, Clerk ja Auth0.
