كيف تتحقق إذا كان تطبيقك متأثرًا بهجوم سلسلة توريد Axios (وكيف تصلحه)

في 31 مارس 2026، تعرضت حزمة axios على npm — المستخدمة في ملايين مشاريع JavaScript — لهجوم سلسلة توريد. النسخ الخبيثة 1.14.1 و 0.30.4 نشرت حصان طروادة للوصول عن بُعد (RAT) عبر تبعية مخفية اسمها plain-crypto-js@4.2.1.
هذا الدليل يأخذك خطوة بخطوة عبر الكشف والتحليل والإصلاح — مع أوامر طرفية يمكنك تنفيذها الآن.
الملخص: شغّل الفاحص الآلي: curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash
فحص سريع (30 ثانية)
# 1. فحص ملف القفل
grep -E "1\.14\.1|0\.30\.4" package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null
# 2. فحص التبعية الخبيثة
ls node_modules/plain-crypto-js 2>/dev/null && echo "⚠️ متأثر!" || echo "✅ نظيف"
# 3. فحص النظام (macOS)
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "⚠️ RAT موجود!" || echo "✅ نظيف"الخطوة 1: فحص ملفات القفل
package-lock.json (npm)
cat package-lock.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
found = False
for path, info in data.get('packages', {}).items():
if 'axios' in path and info.get('version') in ['1.14.1', '0.30.4']:
print(f'⚠️ حرج: {path} → {info[\"version\"]}')
found = True
if 'plain-crypto-js' in path:
print(f'⚠️ حرج: حزمة خبيثة في {path}')
found = True
if not found:
print('✅ لم يُعثر على نسخ مخترقة')
"yarn.lock
grep -A 2 'axios@' yarn.lock | grep -E 'version "1\.14\.1"|version "0\.30\.4"'
grep 'plain-crypto-js' yarn.lockpnpm-lock.yaml
grep -E 'axios.*1\.14\.1|axios.*0\.30\.4|plain-crypto-js' pnpm-lock.yamlالخطوة 2: فحص node_modules
# فحص نسخة axios المثبتة
node -e "try { console.log('نسخة axios:', require('axios/package.json').version) } catch(e) { console.log('axios غير مثبت') }"
# البحث عن plain-crypto-js
find node_modules -name "plain-crypto-js" -type d 2>/dev/null
# فحص تبعيات axios
cat node_modules/axios/package.json 2>/dev/null | grep -i "plain-crypto"الخطوة 3: فحص مؤشرات RAT على النظام
macOS
# الحمولة الرئيسية
[ -f "/Library/Caches/com.apple.act.mond" ] && echo "⚠️ RAT موجود!" || echo "✅ نظيف"
# استمرارية LaunchDaemon
[ -f "/Library/LaunchDaemons/com.apple.act.mond.plist" ] && echo "⚠️ استمرارية RAT!" || echo "✅ نظيف"
# اتصالات C2
lsof -i -P 2>/dev/null | grep -i "sfrclak\|:8000" && echo "⚠️ اتصال C2 نشط!" || echo "✅ لا اتصالات"Windows (PowerShell)
if (Test-Path "$env:PROGRAMDATA\wt.exe") {
Write-Host "⚠️ RAT موجود!" -ForegroundColor Red
} else {
Write-Host "✅ نظيف" -ForegroundColor Green
}Linux
ss -tnp 2>/dev/null | grep -E "sfrclak|:8000" && echo "⚠️ اتصال C2!" || echo "✅ نظيف"
crontab -l 2>/dev/null | grep -iE "sfrclak|plain-crypto" && echo "⚠️ cron مشبوه!" || echo "✅ نظيف"الخطوة 4: استخدم الفاحص الآلي
أنشأنا check-axios-attack — أداة شاملة:
# فحص فقط
curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash
# فحص وإصلاح تلقائي
curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash -s -- --fix
# فحص مشروع محدد
./check-axios-attack.sh --path /مشروعك --verbose
# مخرجات JSON لـ CI/CD
./check-axios-attack.sh --jsonالخطوة 5: الإصلاح الكامل
فوري
# 1. إزالة الحزم الخبيثة
rm -rf node_modules/plain-crypto-js
# 2. الرجوع للنسخة الآمنة
npm install axios@1.14.0 --save
# 3. إعادة تثبيت نظيفة
rm -rf node_modules && npm ciتغيير بيانات الاعتماد (خلال ساعة)
غيّر كل شيء: مفاتيح API، كلمات مرور قواعد البيانات، الرموز المميزة، مفاتيح SSH، شهادات SSL.
تنظيف النظام (إذا وُجد RAT)
# macOS
sudo rm -f /Library/Caches/com.apple.act.mond
sudo rm -f /Library/LaunchDaemons/com.apple.act.mond.plistالخطوة 6: تدقيق أمني
npm audit
npm audit fixالخطوة 7: الوقاية
تثبيت النسخ المحددة
{
"dependencies": {
"axios": "1.14.0"
}
}.npmrc
save-exact=true
audit=trueتفعيل المصادقة الثنائية
npm profile enable-2fa auth-and-writesفحص CI/CD
name: Supply Chain Check
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm audit --audit-level=critical
- run: curl -fsSL https://noqta.tn/tools/check-axios-attack.sh | bash --jsonالأسئلة الشائعة
كم مدة توفر النسخ الخبيثة؟
حوالي ساعتين (من ~00:00 إلى ~02:00 UTC في 31 مارس 2026).
ثبّتُ axios قبل أسابيع — هل أنا آمن؟
إذا كان ملف القفل يحدد نسخة غير 1.14.1 أو 0.30.4، نعم.
البرنامج الخبيث يدمّر نفسه — هل هذا يعني أنني آمن؟
لا. التدمير الذاتي يعني أن البرنامج نظّف آثار التثبيت، لكن RAT قد يكون لا يزال يعمل.
هل يمكنني استخدام fetch بدلًا من axios؟
نعم. واجهة fetch متاحة في Node.js 18+. هذا وقت جيد لتقييم حاجتك لـ axios.
تحتاج مساعدة في تأمين بنيتك التحتية؟ نقطة تقدم تدقيقات أمنية واستشارات DevSecOps. تواصل معنا.
تبني مشروعًا جديدًا؟ اقرأ دليلنا عن بنية API-first والفحص الأمني بالذكاء الاصطناعي.
ناقش مشروعك معنا
نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.
دعنا نجد أفضل الحلول لاحتياجاتك.
مقالات ذات صلة

Biome: استبدال ESLint و Prettier بأداة واحدة فائقة السرعة
تعلّم كيفية الانتقال من ESLint + Prettier إلى Biome، أداة الفحص والتنسيق المكتوبة بلغة Rust فائقة السرعة. الإعداد، القواعد المخصصة، تكامل CI/CD و VS Code — كل ذلك في أداة واحدة.

ابنِ أول إضافة كروم مدعومة بالذكاء الاصطناعي باستخدام Manifest V3 و OpenAI
تعلّم كيف تبني إضافة كروم تُلخّص صفحات الويب وتشرح النصوص باستخدام الذكاء الاصطناعي — خطوة بخطوة مع Manifest V3 و واجهة OpenAI البرمجية.

بناء خدمات مصغرة Node.js مع Docker و RabbitMQ و API Gateway
تعلم كيفية بناء بنية خدمات مصغرة جاهزة للإنتاج باستخدام Node.js و Docker Compose و RabbitMQ للرسائل غير المتزامنة و API Gateway. هذا الدليل العملي يغطي تقسيم الخدمات والتواصل بين الخدمات والحاويات والنشر.