سلامة سلسلة التوريد
لمحة سريعة
قسم بعنوان «لمحة سريعة»تعمل ضوابط سلسلة التوريد في NextPDF عند نقطتين: بوابات CI التي تعمل عند كل طلب سحب يغيّر الاعتماديات وعند كل وسم إصدار، وسير عمل الإصدار الذي يهيّئ توليد إثبات المنشأ والتوقيع بلا مفاتيح وإصدار SBOM.
| الضابط | النوع |
|---|---|
SBOM بصيغة CycloneDX 1.7 للبناء | بوابة CI، صارمة |
| إفادة in-toto تلتزم بمدخلات البناء | بوابة CI، صارمة |
| مقارنة بصمات SHA-256 للاعتماديات مع خط أساس مثبَّت | بوابة CI، صارمة |
| فحص اتساق OpenVEX مقابل سياسة تنبيهات الاعتماديات | بوابة CI، صارمة |
| فحص الحتمية عبر عيّنات الاختبار | فحص CI، أفضل جهد |
توليد إثبات المنشأ عبر slsa-github-generator المثبَّت | تهيئة سير عمل — سير عمل الإصدار |
توقيع Sigstore cosign بلا مفاتيح مع تسجيل الشفافية في Rekor | تهيئة سير عمل — سير عمل الإصدار |
إصدار SBOM بصيغتَي CycloneDX 1.7 وSPDX 2.3 | تهيئة سير عمل — سير عمل الإصدار |
مصفوفة php-fuzzer ليلية على مسارَي المحلّل والكاتب | CI مجدول |
بوابات CI
قسم بعنوان «بوابات CI»يعمل عند كل طلب سحب يمسّ الاعتماديات، وعند كل وسم إصدار، ما يلي:
| الفحص | ما يفعله | البوابة |
|---|---|---|
| الجرد | يُصدِر SBOM بصيغة CycloneDX 1.7 للبناء | صارمة |
| سجل مدخلات البناء | يُصدِر إفادة in-toto تلتزم بمدخلات البناء | صارمة |
| سلامة الاعتماديات | يقارن بصمات SHA-256 على مستوى البايتات مع خط أساس مثبَّت | صارمة |
| اتساق VEX | يشترط أن يكون لكل مُدخل في سياسة تنبيهات الاعتماديات إفادة مطابقة في وثيقة OpenVEX v0.2.0 الخاصة بالمستودع | صارمة |
| قابلية إعادة الإنتاج | يشغّل فحص حتمية عبر عيّنات الاختبار | أفضل جهد |
تقارن بوابة سلامة الاعتماديات بصمات SHA-256 على مستوى البايتات لشجرة الاعتماديات مع خط أساس مثبَّت في المستودع، باستقلال عن البيانات الوصفية للحزم.
تهيئة سير عمل الإصدار
قسم بعنوان «تهيئة سير عمل الإصدار»إثبات المنشأ — تهيئة سير العمل
قسم بعنوان «إثبات المنشأ — تهيئة سير العمل»يثبّت سير عمل الإصدار سيرَ العمل القياسي القابل لإعادة الاستخدام
slsa-github-generator، وهو مُهيّأ لتوليد إثبات منشأ in-toto داخل بيئة بناء
معزولة وزائلة، ويهيّئ slsa-verifier للعمل ضمن المسار نفسه على مخرجات المولِّد.
التوقيع والشفافية — تهيئة سير العمل
قسم بعنوان «التوقيع والشفافية — تهيئة سير العمل»يهيّئ سير عمل الإصدار توقيع Sigstore cosign بلا مفاتيح لحزمة مخرجات الإصدار،
مع تسجيل الشفافية في Rekor. ويشتق التوقيع بلا مفاتيح شهادة قصيرة العمر من هوية
OIDC الخاصة بسير العمل (https://token.actions.githubusercontent.com)، ومن ثَمّ
فإن مسار توقيع الإصدار هذا مُهيّأ دون أي مفتاح طويل العمر لتوقيع المخرجات.
SBOM — تهيئة سير العمل
قسم بعنوان «SBOM — تهيئة سير العمل»يهيّئ سير عمل الإصدار إصدارَ SBOM مزدوجًا — وثيقة CycloneDX 1.7 ووثيقة
SPDX 2.3.
الاختبار العشوائي (fuzzing)
قسم بعنوان «الاختبار العشوائي (fuzzing)»تختبر مصفوفةُ php-fuzzer ليليةٌ، إلى جانب إطار اختبار لشجرة AST/البنية،
مسارَي المحلّل والكاتب.