В июне 2026 года маркетплейс расширений Open VSX подвергся серии атак: за сутки злоумышленники опубликовали 26 сборок вредоносного расширения под видом шаблонного "Hello World". Все они имели одинаковое название, версию 0.0.1 и принадлежали одному издателю, однако способ скрытия вредоносной команды менялся от сборки к сборке.
Описание
Кампания, зафиксированная на площадке Open VSX, началась 14 июня и продолжалась менее 24 часов. Новые версии файлов для установки появлялись каждые несколько минут. Большинство расширений выглядели как безобидная заготовка для разработчиков: одна команда приветствия и стандартный код. Разница заключалась в том, куда авторы спрятали исполняемый код. Один из вариантов скрывал команду загрузчика прямо в пикселях иконки расширения - изображение отображалось корректно, но в наименее значимых битах цветовых каналов содержалась зашифрованная строка для запуска PowerShell.
Анализ показал, что во всех случаях финальное действие было одинаковым: из расширения запускался скрытый процесс PowerShell, который пытался загрузить и выполнить скрипт с внешнего адреса. При этом использованный сетевой адрес был заглушкой, что указывает на техническую проверку возможностей, а не на полноценную атаку. Вероятно, злоумышленники проверяли, какой способ сокрытия сможет незаметно пройти проверку модерации.
Один из самых примечательных вариантов использовал стеганографию в файле иконки. Изображение оставалось нормальным для просмотра, но внутри него, в младших битах цвета, было записано зашифрованное сообщение. При активации расширение считывало байты иконки как поток данных, извлекало скрытые биты, восстанавливало команду и передавало её в PowerShell. После выполнения команда инструктировала систему загрузить внешний скрипт. Примечательно, что вредоносный код не оставлял явных строк в исходном коде - всё содержимое хранилось в графическом файле и расшифровывалось только в момент запуска.
Другие сборки прятали команды в базах данных, встроенных веб-модулях, нативных бинарных дополнениях и даже в комментариях к картам исходного кода. Некоторые варианты комбинировали несколько методов, например встраивали движок базы данных и скрытый код внутри файла данных. В ряде случаев использовались скриптовые файлы, выполняемые через виртуальные машины, или специально сформированные веб-сборки. Все методы объединяло одно: извлечённая команда передавалась в PowerShell, запускаемый со скрытым окном и в обход политик безопасности.
Особый интерес представляет то, что все 26 сборок заканчивались одинаково: скрытый процесс PowerShell пытался выполнить команду загрузки файла с placeholder-адреса. Использование заглушки вместо реального вредоносного сервера говорит о том, что текущая волна является испытанием. Злоумышленники отрабатывали техники сокрытия, проверяя, какие из них смогут обойти автоматические фильтры и привлечь меньше внимания аналитиков.
С точки зрения защиты, ключевая сложность в том, что большинство сборок получили низкие оценки риска при первичной автоматической проверке. Скрытый код находился не в стандартных местах, и ранние проверки, ориентированные на поиск вредоносных строк, не выявляли угрозы. При этом новое расширение активировалось при каждом запуске редактора кода, и если бы заглушка была заменена на реальный адрес, все установленные копии получили бы вредоносное обновление немедленно.
Для обычных пользователей и администраторов практический вывод сводится к тому, что доверять расширениям только на основе их внешнего вида небезопасно. Расширение, которое при запуске инициирует скрытые процессы на выполнение внешних команд, должно рассматриваться как вредоносное независимо от того, использует ли оно иконку, базу данных или другие файлы для хранения команд. Особое внимание стоит уделять расширениям, которые запрашивают активацию при каждом запуске рабочей среды и одновременно порождают скрытые фоновые процессы.
Для компаний, поддерживающих маркетплейсы, этот случай показывает необходимость смещения фокуса с поиска конкретных методов сокрытия на поведенческий анализ: решающее значение имеет не то, где хранится вредоносная команда, а то, какие действия выполняет расширение после её извлечения. Запуск скрытого PowerShell из безобидного с виду модуля - это чёткий поведенческий индикатор угрозы, который сложно замаскировать.
Индикаторы компрометации
SHA256
- 418bdd68b3b7c01ac9b34241a28a55059a7016994f8305045b69c457ce5c6ffb
- 50ff7437f3a5a4d5488640cf814586dddc8b26d93af21e8c9a1da8f26172ca35
- 972e56035b5e36888a183fed235a19ef48c1e36f0da22c68d8d1690c77a23e46
- 9b77d7e5ee495de0f9bf8e816400680b30cd68012dec045f193642c13295cb54
- d7d3724bfd122f41f6a62be38f88372a5b63da72f7ec81b81472c3fecb2ee07e
- ef985e5dae327ae798046270077685c37669e3fefd0b8b62b2294571cfd6ae8d
- fb5483c12d463c530940161965e63823ebe944515c2d903c050adf1a8a833d27