تدقيق الـ webhooks
تدقيق الـ webhooks في Apothem — تدوير الأسرار، وتقليل النطاق، وأدلّة فحص Webhooks في Scorecard.
يتحقّق فحص Webhooks في OpenSSF Scorecard من أن webhooks المستودع تستخدم سرًّا مشتركًا لمصادقة سطح التسليم — فبدونه، يستطيع المهاجم الذي يعرف عنوان URL الخاص بالـ webhook إعادة تشغيل الأحداث أو تزويرها.
وضعية الـ webhooks في Apothem
| سطح الـ webhook | الحالة | وتيرة تدوير السرّ |
|---|---|---|
| webhooks المستودع | لا شيء مُهيَّأ على مستوى المستودع. | غير مُنطبِق |
| webhooks المنظمة | لا شيء مُهيَّأ على مستوى المنظمة. | غير مُنطبِق |
| أحداث سير العمل | يديرها GitHub؛ غير خاضعة لفحص Webhooks. | غير مُنطبِق |
يُشغِّل Apothem حاليًّا صفرًا من أسطح الـ webhook الخارجية. يستخدم كل تكامل مدفوع بالأحداث أسطح سير عمل أصلية في GitHub (CI، وScorecard، وCodeQL، وpip-audit) وهي غير خاضعة لفحص Webhooks في Scorecard.
حوكمة الـ webhooks المستقبلية
عندما يُنمّي Apothem أسطح webhook (مثلًا، إشعارات الإصدار في Discord / Matrix، ومُشغِّلات بناء المستهلكين النهائيين)، يجب على المُشغِّل:
- توليد سرّ عالي الإنتروبيا (≥ 32 بايت، عشوائي تعمويًّا).
- تخزين السرّ في سطح الأسرار المشفَّرة بالمستودع — لا في الشيفرة المصدرية أبدًا، ولا في YAML سير العمل أبدًا.
- تهيئة الـ webhook بالسرّ بحيث يُوقِّع GitHub ترويسة
X-Hub-Signature-256في كل تسليم. - التحقّق من التوقيع على نقطة النهاية المستقبِلة باستخدام مقارنة ذات زمن ثابت.
- تدوير السرّ كل 12 شهرًا أو خلال 24 ساعة من أي اشتباه باختراق.
- توثيق الـ webhook في ملف التدقيق هذا مع غرضه ونقطة النهاية المستقبِلة وتاريخ التدوير.
وتيرة التدقيق
يُراجَع هذا الملف في كل تمريرة لـ /security-audit وعند كل نقطة تفتيش سابقة للتبديل في هندسة الإصدار. ويُعدّ الانحراف (مثلًا، سطح webhook أُدخِل دون مُدخَل هنا) اكتشافًا بخطورة HIGH.