في العام الماضي، كان هناك نمط من هجمات سلسلة التوريد التي تستهدف نقاط الضعف في مستودعات الحزم وأنظمة CI/CD لنشر البرامج الضارة بسرعة إلى مئات المشاريع مفتوحة المصدر. تسعى هذه البرامج الضارة إلى سرقة بيانات الاعتماد لنشر الهجوم على نطاق واسع، وكذلك لاستغلالها لاحقًا.

لقد كتبنا عدة مرات حول خططنا لتقوية سلسلة التوريد: خطتنا لسلسلة توريد npm أكثر أمانًا في سبتمبر 2025، وتعزيز أمان سلسلة التوريد: التحضير لحملة البرامج الضارة التالية في ديسمبر 2025، وما سيأتي إلى خارطة الطريق الأمنية لـ GitHub Actions 2026 في مارس 2026. في هذا المنشور، نقوم بإطلاعك على التغييرات التي قمنا بتنفيذها والتي تعطل بشكل مباشر بعض تقنيات الهجوم على سلسلة التوريد الأكثر شيوعًا وتأثيرًا.

تشريح هجمات سلسلة التوريد

تجمع هجمات سلسلة التوريد بين العديد من نقاط الضعف، ولا توجد قدرة أمنية واحدة يمكنها إيقافها. وتتطلب معالجتها نهجًا شاملاً، مع إعطاء الأولوية لعمليات التخفيف التي تكسر الروابط الأكثر تأثيرًا في سلسلة الهجوم. قامت فرقنا بدراسة هذه الهجمات لنشر العديد من التحسينات التي تعطلها وتحد من تأثيرها. وهذا ممكن بفضل التعاون مع مجتمعات الأبحاث والمطورين الأمنيين.

تختلف الهجمات في كيفية انتشارها عبر النظام البيئي للبرمجيات. ومع ذلك، تتبع معظم هذه الهجمات تقنيات مماثلة للوصول الأولي إلى المشروع، وتصعيد الامتيازات، والتوزيع عبر المستخدمين والبرامج. ركزت التحسينات التي تم إجراؤها على npm وGitHub Actions في الأشهر القليلة الماضية على قطع تقنيات محددة ومشتركة وتوفير طرق للعملاء لتحديد هذه الهجمات والرد عليها.

التسوية الأولية

تبدأ الهجمات باختراق مشروع واحد، غالبًا عن طريق اختراق حساب المشرف بشكل مباشر أو عن طريق استهداف سير عمل إجراءات المشروع.

  • يضيف npm حماية وقائية للحسابات عالية التأثير (يونيو 2026): في كثير من الأحيان، تبدأ الهجمات بحملة تصيد احتيالي تستهدف المشرفين. مع هذا التغيير، يتم الآن وضع حسابات npm عالية التأثير في وضع القراءة فقط لمدة 72 ساعة عندما يغيرون بريدهم الإلكتروني أو يستخدمون رمز استرداد 2FA. يتيح هذا التأخير للمشرفين وقتًا للرد واستعادة الحساب قبل أن يتم استخدام حساباتهم لبدء الهجوم.
  • إعدادات pull_request_target الافتراضية الأكثر أمانًا لتسجيل الخروج من إجراءات GitHub (يونيو 2026): إحدى الثغرة الأمنية الشائعة في خطوط أنابيب CI/CD الخاصة بالمشروع هي “طلبات pwn”، حيث يتم تشغيل سير العمل على طلبات السحب من الشوكات ثم تنفيذ التعليمات البرمجية المقدمة من المستخدم وغير الموثوق بها من هذا الشوكة. قمنا بتغيير السلوك الافتراضي لـ actions/checkout لمنع سحب التعليمات البرمجية غير الموثوق بها من التشعبات في المشغلات التي يتم استغلالها بشكل شائع ما لم تقم بإلغاء الاشتراك بشكل صريح (بعد مراجعة المخاطر الخاصة بك). يؤدي هذا التغيير ونسخه الخلفي إلى الإصدارات الأقدم إلى قطع أحد أنماط التعليمات البرمجية الضعيفة الأكثر شيوعًا والتي تؤدي إلى تنفيذ التعليمات البرمجية في سير عمل GitHub Actions CI/CD والتسوية الأولية للمشروع.
  • تحكم في من وماذا يؤدي إلى سير عمل إجراءات GitHub (يونيو 2026): ربما تفضل إلغاء الاشتراك في مشغلات الإجراءات المحفوفة بالمخاطر هذه تمامًا أو تحديد الأشخاص الذين يمكنهم تشغيلها. يتيح لك عنصر التحكم الجديد هذا تعيين سياسات على مستوى المؤسسة أو المؤسسة أو المستودع بشأن الأشخاص المسموح لهم بتشغيل مهام سير العمل وأنواع المشغلات المسموح بها. توفر سياسات تنفيذ سير العمل هذه طبقة قابلة للتحكم والتخصيص من الامتيازات الأقل حول سير عمل الإجراءات التي تقلل من سطح الهجوم للبنية الأساسية لـ CI/CD الخاصة بك.
  • ذاكرة التخزين المؤقت للإجراءات للقراءة فقط للمشغلات غير الموثوق بها (يونيو 2026): بعد أن يحقق المهاجم تنفيذ التعليمات البرمجية في سير عمل الإجراءات، فإنه يتطلع بعد ذلك إلى التصعيد إلى مسارات عمل أكثر امتيازًا (وبالتالي بيانات الاعتماد) من خلال تسميم إدخالات ذاكرة التخزين المؤقت المشتركة عبر مسارات العمل. من خلال هذا التغيير، نقوم بتقييد قدرة مهام سير العمل الأقل ثقة على تعديل ذاكرة التخزين المؤقت المشتركة مع مهام سير العمل الأخرى. يؤدي هذا إلى إغلاق المسار الشائع الذي استخدمه المهاجمون مباشرةً لتحويل الثغرة الأمنية ذات التأثير المحدود إلى ثغرة تهدد بيانات الاعتماد ذات الامتيازات العالية المستخدمة من خلال سير عمل الإصدار والنشر.

استخراج بيانات الاعتماد

بمجرد أن يتمكن المهاجم من الوصول إلى حزمة واحدة، فإنه يركز بعد ذلك على اكتشاف بيانات الاعتماد وتصفيتها للحصول على مزيد من الوصول واستخدامها في الاستغلال اللاحق عبر الأنظمة البيئية.

  • النشر الموثوق بـ npm يدعم الآن CircleCI (أبريل 2026): الشيء الأول الذي يمكنك القيام به لتعطيل هذه الهجمات هو إزالة بيانات الاعتماد طويلة الأمد من مسار CI/CD الخاص بك. يعد النشر الموثوق طريقة رائعة للسماح بالنشر في مستودع الحزم الخاص بك دون الحاجة إلى بيانات اعتماد طويلة الأمد. ومن خلال إضافة CircleCI كموفر نشر موثوق به، فقد مكننا المزيد من الأشخاص من إزالة بيانات الاعتماد التي تحاول هذه الهجمات تسللها.
  • إجراءات جدار الحماية للشبكة (في المعاينة الفنية): تقوم هذه المعاينة الفنية بتسجيل كل حركة مرور الشبكة الصادرة من سير عمل الإجراء الخاص بك حتى تتمكن من اكتشاف السلوك غير المعتاد مثل سحب التعليمات البرمجية الضارة أو تصفية بيانات الاعتماد إلى مجال جديد. سيعمل العمل المستقبلي على تمكين قيود وسياسات الخروج من الشبكة لمنع هذه الهجمات قبل أن تؤدي إلى مزيد من التصعيد والتسلل.

نشر الهجوم

من خلال الحصول على بيانات الاعتماد من الخطوة السابقة، يحاول المهاجمون استخدام بيانات الاعتماد هذه لتوزيع البرامج الضارة الخاصة بهم واختراق المزيد من المشاريع والمشرفين في أسرع وقت ممكن.

  • النشر المرحلي لـ npm (مايو 2026): مع النشر المرحلي، لا يكفي أن يكون لديك بيانات اعتماد لنشر حزمة جديدة على npm؛ يتم تنظيم هذه الحزم حتى يتم توفير موافقة إضافية ومصادقة 2FA في npm cli أو على npmjs.com. يتيح التحكم الأمني ​​الاختياري هذا للمشرفين التأكد من أن أي إصدار من حزمتهم المنشورة قد خضع لهذا التفويض الإضافي. من خلال فصل بيانات الاعتماد المستخدمة في مسارات CI/CD والأتمتة عن تلك التي يمكنها النشر إلى السجل، يتم قطع سلسلة الهجوم من مسار CI/CD إلى توزيع البرامج الضارة.
  • التغييرات العاجلة القادمة لـ npm v12 (يونيو 2026): لنشر برامجهم الضارة في أسرع وقت ممكن، يستخدم المهاجمون البرامج النصية لوقت التثبيت npm لتصفية بيانات الاعتماد بدلاً من انتظار تنفيذ التعليمات البرمجية بواسطة الحزمة في وقت التشغيل. مع npm v12، نطرح تغييرًا عاجلًا يعمل على تعطيل نصوص التثبيت هذه افتراضيًا. نظرًا لأن البرامج النصية للتثبيت لها استخدام مشروع ضمن عمليات تثبيت الحزمة التي تعتمد عليها العديد من الحزم الشائعة، فيمكنك إعادة تمكينها من خلال الموافقة على برامج نصية محددة. تم أيضًا حظر المتجهات الإضافية لتنفيذ التعليمات البرمجية في وقت التثبيت عن طريق تعطيل التبعيات عبر git أو عناوين URL البعيدة افتراضيًا.
  • تقدم تحديثات إصدار Dependabot فترة تباطؤ الحزمة الافتراضية (يوليو 2026): يعتمد المهاجمون على السرعة، على أمل أن يتم سحب إصدار ضار إلى أكبر عدد ممكن من المشاريع النهائية قبل أن يلاحظ أي شخص. تنتظر تحديثات الإصدار من خلال Dependabot الآن حتى يتوفر الإصدار لمدة ثلاثة أيام على الأقل قبل فتح طلب السحب، مما يمنح إشارات الكشف وقتًا للظهور قبل أن يصل الإصدار الضار إلى مشروعك. يتم تشغيل فترة التهدئة هذه بشكل افتراضي، وتظل التحديثات الأمنية مفتوحة على الفور، لذلك لا تتأخر الإصلاحات المهمة أبدًا.

تحديد والرد على هجمات سلسلة التوريد

بالتوازي مع تشديد إجراءات npm وGitHub لتعطيل هجمات سلسلة التوريد والحد من تأثيرها، نعمل أيضًا على إتاحة الميزات والأدوات للمستخدمين لتحديد حوادث سلسلة التوريد التي أثرت على مشاريعهم وحساباتهم والاستجابة لها.

ما هي الخطوة التالية؟

يعد جعل منتجاتنا أكثر أمانًا بشكل افتراضي أولوية عبر npm وGitHub، ونحن نعطي الأولوية لهذا العمل لاستهداف وتعطيل هجمات سلسلة التوريد عبر النظام البيئي مفتوح المصدر. نحن فخورون بالعمل الذي قمنا به لتحقيق هذا الهدف خلال الأشهر الماضية. هناك المزيد في المستقبل، ولكننا أردنا تقديم تحديث حول التقدم الذي أحرزناه وتوعية الأشخاص بالإمكانيات الجديدة المتاحة لهم. تأكد من متابعة سجل التغيير ومنشورات المدونة بينما نواصل طرح التحسينات.

تعد البرمجيات مفتوحة المصدر منفعة عامة مذهلة نستفيد منها جميعًا، وهذه إحدى الطرق العديدة التي تعمل بها GitHub لمواصلة دعم الأمن والاستدامة والنجاح المستمر لمجتمعات المصادر المفتوحة والمؤسسات التي تعتمد عليها.

كتب بواسطة

مهندس أمن المنتج الرئيسي

زاكاري ستيندلر

مهندس البرمجيات الرئيسي، جيثب

شاركها.
اترك تعليقاً