В экосистеме менеджера пакетов npm обнаружен кластер вредоносных модулей, замаскированных под небольшие утилиты для работы с датами и подсчёта дней. Всего идентифицировано около четырнадцати пакетов, каждый из которых содержит рабочий код, честно выполняющий заявленные функции. Однако вместе с полезной логикой в модули встроен скрытый исполняемый файл, который запускается при подключении пакета к проекту и связывается с управляющим сервером злоумышленников.
Описание
Атака устроена так, что для активации вредоносной нагрузки не требуется ни установочных скриптов, ни вызова каких-либо функций из пакета. Достаточно одного импорта в любом месте проекта, включая транзитивные зависимости, которые разработчик мог не выбирать осознанно. Встроенная процедура находит вложенный бинарный файл, помечает его как исполняемый и запускает отдельным фоновым процессом. Перед запуском модуль дополнительно проверяет целостность файла, сверяя его с заранее заданным значением, что гарантирует выполнение именно той версии вредоноса, которую подготовил оператор. Стандартные меры предосторожности, в том числе запрет выполнения скриптов при установке, в данном случае не обеспечивают защиту.
Как показало исследование TrendAI Research, во всех модулях скрывается один и тот же файл - RedShell, нативный Linux-имплант коммерческого фреймворка RedC2 4.0. RedC2 активно продаётся на хакерском форуме Hack Forums как кроссплатформенное средство для слежки, кражи учётных данных и управления большим числом заражённых машин. Фреймворк поддерживает Windows, Linux и macOS, причём нативная поддержка Linux появилась в его четвёртой версии, выпущенной в июне 2026 года. Обнаруженные в npm пакеты представляют собой один из способов доставки этого импланта на компьютеры разработчиков.
Характерная особенность RedC2 - встроенный модуль Red Agent на основе больших языковых моделей. Оператору достаточно сформулировать задачу обычным языком, например "собрать сохранённые пароли" или "найти файлы с ключами доступа", и система сама разобьёт её на цепочку конкретных команд для импланта. По замыслу создателей, это избавляет от необходимости вручную вводить каждую инструкцию и позволяет координировать сложные многоступенчатые операции. Модуль обучен на командах фреймворка и анализирует намерение пользователя, выделяя ключевые шаги и выбирая подходящие инструменты. Следствием становится снижение порога входа: даже неопытный злоумышленник может выполнить атаку, которая раньше требовала серьёзной подготовки.
Возможности самого RedShell довольно широки. Имплант позволяет выполнять произвольные команды от имени текущего пользователя, запускать интерактивную оболочку, собирать сведения о системе и сети, копировать SSH-ключи и данные браузеров, обнаруживать базы данных. В арсенале также загрузка и запуск дополнительных модулей, управление процессами и учётными записями, организация прокси-серверов и перенаправление портов для доступа во внутреннюю сеть жертвы. С помощью специальных команд оператор может создавать туннели между разными сегментами сети, используя заражённый компьютер как шлюз для атак на соседние устройства. Для закрепления в системе вредонос применяет несколько механизмов автозагрузки, включая задания планировщика, изменения в конфигурации оболочки и автозапуск в графической среде.
Связь с командным сервером поддерживается по зашифрованному каналу, при этом вредонос не проверяет подлинность сертификата сервера, поэтому оператор может использовать самоподписанные сертификаты без риска ошибок. Для выгрузки больших объёмов похищенных данных применяются как прямые HTTP-соединения, так и сторонние файлообменные сервисы. При первом обращении к серверу вредонос передаёт структурированную информацию о заражённой системе: имя пользователя, сведения об операционной системе, сетевые адреса и уникальный идентификатор установки. Этот идентификатор сохраняется в скрытом файле в домашнем каталоге, поэтому последующие подключения сервер распознаёт как повторное появление той же машины.
Отдельного упоминания заслуживает способность импланта выполнять произвольный код непосредственно в памяти, не записывая его на диск. Такой приём затрудняет обнаружение традиционными антивирусными средствами, которые проверяют файловую систему. В сочетании с проверкой целостности и запуском без участия установочных скриптов это делает вредонос особенно живучим. Аналитики также отмечают, что имена пакетов подобраны так, чтобы имитировать популярные утилиты для отслеживания привычек и расчёта календарных интервалов, а корректная работа математических функций усыпляет бдительность при ручной проверке.
Обнаруженная кампания показательна в двух аспектах. Во-первых, она демонстрирует, что атаки на цепочку поставок перестали ограничиваться подменой установочных скриптов и могут использовать обычный импорт модуля как точку входа. Во-вторых, интеграция искусственного интеллекта в коммерческие хакерские инструменты делает такие фреймворки доступнее для широкого круга злоумышленников. Разработчикам стоит внимательнее проверять новые зависимости, обращать внимание на свежие пакеты с очень узкой функциональностью и регулярно аудировать состав проектов. Использование инструментов анализа целостности зависимостей и мониторинг появления подозрительных модулей снижает риск заражения через репозитории с открытым кодом.
Индикаторы компрометации
SHA256
- 0b9aef51d5ec55d69fb52ada41377ced07c6cff0cad09174390f49081d439b14
- 1c5b97ad2212de1046eab1ef66ff5e7e21ca93c918f54f3369c06c64271f2d82
- 24e51473f03947dcb8ea8898d93067bbd284850dde33ef983b568b113a632fa2
- 3ad446777c04146aa878643fd286094363a3ed74865a1644a39c76079d72960b
- 3ca67aa27a7544cfbc8a6b8b73628d6217560cd5f6e13fb167985689ab7bbff0
- 4537b1189ce419f1a595cf47216c03f80e9170ce80dad8d9227a1e52f9cb3466
- 5537e187a3a1c1cdbd598246079910232add2b0097d15fba9aaf8004b92384c1
- 69fe4881065cf4a5e30cbaeaf30c16fd891d5bfc5a6263e518fb3ef2e23d0889
- 7a5221c06710393fc3893ef8b697bf8a2a24c63b3b8fde77433a9516127cba4d
- 7fcc2baa9d65c190a07add27f84ad0644ac77a62eeb5a49062bad290133e2cd6
- 969ef45e5e1c382d421580b8306aff0abf0c4d302f0af7091ac44ce70a92f789
- 9e8a5128cea298d21b8e3b24102d48cd3b256bb7f229e75c854ccfbe8ed4fb76
- c753b7cbd2ffb89ad51dc6f48714204df8955d000520174329dd3785aede4562
- e9a4d708f22170e7fe307593af7a5ae5feea06907ade075a3fd8a0c116ed707a
- f71ffec658eb31fb2292f83e02f9451acb6a6d70f1b7988d9ccc308286b288b9