Группа хакеров, связанная с КНДР, продолжает совершенствовать свои инструменты и тактики, представляя угрозу для разработчиков и компаний, работающих в сфере высоких технологий. Активность кластера, известного как WaterPlum, демонстрирует опасный тренд: злоумышленники всё чаще используют легитные среды разработки и облачные платформы для скрытного внедрения вредоносного кода. Недавно обнаруженный модульный вредонос, получивший название StoatWaffle, реализован на Node.js и сочетает в себе функции похитителя данных и удалённого доступа, что позволяет атакующим проводить комплексные операции по сбору информации. Этот случай подчёркивает необходимость усиления мер безопасности при работе с открытыми репозиториями и сторонними проектами.
Описание
Группировка WaterPlum, которую аналитики связывают с Северной Кореей, известна своей кампанией Contagious Interview. Внутри неё выделяются несколько кластеров, и активность одного из них, Team 8 (также известного как Moralis или Modilus), привлекла особое внимание специалистов. Если ранее эта команда преимущественно использовала вредонос OtterCookie, то примерно с декабря 2025 года в её арсенале появился новый инструмент - StoatWaffle. Последний анализ демонстрирует изощрённый механизм атаки, где в качестве приманки выступает проект, связанный с блокчейном.
Атака начинается с репозитория, содержащего скрытую угрозу. В его структуре находится каталог ".vscode" с файлом "tasks.json". Когда разработчик открывает такой репозиторий в редакторе VS Code и доверяет ему, редактор автоматически читает этот конфигурационный файл. Ключевая опасность кроется в параметре "runOn" внутри "runOptions". В вредоносном репозитории ему присвоено значение "folderOpen", что означает автоматический запуск определённой задачи сразу после открытия папки в VS Code. Эта задача сконфигурирована для загрузки данных с веб-приложения, размещённого на облачной платформе Vercel, независимо от операционной системы жертвы. Хотя основная цель - системы Windows, механизм работает схожим образом и на других платформах.
Загруженные данные исполняются через "cmd.exe". Первоначальная полезная нагрузка представляет собой простой загрузчик, который скачивает и запускает последующий пакетный файл "vscode-bootstrap.cmd". Этот скрипт проверяет наличие установленной среды Node.js в системе и при её отсутствии загружает и инсталлирует её с официального сайта. Далее он загружает файлы "env.npl" и "package.json", после чего запускает "env.npl" с помощью Node.js. Именно этот файл является начальным загрузчиком StoatWaffle. Он начинает опрашивать командный сервер (C2), соединяясь с эндпоинтом "/api/errorMessage" каждые 5 секунд. Если сервер возвращает статус ошибки, содержащееся в сообщении код выполняется как код Node.js.
Как сообщают аналитики, примерно через пять минут после начала опроса загрузчик получает с сервера JSON-данные, содержащие код второго этапа загрузки. Этот второй загрузчик функционирует по аналогичной схеме, но общается с другим эндпоинтом C2 - "/api/handleErrors". Он также регулярно запрашивает сервер и выполняет полученный код. В ходе наблюдений было установлено, что сразу после запуска второго загрузчика происходила загрузка и исполнение двух основных модулей StoatWaffle: похитителя данных (Stealer) и модуля удалённого доступа.
Модуль похитителя данных предназначен для кражи учётных данных, хранящихся в веб-браузерах, а также информации определённых расширений. Для браузеров на базе Chromium и Firefox он дополнительно собирает данные установленных расширений, проверяя их названия на наличие заданных ключевых слов. Если жертва использует macOS, в сферу кражи попадает и база данных Keychain. Все похищенные файлы предварительно копируются во временный каталог со случайным именем, а затем загружаются на сервер атакующих через эндпоинт "/upload". Помимо этого, модуль проводит инвентаризацию установленного на хосте программного обеспечения и отправляет отчёт на "/uploadsecond". Интересной особенностью является проверка среды выполнения: если она оказывается подсистемой Windows для Linux (WSL), модуль получает доступ к профилю пользователя Windows и конвертирует путь в Linux-формат с помощью утилиты "wslpath", что позволяет атакующему из подконтрольного Node.js в WSL обращаться к данным основной системы Windows.
Модуль удалённого доступа обеспечивает злоумышленникам постоянное присутствие в системе. Он поддерживает регулярную связь с C2, получая команды через "/api/hsocketNext" и возвращая результаты их выполнения на "/api/hsocketResult". Реализованный функционал позволяет выполнять базовые операции по управлению файловой системой, сбору информации о системе и сети, а также по запуску произвольных процессов. Появление StoatWaffle демонстрирует, что группировка WaterPlum не только активно разрабатывает новые вредоносные программы, но и постоянно обновляет существующие, адаптируясь к современным средам разработки. Использование Node.js делает вредонос кроссплатформенным, а тактика злоупотребления доверием к проектам в VS Code создаёт новые риски для сообщества разработчиков.
В свете этого инцидента специалистам по информационной безопасности в компаниях, где ведётся разработка, необходимо пересмотреть политики работы с внешними репозиториями. Ключевыми мерами защиты могут стать обязательная проверка содержимого файлов конфигурации IDE (таких как "tasks.json") перед доверием к проекту, ограничение автоматического выполнения задач, а также сегментация сетевого доступа для сред разработки. Мониторинг неожиданных исходящих соединений с рабочих станций разработчиков на облачные платформы вроде Vercel также может помочь в раннем обнаружении подобных атак. Постоянная эволюция инструментария таких группировок, как WaterPlum, требует столь же динамичного подхода к защите, основанного на глубоком понимании как их тактик, так и уязвимостей в рабочих процессах современных IT-команд.
Индикаторы компрометации
IPv4
- 147.124.202.208
- 163.245.194.216
- 185.163.125.196
- 66.235.168.136
- 87.236.177.9
Связанные индикаторы
- Уязвимость в экосистеме разработчиков: фишинговые репозитории Next.js ведут к удалённому выполнению кода
- Новая угроза для разработчиков: фишинговые предложения работы в LinkedIn доставляют вредоносный RAT через GitHub и смарт-контракты Binance Smart Chain
- Злоумышленники атакуют разработчиков Web3 через поддельные репозитории GitHub: новая кампания с усовершенствованными методами сокрытия
- Киберпреступники внедряют блокчейн для распространения вредоносного ПО, маскируясь под легальные компании
- Раскрыта масштабная кампания по краже данных разработчиков через фиктивные собеседования
- Злоумышленники расширяют злоупотребление Microsoft Visual Studio Code для целевых атак на macOS