قسم الأمان ← نتائج هو القائمة الوحيدة لكل ما اكتشفه قسم الأمان، بغض النظر عن مصدر الاكتشاف. كل مصدر يكتب في نفس المستودع، والمشكلة نفسها التي أبلغ عنها مصدران تُعتبر نتيجة واحدة.
النتائج، وحدوثاتها، ومصادرها
- نتيجة هي مشكلة محددة في مستودع واحد: حزمة برمجية ضعيفة، أو بيانات اعتماد مسربة، أو نمط كود ضعيف. تُحدد 'حدوثاتها' مكان وجودها: مسار ملف الاعتمادات، ملف وسطر معين، أو الالتزام ومساره حيث تظهر البيانات السرية. نسختان مثبتتان من نفس الحزمة البرمجية تُعتبران حدوثتين.
- تُحدد 'مصادرها' حدوثاتها مكان وجودها: مسار ملف الاعتمادات، ملف وسطر معين، أو الالتزام ومساره حيث تظهر البيانات السرية. نسختان مثبتتان من نفس الحزمة البرمجية تُعتبران حدوثتين.
- تُحدد 'مصادرها' مصادرها توضح من رصدها، ومتى، وبأي درجة اكتمال: أداة OSV-Scanner، وGitHub Dependabot، وGitHub لفحص الكود، وGitHub لفحص البيانات السرية، وفحص البيانات السرية من Coroid، وقواعد الكود من Coroid، وأمر الفحص الخاص بك، وCoroid للمراجعة، بالإضافة إلى تدقيق الأمان.
تُصنّف القائمة حسب المشروع. يمكن تصفيتها حسب المشروع، ونوع النتيجة، ومستوى الخطورة، والحالة، والمصدر، والكشف، والأدلة. تُصنّف نتيجة الاعتمادات حسب الحزمة البرمجية، مع الإشارة إلى التحديث الذي يصلحها إذا كان معروفًا.
مستوى الخطورة والتواريخ النهائية
لكل نتيجة موعد نهائي بعد فتحها:
| مستوى الخطورة | الموعد النهائي خلال |
|---|---|
| حرجة | يومين |
| عالية | 7 أيام |
| متوسطة | 30 يومًا |
| منخفضة | 90 يومًا |
تُظهر نظرة عامة النتائج المتأخرة عن موعدها وتلك التي ستنتهي صلاحيتها خلال ثلاثة أيام.
الحالات
| الحالة | المعنى |
|---|---|
| مفتوحة | موجودة في الفرع الافتراضي. |
| مُصلحة في الكود | تختفي كل حدوثاتها من الفرع الافتراضي وفقًا لفحص كامل. |
| تم التحقق من تغييرها | بيانات اعتماد مسربة تم التحقق من تغييرها أو إلغائها. انظر إلى البيانات السرية المسربة. |
| لم تعد سارية | تم سحب كل التحذيرات المرتبطة بالنتيجة. هذا لا يعني أنها 'مُصلحة'. |
| على pull request | تظهر فقط على pull request. تنتمي إلى pull request، ويكتشفها الفحص التالي للفرع الافتراضي إذا تم دمج التغيير. |
لا توجد نتائج خضراء صامتة
لا تختفي حدوثة إلا عندما يتم فحص كامل للنسخة الحالية من الكود ويؤكد ذلك. فحص جزئي، أو فشل في الفحص، أو فحص بدون صلاحيات، أو فحص لالتزام تجاوزه الفرع لا يغير شيئًا. توضح التغطية كل حالة:
- جزئي: بعض الملفات لم تُقرأ بالكامل، ويتم ذكرها في تقرير التغطية.
- قديم: البيانات ليست من نسخة الفرع الافتراضي الحالية، أو أنها أقدم من يوم واحد.
- غير معروف منذ…: فقد المصدر صلاحياته أو لم يُمكن قراءته. النتائج التي أبلغ عنها فقط تظهر 'حالة غير معروفة منذ' ذلك الوقت.
- تأخر في تحديث التحذيرات: لا يظهر أي مشروع تغطية نظيفة خلال هذه الفترة.
تُطبق النتائج حسب ترتيب رصد Coroid لرؤوس الفروع، وليس حسب تواريخ الالتزامات. إذا قام أحدهم بإعادة دفع الفرع إلى التزام قديم، يصبح فحص ذلك الالتزام أحدث نتيجة، ولا يغير ذلك نتيجة متأخرة لفرع تم تركه.
مُصلحة في الكود ومُصلحة في بيئة التشغيل
دمج الإصلاح لا يعني أن الإصلاح يعمل فعليًا. يتتبع قسم الأمان الحالتين بشكل منفصل:
- مُصلحة في الكود: الفرع الافتراضي لم يعد يحتوي على المشكلة.
- حسب البيئة: لكل بيئة تُبلغ عن ما تعمل به، يقوم Coroid بفحص نفس النسخة بالضبط. لا تُعتبر النتيجة مُصلحة في تلك البيئة إلا إذا أكد الفحص ذلك ولم يجد المشكلة. أي تراجع أو استعادة للحالة السابقة يعيد فتح النتيجة لتلك البيئة.
تُظهر 'بيئات' النتيجة البيئات لكل بيئة، ما إذا كانت 'تعمل في الإنتاج'، أو 'موجودة في الكود فقط'، أو 'نشر غير معروف'. النشر غير المعروف يعني أن Coroid لم يرصد نسخة للبيئة، أو لم يكمل فحصها بعد. المشروع الذي لا يتتبع عمليات النشر يظهر 'وضع المستودع فقط — لا يتم تتبع نسخة النشر'. لمتابعة عمليات النشر، انظر إلى أحداث النشر.
نظرة عامة → توضح نتائج تقدم الإصلاحات ما لا يزال قيد التشغيل في بيئة الإنتاج، وما تم إصلاحه في الكود لكن لم يتم نشره بعد، وما لا يمكن تحديده حاليًا، وطلبات سحب الإصلاحات التي تنتظر المراجعة، بالإضافة إلى متوسط الوقت من اكتشاف المشكلة حتى دمج الإصلاح ونشره.
استثناءات
يخفي الاستثناء نتيجة معينة من القائمة المفتوحة دون حذفها. يقوم المالك والمسؤولون بإضافة استثناء على نتيجة معينة:
| نوع | متطلبات |
|---|---|
| قبول المخاطر | سبب، وأعلى مستوى خطورة يُقبل، وتاريخ انتهاء في المستقبل. |
| ليست مشكلة (نتيجة إيجابية كاذبة) | سبب وأعلى مستوى خطورة يُقبل. الانتهاء اختياري. |
تعود النتيجة عند انتهاء صلاحية الاستثناء، أو عندما يلغيه أحدهم، أو عندما ترتفع خطورتها عن المستوى الذي يقبله الاستثناء. أي ارتفاع في مستوى الخطورة يلغي الاستثناء بشكل نهائي. تظل الملاحظات التي أخفاها الاستثناء محفوظة، ويتم تسميته. يتم تسجيل كل استثناء في سجل التدقيق الخاص بالمنظمة.
بيانات الاعتماد المتسربة مختلفة: فهي تُغلق فقط عندما يؤكد أحدهم أنها تم تدويرها أو إلغاؤها. انظر إلى أسرار متسربة.
التعامل مع نتيجة معينة
من خلال نتيجة معينة، يمكن للمالك والمسؤولين:
- إصلاح: فتح مهمة الإصلاح الخاصة بها. بالنسبة لنتيجة تعلق بتبعية عامة، يتم فتح طلب سحب للإصلاح، أو مهمة تخفيف عند عدم وجود إصدار ثابت. بالنسبة لنتيجة تعلق بالكود، يتم فتح مهمة إصلاح. بالنسبة لبيانات اعتماد متسربة، يتم فتح قائمة تحقق لتدويرها. انظر إلى طلبات سحب الإصلاحات.
- قبول المخاطر أو تحديدها كـ ليست مشكلة.
- تابع مهمة الإصلاح المفتوحة الخاصة بها وpull request.
الاحتفاظ بالبيانات
تظل النتائج وحدوثاتها وأدلتها محفوظة طالما كان المستودع متصلاً. عند انفصال المستودع، يتم حذفها بعد 30 يومًا، ويتم استعادتها إذا تم إعادة الاتصال به خلال هذه الفترة. بيانات الاستشارات المشتركة ليست ملكًا لك وتظل محفوظة. تظل إدخالات التدقيق المتعلقة بالاستثناءات والتصديقات والإفصاحات وفقًا لسياسة احتفاظ سجل التدقيق.