Исследователи Koi Security заметили масштабную атак на цепочку поставок в OpenVSX и Visual Studio Code Marketplace. Хакеры распространяют самореплицирующуюся малварь под названием GlassWorm, которую уже установили около 35 800 раз.
Специалисты обнаружили как минимум одиннадцать зараженных GlassWorm расширений в OpenVSX и одно в Visual Studio Code Marketplace:
• codejoy.codejoy-vscode-extension@1.8.3 и 1.8.4;
• l-igh-t.vscode-theme-seti-folder@1.2.3;
• kleinesfilmroellchen.serenity-dsl-syntaxhighlight@0.3.2;
• JScearcy.rust-doc-viewer@4.2.1;
• SIRILMP.dark-theme-sm@3.11.4;
• CodeInKlingon.git-worktree-menu@1.0.9 и 1.0.91;
• ginfuru.better-nunjucks@0.3.2;
• ellacrity.recoil@0.7.4;
• grrrck.positron-plus-1-e@0.0.71;
• jeronimoekerdt.color-picker-universal@2.8.91;
• srcery-colors.srcery-colors@0.3.9;
• cline-ai-main.cline-ai-agent@3.1.3 (Microsoft VS Code).
Малварь скрывает вредоносный код с помощью невидимых Unicode-символов. Кроме того, GlassWorm обладает функциональностью червя и умеет распространяться самостоятельно: используя украденные учетные данные жертв, он заражает другие расширения, к которым у пострадавших есть доступ.
Атакующие используют блокчейн Solana для управления своим ботнетом, а в качестве резервного канала связи выступает Google Calendar.
После установки малварь стремится похитить учетные данные от аккаунтов GitHub, npm и OpenVSX, а также данные криптокошельков из 49 различных расширений. Помимо этого, GlassWorm разворачивает SOCKS-прокси для маршрутизации вредоносного трафика через машину жертвы и устанавливает VNC-клиенты (HVNC) для скрытого удаленного доступа.
В коде червя присутствует адрес кошелька с транзакциями в блокчейне Solana, которые содержат base64-закодированные ссылки на пейлоады следующей стадии атаки. Использование блокчейна для сокрытия пейлоадов набирает популярность среди преступников из-за множества операционных преимуществ: устойчивость к блокировкам, анонимность, низкая стоимость и гибкость на случай обновлений.
По данным исследователей, финальный пейлоад этой атаки называется ZOMBI и представляет собой «максимально обфусцированный JavaScript-код», превращающий зараженные системы в части ботнета.
Резервный метод загрузки полезных нагрузок работает через название событий в Google Calendar, которые содержат base64-закодированный URL. Третий способ доставки использует прямое подключение к подконтрольному атакующим IP-адресу (217.69.3[.]218).
Для обеспечения дополнительной маскировки и устойчивости малварь задействует Distributed Hash Table (DHT) BitTorrent и децентрализованное распределение команд.
«Эта ситуация особенно серьезна из-за того, что расширения VS Code обновляются автоматически. Когда CodeJoy выпустил версию 1.8.3 с невидимой малварью, все пользователи с установленным CodeJoy автоматически получили зараженную версию. Никакого взаимодействия с пользователем. Никаких предупреждений. Тихое автоматическое заражение», — отмечают исследователи.
На момент публикации отчета Koi Security как минимум четыре скомпрометированных расширения все еще были доступны для скачивания в OpenVSX, а Microsoft удалила вредоносное расширение из своего маркетплейса после предупреждения исследователей. Также отмечается, что разработчики vscode-theme-seti-folder и git-worktree-menu обновили свои расширения и удалили вредоносный код.
Стоит отметить, что в прошлом месяце похожая атака червя Shai-Hulud затронула экосистему npm, скомпрометировав 187 пакетов. Малварь использовала сканер TruffleHog для поиска секретов, паролей и ключей.
В Koi Security называют GlassWorm «одной из наиболее изощренных атак на цепочку поставок» и первым задокументированным случаем атаки червя на VS Code. Специалисты предупреждают, что управляющие серверы и серверы с пейлоадами GlassWorm по-прежнему активны, и кампания может продолжиться.