فهم نتائج CodeQL

مكتمل

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

عرض نتائج مسح التعليمات البرمجية من تحليل CodeQL

يتم عرض نتائج الاستعلام المفسرة تلقائيا في التعليمات البرمجية المصدر في ملحق CodeQL ل Visual Studio Code. يمكن أن تكون نتائج الإخراج التي ينشئها CodeQL CLI بتنسيقات عديدة للاستخدام مع أدوات مختلفة.

يمكنك التحكم في كيفية عرض نتائج التحليل في التعليمات البرمجية المصدر عن طريق تعديل عبارة select الاستعلام. يمكنك جعل النتائج واضحة وسهلة للمستخدمين الآخرين لفهم أثناء تطوير الاستعلام. عند كتابة الاستعلامات الخاصة بك في وحدة تحكم الاستعلام أو في ملحق CodeQL ل Visual Studio Code، لا توجد قيود على ما يمكن تحديده.

إذا كنت ترغب في استخدام استعلام لإنشاء تنبيهات في مسح التعليمات البرمجية GitHub أو إنشاء نتائج تحليل صالحة باستخدام CodeQL CLI، تحتاج إلى جعل نتائج تقرير عبارة select بالتنسيق المطلوب.

العمل على تنبيهات فحص التعليمات البرمجية

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

قد يتضمن تحليل CodeQL الافتراضي ل GitHub خصائص للتنبيهات أكثر من النتائج من الأدوات غير التابعة ل Microsoft أو من الاستعلامات المخصصة. في سير العمل الافتراضي، يحلل فحص التعليمات البرمجية التعليمات البرمجية الخاصة بك بشكل دوري على الفرع الافتراضي وأثناء طلبات السحب.

يتضمن كل تنبيه المعلومات التالية:

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

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

لقطة شاشة تعرض تنبيهات تحليل CodeQL.

تنبيهات تدفق البيانات

يبحث تحليل تدفق البيانات عن مشكلات الأمان المحتملة في التعليمات البرمجية، بما في ذلك:

  • استخدام البيانات بطريقة تعرض الأمان للخطر.
  • تمرير الوسيطات الخطيرة إلى الوظائف.
  • تسريب معلومات حساسة.

يوضح لك GitHub كيفية نقل البيانات عبر التعليمات البرمجية عندما يبلغ مسح التعليمات البرمجية عن تنبيهات تدفق البيانات. يمكنك استخدام تنبيهات تدفق البيانات هذه لتحديد مناطق التعليمات البرمجية التي تسرب المعلومات الحساسة. يمكن أن تساعدك هذه المعرفة في تحديد نقطة الدخول للهجمات من قبل المستخدمين الضارين.

مستويات الخطورة

أي نتائج فحص التعليمات البرمجية التي لها خطورة Error تتسبب في فشل الفحص بشكل افتراضي. مستويات خطورة التنبيه ErrorWarningNote. يمكنك تحديد مستوى الخطورة الذي يجب أن تفشل فيه طلبات السحب التي تقوم بتشغيل تنبيهات فحص التعليمات البرمجية.

مستويات خطورة الأمان

تعرض استعلامات الأمان التي ينشئ مسح التعليمات البرمجية مستويات خطورة الأمان للتنبيهات. مستويات خطورة الأمان CriticalHighMediumLow. يستخدم GitHub بيانات Common Vulnerability Scoring System (CVSS) لحساب خطورة الأمان للتنبيه.

تؤدي أي نتائج فحص التعليمات البرمجية التي تحتوي على خطورة أمان Critical أو High إلى فشل الفحص بشكل افتراضي. يمكنك تحديد مستوى خطورة الأمان الذي يجب أن يتسبب في فشل التحقق من نتائج مسح التعليمات البرمجية.

إغلاق تنبيه فحص التعليمات البرمجية

لديك طريقتان لإغلاق تنبيه:

  • إصلاح المشكلة في التعليمات البرمجية.
  • تجاهل التنبيه أو حذفه.

تجاهل تنبيه فحص التعليمات البرمجية

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

يمكنك تجاهل التنبيهات من التعليقات التوضيحية لفحص التعليمات البرمجية في التعليمات البرمجية أو من قائمة الملخص في علامة التبويب أمان. لتجاهل تنبيه من القائمة، حدد القائمة Dismiss alert، وحدد سببا للفصل، ثم حدد الزر Dismiss alert.

Video أن القائمة المنسدلة والزر لتجاهل تنبيه.

عند تجاهل تنبيه:

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

حذف تنبيه فحص التعليمات البرمجية

يمكنك حذف تنبيه إذا كان لديك أذونات المسؤول للمستودع. يكون حذف التنبيهات مفيدا عندما:

  • يمكنك إعداد أداة مسح التعليمات البرمجية ولكنك قررت إزالتها لاحقا.
  • لقد قمت بتكوين تحليل CodeQL مع مجموعة أكبر من الاستعلامات مما تريد متابعة استخدامه.
  • لقد قمت بإزالة بعض الاستعلامات من الأداة.
  • تريد تنظيف نتائج مسح التعليمات البرمجية.

يمكنك حذف التنبيهات من قائمة الملخصات في علامة التبويب Security.

عند حذف تنبيه:

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