
قامت مؤسسة الأبحاث الأمنية Socket في 31 مارس برصد هجوم نشط على سلسلة التوريد يستهدف حزمة npm الأساسية axios. قام المهاجم باختراق حساب npm الخاص بالمُشرف الرئيسي على axios jasonsaayman، ونشر إصدارات خبيثة وحقن حزم تبعيات خبيثة، بهدف نشر حصان طروادة للوصول عن بُعد عبر منصات متعددة (RAT). استهدف الهجوم أنظمة macOS وWindows وLinux.
(المصدر: Socket)
تمثل هذه الحادثة هجومًا سلسليًا متعدد الخطوات على سلسلة التوريد مُحكم التخطيط. قام المهاجم أولًا باختراق حساب المُشرف، ثم غيّر البريد الإلكتروني إلى ifstap@proton.me، وبعد ذلك استخدم بيانات اعتماد npm المسروقة يدويًا لنشر إصدار خبيث، متجاوزًا بالكامل عملية النشر الرسمية لـ axios عبر GitHub Actions + OIDC Trusted Publisher. لم تحتوي الإصداراتان الخبيثتان على أي عمليات التزام أو وسوم أو سجلات نشر مقابلة داخل مستودع GitHub.
كانت تحضيرات المهاجم دقيقة أيضًا: فقد سيطر على حساب آخر (nrwise، nrwise@proton.me) قبل نحو 18 ساعة لنشر إصدار طُعم نظيف لبدء سجل تاريخي باسم plain-crypto-js@4.2.0، ثم نشر في 30 مارس عند 23:59 UTC إصدار 4.2.1 الخبيث.
بعد تنفيذ خطاف postinstall الخبيث، قام مُحمّل RAT (setup.js) بالاتصال بخدمة الأوامر والتحكم sfrclak[.]com:8000 لنشر حمولة خاصة بالمنصة. وبعد اكتمال التنفيذ، قام بإتلاف نفسه واستبدال package.json بملف أساس نظيف، مما يجعل الفحص اللاحق لمجلد node_modules غير قادر على العثور على آثار الإصابة.
إصدارات الحزمة الخبيثة:axios@1.14.1، axios@0.30.4، plain-crypto-js@4.2.1
خادم C2:sfrclak[.]com / 142.11.206.73 / [.]com:8000
آثار الإصابة على macOS:/Library/Caches/com.apple.act.mond
آثار الإصابة على Windows:%PROGRAMDATA%\wt.exe، %TEMP%\6202033.vbs
آثار الإصابة على Linux:/tmp/ld.py
حساب المهاجم:jasonsaayman(تم اختراقه)، nrwise(حساب أنشأه المهاجم)
نظرًا لأن المُحمّل الخبيث يقوم بإتلاف نفسه بعد التنفيذ، لا يمكن التحقق من الإصابة عبر فحص مجلد node_modules. الطريقة الصحيحة هي فحص lockfile مباشرةً (package-lock.json أو yarn.lock) للتأكد مما إذا كان يتضمن سجلات لإصدارات axios@1.14.1 أو axios@0.30.4.
الرجوع إلى نسخة آمنة: قم بتنزيل المستخدمين من الإصدار 1.x إلى axios@1.14.0؛ وقم بتنزيل مستخدمي 0.x إلى axios@0.30.3، ثم قم بإزالة مجلد plain-crypto-js من node_modules وإعادة تثبيت التبعيات.
إذا تم العثور في النظام على أي آثار إصابة لـ RAT (com.apple.act.mond، wt.exe، ld.py)، فلا تحاول محاولة تنظيفها موضعيًا، بل يجب إعادة بناء النظام من حالة سليمة معروفة، مع التبديل الفوري لجميع بيانات الاعتماد التي قد تكون مُعرّضة، بما في ذلك رموز npm، ومفاتيح وصول AWS، ومفاتيح SSH الخاصة، ومفاتيح إعدادات CI/CD، وقيم ملفات .env.
بالنسبة لمطوري العملات المشفرة وWeb3، تُعد axios مكتبة HTTP أساسية للعديد من واجهات بروتوكولات DeFi وأدوات إدارة الأصول المشفرة وخدمات الاستعلام عن بيانات السلسلة. قد تؤدي بيئات التطوير المصابة إلى تسريب مفاتيح المحافظ الخاصة أو عبارات الاسترجاع أو مفاتيح API إلى المهاجم، لذا يُنصح بمراجعة جميع بيانات الاعتماد الحساسة وتبديلها بشكل أولوي.
نظرًا لأن المُحمّل الخبيث يقوم بإتلاف نفسه بعد التنفيذ، لا يمكن التحقق من الإصابة عبر مجلد node_modules. يجب فحص lockfile مباشرةً لمعرفة ما إذا كان يتضمن سجلات لـ axios@1.14.1 أو axios@0.30.4، والتحقق مما إذا كان مجلد plain-crypto-js موجودًا داخل node_modules. يمكن تنفيذ الأمر npm list axios أو البحث مباشرةً عن سلسلة الإصدارات داخل lockfile.
تُعد axios مكتبة HTTP شائعة لتطبيقات الواجهات الأمامية لـ Web3 وبوابات بروتوكولات DeFi. قد تؤدي بيئات التطوير المصابة إلى تعريض بيانات اعتماد حساسة مثل المفاتيح الخاصة وعبارات الاسترجاع ومفاتيح API الخاصة بالبورصات أو إعدادات CI/CD للتسريب إلى المهاجم. يجب على المطورين المعنيين مراجعة جميع بيانات الاعتماد المتعلقة بالتشفير والتبديل بينها على نحو أولوِي.
تشمل الإجراءات الوقائية الرئيسية ما يلي: استخدام npm ci --ignore-scripts دائمًا في CI/CD لتعطيل خطاف postinstall؛ تثبيت الإصدارات لحزم التبعيات الحرجة؛ مراجعة دورية لسجل تغييرات lockfile؛ ونشر أدوات مثل Socket وAikido لمراقبة البرمجيات الخبيثة الخاصة بالتبعيات فورًا.