Атакующие внедрили вредоносный код в web3.js, официальный JavaScript-клиент для криптовалюты Solana

Выявлен факт подстановки вредоносного кода в библиотеку @solana/web3.js, насчитывающую в репозитории NPM 400-500 тысяч загрузок в неделю. Вредоносные изменения были включены в состав выпусков web3.js 1.95.6 и 1.95.7, и сводились к интеграции кода для отправки на внешний сервер закрытых ключей. Целостность проекта восстановлена в выпуске 1.95.8. Разбор причин инцидента пока не завершён, но по предварительным данным вредоносные релизы были размещены через компрометацию учётной записи сопровождающего, используя методы социального инжиниринга и фишинга.

Библиотека web3.js позиционируется как официальный JavaScript SDK для работы с криптовалютой Solana из приложений, запускаемых в браузере или использующих такие платформы, как Node.js и React Native. Проект развивает организация Solana Labs, которая также отвечает за разработку мобильного приложения и эталонную реализацию блокчейна Solana. Криптовалюта Solana занимает пятое место по размеру капитализации, уступая только Bitcoin, Ethereum, XRP и USDT.

Проведённая атака создаёт угрозу вывода злоумышленниками средств из приложений, использующих в зависимостях скомпрометированную версию web3.js. При этом отмечается, что кража средств может коснуться только децентрализованных приложений (dapps) и ботов, напрямую работающих с зарытыми ключами. Проблема не затрагивает клиентские кошельки, которые напрямую не используют закрытые ключи в транзакциях.

В настоящее время библиотека web3.js упоминается в качестве прямой зависимости у 3262 проектов в каталоге NPM, а также применяется в web-приложениях, работающих через браузер. Разработчикам dapps-приложений, использующих web3.js, необходимо убедиться в отсутствии среди зависимостей версий web3.js 1.95.6 и 1.95.7, которые распространялись через NPM во вторник 3 декабря c 18:20 по 23:25 (MSK).

В случае использования данных версий следует обновить web3.js до выпуска 1.95.8 или откатиться до версии 1.95.5. Также рекомендуется поменять приватные ключи, провести аудит своих систем, проинспектировать код и изучить содержимое каталога node_modules на предмет появления подозрительных зависимостей.

Анализ изменений в скомпрометированной версии 1.95.7 показал, что вредоносный код был внедрён в форме функции «addToQueue», которая отправляет закрытые ключи на сервер «sol-rpc.xyz». Вызов функции «addToQueue» был добавлен в различные места в коде, в которых осуществлялась манипуляция с ключами. Отправка осуществляется через кодирование ключа методом Base58 и распределения содержимого между HTTP-заголовками «x-session-id», «x-amz-cf-id» и «x-amz-cf-pop», применяемыми в CloudFlare. Домен «sol-rpc.xyz»
зарегистрирован 22 ноября и размещён на хостинге CloudFlare.

Источник: http://www.opennet.ru/opennews/art.shtml?num=62339