برنامج IronWorm الخبيث يزرع روتكيت في مكتبات npm الخاصة بمنظومة Arweave

هاجم قراصنة سلسلة التوريد الرقمية لمشروع Arweave، وزرعوا برنامجًا خبيثًا لسرقة البيانات داخل 36 حزمة من حزم npm. استهدف هذا الهجوم بيانات المطورين الحساسة، ومفاتيح SSH، وملفات محفظة العملات الرقمية Exodus. تمكن فريق البحث الأمني في شركة “جيه فروج” من تتبع الهجوم، واكتشفوا أنه تم من خلال اختراق حساب أحد المطورين المسؤولين عن الحزم.
برنامج “IronWorm” الخبيث: مصنوع من الصدأ (Rust)
اسم هذا البرنامج الخبيث هو “IronWorm”، وهو مبني بلغة برمجة “Rust”. ينشط هذا البرنامج فور قيام أي مطور بتثبيت إحدى حزم npm المصابة. بمجرد تشغيله، يبدأ بمسح الكمبيوتر المخترق بحثًا عن 86 متغيرًا بيئيًا و20 ملفًا من ملفات بيانات الاعتماد، حسبما وجد فريق “جيه فروج”. يستهدف البرنامج رموز AWS (خدمات أمازون السحابية)، ومفاتيح API الخاصة بـ Anthropic و OpenAI، وبيانات اعتماد npm، وبيانات محافظ العملات الرقمية.
كيف تم الاختراق؟ حساب مطور مزور
اخترق المهاجمون حساب npm باسم “asteroiddao”، والذي ينتمي إلى مجموعة “asteroid-dao” على GitHub، وهي جزء من مشروع قاعدة البيانات اللامركزية Arweave/WeaveDB. تم إعادة نشر جميع الحزم المرتبطة بهذا الحساب خلال فترة زمنية قصيرة، مع إصدار نسخة جديدة لكل منها تحتوي على ملف Linux بحجم 976 كيلوبايت موجود في مجلد اسمه “tools/”.
تم ضبط الملف ليعمل تلقائيًا من خلال أمر (preinstall hook) في ملف package.json، مما يعني أنه يعمل قبل أن يبدأ npm حتى في تثبيت أي شيء. كل ما يحتاجه الضحية هو تشغيل الأمر “npm install”.
تحليل معقد للبرنامج الخبيث
قام فريق “جيه فروج” بتحليل الملف واكتشفوا أنه تم تغليفه بطريقة تهدف إلى خداع أدوات فك التغليف القياسية. بداخله كان برنامج Rust ضخم يقوم بتشفير نصوصه بشكل فردي، مع قفل كل نص على حدة، مما يجعل التحليل أكثر صعوبة. عندما تم فك تشفير هذه النصوص أخيرًا، كشفت عن نقاط نهاية GitHub API، ومسارات لملفات بيانات الاعتماد، وحسابات روبوت مزيفة مرتبطة بمعرفات مستخدمين حقيقية على GitHub، وقوالب لحقن أكواد ضارة في مستودعات حزم أخرى.
سرقة رموز GitHub واستهداف المزيد من المستودعات
بعد جمع بيانات الاعتماد، استخدم برنامج IronWorm هذه البيانات لدفع تغييرات (commits) إلى مستودعات Github التي يمكن للضحية الوصول إليها. قامت تلك التغييرات بزرع نفس الملف الثنائي الخبيث في حزم أخرى، والتي يمكن بعد ذلك نشرها على npm واختراق المطور التالي في السلسلة. وجد فريق “جيه فروج” 57 commit خبيث تم تزويره بتاريخ قديم عبر 9 منظمات على GitHub. استخدمت هذه الـ commits اسم المؤلف “claude” مع البريد الإلكتروني [email protected].
تم تزوير التواريخ لمطابقة أحدث commit شرعي لكل مستودع. بدا أحدها يعود تاريخه إلى 13 عامًا، على الرغم من أن سجلات GitHub Actions أكدت أن جميع عمليات الدفع حدثت في غضون أيام قليلة من الاكتشاف. شملت المنظمات المتضررة: asteroid-dao, weavedb, ArweaveOasis، بالإضافة إلى عدة حسابات شخصية مرتبطة بالمطور “ocrybit”.
قام برنامج IronWorm أيضًا بنشر “rootkit” (برنامج تجسس خفي) في نواة لينكس (eBPF) للاختباء على الأجهزة المصابة. تم توجيه الاتصالات إلى المشغل عبر شبكة Tor (شبكة التوجيه البصلي). ترك مترجم Rust كود مصدر الـ rootkit في الملف الثنائي، وهو خطأ تشغيلي جعل التحليل أسهل. ومن الغرابة أن المشغل قام بتضمين عبارة استرداد محفظة العملات الرقمية الخاصة به داخل البرنامج الخبيث، وخلص فريق “جيه فروج” إلى أن هذا كان إجراءً احترازيًا لمنع أداة السرقة من سرقة بيانات المشغل نفسه أثناء الاختبار.
هجمات مستمرة على حزم npm
قالت شركة Ox Security لأمن التطبيقات إن الهجوم تم اكتشافه مبكرًا، قبل أن ينتشر إلى المزيد من الحزم على npm. تم وضع علامة “ملغى” (deprecated) على الإصدارات الخبيثة في غضون يوم واحد، وتمت إزالة معظم الـ commmits المزيفة من GitHub بعد ذلك بوقت قصير.
في 14 مايو، استغل القراصنة حساب مطور غير نشط لحزمة “node-ipc”، وهي حزمة تضم أكثر من 822,000 عملية تنزيل أسبوعيًا. تم ذلك من خلال إعادة تسجيل نطاق البريد الإلكتروني منتهي الصلاحية للمطور وإعادة تعيين كلمة مرور npm. احتوت ثلاثة إصدارات مخترقة على حمولات سرقة بيانات اعتماد تستهدف أكثر من 90 فئة من أسرار المطورين.
حددت شركتا Endor Labs وStepSecurity هجومًا متزامنًا ولكنه مختلف يستخدم برنامجًا خبيثًا يعتمد على JavaScript يسمى “binding.gyp”، والذي قام بعمليات تسميم سجل الحزم وإصابة GitHub Actions مماثلة خلال نفس الفترة الزمنية.
إجراءات الحماية الموصى بها
يجب على المطورين الذين قاموا بتثبيت أي من حزم WeaveDB المتضررة القيام بالتالي:
- تدوير (تغيير) جميع بيانات الاعتماد الخاصة بهم.
- فحص ملفات lock files (مثل package-lock.json) بحثًا عن تغييرات غير متوقعة في الإصدارات.
- تفعيل المصادقة الثنائية (2FA) على حسابات npm و GitHub الخاصة بهم.
الأسئلة الشائعة (FAQ)
س: ما هو برنامج IronWorm الخبيث؟
ج: هو برنامج خبيث مكتوب بلغة Rust، يهدف إلى سرقة بيانات المطورين مثل مفاتيح API ومفاتيح SSH وبيانات محافظ العملات الرقمية. يتم تثبيته عبر حزم npm المخترقة، ويعمل فور تشغيل أمر “npm install”.
س: كيف تم اختراق حزم Arweave؟
ج: قام القراصنة باختراق حساب npm باسم “asteroiddao” والذي يخص مشروع WeaveDB التابع لمشروع Arweave. ثم قاموا بإعادة نشر جميع الحزم المرتبطة بهذا الحساب مع إضافة الملف الخبيث، مما أدى إلى إصابة أي شخص يقوم بتثبيت هذه الحزم.
س: ما هي الإجراءات التي يجب أن يتخذها المطورون لحماية أنفسهم؟
ج: يجب على المطورين تغيير جميع كلمات المرور والرموز السرية فورًا، والتحقق من ملفات lock files بحثًا عن أي تغييرات مشبوهة، وتفعيل المصادقة الثنائية (2FA) على حساباتهم في npm و GitHub. كما يُنصح بتوخي الحذر عند تثبيت أي حزم من مصادر غير موثوقة.












