DEV Community

Cover image for كيفية عمل هجوم سلسلة التوريد Axios NPM (وكيفية حماية مشاريع API الخاصة بك)
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

كيفية عمل هجوم سلسلة التوريد Axios NPM (وكيفية حماية مشاريع API الخاصة بك)

TL;DR

في 31 مارس 2026، تم اختراق حساب npm الخاص بالمطور الرئيسي لمكتبة Axios، أكثر عميل HTTP شيوعًا في JavaScript (83 مليون تحميل أسبوعيًا). تم نشر إصدارات ضارة (1.14.1 و 0.30.4) تحتوي على حصان طروادة متعدد المنصات يسرق بيانات الاعتماد ومفاتيح SSH ورموز السحابة من أجهزة المطورين. ارجع فورًا إلى Axios 1.14.0، وغيّر جميع الأسرار، وافحص نظامك بحثًا عن مؤشرات الاختراق.

جرب Apidog اليوم


مقدمة

تتعامل 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
Enter fullscreen mode Exit fullscreen mode

Windows:

# ينسخ PowerShell إلى %PROGRAMDATA%\wt.exe
# ينفذ عبر cscript ملف VBScript
Enter fullscreen mode Exit fullscreen mode

Linux:

# يحمل Python RAT إلى /tmp/ld.py
# ينفذ عبر nohup python3
Enter fullscreen mode Exit fullscreen mode

الاتصال بخادم قيادة وتحكم (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"
Enter fullscreen mode Exit fullscreen mode

الخطوة 2: تحقق من وجود التبعية الضارة

ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"
Enter fullscreen mode Exit fullscreen mode

الخطوة 3: تحقق من آثار RAT على النظام

macOS:

ls -la /Library/Caches/com.apple.act.mond 2>/dev/null
Enter fullscreen mode Exit fullscreen mode

Linux:

ls -la /tmp/ld.py 2>/dev/null
Enter fullscreen mode Exit fullscreen mode

Windows (PowerShell):

Test-Path "$env:PROGRAMDATA\wt.exe"
Enter fullscreen mode Exit fullscreen mode

الخطوة 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
Enter fullscreen mode Exit fullscreen mode

2. أضف تجاوزات الإصدار (overrides/resolutions)

npm:

{
  "overrides": {
    "axios": "1.14.0"
  }
}
Enter fullscreen mode Exit fullscreen mode

Yarn:

{
  "resolutions": {
    "axios": "1.14.0"
  }
}
Enter fullscreen mode Exit fullscreen mode

3. إزالة الحزمة الضارة

rm -rf node_modules/plain-crypto-js
Enter fullscreen mode Exit fullscreen mode

4. غيّر جميع بيانات الاعتماد

غيّر كل ما يلي فورًا:

  • رموز npm
  • بيانات اعتماد AWS/GCP/Azure
  • SSH Keys
  • رموز GitHub
  • مفاتيح API في ملفات .env
  • بيانات اعتماد قواعد البيانات
  • أي أسرار في متغيرات البيئة

5. حظر C2 على مستوى الشبكة

echo "0.0.0.0 sfrclak.com" | sudo tee -a /etc/hosts
Enter fullscreen mode Exit fullscreen mode

6. إذا وجدت آثار RAT، أعد بناء الجهاز

أي نظام تظهر عليه آثار RAT يجب اعتباره غير موثوق ويجب إعادة بنائه من صورة نظيفة.


الدفاعات طويلة المدى لفرق تطوير APIs

1. استخدم ملفات القفل وثبّت الإصدارات الدقيقة

  • لا تستخدم النطاقات (^). ثبّت الإصدارات:
{
  "dependencies": {
    "axios": "1.14.0"
  }
}
Enter fullscreen mode Exit fullscreen mode
  • دوّن package-lock.json أو yarn.lock في الـ git.
  • استخدم npm ci في CI/CD.

2. تعطيل نصوص postinstall في CI/CD

npm ci --ignore-scripts
Enter fullscreen mode Exit fullscreen mode
  • إذا عطّل ذلك حزمًا ضرورية، فعّل scripts انتقائيًا عبر .npmrc:
ignore-scripts=true
Enter fullscreen mode Exit fullscreen mode

3. تدقيق التبعيات بانتظام

npm audit
npx socket-security/cli audit
Enter fullscreen mode Exit fullscreen mode
  • اجعل أي ثغرة حرجة توقف البناء في CI/CD.

4. قلل سطح تبعية عميل HTTP

بدلاً من الاعتماد على مكتبات مثل Axios، استخدم منصات بعميل HTTP مدمج مثل Apidog:

  • اختبار API: استخدم منصة Apidog بدلاً من كتابة اختبارات مبنية على Axios.
  • تصحيح الأخطاء: اعتمد على مفتش الطلبات المدمج.
  • الخوادم الوهمية: استخدم خاصية Mock الذكية.
  • تكامل CI/CD: استخدم Apidog CLI لاختبار APIs دون تبعيات npm.

جرب Apidog مجانًا لترى كيف يقلل من مخاطر سلسلة التوريد.

5. التحقق من أصل الحزمة

تحقق من استخدام Sigstore:

npm audit signatures
Enter fullscreen mode Exit fullscreen mode
  • غياب 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
Enter fullscreen mode Exit fullscreen mode

وتأكد من أن ملف القفل لديك يشير لإصدار آمن.

كيف أعرف إذا كان 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)