أطلقت GitHub تحليل الكود الثابت لنقاط الضعف





بعد اختبار مكثف ، جعله GitHub متاحًا للجمهور لمسح الكود بحثًا عن نقاط الضعف . يمكن لأي شخص تشغيل ماسح ضوئي على المستودع الخاص به والعثور على نقاط الضعف قبل الانتقال إلى الإنتاج. يعمل الماسح الضوئي للمستودعات في C و C ++ و C # و JavaScript و TypeScript و Python و Go.



يعتمد الماسح الضوئي على تقنية CodeQL التي طورتها Semmle ، والتي استحوذت عليها GitHub العام الماضي . يعتبر CodeQL أول ماسح ضوئي للثغرات الأمنية في العالم. بدأ الاختبار التجريبي على GitHub في مايو 2020. الوظيفة متاحة الآن للجميع.



كيفية تشغيل



يبدأ المسح من علامة التبويب " الأمان" في المستودع.







هناك نضغط على إعداد مسح الكود .







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







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



ثم انقر فوق الزر بدء الالتزام واكتب اسمًا للالتزام الجديد.







نختار الالتزام بالفرع الرئيسي أو إنشاء فرع جديد وإطلاق طلب سحب.







كل شيء. في النهاية ، انقر فوق الزر Commit new file أو Propose new file .



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



بعد تنشيط CodeQL ، يمكنك عرض النتائج وتغيير معلمات المسح .



محرك CodeQL







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



أداة المسح مبنية على معيار تحليل الرمز الثابت SARIF (OASIS Static Analysis Interchange Format) وتدعم اتصال محركات الطرف الثالث التي ستعمل في واجهة واحدة. تصدير النتائج عبر واجهات برمجة التطبيقات الموحدة مدعوم أيضًا.



منذ التقديم في مايو 2020 ، تم فحص أكثر من 12000 مستودع (1.4 مليون مرة في المجموع) وتم تحديد أكثر من 20000 مشكلة أمنية ، بما في ذلك الثغرات الأمنية في تنفيذ التعليمات البرمجية عن بُعد (RCE) وحقن SQL والبرمجة عبر المواقع (XSS).



أصلح المطورون والمسؤولون عن الصيانة 72٪ من الثغرات الأمنية التي تم العثور عليها في غضون 30 يومًا من اكتشافهم ، قبل دمج الكود في الفرع الرئيسي. هذه نتيجة جيدة ، لأنه وفقًا للإحصاءات ، يتم إصلاح أقل من 30٪ من الثغرات المكتشفة في غضون شهر بعد اكتشافها.



نتيجة للاختبار التجريبي ، تم إجراء 132 التزامًا من المجتمع لقاموس الاستعلام مفتوح المصدر. لتمكين مستخدمي GitHub من تشغيل أدوات الطرف الثالث ، تم إبرام اتفاقيات مع أكثر من عشرة مطوري أنظمة الأمان والأدوات مفتوحة المصدر للتحليل الثابت ومسح الحاويات والتحقق من صحة البنية التحتية كرمز (Infrastructure-as-Code؛ IaC) - هذا نهج لإدارة ووصف البنية التحتية من خلال التكوين وليس من خلال التحرير اليدوي للتكوينات على الخوادم أو التفاعل التفاعلي.



بالإضافة إلى البحث عن الثغرات الأمنية ، تتعاون GitHub أيضًا مع 24 من مزودي الخدمة التابعين لجهات خارجية للعثور على أسرارهم في التعليمات البرمجية التي لا يمكن نشرها بشكل واضح ، مثل مفاتيح الوصول. يشمل الشركاء AWS و Google Cloud و Azure و Dropbox و Slack و Discord و npm و Stripe و Twilio. يحدث البحث عن الأسرار تلقائيًا في كل من المستودعات العامة والخاصة.







مسح الرمز مجاني للمستودعات العامة ويتم تضمينه في حزمة الأمان المتقدم لـ GitHub Enterprise (أي أنها خدمة مدفوعة ). تتوفر بعض الخيارات الغريبة (قائمة عناوين IP المسموح بها و SAML ودعم LDAP وما إلى ذلك) فقط في الإصدار المدفوع.



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





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



أي أن زاحف GitHub يمكن أن يؤدي إلى ظهور جميع أعراض الحالة المعروفة باسم التعب الأمني. لمزيد من المعلومات حول هذه الحالة ، راجع المقال العلمي(دوى: 10.1109 / MITP.2016.84). تنص على أن هذا الشرط لدى الشخص يعزز إحجامه عن اتباع توصيات السلامة ويؤثر على تحليل التكلفة والمزايا الشاملة.



All Articles