خلفيّة
SLSA (مستويات سلسلة التوريد لعناصر البرمجيات) عبارة عن إطار عمل أمني يهدف إلى منع التلاعب وتحسين السلامة وتأمين الحزم والبنية التحتية. المفهوم الأساسي لـ SLSA هو أنه لا يمكن الوثوق بالمنتج البرمجي إلا إذا كان يتوافق مع ثلاثة متطلبات:
- يجب أن تحتوي القطعة الأثرية على وثيقة مصدر تصف أصلها وعملية بنائها (L1).
- يجب أن تكون وثيقة المصدر جديرة بالثقة ويتم التحقق منها في اتجاه مجرى النهر (L2).
- يجب أن يكون نظام البناء جديرًا بالثقة (L3).
يحدد إطار عمل SLSA المستويات التي تمثل مدى أمان سلسلة توريد البرامج. تتوافق هذه المستويات مع مستوى تنفيذ هذه المتطلبات (المشار إليه في L1-L3 أعلاه).
الكاتب valint slsa
يمكن استخدام الأمر لإنتاج وثائق المصدر. فيما يلي، نوضح كيفية تحقيق مستويات SLSA باستخدام هذه الأداة.
ملحوظة: نشير هنا إلى إطار عمل SLSA V1.0.
SLSA L1
إنّ المتطلبات لSLSA L1 ما يلي:
- يتبع منتجو البرامج عملية بناء متسقة.
- تقوم منصة البناء تلقائيًا بإنشاء بيانات المصدر التي تصف كيفية بناء القطعة الأثرية.
- يقوم منتجو البرمجيات بتوزيع بيانات المصدر على المستهلكين.
قائمة مرجعية لتحقيق SLSA L1:
- قم ببناء برنامجك باستخدام نظام CI. يفضل استخدام برنامج نصي للبناء يتم التحكم فيه بالمصدر.
- تفعيل
valint slsa
الأمر كجزء من البرنامج النصي للبناء الخاص بك لإنشاء مستند المصدر. لاحظ أنvalint slsa
يسمح الأمر بإضافة معلومات إضافية إلى مستند المصدر - يمكنك تخصيص محتوى مستند المصدر حسب احتياجاتك.
SLSA L2
إنّ المتطلبات لSLSA L2 ما يلي:
- متطلبات SLSA L1.
- يتم تشغيل البناء على منصة بناء مستضافة تقوم بإنشاء المصدر نفسه وتوقيعه.
- يتضمن التحقق النهائي من المصدر التحقق من صحة المصدر.
قائمة مرجعية لتحقيق SLSA L2:
- قائمة التحقق SLSA L1.
- استخدم خدمة بناء مستضافة (بدلاً من إجراء البناء على جهاز المطور).
- قم بإنشاء مستند مصدر موقع (بدلاً من مستند غير موقع، وهو ما يكفي لـ SLSA L1) ويمكن تحقيق ذلك عن طريق تشغيل
valint slsa ... -o attest
. الكاتب فالينت تحتوي الأداة على مجموعة واسعة من إمكانيات التوقيع؛ بالنسبة للمؤسسات، نوصي باستخدام مفاتيح وشهادات X.509 PKI. - تحقق من صحة وثيقة المصدر باستخدام الملف
valint verify
يأمر. قد يتضمن التحقق التوقيع وهوية التوقيع، بالإضافة إلى قواعد التحقق الأخرى التي تؤكد محتوى مستند مصدر SLSA. يمكن العثور على بعض الأمثلة في Scribe's كتالوج السياسة.
ملحوظة: يجب أن يتم التحقق من قبل مستهلك البرنامج المدمج؛ ومن أجل الامتثال الداخلي، يمكن إجراء التحقق كجزء من مسار الاختبار.
SLSA L3
متطلبات SLSA L3
إنّ المتطلبات لSLSA L3 ما يلي:
- متطلبات SLSA L2.
- تطبق منصة البناء ضوابط قوية من أجل:
- منع عمليات التشغيل من التأثير على بعضها البعض، حتى داخل نفس المشروع.
- منع الأسرار المستخدمة لتوقيع المصدر من الوصول إليها من خلال خطوات البناء المحددة من قبل المستخدم.
بالإضافة إلى ذلك، من أجل الثقة في منصة البناء، يحتاج المرء إلى ذلك التحقق من منصة البناء. يجب أن تكون منصة البناء موثوقة بمعنى أن وثيقة المصدر ستكون كذلك غير قابل للتزوير وسيكون البناء معزول. ويستمد هذا التحقق المتطلبات التالية:
- تحقق من أن استخدام المنصة لا ينقطع عدم القابلية للتغيير والعزلة المتطلبات.
- على سبيل المثال، يمكن التحقق من العزل عن طريق تقييم استخدام ذاكرة التخزين المؤقت في المسار.
- لضمان عدم قابلية مستند المصدر للتزوير، نوصي بإنشائه وتوقيعه في مسار إنشاء مخصص.
- تحقق من مصداقية منصة البناء.
- بالنسبة لـ SaaS CIs، يجب إجراء التحقق مع بائع النظام الأساسي للإنشاء. في الحالات التي يكون فيها منتج البرنامج مسؤولاً عن نشر نظام البناء، يوصى بالجمع بين الإقرار الذاتي للبائع وإجراء تحليل لجوانب النشر.
- على سبيل المثال، عند نشر CI مستضاف ذاتيًا، يجب أن تعلن شهادة البائع كيفية عزل الإصدارات عن بعضها البعض، ويجب أن يتحقق تحليل النشر من أذونات الوصول وتدقيق السجل لنظام CI.
تمثل هذه المتطلبات تحديًا نظرًا لأن استيفائها يعتمد على منصة CI، ولا يمكن تشغيلها آليًا بالكامل، وتتطلب تحليلًا أمنيًا احترافيًا لأنظمة البناء وخطوط الأنابيب. ولهذا السبب يقترح إطار عمل SLSA على وجه التحديد أن تتطور المؤسسات تدريجيًا من الامتثال لـ SLSA L2 إلى SLSA L3.
إذا أكملت هذه المقالة وصولاً إلى هنا وقررت أن SLSA L3 هو الشيء الصحيح بالنسبة لك، فشمر عن سواعدك - إليك توصيتنا للحصول على قائمة مرجعية:
قائمة مرجعية لتحقيق SLSA L3:
- قائمة التحقق SLSA L2.
- تقييم نظام CI. الهدف هو الإجابة على الأسئلة التالية:
- تحت أي ظروف يمكن لكيان غير مصرح به التهرب من نظام البناء؟
- تحت أي ظروف يمكن أن تؤثر البنيات على بعضها البعض؟
بمجرد الإجابة - قم بإدارة المخاطر المتبقية.
- عزل جيل وثيقة المصدر:
- قم بفصل إنشاء مستند المصدر إلى مسار مختلف، ويفضل أن يكون ذلك في خدمة بناء منفصلة.
- اكشف لخط الأنابيب هذا فقط عن الأسرار المستخدمة لتوقيع وثيقة المصدر.
- إما أن تقوم بإنشاء أو التحقق من محتوى مستند المصدر على هذا المسار. في حالة التحقق، تحقق من جميع الحقول الممكنة لوثيقة المصدر التي تم إنشاؤها ضمن المسار باستخدام البيانات التي تم جمعها مباشرة من منصة الإنشاء أو من مصادر موثوقة أخرى.
- قم بفصل إنشاء مستند المصدر إلى مسار مختلف، ويفضل أن يكون ذلك في خدمة بناء منفصلة.
- عزل خط الأنابيب والتحقق من عزله عن خطوط الأنابيب الأخرى:
- التحقق من استخدام ذاكرات التخزين المؤقت ووحدات التخزين المشتركة.
- تأكد من أن الأسرار المشتركة مع خطوط الأنابيب الأخرى لا يمكن أن تسمح لخطوط الأنابيب بالتأثير على بعضها البعض.
- تأكد من أن خطوط الأنابيب لا يمكن أن تؤثر على بعضها البعض
- على سبيل المثال، منع عمليات التثبيت التي تتم عبر أحد الأنابيب من التأثير على تشغيل الأنابيب الأخرى. يمكن القيام بذلك عن طريق استخدام أدوات الإنشاء المؤقتة (مثل الحاوية التي يتم إنشاؤها لكل بناء) أو عن طريق التحقق من أن أدوات الإنشاء تبدأ في كل مرة من حالة محددة مسبقًا.
لتحقيق SLSA L3 باستخدام أدوات Scribe، نوصي بما يلي:
- قم بتجهيز مسار البناء لإنشاء جميع الشهادات التي ستكون مطلوبة لملء وثيقة المصدر. على سبيل المثال، قد تقرر أنك تريد قائمة بالتبعيات المثبتة أثناء الإنشاء. يمكن إنشاء هذه القائمة بواسطة أ
valint bom dir:
يأمر. بالإضافة إلى ذلك، قم بإنشاء شهادة المصدر في المسار باستخدام ملفvalint slsa
أمر. - قم بإنشاء مسار منفصل لتوليد المصدر الموثوق به والذي سيقوم بما يلي:
- إنشاء مستند مصدر موثوق به استنادًا إلى المستند الذي تم إنشاؤه في مسار الإنشاء؛
- اجمع البيانات من خدمة البناء واستخدمها للتحقق من مستند المصدر وتحديثه.
- تحقق من محتوى الشهادات التي تم إنشاؤها في مسار الإنشاء. على سبيل المثال، تحقق من محتوى مشغل الإنشاء من خلال مقارنة شهادة SBOM من مسار الإنشاء مع شهادة SBOM التي تم أخذ عينات منها بشكل منفصل.
- استخدم الشهادات التي تم جمعها من مسار البناء لتحديث وثيقة المصدر.
- يمكن تحديث وثيقة المصدر باستخدام
valint slsa
أمر.
- تأكد من عزل البناء عن طريق تقييم البيانات التي تم جمعها من خدمة البناء. على سبيل المثال – التحقق من استخدام المخابئ والأسرار.
- إنشاء مستند مصدر موثوق به استنادًا إلى المستند الذي تم إنشاؤه في مسار الإنشاء؛
من أجل إجراء عملية جمع البيانات وتقييمها، يوفر Scribe الأدوات التي تنشئ شهادات لتشغيل الإنشاء وإجراء عمليات التحقق المطلوبة.
---
حسنًا. يبدو أنك مستعد تمامًا للانطلاق. بالطبع، إذا كنت بحاجة إلى أي مساعدة، أخبرنا. نحن هنا للمساعدة ونود تقديم المشورة أو المساعدة بنشاط.
يتم تقديم هذا المحتوى إليك بواسطة Scribe Security، وهي شركة رائدة في مجال توفير حلول أمان سلسلة توريد البرامج الشاملة - حيث توفر أحدث الأمان لعناصر التعليمات البرمجية وعمليات تطوير التعليمات البرمجية وتسليمها عبر سلاسل توريد البرامج. تعرف على المزيد.