Карта дня, май, перетяжка
Карта дня, май, перетяжка
Карта дня, май, перетяжка

Каталог пакетов PyPI содержал 10 вредоносных библиотек

Новости Отредактировано

Центр национальной компьютерной безопасности Словакии сообщил об обнаружении 10 вредоносных пакетов, расположенных в официальном репозитории пакетов PyPI.

2К открытий2К показов

В опубликованном заявлении говорится, что имена вредоносных пакетов выбраны похожими на настоящие Python-библиотеки. Разница только в незаметных на первый взгляд деталях: библиотека urllib3 может быть спутана с вредоносной urlib3.

Распространяя подобные пакеты, злоумышленники рассчитывают на невнимательность пользователей при их установке. К примеру, логично выглядит установка фиктивного пакета bzip вместо настоящего bzip2. Это уже не первая подобная находка, однако до сих пор никакой дополнительной проверки по цифровой подписи не существует, также как и не налажен процесс проверки новых модулей.

Опасность фиктивных модулей

Фиктивные пакеты включают в себя копию кода оригинальных версий, но отличаются скриптом setup.py. В момент установки модуля вредоносная вставка отправляет сведения о пакете и о машине, на которую он был установлен. Так, после установки пакета urllib-1.21.1 пользователем root на testmachine, будет отправлена строка "Y:urllib-1.21.1 root testmachine", маскируемая операцией XOR и методом кодирования base64.

По своей сути происходит лишь сбор статистики установок фиктивных пакетов, а модификации их по сути безобидны. Однако, можно предположить, что подобная статистика нужна для подсчёта количества возможных жертв атаки и демонстрации проблем с безопасностью в каталоге 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).

Для проверки существования подобных пакетов на локальной машине можно воспользоваться командой:

			pip list --format=legacy | egrep '^(acqusition|apidev-coop|bzip|crypt|django-server|pwd|setup-tools|telnet|urlib3|urllib) '
		

Если такие модули найдены, рекомендуется их ручное удаление с машин. После уведомления о существовании подобных пакетов в каталоге PyPI они были незамедлительно удалены, но никаких мер предотвращения подобных загрузок не было принято.

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий2К показов