Киберпространство разработчиков программного обеспечения превратилось в новое поле боя для государственных хакерских группировок. Особую активность в этом направлении демонстрируют северокорейские оперативники, чьи атаки стали отличаться хирургической точностью и глубоким пониманием рабочего процесса программистов. Очередным доказательством этого стал анализ сложной трехуровневой атаки, начавшейся с безобидного на вид npm-пакета и завершившейся установкой многофункционального шпионского ПО на компьютеры жертв. Эта кампания, известная в сообществе как "Contagious Interview", нацелена на специалистов в области криптовалют, блокчейна и Web3, превращая рутинный процесс установки зависимостей в критическую угрозу информационной безопасности.
Описание
В центре инцидента оказался пакет "tailwindcss-forms-kit", маскирующийся под библиотеку компонентов для популярного CSS-фреймворка Tailwind. Его название и описание не вызывали подозрений у разработчиков, стремящихся ускорить вёрстку форм. Однако за этой оболочкой скрывался тщательно продуманный вредоносный код, выступавший в роли первой ступени сложной атаки. Исследователи из OpenSourceMalware, давно отслеживающие активность группировки Lazarus, обнаружили данную угрозу в рамках мониторинга кампании "Contagious Interview". По их данным, эта кампания включает 988 отдельных угроз и 4285 индикаторов компрометации, причём 373 из них - это именно пакеты в реестре npm. Это свидетельствует о масштабной и хорошо финансируемой операции по заражению инфраструктуры разработчиков.
Первая стадия атаки, загружаемая через пакет "tailwindcss-forms-kit", представляла собой обфусцированный JavaScript-код. Его основной задачей была разведка и кража учётных данных с последующей загрузкой второго этапа вредоносной программы. Код использовал сложную технику обфускации с массивом строк и самоизменяющимися функциями для затруднения анализа. После деобфускации выяснилось, что вредоносная программа действует как многофункциональный троян, способный похищать данные из браузеров, криптовалютных кошельков и облачных сервисов. На операционной системе Windows он применял механизм DPAPI для расшифровки мастер-ключей и извлечения паролей в чистом виде из Chrome, Brave, Opera, Yandex и Microsoft Edge. На macOS программа крала файл "login.keychain-db", а также базы данных браузеров и историю командной оболочки.
Финансовая мотивация атаки стала очевидна при анализе целевых объектов. В коде были жёстко прописаны идентификаторы семи расширений для браузеров, включая MetaMask, Phantom и Coinbase Wallet, а также пути к установленным десктопным приложениям, таким как Exodus и Electrum. Однако наиболее тревожным для корпоративной безопасности стал автоматический сбор облачных учётных данных. При подключении к серверу управления вредоносная программа незамедлительно загружала на сервер злоумышленников содержимое каталогов "~/.aws", "~/.azure" и "~/.config/gcloud". Это означало, что разработчик с доступом к облачной инфраструктуре мог в одно мгновение передать контроль над дорогостоящими ресурсами государственной группировке. Для обеспечения устойчивости на Windows троян прописывался в автозагрузку через реестр под маскировочным именем "NvidiaDriverUpdate", имитируя процесс обновления драйверов видеокарты.
Второй этап атаки, загружаемый первой стадией, был идентифицирован как известное семейство вредоносного ПО OtterCookie, которое эксперты уверенно связывают с Lazarus Group. Совпадения были неоспоримыми: идентичные идентификаторы целевых расширений для браузеров, одинаковый технический стек с использованием Socket.IO для связи и библиотек для доступа к базам данных браузеров, а также совпадающие методы кражи данных. Однако в этом варианте исследователи заметили отличия, такие как использование порта 5000 вместо типичного 1224 и изменение имени ключа автозагрузки, что может указывать на эволюцию инструмента или A/B-тестирование тактик маскировки. Главной функцией этой стадии была загрузка и исполнение третьего, наиболее сложного компонента.
Финальная стадия представляла собой скомпилированный с помощью PyInstaller бэкдор InvisibleFerret - модульное Python-приложение, упакованное вместе со всем необходимым окружением в исполняемый файл размером около 8 мегабайт. Использование PyInstaller - признак операционной зрелости, так как это устраняет зависимость от наличия установленного Python на целевой системе. Анализ встроенных библиотек позволил восстановить широкий спектр возможностей этого инструмента. Он включал в себя комплексные библиотеки для сетевого взаимодействия (Socket.IO, Tornado), криптографические модули, а также платформенно-специфичные библиотеки для перехвата ввода, такие как "evdev" для Linux. Это указывало на возможность системного кейлоггинга, мониторинга буфера обмена и удалённого выполнения команд.
Полный цикл атаки раскрывает отлаженный механизм работы группировки Famous Chollima, подразделения Lazarus, специализирующегося на разработчиках. Всё начинается с социальной инженерии: оперативники под видом рекрутеров выходят на разработчиков через LinkedIn, проводят многоэтапное "собеседование" и в качестве "тестового задания" предлагают установить вредоносный npm-пакет. После выполнения команды "npm install" запускается цепь событий, ведущая к полной компрометации рабочей станции. Первая стадия обеспечивает начальный доступ и сбор самых ценных данных, вторая фокусируется на целенаправленной краже криптовалюты и учётных данных, а третья устанавливает постоянный, скрытный канал для долгосрочного шпионажа и контроля.
Стратегические цели Северной Кореи в данном контексте многогранны. Прямой кражей криптовалюты режим пытается получить доступ к твёрдой валюте в обход международных санкций. Однако компрометация разработчиков даёт гораздо больше: доступ к исходному коду коммерческого ПО, корпоративным репозиториям и производственным системам. Это служит как целям интеллектуального шпионажа, так и созданию плацдарма для более глубокого проникновения в сети целевых компаний. Защита от подобных угроз требует комплексного подхода, сочетающего технические меры с повышением осведомлённости. Разработчикам, особенно в высокорисковых секторах, необходимо критически оценивать предложения о работе, проверять личность рекрутеров и никогда не запускать непроверенный код из сомнительных источников на своих основных рабочих машинах. Со стороны организаций важно внедрять сегментацию доступа, использовать аппаратные ключи безопасности для критичных операций и воспитывать культуру безопасности, в которой осторожность не воспринимается как помеха продуктивной работе.
Индикаторы компрометации
IPv4 Port Combinations
- 95.164.17.24:1224
- 95.216.37.186:3011
- 95.216.37.186:5000
MD5
- 153e2f27e035252d5f7ace69948e80b2
- 5a2c042b086a475dca4c7dcec62693c1
SHA256
- 1c8c1a693209c310e9089eb2d5713dc00e8d19f335bde34c68f6e30bccfbe781
- 699cd6c292b8a5933dabee63c74a9a3069ed6432c3433ab945ab46fe816d9e2c