Facebook представил Pysa, статический анализатор для языка Python

8 августа 2020 года

Facebook представил открытый статический анализатор Pysa (Python Static Analyzer), предназначенный для выявления потенциальных уязвимостей в коде на языке Python. Новый анализатор оформлен в виде надстройки над инструментарием для проверки типов Pyre и размещён в его репозитории. Код опубликован под лицензией MIT.

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

Работа анализатора сводится к определению источников поступления данных и опасных вызовов, в которых исходные данные не должны применяться. В качестве источника рассматриваются данные из web-запросов (например, словарь HttpRequest.GET в Django), а в качестве опасных применений вызовы типа eval и os.open. Pysa отслеживает прохождение данных по цепочке вызовов функций и связывает исходные данные с потенциально опасными местами в коде. В качестве типовой уязвимости, выявленной при помощи Pysa, упоминается проблема с открытым редиректом (CVE-2019-19775) в платформе обмена сообщениями Zulip, вызванная передачей неочищенных внешних параметров при выводе миниатюр.

Возможности Pysa по отслеживанию потоков данных могут применяться для проверки корректности использования дополнительных фреймворков и для определения соответствия политики использования данных пользователя. Например, Pysa без дополнительных настроек может применяться для проверки проектов, использующих фреймворки Django и Tornado. Pysa также может выявлять типовые уязвимости в web-приложениях, такие как подстановка SQL-кода и межсайтовый скриптинг (XSS).

В Facebook анализатор применяется для проверки кода сервиса Instagram. За первый квартал 2020 года Pysa помог выявить 44% из всех проблем, найденных инженерами Facebook в серверной кодовой базе Instagram.Всего в процессе автоматизированной проверки изменений при помощи Pysa было выявлено 330 проблем, 49 (15%) из которых были оценены как значительные, а 131 (40%) неопасные. В 150 случаях (45%) проблемы были отнесены к ложным срабатываниям.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Facebook представил Pysa, статический анализатор для языка Python», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.