تم كتابة هذه المقالة بالتعاون مع فيكتور كارتاشوف ودانيال نيبينزال.
اختبار المدقق: هل يمكنك إثبات صحة تصميماتك؟
"هل يمكنك أن تثبت بشكل قاطع أن كل صورة حاوية ترسلها تم بناؤها بالطريقة التي تدعيها بالضبط؟"
يتوقع معظم المدققين إجابة سريعة وواثقة، وليس أسابيع من إعادة هيكلة YAML المحمومة. يوفر إطار عمل SLSA (مستويات سلسلة التوريد لمنتجات البرمجيات) النموذج الأمثل لهذا الدليل: مصدر منظم ومقاوم للتلاعب.
لكن المشكلة تكمن هنا: تقليديًا، يتحول توصيل مولد المنشأ إلى كل سير عمل CI بسرعة إلى لعبة whack-a-mole:
- عشرات المستودعات؟ وهذا يعني عددًا لا يحصى من طلبات العلاقات العامة التي يتعين مراجعتها ودمجها.
- تغييرات في خط الأنابيب؟ صيانة يدوية مستمرة.
- المباني التاريخية؟ لا توجد طريقة مباشرة لإعادة إنشاء الأدلة للإصدارات السابقة.
تعمل Scribe Security على إزالة هذا الاحتكاك باستخدام SLSA على Scale. مدعوم من قبل مستوى أعلى لدينا منصات CLI، فهو يحصد سجلات CI الموجودة لديك بذكاء، ويكتشف تلقائيًا كل عملية بناء صورة، ويصدر مصدرًا شاملًا بالكامل (غير موقّع لمستوى SLSA 1 أو موقّع لمستوى SLSA 2) - كل ذلك من أمر واحد لا يتطلب أي إعداد أولي.
منصات CLI: التحول النموذجي بدون لمس في Provenance
نهج تقليدي | واجهة سطر أوامر منصات Scribe |
تضمين خطوة المولد في كل مهمة CI | صفر تعديلات على خط الأنابيب — تحليل السجلات بعد اكتمال البناء |
من الصعب ملء المباني القديمة | إنشاء المصدر بأثر رجعي من عمليات سير العمل السابقة |
الجهد الخطي لكل إعادة شراء | أمر واحد يقيس إلى 10 → 1,000+ مستودع |
كيف يحدث السحر: أتمتة الثقة
يؤدي Scribe Platforms CLI رقصة متطورة خلف الكواليس لتقديم مصدر SLSA التلقائي، كل ذلك دون التدخل في الإصدارات الحالية لديك:
- إنه يحصد السجلات: يتصل Scribe بنظام CI/CD الخاص بك (GitHub Actions حاليًا، مع دعم GitLab وJenkins قريبًا) لجلب سجلات البناء.
- يكتشف كل بناء: بدون أي إعداد خاص في خطوط الأنابيب لديك، يقوم Scribe بالتعرف بذكاء على أوامر Docker أو Podman أو Buildah لتحديد كل عملية إنشاء صورة.
- يستخرج البيانات الوصفية الرئيسية: يتم سحب التفاصيل المهمة مثل علامات الصور، والملخصات التشفيرية، ومعرفات المشغل، وحجج البناء، والطوابع الزمنية مباشرة من هذه السجلات.
- إنه يولد SBOMs المرتبطة: لتحقيق إمكانية التتبع الكاملة، يقوم Scribe تلقائيًا بإنشاء كليهما مصدر قائمة مواد البرمجيات (SBOMs) و صورة SBOMs، وربطها مباشرة بمصدر البناء.
- It Crafts SLSA المنشأ: باستخدام هذه البيانات الغنية، يقوم Scribe بعد ذلك بإنشاء بيان مصدر SLSA متوافق بالكامل مع كل صورة.
- علامات (اختياري) للمستوى 2: من خلال إضافة علم بسيط، يتكامل Scribe مع إمكانية التوقيع الخاصة بك (X509، Pub-Priv، Sigstore أو KMS المفضل لديك) لتوقيع المصدر تشفيريًا، ورفعه إلى مستوى SLSA 2.
- يتم التحقق والإبلاغ عن: الأمر الحاسم هو أن Scribe يقوم تلقائيًا بتشغيل الإعدادات المحددة مسبقًا SLSA.l1 or SLSA.l2 مبادراتٌ ضد الأدلة. هذا يُثبت سلامتها ويُنتج تقريرًا شاملًا عن SARIF، وهو مُوَقَّعٌ أيضًا للامتثال للمستوى الثاني.
يمكن أن تظل جميع القطع الأثرية المولدة محلية أو يتم تحميلها بشكل آمن إلى Scribe Hub للتخزين طويل الأمد المقاوم للتلاعب.
ما بعد الأجيال: إثبات الامتثال للسياسة باعتبارها قانونًا
يُعدّ توليد المنشأ أمرًا أساسيًا، ولكن إثبات امتثاله هو ما يُرضي المُدقّقين حقًا. فور توليد Scribe لمنشأ SLSA، يُنفّذ تلقائيًا مبادرات بناءً على هذا الدليل.
تعمل هذه المبادرات كمدققين آليين، وتتحقق من أشياء مثل:
- هل المصدر جيد التكوين وكامل؟
- هل جميع الحقول الضرورية موجودة ودقيقة؟
- هل SBOMs المرتبطة صالحة ويمكن الوصول إليها؟
- هل تم التوقيع على المصدر تشفيريًا بواسطة الهويات المتوقعة؟
النتيجة؟ تقرير SARIF شامل يُفصّل حالة امتثالكم. بالنسبة للمستوى الثاني، هذا التقرير مُوقّع أيضًا، مما يُوفّر إجابة واضحة تمامًا، وقابلة للقراءة آليًا، وقابلة للتحقق لأي مُدقّق.
مثال سريع: تحقيق منشأ SLSA باستخدام Scribe-Security 🚀
تُبسّط واجهة سطر أوامر المنصات من Scribe-Security عملية إنشاء بيانات SLSA لإصداراتك، مُقدّمةً أمرًا موحّدًا لتحقيق ضمان المستوى 1 (غير مُوقّع) والمستوى 2 (مُوقّع). الميزة الأساسية هي وجود الوسيطة –valint.sign.
للحصول على مصدر SLSA لجميع الإصدارات المستندة إلى العلامات في مستودع scribe-security/valint الخاص بك على GitHub، يمكنك تشغيل الأمر التالي:
سحق
بعد ذلك يبدأ Scribe في العمل: فهو يقوم بمسح سير عمل GitHub الأخيرة، ويكتشف عمليات إنشاء الصور الخاصة بك بذكاء، ويجمع كل البيانات الضرورية، ويكتب مصدر SLSA الشامل بالكامل مع SBOMs المرتبطة.
–valint.sign:مفتاحك لمستوى SLSA 1 أو 2 🔑
ال –valint.sign يعمل العلم بمثابة التبديل البسيط الخاص بك:
- حذف –valint.sign لمستوى SLSA 1 (غير موقّع): يقوم الكاتب بإنشاء مصدر أساسي غير موقع لضمان إمكانية التتبع الأساسية.
- تضمن –valint.sign لمستوى SLSA 2 (توقيع): يقوم الكاتب بالتوقيع بشكل مشفر على ملفات المصدر وتقرير الامتثال لـ SARIF، مما يوفر مستوى أعلى من الضمان القابل للتحقق.
يعمل هذا الأمر الموحد، الذي يتم التحكم فيه بواسطة علم واحد، على تبسيط تحقيق التوافق القوي مع SLSA على نطاق واسع دون تعديل خطوط أنابيب CI/CD الحالية لديك.
إنشاء منشأ SLSA مفتوح المصدر
لا يقتصر توليد بيانات SLSA على المستودعات الخاصة. فالعديد من مشاريع المصادر المفتوحة لديها سجلات CI/CD العامةمما يُتيح إمكانية تحديد مصدر لبنياتهم. مع أن سجلات المصدر هذه قد تحتوي في البداية على معلومات أقل شمولاً (مثل أسرار المستودع والمنظمة)، إلا أن التحسينات المستقبلية، ربما من خلال المصدر SBOM، يمكن معالجة هذا الأمر.
على سبيل المثال، يمكنك بسهولة إنشاء مصدر SLSA المستوى 1 لـ جو-جيتيا/جيتيا مشروع باستخدام منصات الاكتشاف أمر:
بعد تنفيذ هذا الأمر، ستشاهد سجلاً يشير إلى طلب SLSA وجدولًا يلخص عمليات إنشاء الصور المكتشفة ومصدرها المرتبط بها:
كما ترى، وقت كتابة هذا، كان أحدث إصدار من `gitea/gitea` هو الإصدار 1.24.2. الصورتان اللتان تم إصدار مصدر SLSA والأدلة المتعلقة بهما هما `gitea/gitea:1.24.2` و`gitea/gitea:1.24.2-rootless`. على سبيل المثال، يمكن الإشارة إلى مصدر SLSA في الرابط التالي. الصفحة ,
في خدمتنا، نقوم بإدارة دورة حياة الإطار والأدلة لتوفير نظرة عامة واضحة على منتجاتك وأصولك.
يتم تقديم هذا المحتوى إليك بواسطة Scribe Security، وهي شركة رائدة في مجال توفير حلول أمان سلسلة توريد البرامج الشاملة - حيث توفر أحدث الأمان لعناصر التعليمات البرمجية وعمليات تطوير التعليمات البرمجية وتسليمها عبر سلاسل توريد البرامج. تعرف على المزيد.