// docs / baas security / umbrella scanner
BaaS misconfiguration scanner: users से पहले public data paths ढूँढ़ें
Backend-as-a-Service providers — Supabase, Firebase, Clerk, Auth0, Appwrite, Convex — सभी एक ही आकार में security में fail होते हैं: प्लेटफ़ॉर्म समझदार defaults ship करता है, developer (या AI कोडिंग टूल) एक shortcut के लिए पहुँचता है, और एक unauthenticated हमलावर और customer data के बीच एक public path खुलता है। एक BaaS misconfiguration scanner एकमात्र टूल है जो उस path को बाहर से उसी तरह probe करता है जैसे एक हमलावर करेगा। यह लेख पाँच आवर्ती misconfiguration classes को map करता है, समझाता है कि FixVibe umbrella BaaS scan कैसे काम करता है, चार प्रमुख providers की तुलना करता है, और सामान्य DAST tools के विरुद्ध BaaS-aware scanner का contrast करता है।
BaaS misconfigurations का एक आवर्ती आकार क्यों होता है
हर BaaS प्लेटफ़ॉर्म एक ही architecture का अनुसरण करता है: एक managed backend जिसके साथ एक पतला client SDK है जो browser से इससे बात करता है। Browser-facing client को backend से अपनी पहचान कराने के लिए कुछ credential की आवश्यकता है — एक anon key, एक publishable key, एक Firebase project ID। वह credential जानबूझकर public है; architecture की सुरक्षा प्लेटफ़ॉर्म-level access controls (RLS, rules, allowlists) के अपना काम करने पर निर्भर करती है।
AI कोडिंग टूल इस architecture के ऊपर बिना platform-controls layer को internalise किए build करते हैं। वे client SDK को सही ढंग से wire करते हैं, प्लेटफ़ॉर्म के default permissive rules (जो tutorial-friendliness के लिए मौजूद हैं) को स्वीकार करते हैं, और ship करते हैं। आवर्ती आकार है: public credential + permissive default rule + missing override = data exposure। नीचे की पाँच misconfiguration classes सभी इस आकार के variants हैं।
पाँच आवर्ती misconfiguration classes
ये हर BaaS provider में दिखाई देते हैं। एक पूर्ण scan हर provider के विरुद्ध सभी पाँच को cover करता है:
Class 1: Browser bundle में गलत key
Browser public/anon समकक्ष के बजाय secret/admin key (Supabase service_role, Firebase Admin SDK private key, Clerk sk_*, Auth0 client secret) ship करता है। Browser एक unconstrained admin client बन जाता है। FixVibe के bundle-secrets check द्वारा covered।
Class 2: Access-control layer disabled या permissive
RLS बंद है, Firebase rules if true हैं, Auth0 callback list wildcarded है। Browser में credential सही है — पर प्लेटफ़ॉर्म-level boundary जो इसे constrain करने वाली थी, अपना काम नहीं कर रही।
Class 3: संवेदनशील resources की Anonymous reads
Anon-readable Firestore collections, anon-listable Supabase storage buckets, anon-accessible Auth0 management API। Scan पूछता है: "कोई credentials नहीं, मैं क्या पढ़ सकता हूँ?"
Class 4: Production में Test-mode artefacts
Production deploy में test keys (pk_test_*, sb_test_*); live domain से reachable dev-mode Firebase apps; production की तुलना में कमजोर settings वाले test-tenant Auth0 applications। Scan अपेक्षित production prefixes के विरुद्ध runtime keys की तुलना करता है।
Class 5: Webhook signature verification गायब
Clerk webhooks, Stripe webhooks, Supabase webhooks सभी अपने payloads को sign करते हैं। एक handler जो signature verify नहीं करता, किसी भी हमलावर के लिए database-write primitive है जो URL का अनुमान लगाता है। Response shape के माध्यम से detected — एक unsigned request जो 200 प्राप्त करती है का मतलब verification skipped है।
FixVibe umbrella BaaS scan कैसे काम करता है
FixVibe का BaaS phase तीन चरणों में चलता है, हर एक विशिष्ट findings उत्पन्न करता है:
- <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 — provider-specific probes. हर detected provider के लिए, scanner provider-specific check चलाता है:
baas.supabase-rlsPostgREST को probe करता है;baas.firebase-rulesFirestore + RTDB + Storage को probe करता है;baas.clerk-auth0bundled keys के prefix को validate करता है; bundle-secrets check validate करता है कि कोई service-tier credentials leak नहीं हुई। हर probe स्वतंत्र रूप से चलती है — एक Supabase finding Firebase scan को block नहीं करती। - चरण 3 — cross-provider correlation. Scanner findings को cross-reference करता है। गायब RLS के साथ एक leaked Supabase service-role key केवल एक finding से अधिक गंभीर है — report इसे surface करती है। एक ही app में कई identity providers (Clerk + Auth0 + custom auth) समीक्षा के लिए flagged एक structural finding है।
हर probe passive है: प्रति resource अधिकतम एक anonymous read, response shape record के साथ पर row contents कभी paginated या store नहीं किए जाते। Write और modify probes verified domain ownership के पीछे gated हैं — वे कभी भी unverified targets के विरुद्ध नहीं चलते।
Scanner प्रति provider क्या ढूँढ़ता है
हर BaaS provider की एक अलग सतह और एक अलग scan strategy है। यहाँ क्या covered है:
- Supabase: tables पर गायब RLS, anon-listable storage buckets, bundle में leaked
service_roleJWT याsb_secret_*key, anonymous OpenAPI listing के माध्यम से exposed schemas। Supabase RLS scanner और Storage checklist देखें। - Firebase: Firestore, Realtime Database, और Cloud Storage पर
if truerules; anon-listable Storage buckets; गायब App Check enforcement। Firebase rules scanner और If-true rule explainer देखें। - Clerk: bundled
sk_*secret keys, production मेंpk_test_*, गायब webhook signature verification, wildcard allowed origins। Clerk checklist देखें। - Auth0: bundled client secrets, Implicit grant enabled, wildcard callback / logout URLs, SPAs पर गायब PKCE। Auth0 checklist देखें।
एक BaaS scanner सामान्य DAST और SAST tools की तुलना में कैसा है
एक BaaS-aware scanner विशिष्ट काम करता है जो अन्य tools नहीं करते। तुलना:
| पहलू | FixVibe (BaaS-aware DAST) | सामान्य DAST (Burp / ZAP) | SAST / SCA (Snyk / Semgrep) |
|---|---|---|---|
| BaaS coverage | Supabase, Firebase, Clerk, Auth0, Appwrite के लिए native checks | सामान्य web crawl; कोई provider-specific probes नहीं | केवल repo का static analysis; कोई production validation नहीं |
| Setup time | URL → run → 60 seconds में results | घंटे: spider, auth, scope कॉन्फ़िगर करें | दिन: repo CI में integrate करें |
| यह क्या साबित करता है | HTTP-level evidence के साथ production-runtime exposure | Web-app vulns (XSS, SQLi); BaaS manual config के माध्यम से | Code patterns जो deploy हो सकते हैं या नहीं |
| JavaScript bundle inspection | JWTs decode करता है, secret prefixes match करता है, chunks walk करता है | सीमित — केवल string-based grep | हाँ, पर केवल repo-side, deployed नहीं |
| निरंतर scanning | API + MCP के माध्यम से मासिक / on-deploy | Manual; स्वयं schedule कॉन्फ़िगर करें | Per-commit (code के लिए अच्छा, runtime के लिए अंधा) |
| Solo / छोटी team के लिए मूल्य | मुफ़्त tier; paid $19/माह से | Burp Pro $499/वर्ष; ZAP मुफ़्त पर उच्च false positives | Snyk मुफ़्त / Semgrep मुफ़्त; paid tiers $25/dev से |
ईमानदार scope: यह scanner क्या replace नहीं करता
एक BaaS-aware DAST scanner एक केंद्रित टूल है, एक पूर्ण security program नहीं। यह नहीं करता:
- SAST या SCA को Replace करें। Static analysis dependency CVEs (Snyk, Semgrep) और code-level vulnerabilities (SonarQube) ढूँढ़ता है जो एक DAST scanner नहीं कर सकता। दोनों चलाएँ।
- Manual penetration testing को Replace करें। एक मानव pentester business-logic flaws, authorization edge cases, और chained vulnerabilities ढूँढ़ता है जो कोई scanner नहीं ढूँढ़ सकता। एक प्रमुख launch या compliance audit से पहले एक pentester को hire करें।
- git history में secrets के लिए अपने कोड या repo का audit करें। Bundle-secrets check वर्तमान में जो deployed है उसे cover करता है, ऐतिहासिक रूप से जो committed था वह नहीं। Repo hygiene के लिए
git-secretsयाgitleaksका उपयोग करें। - Non-BaaS backend services को Cover करें। यदि आपकी app एक custom backend (Express, Rails, Django, FastAPI) का उपयोग करती है, FixVibe इसकी HTTP surface को scan करता है पर इसके पीछे database या infrastructure को probe नहीं करता। यह सामान्य DAST + SAST territory है।
अक्सर पूछे जाने वाले प्रश्न
क्या umbrella scan तब काम करता है जब मेरी app दो BaaS providers (जैसे, Supabase + Clerk) का उपयोग करती है?
हाँ — provider fingerprinting और per-provider probes स्वतंत्र हैं। Scanner दोनों को detect करता है, दोनों check suites चलाता है, और cross-provider correlations report करता है (जैसे, Clerk से एक Supabase JWT template जो गायब RLS के साथ email को एक claim के रूप में ship करता है)।
यह अपनी app के विरुद्ध Burp Suite Pro चलाने से कैसे अलग है?
Burp एक सामान्य DAST workbench है। Out of the box, Burp नहीं जानता कि PostgREST, Firestore, या Auth0 callback path क्या है — आपको manually scope कॉन्फ़िगर करना है, extensions लिखना है, और responses को interpret करना है। FixVibe built-in BaaS probes और BaaS-shaped evidence formatting के साथ ship होता है। Burp सामान्य web-app coverage (XSS, SQLi, business logic) पर जीतता है; FixVibe BaaS-specific findings पर जीतता है।
App Check (Firebase) या attestation (Apple / Google) के बारे में क्या?
App Check opportunistic बाहरी scans को हर probe पर 403 return करने पर मजबूर करता है — एक दुर्भावनापूर्ण bot के लिए सही outcome। एक unattested client से FixVibe scan उसी तरह व्यवहार करता है। यदि आपके पास App Check enabled है और FixVibe फिर भी findings report करता है, तो इसका मतलब है कि आपके rules attested clients के लिए भी खुले हैं, जो वास्तविक risk है। App Check + सही rules defense-in-depth pattern है।
क्या scanner मेरे फ़िक्स को verify कर सकता है?
हाँ — फ़िक्स लागू करने के बाद फिर से चलाएँ। Check IDs (जैसे, baas.supabase-rls) runs में stable हैं, इसलिए आप findings को diff कर सकते हैं: एक finding जो run 1 में open थी और run 2 में अनुपस्थित है, फ़िक्स के land होने का प्रमाण है।
अगले कदम
अपने production URL के विरुद्ध एक मुफ़्त FixVibe scan चलाएँ — BaaS-phase checks मुफ़्त tier सहित हर plan पर ship होते हैं। Provider-specific deep-dives के लिए, इस section में व्यक्तिगत लेख हर provider को विस्तार से cover करते हैं: Supabase RLS, Supabase service-key exposure, Supabase storage, Firebase rules, Firebase if-true, Clerk, और Auth0।
