Crypto Prices

Зловредный Pull Request в кодовом расширении Ethereum: Исследование

1 день назад
2 минут чтения
5 просмотров

Введение

Хакер вставил зловредный pull request в кодовое расширение для разработчиков Ethereum, согласно исследованию компании по кибербезопасности ReversingLabs. Зловредный код был добавлен в обновление для ETHcode — набора инструментов с открытым исходным кодом, используемого разработчиками Ethereum для создания и развертывания смарт-контрактов и dapps, совместимых с EVM.

Обнаружение зловредного кода

В блоге ReversingLabs сообщается, что две зловредные строки кода были скрыты в pull request на GitHub, который состоял из 43 коммитов и 4000 обновленных строк, и в основном касался добавления новой тестовой структуры и возможностей. Обновление было добавлено на GitHub 17 июня пользователем Airez299, у которого не было предыдущей истории.

Pull request был проанализирован AI-рецензентом GitHub и членами группы 7finney, ответственной за создание ETHcode. Запрашивались только незначительные изменения, и ни 7finney, ни AI-сканер не нашли ничего подозрительного.

Скрытые угрозы

Airez299 смог скрыть природу первой зловредной строки кода, дав ей имя, похожее на уже существующий файл, а также запутал и зашифровал сам код, что сделало его трудным для чтения. Вторая строка кода активирует первую, которая, согласно ReversingLabs, в конечном итоге предназначена для создания автоматической функции (Powershell), загружающей и запускающей пакетный скрипт из публичного сервиса хостинга файлов.

ReversingLabs все еще исследует, что именно делает этот скрипт, хотя предполагается, что он «предназначен для кражи криптоактивов, хранящихся на машине жертвы, или, альтернативно, для компрометации смарт-контрактов Ethereum, разрабатываемых пользователями расширения.»

Потенциальные последствия

В интервью Decrypt автор блога Петар Кирхмайер сообщил, что у ReversingLabs нет никаких указаний или доказательств того, что зловредный код действительно использовался для кражи токенов или данных. Тем не менее, Кирхмайер пишет в блоге, что ETHcode имеет 6000 установок, и что pull request — который мог быть развернут как часть автоматического обновления — мог распространиться «на тысячи систем разработчиков.» Это вызывает потенциальные опасения, и некоторые разработчики предполагают, что подобные эксплойты происходят довольно часто в криптоиндустрии, учитывая, что отрасль сильно зависит от разработки с открытым исходным кодом.

Меры предосторожности

Согласно разработчику Ethereum и соучредителю NUMBER GROUP Заку Коулу, многие разработчики устанавливают пакеты с открытым исходным кодом, не проверяя их должным образом.

«Слишком легко для кого-то вставить что-то зловредное,» — сказал он Decrypt. «Это может быть npm пакет, расширение для браузера, что угодно.»

Недавние высокопрофильные примеры этого включают эксплойт Ledger Connect Kit из декабря 2023 года, а также обнаружение в декабре прошлого года вредоносного ПО в библиотеке с открытым исходным кодом web3.js от Solana.

«Кода слишком много, а глаз на нем недостаточно,» добавляет Коул. «Большинство людей просто предполагают, что все безопасно, потому что это популярно или существует уже некоторое время, но это ничего не значит.»

Коул утверждает, что, хотя подобные вещи не являются чем-то особенно новым, «площадь возможных атак расширяется,» потому что все больше разработчиков используют инструменты с открытым исходным кодом. «Также имейте в виду, что есть целые склады, полные оперативников КНДР, чья работа заключается в выполнении этих эксплойтов,» — говорит он.

Рекомендации по безопасности

Хотя Коул предполагает, что, вероятно, существует больше зловредного кода, чем многие разработчики осознают, Кирхмайер сообщил Decrypt, что, по его оценкам, «успешные попытки очень редки.» Это приводит к вопросу о том, что разработчики могут сделать, чтобы уменьшить свои шансы на использование скомпрометированного кода.

ReversingLabs рекомендует проверять личность и историю участников перед загрузкой чего-либо. Компания также предложила разработчикам просматривать файлы, такие как package.json, чтобы оценить новые зависимости, что также поддерживает Зак Коул.

«Что помогает, так это ограничение ваших зависимостей, чтобы вы не загружали случайные новые вещи каждый раз, когда вы собираете,» — сказал он.

Коул также рекомендовал использовать инструменты, которые сканируют на наличие странного поведения или подозрительных поддерживающих, а также следить за любыми пакетами, которые могут внезапно сменить владельца или обновиться без предупреждения.

«Также не запускайте инструменты подписи или кошельки на том же компьютере, который вы используете для сборки,» — заключил он. «Просто предположите, что ничего не безопасно, если вы не проверили это или не изолировали.»