В Python Package Index (PyPI) найден вредоносный пакет под названием set-utils, который похищал приватные ключи Ethereum, перехватывая функции создания кошельков, и выводил средства жертв через блокчейн Polygon.
Как сообщили эксперты Socket Security, пакет маскировался под популярные пакеты python-utils (712 млн загрузок) и utils (23,5 млн загрузок). Set-utils появился в PyPI 29 января 2025 года и за прошедшее время его успели загрузить 1077 раз.
По словам исследователей, в первую очередь атаки были нацелены на блокчейн-разработчиков, использующих eth-account для создания кошельков и управления ими, разработчиков DeFi-проектов на Python, Web3-приложений с поддержкой Ethereum, а также на личные кошельки, использующие автоматизацию на Python.
Хотя вредоносный пакет был загружен около тысячи раз, учитывая его направленность на криптовалютные проекты, он мог затронуть гораздо больше людей, которые применяли приложения для создания кошельков.
Пакет set-utils содержал публичный ключ RSA злоумышленника, который использовался для шифрования украденных данных, а также Ethereum-адрес, контролируемый злоумышленником. Вредонос подключался к стандартным функциям создания кошельков Ethereum, таким как from_key() и from_mnemonic(), чтобы перехватывать приватные ключи в процессе их генерации на взломанной машине.
После этого он шифровал украденный приватный ключ и вставлял в поле данных Ethereum-транзакции перед отправкой на адрес злоумышленника через эндпоинт RPC Polygon rpc-amoy.polygon.technology.
При этом после извлечения похищенных данных злоумышленник всегда может получить к ним доступ, поскольку украденная информация постоянно хранится в блокчейне.
По сравнению с традиционными методами эксфильтрации, внедрение украденных данных в Ethereum-транзакции — более незаметный способ, который сложнее обнаружить и отличить от законной активности. Брандмауэры и антивирусные инструменты обычно отслеживают HTTP-запросы, но не блокчейн-транзакции, поэтому такой способ вряд ли вызовет подозрения или будет заблокирован.
Кроме того, в транзакциях Polygon очень низкая комиссия, нет ограничений по скорости для мелких транзакций, а также доступны бесплатные публичные эндпоинты RPC, поэтому злоумышленникам не нужно заниматься созданием собственной инфраструктуры.
В настоящее время пакет set-utils удален из PyPI. Пользователям и разработчикам, включившим его в свои проекты, следует немедленно удалить его и считать, что все созданные с применением set-utils Ethereum-кошельки были скомпрометированы.
Если в этих кошельках хранятся средства, рекомендуется как можно скорее перевести их в другое место, так как они могут быть похищены в любой момент.