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

Ashley Innocent

Ashley Innocent

1 أبريل 2026

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

enterprise.banner.title

enterprise.banner.feature1

enterprise.banner.feature2

enterprise.banner.feature3

enterprise.banner.ctaB

TL;DR

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

مقدمة

تعالج Axios طلبات HTTP أكثر من أي مكتبة JavaScript أخرى. إذا قمت بإنشاء عميل واجهة برمجة تطبيقات (API)، أو اختبار نقاط النهاية، أو ربط واجهة أمامية بواجهة خلفية في السنوات الخمس الماضية، فمن المحتمل أنك استخدمتها.

في 31 مارس 2026، الساعة 00:21 بالتوقيت العالمي المنسق، نشر فاعل تهديد إصدار Axios 1.14.1 من خلال حساب مطور مخترق. بدت الحزمة مطابقة للإصدار الشرعي. كان الفرق دقيقًا للغاية: تغير ملف package.json فقط عبر 86 ملفًا. لكن هذا الملف الوحيد حقن تبعية وهمية تسمى plain-crypto-js قامت بنشر حصان طروادة للوصول عن بعد إلى كل جهاز يقوم بتشغيل npm install.

ظلت الإصدارات الضارة نشطة لمدة تتراوح بين ساعتين إلى ثلاث ساعات تقريبًا قبل أن يسحبها npm. ساعتان إلى ثلاث ساعات عبر 83 مليون عملية تنزيل أسبوعية.

💡
إذا كنت تقوم بإنشاء واجهات برمجة التطبيقات أو اختبارها، فقد استهدف هذا الهجوم مجموعة أدواتك مباشرة. يلغي عميل HTTP المدمج في Apidog الحاجة إلى مكتبات HTTP خارجية في سير عمل اختبار واجهات برمجة التطبيقات لديك، مما يزيل سطح الهجوم هذا بالكامل. قم بتنزيل Apidog مجانًا لمتابعة خطوات التدقيق الأمني أدناه.
button

توضح هذه المقالة كيفية عمل الهجوم، وكيفية اكتشاف ما إذا كانت أنظمتك مخترقة، وما الذي يجب على فرق واجهة برمجة التطبيقات (API) تغييره في إدارة تبعياتها في المستقبل.

كيف تكشف هجوم سلسلة توريد Axios

الجدول الزمني

نفذ المهاجم هذه العملية بدقة خلال نافذة زمنية مدتها 18 ساعة:

كيف تم اختراق الحساب

سيطر المهاجم على حساب npm الخاص بـ jasonsaayman، المطور الأساسي لـ Axios. قاموا بتغيير البريد الإلكتروني المسجل إلى ifstap@proton.me. الدليل الجنائي الرئيسي:

هذا التمييز مهم. إذا كانت مؤسستك تنشر حزم npm، فإن غياب ربط OIDC وأصل CI/CD في أي إصدار يعد إشارة حمراء تستحق أتمتة الفحوصات لها.

تقنية حقن التبعية

إليكم ما جعل هذا الهجوم دقيقًا. لم يقم المهاجم بتعديل الكود المصدري لـ Axios. قاموا بتغيير سطر واحد في package.json لإضافة plain-crypto-js@^4.2.1 كاعتماد وقت التشغيل. لم يتم استيراد هذه الحزمة أبدًا في أي مكان في قاعدة كود Axios. لقد وجدت فقط لتشغيل خطاف postinstall الخاص بها أثناء npm install.

أكد التحليل الثنائي الدقة الجراحية: اختلف ملف package.json فقط بين الإصدار النظيف 1.14.0 والإصدار المخترق 1.14.1 عبر جميع الملفات الـ 86 في الحزمة.

ماذا تفعل الحمولة الخبيثة

آلية الإسقاط (dropper)

قام خطاف postinstall في plain-crypto-js بتنفيذ ملف مشوش بحجم 4.2 كيلوبايت يسمى setup.js. استخدم طبقتين من التشويش:

  1. الطبقة الأولى: تشفير XOR باستخدام مفتاح مشتق من السلسلة النصية "OrDeR_7077"
  2. الطبقة الثانية: تشفير Base64 مع عكس الأحرف

بمجرد فك التشفير، حددت أداة الإسقاط نظام التشغيل المضيف ونفذت حمولات خاصة بالمنصة.

مسارات الهجوم الخاصة بالمنصة

macOS:

Writes AppleScript to /tmp/6202033
Executes via osascript
Downloads payload to /Library/Caches/com.apple.act.mond

Windows:

Copies PowerShell to %PROGRAMDATA%\wt.exe (persistence artifact)
Executes VBScript dropper via cscript

Linux:

Downloads Python RAT to /tmp/ld.py
Executes via nohup python3

اتصلت الفروع الثلاثة بخادم للقيادة والتحكم (C2) مع نصوص POST خاصة بالمنصة:

قدرات حصان طروادة (RAT)

يدعم حصان طروادة للوصول عن بعد المنشور ما يلي:

بعبارة بسيطة: يحصل المهاجم على تحكم عن بعد كامل بجهاز التطوير الخاص بك. يمكنهم قراءة ملفات .env الخاصة بك، وسرقة مفاتيح API الخاصة بك، ونسخ مفاتيح SSH الخاصة بك، وجمع رموز مزود الخدمة السحابية.

مكافحة الأدلة الجنائية: الحمولة ذاتية التنظيف

بعد التنفيذ، قامت أداة الإسقاط بثلاث خطوات تنظيف:

  1. حذفت ملف setup.js نفسه
  2. حذفت ملف package.json الضار
  3. أعادت تسمية ملف package.md المعد مسبقًا (الذي يشير إلى الإصدار 4.2.0) إلى package.json

خلق هذا طبقة خداع حيث سيبلغ npm list عن الإصدار 4.2.0 بدلاً من 4.2.1 الذي نفذ الحمولة. المطور الذي يفحص تبعياته بعد الواقع لن يرى أي خطأ.

من يقف وراء هذا الهجوم

نسبت مجموعة جوجل للاستخبارات التهديدية هجوم Axios إلى UNC1069، وهو فاعل تهديد مشتبه به من كوريا الشمالية. يُظهر برمجية macOS الخبيثة "تداخلًا كبيرًا" مع WAVESHAPER، وهو باب خلفي (backdoor) بلغة C++ تتبعته Mandiant في فبراير 2026.

تمتلك المجموعات الكورية الشمالية المدعومة من الدولة خبرة عميقة في هجمات سلسلة التوريد. لقد استخدموا تاريخيًا أدوات المطورين المخترقة لسرقة العملات المشفرة، وتتبع هذه العملية نفس النهج: اختراق أداة مطور شائعة الاستخدام للحصول على حق الوصول إلى بيانات الاعتماد والبنية التحتية السحابية عبر آلاف المنظمات.

مستوى التعقيد ملحوظ. يشير حقن التبعية على مرحلتين، ونشر RAT متعدد المنصات، والتنظيف المضاد للأدلة الجنائية، كلها إلى عملية ذات موارد جيدة. هذا ليس طفلًا هاكرًا يسقط عامل تعدين للعملات المشفرة. إنها عملية استخباراتية تستهدف محطات عمل المطورين.

كيفية التحقق مما إذا كنت متأثرًا

الخطوة 1: تحقق من إصدار Axios الخاص بك

قم بتشغيل هذا في كل مشروع يستخدم 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: تحقق من مؤشرات الشبكة

قم بحظر وفحص الاتصالات إلى:

الخطوة 5: تحقق من سجلات بناء CI/CD

راجع أي عمليات تشغيل لخط أنابيب CI/CD بين 31 مارس 00:21 بالتوقيت العالمي المنسق و 03:15 بالتوقيت العالمي المنسق. أي تشغيل لـ npm install أو npm ci خلال هذه الفترة الزمنية الذي قام بحل Axios كان يمكن أن ينفذ أداة الإسقاط في بيئة البناء الخاصة بك.

خطوات العلاج الفوري

إذا وجدت أي مؤشرات اختراق، فتعامل مع النظام المتأثر على أنه مخترق بالكامل. إليك قائمة الأولويات:

1. الرجوع إلى إصدار سابق من Axios فورًا

npm install axios@1.14.0

أو لفرع 0.x:

npm install axios@0.30.3

2. أضف تجاوزات الإصدار إلى ملف package.json الخاص بك

منع الحل المتعدي للإصدارات الضارة:

{
  "overrides": {
    "axios": "1.14.0"
  }
}

لـ Yarn:

{
  "resolutions": {
    "axios": "1.14.0"
  }
}

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

rm -rf node_modules/plain-crypto-js

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

إذا تم تنفيذ أداة الإسقاط على جهازك، فافترض أن ما يلي قد تم اختراقه:

قم بتغيير كل شيء. لا توجد طريقة لمعرفة ما تم تهريبه بواسطة حصان طروادة (RAT) خلال نافذته النشطة.

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

أضف إلى ملف المضيفين أو قواعد جدار الحماية الخاص بك:

echo "0.0.0.0 sfrclak.com" | sudo tee -a /etc/hosts

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

يمكن لحصان طروادة (RAT) الذي يتمتع بتنفيذ shell والوصول إلى نظام الملفات تعديل أي شيء. إذا وجدت آثارًا من الخطوة 3، فلا تثق بالنظام. أعد البناء من حالة معروفة بأنها جيدة.

دفاعات طويلة المدى لفرق تطوير واجهات برمجة التطبيقات

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

استغل هجوم Axios نطاقات ^ semver. إذا كان ملف package.json الخاص بك يقول "axios": "^1.14.0"، فإن npm يحل الإصدار المتوافق الأحدث، والذي كان 1.14.1 خلال فترة الهجوم.

{
  "dependencies": {
    "axios": "1.14.0"
  }
}

ثبت الإصدارات الدقيقة. قم دائمًا بتسجيل package-lock.json أو yarn.lock الخاص بك. قم بتشغيل npm ci بدلاً من npm install في CI/CD لفرض حل ملف القفل.

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

اعتمد الهجوم بأكمله على تنفيذ خطافات postinstall أثناء npm install. يمكنك تعطيل هذا:

npm ci --ignore-scripts

قد يعطل هذا بعض الحزم التي تحتاج إلى تجميع أصلي. اختبر بناءك أولاً، ثم اسمح بشكل انتقائي بالنصوص البرمجية للحزم التي تحتاجها باستخدام .npmrc:

ignore-scripts=true

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

npm audit
npx socket-security/cli audit

قم بتشغيل هذه الأوامر في CI/CD كبوابة. يجب أن تؤدي أي ثغرة أمنية حرجة أو عالية الخطورة إلى إيقاف عملية البناء.

قلل سطح تبعية عميل HTTP الخاص بك

هذا هو السؤال الأعمق الذي يطرحه هذا الهجوم: لماذا يعتمد سير عمل اختبار واجهة برمجة التطبيقات (API) على مكتبة HTTP خارجية يمكن اختراقها؟

يوفر Apidog عميل HTTP مدمج لاختبار واجهات برمجة التطبيقات، وتصحيح الأخطاء، والتوثيق. لا تحتاج إلى Axios، أو node-fetch، أو got في مكدس الاختبار الخاص بك. عميل HTTP هو جزء من المنصة، بدون تبعيات خارجية يمكن اختراقها.

لاختبار واجهات برمجة التطبيقات على وجه التحديد، فإن نقل طلبات HTTP الخاصة بك إلى Apidog يلغي سطح الهجوم بالكامل:

جرب Apidog مجانًا لترى كيف يقلل إزالة تبعيات مكتبة HTTP من سير عمل واجهة برمجة التطبيقات لديك من مخاطر سلسلة التوريد الخاصة بك.

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

يدعم npm الآن أصل الحزم عبر Sigstore. تحقق مما إذا كانت الحزم التي تعتمد عليها تستخدم هذا:

npm audit signatures

افتقرت إصدارات Axios الضارة إلى أصل OIDC. تتضمن الإصدارات الشرعية من خطوط أنابيب CI/CD شهادة تشفيرية لأصل بنائها. إذا ظهر إصدار جديد بدون أصل، فتعامل معه بشك.

ماذا يعني هذا لنظام JavaScript البيئي

نموذج الثقة مكسور

يعتمد نموذج الثقة في npm على أمان حساب المطور. تمنح بيانات اعتماد مخترقة واحدة المهاجم السيطرة على حزمة يتم تثبيتها بواسطة 83 مليون مشروع كل أسبوع. تساعد المصادقة ثنائية العوامل، ولكن رموز الوصول طويلة الأجل لا يزال من الممكن سرقتها من بيئات التطوير المخترقة.

يناقش المجتمع عدة تغييرات هيكلية:

هجمات سلسلة التوريد لا تتباطأ

وقع هذا الهجوم في غضون أيام من حادثة RubyGems fracture والمخاوف المستمرة بشأن تبعيات PyPI. تتعرض سجلات الحزم عبر كل نظام بيئي للغات لهجوم مستمر. يحتاج مطورو واجهات برمجة التطبيقات إلى التفكير في شجرة تبعياتهم كسطح هجوم، وليس كراحة. لقد عبر نقاش Reddit عن الشعور جيدًا: "NPM هو أكبر نقطة ضعف في الإنترنت اليوم وسيظل يسبب كارثة عملاقة." سواء كنت تتفق مع المبالغة أم لا، فإن هجوم Axios يوضح أن نطاق الانفجار حقيقي.

مقارنة: أساليب تبعية عميل HTTP

النهج مخاطر سلسلة التوريد عبء الصيانة قدرة الاختبار
Axios + نصوص مخصصة مرتفع (تبعية طرف ثالث) مرتفع (إدارة الإصدارات) إعداد يدوي مطلوب
استرجاع Node.js الأصلي منخفض (مدمج في وقت التشغيل) منخفض ميزات اختبار محدودة
عميل Apidog المدمج لا شيء (لا تبعية npm) لا شيء (تدار بواسطة المنصة) اختبار كامل، محاكاة، توثيق
نصوص curl/httpie منخفض (أداة على مستوى النظام) متوسط أتمتة محدودة

الأسئلة الشائعة

هل Axios آمن للاستخدام الآن؟

نعم. الإصداران 1.14.0 و 0.30.3 نظيفان. تم إلغاء نشر الإصدارات المخترقة (1.14.1 و 0.30.4) في غضون ثلاث ساعات تقريبًا. تحقق من الإصدار المثبت لديك باستخدام npm list axios وافحص ملف القفل الخاص بك للتأكد من أنك تستخدم إصدارًا آمنًا.

كيف أعرف إذا كان حصان طروادة (RAT) قد عمل على جهازي؟

تحقق من وجود آثار خاصة بالمنصة: /Library/Caches/com.apple.act.mond على macOS، /tmp/ld.py على Linux، أو %PROGRAMDATA%\wt.exe على Windows. تحقق أيضًا مما إذا كان node_modules/plain-crypto-js موجودًا في أي من مشاريعك. تقوم أداة الإسقاط بالتنظيف بعد نفسها، لذا فإن عدم وجود آثار لا يضمن سلامتك إذا قمت بتثبيت الإصدار المخترق.

هل يجب أن أتوقف عن استخدام Axios تمامًا؟

ليس بالضرورة. لا تزال Axios مكتبة جيدة الصيانة ولها سجل حافل. لكن هذا الهجوم يجب أن يدفعك إلى تقييم ما إذا كنت بحاجة إلى عميل HTTP خارجي على الإطلاق. يتضمن Node.js 18+ ميزة fetch الأصلية. لاختبار واجهات برمجة التطبيقات، توفر منصات مثل Apidog عملاء HTTP مدمجين يزيلون هذه التبعية.

كيف يمكنني منع هجمات سلسلة التوريد في مشاريعي؟

ثبت إصدارات التبعيات الدقيقة، وقم بتسجيل ملفات القفل، وشغل npm ci --ignore-scripts في CI/CD، ودقق التبعيات بانتظام، وتحقق من أصل الحزمة باستخدام npm audit signatures، وقلل شجرة تبعياتك. فكر في نقل سير عمل اختبار واجهات برمجة التطبيقات إلى منصات متكاملة لا تعتمد على حزم npm لاتصالات HTTP.

هل كان هذا الهجوم مرتبطًا بتسريب كود Claude Code المصدري؟

وقع الحدثان في نفس اليوم (31 مارس 2026)، لكنهما غير مرتبطان. كان هجوم Axios اختراقًا متعمدًا لسلسلة التوريد من قبل فاعل تهديد ترعاه دولة. نتج تسريب كود Claude Code عن خطأ في أداة بناء Bun أدى إلى شحن خرائط المصدر في بيئة الإنتاج. وقد أدى التوقيت المتزامن إلى تغذية النقاش حول أمان سجل npm بشكل عام.

من يقف وراء هجوم Axios؟

نسبت مجموعة جوجل للاستخبارات التهديدية الهجوم إلى UNC1069، وهو فاعل تهديد مشتبه به من كوريا الشمالية. تشترك البرمجية الخبيثة لنظام macOS في تداخل كبير مع WAVESHAPER، وهو باب خلفي تتبعته Mandiant. تتمتع المجموعات الكورية الشمالية بخبرة واسعة في هجمات سلسلة التوريد، وتستهدف عادةً بيانات اعتماد المطورين وبنية العملات المشفرة التحتية.

كم عدد المطورين الذين تأثروا؟

ظلت الإصدارات الضارة نشطة لمدة تتراوح بين ساعتين إلى ثلاث ساعات تقريبًا. مع 83 مليون عملية تنزيل أسبوعية، فإن التعرض المحتمل كبير. لم ينشر npm أرقام تأثير رسمية. أكد الكشف في وقت التشغيل من StepSecurity أن أداة الإسقاط اتصلت بـ C2 في غضون 1.1 ثانية من بدء npm install، قبل اكتمال حل التبعية.

هل يمكن لـ Apidog المساعدة في منع هجمات سلسلة التوريد؟

يلغي Apidog أحد نواقل الهجوم الرئيسية من خلال توفير عميل HTTP مدمج لاختبار واجهات برمجة التطبيقات، وتصحيح الأخطاء، والتوثيق. لا تحتاج إلى تثبيت Axios، أو node-fetch، أو مكتبات HTTP الأخرى في سير عمل الاختبار الخاص بك. هذا يقلل من سطح تبعية npm ويزيل خطر تأثير حزم عميل HTTP المخترقة على عملية تطوير واجهات برمجة التطبيقات الخاصة بك.

النقاط الرئيسية

هجوم Axios هو دعوة للاستيقاظ. كل تبعية في node_modules الخاص بك هي قرار ثقة. تأكد من أنك تتخذ هذه القرارات عن قصد، وليس بشكل افتراضي.

button

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات

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