Специалисты службы национальной безопасности Словакии (Národný bezpečnostný úrad, NBU) провели проверку репозитория PyPI (Python Package Index) и сообщили об обнаружении десяти вредоносных библиотек.
Эксперты NBU пишут, что неизвестные злоумышленники, внедрившие библиотеки в каталог, использовали популярную в таких ситуациях технику typosquatting, то есть называли подделки максимально похоже, изменяя лишь пару символов. К примеру, urlib вместо urllib. Так как PyPI не производит никаких проверок безопасности во время загрузки новых библиотек, злоумышленникам не составило труда обмануть каталог.
Вредоносные версии библиотек были аналогичны настоящим и предлагали ту же функциональность, однако загрузочный скрипт setup.py был модифицирован и содержал вредоносный код. Аналитики NBU отмечают, что, к счастью для пострадавших, малварь оказалась сравнительно безвредной. Код злоумышленников собирал данные о зараженных хостах (имя и версия фальшивого пакета, username установившего его пользователя и так далее), после чего информация передавалась на китайский IP-адрес 121.42.217.44:8080. Как правило, информация выглядела так: «Y:urllib-1.21.1 admin testmachine».
Исследователи сообщают, что на прошлой неделе операторы PyPI уже удалили из репозитория все поддельные библиотеки. Вредоносный код содержали:
- acqusition (загружено 2017-06-03 01:58:01, подделка под acquisition);
- apidev-coop (загружено 2017-06-03 05:16:08, подделка под apidev-coop_cms);
- bzip (загружено 2017-06-04 07:08:05, подделка под bz2file);
- crypt (загружено 2017-06-03 08:03:14, подделка под crypto);
- django-server (загружено 2017-06-02 08:22:23, подделка под django-server-guardian-api);
- pwd (загружено 2017-06-02 13:12:33, подделка под pwdhash);
- setup-tools (загружено 2017-06-02 08:54:44, подделка под setuptools);
- telnet (загружено 2017-06-02 15:35:05, подделка под telnetsrvlib);
- urlib3 (загружено 2017-06-02 07:09:29, подделка под urllib3);
- urllib (загружено 2017-06-02 07:03:37, подделка под urllib3).
Вредоносный код работал только с Python 2.x, в случае использования с приложениями Python 3.x возникали ошибки.
По данным NBU, библиотеки были активны в июне-сентябре 2017 года. Теперь разработчикам настоятельно рекомендуется проверить свои продукты и убедиться, что они используют легитимные библиотеки, а не вредоносные подделки.