Эксперты компании ReversingLabs изучили более миллиона пакетов из репозитория PyPI (Python Package Index) и обнаружили сразу несколько вредоносных библиотек.
Вредоносный код был найден в пакетах libpeshnx, libpesh и libari, созданных одним и тем же пользователем (ruri12). Исследователи уверены, что этот аккаунт не был взломан, и пользователь загрузил опасные пакеты в репозиторий с явным намерением обмануть других разработчиков и подготовить почву для атаки на цепочку поставок.
Все три библиотеки были доступны для загрузки через PyPI в течение почти 20 месяцев, начиная с ноября 2017 года. Интересно, что ни одна из этих библиотек не имела описания, поэтому исследователи затруднились определить, для чего они предназначались. Тем не менее, согласно официальной статистике PyPI, эти пакеты регулярно загружали пользователи (каждый набирал десятки установок ежемесячно).
Бэкдор активировался лишь в том случае, если установка производилась в системах Linux. Исследователи пишут, что бэкдор представлял собой интерактивный шелл, с помощью которого злоумышленники могли подключаться к зараженной машине и выполнять произвольные команды.
Хотя вредоносный код был замечен в составе трех библиотек, бэкдор был активен лишь в одной из них — libpeshnx. Два других пакета (libpesh и libari) лишь содержали отсылки к вредоносной функциональности без фактического кода. Аналитики полагают, что автор малвари либо удалил ее, либо напротив только готовился обновить библиотеки, снабдив их бэкдором.
В настоящее время опасные библиотеки уже были исключены из PyPI.
Напомню, что это не первый случай, когда в репозитории PyPI находят малварь. Так, в прошлом году, благодаря наблюдательности независимого ИБ-исследователя, из репозитория исключили сразу 12 библиотек. Те имитировали различные популярные пакеты, используя тайпсквоттинг, и содержали самую разную вредоносную функциональность.