77 «двойников» расширений Open VSX выкачивали данные разработчиков

На маркетплейсе Open VSX обнаружен кластер из 77 расширений, которые притворялись легитимными инструментами разработчиков, а на деле собирали и отправляли информацию о системах и средах разработки, где были установлены. Расширения-«двойники» загрузили в репозиторий в период с 26 июля по 1 августа 2026 года, рассказали в Manifold Security; с 3 августа пакеты удалены из Open VSX.

Два вида нагрузки

Исследователи безопасности Ax Sharma и Cody Nash пояснили, что большинство пакетов передают «немногим больше, чем имя хоста машины». В девятнадцати из них — развёрнутое описание машины, репозитория, открытого в редакторе, и CI-системы, в которой работает редактор.

Из найденных расширений 58 относятся к лёгким инструментам: они крадут имя хоста и, в некоторых случаях, имя папки рабочей области или версию редактора. Остальные — разведывательные полезные нагрузки, которые передают: локальное имя хоста и имя пользователя ОС, имя и версию редактора, тип хоста и machine ID, платформу и архитектуру, локаль и часовой пояс, имя папки открытой рабочей области и полный путь к ней в файловой системе. Обе группы используют один и тот же домен для выгрузки данных, а их код и поведение схожи.

Как маскировали вредонос

Примечательная деталь кампании: она переиспользует имена, пространства имён и описания настоящих расширений из Microsoft VS Code Marketplace, но публикует их через посторонние аккаунты и с низким номером версии (например, 0.0.1). Главное изменение — подмена содержимого встроенного файла extension.js на код сбора и передачи данных, который выдаёт себя за «анонимную статистику использования».

Ни одно из расширений не предлагает заявленный функционал: они показывают элемент в строке состояния с сообщением об активности и запускают выгрузку данных. Во всех 77 случаях информация уходит на mangorbit[.]com, зарегистрированный 15 июля 2026 года — за 11 дней до публикации первых пакетов.

Расширения из второго кластера дополнительно: - читают каталог .git рабочей области, получая хосты и организации Git-репозиториев, домен почты разработчика, текущую ветку и SHA коммита HEAD; - перечисляют до 60 установленных ID расширений и забирают имя прокси-хоста из окружения; - вытаскивают имена CI-маркеров и значения GITHUB_REPOSITORY, CI_PROJECT_PATH, URI коллекции Azure DevOps, слаг организации Buildkite, имя пользователя проекта CircleCI, имя Codespace и контекстный URL рабочей области Gitpod; - читают настройку отказа от телеметрии редактора и отправляют её статус.

Запасные каналы и ретраи

Вредоносный код предусмотрел запасные варианты: он опрашивает DNS TXT-запись, чтобы получить фолбэк-адрес выгрузки, если основной домен заблокируют или отключат. Разведывательный вариант снабжён механизмом повторных попыток: «попытки идут примерно через пятнадцать минут, пятьдесят минут и три с половиной часа, затем каждые семь-восемь часов, возобновляясь при каждом перезапуске редактора и прекращаясь только через семь дней», — объяснили исследователи. Машина, которая офлайн, за фаерволом или за прокси, отбрасывающим первый запрос, получает повторные вопросы в течение недели.

Разведывательный вариант также проверяет, ссылается ли devcontainer.json открытой рабочей области или .vscode/extensions.json на ID расширения, и передаёт ответ одним флагом. Так злоумышленники отличают установки, вызванные конфигурацией репозитория, от установок, сделанных человеком вручную.

Раскрытие происходит на фоне отдельной атаки на цепочку поставок: 450 уникальных npm-пакетов в составе 2244 артефактов скомпрометированы для доставки информационного стилера, а украденные npm-токены используются для публикации троянизированных версий с тем же вредоносом (кампания ChainDrop). Microsoft сообщила, что вредоносные релизы содержат вариант Mini Shai-Hulud — самораспространяющегося червя, крадущего учётные данные и распространяемого через большой, сильно обфусцированный JavaScript-нагрузчик на базе Bun. Червяк обычно запускается автоматически через npm-хук preinstall до завершения установки пакета, а украденные учётные данные GitHub позволяют внедрять конфигурационные файлы Claude и Visual Studio Code в репозитории, создавая путь заражения от разработчика к разработчику.

Активность пока остаётся без атрибуции. Специалисты OX Security отмечают, что защита от таких атак требует большего, чем блокировка установочных скриптов и двухфакторная аутентификация для аккаунтов мейнтейнеров: нужен гранулярный контроль прав на то, что пакету разрешено делать, — чтобы пакет не мог вытащить ключи AWS и учётные данные GitHub одной командой.

Источник: thehackernews.com