FixVibe
Covered by FixVibehigh

Firebase Անվտանգության կանոններ. Չարտոնված տվյալների բացահայտման կանխարգելում

Firebase Անվտանգության կանոնները առանց սերվերի հավելվածների հիմնական պաշտպանությունն են, որոնք օգտագործում են Firestore և Cloud Storage: Երբ այս կանոնները չափազանց թույլատրելի են, օրինակ՝ թույլ տալով գլոբալ կարդալու կամ գրելու հասանելիությունը արտադրության մեջ, հարձակվողները կարող են շրջանցել նախատեսված կիրառական տրամաբանությունը՝ գողանալու կամ ջնջելու զգայուն տվյալները: Այս հետազոտությունը ուսումնասիրում է սովորական սխալ կազմաձևումները, «փորձարկման ռեժիմի» լռելյայն ռիսկերը և ինչպես իրականացնել ինքնության վրա հիմնված մուտքի վերահսկում:

CWE-284CWE-863

Firebase Անվտանգության կանոնները ապահովում են հատիկավոր, սերվերի կողմից կիրառվող մեխանիզմ՝ պաշտպանելու տվյալները Firestore-ում, Realtime Database-ում և Cloud Storage [S1]-ում: Քանի որ Firebase հավելվածները հաճախ փոխազդում են այս ամպային ծառայությունների հետ անմիջապես հաճախորդի կողմից, այս կանոնները ներկայացնում են միակ խոչընդոտը, որը կանխում է չարտոնված մուտքը դեպի հետնամասի տվյալների [S1]:

Թույլատրելի կանոնների ազդեցությունը

Սխալ կազմաձևված կանոնները կարող են հանգեցնել տվյալների զգալի ազդեցության [S2]: Եթե ​​կանոնները չափազանց թույլատրելի են, օրինակ՝ օգտագործելով լռելյայն «փորձարկման ռեժիմի» կարգավորումները, որոնք թույլ են տալիս գլոբալ հասանելիություն, նախագծի ID-ի իմացությամբ ցանկացած օգտվող կարող է կարդալ, փոփոխել կամ ջնջել տվյալների բազայի ամբողջ բովանդակությունը [S2]: Սա շրջանցում է հաճախորդի կողմից անվտանգության բոլոր միջոցները և կարող է հանգեցնել օգտվողի զգայուն տեղեկատվության կորստի կամ ծառայության ամբողջական խափանման [S2]:

Արմատային պատճառ. Անբավարար թույլտվության տրամաբանություն

Այս խոցելիության հիմնական պատճառը, որպես կանոն, հատուկ պայմանների կիրառման ձախողումն է, որոնք սահմանափակում են հասանելիությունը՝ հիմնված օգտվողի ինքնության կամ ռեսուրսի հատկանիշների վրա՝ [S3]: Մշակողները հաճախ թողնում են լռելյայն կազմաձևերը ակտիվ արտադրական միջավայրերում, որոնք չեն վավերացնում request.auth [S3] օբյեկտը: Առանց request.auth-ի գնահատման՝ համակարգը չի կարող տարբերակել օրինական վավերացված օգտատիրոջ և [S3] անանուն հայցողի միջև:

Տեխնիկական վերականգնում

Firebase միջավայրն ապահովելու համար անհրաժեշտ է բաց մուտքից անցնել նվազագույն արտոնությունների հիմնական մոդելին:

  • Իրականացնել նույնականացումը. Համոզվեք, որ բոլոր զգայուն ուղիները պահանջում են վավեր օգտագործողի նստաշրջան՝ ստուգելով, թե արդյոք request.auth օբյեկտը զրոյական չէ [S3]:
  • Իրականացնել ինքնության վրա հիմնված մուտք. կարգավորեք կանոններ, որոնք համեմատում են օգտվողի UID-ը (request.auth.uid) փաստաթղթի դաշտի կամ հենց փաստաթղթի ID-ի հետ, որպեսզի համոզվեք, որ օգտվողները կարող են մուտք գործել միայն իրենց սեփական տվյալները [S3]:
  • Թույլտվության հատիկավոր շրջանակը. Խուսափեք հավաքածուների համար գլոբալ բնագրերից: Փոխարենը, սահմանեք հատուկ կանոններ յուրաքանչյուր հավաքածուի և ենթահավաքածուի համար՝ նվազագույնի հասցնելու հավանական հարձակման մակերեսը [S2]:
  • Վավերացում Emulator Suite-ի միջոցով. Օգտագործեք Firebase Emulator Suite-ը՝ տեղական անվտանգության կանոնները ստուգելու համար: Սա թույլ է տալիս ստուգել մուտքի վերահսկման տրամաբանությունը տարբեր օգտատերերի դեմ նախքան [S2] կենդանի միջավայրում տեղակայելը:

Ինչպես է FixVibe-ն փորձարկում դրա համար

FixVibe-ն այժմ ներառում է սա որպես միայն կարդալու BaaS սկանավորում: baas.firebase-rules-ն քաղում է Firebase կոնֆիգուրացիան նույն ծագման JavaScript փաթեթներից, ներառյալ ժամանակակից initializeApp(...) փաթեթների ձևերը, այնուհետև ստուգում է Realtime Database-ը, Firestore-ը և ZXCOKVENFIX-ը BXCV1uthentic-ով: միայն կարդալու հարցումներ. Firestore-ի համար այն նախ փորձում է արմատային հավաքածուի ցուցակը; երբ ցուցակագրումն արգելափակված է, այն նաև ուսումնասիրում է ընդհանուր զգայուն հավաքածուների անունները, ինչպիսիք են users, accounts, customers, orders, users, messages, admin և settings: Այն հաղորդում է միայն հաջողված անանուն ընթերցումների կամ ցանկերի մասին և չի գրում, ջնջում կամ պահում հաճախորդի փաստաթղթերի բովանդակությունը: