24 сентября 2026 года в каталоге расширений Open VSX появились два пакета, выдающих себя за официальную поддержку языка Solidity (язык программирования для смарт-контрактов). За сутки один из них скачали 247 380 раз. Внутри лежит видеофайл на 205 мегабайт, а в нём - набор программ для скрытого удалённого доступа. Кампания нацелена на разработчиков блокчейн-проектов и всех, кто работает с кошельками и контрактами.
Описание
Расчёт строится на доверии к инструментам разработки. Оригинальное расширение для Solidity живёт на площадке десять лет, его установили миллионы раз, а поддержку ведёт проверенное пространство имён. Подделки копируют описание, значки и текст справки дословно. Отличить их от оригинала можно лишь по имени издателя. Оба пакета вышли из нового пространства имён alejandroaranda, зарегистрированного в тот же день. Похожие случаи фиксировали в мае и августе 2026 года: тогда поддельные пакеты переиздавали по восемь раз за день, меняя только способ запуска. Публикация шла с учётной записи GitHub, созданной в 2017 году. У неё 14 публичных репозиториев, ни одного подписчика и полная тишина до 24 сентября 2026 года. Профиль обновили за 25 минут до первой загрузки - так выглядят давно заброшенные аккаунты, выставленные на продажу.
Формально расширения выглядят безобидно: подсветка синтаксиса, наборы шаблонов кода, свободная лицензия. Единственный триггер - событие завершения запуска редактора. Оно срабатывает, когда окно уже открылось и разработчик занялся работой. Активация порождает отдельный процесс, который редактор не отслеживает и о котором не сообщает. Ни ошибки, ни журнала, ни ожидания: подсветка кода работает как обычно, а видеофайл в это время читается как контейнер с данными. Внутри три слоя упаковки. Сначала скрипт находит в структуре видео специальный блок. Затем снимает подстановочную таблицу. И только потом распаковывает архив, сверяя каждый файл с контрольной суммой. Полезная нагрузка не лежит на диске отдельным исполняемым файлом и не приходит по сети.
Набор состоит из четырёх сборок одной программы на языке Go - для Linux и macOS на двух аппаратных архитектурах. Сборки лишены отладочных символов, поэтому поиск по признакам известных семейств ничего не даёт. На macOS и Linux программа прописывается в домашнем каталоге и регистрируется как служба. Такая служба стартует вместе с сеансом пользователя, работает независимо от редактора и переживает удаление расширения. Путь для Windows устроен иначе. По данным Yeeth Security, установщик ConnectWise ScreenConnect появился в публичных антивирусных базах только 25 сентября 2026 года. Сценарий запуска маскируется под системную утилиту, обходит запрос контроля учётных записей пользователя, добавляет себя в исключения Microsoft Defender, ставит программу без единого окна и стирает временные файлы.
Вредоносная программа поддерживает защищённый канал управления и интерактивную командную оболочку. Оператор получает полноценный доступ к терминалу жертвы. Резервный способ получения команд опирается на смарт-контракт в сети Ethereum. Программа опрашивает десять публичных узлов этой сети, а адрес основного сервера в код не зашит. Заблокировать домен или изъять сервер не получится: управление находится в блокчейне. Отдельный набор проверок определяет, не запущена ли программа в виртуальной машине, песочнице (изолированной среде) или под отладчиком. Терминал в сочетании с клиентом для транзакций Ethereum указывает на конкретную цель. Интерес представляют кошельки, ключи и учётные записи для развёртывания контрактов, а не файлы общего назначения.
Разбор архива связал кампанию с более ранней серией. Один из модулей для Linux совпадает байт в байт с программой из поддельных расширений, которые публиковались в конце апреля 2026 года. Тогда пакеты имитировали другой инструмент для Solidity и следов утки не содержали. Ту волну описали как отдельное семейство. Талисман вернулся в сентябре. В архиве лежит текстовый файл с уткой из символов и подписью, которая переводится как "твой приз - ничего". В скрипте для Windows остались шутливые строки, включая японскую фразу о песне. Раньше подпись находили прямо в исходном коде вредоносной программы. Теперь она упакована как отдельный файл и хранится рядом с исполняемыми модулями.
Обход защиты строится на нескольких допущениях. Антивирусы ищут исполняемые файлы внутри пакетов, а здесь лежит видео, которое открывается любым проигрывателем. Предполагается, что декодирование вскроет вложение, но без таблицы подстановок результат бесполезен. Ожидается, что у командного сервера есть домен или адрес, однако их нет. Проверка ищет вредоносный двоичный файл, а на Windows его заменяет легитимный установщик коммерческого средства удалённого мониторинга и управления (RMM). Половина антивирусных движков помечает такой установщик как потенциально нежелательную программу, а не как троян. Тот же продукт стоит на тысячах корпоративных компьютеров, поэтому администраторы редко торопятся его удалять.
Тем, кто успел установить поддельные пакеты, удаления расширения недостаточно. Проверяют домашний каталог на скрытые папки. Смотрят список служб и автозагрузки. На Windows ищут незнакомую установку ScreenConnect и лишние записи в исключениях Microsoft Defender. Машину разумно считать скомпрометированной. Ключи кошельков, фразы восстановления и учётные данные для развёртывания контрактов переносят на другое устройство. Пароли, которые использовались на этом компьютере, меняют. Расширения перестают быть безопасным каналом, если проверять только типы файлов, а не их содержимое. Формат упаковки не привязан к видео: так же можно спрятать программу в изображении, шрифте или модуле для браузера. Давно заброшенные учётные записи при этом остаются удобным прикрытием для публикации.
Индикаторы компрометации
SHA256
- 37d14bff30762ca701e9c1f8bc6c57c065bb20ae3a2208cb7411a6530610f08e
- 66c1f6eb386ecb9bddf54a05aa48d11b3b1424e8a0bc109300e5b30f3d41d395
- 683ad81cdc028c538ee66da8e6b60f2a5ab070bfd900da80175df317a73886d8
- 7527e86d70e7c9493db4356f1c3775380431b310000f2602c1e993cf435d01da
- 80d2672e2599732d3c0ae2a4cd0d1e3fe4d555a60273ce33feb99db3f34d250f
- 9b73e7cd4e1425e770392549d8df46c706139ef476f4f7b9ac405165dc8d9696
- b601776817363b96295119f7221338a122d5247a35a77a64b04f286e1bbcc565
- e9ccb04446d570d784d05c675898164a48eb15c4b7a9ae3266a3f43ee809c788
- fae61f31f00988fdc5cc9e7272b51e08af2e245d81003237875415930fd27358