دودة npm ذاتية النسخ تُعرف باسم SANDWORM_MODE تصل إلى أكثر من 19 حزمة، وتقوم بجمع المفاتيح الخاصة، وذاكرات BIP39، وملفات المحافظ، ومفاتيح API الخاصة بـ LLM من بيئات التطوير.
يُجري هجوم على سلسلة إمداد npm حي الآن ويجتاح بيئات المطورين. فريق أبحاث التهديدات في Socket اكتشف ما يتتبعه باسم SANDWORM_MODE، وهو دودة ذاتية النسخ تنتشر عبر ما لا يقل عن 19 حزمة npm خبيثة مرتبطة باثنين من الأسماء المستعارة للناشرين. كما أشار فريق SocketSecurity على X، هذا هجوم نشط على سلسلة الإمداد يسرق أسرار التطوير وبيئات التكامل المستمر، ويحقن سير عمل GitHub، ويُسمم أدوات الذكاء الاصطناعي، ويجمع مفاتيح API الخاصة بـ LLM.
تستعير الحملة مباشرة من عائلة ديدان Shai-Hulud. المفاتيح الخاصة تأتي أولاً. لا يوجد بوابة زمنية، ولا تأخير. تُنقل القطع الأثرية المشفرة المكتشفة عند الاستيراد على الفور عبر نقطة تصريف مخصصة قبل أن يتم تفعيل أي مرحلة أخرى من الحمولة.
يجب أن تعرف: تهديدات أمان المحافظ تتصاعد مقالة مهمة: اختراق أمان Trust Wallet: كيف تحمي أصولك
تصمم الدودة على مرحلتين. تُطلق المرحلة الأولى فور الاستيراد، وتجمع رموز npm، ورموز GitHub، وأسرار البيئة، والمفاتيح المشفرة من خلال قراءة الملفات فقط. لا تنفيذ للأوامر عبر الشيل، ولا ضوضاء. تُجمع ذاكرات BIP39، والمفاتيح الخاصة بـ Ethereum، ومصفوفات بايت من Solana، ومفاتيح WIF الخاصة بـ Bitcoin، وسلاسل xprv في المرور الأول.
تُغادر المفاتيح المشفرة الجهاز على الفور عبر طلب HTTPS إلى عامل Cloudflare عند العنوان pkg-metrics[.]official334[.]workers[.]dev/drain. يحدث ذلك قبل أي فحص لبوابة زمنية. وقبل تحميل المرحلة 2 حتى.
تقع المرحلة 2 خلف تأخير مدته 48 ساعة، مستمد من تجزئة MD5 لاسم المضيف واسم المستخدم. تتعمق أكثر: مديري كلمات المرور عبر Bitwarden، و 1Password، و LastPass CLI، وتخزينات SQLite المحلية بما في ذلك ملاحظات Apple و رسائل macOS، وفحص كامل لنظام الملفات للملفات المحفظة. في بيئات CI، تختفي تلك البوابة تمامًا. يُطلق الحمولة الكاملة على GITHUB_ACTIONS، GITLAB_CI، CIRCLECI، JENKINS_URL و BUILDKITE دون انتظار على الإطلاق.
وفقًا لـ SocketSecurity على X، تقوم الدودة أيضًا بحقن سير عمل GitHub وتسمم أدوات الذكاء الاصطناعي، وتؤكد التفاصيل في الإفصاح الفني الكامل من Socket.
أيضًا جدير بالقراءة: $21 مليون من البيتكوين المصادرة تُعاد بعد أن جمدت السلطات المعاملات
تتظاهر ثلاث حزم بأنها Claude Code. تستهدف واحدة منها OpenClaw، وهو وكيل ذكاء اصطناعي حقق أكثر من 210,000 نجمة على GitHub. ينشر وحدة McpInject الدودة خادم MCP خبيث في ملفات تكوين Claude Code، وClaude Desktop، وCursor، وVS Code Continue، وWindsurf على القرص. كل منها يحتوي على إدخال أداة زائف يشير إلى خادم خبيث مخفي.
يحمل هذا الخادم حقن مطالبات مدمجة تخبر مساعدي الذكاء الاصطناعي بقراءة مفاتيح SSH، وبيانات اعتماد AWS، ورموز npm، وأسرار البيئة بصمت قبل كل استدعاء للأداة. النموذج لا يُبلغ المستخدم أبدًا. ويُحظر الحقن ذلك صراحةً.
يتم استهداف تسع مزودات LLM لجمع مفاتيح API: OpenAI، وAnthropic، وGoogle، وGroq، وTogether، وFireworks، وReplicate، وMistral، وCohere. تُجمع المفاتيح من متغيرات البيئة وملفات .env، وتُتحقق من تنسيقاتها المعروفة قبل تصديرها.
تُجرى عملية التصدير عبر ثلاث قنوات متتالية: أولاً HTTPS إلى عامل Cloudflare، ثم رفع عبر API الخاص بـ GitHub إلى مستودعات خاصة باستخدام ترميز مزدوج base64، ثم نفق DNS عبر استعلامات مشفرة بـ base32 إلى freefan[.]net و fanfree[.]net. يُوفر خوارزمية توليد النطاقات، التي تعتمد على “sw2025”، بديلًا احتياطيًا عبر عشرة نطاقات TLD إذا فشلت الطرق الأخرى.
جدير بالملاحظة: تُشير Glassnode إلى استنفاد الطلب على البيتكوين
الاسمين المستعارين للناشرين وراء الحملة هما official334 و javaorg. تشمل الحزم الخبيثة الـ19 المؤكدة: suport-color@1.0.1، claud-code@0.2.1، cloude@0.3.0، crypto-locale@1.0.0، secp256@1.0.0 و scan-store@1.0.0 من بين آخرين. تظهر أربع حزم أخرى من نوع السبات (ethres، iru-caches، iruchache، و uudi) أنها لم تحتوي بعد على حمولة خبيثة.
حذفت npm الحزم الخبيثة. أوقفت GitHub بنية المهاجم. سحبت Cloudflare العاملين. لكن على المدافعين التصرف الآن، بغض النظر.
إذا كانت أي من هذه الحزم قد تم تشغيلها في بيئتك، فاعتبر أن الجهاز مخترق. قم بتدوير رموز npm و GitHub، وقم بتدوير جميع أسرار CI، وراجع ملفات .github/workflows للتحقق من الإضافات التي ت serialize ${{ seJSON(secrets) }}. تحقق من إعداد قالب hook الخاص بـ git عبر تشغيل git config –global init.templateDir. راجع إعدادات تكوين مساعد الذكاء الاصطناعي للبحث عن إدخالات غير متوقعة لـ mcpServers. يوجد محرك متعدد الأشكال خامد يستخدم deepseek-coder:6.7b مدمج في الدودة ويمكن أن يتم تفعيله في إصدار مستقبلي لإعادة كتابة نفسه وتجنب الكشف.
كما يوجد مفتاح إيقاف يدوي في الكود. معطل الآن. عند تفعيله، يُشغل الأمر find ~ -type f -writable ويمزق كل ملف قابل للكتابة في الدليل الرئيسي. لا يزال المشغل يجري التجارب.