تبعيات آمنة

مكتمل

تتكون نسبة كبيرة من التعليمات البرمجية الموجودة في التطبيقات الحديثة من المكتبات والتبعيات التي اخترتها أنت، المطور. هذه ممارسة شائعة توفر الوقت والمال. ومع ذلك، فإن الجانب السلبي هو أنك الآن مسؤول عن هذه التعليمة البرمجية - على الرغم من أن الآخرين كتبها - لأنك استخدمتها في مشروعك. إذا اكتشف باحث (أو أسوأ من ذلك، أحد المتسللين) ثغرة أمنية في إحدى مكتبات الجهات الخارجية هذه، من المحتمل أن يكون الخلل نفسه موجودا أيضا في تطبيقك.

استخدام المكونات مع نقاط الضعف المعروفة هي مشكلة كبيرة في صناعتنا. إنها مشكلة لدرجة أنها جعلت OWASP أعلى 10 قائمة من أسوأ نقاط الضعف في تطبيق الويب، مع الاستمرار في #9 لعدة سنوات.

تعقب الثغرات الأمنية المعروفة

المشكلة لدينا هي معرفة متى يتم اكتشاف مشكلة. سيساعدنا بالطبع تحديث مكتباتنا وتبعياتنا (رقم 4 في قائمتنا!)، ولكن من الجيد تتبع نقاط الضعف التي تم تحديدها والتي قد تؤثر على تطبيقك.

هام

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

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

يرسل مجتمع الأمان مشكلات عند العثور على خلل أمني في منتج أو مكون. يتم تعيين معرف لكل إصدار منشور ويحتوي على تاريخ الاكتشاف ووصف للثغرة الأمنية ومراجع للحلول التي تم نشرها أو بيانات المورد حول المشكلة.

كيفية التحقق مما إذا كان لديك ثغرات أمنية معروفة في مكونات الطرف الثالث

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

  • OWASP Dependency Check، الذي يحتوي على مكون Jenkins الإضافي
  • Snyk، وهو مجاني للمستودعات مفتوحة المصدر في GitHub
  • Black Duck الذي تستخدمه العديد من المؤسسات
  • Retire.js أداة للتحقق مما إذا كانت مكتبات JavaScript الخاصة بك قديمة؛ يمكن استخدامها كمكون إضافي لأدوات مختلفة، بما في ذلك Burp Suite

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

لمزيد من المعلومات حول المخاطر التي ينطوي عليها استخدام المكونات الضعيفة، تفضل بزيارة صفحة OWASP المخصصة لهذا الموضوع.

الملخص

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