مرحبًا بكم مرة أخرى في الجزء الثاني من سلسلة مدونتنا، حيث نتعمق أكثر في القدرات الفعالة لـ Valint. في هذه المقالة، سنركز على محرك سياسة Valint ودوره المحوري في ضمان الامتثال عبر سلسلة التوريد الخاصة بك.
في منشور مدونتنا السابق، قدمنا نظرة عامة على مبادئ تصميم فالينت.
كيف يعمل محرك السياسة
يعمل محرك سياسة Valint على مجموعة من القواعد المنظمة في سياسات تم التحقق منها مقابل الأدلة التي تم جمعها من سلسلة التوريد. دعونا نحلل مكوناته الرئيسية:
دليل: الكائنات غير القابلة للتغيير والمخصصة للاستهلاك تلقائيًا بواسطة السياسات. تحتوي هذه الكائنات على بيانات التعريف اللازمة لتمكين فرض السياسة وتلبية متطلبات الامتثال. يتضمن محتوى الدليل بيانات تعريفية حول العناصر والأحداث والإعدادات، ولكن يمكنه أيضًا جمع التقارير أو التكوينات أو عمليات الفحص الفعلية. قد تأتي الأدلة في شكل موقع وغير موقع. نقترح اتباع Intoto مواصفات التصديق باستخدام الموقعة شهادة والتنسيقات غير الموقعة، على التوالي.
- الشهادات (أدلة موقعة يمكن التحقق منها AKA): أدلة يمكن التحقق منها مرتبطة بموضوع محدد السياق البيئينقل الثقة باستخدام شكل من أشكال توقيعات PKI.
سياسات: تحدد هذه المتطلبات المتطلبات التي يجب أن تلبيها سلسلة التوريد الخاصة بك، وتغطي جوانب مختلفة مثل التحقق من الصحة وتفاصيل الامتثال والحكم النهائي على الأدلة. على سبيل المثال، يمكن أن يكون لدى المنظمة "سياسة صورة الحاوية"
قواعد السياسة: تتكون السياسات من قواعد، يمثل كل منها فحصًا محددًا للامتثال. تشمل الأمثلة التحقق من التوقيعات والهويات، والتحقق من مكونات SBOM، والتحقق من عدم وجود نقاط ضعف حرجة. باتباع المثال السابق، يمكن أن تتكون "سياسة صورة الحاوية" من القواعد التالية:
- فرض توقيع الصورة.
- تحذير على الصورة لا شكوى مع تسميات محددة.
بال: مجموعات من السياسات والقواعد التي يمكن الرجوع إليها بشكل ملائم ككل. توفر الحزم طريقة معيارية ومنظمة لإدارة وتطبيق مجموعات من السياسات كرمز. يتم نشر حزمة السياسة الافتراضية للكاتب تحت https://github.com/scribe-public/sample-policies، فلا تتردد في الرجوع إليها.
استخدام السياسات مع Valint
تعمل Valint على تمكين المستخدمين من استهلاك السياسات كرمز من المستودعات العامة أو الخاصة، مما يوفر المرونة وخيارات التخصيص. للبدء، ما عليك سوى تثبيت Valint وتحديد سياساتك وفقًا لاحتياجات الامتثال الخاصة بك.
تركيب: ابدأ بتثبيت Valint باستخدام البرنامج النصي المتوفر. قم بتنفيذ الأمر التالي في المحطة الطرفية الخاصة بك:
curl -sSfL https://get.scribesecurity.com/install.sh | sh -s — -t valint
تعريف السياسة: بعد ذلك، حدد سياساتك وفقًا لمتطلبات الامتثال الخاصة بمؤسستك. قم بإنشاء ملف YAML، مثل my_policy.yaml
، وقم ببنائها لتغليف القواعد التي تريدها. فيما يلي مثال على الشكل الذي قد يبدو عليه ملف السياسة الخاص بك:
الاسم: my_image_policy الافتراضيات: الدليل: موقع: القواعد الحقيقية: - الاستخدامات: الصور/fresh-image@v1 مع: max_days: 100 - الاستخدامات: الصور/التحقق من العلامات-exist@v1 المستوى: تحذير مع: التسميات: # صورة مطلوبة ل يتم تصنيفها (أمر Dockerfile LABEL) - المشرف # يتطلب تسمية مشرف. - org.opencontainers.image.source # يتطلب تسمية الصور بمصادرها
في هذا المثال، قمنا بتعريف سياسة اسمها my_image_policy
، والذي ينص على وجوب توقيع الأدلة الفنية وإنشاء الصور خلال آخر 100 يوم. بالإضافة إلى ذلك، فإنه يصدر تحذيرًا إذا كانت الصور تفتقر إلى تسميات محددة.
لا تتردد في المغادرة قواعد أخرى نحن ندعم خارج الصندوق.
إنشاء الأدلة: قبل تقييم سياساتك، تحتاج إلى إنشاء الأدلة اللازمة. استخدم Valint لإنشاء دليل لصورتك المستهدفة:
valint bom nginx:latest -o attest
هذا الأمر يولد دليلا على nginx:latest
الصورة، مع التأكد من أنها تتضمن بيانات وصفية مثل هوية الصورة ووقت الإنشاء. بشكل افتراضي، يستخدم Valint سيجستور الخدمة كموقع لتوليد الأدلة، والتي تربط هوية OIDC بالشهادة. ومع ذلك، يدعم Valint أيضًا استخدام ملفاتك الخاصة x509 مفاتيح PKI وسلاسل CA للتوقيع.
ما عليك سوى تحديد معرف OIDC الذي تختاره للتوقيع به.
وأخيرًا، يمكنك مراجعة مدى نجاح عملية توليد الأدلة وهويتها للتأكد من نزاهتها ومصداقيتها.
[2024-03-26 12:41:55] تشهد المعلومات: [موثوق] نجاح التوقيع، CA: fulcio-signer، CN: sigstore-intermediate، رسائل البريد الإلكتروني: [your_identity@gmail.com]، URIs: [] ... [2024-03-26 12:41:55] شهادة INFO: تم إنشاء الأدلة بنجاح
تقييم السياسة: بعد تحديد سياستك وإنشاء الأدلة، حان الوقت لتقييمها مقابل مكونات سلسلة التوريد الخاصة بك. الاستفادة من valint verify
الأمر متبوعًا بالصورة المستهدفة وملف السياسة الخاص بك:
valint verify nginx:latest --policy my_policy.yaml
ملخص التقييم:
بمجرد اكتمال التقييم، قم بمراجعة جدول الملخص المقدم من سجلات Valint.
في هذه الحالة بالذات، يوضح تحليل فالينت أن nginx:latest
الصورة تلبي متطلبات الحداثة بنجاح ولكنها تفتقر إلى الامتثال لمعايير وضع العلامات، كما هو متوقع. يوضح الجدول المقدم بإيجاز حالة التقييم لكل قاعدة، مع الإشارة إلى ما إذا كان الدليل قد تم توقيعه بشكل صحيح.
نتائج بتنسيق SARIF:
علاوة على ذلك، يمكنك استكشاف النتائج بتنسيق SARIF التي تنتجها Valint، وهي بمثابة دليل آخر للسلام لتوضيح تفاصيل التقييم والانتهاكات والمستويات ومراجع الأدلة.
منصات الإدارة المدعومة:
يتمتع هذا التنسيق الموحد بدعم من أنظمة إدارة الأمان المختلفة مثل GitHub وAzure وScribe SAAS. لا تتعامل منصات Scribe مع نتائج السياسة فحسب، بل تسهل أيضًا إدارة الأدلة وتوفر ميزات شاملة لإدارة الثغرات الأمنية وتتبع المقاييس والمزيد.
معاينة المعلومات:
لتقديم لمحة عن المعلومات المتوفرة في نتائج السياسة:
{ "الإصدار": "2.1.0"، "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json"، "runs": [ { "tool": { "driver": { "informationUri": "https://scribesecurity.com"، "name": "valint"، "rules": [ { "id": "fresh" -image", "name": "Fresh Image", "shortDescription": { "text": "قاعدة للتحقق من أن الصورة ليست أقدم من العتبة" }, }, { "id": "labels"، "name": "Labels"، "shortDescription": { "text": "قاعدة للتحقق من أن الصورة تحتوي على جميع التصنيفات المطلوبة" }, }, "results": [ { "ruleId": "fresh-image" ، "ruleIndex": 0، "kind": "pass"، }، { "ruleId": "labels"، "ruleIndex": 1، "kind": "فشل"، "مستوى": "تحذير"، "سياسة" .violation": { "type": "تسميات مفقودة"، "تفاصيل": [ { "label": "not_found" }, { "label": "org.opencontainers.image.source" } }, ... ] }
حزم السياسات
الحزمة في Valint عبارة عن سياسة كحزمة تعليمات برمجية، وهي في الأساس ملف مستودع Git استضافة مجموعة من السياسات والقواعد. يمكن للمستخدمين إعداد حزمتهم الخاصة عن طريق تشكيل نموذج المستودع المقدم من Valint وتخصيصه وفقًا لاحتياجاتهم.
شوكة وتخصيص: ابدأ بتفرع Valint's مستودع العينة. قم بتخصيص السياسات والقواعد لتتوافق مع احتياجات مؤسستك.
توفير فالينت: قم بتوفير الحزمة المخصصة الخاصة بك إلى Valint:
التحقق من صحة --bundle https://github.com/my_org/my_bundle.git \ --policy my_policy.yaml
القواعد المخصصة
عند تخصيص القواعد، تتمثل المسؤولية الأساسية في تحليل حمولة الأدلة والإبلاغ عن الانتهاكات بناءً على معايير الامتثال المحددة. سواء كنت تقوم بتعديل القواعد الحالية أو إنشاء قواعد جديدة.
تحديد معايير الامتثال: تحديد معايير الامتثال بناءً على السياسات التنظيمية أو معايير الأمان أو اللوائح.
تحديد معايير الأدلة: تحديد الأدلة المتوقع أن تنقل الامتثال.
تقييم الالتزام والإبلاغ عن المخالفات: استخدم حمولة الأدلة لتقييم الامتثال للمعايير المحددة. قم بالإبلاغ عن الانتهاكات في حالة فشل المكون في تلبية المتطلبات.
تضمن Valint أن متطلبات أصل التوقيع والأدلة متاحة بسهولة لأي قاعدة مخصصة.
بينما يعمل فالينت حاليًا أوبا ريجو بالنسبة لصياغة القواعد، ينتظرك أفق مثير حيث من المقرر أن يتم دمج قواعد بايثون في المستقبل القريب.
ما هي الخطوة التالية؟
أصبح التكامل مع Gatekeeper متاحًا الآن! الرجوع إلى لدينا توثيق للتفاصيل. ترقبوا تدوينة قادمة حيث نتعمق في هذا التطور المثير.
ترقب منشورات المدونة المستقبلية حيث سنستكشف مبادرات السياسة، بما في ذلك السياسات عالية المستوى التي ستنفذ أطر الأمان مثل SLSA وSSDF.
أخبار مثيرة لعشاق بايثون! يتضمن التحديث الأخير لدينا دعمًا شاملاً لـ Python، مما يوفر تعزيزًا كبيرًا للتوافق. وهذا يمكّن واضعي السياسات من تخصيص القواعد باستخدام بايثون والاستفادة من مجموعتها الواسعة من المكتبات.
وفي الختام
باختصار، يقدم محرك سياسة Valint حلاً قويًا لضمان الامتثال داخل سلسلة التوريد الخاصة بك. ومن خلال الاستفادة من مكوناتها مثل الأدلة والسياسات والحزم، يمكن للمؤسسات تبسيط جهود الامتثال وتخفيف المخاطر بشكل فعال.
يتم تقديم هذا المحتوى إليك بواسطة Scribe Security، وهي شركة رائدة في مجال توفير حلول أمان سلسلة توريد البرامج الشاملة - حيث توفر أحدث الأمان لعناصر التعليمات البرمجية وعمليات تطوير التعليمات البرمجية وتسليمها عبر سلاسل توريد البرامج. تعرف على المزيد.