Корейские хакеры используют вредоносные репозитории GitHub и блокчейн для распространения многофункционального трояна DEV#POPPER

information security

В отрасли энергетики, коммунальных услуг и переработки отходов зафиксирована сложная целевая атака, связанная с северокорейскими государственными хакерами. Её главным инструментом стал новый удалённый троян, который не только похищает криптовалюту, но и крадёт исходный код, учётные данные разработчиков и токены доступа к облачной инфраструктуре. Этот инцидент демонстрирует эволюцию тактики APT-групп, которые всё чаще маскируют вредоносное ПО под легитимные проекты с открытым кодом.

Описание

Специалисты Threat Response Unit (TRU) компании eSentire в феврале 2026 года обнаружили на компьютере одного из клиентов подозрительную активность, которую с высокой степенью уверенности атрибутировали северокорейской APT-группе. Основанием послужили совпадения тактик, техник и процедур (TTPs) с ранее известными кампаниями, описанными, например, в отчёте Ransom-ISAC. Угроза, получившая название DEV#POPPER, изначально показалась инструментом для кражи криптовалюты, однако дальнейший анализ выявил её более широкие цели, включающие компрометацию цепочки поставок программного обеспечения.

Схема цепочки атак

Инцидент начался, когда сотрудник компании-жертвы клонировал с GitHub репозиторий под названием «ShoeVista», замаскированный под платформу электронной коммерции. Запуск фронтенд-приложения активировал скрытый вредоносный скрипт, который через серию промежуточных стадий загружал основную полезную нагрузку. Примечательно, что исходный код самого трояна DEV#POPPER был извлечён не с традиционного командного сервера, а из данных транзакций в блокчейнах Tron и Ethereum, что усложняет его блокировку и анализ. Финальная стадия атаки также разворачивала OmniStealer - похитителя информации на Python, нацеленного на пароли, данные браузеров и кошельки криптовалют.

Атака демонстрирует кросс-платформенность: хотя большинство жертв используют macOS, вредоносное ПО также поддерживает Windows и Linux. Это расширяет потенциальный круг целей и усложняет защиту гетерогенных ИТ-сред. Технический анализ показал высокую степень обфускации кода на всех этапах. Первые стадии, написанные на JavaScript, использовали сложные методы запутывания, включая шифрование строк алгоритмом RC4, их хранение в перемешанных массивах и множество косвенных вызовов функций для сокрытия логики.

Для противодействия анализу DEV#POPPER применяет несколько техник. Во-первых, код вызывает ошибки в отладчике Node.js в своём исходном минифицированном виде. Во-вторых, реализована проверка целостности с помощью регулярных выражений: если код был отформатирован (beautified), запускается бесконечный цикл. В-третьих, используется регулярное выражение, вызывающее катастрофический backtracking, что «зависает» отладчик. Кроме того, вредоносное ПО проверяет окружение на наличие признаков анализа: имена хостов, связанные с облачными провайдерами (AWS, Azure, GCP), системами CI/CD (GitHub Actions, Jenkins), контейнерами (Docker) или песочницами для анализа malware. При обнаружении таких признаков выполнение прекращается.

После успешного запуска троянец устанавливает постоянное соединение с командным сервером с помощью библиотеки socket.io-client и начинает выполнять команды. Среди них - сбор системной информации, геолокации по IP, содержимого буфера обмена, загрузка файлов и директорий на сервер злоумышленников, а также выполнение произвольного JavaScript-кода, отправляемого с C2. Для обеспечения устойчивости в системе DEV#POPPER внедряет свой код в файлы популярных приложений, использующих Node.js, таких как Visual Studio Code, GitHub Desktop и Discord. При запуске этих легитимных программ активируется и скрытая вредоносная функциональность.

Параллельно запускаемый OmniStealer проводит масштабный сбор конфиденциальных данных. Его цели обширны: пароли, история, cookies и данные крипто-расширений из браузеров (Chrome, Edge, Firefox); файлы настольных кошельков для Bitcoin, Ethereum, Solana и других криптовалют; учётные данные Git; пароли из диспетчера учётных данных Windows, связки ключей macOS и GNOME Keyring Linux; а также файлы облачных хранилищ (Dropbox, OneDrive, iCloud). Все собранные данные архивируются в защищённый ZIP-архив и отправляются на командный сервер по HTTP или, в качестве запасного варианта, через Telegram.

Для помощи сообществу специалисты eSentire разработали и открыли инструмент «DEV#STOPPER.js» для автоматической деобфускации промежуточных стадий и финальных нагрузок, подобных DEV#POPPER. Этот скрипт, работающий на основе парсера Babel, позволяет восстановить исходную логику кода, облегчая его анализ и понимание механики атаки.

Данный инцидент служит серьёзным напоминанием об угрозах, связанных с цепочкой поставок программного обеспечения. Атака началась с клонирования репозитория, который на первый взгляд выглядел безобидным проектом. Организациям, особенно в критически важных отраслях, необходимо ужесточить политики контроля за использованием открытого кода, внедрять решения для анализа безопасности программных компонентов (SCA) и обучать разработчиков основам кибергигиены. Для индивидуальных разработчиков рекомендации включают тщательную проверку репозиториев перед клонированием, использование двухфакторной аутентификации на GitHub и никогда - хранение чувствительных данных, таких как API-ключи или токены доступа, в переменных окружения или конфигурационных файлах проектов. Борьба с такими сложными угрозами требует сочетания технических средств, постоянного мониторинга и повышения осведомлённости всех участников процесса разработки.

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

IPv4

  • 136.0.9.8
  • 177.243.216.132
  • 23.27.120.142
  • 23.27.20.143
  • 23.27.202.27
  • 45.249.90.214

SHA256

  • 207b5feb80c67f02023a07c7271b48c1d8b07ea5b59d76f98c1b0b357fbabfb1
  • 2b2e56fcf3105b7d84ee90b1338775830b8728993202fec0c3aac68f891a3fde
  • 4ec542049554f21aeb25a6bc3b3b482bb8027ea7e7e07626a2ee9f3e8c214841
  • 55b53de91c7442873d6670036bf5f8fc3292fe048a45707db1b8ddc3127dcd3c
  • 5877c397a6c8e7bac9606ec41bfed1ac549eb0a2769de19ce82ef588d7ff31d0
  • 70b7877644ae04860be5a5eb32e8459fedd0d1c9eef79a0b5173660e2ae4b888
  • d0a60ec67bce77c181f48e01f6f9f06ea47f51028ee391791dd334f162c7d24a
  • e0a56a3a7f0d41cdf34b217b3ea51afd6838384e64dbb62e8a89831375814fb2
  • fe90dcbbdcb16ba979ce73df5881d568126a77d0943ab496bac0eb3e6ba9644f

YARA

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