Инцидент с расширением fast-draft для редактора VS Code, имеющим более 26 тысяч установок, демонстрирует новую тактику злоумышленников, нацеленную на экосистему разработки. Вместо того чтобы полностью подменять легитимный проект, злоумышленники, вероятно, получив доступ к учётным данным издателя, внедрили в цепочку поставки несколько отдельных вредоносных версий, чередующихся с чистыми сборками. Такая тактика усложняет обнаружение угрозы как автоматическими системами, так и пользователями, ожидающими обновлений с исправлениями ошибок.
Описание
Исследователи обнаружили, что в определённых версиях расширения (0.10.89, 0.10.105, 0.10.106 и 0.10.112) был внедрён скрытый загрузчик. При активации он обращался к raw.githubusercontent.com и исполнял скачанный скрипт напрямую в оболочке операционной системы. При этом версии 0.10.88, 0.10.111 и последние, включая 0.10.135, не содержали этого вредоносного кода. Такой прерывистый паттерн, когда вредоносные сборки появляются и исчезают, более характерен для компрометации учётной записи издателя или кражи токена публикации, чем для сознательных действий самого разработчика. Подробный разбор ситуации, включая сравнение чистых и заражённых версий, был опубликован в отчёте экспертов по безопасности.
Механика атаки была многоступенчатой и высокоэффективной. Первоначальный загрузчик из расширения вытягивал платформо-зависимые скрипты, которые, в свою очередь, скачивали и распаковывали ZIP-архив со второй стадией вредоносной программы. Эта вторая стадия представляла собой целый фреймворк, который запускал четыре параллельных модуля, работающих в фоне как независимые процессы. Полезная нагрузка была тщательно обфусцирована, а для сокрытия сбоев использовался перехват необработанных исключений. Инфраструктура управления и контроля (C2) атаки базировалась на IP-адресе 195[.]201[.]104[.]53.
Первый модуль являлся полноценным трояном удалённого доступа (RAT). Используя библиотеку Socket.IO, он устанавливал соединение с сервером злоумышленника и предоставлял возможности удалённого управления компьютером жертвы. Это включало в себя контроль мыши и клавиатуры, возможность делать скриншоты экрана, читать и изменять содержимое буфера обмена, а также собирать системную информацию. Второй модуль был скиммером браузеров и криптокошельков. Он целенаправленно искал и похищал данные для авторизации, историю просмотров и локальные базы данных расширений для хранения криптовалют, включая MetaMask, Trust Wallet и Coinbase Wallet. Похищенные данные автоматически выгружались на сервер атакующего.
Третий модуль занимался целенаправленной эксфильтрацией файлов. Он рекурсивно сканировал домашний каталог пользователя в поисках документов, исходного кода, файлов конфигурации и секретов, таких как приватные SSH-ключи или переменные окружения. Примечательно, что логика модуля исключала из поиска служебные директории вроде "node_modules" или ".git", но при этом целенаправленно искала папки, связанные с современными средами разработки и инструментами для работы с блокчейном, что указывает на высокую степень специализации атаки на разработчиков. Четвёртый модуль непрерывно мониторил буфер обмена, отправляя его содержимое на C2-сервер, что позволяло перехватывать пароли, API-ключи и сид-фразы криптокошельков, которые пользователь копировал, но не сохранял на диск.
Что делает этот инцидент особенно показательным, так это наличие чистых версий в истории выпусков. Если бы автор расширения сознательно распространял вредоносный код, логично было бы ожидать, что все версии после определённого момента будут заражены. Однако чередование чистых и вредоносных сборок, а также отсутствие реакции на публичное сообщение о проблеме, оставленное на GitHub 12 марта 2026 года, указывает на внешнее вмешательство. Для специалистов по безопасности данный кейс служит важным напоминанием о рисках, связанных с цепочкой поставки программного обеспечения (software supply chain). Даже доверенные репозитории и маркетплейсы расширений не гарантируют безопасность, особенно если учётные данные издателя скомпрометированы.
В качестве мер защиты эксперты рекомендуют организациям внедрять строгие процедуры проверки обновлений сторонних компонентов, включая статический анализ и песочницы. Разработчикам следует использовать двухфакторную аутентификацию для всех сервисов, связанных с публикацией кода, и регулярно аудировать список выданных токенов доступа. Пользователям же необходимо с осторожностью относиться к расширениям с высокой, но при этом резко выросшей популярностью, и по возможности отдавать предпочтение проектам с активным и прозрачным сообществом. Инцидент с fast-draft наглядно показывает, что угроза может исходить не от самого кода расширения, а от нарушения процесса его доставки до конечного пользователя.
Индикаторы компрометации
IPv4
- 195.201.104.53
URLs
- raw.githubusercontent..com/BlokTrooper/extension
Extension ID
- KhangNghiem.fast-draft
Malicious versions
- 0.10.89
- 0.10.105
- 0.10.106
- 0.10.112