Экосистема расширений Visual Studio Code в очередной раз продемонстрировала, что даже официальные маркетплейсы не гарантируют безопасность. Исследователи из компании Koi Security обнаружили два вредоносных расширения VS Code — Bitcoin Black и Codo AI, которые были способны незаметно заражать рабочие станции разработчиков мощным инфостилером, крадущим пароли, cookie, криптовалютные кошельки и данные системы.
Как вредоносные расширения попали в маркетплейс Visual Studio Code
Оба расширения — Bitcoin Black (маскирующееся под тему оформления) и Codo AI (позиционирующееся как ИИ-помощник для написания кода) — публиковались в магазине VS Code под именем разработчика BigBlack. На момент публикации отчета Koi Security, по данным исследователей, Codo AI все еще оставалось доступным и имело менее 30 установок, в то время как у Bitcoin Black значилась всего одна установка.
Низкое количество загрузок не снижает важности инцидента. Для атакующих даже единичный доступ к рабочим станциям разработчиков может стать входной точкой для компрометации репозиториев, цепочек поставок ПО и корпоративных инфраструктур.
Техника атаки: от событий VS Code до скрытых загрузок
Активирование через событие «*» и PowerShell
Расширение Bitcoin Black использовало специальное событие активации VS Code — «*», которое срабатывает практически при любом действии пользователя в редакторе. Это позволило плагину запускаться максимально часто и незаметно. Дополнительно расширение могло выполнять PowerShell-код, что открывало возможность для дальнейшей загрузки и исполнения вредоносной нагрузки.
В ранних версиях злоумышленники применяли PowerShell-скрипт для загрузки зашифрованного архива с полезной нагрузкой. Однако при этом открывалось окно PowerShell, что могло вызвать подозрения у внимательных пользователей. Впоследствии схема была доработана для повышения скрытности.
Переход на bat-скрипт и скрытую загрузку DLL и EXE
В более новых версиях Bitcoin Black логика загрузки была вынесена в bat-скрипт (bat.sh), который вызывал curl для скачивания DLL-библиотеки и исполняемого файла .exe. Весь процесс выполнялся в фоновом режиме, без заметных для пользователя окон, что значительно усложняло визуальное обнаружение атаки.
Codo AI: совмещение легитимного функционала и вредоносного кода
Расширение Codo AI действительно выполняло заявленные функции: помогало писать код, используя популярные ИИ-модели вроде ChatGPT и DeepSeek. Однако вместе с этим оно содержало аналогичный вредоносный компонент, действующий по той же цепочке заражения, что и у Bitcoin Black.
Такое сочетание легитимного функционала и вредоносного поведения — типичная тактика для атак через маркетплейсы: пользователь получает реальную пользу от расширения и меньше склонен подозревать угрозу, в то время как вредоносная часть продолжает работать в фоновом режиме.
DLL hijacking с использованием Lightshot и установка инфостилера
Оба расширения включали в себя легитимный исполняемый файл популярной утилиты для скриншотов Lightshot и вредоносную DLL-библиотеку. Атака опиралась на технику DLL hijacking — подмену загружаемой библиотечной зависимости. При запуске Lightshot загружалась не оригинальная, а вредоносная DLL, которая и разворачивала в системе жертвы инфостилер под именем runtime.exe.
По данным исследования, вредоносная DLL обнаруживалась лишь 29 из 72 антивирусных решений на платформе VirusTotal. Это подчеркивает, что злоумышленники использовали относительно свежий или хорошо обфусцированный образец, который еще не полностью покрыт сигнатурами традиционных средств защиты.
Возможности стилера: пароли, cookie, криптокошельки
После заражения вредонос создавал директорию %APPDATA%\Local\Evelyn, куда сохранял украденные данные. Среди собираемой информации:
— сведения о запущенных процессах;
— содержимое буфера обмена;
— учетные данные Wi‑Fi;
— системная информация;
— скриншоты экрана;
— список установленных программ и активных процессов.
Для захвата браузерных сессий стилер запускал Chrome и Edge в headless-режиме — без графического интерфейса. Из профилей браузеров извлекались сохраненные cookie, что позволяло перехватывать активные сессии и получать доступ к аккаунтам без ввода пароля и 2FA, если они уже были активированы в сессии пользователя.
Отдельным направлением атаки была кража криптовалюты: стилер сканировал систему на наличие кошельков Phantom, Metamask, Exodus и других, извлекая сохраненные секреты, пароли и сид-фразы, если они были доступны в файловой системе или автосохранениях браузера.
Реакция Microsoft и уроки для разработчиков
Представители Microsoft сообщили, что оба вредоносных расширения были удалены с маркетплейса Visual Studio Code. Однако сам факт их появления в официальном магазине подчеркивает растущие риски supply‑chain атак и необходимость более строгой проверки расширений, ориентированных на разработчиков.
Для снижения рисков рекомендуется:
— устанавливать расширения VS Code только от известных и проверенных издателей;
— регулярно проводить аудит установленных плагинов и удалять неиспользуемые;
— отслеживать неожиданные запуски PowerShell, cmd, curl и сторонних .exe из профиля разработчика;
— использовать современные EDR/ XDR-решения с поведенческим анализом, а не полагаться только на сигнатурный антивирус;
— хранить сид-фразы и ключи криптокошельков вне рабочих станций разработчиков, по возможности — на аппаратных кошельках.
Инцидент с Bitcoin Black и Codo AI наглядно показывает, что разработчики остаются одной из самых ценных и уязвимых целей для киберпреступников. Чем больше мощных инструментов и расширений используется в повседневной работе, тем выше требования к цифровой гигиене и осознанному выбору ПО. Регулярное обучение, многоуровневая защита и внимательное отношение к установленным расширениям VS Code становятся ключевыми элементами кибербезопасности в современной среде разработки.