كيف تتحقق إذا كان تطبيقك متأثرًا بهجوم سلسلة توريد 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.lock

pnpm-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 والفحص الأمني بالذكاء الاصطناعي.


هل تريد قراءة المزيد من الدروس التعليمية؟ تحقق من أحدث درس تعليمي لدينا على بناء وكلاء ذكاء اصطناعي متقدمين باستخدام LangGraph.js و TypeScript.

ناقش مشروعك معنا

نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.

دعنا نجد أفضل الحلول لاحتياجاتك.

مقالات ذات صلة

بناء خدمات مصغرة Node.js مع Docker و RabbitMQ و API Gateway

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

35 د قراءة·