Skip to content

Commit b84c0c6

Browse files
authored
Update 0xa9-improper-assets-management.md
1 parent ccb15fc commit b84c0c6

File tree

1 file changed

+40
-39
lines changed

1 file changed

+40
-39
lines changed
+40-39
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,65 @@
1-
<h2 dir='rtl' align='right'> API9:2019 خلل في ادارة الاصول </h2>
1+
<h2 dir='rtl' align='right'> API9:2019 إدارة الأصول بشكل خاطئ</h2>
22

33
<table dir='rtl' align="right">
44
<tr>
5-
<th>عوامل التهديد/ الاستغلال </th>
6-
<th> نقاط الضعف </th>
7-
<th> التأثير </th>
8-
<tr>
5+
<th>عوامل التهديد/ الاستغلال</th>
6+
<th>نقاط الضعف</th>
7+
<th>التأثير</th>
8+
</tr>
9+
<tr>
910
<td> خصائص API : قابلية الاستغلال 3 </td>
1011
<td> الانتشار : 3 قابلية الاكتشاف : 2 </td>
11-
<td> التأثر التقني و تأثر الاعمال: 2 </td>
12-
</tr>
13-
<td> ان استخدام واجهة برمجة التطبيقات Api القديمة و الغير محدثة هو اسهل طريقة تسبب اختراق الأنظمة لديك دون الحاجة والجهد الذي قد يبذلها المهاجم حتى وان كانت أدوات ومكونات الأمان تم ايجادها بشكل صحيح وسليم، ولكن جميع تلك الأدوات والمكونات وجدت للأنظمة الحديثة و المتطورة من واجهة برمجة التطبيقات API.</td>
14-
<td> ان عمليات التوثيق الغير محدثة تجعل من الصعب تتبع واصلاح الثغرات. وكذلك عدم جرد الأصول التقنية يؤدي بشكل مباشر الى عدم ترقيع الأنظمة من الثغرات الأمنية، والذي قد يؤدي الى تسريب للبيانات. وكما انه من الشائع رصد واجهة برمجة التطبيقات API متاحة على الانترنت دون الحاجة لها بسبب الأنظمة والمفاهيم الحديثة في الخدمات المصفرة والتي تجعل من التطبيقات سهلة النشر ومستقلة على سبيل المثال (الحوسبة السحابية) </td>
15-
<td> قد يتمكن المهاجمون من الوصول الى بيانات حساسة غير مصرح لهم بالوصول لها، او حتى اختراق الخادم من خلال استغلال احد الثغرات الغير مرقعه لخدمات واجهة برمجة التطبيقات API والتي تستخدم للاتصال بقاعدة البيانات. </td>
12+
<td> التأثر التقني و تأثر الأعمال: 2 </td>
1613
</tr>
17-
</table>
18-
14+
<tr>
15+
<td>إصدارات واجهة برمجة التطبيقات API القديمة غالباً غير مرقعة وتعتبر طريق سهل لاختراق الأنظمة وتجاوز العديد من تقنيات الحماية الحديثة والتي تم تركيبها غالباً لحماية الأنظمة الحديثة و المتطورة من واجهة برمجة التطبيقات API.</td>
16+
<td>وثائق الأنظمة والبرمجيات الغير محدثة تجعل من الصعب تتبع وإصلاح الثغرات. وكذلك عدم وجود جرد للأصول التقنية واستراتيجية للتخلص من الأصول القديمة يؤدي إلى وجود أنظمة تعمل بدون ترقيعات أمنية، وذلك قد يؤدي إلى تسريب للبيانات الحساسة. وكما انه من الشائع رصد واجهة برمجة التطبيقات API متاحة على الإنترنت مع كونها لا تستخدم بسبب المفاهيم الحديثة كالخدمات المصغرة (microservices) والتي تجعل من التطبيقات سهلة النشر ومستقلة على سبيل المثال (الحوسبة السحابية)</td>
17+
<td>قد يتمكن المهاجمون من الوصول إلى بيانات حساسة، أو حتى اختراق الخادم من خلال استغلال احد الثغرات الغير مرقعة لخدمات واجهة برمجة التطبيقات API والتي تستخدم للاتصال بقاعدة البيانات.</td>
18+
</tr>
19+
</table>
1920

20-
<h3 dir='rtl' align='right'>هل أنا معرض لهذه الثغرة؟</h3>
21+
<h3 dir='rtl' align='right'>هل واجهة برمجة التطبيقات API معرضة لهذه الثغرة؟</h3>
2122

22-
<p dir='rtl' align='right'> قد يكون واجهة برمجة التطبيقات معرض لمثل هذه الثغره في حالة :
23+
<p dir='rtl' align='right'> قد تكون واجهة برمجة التطبيقات معرض لمثل هذه الثغرة في حالة :
2324

24-
<p dir='rtl' align='right'>▪️ الغرض من استخدام واجهة برمجة التطبيقات غير واضح والذي قد يقود للأسئلة التالية:
25+
<p dir='rtl' align='right'>▪️ الغرض من استخدام واجهة برمجة التطبيقات غير واضح ولا توجد إجابات للأسئلة التالية:
2526
<p dir='rtl' align='right'> - ما هي البيئة التي تعمل فيها واجهة برمجة التطبيقات (على سبيل المثال ، الإنتاج ، التدريج ، الاختبار ، التطوير)؟
26-
<p dir='rtl' align='right'> - من المخول للوصول الى الشبكة الخاصة بواجهة برمجة التطبيقات (على سبيل المثال ، عام ، داخلي ، شركاء)؟
27-
<p dir='rtl' align='right'> - ما هو إصدار API المستخدم ؟
27+
<p dir='rtl' align='right'> - من المخول للوصول إلى الشبكة الخاصة بواجهة برمجة التطبيقات (على سبيل المثال ، عام ، داخلي ، شركاء)؟
28+
<p dir='rtl' align='right'> - ما هو إصدار API المستخدم؟
2829
<p dir='rtl' align='right'> - ماهي البيانات التي يتم جمعها بواسطة API؟ وهل هي بيانات شخصية؟
29-
<p dir='rtl' align='right'> - ماهي آلية وسير العمليات ؟
30-
<p dir='rtl' align='right'>▪️ لا توجد وثائق معتمدة او وثائق قديمة وغير محدثة.
31-
<p dir='rtl' align='right'>▪️ لا توجد خطة لإيقاف أي واجهة برمجة التطبيقات القديمة API
32-
<p dir='rtl' align='right'>▪️ لا توجد آلية لحصر الأصول او انها قديمة.
33-
<p dir='rtl' align='right'>▪️ لا توجد آلية لحصر الأصول المتصلة بالأنظمة سوء كانت طرف اول او طرف ثالث.
34-
<p dir='rtl' align='right'>▪️ إصدارات قديمة وغير محدثة ولا تزال مستخدمة
35-
36-
<h3 dir='rtl' align='right'> امثلة على سيناريوهات الهجوم: </h3>
30+
<p dir='rtl' align='right'> - ماهي آلية سير البيانات؟
31+
<p dir='rtl' align='right'>▪️ لا توجد وثائق معتمدة أو وثائق قديمة وغير محدثة.
32+
<p dir='rtl' align='right'>▪️ لا توجد خطة للتخلص من إصدارة واجهة برمجة التطبيقات القديمة.
33+
<p dir='rtl' align='right'>▪️ لا يوجد حصر للأصول أو أنه غير محدث.
34+
<p dir='rtl' align='right'>▪️ لا يوجد حصر للخدمات المتصلة بالأنظمة سواء كانت طرف أول أو طرف ثالث أو أنه غير محدث.
35+
<p dir='rtl' align='right'>▪️ إصدارات API قديمة وغير محدثة ولا تزال مستخدمة
3736

38-
<h4 dir='rtl' align='right'>السيناريو الاول: </h4>
37+
<h3 dir='rtl' align='right'> أمثلة على سيناريوهات الهجوم:</h3>
3938

40-
<p dir='rtl' align='right'> بعد إعادة عملية تصميم التطبيقات، لم يتم الاهتمام بترقية الإصدار الخاص بواجهة برمجة التطبيقات API بل تم استخدام القديم وهو متوفر على المسار التالي api.someservice.com/v1. وهو المستخدم وغير محمي، مع إمكانية الوصول الى قاعدة البيانات بصلاحيات مستخدم. وبعد عمليات الفحص من قبل المهاجمين في التطبيقات المعاد تصميمها وهي على المسار التالي api.someservice.com/v2. بعد عملية تخمين بسيطة جداً تم تغير /v2 الى v1 في المسار للموقع والذي منح المهاجم إمكانية الوصول لواجهة برمجة التطبيقات القديمة والغير محدثة والتي أدت الى تسريب معلومات حساسة لأكثر من 100 مليون مستخدمة ومنه معلومات شخصية.
39+
<h4 dir='rtl' align='right'>السيناريو الأول:</h4>
4140

41+
<p dir='rtl' align='right'>بعد إعادة تصميم التطبيقات لإحدى الخدمات، لم يتم التخلص من الإصدارة القديمة والغير محمية من واجهة برمجة التطبيقات <code dir='ltr'>api.someservice.com/v1</code> والمتصلة بقاعدة البيانات. وبعد عمليات الفحص من قبل أحد المهاجمين توصل لعنوان واجهة برمجة التطبيقات الجديدة <code dir='ltr'>api.someservice.com/v2</code>. باستبدال <code dir='ltr'>v2</code> بـ <code dir='ltr'>v1</code> تمكن المهاجم من الوصول لواجهة برمجة التطبيقات القديمة والغير محدثة والتي أدت إلى تسريب معلومات شخصية لأكثر من 100 مليون مستخدم.
4242

43-
<h4 dir='rtl' align='right'>السيناريو الثاني : </h4>
43+
<h4 dir='rtl' align='right'>السيناريو الثاني:</h4>
4444

45-
<p dir='rtl' align='right'> تقوم منصات التواصل الاجتماعي باستخدام آلية مبتكرة لمنع هجمات كسر كلمات المرور من خلال تحديد معدل الطلبات وذلك بهدف تقليل محاولات الاختراق. ولكن آلية الأمان تلك لم يتم تطبيقها على الكود الخاص بواجهة برمجة التطبيقات API. بل قاموا بفصلها لكي تكون ما بين المستخدم و API. (www.socialnetwork.com). و أحد الباحثين قام بإيجاد النطاق الخاص بـAPI (www.mbasic.beta.socialnetwork.com) والذي يستطيع من خلاله القيام بنفس المهام التي تقوم بها منصة التواصل الاجتماعي بما في ذلك إعادة تعين كلمات المرور من خلال استخدام أسلوب مصادقة يتم استخدامه من قبل المنصة وهو عبارة عن رمز مكون من 6 ارقام يتم إدخاله في حال طلبت استعادة كلمة المرور.
45+
<p dir='rtl' align='right'>قامت منصة للتواصل الاجتماعي باستخدام آلية للحد من عدد محاولات تخمين كلمات المرور. آلية الأمان تلك لم يتم تطبيقها على الشفرة المصدرية الخاصة بواجهة برمجة التطبيقات API، بل قاموا بفصلها لكي تكون ما بين المستخدم وواجهة برمجة التطبيقات (<code dir='ltr'>www.socialnetwork.com</code>). أحد الباحثين عثر على خادم لنسخة تجريبية (<code dir='ltr'>www.mbasic.beta.socialnetwork.com</code>) والتي يستطيع من خلالها القيام بنفس المهام التي تقوم بها الواجهة المعتمدة بما في ذلك إعادة تعين كلمات المرور لكن بدون آلية الأمان التي تحد من عدد محاولات التخمين. و باستخدام النسخة التجريبية تمكن الباحث من إعادة تعيين كلمة السر بعد قيامة بعمليات بسيطة لتخمين كلمة المصادقة المكونة من 6 أرقام.
4646

4747

4848

49-
<h4 dir='rtl' align='right'>كيف أمنع هذه الثغرة؟ </h4>
49+
<h3 dir='rtl' align='right'>كيف أمنع هذه الثغرة؟ </h3>
5050

51-
<p dir='rtl' align='right'>▪️ جرد وحصر جميع المعرفات والأجهزة الخاصة بواجهة برمجة التطبيقات وتوثيقهم بمستند لكل كائن على حدة، والتركيز بشكل كبير على بيئة API (على سبيل المثال، الإنتاج ، التدريج ، الاختبار ، التطوير)، وماهي آليات الوصول لشبكة API وهل هي متاحة للعامة او داخلياً او لعملاء والشركاء.
52-
<p dir='rtl' align='right'>▪️ حصر جميع الأصول المتربطة بالأنظمة الخاصة بك وماهي البيانات التي يتم تبادلها ومدى حساسية تلك البيانات.
53-
<p dir='rtl' align='right'>▪️ قم بتوثيق جميع جوانب واجهة برمجة التطبيقات API خصوصاً ما يرتبط بعمليات المصادقة وآلية العمل وتحديد معدل واضح لمستوى مشاركة الموارد عبر CORS ومصادر البيانات، بما في ذلك الاستعلامات والطلبات والاستجابة لتلك الطلبات.
54-
<p dir='rtl' align='right'>▪️ قم باستخدام بعض الطرق والتقنيات الالية لأغراض التوثيق المبنية على معايير أساسية والتي تشمل وثائق CI/CD
55-
<p dir='rtl' align='right'>▪️ التأكد من ان الوثائق متاحة للأشخاص المصرح لهم فقط.
56-
<p dir='rtl' align='right'>▪️ التأكد من استخدام التدابير الوقائية اللازمة مثل جدران الحماية الخاصة بواجهة برمجة التطبيقات API لجميع واجهة برمجة التطبيقات المتصلة بالأنترنت وليس فقط المتوفر في بيئة التشغيل.
57-
<p dir='rtl' align='right'>▪️ تجنب استخدام مصادر البيانات على البيئة التشغيلية باستخدام واجهة برمجة التطبيقات Api غير جاهز للعمل في تلك البيئة، وفي حال توجب عليك استخدامه فيجب تطبيق عليه جميع المعايير الأمنية نفسها التي تم تطبيقها على بيئة التشغيل.
58-
<p dir='rtl' align='right'>▪️ في حال كانت الإصدارات الحديثة من واجهة برمجة التطبيقات تحتوي على معايير امان افضل، قم بأجراء تحليل للمخاطر لاتخاذ القرارات والإجراءات التي تخفف من الضرر على الإصدار الحالي. على سبيل المثال اذا كان من الممكن تعطيل الإصدار السابق من دون الاضرار بواجهة برمجة التطبيقات والانتقال للإصدار الحديث بشكل تدريجي او من الممكن اجبار المستخدمين على الانتقال الى الإصدار الحديث بشكل عاجل.
51+
<p dir='rtl' align='right'>▪️ جرد وحصر جميع الأجهزة الخاصة بواجهة برمجة التطبيقات وتوثيق الجوانب الهامة لك واحد منهم، والتركيز بشكل كبير على بيئة API (على سبيل المثال، الإنتاج ، التدريج ، الاختبار ، التطوير)، ومن هم المخولين بالوصول لهم من الشبكة (كشبكة الإنترنت أو الداخلية أو الشركاء).
52+
<p dir='rtl' align='right'>▪️ حصر جميع الخدمات المرتبطة بالأنظمة وتوثيق جوانبها المهمة كدورها في النظام ونوعية البيانات التي يتم تداولها من خلالها وحساسية تلك البيانات.
53+
<p dir='rtl' align='right'>▪️ توثيق جميع جوانب واجهة برمجة التطبيقات API مثل عمليات التحقق والأخطاء وإعادة التوجيه وسياسة حصر مشاركة الموارد (CORS)، بما في ذلك إعداداتها والطلبات والاستجابة لتلك الطلبات.
54+
<p dir='rtl' align='right'>▪️ إنشاء الوثائق بشكل آلي من خلال تبني المعايير المفتوحة. وتضمين عملية بناء الوثائق في خط الإنتاج الخاص باختبار ونشر التطبيقات.
55+
<p dir='rtl' align='right'>▪️ التأكد من أن الوثائق متاحة للأشخاص المصرح لهم فقط.
56+
<p dir='rtl' align='right'>▪️ التأكد من استخدام التدابير الوقائية اللازمة مثل جدران الحماية الخاصة بواجهة برمجة التطبيقات API لجميع إصدارات واجهة برمجة التطبيقات المتصلة بالأنترنت وليس فقط الإصدارة الحالية.
57+
<p dir='rtl' align='right'>▪️ تجنب استخدام بيانات حقيقية من بيئة التشغيل على البيئة التجريبية لواجهة برمجة التطبيقات، وفي حال توجب عليك استخدامها فيجب أن يتم تطبيق جميع المعايير الأمنية نفسها التي يتم تطبيقها على بيئة التشغيل.
58+
<p dir='rtl' align='right'>▪️ في حال كانت الإصدارات الحديثة من واجهة برمجة التطبيقات تحتوي على معايير أمان افضل، قم بإجراء تحليل للمخاطر لاتخاذ القرارات والإجراءات التي تخفف من مخاطر الإصدار القديم. على سبيل المثال إذا كان من الممكن إضافة تلك المعايير الأمنية الجديدة للإصدار السابق من دون التأثير على التوافقية مع الأنظمة الأخرى أو أنه لابد من التخلص من الإصدار القديم و إلزام جميع المستخدمين بالانتقال إلى الإصدار الحديث.
5959

60+
<h3 dir='rtl' align='right'>المراجع</h3>
6061

61-
<h4 dir='rtl' align='right'>المصادر الخارجية : </h4>
62+
<h4 dir='rtl' align='right'>المصادر الخارجية:</h4>
6263

6364
[<p dir='rtl' align='right'>▪️ CWE-1059: Incomplete Documentation </p>](https://cwe.mitre.org/data/definitions/1059.html)
6465
[<p dir='rtl' align='right'>▪️ OpenAPI Initiative </p>](https://www.openapis.org/)

0 commit comments

Comments
 (0)