TL;DR
في 31 مارس 2026، تم اختراق حساب npm الخاص بالمطور الرئيسي لمكتبة Axios، أكثر عميل HTTP شيوعًا في JavaScript (83 مليون تحميل أسبوعيًا). تم نشر إصدارات ضارة (1.14.1 و 0.30.4) تحتوي على حصان طروادة متعدد المنصات يسرق بيانات الاعتماد ومفاتيح SSH ورموز السحابة من أجهزة المطورين. ارجع فورًا إلى Axios 1.14.0، وغيّر جميع الأسرار، وافحص نظامك بحثًا عن مؤشرات الاختراق.
مقدمة
تتعامل Axios مع طلبات HTTP أكثر من أي مكتبة JavaScript أخرى حاليًا. إذا كنت تبني عميل API أو تختبر نقاط النهاية أو تربط الواجهة الأمامية بالخلفية، غالبًا استخدمتها.
في 31 مارس 2026 الساعة 00:21 بالتوقيت العالمي، نشر مهاجم إصدارًا ضارًا من Axios (1.14.1) عبر حساب مطور مخترق. التغيير الوحيد كان في ملف package.json، مع إضافة تبعية وهمية اسمها plain-crypto-js، وظيفتها نشر حصان طروادة عند تنفيذ npm install.
الإصدارات الضارة بقيت نشطة حوالي ساعتين إلى ثلاث ساعات قبل حذفها من npm.
💡 إذا كنت تبني أو تختبر APIs، فهذا الهجوم استهدف أدواتك مباشرة. يوفر عميل HTTP المدمج في Apidog بديلاً بدون تبعيات HTTP خارجية، ويقلل من سطح الهجوم. استخدم Apidog لمتابعة خطوات التدقيق الأمني أدناه.
توضح هذه المقالة كيفية عمل الهجوم، كيفية اكتشاف الاختراق، وما الذي يجب تغييره في إدارة التبعيات لتأمين فرق API.
كيف تكشف هجوم سلسلة توريد Axios
الجدول الزمني للهجوم
-
30 مارس، 05:57 UTC: نشر حزمة نظيفة
plain-crypto-js@4.2.0على npm. -
30 مارس، 23:59 UTC: نشر إصدار ضار
plain-crypto-js@4.2.1مع سكريبت postinstall. -
31 مارس، 00:21 UTC: إصدار
axios@1.14.1من حساب مخترق. -
31 مارس، 01:00 UTC: إصدار
axios@0.30.4(فرع 0.x). - 31 مارس، 03:15 UTC: حذف الإصدارات الضارة.
-
31 مارس، 04:26 UTC: نشر حفظ أمني لـ
plain-crypto-jsلمنع إعادة النشر.
طريقة اختراق الحساب
- سيطر المهاجم على حساب npm للمطور الأساسي (
jasonsaayman). - عدّل البريد الإلكتروني للحساب.
- الإصدارات الشرعية تستخدم GitHub Actions مع OIDC Trusted Publisher، أما الضارة فلا.
- الإصدارات الضارة تفتقد حقل
gitHead. - تم النشر يدويًا باستخدام رموز وصول npm طويلة الأمد.
إذا كنت تنشر مكتبات npm، غياب ربط OIDC وأصل CI/CD في أي إصدار يجب أن يطلق إنذارات ويخضع للأتمتة والفحص.
تقنية حقن التبعية
- لم يُعدل كود Axios نفسه.
- أضيف فقط
plain-crypto-js@^4.2.1إلىpackage.json. - وجود الحزمة فقط لتشغيل سكريبت
postinstallأثناء التثبيت.
ماذا تفعل الحمولة الخبيثة؟
آلية الإسقاط (dropper)
- ينفذ سكريبت postinstall ملف
setup.jsمشفر. - طبقتان من التشويش: XOR (بمفتاح “OrDeR_7077”) ثم Base64 مع عكس الأحرف.
- يحدد نظام التشغيل وينفذ حمولة خاصة بكل منصة.
تفاصيل التنفيذ لكل نظام
macOS:
# يكتب AppleScript إلى /tmp/6202033
# ينفذ via osascript
# يحمل الحمولة إلى /Library/Caches/com.apple.act.mond
Windows:
# ينسخ PowerShell إلى %PROGRAMDATA%\wt.exe
# ينفذ عبر cscript ملف VBScript
Linux:
# يحمل Python RAT إلى /tmp/ld.py
# ينفذ عبر nohup python3
الاتصال بخادم قيادة وتحكم (C2) عبر endpoints خاصة:
- macOS:
packages.npm.org/product0 - Windows:
packages.npm.org/product1 - Linux:
packages.npm.org/product2
قدرات RAT
- تنفيذ أوامر shell عشوائية
- تعداد وتهريب الملفات
- إدراج وحقن العمليات
- حقن ثنائي بالذاكرة (تنفيذ بدون ملفات)
- اتصال دوري كل 60 ثانية
مكافحة الأدلة الجنائية (Self-cleanup)
- حذف
setup.jsوpackage.jsonالضار - إعادة تسمية
package.mdإلىpackage.json(لتضليل npm list) - آثار الهجوم قد تختفي بعد التنفيذ
من يقف وراء الهجوم؟
نسبت مجموعة Google Threat Intelligence الهجوم إلى UNC1069 (كوريا الشمالية)، مع تطابقات مع باب خلفي WAVESHAPER. الهجوم متقدم وذو موارد جيدة، ويوضح استهداف أدوات المطورين للوصول إلى بيانات الاعتماد والبنية السحابية.
كيفية التحقق إذا كنت متأثرًا
الخطوة 1: تحقق من إصدار Axios
npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"
الخطوة 2: تحقق من وجود التبعية الضارة
ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"
الخطوة 3: تحقق من آثار RAT على النظام
macOS:
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null
Linux:
ls -la /tmp/ld.py 2>/dev/null
Windows (PowerShell):
Test-Path "$env:PROGRAMDATA\wt.exe"
الخطوة 4: تحقق من مؤشرات الشبكة
- نطاق C2:
sfrclak.com - عنوان IP:
142.11.206.73 - عنوان URL:
http://sfrclak.com:8000/6202033
الخطوة 5: تحقق من سجلات CI/CD
راجع أي تشغيل لـ npm install أو npm ci بين 31 مارس 00:21 و03:15 UTC. إذا كان Axios تم حله خلال هذه الفترة، هناك احتمال اختراق.
خطوات العلاج الفوري
1. ارجع إلى إصدار آمن من Axios فورًا
npm install axios@1.14.0
# أو للفرع 0.x
npm install axios@0.30.3
2. أضف تجاوزات الإصدار (overrides/resolutions)
npm:
{
"overrides": {
"axios": "1.14.0"
}
}
Yarn:
{
"resolutions": {
"axios": "1.14.0"
}
}
3. إزالة الحزمة الضارة
rm -rf node_modules/plain-crypto-js
4. غيّر جميع بيانات الاعتماد
غيّر كل ما يلي فورًا:
- رموز npm
- بيانات اعتماد AWS/GCP/Azure
- SSH Keys
- رموز GitHub
- مفاتيح API في ملفات
.env - بيانات اعتماد قواعد البيانات
- أي أسرار في متغيرات البيئة
5. حظر C2 على مستوى الشبكة
echo "0.0.0.0 sfrclak.com" | sudo tee -a /etc/hosts
6. إذا وجدت آثار RAT، أعد بناء الجهاز
أي نظام تظهر عليه آثار RAT يجب اعتباره غير موثوق ويجب إعادة بنائه من صورة نظيفة.
الدفاعات طويلة المدى لفرق تطوير APIs
1. استخدم ملفات القفل وثبّت الإصدارات الدقيقة
- لا تستخدم النطاقات (
^). ثبّت الإصدارات:
{
"dependencies": {
"axios": "1.14.0"
}
}
- دوّن
package-lock.jsonأوyarn.lockفي الـ git. - استخدم
npm ciفي CI/CD.
2. تعطيل نصوص postinstall في CI/CD
npm ci --ignore-scripts
- إذا عطّل ذلك حزمًا ضرورية، فعّل scripts انتقائيًا عبر
.npmrc:
ignore-scripts=true
3. تدقيق التبعيات بانتظام
npm audit
npx socket-security/cli audit
- اجعل أي ثغرة حرجة توقف البناء في CI/CD.
4. قلل سطح تبعية عميل HTTP
بدلاً من الاعتماد على مكتبات مثل Axios، استخدم منصات بعميل HTTP مدمج مثل Apidog:
- اختبار API: استخدم منصة Apidog بدلاً من كتابة اختبارات مبنية على Axios.
- تصحيح الأخطاء: اعتمد على مفتش الطلبات المدمج.
- الخوادم الوهمية: استخدم خاصية Mock الذكية.
- تكامل CI/CD: استخدم Apidog CLI لاختبار APIs دون تبعيات npm.
جرب Apidog مجانًا لترى كيف يقلل من مخاطر سلسلة التوريد.
5. التحقق من أصل الحزمة
تحقق من استخدام Sigstore:
npm audit signatures
- غياب OIDC في الإصدار إشارة خطر.
ماذا يعني هذا لنظام JavaScript البيئي؟
نموذج الثقة مكسور
- الثقة مبنية على أمان حسابات المطور.
- بيانات اعتماد مخترقة = سيطرة كاملة على مكتبة ضخمة.
- نقاشات المجتمع تدور حول:
- فرض النشر عبر OIDC
- موافقة شخصين على إصدارات الحزم الحساسة
- تقييد صلاحيات postinstall (مثل Deno)
هجمات سلسلة التوريد مستمرة
- الهجوم جاء بعد حوادث مشابهة في RubyGems وPyPI.
- شجرة التبعيات يجب اعتبارها سطح هجوم.
- كن دائمًا على وعي بأن npm نقطة ضعف محتملة.
مقارنة: أساليب تبعية عميل HTTP
| النهج | مخاطر سلسلة التوريد | عبء الصيانة | قدرة الاختبار |
|---|---|---|---|
| Axios + نصوص مخصصة | مرتفع (تبعية طرف ثالث) | مرتفع (إدارة الإصدارات) | إعداد يدوي مطلوب |
| استرجاع Node.js الأصلي | منخفض (مدمج في وقت التشغيل) | منخفض | ميزات اختبار محدودة |
| عميل Apidog المدمج | لا شيء (لا تبعية npm) | لا شيء (تدار بواسطة المنصة) | اختبار كامل، محاكاة، توثيق |
| نصوص curl/httpie | منخفض (أداة على مستوى النظام) | متوسط | أتمتة محدودة |
الأسئلة الشائعة
هل Axios آمن الآن؟
نعم. الإصدارات 1.14.0 و0.30.3 نظيفة. تحقق من نسختك بـ:
npm list axios
وتأكد من أن ملف القفل لديك يشير لإصدار آمن.
كيف أعرف إذا كان RAT عمل على جهازي؟
تحقق من آثار المنصة:
- macOS:
/Library/Caches/com.apple.act.mond - Linux:
/tmp/ld.py - Windows:
%PROGRAMDATA%\wt.exe - وجود
node_modules/plain-crypto-jsمؤشر خطر. تذكر أن الحمولة تنظف آثارها، لذا غياب الملفات لا يضمن السلامة.
هل يجب التوقف عن استخدام Axios؟
ليس بالضرورة. Axios ما زالت مكتبة جيدة الصيانة. لكن الهجوم يوضح أهمية تقييم الحاجة لمكتبات HTTP خارجية، خاصة مع وجود fetch في Node.js 18+، أو منصات مثل Apidog.
كيف أمنع هجمات سلسلة التوريد في مشاريعي؟
- ثبّت الإصدارات بدقة
- دوّن ملفات القفل
- شغل
npm ci --ignore-scriptsفي CI/CD - دقق التبعيات دوريًا
- تحقق من أصل الحزمة
- قلل شجرة التبعيات
- استخدم منصات متكاملة مثل Apidog لعمليات HTTP دون npm
هل هناك علاقة بين الهجوم وتسريب كود Claude Code؟
حدثا في نفس اليوم، لكن لا يوجد ارتباط. هجوم Axios كان اختراق سلسلة توريد متعمد، أما تسريب Claude Code فسببه خطأ في أداة بناء Bun.
من يقف وراء هجوم Axios؟
UNC1069 (كوريا الشمالية)، مع أدوات متقدمة ومتخصصة في استهداف بيانات اعتماد المطورين والبنية السحابية.
كم عدد المطورين المتأثرين؟
الإصدارات الضارة نشطت ساعتين إلى ثلاث ساعات. مع 83 مليون تحميل أسبوعيًا، فالتأثير واسع. لم تصدر npm أرقامًا رسمية.
هل Apidog يساعد في منع هجمات سلسلة التوريد؟
نعم، Apidog يوفر عميل HTTP مدمج للاختبار بدون تبعيات npm لعملاء HTTP، ما يقلل سطح الهجوم لسلاسل التوريد في سير عمل APIs.
النقاط الرئيسية
- هجوم Axios اخترق أكثر من 83 مليون تحميل أسبوعي عبر حساب مطور واحد.
- الحمولة استهدفت كل المنصات وسرقت بيانات الاعتماد ومفاتيح SSH.
- افحص أنظمتك فورًا عبر الخطوات أعلاه.
- ثبّت الإصدارات بدقة وعطل postinstall في CI/CD.
- قلل سطح تبعية عميل HTTP باستخدام أدوات مدمجة مثل Apidog.
- أمان سجلات الحزم مشكلة منهجية تشمل npm وPyPI وRubyGems.
هجوم Axios رسالة واضحة: كل تبعية في node_modules قرار ثقة. اختر تبعياتك عن قصد، لا تلقائيًا.
Top comments (0)