FixVibe
Covered by FixVibehigh

Peraturan Keselamatan Firebase: Mencegah Pendedahan Data Tanpa Kebenaran

Peraturan Keselamatan Firebase ialah pertahanan utama untuk aplikasi tanpa pelayan menggunakan Firestore dan Cloud Storage. Apabila peraturan ini terlalu permisif, seperti membenarkan akses baca atau tulis global dalam pengeluaran, penyerang boleh memintas logik aplikasi yang dimaksudkan untuk mencuri atau memadam data sensitif. Penyelidikan ini meneroka salah konfigurasi biasa, risiko lalai 'mod ujian' dan cara melaksanakan kawalan akses berasaskan identiti.

CWE-284CWE-863

Peraturan Keselamatan Firebase menyediakan mekanisme berbutir, dikuatkuasakan pelayan untuk melindungi data dalam Firestore, Pangkalan Data Masa Nyata dan Storan Awan [S1]. Oleh kerana aplikasi Firebase sering berinteraksi dengan perkhidmatan awan ini secara langsung dari pihak pelanggan, peraturan ini mewakili satu-satunya halangan yang menghalang akses tanpa kebenaran kepada data hujung belakang [S1].

Kesan Peraturan Permisif

Peraturan yang salah konfigurasi boleh membawa kepada pendedahan data yang ketara [S2]. Jika peraturan ditetapkan menjadi terlalu permisif—contohnya, menggunakan tetapan 'mod ujian' lalai yang membenarkan akses global—mana-mana pengguna yang mempunyai pengetahuan tentang ID projek boleh membaca, mengubah suai atau memadam keseluruhan kandungan pangkalan data [S2]. Ini memintas semua langkah keselamatan pihak pelanggan dan boleh mengakibatkan kehilangan maklumat pengguna sensitif atau gangguan perkhidmatan menyeluruh [S2].

Punca Punca: Logik Kebenaran Tidak Mencukupi

Punca kelemahan ini biasanya adalah kegagalan untuk melaksanakan syarat khusus yang menyekat akses berdasarkan identiti pengguna atau atribut sumber [S3]. Pembangun kerap membiarkan konfigurasi lalai aktif dalam persekitaran pengeluaran yang tidak mengesahkan objek request.auth [S3]. Tanpa menilai request.auth, sistem tidak dapat membezakan antara pengguna yang disahkan sah dan peminta tanpa nama [S3].

Pemulihan Teknikal

Melindungi persekitaran Firebase memerlukan beralih daripada akses terbuka kepada model keistimewaan utama.

  • Kuatkuasakan Pengesahan: Pastikan semua laluan sensitif memerlukan sesi pengguna yang sah dengan menyemak sama ada objek request.auth bukan [S3] nol.
  • Laksanakan Akses Berasaskan Identiti: Konfigurasikan peraturan yang membandingkan UID pengguna (request.auth.uid) dengan medan dalam dokumen atau ID dokumen itu sendiri untuk memastikan pengguna hanya boleh mengakses data mereka sendiri [S3].
  • Skop Kebenaran Berbutir: Elakkan kad bebas global untuk koleksi. Sebaliknya, tentukan peraturan khusus untuk setiap koleksi dan sub-koleksi untuk meminimumkan potensi permukaan serangan [S2].
  • Pengesahan melalui Suite Emulator: Gunakan Firebase Emulator Suite untuk menguji peraturan keselamatan secara setempat. Ini membolehkan pengesahan logik kawalan akses terhadap pelbagai persona pengguna sebelum digunakan ke persekitaran langsung [S2].

Bagaimana FixVibe mengujinya

FixVibe kini menyertakan ini sebagai imbasan BaaS baca sahaja. baas.firebase-rules mengekstrak konfigurasi Firebase daripada himpunan JavaScript asal yang sama, termasuk bentuk himpunan initializeApp(...) moden, kemudian menyemak Pangkalan Data Masa Nyata, Firestore dan Penyimpanan Firebase yang dibaca tanpa dihentikan. Untuk Firestore, ia mula-mula mencuba penyenaraian koleksi akar; apabila penyenaraian disekat, ia juga menyiasat nama koleksi sensitif biasa seperti users, accounts, customers, orders, ZXCVFIXZVIBETOK, messages, admin dan settings. Ia hanya melaporkan bacaan atau penyenaraian tanpa nama yang berjaya dan tidak menulis, memadam atau menyimpan kandungan dokumen pelanggan.