Экосистема открытых пакетов для Node.js снова стала ареной для киберпреступников. За последние сутки специалисты компании OX Security обнаружили четыре новых вредоносных пакета в реестре npm. Все они содержат код для кражи данных. Примечательно, что все пакеты загружены с одного аккаунта, а один из них представляет собой почти точную копию недавно опубликованного исходного кода вредоносной программы Shai-Hulud.
Описание
Эта атака примечательна не только разнообразием используемых техник, но и тем, как быстро злоумышленники адаптируют открытые инструменты. Речь идёт о явном признаке новой тенденции: преступники всё активнее применяют концепцию так называемого "виб-кодинга", когда готовый вредоносный код берётся из открытых источников и без изменений загружается в реестры пакетов.
Четыре пакета - @deadcode09284814/axios-util, axois-utils, chalk-tempalte и color-style-utils - маскируются под популярные библиотеки. Это классическая тактика опечаток в доменных именах, когда название пакета слегка изменяется, чтобы обмануть разработчика. Например, chalk-tempalte призван имитировать популярную библиотеку chalk, а axois-utils - широко используемый HTTP-клиент Axios.
Наибольший интерес представляет пакет chalk-tempalte. В отчёте OX Security указано, что он содержит клон вредоносного кода Shai-Hulud, исходники которого на прошлой неделе опубликовала группа TeamPCP. Мотивом, вероятно, послужил своеобразный конкурс по атакам на цепочки поставок, объявленный на форуме BreachForums. Но есть важное отличие: если TeamPCP использовала обфускацию (запутывание кода для затруднения его анализа), то автор chalk-tempalte просто скопировал исходный код почти без изменений. Это сделало вредоносную программу более заметной для анализа, но и более простой в запуске.
После установки chalk-tempalte собирает учётные данные, ключи доступа к облачным сервисам, криптовалютные кошельки и переменные окружения. Вся эта информация отправляется на удалённый сервер управления, известный как C2 (command and control), расположенный по адресу 87e0bbc636999b[.]lhr[.]life. Кроме того, программа создаёт новый репозиторий на GitHub, куда также загружает украденные данные.
Другие пакеты демонстрируют ещё более разнообразный функционал. Например, axois-utils содержит так называемого "фантомного бота" - локальную службу, написанную на языке Go. Эта служба не только крадёт информацию, но и обеспечивает закрепление в системе. Даже после удаления самого npm-пакета вредоносная служба остаётся на компьютере. Но самый опасный элемент этого пакета - возможность превратить заражённую машину в ботнет для DDoS-атак. Злоумышленник может направить с неё HTTP, TCP, UDP и Reset-запросы на любые цели, фактически используя ресурсы жертвы для атак на другие сайты.
Пакет @deadcode09284814/axios-util действует более прямолинейно. Он отправляет собранные SSH-ключи, переменные окружения и учётные данные облачных провайдеров (AWS, GCP, Azure) на сервер 80[.]200[.]28[.]28:2222. А color-style-utils фокусируется на краже криптовалютных кошельков и определении геолокации по IP-адресу жертвы, отправляя данные на свой сервер edcf8b03c84634[.]lhr[.]life.
Общее количество загрузок всех четырёх пакетов достигло 2678. Каждая из этих установок несёт прямую угрозу: злоумышленник получает доступ к внутренней инфраструктуре компании, облачным аккаунтам и исходному коду. Особенно опасна ситуация, когда пакет устанавливается в среде разработки с расширенными правами доступа к репозиториям кода.
Последствия такой атаки могут быть катастрофическими для бизнеса. Утечка ключей доступа к облачным сервисам AWS, GCP или Azure позволяет преступникам запускать дорогостоящие вычислительные ресурсы от имени жертвы, красть данные клиентов и останавливать работу сервисов. Превращение компьютеров разработчиков в узлы DDoS-ботнета грозит юридическими последствиями, если с них будут атакованы другие компании.
Этот инцидент наглядно демонстрирует новую реальность. Открытый код вредоносов вроде Shai-Hulud снижает порог входа для киберпреступников. Теперь для проведения сложной атаки на цепочку поставок не нужно быть опытным программистом. Достаточно найти подходящий инструмент, сменить сервер управления и загрузить его в реестр. Скорее всего, мы станем свидетелями целой волны подобных атак в ближайшие недели.
Разработчикам стоит проявлять максимальную бдительность. Перед установкой любого пакета необходимо проверять его название на опечатки, изучать историю аккаунта автора и количество загрузок, а также использовать инструменты анализа зависимостей, способные выявлять подозрительное поведение кода.
Индикаторы компрометации
IPv4 Port Combinations
- 80.200.28.28:2222
Domains
- 87e0bbc636999b.lhr.life
- b94b6bcfa27554.lhr.life
- edcf8b03c84634.lhr.life
Npm packages
- chalk-tempalte
- @deadcode09284814/axios-util
- axois-utils
- color-style-utils