تتسلل التعليمات البرمجية الضارة إلى الحزم الرئيسية داخل مستودع Arweave's JavaScript، مما يؤدي إلى تضمين باب خلفي خفي.

قام المهاجمون بزرع أداة سرقة المعلومات داخل حزم 36 npm المرتبطة بالنظام البيئي Arweave. لقد استهدفت بيانات اعتماد المطورين ومفاتيح SSH وملفات محفظة التشفير Exodus. قامت شركة الأمن JFrog بتتبع الهجوم إلى حساب مشرف مخترق.
يُطلق على البرنامج الضار اسم IronWorm، وقد تم تصميمه باستخدام Rust. يتم تنشيطه في اللحظة التي يقوم فيها المطور بتثبيت حزمة npm. بمجرد تشغيله، يقوم بمسح الكمبيوتر المصاب بحثًا عن 86 متغيرًا للبيئة و20 ملف اعتماد، كما وجد فريق بحث JFrog. إنه يتبع رموز AWS ومفاتيح Anthropic وOpenAI API وبيانات اعتماد مصادقة npm وبيانات محفظة التشفير.
تحمل حزم مشاريع Arweave برامج ضارة مخفية من نوع Rust
اخترق المهاجمون حساب npm يسمى "asteroiddao"، والذي ينتمي إلى مجموعة Asteroid-dao GitHub، وهي جزء من مشروع قاعدة البيانات اللامركزية Arweave/WeaveDB.
تمت إعادة نشر جميع الحزم المرتبطة بحساب "asteroiddao" خلال فترة زمنية قصيرة، حيث يحتوي كل إصدار جديد على ملف Linux بحجم 976 كيلو بايت موجود في دليل الأدوات/.
تم ضبط الملف ليعمل تلقائيًا من خلال رابط التثبيت المسبق في package.json، مما يعني أنه تم تشغيله قبل أن يبدأ npm في تثبيت أي شيء. كل ما كان على الضحية فعله هو تشغيل npm install.
قام فريق JFrog بتفكيك الملف ووجد أنه تم تعبئته بطريقة مصممة لخداع أدوات التفريغ القياسية. كان بداخله برنامج Rust كبير يحافظ على تشفير سلاسله بشكل فردي، مع قفل كل منها على حدة، مما يجعل التحليل أكثر صعوبة.
عندما تم فك تشفير هذه السلاسل أخيرًا، كشفت عن نقاط نهاية GitHub API، ومسارات لملفات الاعتماد، وحسابات الروبوت المزيفة المرتبطة بمعرفات مستخدم GitHub الحقيقية، وقوالب لحقن تعليمات برمجية ضارة في سجلات الحزم الأخرى.
لقطة شاشة توضح حزم npm المصابة والمتعلقة بالنظام البيئي Arweave. المصدر: جفروج.
تسمح الرموز المميزة لـ GitHub المسروقة للبرامج الضارة بدفع الالتزامات وإصابة المزيد من عمليات إعادة الشراء
بعد جمع بيانات الاعتماد، استخدمتها IronWorm لدفع الالتزامات إلى المستودعات التي يمكن للضحية الوصول إليها. زرعت هذه الالتزامات نفس البرنامج الثنائي الخبيث في حزم أخرى، والتي يمكن بعد ذلك نشرها على npm وتهديد المطور التالي في السلسلة.
عثرت JFrog على 57 عملية ارتكاب خبيثة قديمة عبر تسع مؤسسات GitHub. استخدمت الالتزامات اسم المؤلف "كلود" مع البريد الإلكتروني claude@users.noreply.github.com. تم تزوير الطوابع الزمنية لمطابقة الالتزام الشرعي الأحدث لكل مستودع. ويبدو أن أحدها يعود تاريخه إلى 13 عامًا، على الرغم من أن سجلات GitHub Actions أكدت أن جميع عمليات الدفع حدثت في غضون أيام قليلة من اكتشافها.
وتضمنت المنظمات المتضررة Asteroid-dao وweavedb وArweaveOasis والعديد من الحسابات الشخصية المرتبطة بالمطور "ocrybit".
قامت IronWorm أيضًا بنشر برنامج rootkit kernel eBPF للاختباء على الأجهزة المصابة. يتم توجيه الاتصالات إلى مشغلها عبر شبكة Tor. ترك مترجم Rust الكود المصدري للجذور الخفية في الملف الثنائي، وهو خطأ تشغيلي جعل التحليل أسهل.
إحدى الأمور الغريبة هي أن المشغل قام بترميز عبارة استرداد محفظة العملة المشفرة الخاصة به في البرنامج الضار. وخلص JFrog إلى أن هذا كان بمثابة ضمان لمنع السارق من سرقة بيانات اعتماد المهاجم أثناء الاختبار.
تستمر هجمات البرامج الضارة في ضرب npm
وقالت شركة أمان التطبيقات Ox Security إنه تم اكتشاف الهجوم مبكرًا، قبل أن ينتشر إلى المزيد من الحزم على npm.
تم وضع علامة على الإصدارات الضارة على أنها مهملة خلال يوم واحد، وتمت إزالة معظم الالتزامات القديمة من GitHub بعد فترة وجيزة.
في 14 مايو، استغل المتسللون حساب مشرف غير نشط لـNode-IPC، وهي حزمة تحتوي على أكثر من 822000 عملية تنزيل أسبوعيًا. تم تحقيق الاستغلال عن طريق إعادة تسجيل مجال البريد الإلكتروني المنتهي الصلاحية للمشرف وإعادة تعيين كلمة مرور npm. كانت هناك ثلاثة متغيرات مخترقة تحتوي على حمولات سرقة بيانات الاعتماد تستهدف أكثر من 90 فئة من أسرار المطورين.
حددت شركتا الأمن Endor Labs وStepSecurity هجومًا متزامنًا ولكن متميزًا باستخدام برامج ضارة تعتمد على JavaScript تسمى Binding.gyp، والتي أدت إلى تسميم تسجيل مماثل وإصابة GitHub Actions خلال نفس الإطار الزمني.
يجب على المطورين الذين قاموا بتثبيت أي من حزم WeaveDB المتأثرة تدوير جميع بيانات الاعتماد، والتحقق من ملفات القفل بحثًا عن تغييرات غير متوقعة في الإصدار، وتمكين المصادقة الثنائية على حسابات npm وGitHub.