Администраторы репозитория Python Package Index (PyPI) поместили в карантин, а затем удалили пакет aiocpa, установленный более 12 000 раз. После обновления в нем появился вредоносный код, отвечавший за кражу приватных ключей.
Этот пакет описывается как синхронный и асинхронный клиент для Crypto Pay API. Исходно он был выпущен в сентябре 2024 года, и за прошедшее время его успели загрузить 12 100 раз.
Как сообщают аналитики компании Phylum, которые обнаружили эту атаку на цепочку поставок, автор пакета опубликовал вредоносное обновление только в PyPI, а репозиторий библиотеки на GitHub остался чистым.
В настоящее время неясно, стоял ли за вредоносным обновлением сам разработчик, или же его учетные данные могли быть скомпрометированы хакерами, которые и сделали aiocpa в PyPI вредоносным.
Первые признаки вредоносной активности были замечены в версии 0.1.13. В ней был изменен Python-скрипт sync.py, который отвечал за декодирование и запуск обфусцированного блока кода сразу после установки пакета.
«Этот конкретный блоб рекурсивно кодируется и сжимается 50 раз», — рассказывают в Phylum и объясняют, что он используется для захвата и кражи API-токена Crypto Pay жертвы с помощью Telegram-бота.
Отметим, что Crypto Pay рекламируется как платежная система на базе Crypto Bot в Telegram, которая позволяет пользователям принимать платежи в криптовалюте и совершать переводы с помощью API.
«Как показывает практика, злоумышленники могут намеренно поддерживать чистоту репозиториев с исходным кодом, распространяя свои вредоносные пакеты в экосистемах, — заключают исследователи. — Эта атака служит напоминанием о том, что если пакет был безопасным в прошлом, это не гарантирует его безопасности в дальнейшем».