Зловредный Pull Request инфицировал популярное расширение VS Code для разработчиков Ethereum: как две строки кода поставили под угрозу тысячи систем

information security

Расширение 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) признана чистой, но пользователям следует убедиться, что у них установлена именно она, и проверить системы на признаки взлома.

Индикаторы компрометации

Комментарии: 0