یافتههای جدید Phylum حاکی از آن است که مجموعهای از بسته های مخرب npm جعلی در مخزن Node.js به منظور سوء استفاده عوامل تهدید تحت حمایت دولت کره شمالی مشاهده شده است. این پکیج ها شامل execution-time-async، data-time-utils، login-time-utils، mongodb-connection-utils و mongodb-execution-utils میشوند.
یکی از بسته های مخرب npm مورد بحث، execution-time-async نام دارد که به عنوان همتای قانونی خود execution-time، کتابخانهای با بیش از 27 هزار دانلود در هفته، ظاهر شده است. Execution-time یک ابزار Node.js است که برای اندازه گیری زمان اجرا در کد مورد استفاده قرار میگیرد.
"use strict";
const prettyHrtime = require('pretty-hrtime');
const getConfigs = require('./test/index-config-text');
const namedPerformances = {};
const defaultName = 'default';
const performance = (logInstance) => {
return {
start: (name) => {
name = name || defaultName;
namedPerformances[name] = {
startAt: process.hrtime(),
}
},
config: () => {
getConfigs();
},
stop: (name) => {
name = name || defaultName;
...
execution-time-async در npm
Phylum با توصیف این کمپین به عنوان یک حمله زنجیره تامین نرم افزار که توسعه دهندگان را مورد هدف قرار میدهد، طی گزارشی که در بیستم فوریه ۲۰۲۴ به اشتراک گذاشت، اذعان داشت که این پکیج در واقع چندین اسکریپت مخرب از جمله یک رباینده ارز دیجیتال و گواهی اعتبار را نصب میکند. این پکیج پیش از حذف شدن و از چهارم فوریه 2024، 302 بار دانلود شده است.
عوامل تهدید در یک تغییر رویه، تلاش کردند تا کد مخرب مبهم را در یک فایل آزمایشی پنهان کنند، فایلی که برای دریافت پیلودهای مرحله بعد از یک سرور راه دور، ربودن اطلاعات کاربری از مرورگرهای وب مانند Brave، Google Chrome و Opera و همچنین بازیابی یک اسکریپت پایتون، که به نوبه خود، اسکریپتهای دیگر را دانلود میکند، طراحی شده است.
- ~/.n2/pay، میتواند دستورات دلخواه را اجرا کند، ~/.n2/bow و ~/.n2/adc را دانلود و راه اندازی نماید، فرآیندهای Brave و Google Chrome را خاتمه دهد و حتی خود را از روی سیستم آلوده شده حذف کند.
- ~/.n2/bow ، یک رباینده رمز عبور مرورگر مبتنی بر پایتون است.
- ~/.n2/adc ، برنامه AnyDesk را روی ویندوز نصب میکند.
Phylum اعلام کرد که نظراتی را در کد منبع شناسایی کرده است (“/Users/ninoacuna/”) که امکان ردیابی یک پروفایل حذف شده GitHub با نام (“Nino Acuna” یا binaryExDev) حاوی مخزنی به نام File-Uploader است را ممکن میسازد.
اسکریپتهای پایتونی در این مخزن وجود داشت که به همان آدرسهای IP (162.218.114[.]83 – که متعاقباً به 45.61.169[.]99 تغییر یافت) برای واکشی اسکریپتهای Python فوق الذکر ارجاع داده میشدند.
---
+++
@@ -49,11 +49,11 @@
});*/
let u;
const d = (t) => e(t, c),
- X = "http://162.218.114.83:3000",
+ X = "http://45.61.169.99:3000",
C = d("ER0UVhQZAw"),
H = (t) =>
t.replace(/^~([a-z]+|\/)/, (t, c) => ("/" === c ? y : `${U[C](y)}/${c}`)),
Y = "slJCNQ5",
D = "AgYPTBAyD1QQJx9WFg",
تغییر آدرس IP سرور
گمان می رود که این حمله هم اکنون در حال انجام است، زیرا حداقل چهار پکیج دیگر با ویژگیهای یکسان به مخزن بسته های مخرب npm راه یافتهاند و در مجموع 325 بار دانلود شدهاند که عبارتند از:
- data-time-utils _ 52 بارگیری از پانزدهم فوریه
- login-time-utils _ 171 بارگیری از پانزدهم فوریه
- mongodb-connection-utils – 51 بارگیری از نوزدهم فوریه
- mongodb-execution-utils _ 51 بارگیری از نوزدهم فوریه
شناسایی ارتباط با عوامل تهدید کره شمالی
Phylum دو اکانت GitHub را که binaryExDev دنبال میکند نیز تجزیه و تحلیل کرد که منجر به کشف یک مخزن دیگر به نام mave-finance-org/auth-playground شد که بیش از دهها بار توسط حسابهای دیگر فورک شده بود.
در حالی که فورک کردن یک مخزن به خودی خود غیرعادی نیست، یک جنبه غیرمعمول برخی از این مخازن فورک شده این است که آنها را به عنوان “auth-demo” یا “auth-challenge” تغییر نام دادهاند، که این احتمال را افزایش میدهد که مخزن اصلی ممکن است به عنوان بخشی از آزمون کدنویسی برای مصاحبه شغلی به اشتراک گذاشته شده باشد.
این مخزن بعداً به banus-finance-org/auth-sandbox، Dexbanus-org/live-coding-sandbox و mave-finance/next-assessment منتقل شد که نشان دهنده تلاشهایی برای دور زدن فعالانه تدابیر امنیتی GitHub است. لازم به ذکر است که همه این حسابها اکنون حذف شدهاند.
علاوه بر این، پکیج ارزیابی بعدی حاوی یک پیش نیاز به نام “json-mock-config-server” میباشد که در رجیستری npm فهرست نشده است، بلکه مستقیماً از دامنه npm.mave[.]finance ارائه میشود.
شایان ذکر است که Banus ادعا میکند که یک مرکز تبادل دائمی غیرمتمرکز مستقر در هنگ کنگ میباشد، این شرکت حتی یک فرصت شغلی برای یک توسعه دهنده ارشد frontend در بیست و یکم فوریه 2024 ارسال کرده است. در حال حاضر مشخص نیست که آیا این یک فرصت شغلی واقعی میباشد و یا اینکه یک طرح مهندسی اجتماعی استادانه است.
ارتباط با عوامل تهدید کره شمالی از این واقعیت ناشی میشود که جاوا اسکریپت مبهم تعبیه شده در بسته های مخرب npm با بدافزار دیگر مبتنی بر جاوا اسکریپت به نام BeaverTail که از طریق مکانیزم مشابهی منتشر میشود، همپوشانی دارد.
این کمپین در نوامبر 2023 توسط واحد 42 شبکه های پالو آلتو با نام رمز Contagious Interview شناخته شد. Michael Sikorski (مایکل سیکورسکی)، CTO واحد 42 شبکههای پالو آلتو، در آن زمان به هکر نیوز اعلام کرد که Contagious Interview کمی متفاوت از Operation Dream Job (متعلق به گروه Lazarus ) میباشد، زیرا عمدتاً بر نفوذ به توسعه دهندگان از طریق هویت جعلی در پورتال های شغلی آزاد متمرکز است و آنها را فریب میدهد تا پکیجهای npm غیرمجاز را نصب کنند.
یکی از توسعه دهندگانی که قربانی این کمپین شد، آن زمان به Phylum اعلام کرد که مخزن تحت پوشش یک مصاحبه برنامه نویسی زنده به اشتراک گذاشته شده است، اگرچه آنها مدعی شدند که هرگز آن را روی سیستم خود نصب نکرده اند.
بیش از هر زمان دیگری، هم برای توسعه دهندگان فردی و هم برای سازمان های توسعه دهنده نرم افزار مهم است که در کدهای منبع باز در برابر این حملات هوشیار باشند.