شهد قطاع تطوير البرمجيات هجوماً سيبرانياً واسع النطاق، حيث استغل المهاجمون مكتبة Axios الشهيرة، وهي واحدة من أكثر الأدوات استخداماً في عالم تطوير JavaScript. تمكن المهاجمون من اختراق حساب مطور رئيسي ونشر نسخ خبيثة من المكتبة، مما أدى إلى تثبيت برمجيات ضارة على أجهزة المطورين عبر أنظمة التشغيل المختلفة.
تُعد مكتبة Axios أداة أساسية للمطورين، ويتم تنزيلها أسبوعياً أكثر من 100 مليون مرة، مما يجعل هذا الهجوم الذي استهدف سلسلة توريد البرمجيات أحد أخطر الحوادث التي شهدها هذا القطاع في السنوات الأخيرة. وقد امتد تأثير الهجوم ليشمل عدة قطاعات حيوية.
بدأت وقائع الهجوم عندما تمكن طرف غير مصرح له من السيطرة على حساب صيانة مشروع Axios على منصة npm. تم تغيير البريد الإلكتروني المرتبط بالحساب سراً إلى عنوان يتحكم فيه المهاجم، مما منح المخترق صلاحيات إدارية كاملة.
بعد ذلك، ومن خلال استخدام رمز وصول مسروق على منصة npm، قام المهاجم بنشر نسختين ملوثتين من المكتبة، وهما [email protected] و [email protected]، في غضون 39 دقيقة فقط. تركزت هذه النسخ الخبيثة على فرعي الإصدار الحالي والمتراث للمكتبة.
لم تتطابق أي من هاتين النسختين مع أي سجل للتعديلات أو الوسوم أو الإصدارات المنشورة في المستودع الرسمي لمشروع Axios على GitHub، مما يشير إلى تلاعب متعمد.
الآثار والتحقيقات حول هجوم Axios
أجرى باحثون من شركة Trend Micro، وهما بيتر جيرنوس وجاكوب سانتوس، فحصاً دقيقاً للهجوم، وكشفوا عن سلسلة العدوى الكاملة ومدى الضرر الذي لحق بالأنظمة المتضررة. وقد أكدت تحليلاتهم وصول التهديد بالفعل إلى منظمات في قطاعات حكومية، مالية، صحية، صناعية، تجزئة، وتقنية.
تضمنت النسختان الملوثتان إضافة واحدة جديدة إلى ملف الحزمة: [email protected]. هذه الحزمة، التي تُعرف بالتبعية الوهمية، لم يتم استدعاؤها أو الإشارة إليها في أي مكان في شفرة مصدر Axios.
كان الغرض الوحيد من وجود هذه الحزمة هو تفعيل خطاف postinstall التلقائي لمنصة npm عند تثبيت المكتبة. بمجرد تفعيل هذا الخطاف، تم إسقاط حصان طروادة للوصول عن بعد (RAT) متعدد المنصات على جهاز الضحية.
بعد تنفيذ البرمجية الخبيثة، قامت بحذف السكربت الخاص بها واستبداله بنسخة مزيفة نظيفة، مما جعل مجلد node_modules يبدو طبيعياً بالكامل.
أسلوب العملية الخبيثة
تم تنظيم العملية بدقة على مدار حوالي 18 ساعة. قام المهاجم أولاً بنشر نسخة احتياطية نظيفة من plain-crypto-js لبناء سجل سجل التوزيع وتجنب إثارة الإنذارات، ثم قام بتسجيل خادم القيادة والتحكم (C&C) بعد ساعات قبل دفع الحمولة الخبيثة.
كما تجاوز الهجوم إجراءات تأمين GitHub Actions’ OIDC Trusted Publisher، والتي تربط عادةً إصدارات npm بتدفقات العمل المعتمدة، عن طريق النشر يدوياً باستخدام رمز مسروق. هذا الأسلوب لم يترك أي ربط تشفيري أو مرجع gitHead في البيانات الوصفية.
داخل برمجية RAT Dropper
استخدم السكربت الملقب بـ setup.js نظام تمويه ثنائي الطبقات لإخفاء منطقه من الماسحات الآلية. طبقت الطبقة الداخلية تشفير XOR مخصص بمفتاح “OrDeR_7077” ونمط فهرس تربيعي لتشويه تسلسلات الوصول إلى الأحرف.
قامت الطبقة الخارجية بعكس السلاسل المشفرة، واستعادة حشو base64، ثم مرتير النتيجة عبر تشفير الطبقة الداخلية. تم فك تشفير جميع أسماء الوحدات – التي تغطي الوصول إلى نظام الملفات، وتنفيذ الأوامر، واكتشاف المنصة – في وقت التشغيل عبر استدعاءات require() الديناميكية، مما جعلها غير مرئية لأدوات التحليل الثابت.
بمجرد تشغيل السكربت، اكتشف نظام التشغيل وقام بتشغيل حمولة مطابقة. على نظام macOS، تم جلب ملف تنفيذي عبر AppleScript وتم حفظه تحت مسار يحاكي خدمة نظام Apple. على نظام Windows، تم استخدام مشغل VBScript لتشغيل RAT PowerShell بالكامل في الذاكرة، مع استخدام ملف PowerShell معاد تسميته ومُتنكر في هيئة Windows Terminal، دون كتابة حمولة إلى القرص.
على نظام Linux، تم تنزيل Python RAT وتشغيله كعملية خلفية منفصلة، تم تجاهلها لـ PID 1، مما سمح لها بالبقاء قيد التشغيل بعد جلسة npm install.
تم تسجيل خادم القيادة والتحكم (sfrclak[.]com) قبل ثماني ساعات فقط من تفعيل الحمولة، وهو خيار بنية تحتية قابل للتصرف مصمم للحد من تعرض المهاجم.
الإجراءات الوقائية والتوصيات
يُنصح المطورون الذين قاموا بتثبيت الإصدارات المتأثرة من Axios بتثبيتها فوراً على [email protected] أو [email protected]، وإزالة مجلد plain-crypto-js من node_modules.
يجب إعادة بناء أي نظام يتم فيه العثور على آثار لبرمجيات RAT من حالة معروفة بأنها آمنة بدلاً من محاولة تنظيفها في مكانها. ويجب تغيير جميع بيانات الاعتماد التي كان يمكن الوصول إليها خلال فترة التعرض – مثل رموز npm، مفاتيح السحابة، أسرار CI/CD، ومفاتيح SSH – فوراً.
يُمكن استخدام الأمر `npm ci –ignore-scripts` في مسارات CI/CD لسد خطافات postinstall، مما يزيل مسار التنفيذ الأساسي الذي استند إليه هذا الهجوم. كما يُنصح بشدة بمنع الوصول إلى sfrclak[.]com على مستوى الشبكة.

