События

GlassWorm отключили от управления: ботнет атаковал разработчиков через расширения VS Code, npm и GitHub

Маша Даровская
By Маша Даровская , IT-редактор и автор
GlassWorm отключили от управления: ботнет атаковал разработчиков через расширения VS Code, npm и GitHub
Обложка © Anonhaven

Исследователи CrowdStrike, Google и Shadowserver Foundation отключили инфраструктуру GlassWorm — самораспространяющегося вредоносного червя, который атаковал разработчиков через расширения VS Code, OpenVSX, npm- и Python-пакеты, а затем использовал украденные токены для заражения новых репозиториев и пакетов. Операция прошла 26 мая 2026 года в 14:00 UTC: специалисты одновременно ударили по четырём каналам управления, без которых заражённые машины больше не могут получать новые команды и полезные нагрузки.

GlassWorm был не обычным инфостилером, а полноценной атакой на цепочку поставки ПО. Его цель — рабочие станции разработчиков, у которых часто есть доступ к GitHub, npm, OpenVSX, облачным аккаунтам, CI/CD и внутренним репозиториям. Компрометация одной такой машины могла дать злоумышленникам путь к десяткам проектов и зависимостей.

CrowdStrike описывает GlassWorm как глобальную угрозу для open source-экосистемы. Вредоносные расширения маскировались под привычные инструменты для редакторов кода: форматтеры, трекеры времени, темы оформления и вспомогательные плагины. Под удар попадали пользователи VS Code и совместимых редакторов: Cursor, Windsurf, VSCodium, Positron и других.

Дальше схема работала по цепочке. Расширение или пакет выполнял скрытый код, забирал токены GitHub, npm, OpenVSX, Git-учётные данные и данные криптокошельков. Эти же токены применялись для новой волны заражений: вредоносный код попадал в другие расширения, пакеты и репозитории. CrowdStrike пишет о более чем 300 отравленных GitHub-репозиториях, куда код заливали через украденные учётные данные разработчиков.

Операторы GlassWorm использовали четыре канала. Сочетание блокчейна, пиринговых сетей и легитимных веб-сервисов в качестве уровней защиты было разработано для обеспечения устойчивости к блокировкам:

Solana — адреса серверов управления прятались в memo-полях блокчейн-транзакций. Такие записи нельзя просто удалить как обычный домен или сервер.

BitTorrent DHT — распределённая таблица BitTorrent использовалась для получения конфигурации. Это одноранговая сеть без единой точки отказа.

Google Calendar — заголовки событий служили «тайниками» для Base64-строк с путями к управляющей инфраструктуре.

Обычные VPS-серверы — финальная точка для доставки полезной нагрузки.

Отключение одного канала почти ничего бы не дало: заражённые клиенты могли переключиться на другой. Поэтому участники операции синхронно перекрыли все четыре механизма. После этого заражённые машины начали обращаться к безопасному IP-адресу 164.92.88[.]210, который контролирует CrowdStrike. Этот индикатор рекомендован для поиска заражений в сетевых журналах и телеметрии конечных устройств.

rule CrowdStrike_GlasswormRat_01 : glassworm glasswormrat 
{
    meta:
        copyright = "(c) 2026 CrowdStrike Inc."
        description = "Characteristic strings in Glassworm's RAT script"
        last_modified = "2026-03-23"
        malware_family = "GlasswormRAT"
    strings:
        $download = "DownloadManager" ascii
        $socks = "start_socks" ascii
        $nodejs = "https://nodejs.org/download/release" ascii
        $dht = "bootstrap" ascii
    condition:
        all of them
}

rule CrowdStrike_GlasswormDownloader_01 : glassworm 
{
    meta:
        copyright = "(c) 2026 CrowdStrike Inc."
        description = "Characteristic strings in the obfuscated python installer Glassworm variant"
        last_modified = "2026-03-13"
        malware_family = "Glassworm"
    strings:
        $zlib = "__import__('zlib')" ascii
        $decomp = "decompress(" ascii
        $lambda = "lambda" ascii
        $exec = /exec\(compile\(.{5,20}, '<>', 'exec'\)\)/
    condition:
        all of them and filesize < 10KB
}

Первый заметный разбор GlassWorm опубликовала Koi Security в октябре 2025 года. Исследователи описали атаку через OpenVSX Marketplace и Microsoft VS Code Marketplace, где вредоносный код скрывался с помощью невидимых Unicode-символов. В редакторе такие вставки выглядели как пустое место, но при выполнении превращались в рабочий загрузчик.

Koi Security тогда связала кампанию с заражёнными версиями расширений OpenVSX и одним расширением в Microsoft VS Code Marketplace. В отчете перечислены затронутые пакеты, управляющие адреса, Solana-кошелёк и резервный канал через Google Calendar. На тот момент исследователи оценивали охват заражённых установок в 35 800, но подчеркивали, что реальное число могло быть выше из-за механизма самораспространения.

GlassWorm крал токены npm, GitHub, OpenVSX и Git, искал расширения криптокошельков и собирал данные для дальнейшего распространения. Отдельный модуль ZOMBI превращал машину разработчика в узел инфраструктуры злоумышленников: SOCKS-прокси, скрытый удалённый рабочий стол, одноранговый канал через WebRTC и механизм получения команд через BitTorrent DHT.

Для компании это особенно неприятный сценарий. Рабочая станция разработчика обычно находится внутри корпоративной сети, имеет доступ к внутренним сервисам и репозиториям, а часть сессий уже авторизована в браузере или CLI-инструментах. В такой модели зараженный ноутбук становится точкой входа, прокси-сервером и каналом утечки одновременно.

GlassWorm показал слабое место цепочки поставки ПО: постфактумное обнаружение почти не спасает. Вредоносные обновления зависимостей устанавливаются за секунды, а проблему часто замечают уже после кражи токенов или заражения репозиториев.

Атакующие использовали npm, PyPI, OpenVSX и GitHub — экосистемы с миллионами пакетов и ограниченной встроенной защитой. Через них GlassWorm быстро попадал на машины разработчиков и сохранял доступ к ним.

Есть новость? Станьте автором.

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