تخطي إلى المحتوى
Guide

ضربت دودة Miasma حزم npm الخاصة بـ Red Hat: الكشف والتدوير والاستبدال

| 8 min read

أصابت دودة npm ذاتية الانتشار 7 حزم @redhat-cloud-services في 29 مايو 2026. وهي تخفي الثبات داخل Claude Code وVS Code. نص كشف مدته 60 ثانية، وتمريرة دوران، والإصلاح الهيكلي.

Code on a terminal representing an npm supply chain worm incident response
Photo by Growtika on Unsplash

في 1 يونيو 2026، اكتشف الباحثون دودة npm ذاتية الانتشار كانت حية منذ 29 مايو. بطاقة الاتصال الخاصة بها هي رسالة التزام: "Miasma: The Spreading Blight." قبعة حمراء للخطر دفع حساب GitHub الخاص بالموظف عمليات ارتكاب يتيمة ضارة مباشرة إلى RedHatInsights المستودعات، وتجاوز مراجعة التعليمات البرمجية، وسبعة @redhat-cloud-services الحزم شحن حمولة سرقة بيانات الاعتماد إلى كل من قام بتثبيتها.

شيئان يجعلان Miasma يستحق كتابًا جديدًا. يتم تشغيله في أ preinstall هوك، لذلك الحرائق من قبل postinstall وحتى التثبيت الملغى يمكن أن يعطله. ويزرع الثبات داخل أدوات المطور لديك: خطاف SessionStart في Claude Code وa tasks.json مع "runOn": "folderOpen" في مشاريع VS Code. حذف node_modules لا يفعل شيئا لهؤلاء. هنا هو الكشف عن قواعد اللعبة وتدويرها واستبدالها.

الحزم السبعة المعرضة للخطر

كل واحد تحت @redhat-cloud-services نِطَاق:

  • vulnerabilities-client
  • tsc-transform-imports
  • topological-inventory-client
  • sources-client
  • rule-components
  • remediations-client
  • rbac-client

الخطوة 1: الكشف في أقل من 60 ثانية

ثلاث إشارات: حزمة مخترقة في شجرتك، أو قطعة أثرية للثبات في Claude Code أو VS الرمز، وإخراج حركة المرور المتخفية في شكل مكالمات إلى api.anthropic[.]com:443/v1/api. تشغيل هذا من أي مضيف مع npm و git:

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

إن خدعة المثابرة هي الجزء الذي يزعج الفرق التي تقوم بالتنظيف بسرعة كبيرة. يمكنك إزالة حزمة سيئة، إعادة البناء node_modules، ولا يزال لديك ربط SessionStart ~/.claude/settings.json الذي يعيد تشغيل الحمولة في المرة التالية التي تفتح فيها كلود الكود. مراجعة ~/.claude/settings.json, .vscode/tasks.json، و .github/workflows يدويًا قبل استدعاء المضيف للتنظيف.

الخطوة 2: قم بتأكيد نافذة النشر باستخدام npm API

قبل تثبيت الإصدار "الآمن"، تحقق من تاريخ نشره. هبطت الإصدارات الخبيثة على 29 مايو، لذا فإن أي إصدار بتاريخ ذلك اليوم أو بعده سيكون موضع شك. تقوم نقطة نهاية botoi npm بإرجاع الطابع الزمني المعدل وقائمة الصيانة بدون npm install:

أ modified الطابع الزمني في أو بعد 2026-05-29 يعني دبوس إلى آخر معروف إصدار جيد تم نشره قبل ذلك التاريخ، وليس الأحدث. يتم تخزين شكل GET مؤقتًا في CDN، لذا يمكنك يمكن طي هذا في فحص الموافقة على التبعية الذي يتم تشغيله عند كل طلب سحب.

الخطوة 3: قم بتدوير السجلات ثم فركها

تحصد Miasma أسرار GitHub Actions ورموز npm وبيانات الاعتماد السحابية وKubernetes وVault المواد ومفاتيح SSH وبيانات اعتماد Git. قم بالتدوير بهذا الترتيب: توقف رموز npm عمليات النشر الجديدة، تقوم GitHub PATs بإيقاف عمليات الكتابة في المستودعات، وتقوم مفاتيح IAM السحابية بإيقاف تحويل البيانات، ثم Vault وSSH. لا تفعل ذلك التحقيق أولا؛ تدوير، ثم التحقيق.

تقوم الحمولة بتفريغ هذه الأسرار في السجلات التي تتدفق إلى Datadog وSentry والتذاكر الخاصة بك نظام. قم بتوصيل الحقول عالية الخطورة عبر كاشف سري ثم أغلقها قبل أن تصل إلى النقطة فهرس قابل للاستعلام:

الخطوة 4: قم بمنع الموجة التالية باستخدام حارس CI

يحتاج Miasma إلى ثلاثة أشياء في عداءك: نسخة مخترقة، وخطاف دورة الحياة الذي يعمل، و ملف استمرار يمكن كتابته. كسر أي واحد. يؤدي فحص إجراءات GitHub إلى تعطيل دورة الحياة البرامج النصية للمهمة، وفشل في علامات ثبات Miasma، ووضع علامات على حزم نطاق Red Hat، و يتطلب مصدرًا موقعًا في عمليات التسليم في وقت التشغيل:

يحفظ ignore-scripts تشغيله افتراضيًا والاحتفاظ بقائمة مسموحة قصيرة للحزم التي بناء شرعي (TypeScript، esbuild، Sharp). لا يمكن لخطاف التثبيت المسبق الذي لا يتم تشغيله مطلقًا أن يحصد أي شيء.

الخطوة 5: تقليص السطح الذي يمكن أن يستضيف الدودة

الحزم التي غالبًا ما يتم تسميمها عبر موجات 2026 تغلف مكالمة شبكة واحدة: عملاء API، مساعدي التحقق من الصحة، والمرافق الصغيرة. كل واحد مرشح للحذف والاستبدال بـ استدعاء HTTPS قابل للإلغاء ولا يقوم بتشغيل أي كود محلي.

فئة تبعية npm النموذجية استبدال HTTP نصف قطر الانفجار إذا تم اختراقه
المسح السري ومعلومات تحديد الهوية الشخصية (PII). Secretlint، كاشف Pii /v1/pii/detect قم بتدوير مفتاح API واحد
البيانات التعريفية للحزمة مغلفات عميل التسجيل npm /v1/npm/{package} قم بتدوير مفتاح API واحد
التحقق من صحة البريد الإلكتروني أداة التحقق من صحة البريد الإلكتروني العميق /v1/email/validate قم بتدوير مفتاح API واحد
فحص الخرق حزم العميل hibp /v1/breach/check قم بتدوير مفتاح API واحد

الوجبات السريعة الرئيسية

  • تحقق من ملفات ثبات أداة التطوير. مياسما يختبئ في ~/.claude/settings.json و .vscode/tasks.json. إزالة الحزمة لا يزيل الخطاف.
  • تثبيت حسب تاريخ النشر. أي شيء في الحزم السبعة مؤرخ في أو بعد ذلك 2026-05-29 مشكوك فيه. يستخدم /v1/npm/{package} للتأكيد.
  • قم بالتدوير قبل التحقيق. رموز npm، GitHub PATs، المفاتيح السحابية، Vault، SSH. يكتمل Exfil في ثوان.
  • تعطيل البرامج النصية لدورة الحياة بشكل افتراضي. لا يمكن لخطاف التثبيت المسبق الذي لا يعمل أبدًا سرقة أي شيء.
  • تقليص السطح. استبدل حزم npm ذات المكالمة الواحدة بـ HTTP القابل للإلغاء نقاط النهاية. يموت المفتاح المخترق في طلب واحد.

المعارض بوتوي /v1/npm/{package}, /v1/pii/detect, /v1/breach/checkوما يقرب من 200 نقطة نهاية أخرى ذات غرض واحد خلف مفتاح واجهة برمجة التطبيقات (API) واحد مع 5 متطلبات/دقيقة مجانية. قم بتوصيلهم إلى دليل الحوادث الخاص بك، أو قم بتوصيل خادم MCP إلى كلود قم بالرمز حتى يقوم مساعدك بتشغيل البرنامج النصي للاكتشاف نيابةً عنك. ابدأ من مستندات تفاعلية.

FAQ

ما هو هجوم سلسلة التوريد Miasma؟
Miasma عبارة عن دودة npm ذاتية الانتشار تم اكتشافها في 1 يونيو 2026، مع التزامها الأول "Miasma: The Spreading Blight" بتاريخ 29 مايو 2026. دفع حساب GitHub الخاص بموظف Red Hat المخترق عمليات الالتزام اليتيمة الضارة إلى مستودعات RedHatInsights، وتجاوز مراجعة التعليمات البرمجية، وتم نشر سبع حزم npm @redhat-cloud-services باستخدام خطاف تثبيت مسبق غامض يحصد بيانات الاعتماد وينتشر إلى مضيفين جدد.
ما هي الحزم التي تم اختراقها؟
سبع حزم ضمن نطاق @redhat-cloud-services: عميل الثغرات الأمنية، واستيراد تحويل tsc، وعميل المخزون الطوبولوجي، وعميل المصادر، ومكونات القاعدة، وعميل الإصلاحات، وعميل rbac. إذا قام ملف القفل الخاص بك بسحب أي من هذه العناصر بعد 29 مايو 2026، فتعامل مع المضيف على أنه مخترق وقم بتدوير كل بيانات الاعتماد التي لمسها.
How is Miasma different from earlier npm worms?
يعمل Miasma في خطاف التثبيت المسبق، لذلك يتم تشغيله قبل التثبيت اللاحق وحتى التثبيت الملغى يمكن أن يؤدي إلى تشغيله، ويزرع الثبات داخل أدوات المطورين، وليس فقط CI. يقوم بإدخال خطاف SessionStart في Claude Code، ويكتب ملف Task.json مع مجلد runOn المفتوح في مشاريع VS Code، ويولد حمولة مشفرة بشكل فريد لكل إصابة لتفادي فحص التوقيع. لا يؤدي حذف وحدات العقدة إلى إزالتها.
ماذا تسرق الدودة وأين ترسلها؟
أسرار إجراءات GitHub، ورموز npm، وبيانات الاعتماد السحابية، ومواد Kubernetes وVault، ومفاتيح SSH، وبيانات اعتماد Git. إنه يخفي التسلل كحركة مرور إلى api.anthropic[.]com على المنفذ 443 ويعود إلى GitHub كقناة ثانوية، لذا فإن تصفية الخروج على النطاقات غير المعروفة وحدها لن تتمكن من التقاطها.
كيف تقلل واجهات برمجة تطبيقات HTTP ذات الغرض الواحد من هذه المخاطر؟
تقوم الحزمة التي تحتوي على خطاف التثبيت المسبق بتشغيل تعليمات برمجية عشوائية على كل جهاز يقوم بتثبيتها. لا يعمل استدعاء HTTPS لواجهة برمجة التطبيقات (API) ذات الغرض الواحد على تشغيل أي شيء محليًا ويتم ربطه بمفتاح قابل للإلغاء. إذا تم اختراق موفر واجهة برمجة التطبيقات، فيمكنك تدوير مفتاح واحد. إذا تم اختراق حزمة في شجرتك، فهذا يعني أن البرامج الضارة قد تم تنفيذها بالفعل. التجارة عبارة عن تكلفة زمن وصول صغيرة لنصف قطر انفجار صغير وإلغاء فوري.

ابدأ البناء مع botoi

أكثر من 150 نقطة نهاية API للبحث ومعالجة النصوص وتوليد الصور وأدوات المطورين. باقة مجانية، بدون بطاقة ائتمان.