اعتمدت منصة npm تاريخياً على رموز وصول طويلة الأمد وواسعة الصلاحيات، ما جعلها هدفاً مثالياً لهجمات سلسلة التوريد. في حال سرقة هذه الرموز، كان بإمكان المهاجمين نشر إصدارات خبيثة من الحزم دون الحاجة إلى مراجعة الشيفرة المصدرية. حوادث مثل Sha1-Hulud وchalk/debug أبرزت خطورة هذه الثغرات.
الحل الذي قدمته npm
في ديسمبر 2025، نفذت npm إصلاحاً شاملاً لنظام المصادقة:
- إلغاء الرموز الكلاسيكية والاعتماد على رموز جلسات قصيرة العمر (عادة ساعتين).
- فرض MFA بشكل افتراضي عند النشر.
- تشجيع استخدام OIDC Trusted Publishing، حيث تحصل أنظمة CI على بيانات اعتماد قصيرة العمر لكل تشغيل بدلاً من تخزينها.
هذه الخطوات حسّنت الأمان بشكل ملحوظ، إذ قللت من عمر الرموز وألزمت بعامل تحقق إضافي في العمليات الحساسة.
القضايا العالقة
رغم التقدم، هناك مشكلتان أساسيتان:
- هجمات التصيّد على MFA: كما حدث في هجوم ChalkJS، حيث تمكن المهاجمون من خداع المطور للحصول على كلمة المرور ورمز التحقق لمرة واحدة، ما سمح لهم باستخدام الرموز قصيرة العمر لنشر حزم خبيثة.
- الرموز طويلة الأمد مع تجاوز MFA: لا يزال بإمكان المطورين إنشاء رموز صالحة لـ90 يوماً مع تعطيل التحقق متعدد العوامل، ما يعيد المشكلة الأصلية بشكل جزئي.
توصيات لتعزيز الأمان
- الدفع نحو اعتماد OIDC بشكل شامل، إذ يصعب اختراقه ويقلل من مخاطر سلسلة التوريد.
- فرض MFA على جميع عمليات النشر المحلية، وعدم السماح بإنشاء رموز تتجاوز التحقق.
- إضافة بيانات وصفية إلى إصدارات الحزم لتوضيح مستوى الأمان المتبع من قبل المطورين.
بناء من المصدر كحل جذري
أظهرت بيانات عامة أن 98.5% من الحزم الخبيثة على npm لم تكن موجودة في الشيفرة المصدرية الأصلية، بل أُضيفت في النسخ المنشورة. هذا يعني أن بناء الحزم مباشرة من المصدر، كما تفعل Chainguard Libraries، يمكن أن يقلل سطح الهجوم بنسبة تقارب 98.5%. وفق نموذج “الجبن السويسري” للأمان، فإن الجمع بين هذه الإجراءات يوفر طبقات حماية إضافية ويقلل من المخاطر بشكل كبير.





























