Software Supply Chain Failures
إخفاقات سلسلة التوريد البرمجية Software Supply Chain Failures
A03:2025 — فئة جديدة مستقلة في القائمة العامة (كانت مدمجة ضمن 'مكونات قديمة'): مخاطر بناء ونشر وتحديث الكود عبر تبعيات وأدوات CI/CD وسجلات خارجية.
تشمل كل نقطة قد يتسلل منها كود خبيث قبل وصوله لبيئة الإنتاج: تبعية مباشرة أو غير مباشرة (transitive) مخترقة، أداة بناء أو CI/CD مخترقة، أو سجل حزم يوزّع نسخة معدَّلة. هجمات هذه الفئة تنتشر تلقائيًا أحيانًا — كما في دودة npm الذاتية الانتشار 'Shai-Hulud' (2025) التي سرقت بيانات اعتماد مطورين ونشرت نفسها في كل حزمة يملك الحساب المخترق صلاحية نشر عليها، فأصابت مئات الحزم خلال ساعات.
للتفاصيل العملية الكاملة (SBOM، توقيع الحزم، منع Dependency Confusion) راجع [درس أمن سلسلة التوريد](/learn/api-security/19-supply-chain).
الصياغة
SBOM لكل إصدار + lock files + سجلات موثوقة فقط + توقيع الحزم والصور
📄 مثال
// .npmrc — تقييد سجل الحزم الداخلية لمنع Dependency Confusion @company:registry=https://npm.pkg.github.com/ registry=https://registry.npmjs.org/ // استخدام npm ci بدل npm install في CI/CD — يلتزم بـ lock file حرفيًا // ولا يحدّث أي تبعية بصمت
أهم النقاط
| النقطة | الوظيفة |
|---|---|
| التبعيات | مباشرة وغير مباشرة (transitive) — كلاهما نقطة دخول محتملة |
| أدوات البناء | CI/CD وحسابات النشر (npm tokens) هدف مباشر — سرقتها تعني نشر كود خبيث باسمك |
| الانتشار الذاتي | بعض الهجمات الحديثة (2025) تنتشر تلقائيًا عبر حسابات النشر المسروقة دون تدخل بشري |
💡 نصائح عملية
- فعّل المصادقة الثنائية (2FA) الإلزامية على كل حساب له صلاحية نشر حزم — أضعف حلقة غالبًا هي بيانات اعتماد المطور نفسه
⚠️ أخطاء شائعة
- الثقة بأن 'الحزمة معروفة ومستخدمة على نطاق واسع' كافية دون فحص دوري لسجل تحديثاتها الأخيرة
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار API-SECURITY الكامل بالعربي.