Мимикрия в `crates.io`: как поддельные Rust-пакеты охотились за криптоключами

Два вредоносных пакета для языка Rust, faster_log и async_println, были загружены 8 424 раза из официального репозитория crates.io. Их основной целью была кража приватных ключей от кошельков Solana и Ethereum непосредственно из исходного кода проектов разработчиков. Атака была обнаружена и задокументирована специалистами компании по безопасности программного обеспечения Socket.
Мимикрия в `crates.io`: как поддельные Rust-пакеты охотились за криптоключами
Изображение носит иллюстративный характер

Атака, классифицированная как атака на цепочку поставок, использовала технику тайпсквоттинга. Злоумышленники имитировали популярную легитимную библиотеку fast_log, создав пакеты с очень похожими названиями, чтобы обмануть разработчиков, допустивших опечатку при поиске.

Вредоносные пакеты были опубликованы 25 мая 2025 года пользователями с псевдонимами rustguruman и dumbnbased. Для создания видимости легитимности злоумышленники скопировали не только функциональный код из библиотеки fast_log, но и её документацию, включая файл README. Кроме того, в метаданных пакетов была указана ссылка на реальный GitHub-репозиторий оригинального проекта, что должно было усыпить бдительность жертв.

Вредоносный код активировался не на этапе компиляции, а во время выполнения программы, например, при запуске тестов. Во время операции, замаскированной под «упаковку логов», скрипт запускал рекурсивный поиск по всем файлам проекта с расширением .rs. Целью поиска были строки, соответствующие шаблонам приватных ключей Solana и Ethereum, а также массивы байтов в скобках.

Все найденные совпадения немедленно отправлялись через HTTP POST-запрос на командный сервер (C2), размещенный на платформе Cloudflare Workers. Адрес сервера — mainnet.solana-rpc-pool.workers[.]dev — был специально выбран, чтобы имитировать легитимный домен Solana api.mainnet-beta.solana[.]com, что является еще одним элементом социальной инженерии.

Администрация crates.io оперативно отреагировала на инцидент. По словам представителя платформы Уолтера Пирса, оба вредоносных пакета были удалены из реестра. Учётные записи издателей rustguruman и dumbnbased были заблокированы, а все связанные с ними логи сохранены для дальнейшего анализа.

Несмотря на значительное число скачиваний, атака имела ограниченный радиус действия. Согласно данным crates.io, у вредоносных пакетов не было зависимых пакетов (downstream crates), что предотвратило их дальнейшее лавинообразное распространение по экосистеме. Анализ показал, что злоумышленники не публиковали других пакетов под этими учётными записями.

Установлено, что учётная запись dumbnbased на GitHub была создана 27 мая 2023 года, а rustguruman — 25 мая 2025 года. На момент расследования оба аккаунта на GitHub оставались доступными.

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


Новое на сайте

21008ИИ-агент в чужой сессии: кто отвечает за его действия 21007Какие версии Zoom Workplace для Windows уязвимы для удалённого повышения привилегий? 21006Как две уязвимости в Xen Orchestra открыли путь к захвату XCP-ng? 21005Поддельные сайты ИИ превращают опечатки в ловушки 21004Как обновление Node.js закрывает уязвимости HTTP/2 и TLS? 21003Почему Claude Fable5.2 обошёл GPT-6 Cyber в испытании многоэтапных кибератак? 21002Две уязвимости Red Hat Quay открыли доступ к чужим образам 21001После сигнала: почему для расследования нужны подробные сетевые данные 21000Критическая ошибка PTC Windchill и FlexPLM открывает путь к удалённому выполнению кода 20999Слепые зоны идентичности: чего не хватает SOC при расследовании атак 20998Обновления Apple закрыли лазейки в групповых чатах и Bluetooth 20997Уязвимость iPhone может открыть приложениям доступ к чужим файлам 20996Что раскрыла расширенная проверка утечки Fireworks AI? 20995Уязвимость в Apache HTTP/2: удалённое выполнение кода без входа 20994Как защитить виртуальные машины Google Cloud от утечек на AMD Turin?
Ссылка