كشفت ثغرة أمنية خطيرة في منظومة npm، مرتبطة بحزم Namastex.ai، حيث تم اكتشاف إصدارات خبيثة تحتوي على برمجية CanisterWorm الخبيثة. هذه البرمجية، التي تنتشر ذاتياً، تتبع أساليب هجوم مشابهة لتلك التي يستخدمها المهاجم المعروف باسم TeamPCP.
تستهدف الحملة استبدال محتويات الحزم الشرعية بكود مصاب، ومن ثم الاستمرار في الانتشار عبر أي مساحة تسمح بها بيانات الاعتماد المسروقة.
حملة CanisterWorm الخبيثة وأثرها على نظام npm
تتبع الهجمة النمط المميز لعمليات TeamPCP، حيث نجح المهاجم في الوصول إلى رموز نشر npm صالحة، غالباً عبر خط أنابيب CI/CD مخترق. باستخدام هذه الرموز، قام المهاجم بتجريد الحزم الشرعية من وظائفها الأصلية، واستبدالها بكود خبيث، ثم إعادة نشرها تحت نفس الأسماء الموثوقة.
الحزم المتأثرة من Namastex.ai حملت إصدارات بدت وكأنها تحديثات تصحيحية روتينية، مع ملفات README وملفات وصفية مألوفة، مما جعل اكتشافها صعباً على المطورين وأدوات الأمن الآلية.
حدّد باحثون في Socket.dev التهديد كجزء من تحقيق أوسع في حملة CanisterWorm، التي توسعت لتشمل أكثر من 135 قطعة برمجية خبيثة عبر أكثر من 64 حزمة فريدة بحلول أواخر مارس 2026. أشارت أبحاث Socket إلى أن حزم Namastex.ai اتبعت نفس الأساليب الموثقة في نشاط CanisterWorm السابق، مما يشير إلى بنية تحتية مشتركة للمهاجمين وتصميم حمولة متناسق عبر مساحات مختلفة.
كيف تنتشر CanisterWorm
ما يميز CanisterWorm عن برمجيات سرقة البيانات التقليدية هو سلوكها الدودي المدمج. بمجرد تثبيت الحزمة المصابة، يتم تشغيل خطاف ما بعد التثبيت المخفي فوراً، والذي يعمل في الخلفية دون تنبيهات أو مطالبات ظاهرة على الطرفية.
يقوم هذا النص البرمجي بتشغيل دالة findNpmTokens() التي تقرأ رموز مصادقة npm من مواقع متعددة، بما في ذلك ملف ~/.npmrc، وملفات .npmrc الخاصة بالمشروع، ومتغيرات البيئة مثل NPM_TOKEN، واستعلامات تكوين npm الحية.
ثم يتم تمرير هذه الرموز المسروقة إلى نص برمجي ثانوي يسمى deploy.js، والذي يعمل كعملية خلفية منفصلة بالكامل. يقوم هذا النص البرمجي بالاستعلام عن سجل npm لاكتشاف كل حزمة يمكن لرمز الاعتماد المخترق النشر إليها، ثم يزيد إصدار التصحيح لكل منها، ويحقن حمولة CanisterWorm، ويعيد النشر باستخدام علامة –tag latest.
أي مطور يقوم بتثبيت هذه الحزم دون تحديد إصدار دقيق سيتلقى بصمت الإصدار المصاب ويصبح بذلك ناقلاً جديداً للانتشار.
بالإضافة إلى الانتشار، تجمع الحمولة متغيرات البيئة، ومفاتيح SSH، وبيانات اعتماد السحابة لـ AWS و Azure و GCP، ورموز حساب خدمة Kubernetes، وبيانات اعتماد Docker registry، ومفاتيح TLS الخاصة. كما تستهدف ملفات تخزين تسجيل الدخول للمتصفح وملفات المحفظة المشفرة المرتبطة بـ MetaMask و Phantom.
يتم استخراج البيانات المجمعة باستخدام تشفير المفتاح العام RSA عبر HTTPS إلى نقطة نهاية ICP. عندما لا يكون مفتاح RSA موجوداً على النظام المستهدف، تتحول البرمجية الخبيثة إلى التسليم بنص عادي.
يجب على الفرق التي تستخدم أي حزم من مساحة اسم Namastex.ai npm التعامل مع جميع الإصدارات الحديثة كحزم يحتمل أن تكون مصابة. يجب تدوير رموز npm، ورموز GitHub، وبيانات اعتماد السحابة، ومفاتيح SSH فوراً من أي أنظمة تم فيها تثبيت الحزم المتأثرة.
ينبغي تدقيق سجلات نشر الحزم بحثاً عن زيادات غير مفسرة في الإصدارات مرتبطة بنفس رموز المسؤول، والبحث عبر ذاكرة التخزين المؤقت لأدوات CI/CD عن بصمة بصمة مفتاح RSA العام وهشات الملفات المعروفة المرتبطة بهذه الحملة. يجب تمكين تحليل النصوص البرمجية عند التثبيت لتحديد خطافات ما بعد التثبيت قبل التنفيذ.
نظراً لأنه تم ملاحظة منطق انتشار متقاطع بين الأنظمة البيئية يستهدف PyPI في نشاط ذي صلة، يجب مراجعة بيئات Python التي تشترك في نفس بيانات الاعتماد على الفور.

