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) ලේඛනය තුළ ඇති ක්ෂේත්‍රයකට හෝ ලේඛන හැඳුනුම්පතට සංසන්දනය කරන රීති වින්‍යාස කරන්න.
  • කැටිති අවසර විෂය පථය: එකතු කිරීම් සඳහා ගෝලීය වයිල්ඩ්කාඩ් වලින් වළකින්න. ඒ වෙනුවට, විභව ප්‍රහාරක මතුපිට [S2] අවම කිරීම සඳහා එක් එක් එකතුව සහ උප එකතුව සඳහා නිශ්චිත රීති නිර්වචනය කරන්න.
  • ඉමුලේටර් කට්ටලය හරහා වලංගු කිරීම: දේශීයව ආරක්ෂක නීති පරීක්ෂා කිරීමට Firebase ඉමුලේටර් කට්ටලය භාවිතා කරන්න. [S2] සජීවී පරිසරයකට යෙදවීමට පෙර විවිධ පරිශීලක පුද්ගලයින්ට එරෙහිව ප්‍රවේශ පාලන තර්කය සත්‍යාපනය කිරීමට මෙය ඉඩ දෙයි.

FixVibe ඒ සඳහා පරීක්ෂා කරන ආකාරය

FixVibe දැන් මෙය කියවීමට පමණක් BaaS ස්කෑන් එකක් ලෙස ඇතුළත් වේ. baas.firebase-rules නවීන initializeApp(...) මිටි හැඩතල ඇතුළුව එකම සම්භවයක් ඇති ජාවාස්ක්‍රිප්ට් මිටි වලින් Firebase වින්‍යාසය උපුටා ගනී, පසුව තත්‍ය කාලීන දත්ත ගබඩාව, ගිනි ගබඩාව, සහ ZBXCVETOR සමඟ පරීක්ෂා කරයි. සත්‍යාපනය නොකළ කියවීමට පමණක් ඉල්ලීම්. ෆයර්ස්ටෝර් සඳහා, එය මුලින්ම මූල එකතු කිරීමේ ලැයිස්තුගත කිරීමට උත්සාහ කරයි; ලැයිස්තුගත කිරීම අවහිර කර ඇති විට, එය users, accounts, customers, orders, ZXCV6VIXCV6, වැනි පොදු සංවේදී එකතු කිරීමේ නම් ද විමර්ශනය කරයි. messages, admin, සහ settings. එය සාර්ථක නිර්නාමික කියවීම් හෝ ලැයිස්තුගත කිරීම් පමණක් වාර්තා කරන අතර පාරිභෝගික ලේඛන අන්තර්ගතය ලිවීම, මකා දැමීම හෝ ගබඩා නොකරයි.