
تطبيق GitHub لتعيين وتنفيذ السياسات الأمنية
[!IMPORTANT] تم إيقاف تطبيق Allstar على GitHub المستضاف من OpenSSF. لا يزال Allstar، وهو مشروع فرعي تابع لـ OpenSSF Scorecard، قيد الصيانة — ويجب عليك الآن تشغيله بنفسك، إما كإجراء GitHub أو كخدمة خلفية (daemon).
راجع ossf/allstar#881 لمزيد من التفاصيل.
إذا كانت مؤسستك تعتمد على التطبيق المستضاف، فراجع الانتقال بعيدًا عن التطبيق المستضاف.
Allstar هو تطبيق GitHub يراقب باستمرار مؤسسات GitHub أو المستودعات للتأكد من التزامها بأفضل ممارسات الأمان. إذا اكتشف Allstar انتهاكًا لسياسة أمنية، فإنه ينشئ مشكلة (issue) لتنبيه مالك المستودع أو المؤسسة. وبالنسبة لبعض السياسات الأمنية، يمكن لـ Allstar أيضًا أن يغيّر تلقائيًا إعداد المشروع الذي تسبب في الانتهاك، معيدًا إياه إلى الحالة المتوقعة.
هدف Allstar هو منحك تحكمًا دقيقًا في الملفات والإعدادات التي تؤثر على أمان مشاريعك. يمكنك اختيار السياسات الأمنية التي تريد مراقبتها على مستوى المؤسسة والمستودع على حد سواء، وكيفية التعامل مع انتهاكات السياسات. يمكنك أيضًا تطوير سياسات جديدة أو المساهمة فيها.
يُطوَّر Allstar كجزء من مشروع OpenSSF Scorecard.
إذا كانت تظهر لديك مشكلات غير مرغوب فيها ينشئها Allstar، فاتبع هذه الإرشادات للانسحاب.
Allstar قابل للتكوين بدرجة كبيرة. هناك ثلاثة مستويات رئيسية للتحكم:
تُجرى هذه التكوينات في مستودع .allstar الخاص بالمؤسسة.
مستوى المستودع: يمكن لصيانة المستودعات في مؤسسة تستخدم
Allstar اختيار شمول مستودعهم أو انسحابه من عمليات الإنفاذ على مستوى
المؤسسة. ملاحظة: لا تعمل عناصر التحكم هذه على مستوى المستودع إلا عندما
يُسمح بـ "تجاوز المستودع" (repo override) في إعدادات مستوى المؤسسة. تُجرى هذه التكوينات
في دليل .allstar الخاص بالمستودع.
مستوى السياسة: يمكن للمسؤولين أو الصيانة اختيار السياسات
الممكّنة على مستودعات محددة والإجراءات التي يتخذها Allstar عند انتهاك
سياسة ما. تُجرى هذه التكوينات في ملف yaml للسياسة في إما
مستودع .allstar الخاص بالمؤسسة (المسؤولون)، أو دليل .allstar
الخاص بالمستودع (الصيانة).
قبل تثبيت Allstar على مستوى المؤسسة، ينبغي أن تقرر تقريبًا عدد المستودعات التي تريد أن يعمل عليها Allstar. سيساعدك هذا على الاختيار بين استراتيجيتَي الاشتراك (Opt-In) والانسحاب (Opt-Out).
تتيح لك استراتيجية الاشتراك إضافة المستودعات التي تريد أن يعمل عليها Allstar يدويًا. إذا لم تحدد أي مستودعات، فلن يعمل Allstar رغم تثبيته. اختر استراتيجية الاشتراك إذا كنت تريد فرض السياسات على عدد صغير فقط من إجمالي مستودعاتك، أو تريد تجربة Allstar على مستودع واحد قبل تفعيله على المزيد. منذ إصدار v4.3، أصبحت أنماط glob مدعومة لإضافة عدة مستودعات ذات اسم مشابه بسهولة.
استراتيجية الانسحاب (موصى بها) تفعّل Allstar على جميع المستودعات وتتيح لك تحديد المستودعات التي تريد استثناءها يدويًا من تطبيقات Allstar. يمكنك أيضًا اختيار استثناء جميع المستودعات العامة، أو جميع المستودعات الخاصة. اختر هذا الخيار إذا كنت تريد تشغيل Allstar على جميع المستودعات في مؤسسة، أو تريد استثناء عدد صغير فقط من المستودعات أو نوع محدد (أي العام مقابل الخاص) من المستودعات. منذ إصدار v4.3، أصبحت أنماط glob مدعومة لإضافة عدة مستودعات ذات اسم مشابه بسهولة.
| الانسحاب (موصى به) optOutStrategy = true |
الاشتراك optOutStrategy = false |
|
|---|---|---|
| السلوك الافتراضي | جميع المستودعات مفعّلة | لا توجد مستودعات مفعّلة |
| إضافة المستودعات يدويًا | إضافة المستودعات يدويًا تعطّل Allstar على تلك المستودعات | إضافة المستودعات يدويًا تفعّل Allstar على تلك المستودعات |
| إعدادات إضافية | optOutRepos: سيتم تعطيل Allstar على المستودعات المدرجة optOutPrivateRepos: إذا كانت true، سيتم تعطيل Allstar على جميع المستودعات الخاصة optOutPublicRepos: إذا كانت true، سيتم تعطيل Allstar على جميع المستودعات العامة (optInRepos: سيتم تجاهل هذا الإعداد) |
optInRepos: سيتم تفعيل Allstar على المستودعات المدرجة (optOutRepos: سيتم تجاهل هذا الإعداد) |
| تجاوز المستودع | إذا كانت true: يمكن للمستودعات الانسحاب من تطبيقات Allstar الخاصة بمؤسستها
باستخدام الإعدادات في ملف المستودع الخاص بها. يتم تجاهل إعدادات الاشتراك على
مستوى المؤسسة التي تنطبق على ذلك المستودع. إذا كانت false: لا يمكن للمستودعات الانسحاب من تطبيقات Allstar كما هي مُهيّأة على مستوى المؤسسة. |
إذا كانت true: يمكن للمستودعات الاشتراك في تطبيقات Allstar الخاصة بمؤسستها حتى
إذا لم تكن مُهيّأة للمستودع على مستوى المؤسسة. يتم تجاهل إعدادات الانسحاب على
مستوى المؤسسة التي تنطبق على ذلك المستودع. إذا كانت false: لا يمكن للمستودعات الاشتراك في تطبيقات Allstar إذا لم تكن مُهيّأة على مستوى المؤسسة. |
يعمل Allstar على مؤسستك كتطبيق GitHub: فأنت تنشئ التطبيق، وتشغّل العملية التي تصادق باسمه. لذلك يتكوّن الإعداد من خطوتين مشتركتين بين كل عمليات النشر — إنشاء التطبيق و إنشاء مستودع التحكم — ثم اختيار طريقة تشغيله:
| إجراء GitHub | خدمة daemon | |
|---|---|---|
| كيف يعمل | مهمة مجدولة في مستودع .allstar الخاص بك | عملية دائمة تستضيفها أنت |
| ما توفّره | لا شيء يتجاوز GitHub | خادم أو منسّق حاويات |
| التواتر | حسب ما تضبطه في cron | مستمر، مع ظهور النتائج خلال 5-10 دقائق |
| جهد الإعداد | متوسط | مرتفع |
| الأنسب عندما | تريد الخيار الأقل من حيث البنية التحتية | تريد أكبر قدر من التحكم، أو تشغّل خدمات بالفعل |
الإجراء هو الخيار الأقل عبئًا بين الاثنين، وهو ما ينبغي أن تبدأ به معظم المؤسسات؛ ويمكنك الانتقال إلى daemon لاحقًا دون تغيير أي إعدادات للسياسات.
التطبيق هو هوية شبيهة بهوية المستخدم مع مجموعة من الأذونات في مؤسستك.
يحتاج Allstar إلى صلاحية القراءة لمعظم الإعدادات ومحتويات الملفات لاكتشاف
الامتثال، وصلاحية الكتابة على المشكلات (issues) وعمليات الفحص (checks) لإنشاء
المشكلات ودعم إجراء block.