FixVibe

// docs / baas security / umbrella scanner

Scaner de configurări greșite BaaS: găsește căi publice de date înainte ca utilizatorii să o facă

Furnizorii Backend-as-a-Service — Supabase, Firebase, Clerk, Auth0, Appwrite, Convex — eșuează cu toții la securitate în aceeași formă: platforma livrează setări implicite rezonabile, dezvoltatorul (sau instrumentul de codare AI) caută o scurtătură, iar o cale publică se deschide între un atacator neautentificat și datele clienților. Un scaner de configurări greșite BaaS este singurul instrument care sondează acea cale din exterior, așa cum ar face-o un atacator. Acest articol mapează cele cinci clase recurente de configurări greșite, explică cum funcționează scanarea BaaS umbrelă FixVibe, compară cei patru furnizori majori și contrastează scanerul conștient de BaaS cu instrumentele DAST generale.

De ce configurările greșite BaaS au o formă recurentă

Fiecare platformă BaaS urmează aceeași arhitectură: un backend gestionat cu un SDK client subțire care comunică cu el din browser. Clientul orientat spre browser are nevoie de un fel de credențial — o cheie anon, o cheie publicabilă, un ID de proiect Firebase — pentru a se identifica la backend. Acea credențial este intenționat publică; siguranța arhitecturii se bazează pe controalele de acces la nivel de platformă (RLS, reguli, allowlist-uri) făcându-și treaba.

Instrumentele de codare AI construiesc pe această arhitectură fără a internaliza stratul de controale al platformei. Cablează SDK-ul clientului corect, acceptă regulile permisive implicite ale platformei (care există pentru a fi prietenoase cu tutorialele) și livrează. Forma recurentă este: credențial public + regulă permisivă implicită + override lipsă = expunere de date. Cele cinci clase de configurări greșite de mai jos sunt toate variante ale acestei forme.

Cele cinci clase recurente de configurări greșite

Acestea apar la fiecare furnizor BaaS. O scanare completă acoperă toate cele cinci împotriva fiecărui furnizor folosit:

Clasa 1: cheia greșită în bundle-ul browser-ului

Browser-ul livrează cheia secret/admin (Supabase service_role, cheia privată Firebase Admin SDK, Clerk sk_*, secretul de client Auth0) în loc de echivalentul public/anon. Browser-ul devine un client admin neconstrâns. Acoperit de verificarea bundle-secrets a FixVibe.

Clasa 2: stratul de control al accesului dezactivat sau permisiv

RLS este off, regulile Firebase sunt if true, lista de callback Auth0 are wildcards. Credențialul din browser este cel corect — dar granița la nivel de platformă care era menită să-l constrângă nu-și face treaba.

Clasa 3: citiri anonime ale resurselor sensibile

Colecții Firestore citibile anonim, bucket-uri de stocare Supabase listabile anonim, Auth0 management API accesibil anonim. Scanarea întreabă: „fără credențiale, ce pot citi?"

Clasa 4: artefacte de mod test în producție

Chei test (pk_test_*, sb_test_*) într-un deploy de producție; aplicații Firebase în dev-mode accesibile din domeniul live; aplicații Auth0 de test-tenant cu setări mai slabe decât producția. Scanarea compară cheile de runtime cu prefixele de producție așteptate.

Clasa 5: verificarea semnăturii webhook-urilor lipsește

Webhook-urile Clerk, Stripe, Supabase își semnează toate payload-urile. Un handler care nu verifică semnătura este o primitivă de scriere în bază pentru orice atacator care ghicește URL-ul. Detectat prin forma răspunsului — o cerere nesemnată care primește un 200 înseamnă că verificarea este săritura.

Cum funcționează scanarea BaaS umbrelă FixVibe

Faza BaaS a FixVibe rulează în trei etape, fiecare producând rezultate distincte:

  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. Etapa 2 — sonde specifice furnizorului. Pentru fiecare furnizor detectat, scanerul rulează verificarea specifică furnizorului: baas.supabase-rls sondează PostgREST; baas.firebase-rules sondează Firestore + RTDB + Storage; baas.clerk-auth0 validează prefixul cheilor livrate în bundle; verificarea bundle-secrets validează că nicio credențial de nivel service nu a scurs. Fiecare sondă rulează independent — un rezultat Supabase nu blochează scanarea Firebase.
  3. Etapa 3 — corelare între furnizori. Scanerul face referințe încrucișate ale rezultatelor. O cheie service-role Supabase scursă alături de RLS lipsă este mai gravă decât oricare singur — raportul scoate asta în evidență. Mai mulți furnizori de identitate (Clerk + Auth0 + autentificare personalizată) în aceeași aplicație este un rezultat structural marcat pentru revizuire.

Fiecare sondă este pasivă: cel mult o citire anonimă per resursă, cu forma răspunsului înregistrată dar conținutul rândurilor niciodată paginat sau stocat. Sondele de scriere și modificare sunt condiționate de proprietatea verificată a domeniului — nu rulează niciodată împotriva țintelor neverificate.

Ce găsește scanerul pe fiecare furnizor

Fiecare furnizor BaaS are o suprafață diferită și o strategie de scanare diferită. Iată ce este acoperit:

Cum se compară un scaner BaaS cu instrumentele DAST și SAST generale

Un scaner conștient de BaaS face muncă specifică pe care alte instrumente nu o fac. Comparația:

AspectFixVibe (DAST conștient de BaaS)DAST general (Burp / ZAP)SAST / SCA (Snyk / Semgrep)
Acoperire BaaSVerificări native pentru Supabase, Firebase, Clerk, Auth0, AppwriteCrawl web generic; fără sonde specifice furnizorilorAnaliză statică doar a repo-ului; fără validare în producție
Timp de configurareURL → rulează → rezultate în 60 de secundeOre: configurare spider, auth, scopeO zi: integrare în CI-ul repo-ului
Ce dovedeșteExpunere în runtime de producție cu dovezi la nivel HTTPVulnerabilități web (XSS, SQLi); BaaS prin configurare manualăTipare de cod care pot sau nu pot fi deployate
Inspecția bundle-ului JavaScriptDecodează JWT-uri, se potrivește cu prefixe de secrete, parcurge chunk-uriLimitat — doar grep bazat pe șirDa, dar doar la nivel de repo, nu deployat
Scanare continuăLunar / pe deploy prin API + MCPManual; configurează singur programulPer commit (bun pentru cod, orb la runtime)
Preț pentru solo / echipe miciPlan gratuit; plătit de la $19/lunăBurp Pro $499/an; ZAP gratuit dar cu multe falsuri pozitiveSnyk gratuit / Semgrep gratuit; planuri plătite de la $25/dev

Domeniu onest: ce nu înlocuiește acest scaner

Un scaner DAST conștient de BaaS este un instrument concentrat, nu un program complet de securitate. Nu:

  • Înlocuiește SAST sau SCA. Analiza statică găsește CVE-uri de dependențe (Snyk, Semgrep) și vulnerabilități la nivel de cod (SonarQube) pe care un scaner DAST nu le poate. Rulează ambele.
  • Înlocuiește testarea manuală de penetrare. Un pentester uman găsește defecte de logică de business, cazuri marginale de autorizare și vulnerabilități înlănțuite pe care niciun scaner nu le poate. Angajează un pentester înainte de o lansare majoră sau un audit de conformitate.
  • Auditează codul sau repo-ul tău pentru secrete în istoricul git. Verificarea bundle-secrets acoperă ceea ce este deployat în prezent, nu ceea ce a fost istoric comis. Folosește git-secrets sau gitleaks pentru igiena repo-ului.
  • Acoperă serviciile de backend non-BaaS. Dacă aplicația ta folosește un backend personalizat (Express, Rails, Django, FastAPI), FixVibe scanează suprafața sa HTTP, dar nu sondează baza de date sau infrastructura din spatele ei. Acela este teritoriul DAST + SAST general.

Întrebări frecvente

Funcționează scanarea umbrelă dacă aplicația mea folosește doi furnizori BaaS (ex: Supabase + Clerk)?

Da — amprentarea furnizorului și sondele per furnizor sunt independente. Scanerul îi detectează pe amândoi, rulează ambele suite de verificare și raportează corelații între furnizori (ex: un șablon JWT Supabase de la Clerk care livrează email ca claim alături de RLS lipsă).

Cu ce este diferit asta față de a rula Burp Suite Pro împotriva aplicației mele?

Burp este un atelier DAST general. Out of the box, Burp nu știe ce este PostgREST, Firestore sau calea de callback Auth0 — trebuie să configurezi manual scope-ul, să scrii extensii și să interpretezi răspunsurile. FixVibe vine cu sonde BaaS încorporate și formatare de dovezi în formă BaaS. Burp câștigă la acoperirea generală a aplicațiilor web (XSS, SQLi, logică de business); FixVibe câștigă la rezultate specifice BaaS.

Cum rămâne cu App Check (Firebase) sau attestation (Apple / Google)?

App Check face ca scanările externe oportuniste să returneze 403 la fiecare sondă — rezultatul corect pentru un bot malițios. O scanare FixVibe de la un client neatestat se comportă la fel. Dacă ai App Check activat și FixVibe încă raportează rezultate, înseamnă că regulile tale sunt deschise și pentru clienții atestați, ceea ce este riscul real. App Check + reguli corecte este tiparul de defense-in-depth.

Poate scanerul să-mi verifice remedierea?

Da — re-rulează după aplicarea remedierii. ID-urile verificărilor (ex: baas.supabase-rls) sunt stabile între rulări, așa că poți compara rezultatele: un rezultat care era open în rularea 1 și absent în rularea 2 este dovada că remedierea a fost aplicată.

Pași următori

Rulează o scanare FixVibe gratuită împotriva URL-ului tău de producție — verificările fazei BaaS sunt livrate pe fiecare plan, inclusiv pe planul gratuit. Pentru aprofundări specifice furnizorului, articolele individuale din această secțiune acoperă fiecare furnizor în detaliu: RLS Supabase, Expunerea cheii de serviciu Supabase, Stocare Supabase, Reguli Firebase, Firebase if-true, Clerk și Auth0.

// scanează suprafața ta baas

Găsește tabela deschisă înainte să o facă altcineva.

Introdu un URL de producție. FixVibe enumeră furnizorii BaaS cu care comunică aplicația ta, identifică amprenta endpoint-urilor lor publice și raportează ce poate citi sau scrie un client neautentificat. Gratuit, fără instalare, fără card.

  • Plan gratuit — 3 scanări/lună, fără card la înregistrare.
  • Amprentare BaaS pasivă — nu e necesară verificarea domeniului.
  • Supabase, Firebase, Clerk, Auth0, Appwrite și altele.
  • Prompt-uri de remediere AI pe fiecare rezultat — lipește-le înapoi în Cursor / Claude Code.
Rulează o scanare BaaS gratuită

nu necesită înregistrare

Scaner de configurări greșite BaaS: găsește căi publice de date înainte ca utilizatorii să o facă — Docs · FixVibe