GLASSWORM.WASM атакует Open VSX через WebAssembly и Solana C2

Кампания GLASSWORM.WASM использует вредоносные расширения для Open VSX. Активность зафиксирована с 23 мая по 12 июня 2026 года. По меньшей мере семь расширений применяли одноразовые или имитированные пространства имен издателей, а злоумышленники быстро меняли содержимое и сборки, чтобы затруднить обнаружение.

Быстрая смена расширений и сборок

Среди выявленных пространств имен были exargd.vsblack@0.0.1, noellee-doc.flint-debug@0.1.1, а также несколько версий со строкой qizhao.element-vue-snippets-2.0.2.

В течение девяти часов кампания сгенерировала по меньшей мере шесть хешей содержимого. Такая частота изменений указывает на быструю итерацию пространств имен и сборок, направленную на уклонение от обнаружения.

Проанализированный образец WebAssembly имеет SHA-256 2417df8fdc0f94e22a850892e3f6f8bc7122a079073b5ea725b3b0f2076357d8.

Модуль WebAssembly получает доступ к возможностям хоста через JavaScript

Полезная нагрузка представляет собой модуль js/wasm, скомпилированный с помощью TinyGo. Он содержит 469 функций, 17 экспортов, 45 сегментов данных и 17 импортов.

В модуле нет прямых импортов для работы с сетью, файловой системой или процессами. Вместо этого он использует мост TinyGo syscall/js и встроенную JavaScript-обертку на основе wasm_exec.js. Такой подход позволяет обращаться к возможностям хост-системы через JavaScript.

Через этот мост модуль способен:

  • вызывать операции fetch, похожие на браузерные;
  • проверять значение process.platform;
  • выполнять команды через Node.js API, включая require('child_process').execSync.

Значимые строки в бинарном файле зашифрованы. К ним относятся конечные точки Solana, идентификаторы кошельков, имена команд и ссылки на PowerShell. Бинарный файл также содержит константы и метаданные, связанные с ChaCha20 и Salsa20. Они используются для восстановления или обработки этих значений.

Управление через транзакции Solana

Для command-and-control загрузчик обращается к конечной точке Solana JSON-RPC api.mainnet.solana.com. Сначала он использует метод getSignaturesForAddress, затем выполняет пагинацию с помощью параметра before и извлекает транзакции через getTransaction с кодировкой jsonParsed.

В инструкциях транзакций загрузчик ищет идентификаторы программы SPL Memo:

  • MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr;
  • Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFM.

Значения Memo с префиксом 9 удаляются. Полученная строка используется как текущее имя хоста C2. Для поиска данных применяется фиксированный якорь кошелька 6ExrZayPZzMMSnszc42cH81DpuKT8FhCX9H6Sesn6rpz.

Безфайловая загрузка команд

После разрешения имени хоста загрузчик выбирает команду извлечения с учетом операционной системы. Затем он запускает безфайловую схему загрузки, аналогичную curl | bash в системах семейства Unix и irm | iex в Windows.

Признаки, полезные для обнаружения

Для выявления GLASSWORM.WASM можно использовать несколько групп признаков:

  • импорты и экспорты, специфичные для TinyGo;
  • константа ChaCha20;
  • метаданные отражения RPC Solana;
  • идентификаторы SPL Memo;
  • подозрительная активность дочерних процессов Node, исходящая от расширений.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии: