Кампания Contagious Interview: северокорейские хакеры разместили 338 вредоносных пакетов в npm

information security

Исследовательская группа Socket Threat Research обнаружила масштабную кампанию кибершпионажа, связанную с северокорейскими государственными хакерами. Злоумышленники систематически размещают вредоносные пакеты в реестре npm, используя тактику социальной инженерии против разработчиков криптовалютных и блокчейн-проектов.

Описание

Согласно отчету, с момента предыдущего обновления 14 июля 2025 года было выявлено 338 вредоносных пакетов, которые суммарно скачали более 50 000 раз. На момент публикации исследования 25 пакетов оставались активными в реестре npm. Исследователи направили запросы на удаление опасного кода и приостановку associated учетных записей издателей.

Кампания получила название Contagious Interview (заразительное интервью) из-за характерного метода атаки: злоумышленники представляются рекрутерами в LinkedIn и предлагают жертвам выполнить тестовое задание, содержащее вредоносные зависимости. Целями становятся разработчики в сфере Web3, криптовалют и блокчейна, а также соискатели технических вакансий.

Технический анализ показал эволюцию инструментария хакеров. Изначально использовались прямые дропперы вредоносного ПО BeaverTail, но теперь злоумышленники перешли к более сложным загрузчикам HexEval, XORIndex и зашифрованным модулям. Каждый пакет выполняет код при установке или импорте, восстанавливает обфусцированный BeaverTail в памяти и загружает бэкдор InvisibleFerret для обеспечения постоянства.

Особенностью кампании является волнообразный и итеративный характер. Хакеры регулярно публикуют новые пакеты с опечатками в названиях (typosquatting), модифицируют код загрузчиков и масштабируют дистрибуцию через новые псевдонимы. Было зафиксировано использование более 180 фальшивых личностей, связанных с новыми npm-алиасами и регистрационными email-адресами, а также более десятка командных серверов.

В текущей волне атаки используются названия, похожие на популярные зависимости, которые разработчики часто устанавливают автоматически: epxreso (вместо express), dotevn (вместо dotenv), boby_parser (вместо body-parser) и другие. Также targeted пакеты для Web-разработки: react-router-html, vite-plugin-react-ping и аналоги.

Эксплуатация начинается в момент выполнения кода злоумышленника на машине жертвы. В этой кампании исполнение является пользовательским, а не уязвимостью. Установка или импорт активируют логику хакеров через npm lifecycle hooks, такие как postinstall, или через entry points, которые выполняют код при загрузке модуля.

Исследователи обнаружили проблемы в механизмах безопасности npm registry. Например, alias anarenhsaihan опубликовал два вредоносных пакета: jito-components (уже удален и заменен security holding page) и components-flexibility (оставался активным на момент написания отчета). Несмотря на удаление первого пакета, учетная запись хакера не была приостановлена, что позволило опубликовать второй вредоносный пакет.

Установка вредоносных пакетов напоминает матрешку: небольшой загрузчик запускается первым, восстанавливает BeaverTail в памяти, после чего BeaverTail загружает и активирует бэкдор InvisibleFerret. Новые зашифрованные загрузчики используют AES-256-CBC с жестко заданными ключами и векторами инициализации, храня зашифрованный текст в файлах типа LICENSE.

BeaverTail устанавливает командное управление через HTTP(S) и WebSocket, регистрирует хост, получает задания и подготавливает InvisibleFerret - кроссплатформенный Python-бэкдор для Windows, macOS и Linux. Инфраструктура смешивает raw IP-адреса на коммерческих VPS с легитимными hosting-платформами типа *.vercel.app для маскировки под developer-трафик.

Основные цели кампании - кража криптовалют и сохранение постоянства для дальнейших атак. По независимым оценкам, северокорейские хакеры уже похитили $2 миллиарда в 2025 году и approximately $1.34 миллиарда в 2024 году. Украденные активы обычно проходят через миксеры, cross-chain свопы и сети с низкой видимостью.

Эксперты прогнозируют дальнейшее развитие кампаний: появление новых вариантов загрузчиков, разделение расшифровки и размещение между файлами для обхода статических сканирований, продолжение повторного использования URL-шаблонов и хостинг-платформ. Рекомендуется усиливать контроль на уровне учетных записей, требовать двухфакторную аутентификацию и проверку происхождения кода, применять пре-публикационное сканирование.

Для защиты рекомендуется рассматривать каждую установку npm как выполнение кода и блокировать risky behavior до попадания на developer-машины или в CI/CD-пайплайны.
Следует сканировать код и запросы (pull requests) на включение в самом начале, требовать чистый отчет перед слиянием и проверять внешние библиотеки на происхождение, безопасность для сопровождающего и зафиксированные версии.

Интеграция специализированных инструментов безопасности в конвейеры разработки помогает активно выявлять и предотвращать конкурентные ПО, снижая подверженность атакам в цепочке поставок, таким как «заразительное интервью».

Индикаторы компрометации

Комментарии: 0