FixVibe
Covered by FixVibehigh

Firebase Təhlükəsizlik Qaydaları: İcazəsiz Məlumatlara məruz qalmanın qarşısının alınması

Firebase Təhlükəsizlik Qaydaları Firestore və Cloud Storage istifadə edən serversiz proqramlar üçün əsas müdafiədir. İstehsalda qlobal oxumaq və ya yazmaq imkanı vermək kimi bu qaydalar həddən artıq icazəli olduqda, təcavüzkarlar həssas məlumatları oğurlamaq və ya silmək üçün nəzərdə tutulan proqram məntiqindən yan keçə bilərlər. Bu tədqiqat ümumi yanlış konfiqurasiyaları, "test rejimi" defoltlarının risklərini və şəxsiyyətə əsaslanan giriş nəzarətinin necə həyata keçiriləcəyini araşdırır.

CWE-284CWE-863

Firebase Təhlükəsizlik Qaydaları Firestore, Realtime Database və Cloud Storage [S1]-də məlumatları qorumaq üçün dənəvər, server tərəfindən tətbiq edilən mexanizm təmin edir. Firebase proqramları tez-tez bu bulud xidmətləri ilə birbaşa müştəri tərəfindən qarşılıqlı əlaqədə olduğundan, bu qaydalar [S1] backend məlumatlarına icazəsiz girişin qarşısını alan yeganə maneədir.

İcazə Verən Qaydaların Təsiri

Yanlış konfiqurasiya edilmiş qaydalar [S2] əhəmiyyətli məlumatların ifşasına səbəb ola bilər. Qaydalar həddən artıq icazəli olaraq təyin edilibsə - məsələn, qlobal girişə icazə verən standart "test rejimi" parametrlərindən istifadə etməklə - layihə ID-si haqqında məlumatı olan istənilən istifadəçi [S2] verilənlər bazası məzmununu oxuya, dəyişdirə və ya silə bilər. Bu, bütün müştəri tərəfi təhlükəsizlik tədbirlərindən yan keçir və həssas istifadəçi məlumatının itirilməsi və ya [S2] xidmətinin tam pozulması ilə nəticələnə bilər.

Kök Səbəb: Yetərsiz Avtorizasiya Məntiqi

Bu zəifliklərin əsas səbəbi adətən istifadəçi şəxsiyyəti və ya [S3] resurs atributları əsasında girişi məhdudlaşdıran xüsusi şərtlərin həyata keçirilməməsidir. Tərtibatçılar tez-tez request.auth [S3] obyektini təsdiq etməyən istehsal mühitlərində defolt konfiqurasiyaları aktiv buraxırlar. request.auth-ni qiymətləndirmədən sistem qanuni autentifikasiya edilmiş istifadəçi ilə anonim sorğuçu [S3] arasında fərq qoya bilməz.

Texniki Təmir

Firebase mühitinin təhlükəsizliyinin təmin edilməsi açıq girişdən ən az imtiyazlı əsas modelə keçməyi tələb edir.

  • Autentifikasiyanı tətbiq edin: request.auth obyektinin boş [S3] olub olmadığını yoxlayaraq bütün həssas yolların etibarlı istifadəçi sessiyası tələb etdiyinə əmin olun.
  • Şəxsiyyətə əsaslanan girişi həyata keçirin: İstifadəçilərin yalnız öz məlumatlarına [S3] daxil ola bilməsini təmin etmək üçün istifadəçinin UID-ini (request.auth.uid) sənəd daxilindəki sahə və ya sənəd ID-sinin özü ilə müqayisə edən qaydaları konfiqurasiya edin.
  • Qranul İcazə Ölçüsü: Kolleksiyalar üçün qlobal joker işarələrdən çəkinin. Bunun əvəzinə, potensial hücum səthini minimuma endirmək üçün hər bir kolleksiya və alt kolleksiya üçün xüsusi qaydaları müəyyən edin [S2].
  • Emulator Suite vasitəsilə təsdiqləmə: Təhlükəsizlik qaydalarını yerli olaraq yoxlamaq üçün Firebase Emulator Suite-dən istifadə edin. Bu, [S2] canlı mühitinə yerləşdirməzdən əvvəl müxtəlif istifadəçi şəxsiyyətlərinə qarşı girişə nəzarət məntiqini yoxlamağa imkan verir.

FixVibe bunu necə sınaqdan keçirir

FixVibe indi bunu yalnız oxunan BaaS skanı kimi ehtiva edir. baas.firebase-rules eyni mənşəli JavaScript paketlərindən Firebase konfiqurasiyasını, o cümlədən müasir initializeApp(...) paket formalarını çıxarır, daha sonra Realtime Database, Firestore və ZXCVFIXVIBETOKENHunac ilə yoxlayır. yalnız oxumaq üçün sorğular. Firestore üçün ilk növbədə kök kolleksiya siyahısını sınayır; siyahı bloklandıqda, o, həmçinin users, accounts, customers, orders, ZXCVFIXENVIXCV, users, kimi ümumi həssas kolleksiya adlarını yoxlayır. messages, adminsettings. O, yalnız uğurlu anonim oxumalar və ya siyahılar haqqında məlumat verir və müştəri sənədinin məzmununu yazmır, silmir və saxlamır.