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

Facebook представил статический анализатор с открытым исходным кодом под названием "Pysa»(Статический анализатор Python), который предназначен для выявления потенциальных уязвимостей в коде Python.

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

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

Сегодня мы делимся подробностями о Pysa, инструменте статического анализа с открытым исходным кодом, который мы создали для обнаружения и предотвращения проблем безопасности и конфиденциальности в коде Python. В прошлом году мы рассказали, как создали Zoncolan, инструмент статического анализа, который помогает нам анализировать более 100 миллионов строк кода взлома и помогает инженерам предотвратить тысячи потенциальных проблем безопасности. Этот успех вдохновил нас на разработку Pysa, что является аббревиатурой от Python Static Analyzer.

Pysa использует те же алгоритмы выполнять статический анализ и даже делиться кодом с Zoncolan. Как Зонколан, Писа отслеживает потоки данных через программу.

Пользователь определяет источники (места происхождения важных данных), а также приемники (места, где исходные данные не должны заканчиваться).

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

Получатели, как правило, гораздо более разнообразны, но могут включать API-интерфейсы, запускающие код, например evalили API, которые обращаются к файловой системе, напримерos.open

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

Работа анализатора все сводится к идентификации источников входящих данных и опасные вызовы, в которых не следует использовать исходные данные.

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

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

Распространенной уязвимостью, обнаруженной Pysa, является проблема открытого перенаправления (CVE-2019-19775) в платформе обмена сообщениями Zulip, вызванная передачей нечистых внешних параметров при отображении эскизов.

Возможности отслеживания потока данных Pysa могут использоваться для проверки использования дополнительных кадров и определения соответствия политикам использования пользовательских данных.

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

В Facebook анализатор используется для проверки кода сервиса Instagram.. В течение первого квартала 2020 года Pysa помогла выявить 44% всех проблем, обнаруженных инженерами Facebook в серверной кодовой базе Instagram.

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

Новый синтаксический анализатор разработан как дополнение к набору инструментов проверки типа Pyre и помещен в ваш репозиторий. Код выпущен под лицензией MIT.

В конце концов если вы хотите узнать об этом больше, вы можете проверить подробности в исходном посте. Ссылка такая.


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

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

*

*

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