Злоумышленники активно интересуются открытым ПО. Доставка вредоносов через сторонние зависимости стала одним из способов заражения. Чтобы защититься от таких угроз, нужно обеспечить регулярную проверку внешних зависимостей на наличие в них вредоносного кода.

Обзор продукта

PT PyAnalysis — сервис для выявления подозрительных и вредоносных Python-пакетов, который можно интегрировать в процесс безопасной разработки ПО. Cервис нацелен на анализ пакетов из глобального репозитория PyPI. Мы являемся независимыми аудиторами этого репозитория и за девять месяцев исследования нашли в нем более 200 вредоносных пакетов.

С точки зрения пользователя сервис представляет собой API, который позволяет проверить пакет по его названию и получить вердикт относительно его функций: чистый, подозрительный, опасный.

Почему важно проверять пакеты с PyPI

Создать репозиторий с незанятым именем на pypi.org может любой желающий. У ресурса есть своя система проверки, но правила обнаружения лежат в исходном коде проекта и злоумышленнику не составит труда их обойти. При этом сама система является неблокирующей: сработки приходят на почту администраторам, которые проверяют вердикты для принятия решения о блокировке.

Векторы атак

  • Создание аккаунта и добавление в репозиторий пакетов, которые будут мимикрировать под уже существующий пакет. В 2022 году мы обнаружили много таких пакетов. Среди них были selfbotts, selfbotters, requist, rquests, equests, colorafull, colorapy, мимикрирующие под selfbots, requests и colorful.
  • Добавление через созданный аккаунт вредоносных пакетов, которые своим названием будут намекать на решение определенных задач. В частности, мы поймали пакеты с такими названиями, как requests-json, requestscaches и flask-utils-helper.
  • Получение несанкционированного доступа к аккаунту легитимного разработчика и выпуск «новых» версий его пакетов. Так, в мае 2022 года был взломан разработчик модуля ctx, а в следующей версии пакета в него был добавлен стилер AWS-токенов. В августе через массовый фишинг были скомпрометированы по меньшей мере 10 популярных пакетов.

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

Как работает

  1. Клиент формирует запрос к системе. Запрос может быть сформирован в автоматизированной системе, например в рамках процесса CI/CD, или отправлен в ручном режиме для единоразовой проверки. Отправить можно название пакета и его версию или ссылку на проект в GitHub.
  2. Система принимает запрос и проверяет пакет.
  3. На основе собранной информации система выдает вердикт о том, безопасен этот пакет или нет.
Схема работы

Видео

(Не)безопасная разработка: как защититься от вредоносных Python-пакетов

Ключевые возможности

PT PyAnalysis выявляет вредоносные функции кода, нацеленные на:

  • усложнение анализа;
  • шифрование файлов;
  • кражу информации;
  • запуск небезопасных команд;
  • использование необычных протоколов;
  • сбор информации о системе.

Заходите в телеграм-чат о PT PyAnalysis. Наши эксперты, партнеры и заказчики ответят на вопросы, посоветуют полезные ссылки и будут держать в курсе новостей сервиса.

Подписаться