Исследователи ReversingLabs выявили проблему целостности в Visual Studio Code Marketplace: после удаления расширения его имя может вновь стать доступным для публикации третьими лицами. Поводом для анализа стало обнаружение вредоносного расширения ahbanC.shiba, функционально схожего с ранее зафиксированными ahban.shiba и ahban.cychelloworld, найденными в марте 2025 года.
Что обнаружили исследователи ReversingLabs
Все три расширения действовали как загрузчики (loader), получая PowerShell-полезную нагрузку с удаленного сервера. Эта нагрузка шифровала файлы в папке testShiba на рабочем столе жертвы и инициировала вымогательство с требованием оплаты в токенах Shiba Inu. Поведение указывает на раннюю стадию разработки вредоносного ПО, однако уже демонстрирует риск для пользователей, полагающихся на экосистему расширений VS Code.
Эксплуатация идентификаторов расширений VS Code
Каждое расширение в экосистеме VS Code идентифицируется парой <publisher>.<name>. Согласно документации, поле name должно быть полностью в нижнем регистре, без пробелов и уникальным в рамках магазина. В изученных случаях расширения отличались только именем издателя, тогда как фактическое название совпадало, что поставило вопрос о механизме выдачи идентификационных имен.
Анализ показал: после удаления расширения из репозитория (hard delete) исходное имя может быть переиспользовано другим издателем. При этом подобное поведение не распространяется на сценарии, когда автор выполняет обычную депубликацию (unpublish) без физического удаления артефактов. Такая логика открывает окно возможностей для brandjacking — захвата узнаваемого имени и публикации под ним нового, потенциально вредоносного контента.
Параллели с PyPI и экосистемами пакетов
Аналогичная проблема ранее наблюдалась в Python Package Index (PyPI): после удаления пакета имя проекта становилось доступным для повторной регистрации при условии изменения имен файлов дистрибутива (комбинации имени, версии и типа). Важно, что в PyPI действует исключение: имена, замеченные в злоупотреблениях, могут быть заблокированы и выведены из общего оборота. По данным ReversingLabs, у Visual Studio Code Marketplace нет сопоставимого механизма, предотвращающего реюз имен, связанных с вредоносной активностью.
Риски для разработчиков и организаций
Повторное использование имен повышает вероятность атак формата name-squatting и typosquatting, а также подмены расширений при поиске или автоматизированной установке. Если популярное легитимное расширение внезапно удаляется (например, из-за юридических, модерационных или операционных причин), его имя может быть быстро перехвачено злоумышленником. Это создает предпосылки для распространения загрузчиков PowerShell, вымогателей и шпионских модулей под «знакомым» именем.
Как это проявляется на практике
Пользователь видит в каталоге привычное название и устанавливает расширение, не обратив внимания на изменение издателя или даты публикации. В результате в среду разработки попадает новый пакет, который может запрашивать расширенные разрешения, выполнять команды через терминал или подгружать полезную нагрузку из сети, что соответствует цепочке компрометации через экосистему расширений.
Рекомендации по снижению рисков
Для платформы и экосистемы: резервирование (quarantine) имен удаленных расширений; блокировка имен, замеченных в злоупотреблениях; усиление верификации издателей; явные предупреждения при повторной регистрации ранее удаленного имени; прозрачный журнал истории владения именем.
Для организаций: использовать allowlist доверенных издателей/расширений; закреплять зависимости на уровне publisher ID и конкретных версий; внедрять прокси/зеркало корпоративного каталога; мониторить установку расширений и сетевую активность IDE; применять EDR/AV-политики для контроля PowerShell.
Для разработчиков и мейнтейнеров: вместо удаления применять депубликацию; регистрировать верифицированные издательские аккаунты; документировать fingerprint расширений (имя, издатель, хеш); оперативно информировать пользователей о смене канала распространения.
Случай с ahbanC.shiba иллюстрирует, как недочеты в управлении идентификаторами превращаются в реальную поверхность атаки на цепочку поставок ПО. Усиление процессов модерации, верификации и зарезервирования имен, а также дисциплина со стороны организаций и разработчиков помогут снизить вероятность захвата бренда и распространения вредоносных расширений через доверенные каталоги.