Исследователи Koi Security задокументировали крупную атаку на цепочку поставок в экосистеме расширений Visual Studio Code: вредоносная программа GlassWorm была внедрена в репозитории OpenVSX и официальный Visual Studio Code Marketplace. По оценке специалистов, заражённые пакеты были установлены не менее 35 800 раз, что делает инцидент значимым для разработчиков и команд безопасности по всему миру.
Что произошло: supply chain-атакa на расширения VS Code
GlassWorm — самораспространяющаяся малварь, которая маскирует вредоносный код с помощью невидимых Unicode-символов и распространяется, используя похищенные учётные данные разработчиков. Получив доступ к аккаунтам жертв, злоумышленники публикуют заражённые версии расширений, к которым имеют права, тем самым незаметно заражая новые цели.
Особую опасность повышает автоматическое обновление расширений VS Code. Как отмечают исследователи, когда один из популярных пакетов выпустил версию с внедрённым кодом, пользователи получили её в фоне без каких-либо предупреждений — фактически это «тихое, автоматическое заражение».
Кого затронуло: список заражённых расширений
По данным Koi Security, обнаружено не менее 11 скомпрометированных пакетов в OpenVSX и один в Visual Studio Code Marketplace:
- [email protected] и 1.8.4
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected] и 1.0.91
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected] (Microsoft VS Code Marketplace)
На момент публикации отчёта исследователей как минимум четыре вредоносных пакета всё ещё были доступны в OpenVSX. Microsoft оперативно удалила скомпрометированное расширение из своего маркетплейса. Разработчики vscode-theme-seti-folder и git-worktree-menu выпустили обновления, удалив вредоносный код.
Как работает GlassWorm: техники и инфраструктура
После установки стек GlassWorm нацелен на кражу токенов и паролей для GitHub, npm и OpenVSX, а также на эксфильтрацию данных криптокошельков из 49 различных расширений. Для скрытого присутствия и монетизации оператор разворачивает на машине жертвы SOCKS-прокси и устанавливает HVNC (скрытый VNC) для удалённого доступа.
Командно-контрольная инфраструктура организована в несколько слоёв. Основной канал — блокчейн Solana: в транзакциях на адресе, фигурирующем в коде червя, размещаются base64-ссылки на следующие стадии атаки. Резервный канал — Google Calendar, где в названиях событий спрятаны base64-URL. Третий метод загрузки — прямое подключение к IP 217.69.3[.]218. Для маскировки и устойчивости используется BitTorrent DHT и децентрализованная доставка команд.
Финальный пейлоад, обозначенный как ZOMBI, представляет собой сильно обфусцированный JavaScript, превращающий заражённые хосты в узлы ботнета.
Индикаторы и риски для разработчиков
Ключевой вектор — перераспределение доверия в цепочке поставок. Похищенные токены публикации позволяют злоумышленникам выпускать обновления от имени легитимных авторов. Техника сокрытия кода с помощью невидимых символов (например, нулевой ширины) усложняет ревью, а автообновления расширений минимизируют шансы на раннее обнаружение.
Реакция платформ и статус кампании
Koi Security называет GlassWorm одной из наиболее изощрённых атак на цепочку поставок и первым задокументированным случаем червя, нацеленного на