Новая вредоносная кампания EtherHiding нацелена на разработчиков, работающих с Node.js и редакторами кода на его основе. Злоумышленники используют технологию блокчейна для скрытого размещения управляющих команд и полезной нагрузки. Такой подход позволяет обходить классические системы блокировки, которые ориентируются на серверы и доменные имена. Кампания привлекла внимание Канадского центра кибербезопасности, который опубликовал детальный анализ инцидента.
Описание
В ходе анализа рассматривалась атака на частный репозиторий проекта, связанного с искусственным интеллектом. Разработчик заметил неизвестное изменение в конфигурационном файле CSS-фреймворка Tailwind. Злоумышленники дополнили файл скрытым кодом и выровняли его с помощью пробелов, чтобы не выделяться при визуальном осмотре. Это классический приём маскировки, рассчитанный на то, что большинство разработчиков не изучают конфигурацию построчно.
Как показало исследование Cyber Centre, схема EtherHiding состоит из нескольких этапов. Сначала скрытый код запрашивает хеш транзакции в блокчейне Tron или Aptos по заранее заданным адресам кошельков. Затем этот хеш используется для получения зашифрованной полезной нагрузки из сети Binance Smart Chain. Код расшифровывается с помощью статического ключа и выполняется в среде Node.js.
Механизм EtherHiding основан на том, что блокчейн выступает в роли децентрализованного хранилища. Злоумышленники записывают во внешние поля транзакций необходимые данные. Поскольку блокчейн публичен и доступен из любой точки мира, вредоносный код получает устойчивый канал связи. При этом для блокировки трафика недостаточно закрыть один домен или сервер.
Процесс запуска происходит без участия пользователя: достаточно открыть проект или выполнить команду сборки, чтобы Node.js обработал конфигурационный файл. Вредоносный код действует внутри легитимного окружения, поэтому антивирусные программы часто не фиксируют аномалий. Жертва узнаёт о проблеме только по косвенным признакам, например по подозрительным сетевым соединениям или изменениям в файлах.
Вредоносный загрузчик, который применяется на каждом этапе, известен под именем jadesnow. Он забирает данные из блокчейн-транзакций и расшифровывает их с помощью ключей, встроенных в код. Каждая ступень использует новые комбинации кошельков, что затрудняет прослеживание цепочки и её автоматический анализ. После первого запуска вредоносная программа загружает несколько последующих ступеней загрузчика. В конечном итоге на устройстве оказывается троян InvisibleFerret - сложная программа удалённого доступа.
InvisibleFerret внедряется во внутренние компоненты Visual Studio Code и Cursor AI - популярного ответвления этого редактора. В частности, она изменяет модуль, который отвечает за уникальный идентификатор устройства. Это позволяет злоумышленникам отслеживать пользователя и сохранять доступ к системе даже после переустановки. Троян предназначен для скрытой работы в среде Node.js, встроенной в редактор, поэтому он выглядит как легитимный модуль.
После закрепления троян поддерживает постоянную связь с командным сервером. Соединение устанавливается через стандартные запросы, а в случае обрыва повторяется каждые несколько секунд. Злоумышленники могут выполнять на заражённом компьютере широкий набор команд: менять рабочие каталоги, собирать сведения об операционной системе и геолокации, загружать произвольный код.
Отдельно стоит выделить функцию выгрузки данных. Троян умеет рекурсивно обходить директории и передавать содержимое на внешний сервер. При этом файлы отправляются по отдельности, а трафик маскируется под обычную передачу форм. Таким образом, атакующие могут вывести из сети целые репозитории или базы конфигураций, не привлекая внимания.
Вредоносная программа также содержит механизм самозавершения при обнаружении определённого флага в окружении. Кроме того, она пытается развернуть дополнительные инструменты для дальнейших действий. Такая многоступенчатая архитектура характерна для продвинутых кампаний, ориентированных на долгое присутствие в инфраструктуре.
Cyber Centre сопоставил наблюдаемые действия с тактиками и техниками из классификации MITRE ATT&CK. В отчёте перечислены выполнение кода через интерпретатор JavaScript, маскировка вредоносных компонентов, использование веб-протоколов и DNS для управления, а также передача данных через командный сервер. Это подтверждает системный характер атаки.
Для защиты от EtherHiding компаниям следует регулярно обновлять используемые редакторы и компоненты Node.js. Необходимо проверять изменения в конфигурационных файлах, даже если они выглядят незначительными. Рекомендуется внедрить двухфакторную аутентификацию для доступа к кодовым репозиториям и ограничить выполнение сторонних скриптов. Мониторинг сетевых соединений к блокчейн-сервисам также поможет выявить потенциальную угрозу. Дополнительно стоит проводить обучение разработчиков, чтобы они воспринимали конфигурационные файлы как критически важные компоненты.
Тенденция к использованию блокчейна для скрытия вредоносной активности будет укрепляться. EtherHiding показывает, что злоумышленники активно осваивают легитимные технологии, чтобы избежать детектирования. Анализ Cyber Centre даёт защитникам практические ориентиры для выстраивания обороны. Ключевым фактором остаётся бдительность разработчиков и своевременная проверка даже незначительных изменений в коде. Успешное противодействие зависит от координации действий разработчиков и служб безопасности.
Индикаторы компрометации
IPv4
- 136.0.9.8
- 166.88.4.2
- 23.27.202.143
- 23.27.202.27
SHA256
- 7237310e076459d2fce2f531941b5920e451f390a8b8e633787b62b68b1315d5
- 91822e59bd642f8e6f321011d0fb45b8a5f0854547ea898dead5d5af1db3ed9b
- d043f264ff5216fa724cad2d35ba4d895c43e295df72be6d46c07a3a46cfbd62
YARA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | rule jadesnow_obfuscated_downloader { meta: id = "1vzA18HaXi4AzFlgIvijiq" fingerprint = "02701150de12a2a30a570cb0c1147d32b005fe618a6eceb1452e1c1eaba6b27a" version = "1.0" modified = "2025-12-30" status = "released" sharing = "TLP:GREEN" source = "CCCS" author = "reveng@CCCS" description = "Detects the obfuscated downloader appended to legitimate GitHub projects, used by jadesnow" category = "malware" malware_type = "downloader" report = "TA25-0064" hash = "d043f264ff5216fa724cad2d35ba4d895c43e295df72be6d46c07a3a46cfbd62" first_imported = "2025-12-30" strings: $obfuscated_downloader = /\s{200}global\[[\x09\x0A\x0D\x20-\x7E]+function[\x09\x0A\x0D\x20-\x7E]+\.length;[\x09\x0A\x0D\x20-\x7E]+charAt\([\x09\x0A\x0D\x20-\x7E]+\.join/ condition: uint16(0) != 0x5A4D and $obfuscated_downloader } |