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

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

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
Комментарии: 0