FixVibe

// docs / baas security / umbrella scanner

Scanner miskonfigurasi BaaS: temukan jalur data publik sebelum user

Penyedia Backend-as-a-Service โ€” Supabase, Firebase, Clerk, Auth0, Appwrite, Convex โ€” semuanya gagal dalam keamanan dengan bentuk yang sama: platform mengirimkan default yang masuk akal, pengembang (atau AI coding tool) mengambil pintasan, dan jalur publik terbuka antara penyerang tidak terautentikasi dan data pelanggan. Scanner miskonfigurasi BaaS adalah satu-satunya tool yang menyondir jalur itu dari luar dengan cara yang akan dilakukan penyerang. Artikel ini memetakan lima kelas miskonfigurasi berulang, menjelaskan bagaimana scan BaaS payung FixVibe bekerja, membandingkan empat penyedia utama, dan membandingkan scanner sadar-BaaS dengan tool DAST umum.

Mengapa miskonfigurasi BaaS memiliki bentuk berulang

Setiap platform BaaS mengikuti arsitektur yang sama: backend terkelola dengan SDK klien tipis yang berbicara dengannya dari browser. Klien yang menghadap browser memerlukan beberapa kredensial โ€” anon key, publishable key, project ID Firebase โ€” untuk mengidentifikasi dirinya ke backend. Kredensial itu sengaja publik; keamanan arsitektur bertumpu pada kontrol akses tingkat platform (RLS, aturan, allowlist) melakukan tugasnya.

AI coding tools membangun di atas arsitektur ini tanpa menginternalisasi lapisan kontrol platform. Mereka menyambungkan SDK klien dengan benar, menerima aturan default platform yang permisif (yang ada untuk keramahan tutorial), dan mengirim. Bentuk berulangnya adalah: kredensial publik + aturan default permisif + override yang hilang = paparan data. Lima kelas miskonfigurasi di bawah ini semuanya adalah varian dari bentuk ini.

Lima kelas miskonfigurasi berulang

Ini muncul di setiap penyedia BaaS. Scan lengkap mencakup kelima terhadap setiap penyedia yang digunakan:

Kelas 1: Key salah di bundle browser

Browser mengirim key rahasia/admin (service_role Supabase, private key Firebase Admin SDK, sk_* Clerk, client secret Auth0) alih-alih padanan publik/anon. Browser menjadi klien admin tanpa batasan. Dicakup oleh check bundle-secrets FixVibe.

Kelas 2: Lapisan kontrol akses dinonaktifkan atau permisif

RLS mati, aturan Firebase adalah if true, daftar callback Auth0 di-wildcard. Kredensial di browser adalah yang benar โ€” tetapi batas tingkat platform yang dimaksudkan untuk membatasinya tidak melakukan tugasnya.

Kelas 3: Baca anonim atas sumber daya sensitif

Koleksi Firestore yang dapat dibaca anon, bucket storage Supabase yang dapat di-list anon, Auth0 management API yang dapat diakses anon. Scan bertanya: "tanpa kredensial, apa yang dapat saya baca?"

Kelas 4: Artefak mode test di produksi

Key test (pk_test_*, sb_test_*) di deploy produksi; aplikasi Firebase mode dev dapat dijangkau dari domain live; aplikasi Auth0 tenant test dengan pengaturan lebih lemah daripada produksi. Scan membandingkan key runtime terhadap prefix produksi yang diharapkan.

Kelas 5: Verifikasi tanda tangan webhook tidak ada

Webhook Clerk, webhook Stripe, webhook Supabase semuanya menandatangani payload mereka. Handler yang tidak memverifikasi tanda tangan adalah primitif tulis-database untuk penyerang mana pun yang menebak URL. Terdeteksi via bentuk response โ€” request tidak ditandatangani yang mendapat 200 berarti verifikasi dilewatkan.

Bagaimana scan BaaS payung FixVibe bekerja

Fase BaaS FixVibe berjalan dalam tiga tahap, masing-masing menghasilkan temuan berbeda:

  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. Tahap 2 โ€” sondir spesifik penyedia. Untuk setiap penyedia yang terdeteksi, scanner menjalankan check spesifik penyedia: baas.supabase-rls menyondir PostgREST; baas.firebase-rules menyondir Firestore + RTDB + Storage; baas.clerk-auth0 memvalidasi prefix key yang ter-bundle; check bundle-secrets memvalidasi bahwa tidak ada kredensial tingkat-service yang bocor. Setiap sondir berjalan secara independen โ€” temuan Supabase tidak memblokir scan Firebase.
  3. Tahap 3 โ€” korelasi lintas-penyedia. Scanner merujuk silang temuan. Service-role key Supabase yang bocor di samping RLS yang hilang lebih parah daripada temuan salah satunya saja โ€” laporan memunculkan ini. Beberapa identity provider (Clerk + Auth0 + auth kustom) dalam aplikasi yang sama adalah temuan struktural yang ditandai untuk ditinjau.

Setiap sondir bersifat pasif: paling banyak satu baca anonim per sumber daya, dengan bentuk response dicatat tetapi isi baris tidak pernah dipaginasi atau disimpan. Sondir tulis dan modifikasi diperketat di balik verifikasi kepemilikan domain โ€” mereka tidak pernah berjalan terhadap target yang belum diverifikasi.

Apa yang ditemukan scanner per penyedia

Setiap penyedia BaaS memiliki permukaan berbeda dan strategi scan yang berbeda. Inilah yang tercakup:

  • Supabase: RLS yang hilang pada tabel, bucket storage yang dapat di-list anon, JWT service_role atau key sb_secret_* yang bocor di bundle, skema yang terekspos via daftar OpenAPI anonim. Lihat Scanner RLS Supabase dan Checklist storage.
  • Firebase: aturan if true pada Firestore, Realtime Database, dan Cloud Storage; bucket Storage yang dapat di-list anon; penegakan App Check yang hilang. Lihat Scanner aturan Firebase dan Penjelasan aturan if-true.
  • Clerk: secret key sk_* yang ter-bundle, pk_test_* di produksi, verifikasi tanda tangan webhook yang hilang, origin yang diizinkan wildcard. Lihat Checklist Clerk.
  • Auth0: client secret yang ter-bundle, grant Implicit diaktifkan, URL callback / logout wildcard, PKCE yang hilang pada SPA. Lihat Checklist Auth0.

Bagaimana scanner BaaS dibandingkan dengan tool DAST dan SAST umum

Scanner sadar-BaaS melakukan pekerjaan spesifik yang tidak dilakukan tool lain. Perbandingannya:

AspekFixVibe (DAST sadar-BaaS)DAST umum (Burp / ZAP)SAST / SCA (Snyk / Semgrep)
Cakupan BaaSCheck native untuk Supabase, Firebase, Clerk, Auth0, AppwriteCrawl web generik; tanpa sondir spesifik penyediaAnalisis statis hanya repo; tanpa validasi produksi
Waktu setupURL โ†’ jalankan โ†’ hasil dalam 60 detikBerjam-jam: konfigurasi spider, auth, scopeSehari: integrasikan ke CI repo
Apa yang dibuktikannyaEksposur runtime produksi dengan bukti tingkat-HTTPVuln web-app (XSS, SQLi); BaaS via konfigurasi manualPola kode yang mungkin atau tidak ter-deploy
Inspeksi bundle JavaScriptMendekode JWT, mencocokkan prefix secret, berjalan melalui chunkTerbatas โ€” hanya grep berbasis stringYa, tetapi hanya sisi repo, tidak ter-deploy
Scan kontinuBulanan / saat-deploy via API + MCPManual; konfigurasi jadwal sendiriPer-commit (bagus untuk kode, buta terhadap runtime)
Harga untuk solo / tim kecilTier gratis; berbayar mulai $19/blnBurp Pro $499/thn; ZAP gratis tetapi banyak false positiveSnyk gratis / Semgrep gratis; tier berbayar mulai $25/dev

Lingkup yang jujur: apa yang tidak digantikan scanner ini

Scanner DAST sadar-BaaS adalah tool yang terfokus, bukan program keamanan lengkap. Ia tidak:

  • Menggantikan SAST atau SCA. Analisis statis menemukan CVE dependensi (Snyk, Semgrep) dan kerentanan tingkat-kode (SonarQube) yang tidak dapat dilakukan scanner DAST. Jalankan keduanya.
  • Menggantikan pengujian penetrasi manual. Pentester manusia menemukan cacat logika bisnis, kasus tepi otorisasi, dan kerentanan yang dirantai yang tidak dapat dilakukan scanner mana pun. Pekerjakan pentester sebelum peluncuran besar atau audit kepatuhan.
  • Mengaudit kode atau repo Anda untuk secret di history git. Check bundle-secrets mencakup apa yang saat ini ter-deploy, bukan apa yang secara historis di-commit. Gunakan git-secrets atau gitleaks untuk kebersihan repo.
  • Mencakup layanan backend non-BaaS. Jika aplikasi Anda menggunakan backend kustom (Express, Rails, Django, FastAPI), FixVibe men-scan permukaan HTTP-nya tetapi tidak menyondir database atau infrastruktur di belakangnya. Itu adalah wilayah DAST + SAST umum.

Pertanyaan yang sering diajukan

Apakah scan payung bekerja jika aplikasi saya menggunakan dua penyedia BaaS (mis. Supabase + Clerk)?

Ya โ€” fingerprinting penyedia dan sondir per-penyedia bersifat independen. Scanner mendeteksi keduanya, menjalankan kedua suite check, dan melaporkan korelasi lintas-penyedia (mis. template JWT Supabase dari Clerk yang mengirim email sebagai claim di samping RLS yang hilang).

Bagaimana ini berbeda dari menjalankan Burp Suite Pro terhadap aplikasi saya?

Burp adalah workbench DAST umum. Di luar kotak, Burp tidak tahu apa itu PostgREST, Firestore, atau path callback Auth0 โ€” Anda harus mengonfigurasi scope secara manual, menulis ekstensi, dan menafsirkan response. FixVibe dikirim dengan sondir BaaS bawaan dan format bukti yang berbentuk-BaaS. Burp menang pada cakupan web-app umum (XSS, SQLi, logika bisnis); FixVibe menang pada temuan spesifik-BaaS.

Bagaimana dengan App Check (Firebase) atau attestation (Apple / Google)?

App Check membuat scan eksternal oportunistik mengembalikan 403 pada setiap sondir โ€” hasil yang benar untuk bot jahat. Scan FixVibe dari klien yang tidak diatestasi berperilaku dengan cara yang sama. Jika Anda mengaktifkan App Check dan FixVibe masih melaporkan temuan, itu berarti aturan Anda terbuka untuk klien yang diatestasi juga, yang merupakan risiko sebenarnya. App Check + aturan yang benar adalah pola defense-in-depth.

Dapatkah scanner memverifikasi perbaikan saya?

Ya โ€” jalankan ulang setelah menerapkan perbaikan. ID check (mis. baas.supabase-rls) stabil di seluruh run, jadi Anda dapat men-diff temuan: temuan yang open di run 1 dan absen di run 2 adalah bukti perbaikan mendarat.

Langkah berikutnya

Jalankan scan FixVibe gratis terhadap URL produksi Anda โ€” check fase-BaaS dikirim pada setiap paket, termasuk tier gratis. Untuk pendalaman spesifik penyedia, artikel individual di bagian ini mencakup setiap penyedia secara detail: Supabase RLS, Eksposur service-key Supabase, Supabase storage, Aturan Firebase, Firebase if-true, Clerk, dan Auth0.

// scan permukaan baas anda

Temukan tabel terbuka itu sebelum orang lain menemukannya.

Masukkan URL produksi. FixVibe mengenumerasi penyedia BaaS yang berkomunikasi dengan aplikasi Anda, mengidentifikasi endpoint publiknya, dan melaporkan apa yang dapat dibaca atau ditulis oleh klien yang tidak terautentikasi. Gratis, tanpa instalasi, tanpa kartu.

  • Tier gratis โ€” 3 scan / bulan, tanpa kartu untuk pendaftaran.
  • Fingerprinting BaaS pasif โ€” tidak perlu verifikasi domain.
  • Supabase, Firebase, Clerk, Auth0, Appwrite, dan lainnya.
  • Prompt perbaikan AI di setiap temuan โ€” tempel kembali ke Cursor / Claude Code.
Jalankan scan BaaS gratis โ†’

tidak perlu pendaftaran

Scanner miskonfigurasi BaaS: temukan jalur data publik sebelum user โ€” Docs ยท FixVibe