بدنیتی پر مبنی کوڈ Arweave کے JavaScript ریپوزٹری کے اندر کلیدی پیکجوں میں گھس جاتا ہے، ایک خفیہ بیک ڈور کو سرایت کرتا ہے۔

حملہ آوروں نے Arweave ایکو سسٹم سے منسلک 36 npm پیکجوں کے اندر ایک انفوسٹیلر لگایا۔ اس نے ڈویلپر کی اسناد، SSH کیز، اور Exodus crypto والیٹ فائلوں کو نشانہ بنایا۔ سیکیورٹی فرم JFrog نے اس حملے کا سراغ ایک سمجھوتہ شدہ مینٹینر اکاؤنٹ سے کیا۔
میلویئر کو IronWorm کہا جاتا ہے، اور اسے Rust کا استعمال کرتے ہوئے بنایا گیا ہے۔ یہ اس لمحے کو چالو کرتا ہے جب ایک ڈویلپر این پی ایم پیکیج انسٹال کرتا ہے۔ ایک بار چلنے کے بعد، یہ متاثرہ کمپیوٹر کے ذریعے 86 ماحولیاتی متغیرات اور 20 اسنادی فائلوں کے لیے اسکین کرتا ہے، جیسا کہ JFrog کی ریسرچ ٹیم نے پایا۔ یہ AWS ٹوکنز، Anthropic اور OpenAI API کیز، npm تصدیقی اسناد، اور کرپٹو والیٹ ڈیٹا کے بعد جاتا ہے۔
Arweave پروجیکٹ پیکجوں میں پوشیدہ Rust میلویئر ہوتا ہے۔
حملہ آوروں نے "asteroiddao" نامی npm اکاؤنٹ سے سمجھوتہ کیا، جس کا تعلق Asteroid-dao GitHub گروپ سے ہے، جو Arweave/WeaveDB وکندریقرت ڈیٹا بیس پروجیکٹ کا حصہ ہے۔
"Asteroiddao" اکاؤنٹ سے وابستہ تمام پیکجز کو کچھ ہی عرصے میں دوبارہ شائع کر دیا گیا، ہر نئے ورژن میں 976 KB لینکس فائل ٹولز/ ڈائرکٹری میں موجود تھی۔
فائل کو package.json میں ایک پری انسٹال ہک کے ذریعے خود بخود چلانے کے لیے سیٹ کیا گیا تھا، یعنی یہ npm سے کچھ بھی انسٹال کرنے سے پہلے ہی لانچ ہو گئی تھی۔ صرف ایک شکار کو این پی ایم انسٹال چلانا تھا۔
JFrog کی ٹیم نے فائل کو الگ کیا اور پایا کہ اسے پیکنگ کے معیاری ٹولز کو بے وقوف بنانے کے لیے اس طرح پیک کیا گیا تھا۔ اندر ایک بڑا زنگ پروگرام تھا جس نے اپنے تاروں کو انفرادی طور پر خفیہ رکھا، ہر ایک کو الگ الگ بند کر کے تجزیہ کو بہت مشکل بنا دیا۔
جب ان تاروں کو آخرکار ڈی کوڈ کیا گیا، تو انہوں نے GitHub API کے اختتامی پوائنٹس، اسناد کی فائلوں کے راستے، حقیقی GitHub صارف IDs سے منسلک جعلی بوٹ اکاؤنٹس، اور دیگر پیکیج رجسٹریوں میں بدنیتی پر مبنی کوڈ لگانے کے لیے ٹیمپلیٹس کا انکشاف کیا۔
Arweave ماحولیاتی نظام سے متعلق متاثرہ npm پیکجوں کو ظاہر کرنے والا ایک اسکرین شاٹ۔ ماخذ: Jfrog.
چوری شدہ GitHub ٹوکنز میلویئر کو کمٹ کرنے اور مزید ریپوز کو متاثر کرنے دیتے ہیں۔
اسناد کی کٹائی کے بعد، IronWorm نے ان کو ذخیروں میں کمٹ کو آگے بڑھانے کے لیے استعمال کیا جس تک شکار تک رسائی حاصل ہو سکتی تھی۔ ان کمٹٹس نے اسی بدنیتی پر مبنی بائنری کو دوسرے پیکجوں میں لگایا، جسے پھر npm پر شائع کیا جا سکتا ہے اور سلسلہ میں اگلے ڈویلپر سے سمجھوتہ کیا جا سکتا ہے۔
JFrog کو نو GitHub تنظیموں میں 57 بیک ڈیٹ شدہ بدنیتی پر مبنی کمٹ کا پتہ چلا۔ ای میل claude@users.noreply.github.com کے ساتھ کمٹٹس نے مصنف کا نام "کلاڈ" استعمال کیا۔ ٹائم اسٹیمپس کو ہر ایک ذخیرے کی حالیہ جائز کمٹ سے ملنے کے لیے جعلی بنایا گیا تھا۔ ایک 13 سال پرانا ظاہر ہوا، حالانکہ GitHub ایکشن لاگس نے اس بات کی تصدیق کی ہے کہ تمام پش دریافت کے چند دنوں کے اندر ہی ہوئے ہیں۔
متاثرہ تنظیموں میں Asteroid-dao، weavedb، ArweaveOasis، اور ڈویلپر "ocrybit" سے وابستہ کئی ذاتی اکاؤنٹس شامل تھے۔
IronWorm نے متاثرہ مشینوں پر چھپانے کے لیے ایک eBPF کرنل روٹ کٹ بھی تعینات کیا۔ ٹور نیٹ ورک کے ذریعے اس کے آپریٹر کے لیے مواصلات۔ رسٹ کمپائلر نے روٹ کٹ کے سورس کوڈ کو بائنری میں چھوڑ دیا، ایک آپریشنل غلطی جس نے تجزیہ کو آسان بنا دیا۔
ایک عجیب بات یہ ہے کہ آپریٹر نے مالویئر میں اپنے کرپٹو کرنسی والیٹ ریکوری کے جملے کو ہارڈ کوڈ کیا ہے۔ JFrog نے یہ نتیجہ اخذ کیا کہ یہ چوری کرنے والے کو جانچ کے دوران حملہ آور کی اپنی اسناد سے باہر نکلنے سے روکنے کے لیے ایک حفاظتی اقدام تھا۔
مالویئر کے حملے npm پر ہوتے رہتے ہیں۔
ایپلی کیشن سیکیورٹی فرم آکس سیکیورٹی نے کہا کہ حملہ جلد ہی پکڑا گیا تھا، اس سے پہلے کہ یہ این پی ایم پر مزید پیکجوں میں پھیل جائے۔
بدنیتی پر مبنی ورژنز کو ایک دن کے اندر فرسودہ کے طور پر نشان زد کیا گیا تھا اور کچھ ہی دیر بعد GitHub سے زیادہ تر بیک ڈیٹ شدہ کمٹ کو ہٹا دیا گیا تھا۔
14 مئی کو، ہیکرز نے نوڈ-آئی پی سی کے لیے ایک غیر فعال مینٹینر اکاؤنٹ کا استحصال کیا، جس میں ہفتہ وار 822,000 سے زیادہ ڈاؤن لوڈز ہوتے ہیں۔ یہ استحصال مینٹینر کے ختم شدہ ای میل ڈومین کو دوبارہ رجسٹر کرکے اور npm پاس ورڈ کو دوبارہ ترتیب دے کر پورا کیا گیا۔ سمجھوتہ کرنے والے تین مختلف قسموں میں اسناد چوری کرنے والے پے لوڈز تھے جن کا مقصد ڈویلپر کے رازوں کی 90 سے زیادہ اقسام ہیں۔
سیکیورٹی فرموں Endor Labs اور StepSecurity نے JavaScript پر مبنی میلویئر کا استعمال کرتے ہوئے ایک ہم آہنگ لیکن الگ حملے کی نشاندہی کی جسے binding.gyp کہا جاتا ہے، جس نے ایک ہی ٹائم فریم کے دوران اسی طرح کی رجسٹری پوائزننگ اور GitHub ایکشن انفیکشن کو انجام دیا۔
ڈویلپرز جنہوں نے متاثرہ WeaveDB پیکجز میں سے کسی کو انسٹال کیا ہے، وہ تمام اسناد کو گھمائیں، غیر متوقع ورژن کی تبدیلیوں کے لیے لاک فائلوں کو چیک کریں، اور npm اور GitHub اکاؤنٹس پر دو عنصر کی تصدیق کو فعال کریں۔