A06:2021 الثغرات و الانظمة الغير قابلة للتحديثات
العوامل
ربطها مع CWEs | الحد الأقصى للحدوث | متوسط معدل الحدوث | التغطية القصوى | متوسط معدل التغطية | متوسط استغلال الثغرات | متوسط التأثير | إجمالي التكرار | إجمالي نقاط الضعف CVEs |
---|---|---|---|---|---|---|---|---|
3 | 27.96% | 8.77% | 51.78% | 22.47% | 5.00 | 5.00 | 30,457 | 0 |
نظرة عامة
كانت تحتل المرتبة الثانية في عملية الاستطلاع التي تم إجراؤها في قطاع أمن التطبيقات ولكنها أيضًا تمتلك بيانات كافية لتُصبح من أعلى عشرة مخاطر من خلال تحليل البيانات. يُعتبر تصنيف " الثغرات والمكوّنات الغير مُحدّثة" من المشاكل المعروفة التي تواجه صعوبات من أجل اختبارها وتقييم مخاطرها ويُعتبر التصنيف الوحيد الذي لا يتضمّن CVEs ومرتبط بـ CWEs. لذلك تم استخدام المعيار الافتراضي للاستغلال أو الأثر وهو 5.0، ونجد أن هناك ارتباط وحيد في هذا التصنيف وهو CWE-1104.
الوصف
من المحتمل ان تكون عرضة للاختراق:
-
إذا كنت لا تعرف إصدارات جميع المكونات التي تستخدمها (من جانب المستخدم أو من جانب الخادم). وهذا يتضمّن المكونات التي تستخدمها بشكل مُباشر بالإضافة إلى المكونات الغير مباشرة.
-
إذا كانت المكونات او البرمجيات معرضه للاختراق بسبب انها غير مدعومة أو قديمة. ويتضمن ذلك نظام التشغيل وخادم الويب أو التطبيقات ونظام إدارة قواعد البيانات (DBMS) والتطبيقات وواجهات برمجة التطبيقاتAPI وجميع المكونات وبيئات التي تعمل مع بدء التشغيل .(runtime)
-
إذا لم تقم بالمسح الأمني بحثاً عن الثغرات بانتظام، والاشتراك في نشرات الأمن المتعلقة بالمكونات التي تستخدمها.
-
إذا لم تقم بإصلاح أو ترقية النظام الأساسي والإطار والتبعيات الأساسيّة بطريقة مبنيّة على تقييم المخاطر وفي الوقت المناسب. يحدث هذا عادةً في البيئات التي يكون فيها إغلاق الثغرات وتنصيب التحديثات مَهمة شهرية أو ربع سنوية تحت إدارة التغييرات، مما يترك المؤسسات عُرضة لمدة أيام أو شهور من عدم تطبيق التحديث للثغرات الضرورية.
-
إذا لم يقم مطورو البرامج باختبار توافق المكتبات المحدثة أو التي تم اجراء إصلاحات عليها.
-
إذا لم تقم بتأمين الاعدادات بالشكل الصحيح. (انظر A05: 2021 – الإعدادات الأمنية الخاطئة ).
كيفية الحماية منها
يجب أن تكون هناك آلية لإدارة اغلاق الثغرات وذلك لتلبية ما يلي:
-
إزالة المكونات الغير مستخدمة والمميزات والملفات والوثائق الغير ضرورية.
-
عمل جرد بشكل دوري للإصدارات من جانب المستخدم ومن جانب الخادم (على سبيل المثال، إطار العمل والمكتبات) ومكوناتها باستخدام أدوات مثل Versions, OWASP Dependency Check, Retire.JS وما إلى ذلك، مراقبة المصادر الخاصة بالثغرات باستمرار مثل CVE و NVD بحثًا عن الثغرات التي في المكونات. وقم باستخدام الأدوات الخاصة بتحليل الإعدادات وذلك من أجل أتمتة العملية. وأخيرًا، قم بالاشتراك في تنبيهات البريد الإلكتروني الخاصة بالثغرات الأمنية المتعلقة بالمكونات التي تستخدمها.
-
الحصول على المكونات من المصادر الرسمية فقط عبر الروابط الآمنة. يفضل التأكد من ان الحزم موقعه رقمياً لتقليل فرصة تثبيت مكونات معدلة وضارة (انظر A08: 2021- فشل سلامة البيانات والبرمجيات).
-
مراقبة المكتبات والمكونات التي لا يتم صيانتها أو التي لا تقوم بعمل تحديثات الأمان للإصدارات القديمة. إذا لم تكن عملية سدّ الثغرات مُمكنة، فكّر في إنشاء آلية افتراضية لمراقبة تلك المكونات ورصد المحاولات الضَّارة والحماية منها
يجب أن تضمن كل مؤسسة خطة مستمرة للمراقبة، وتصنيف، وتطبيق التحديثات أو تغيير الاعدادات طوال الحياة الافتراضية للتطبيقات.
أمثلة على سيناريوهات الهجوم
سيناريو #1: تعمل المكونات عادةً بنفس الامتيازات التي يتمتّع بها التطبيق نفسه، لذا فإن العيوب في أي مكوّن يمكن أن يؤدي إلى تأثير خطير. يمكن أن تكون هذه العيوب عرضية (على سبيل المثال، الأخطاء البرمجية) أو عيوب مقصودة (على سبيل المثال، باب خلفي في أحد المكونات). بعض الأمثلة على ثغرات المكونات القابلة للاستغلال التي تم اكتشافها هي:
-
نظرة على ثغرة CVE-2017-5638، وهي ثغرة أمنية تقوم بتنفيذ تعليمات برمجية عن بُعد لـ Struts 2 والتي تُتيح تنفيذ تعليمات برمجية عشوائية على الخادم، والتي تُسبّب اختراقات خطيرة.
-
على الرغم من صعوبة أو استحالة تحديث إنترنت الأشياء في بعض منتجات (IoT)، إلا أن أهمية تحديثها يمكن ان يكون له أهمية كبيرة (مثل الأجهزة الطبية).
هناك أدوات آلية لمساعدة المهاجمين في العثور على أنظمة غير محدثة أو معدة بشكل خاطئ. على سبيل المثال، يمكن أن يساعدك محرك بحث Shodan IoT في العثور على الأجهزة التي لا تزال تعاني من الثغرة الأمنية مثل ثغرة Heartbleed والتي تم إصلاحها وتحديثها في أبريل من عام 2014.
المصادر
-
OWASP Application Security Verification Standard: V1 Architecture, design and threat modelling
-
OWASP Dependency Check (for Java and .NET libraries)
-
OWASP Testing Guide - Map Application Architecture (OTG-INFO-010)
-
OWASP Virtual Patching Best Practices
-
The Unfortunate Reality of Insecure Libraries
-
MITRE Common Vulnerabilities and Exposures (CVE) search
-
National Vulnerability Database (NVD)
-
Retire.js for detecting known vulnerable JavaScript libraries
-
Node Libraries Security Advisories
-
https://safecode.org/publication/SAFECode_Software_Integrity_Controls0610.pdf
قائمة الربط مع إطار CWEs
CWE-937 OWASP Top 10 2013: Using Components with Known Vulnerabilities
CWE-1035 2017 Top 10 A9: Using Components with Known Vulnerabilities
CWE-1104 Use of Unmaintained Third Party Components