Репозиторий PyPI содержит потенциально небезопасный код

Исследователи из Университета Турку (Финляндия) сделал известным в последнее время результаты анализа они сделали с пакетами в репозитории Автор: PyPI за использование потенциально опасных конструкций, которые могут создавать уязвимости. В анализе, что было выполнено около 197.000 749.000 пакетов и выявлено XNUMX XNUMX возможных проблем безопасности.

Другими словами, 46% пакетов имеют по крайней мере одну из этих проблем, среди которых наиболее часто встречаются проблемы, связанные с обработкой исключений и использованием возможностей подстановки кода.

Из 749 тысяч выявленных проблем 442 тысячи (41%) отмечены как несовершеннолетние, 227 тыс. (30%) как умеренно опасные и 80 тысяч (11%) как опасные.

Набор данных основан на снимке всех пакетов, хранящихся в индексе пакетов Python (PyPI) ...

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

Некоторые пакеты необычны и содержат тысячи проблем.: Например, в пакете PyGGI было обнаружено 2589 проблем, в основном связанных с использованием конструкции «try-except-pass», а в пакете appengine-sdk было обнаружено 2356 проблем. Также есть много проблем в пакетах genie.libs.ops, pbcore и genie.libs.parser.

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

Разработчик Bandit, которого использовали для сканирования кода, предложил что из-за большого количества ложных срабатываний lрезультаты сканирования нельзя считать уязвимостями напрямую, без дополнительного ручного рассмотрения каждой проблемы.

Например, синтаксический анализатор рассматривает использование ненадежных генераторов случайных чисел и алгоритмов хеширования, таких как MD5, как проблему безопасности, тогда как в коде такие алгоритмы могут использоваться для целей, не влияющих на безопасность.

Анализатор также считает, что любая внешняя обработка данных в небезопасных функциях, таких как pickle, yaml.load, subprocess и eval Это проблема, но это использование не обязательно связано с уязвимостью, и, на самом деле, использование этих функций может быть проблемой, реализованной без угрозы безопасности.

Среди элементов управления, использованных в исследовании:

  • Использование потенциально небезопасных функций exec, mktemp, eval, mark_safe и т. Д.
  • Небезопасная настройка прав доступа к файлам.
  • Подключите сетевой штекер ко всем сетевым интерфейсам.
  • Использование паролей и зашифрованных ключей.
  • Использование предопределенного временного каталога.
  • Использование pass и continue в универсальных обработчиках исключений.
  • Запускайте веб-приложения на основе веб-фреймворка Flask с включенным режимом отладки.
  • Использование небезопасных методов десериализации данных.
  • Использование хеш-функций MD2, MD4, MD5 и SHA1.
  • Использование небезопасных шифров DES и режимов шифрования.
  • Использование небезопасной реализации HTTPSConnection в некоторых версиях Python.
  • Указание схемы file: // в urlopen.
  • Используйте генераторы псевдослучайных чисел при выполнении криптографических задач.
  • Используя протокол Telnet.
  • Использование небезопасных парсеров XML.

Дополнительно упоминается обнаружение 8 вредоносных пакетов в каталоге PyPI. Перед удалением проблемные пакеты были загружены более 30 64 раз. Чтобы скрыть вредоносную активность и избежать простых статических предупреждений парсера о пакетах, мы использовали блочное кодирование с кодом, использующим формат BaseXNUMX, и поэтапно выполняли его после декодирования с помощью вызова eval.

Код, содержащийся в пакетах noblesse, genesisbot, - это пакеты Suff, noblesse2 и noblessev2 для перехвата номеров кредитных карт и паролей, хранящихся в браузерах Chrome и Edge, а также для передачи токенов учетных записей из приложения Discord и отправки данных из системы, включая снимки экрана. содержимого экрана. … Пакеты pytagora и pytagora2 включают возможность загрузки и запуска стороннего исполняемого кода.

В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.