ما تريد معرفته عن Broken Access Control

Cyber Attacks
تُعد الـ Broken Access Controls من الثغرات الأكثر شيوعاً حيث انتقلت في الترتيب من المركز الخامس في قائمة OWASP Top 10 للعام 2017 إلى المركز الأول في قائمة OWASP Top 10 للعام 2021.
Abdelrahman Nasr
March 10, 2023, 4 p.m.
Abdelrahman
ما تريد معرفته عن Broken Access Control

كنا تعرفنا في مقالة علي OWASP Top 10 وقمنا بذكر ما تحتويه القائمة من هجمات واليوم نعود لكم بمقالة مخصصة عن الـ Broken Access Control.

ما تريد معرفته عن OWASP Top 10

تُعد الـ Broken Access Controls من الثغرات الأكثر شيوعاً حيث انتقلت في الترتيب من المركز الخامس في قائمة OWASP Top 10 للعام 2017 إلى المركز الأول في قائمة OWASP Top 10 للعام 2021.

ما هو الـ Access Control؟

أو ما يُعرف بالـ Authorization، وهي عبارة عن منح أو تقييد صلاحيات المستخدمين علي التطبيق، وذلك حفاظاً على سلامة وسرية البيانات.

 ما هي أنواع الـ Access Control؟

Vertical Access Control

يتم تقسيم الصلاحيات لعدة أنواع مختلفة من المستخدمين للتحكم في الوصول لوظائف التطبيق المختلفة، علي سبيل المثال لن يتمكن المستخدم العادي من الوصول إلى صفحات التحكم الخاصة بالمسؤولين.

Horizontal Access Control

لكل مستخدم بياناته التي قد تكون حساسة ولا ينبغي عرضها لأي مستخدم آخر، يتم التحكم في الوصول علي سبيل المثال بعرض بيانات المستخدم ولا يقوم بالسماح له بعرض بيانات مستخدم آخر.

Context-Dependent Access Control

يتم استخدام عناصر التحكم في الوصول في التأكد من ترتيب سير العملية، علي سبيل المثال لن يتمكن المستخدم من تغيير محتوى عربة التسوق بعد القيام بالدفع.

ما هو الـ Broken Access Control؟

تمتلك معظم الأنظمة شكلاً من أشكال التحكم في الوصول لتقييد الوصول إلى البيانات والأنظمة الحساسة، ورغم ذلك فإن تلك الصلاحيات لا تكون فعالة دائماً، حيث قد تمتلك نقاط ضعف مما قد يهدد بوصول غير مسموح.

ما هو تأثير الـ Broken Access Control؟

يُعرض الـ Broken Access Control التطبيق لتهديدات كثيرة، مما يؤدي لفقدان السرية والسلامة وثقة العملاء، حيث قد يتمكن المهاجم من تسريب البيانات ومعالجتها باستخدام صلاحيات مستخدم آخر.

ما هي أنواع الـ Broken Access Control؟

Vertical Privilege Escalation

إذا تمكن المهاجم من الوصول إلى صلاحيات التحكم الخاصة بالمسؤولين، حيث سيمكنه ذلك من تعريض كافة البيانات للخطر حيث بإمكانه إضافة أو تعديل أو حذف تلك البيانات.

Unprotected Functionality

النوع الأول من الـ Vertical Privilege Escalation حيث لا يتم فرض أي نوع من أنواع صلاحيات الوصول لصفحات المسؤولين، علي سبيل المثال:

Example.test/admin

حيث يمكن للمستخدم العادي الوصول لصفحات التحكم الخاصة بإدارة تطبيق الويب.

Parameter Based Access Control Method

النوع الثاني عندما يقوم تطبيق الويب بتحديد صلاحيات وصول المستخدم بناء علي المتغيرات في عنوان الـ URL على سبيل المثال إذا قام مستخدم عادي بتسجيل الدخول:

Example.test/login?adminstrator=false

إذا لم يكن تطبيق الويب يقوم بالتحقق من صلاحيات الوصول للمستخدم عند تسجيل الدخول إذا بإمكانه تغيير قيمة المتغير إلى True وتسجيل الدخول بصلاحيات الـ administrator.

Example.test/login?adminstrator=true

Platform Misconfiguration

النوع الثالث عندما تفرض تطبيقات الويب صلاحيات معينة في الوصول لعناوين URL محددة بناء علي نوع صلاحيات المستخدم عند إرسال الطلبات إلى خادم الويب، على سبيل المثال:

DENY: POST, /admin/edit, users

حيث يمنع التحكم في الوصول مجموعة users من الوصول إلى هذه الصفحة ولكن يمكن استخدام بعض الـ Headers لتجاوز صلاحيات الوصول مثل X-Original-URL أو X-Rewrite-URL.

POST / HTTP/1.1
X-Original-URL: /admin/edit
Horizontal Privilege Escalation

يحدث ذلك النوع عندما يتمكن المستخدم في الوصول إلى بيانات تخص مستخدما آخر، لنفترض أن لدينا تطبيقا للمعاملات البنكية حيث يتم عرض البيانات طبقاً لرقم حساب المستخدم:

Example.test/?AccountID=1

تحدث عندما يقوم المهاجم بتعديل قيمة الـ AccountID إلى رقم حساب آخر حيث يتمكن من عرض البيانات دون التحقق من صلاحيات وصوله ما إذا كان المالك لرقم الحساب أم لا.

Insecure Direct Object References (IDOR)

نوع من الثغرات الأمنية يحدث عندما يتمكن المستخدم من تغير بعض المتغيرات التي يوفرها تطبيق الويب للحصول علي وصول غير مصرح به، وقد تواجدت هذه الثغرة في قائمة OWASP Top 10 للعام 2007.

اقرأ أيضاً: مخاطر ثغرة الـ IDOR: كيفية البحث عن ثغرات IDOR وإصلاحها

Access Control Vulnerability in Multi-Step Process

تقوم بعض تطبيقات الويب بتنفيذ بعض العمليات بترتيب وخطوات معينة، حيث لا يستطيع المستخدم الوصول للنتيجة النهائية دون المرور بخطوات سابقة، إذا تمكن المهاجم من الوصول للنتيجة النهائية دون الالتزام بترتيب الخطوات فذلك يُعد انتهاكاً لصلاحيات الوصول.

Referer-Based Access Control

إذا قام تطبيق الويب بفرض صلاحيات الوصول لصفحات التحكم الخاصة بالمسؤليين عن طريق التحقق من الـ Referer Header علي سبيل المثال:

GET /admin/users

لا يمكن للمستخدم العادي الوصول للمسار الفرعي users ولكن إذا كان تطبيق الويب يمكن المستخدم من الوصول للصفحة من خلال التأكد من رأس المسار وهو admin فقط يتمكن المهاجم من تجاوز صلاحيات الوصول من خلال إضافة Referer Hedaer:

GET /admin/users
Referer: /admin 
 
طرق الحماية من ثغرات الـ Broken Access Control

- اختبار التحكم في الوصول بصفة مستمرة
- رفض الوصول افتراضياً ثم تحديد الصلاحيات
- استخدام نهج واحد لصلاحيات الوصول على كامل التطبيق مع تحديد صلاحيات محددة في Group محدد بدلا من تحديد صلاحيات كل مستخدم على حدة
- التحقق ما إذا كان المستخدم له الحق في الوصول أو لا
- الحد من استخدام Cross-Origin Resource Sharing
- تأمين مسارات التطبيق لمنع محاولة الوصول لملفات بداخل الخادم

وهنا نكون قد وصلنا إلى نهاية مقالتنا عزيزي القارئ ولا تنسى أن تنتظرنا قريباً- إن شاء الله- وإلى لقاء آخر قريب...


Broken Access Control OWASP Vertical Horizontal Privilege Escalation IDOR صلاحيات التحكم الوصول ِAbdelrahman Nasr