Мимикрия в `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 оставались доступными.

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


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

20327Кости прерий: как истребление бизонов породило целую индустрию — и сама себя же уничтожила 20326Кто и зачем взламывает серверы Ollama и ComfyUI ради ключей от AWS? 20325Как злоумышленники спрятали командный сервер внутри блокчейна и почему его невозможно... 20324Брюссель заставляет Android делиться секретами с чужими ИИ-помощниками 20323WordPress: как два бага слились в одну критическую дыру, которую назвали wp2shell 20322Как китайские хакеры обманули DigiCert и украли сертификаты для подписи кода? 20321Что скрывается за уязвимостью, которую агентство США внесло в список активно используемых... 20320Автономные системы наступают быстрее, чем инфраструктура для управления ими: кто выиграет... 20319Почему в OpenSSL нашли дыру, съедающую память серверов, но не дали ей даже номер CVE? 20317SonicWall SMA 1000: как два бага превратили VPN-шлюз в бэкдор для атакующих 20316Может ли уязвимость в клиенте Zoom для Windows открыть доступ к чужому аккаунту без... 20315TELEPUZ: новый вредонос на C, который научился прятаться в Telegram, Steam и блокчейне... 20314Дома из дёрна: как исландцы триста лет прятались от холода под слоем земли и травы 20313Как один токен от чужого сервиса мог впустить злоумышленника в чужой аккаунт n8n?
Ссылка