Расширение ETHcode для Visual Studio Code, используемое разработчиками Ethereum для создания смарт-контрактов, стало жертвой изощренной атаки на цепочку поставок ПО. По данным исследователей ReversingLabs, злоумышленникам удалось внедрить вредоносный код через поддельный Pull Request на GitHub, что привело к компрометации инструмента с почти 6000 активных установок.
Описание
Инцидент произошел 17 июня, когда пользователь под ником Airez299 предложил "модернизацию кодовой базы" с добавлением новых функций. На первый взгляд, запрос выглядел как законное улучшение: 43 коммита, 4000 измененных строк кода и положительные отзывы от GitHub Copilot. Однако среди невинных правок скрывались две критически опасные строки. Первая добавляла новую зависимость keythereum-utils - название, намеренно схожее с легитимным пакетом keythereum. Вторая строка активировала этот модуль через вызов require() в Node.js.
Анализ показал, что keythereum-utils содержал обфусцированный JavaScript, который запускал скрытый PowerShell-скрипт. Этот скрипт загружал и исполнял batch-файл с публичного файлообменника. Хотя точное назначение второй стадии атаки пока исследуется, учитывая специфику целевой аудитории (разработчики криптовалют), эксперты предполагают либо кражу приватных ключей и кошельков, либо саботаж разрабатываемых смарт-контрактов. Особую тревогу вызывает автоматическое обновление расширений в VS Code: большинство из 6000 пользователей ETHcode могли получить вредоносную версию без ведома. Microsoft оперативно удалила пакет с Marketplace 26 июня, а авторы выпустили патч (версия 0.5.1) 1 июля, но потенциальный ущерб может быть значительным.
Расследование ReversingLabs выявило несколько тревожных деталей. Аккаунт Airez299 был создан в день отправки Pull Request - явный признак одноразового аккаунта. Зловредная зависимость поставлялась прямо в .vsix-файле внутри node_modules, минуя стандартные механизмы проверки. Инструмент Spectra Assure зафиксировал подозрительные изменения: использование обфускатора JavaScript и поведение, характерное для вредоносных npm-пакетов. Дифф-анализ версий четко показал внедрение чужеродного кода. Этот инцидент демонстрирует уязвимость современных DevOps-цепочек: даже авторитетные проекты могут быть скомпрометированы через внешние контрибуции. Как отмечает Петар Кирхмайер из ReversingLabs, атаки на цепочку поставок вроде SolarWinds, 3CX или недавнего инцидента с XZ Utils эффективнее типосквоттинга, так как используют доверие к легитимным платформам.
Для защиты эксперты рекомендуют три ключевых шага.
- Во-первых, тщательная верификация контрибьюторов: проверка истории коммитов, возраста аккаунта и репутации. Новые аккаунты без активности - красный флаг.
- Во-вторых, ручной анализ зависимостей в package.json. Каждый новый модуль должен проверяться через сервисы вроде secure.software.
- В-третьих, использование специализированных инструментов типа Spectra Assure для сравнения версий ПО и выявления аномалий. ReversingLabs недавно запустили сообщество VS Code на secure.software, где можно проверять подозрительные расширения.
Инцидент с ETHcode подчеркивает, что даже две строки кода могут стать троянским конем. При нынешних темпах развития криптоиндустрии и росте сложности атак подобные случаи будут учащаться, требуя от разработчиков парадигмы "доверяй, но проверяй". Обновления о расследовании публикуются в блоге ReversingLabs.
Остается открытым вопрос о масштабах ущерба. Поскольку вторая стадия атаки загружает исполняемый код с внешнего ресурса, злоумышленники могут менять функционал по своему усмотрению. Потенциально это создает риски не только для индивидуальных разработчиков, но и для проектов, созданных с помощью ETHcode - включая смарт-контракты, управляющие значительными криптоактивами. Ситуация осложняется тем, что многие жертвы могут не подозревать о компрометации, особенно если вредоносный код работает скрытно, сосредоточившись на сборе данных. Это подчеркивает необходимость проактивного мониторинга систем и обучения команды кибергигиене в условиях растущей изощренности supply chain-атак. Текущая версия ETHcode (0.5.1) признана чистой, но пользователям следует убедиться, что у них установлена именно она, и проверить системы на признаки взлома.
Индикаторы компрометации
SHA1
- 0a9b47d707e167af384403af7c466eb43d46f343
- 17802c834861bb983a248234b0a5d17a62fe4474
- 351a25bd647587aaf76bd8a303a687bb6ad79f8f
- 442cac64cd5e7783503970c446a1d0d0a0dab69d
- 8f93077e8193996fc096de359401a8e9aa6ffc7f
- 933967db50602a058bd1764c44fc98305866e89e
- e37adafde5e03001172663256cf3d480e3765b91
Следующие пакеты, в рамках данной компании, распространяют вредоносное ПО
NMP keythereum-utils
- 1.2.1
- 1.2.2
- 1.2.3
- 1.2.4
- 1.2.5
- 1.2.7
VS Code 7finney.ethcode
- 0.5.0