// docs / baas security / umbrella scanner
BaaS սխալ կարգավորման սկաներ․ գտիր հանրային տվյալների ուղիները, քանի դեռ օգտատերերը չեն
Backend-as-a-Service մատակարարները — Supabase, Firebase, Clerk, Auth0, Appwrite, Convex — բոլորն ձախողվում են անվտանգության մեջ նույն ձևով․ հարթակն առաքում է ողջամիտ լռելյայններ, ծրագրավորողը (կամ AI-ի կոդավորման գործիքը) հասնում է կարճուղու, և հանրային ուղի է բացվում չվավերացված հարձակվողի և հաճախորդի տվյալների միջև։ BaaS սխալ կարգավորման սկաները միակ գործիքն է, որ ստուգում է այդ ուղին դրսից այնպես, ինչպես հարձակվողը կաներ։ Այս հոդվածը քարտեզագրում է կրկնվող սխալ կարգավորման հինգ դասերը, բացատրում, թե ինչպես է աշխատում FixVibe-ի umbrella BaaS սկանը, համեմատում չորս հիմնական մատակարարներին, և հակադրում BaaS-ին տեղյակ սկաները ընդհանուր DAST գործիքների հետ։
Ինչու BaaS սխալ կարգավորումներն ունեն կրկնվող ձև
Յուրաքանչյուր BaaS հարթակ հետևում է նույն ճարտարապետությանը․ կառավարվող backend, թին client SDK-ով, որ նրա հետ խոսում է զննարկչից։ Զննարկչին նայող client-ին անհրաժեշտ է որևէ հավատարմագիր — anon բանալի, publishable բանալի, Firebase project ID — backend-ին իրեն նույնականացնելու համար։ Այդ հավատարմագիրը նպատակային հանրային է. ճարտարապետության անվտանգությունը հենվում է հարթակ-մակարդակի մուտքի վերահսկման (RLS, rules, allowlist-ներ) իր գործն անելու վրա։
AI-ի կոդավորման գործիքները կառուցում են այս ճարտարապետության վրա, առանց ներքաշելու հարթակ-վերահսկման շերտը։ Նրանք լարում են client SDK-ն ճիշտ, ընդունում հարթակի լռելյայն թույլտու կանոնները (որ գոյություն ունեն ձեռնարկ-բարեկամ լինելու համար), և առաքում։ Կրկնվող ձևն է․ հանրային հավատարմագիր + թույլտու լռելյայն կանոն + բացակայող override = տվյալների բացահայտում։ Ստորև սխալ կարգավորման հինգ դասերը այս ձևի տարբերակներն են։
Կրկնվող սխալ կարգավորման հինգ դասերը
Սրանք հայտնվում են յուրաքանչյուր BaaS մատակարարի մոտ։ Ամբողջական սկանն ընդգրկում է բոլոր հինգը՝ յուրաքանչյուր օգտագործվող մատակարարի դեմ․
Դաս 1․ Սխալ բանալին զննարկիչի bundle-ում
Զննարկիչը առաքում է secret/admin բանալին (Supabase service_role, Firebase Admin SDK մասնավոր բանալի, Clerk sk_*, Auth0 client secret) public/anon համարժեքի փոխարեն։ Զննարկիչը դառնում է չսահմանափակ admin client։ Ընդգրկված է FixVibe-ի bundle-secrets ստուգման կողմից։
Դաս 2․ Մուտքի-վերահսկման շերտը անջատված կամ թույլտու
RLS-ն անջատված է, Firebase rules-ը if true է, Auth0 callback ցուցակը wildcard-ով։ Զննարկչում գտնվող հավատարմագիրը ճիշտն է — բայց հարթակ-մակարդակի սահմանը, որը պետք էր սահմանափակեր, իր գործը չի անում։
Դաս 3․ Զգայուն ռեսուրսների անանուն ընթերցումներ
Anon-ընթերցելի Firestore collection-ներ, anon-listable Supabase storage bucket-ներ, anon-մատչելի Auth0 management API։ Սկանը հարցնում է․ «առանց հավատարմագրերի, ի՞նչ կարող եմ կարդալ»։
Դաս 4․ Թեստ-ռեժիմի արտեֆակտներ production-ում
Test բանալիներ (pk_test_*, sb_test_*) production deploy-ում. dev-ռեժիմի Firebase հավելվածներ՝ հասանելի live տիրույթից. test-tenant Auth0 հավելվածներ՝ ավելի թույլ կարգավորումներով, քան production-ը։ Սկանը համեմատում է runtime բանալիները ակնկալվող production նախածանցների դեմ։
Դաս 5․ Webhook-ի ստորագրության վավերացումը բացակայում է
Clerk webhook-ները, Stripe webhook-ները, Supabase webhook-ները բոլորն ստորագրում են իրենց payload-ները։ Handler, որ չի վավերացնում ստորագրությունը, տվյալների բազայի-գրառման պրիմիտիվ է ցանկացած հարձակվողի համար, ով գուշակում է URL-ը։ Հայտնաբերվում է պատասխանի ձևի միջոցով — չստորագրված հարցում, որ ստանում է 200, նշանակում է, որ վավերացումը բաց է թողնված։
Ինչպես է աշխատում FixVibe-ի umbrella BaaS սկանը
FixVibe-ի BaaS փուլն աշխատում է երեք փուլով, ամեն մեկն արտադրելով տարբեր գտածոներ․
- <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 — մատակարար-հատուկ ստուգումներ։ Յուրաքանչյուր հայտնաբերված մատակարարի համար, սկաները գործարկում է մատակարար-հատուկ ստուգում․
baas.supabase-rls-ն ստուգում է PostgREST-ը.baas.firebase-rules-ն ստուգում է Firestore-ը + RTDB-ն + Storage-ը.baas.clerk-auth0-ն վավերացնում է bundle-ված բանալիների նախածանցը. bundle-secrets ստուգումն վավերացնում է, որ ոչ մի service-մակարդակի հավատարմագիր չի արտահոսել։ Յուրաքանչյուր ստուգում աշխատում է անկախ — Supabase գտածոն չի արգելափակում Firebase սկանը։ - Փուլ 3 — մատակարարների միջև փոխկապակցում։ Սկաները խաչաձև հղում է անում գտածոներին։ Արտահոսած Supabase service-role բանալին բացակայող RLS-ի կողքին ավելի լուրջ է, քան որևէ մեկը առանձին — հաշվետվությունն այս պատկերում է։ Մի քանի ինքնության մատակարարներ (Clerk + Auth0 + custom auth) նույն հավելվածում կառուցվածքային գտածո է՝ վերանայման համար նշված։
Յուրաքանչյուր ստուգում պասիվ է․ առավելագույնը մեկ անանուն ընթերցում մեկ ռեսուրսի համար, պատասխանի ձևով գրառված, բայց տողի բովանդակությունը երբեք չի էջագնվում կամ պահպանվում։ Գրառման և փոփոխման ստուգումները սահմանափակված են հաստատված տիրույթի սեփականությամբ — դրանք երբեք չեն աշխատում չհաստատված թիրախների դեմ։
Ինչ է գտնում սկաները յուրաքանչյուր մատակարարի մոտ
Յուրաքանչյուր BaaS մատակարար ունի տարբեր մակերես և տարբեր սկանի ռազմավարություն։ Ահա ինչ է ընդգրկված․
- Supabase․ table-ների վրա բացակայող RLS, anon-listable storage bucket-ներ, bundle-ում արտահոսած
service_roleJWT կամsb_secret_*բանալի, սխեմաների բացահայտում անանուն OpenAPI listing-ի միջոցով։ Տես Supabase RLS սկաներ և Storage ստուգաթերթ։ - Firebase․
if trueկանոններ Firestore-ի, Realtime Database-ի և Cloud Storage-ի վրա. anon-listable Storage bucket-ներ. բացակայող App Check պարտադրում։ Տես Firebase rules սկաներ և If-true կանոնի բացատրիչ։ - Clerk․ bundle-ված
sk_*secret բանալիներ,pk_test_*production-ում, բացակայող webhook-ի ստորագրության վավերացում, wildcard թույլատրված origin-ներ։ Տես Clerk ստուգաթերթ։ - Auth0․ bundle-ված client secret-ներ, միացված Implicit grant, wildcard callback / logout URL-ներ, SPA-ների վրա բացակայող PKCE։ Տես Auth0 ստուգաթերթ։
Ինչպես է BaaS սկաները համեմատվում ընդհանուր DAST և SAST գործիքների հետ
BaaS-ին տեղյակ սկաները կատարում է հատուկ աշխատանք, որ այլ գործիքները չեն։ Համեմատությունը․
| Ասպեկտ | FixVibe (BaaS-ին տեղյակ DAST) | Ընդհանուր DAST (Burp / ZAP) | SAST / SCA (Snyk / Semgrep) |
|---|---|---|---|
| BaaS ծածկույթ | Բնիկ ստուգումներ Supabase-ի, Firebase-ի, Clerk-ի, Auth0-ի, Appwrite-ի համար | Ընդհանուր web crawl. ոչ մատակարար-հատուկ ստուգումներ | Միայն repo-ի ստատիկ վերլուծություն. ոչ production վավերացում |
| Setup-ի ժամանակ | URL → գործարկում → արդյունքներ 60 վայրկյանում | Ժամեր․ կարգավորիր spider, auth, scope | Օր․ ինտեգրիր repo CI-ին |
| Ինչ է ապացուցում | Production-runtime բացահայտում HTTP-մակարդակի ապացույցով | Web-հավելվածի խոցելիություններ (XSS, SQLi). BaaS-ը ձեռքով կարգավորմամբ | Կոդի նմուշներ, որ կարող են deploy լինել կամ ոչ |
| JavaScript bundle-ի ստուգում | Ապակոդավորում է JWT-ները, համապատասխանեցնում secret նախածանցները, քայլում chunk-ները | Սահմանափակ — միայն string-հիմքով grep | Այո, բայց միայն repo-կողմ, ոչ թողարկված |
| Շարունակական սկանավորում | Ամսական / on-deploy API + MCP-ի միջոցով | Ձեռքով. կարգավորիր ժամանակացույցը ինքդ | Commit-ի համար (լավ կոդի համար, կույր runtime-ի համար) |
| Գին մենակ / փոքր թիմի համար | Անվճար փաթեթ. վճարովի $19/ամսից | Burp Pro $499/տարի. ZAP անվճար, բայց բարձր false positive-ներով | Snyk անվճար / Semgrep անվճար. վճարովի փաթեթներ $25/dev-ից |
Ազնիվ շրջանակ․ ինչը չի փոխարինում այս սկաները
BaaS-ին տեղյակ DAST սկաները կենտրոնացած գործիք է, ոչ լրիվ անվտանգության ծրագիր։ Այն չի անում.
- Փոխարինում SAST-ին կամ SCA-ին։ Ստատիկ վերլուծությունը գտնում է dependency CVE-ներ (Snyk, Semgrep) և կոդ-մակարդակի խոցելիություններ (SonarQube), որոնք DAST սկաները չի կարող։ Գործարկիր երկուսն էլ։
- Փոխարինում ձեռքով penetration testing-ին։ Մարդ pentester-ը գտնում է բիզնես-լոգիկայի թերություններ, վավերացման եզրային դեպքեր և շղթայված խոցելիություններ, որոնք ոչ մի սկաներ չի կարող։ Վարձիր pentester խոշոր մեկնարկից կամ compliance աուդիտից առաջ։
- Աուդիտել քո կոդը կամ repo-ն git պատմությունում secret-ների համար։ Bundle-secrets ստուգումն ընդգրկում է այն, ինչ ներկայումս թողարկված է, ոչ թե այն, ինչ պատմականորեն commit է եղել։ Օգտագործիր
git-secretsկամgitleaksrepo հիգիենայի համար։ - Ընդգրկում ոչ-BaaS backend ծառայությունները։ Եթե քո հավելվածն օգտագործում է custom backend (Express, Rails, Django, FastAPI), FixVibe-ը սկանավորում է նրա HTTP մակերեսը, բայց չի ստուգում նրա ետևի տվյալների բազան կամ ենթակառուցվածքը։ Դա ընդհանուր DAST + SAST տարածք է։
Հաճախակի տրվող հարցեր
Աշխատու՞մ է umbrella սկանը, եթե իմ հավելվածն օգտագործում է երկու BaaS մատակարար (օրինակ՝ Supabase + Clerk)։
Այո — մատակարարի fingerprinting-ը և մատակարար-հատուկ ստուգումներն անկախ են։ Սկաները հայտնաբերում է երկուսը, գործարկում երկու ստուգման հավաքածուները և հաշվետվում մատակարարների միջև փոխկապակցումները (օրինակ՝ Supabase JWT template Clerk-ից, որ առաքում է email-ը որպես claim բացակայող RLS-ի կողքին)։
Ինչպե՞ս է սա տարբերվում Burp Suite Pro-ն իմ հավելվածի դեմ գործարկելուց։
Burp-ն ընդհանուր DAST workbench է։ Տուփից դուրս, Burp-ը չգիտի, թե ինչ է PostgREST-ը, Firestore-ը կամ Auth0 callback ուղին — դու պետք է ձեռքով կարգավորես scope-ը, գրես extension-ներ և մեկնաբանես պատասխանները։ FixVibe-ը առաքվում է ներկառուցված BaaS ստուգումներով և BaaS-ձև ապացույցների ֆորմատավորմամբ։ Burp-ը հաղթում է ընդհանուր web-հավելվածի ծածկույթում (XSS, SQLi, business logic). FixVibe-ը հաղթում է BaaS-հատուկ գտածոներում։
Իսկ App Check-ը (Firebase) կամ attestation-ը (Apple / Google)։
App Check-ը ստիպում է հնարավորություն-փնտրող արտաքին սկաններին վերադարձնել 403 յուրաքանչյուր ստուգման ժամանակ — ճիշտ արդյունքը վնասակար bot-ի համար։ FixVibe սկանն չ-attest արված client-ից վարվում է նույն ձևով։ Եթե դու ունես App Check միացված և FixVibe-ը դեռ գտածոներ է հաշվետու, դա նշանակում է, որ քո կանոնները բաց են նաև attest-արված client-ների համար, ինչը իրական ռիսկն է։ App Check + ճիշտ կանոնները խորության-մեջ-պաշտպանության նմուշն են։
Կարո՞ղ է սկաները ստուգել իմ շտկումը։
Այո — կրկին գործարկիր շտկումը կիրառելուց հետո։ Ստուգման ID-ները (օրինակ՝ baas.supabase-rls) կայուն են գործարկումների միջև, այնպես որ կարող ես տարբերակել գտածոները․ գտածո, որ open էր գործարկում 1-ում և բացակայում էր գործարկում 2-ում, ապացույց է, որ շտկումը կիրառվել է։
Հաջորդ քայլեր
Գործարկիր անվճար FixVibe սկան քո production URL-ի դեմ — BaaS-փուլի ստուգումներն առաքվում են բոլոր փաթեթներում՝ ներառյալ անվճար փաթեթը։ Մատակարար-հատուկ խորը-սուզումների համար այս բաժնի առանձին հոդվածներն ընդգրկում են յուրաքանչյուր մատակարարը մանրամասն․ Supabase RLS, Supabase service-key-ի բացահայտում, Supabase storage, Firebase rules, Firebase if-true, Clerk, և Auth0։
