17.04.2024

PyPI приостановил регистрацию новых пользователей и проектов из-за всплеска вредоносных публикаций

Репозиторий Python-пакетов PyPI (Python Package Index) временно запретил регистрацию новых пользователей и создание новых проектов из-за непрекращающейся массовой загрузки вредоносных пакетов в ходе автоматизированной атаки. Блокировка была введена после того, как 26 и 27 марта в репозиторий было загружено 566 пакетов с вредоносным кодом, стилизованных под 16 популярных Python-библиотек.

Имена пакетов сформированы с использованием тайпсквотинга, т.е. назначение похожих имён, отличающихся отдельными символами, например, temsorflow вместо tensorflow, requyests вместо requests, asyincio вместо asyncio и т.п. При проведении подобных атак злоумышленники рассчитывают на невнимательных пользователей, совершивших опечатку или не заметивших отличий в названии при поиске или переходе по ссылке из форумов и чатов, в которых злоумышленники оставляют обманные инструкции.

Вредоносные пакеты основаны на коде легитимных библиотек, в который встроены отдельные изменения, устанавливающие в систему вредоносное ПО, осуществляющее поиск и отправку конфиденциальных данных и файлов, содержащих пароли, ключи доступа, криптокошельки, токены и сессионные Cookie. Вредоносный код встраивается в файл setup.py, запускаемый во время установки пакета. Во время активации внесённое изменение осуществляет загрузку основных вредоносных компонентов с внешнего сервера.

За два дня злоумышленниками было загружено 29 вредоносных варианта пакета tensorflow, 26 — BeautifulSoup, 26 — PyGame, 15 — SimpleJson, 38 — Matplotlib, 26 — PyTorch, 67- CustomTKInter, 28 — selenium, 17 — playwright, 15 — asyncio и 67 — requirements. Дополнительно выявлены отдельные случая подделки библиотек requests, py-cord, colorama,
capmonstercloudclient, pillow и bip-utils.

Отдельно отмечается атака на сообщество Top.gg, насчитывающее 170 тысяч пользователей. В ходе атаки злоумышленник сумел скомпрометировать учётную запись в GitHub одного из разработчиков top.gg, путём кражи браузерных Cookie. Атакующий также добавил три пакета в репозиторий PyPI и зарегистрировал домены pypihosted.org и pythanhosted.org, на которых было организовано зеркало для распространения вредоносной зависимости к пакетам.

Через взломанную учётную запись в GitHub-репозиторий проекта top.gg, в котором размещалась Python-обвязка над API Top.gg, было внесено изменение, добавляющее файл requirements.txt. В файле был размещён список загружаемых зависимостей, в котором под видом загрузки зависимости с зеркала была ссылка на вредоносный клон пакета «colorama«, размещённый на подставном домене pypihosted.org, с расчётом на то, что разработчики не заметят разницы с легитимным доменом pythonhosted.org, с которого обычно производится загрузка пакетов с PyPI.

Источник: https://www.opennet.ru/opennews/art.shtml?num=60874 Источник.