The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

08.08.2020 10:58

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%) проблемы были отнесены к ложным срабатываниям.

  1. Главная ссылка к новости (https://engineering.fb.com/sec...)
  2. OpenNews: Выпуск Psalm 3.12, статического анализатора для языка PHP. Альфа выпуск PHP 8.0
  3. OpenNews: Yandex опубликовал статический анализатор файлов конфигурации nginx
  4. OpenNews: Facebook открыл RacerD, статический анализатор для многопоточного кода на Java
  5. OpenNews: Релиз свободного статического анализатора кода frama-clang 0.0.5
  6. OpenNews: Релиз статического анализатора cppcheck 2.1
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/53516-python
Ключевые слова: python, facebook, pysa
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (68) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, InuYasha (??), 11:20, 08/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +22 +/
    Пыса...
     
     
  • 2.25, Аноним (-), 15:04, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Блин... они специально чтоль это делают? Pidora, Pysa... Заходят в словарь русского языка, потом прогоняют через транслит... >_<
     
     
  • 3.26, Аноним (26), 15:16, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Ждем Sysya?
     
     
  • 4.37, Аноним (37), 16:04, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А зачем долго ждать?
    Ниже вон напомнили, давно была Zope...
     
     
  • 5.48, Аноним (-), 16:59, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну sysya все-таки лучше чем zope (имхо), хотя кому как наверно...
     
     
  • 6.88, Аноним (88), 13:41, 09/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ну нет, хорошая zope намного лучше чем обычная sysya )))
     
  • 6.103, клацакац (?), 11:40, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сиськи — это для молокососов. Подрастешь — начнешь ценить задницы! ( Рэй Донован (Ray Donovan))
     
     
  • 7.106, ммнюмнюмус (?), 16:09, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    транслитерированный Миасс
     
  • 5.59, Карл (?), 18:08, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вспомнился еще grunt mocha фреймворк из мира node.js
     
     
  • 6.102, mandms (?), 10:13, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    не, мока не катит, mocha читается мока - это от мокачино кофе
     
  • 5.98, Убить_Криса (?), 19:43, 09/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ну Zope-то кайфовый. Он и сейчас есть ;)
     
  • 5.113, vladimir (??), 23:28, 11/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    да, и когда нашли какую-то уязвимость - появилось: а в Zope дырка.
     
  • 4.76, Аноним (76), 20:03, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так есть еще
    https://www.ebu.ch
    к коллекции
     
  • 4.85, Адекват (ok), 10:23, 09/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    лично я буду ждать kaka
     
     
  • 5.89, Аноним (88), 13:43, 09/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    уже) https://play.google.com/store/apps/details?id=com.kaka.share.transfer&hl=en
     
  • 4.105, ммнюмнюмус (?), 16:07, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    sysio
     
  • 3.53, А (??), 17:30, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Заходят в словарь русского языка, потом прогоняют через транслит... >_<

    Зачем? С чего бы?

     
  • 3.101, qwerty (??), 09:36, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а что если руские всем пофиг...да не бред какой-то
     
  • 3.109, Кайф (?), 03:16, 11/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Они букву d упустили
     
  • 2.83, Екмакарек (?), 01:04, 09/08/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Ну вообще-то пайса. Потому что Пайтон. Учили бы английские произношения слов, чтоли...
     
     
  • 3.91, Nuk (?), 16:17, 09/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нет, это пэса. Если читать с английским произношением, тогда нужно делать вид, что это не транслит. А мы делаем вид, что это транслит. В конце концов, тут важно первое впечатление, реакция мозга, а не тщательное обдумывание.
     
  • 3.92, Тот_Самый_Анонимус (?), 17:00, 09/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Учили бы английские произношения слов, чтоли...

    Зачем? Латиница ≠ английский. По каким правилам  хотим, по таким и читаем. Хотят однозначного прочтения - пусть изобретают свою азбуку.

     
  • 3.104, Аноним (104), 15:38, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я читаю пайсо. Как альбом Syro эйфекс твина, звучит очень круто если читать "сайро"
     
  • 3.112, InuYasha (??), 13:39, 11/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вообще-то пайса. Потому что Пайтон. Учили бы английские произношения слов, чтоли...

    Спасибо, Капитан Дотошность! ) Передавай привет хабру )

     

  • 1.6, Иваня (?), 11:50, 08/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Отлично, добавил в закладки
     
  • 1.8, Аноним (8), 11:55, 08/08/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.9, Аноним (9), 12:04, 08/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    Гусары, молчать!
     
     
  • 2.63, Онаним (?), 18:51, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зачотно, но славы проекта Pidora им всё равно уже не снискать.
     

  • 1.14, Карабьян (?), 12:52, 08/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Тут меченые данные фильтруют - то, что делал Перл с ключом -t еще в прошлом веке. У меня вопрос: в Питоне это что-ли не было из коробки?
     
     
  • 2.15, Аноним (15), 12:54, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это тебе пхп что ли? Многие не в курсе, что данным нельзя верить. Или просто не могут верно оценить риски.
     
     
  • 3.39, Карабьян (?), 16:12, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Это тебе пхп что ли? Многие не в курсе, что данным нельзя
    > верить. Или просто не могут верно оценить риски.

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

     
  • 3.52, Аноним (-), 17:22, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Это тебе пхп что ли? Многие не в курсе, что данным нельзя
    > верить. Или просто не могут верно оценить риски.

    Поэтому чувак из bitmessage и влепил eval на входные данные. При том там код такой укуреный что и не поймешь - специально он так, или просто потому что вебмакака.

     
     
  • 4.57, Аноним (-), 17:40, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Поэтому чувак из bitmessage и влепил eval на входные данные.

    предоставьте ссылочку

     
     
  • 5.107, Аноним (107), 19:58, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.opennet.dev/opennews/art.shtml?num=48080
     
  • 5.108, Аноним (107), 20:00, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/Bitmessage/PyBitmessage/commit/3a8016d31f517775d226aa8b9024
     
  • 2.79, Аноним (79), 20:49, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В стандартном питоне даже sandbox нет до сих пор, говорят "слишком сложно".
     
     
  • 3.81, Аноним (81), 22:25, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В стандартном питоне он нахрен не нужен. Это язык программирования, а не средство изоляции.
     

  • 1.16, Аноним (16), 13:00, 08/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    В резюме:
    Skills: Python, Pysa, Zope.
     
     
  • 2.36, Анонимъ (?), 15:59, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Fullstack
     

  • 1.17, YetAnotherOnanym (ok), 13:49, 08/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Вот странный народ, им дали полезный инструмент, а они над названием изгаляются.
     
     
  • 2.20, Аноним (20), 14:22, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > им дали полезный инструмент для языка Python

    Спасибо, пусть пока на балконе полежит.

     
  • 2.44, Аноним (44), 16:39, 08/08/2020 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.49, Ordu (ok), 17:09, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    На всё остальное не хватает квалификации. А над названием может и пятилетний посмеяться.
     
  • 2.80, Аноним (79), 20:51, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А что надо делать когда проект называют "Писа"? Сказать что название странное это абсолютно нормально.
     
     
  • 3.93, Тот_Самый_Анонимус (?), 17:02, 09/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А ещё есть международное тестирование Pisa. Даже мыслей не было как-то не так трактовать.
     
  • 2.82, Онаним (?), 22:44, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Питон вообще фиолетов, так что можно постебать.
    Да и был бы не фиолетов - всё равно нельзя не постебать.
    Сами напросились.

    Миру - мир. Zope - Pysa.

     

  • 1.22, user90 (?), 14:42, 08/08/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –9 +/
     

     ....ответы скрыты (10)

  • 1.24, Онаним (?), 14:58, 08/08/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     

  • 1.77, Аноним (77), 20:05, 08/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > инженеры фейсбук

    лооол

     
  • 1.78, commiethebeastie (ok), 20:23, 08/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Норм. Протестировал бота для регистрации на фейсбуке.
     
  • 1.87, Аноним (87), 13:02, 09/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > позволяет выявлять многие потенциальные уязвимости и проблемы с конфиденциальностью, связанные с использованием данных в тех местах, где они не должны фигурировать

    тут анализатор не поможет, а выявить проблемы просто - данные не должны использоваться в facebook.

     
  • 1.90, all_glory_to_the_hypnotoad (ok), 15:33, 09/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >  Новый анализатор оформлен в виде надстройки над инструментарием для проверки типов Pyre

    С котлетой?

     
  • 1.94, Аноним (94), 19:13, 09/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В 150 случаях (45%) проблемы были отнесены к ложным срабатываниям.

    То есть с тем же успехом можно просто подкинуть монетку?

     
  • 1.95, Аноним (95), 19:28, 09/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Питон давно у меня с уриной ассоциировался. Начиная с "пипи", ой, то есть pypi.

    Тем, кто ринулся писать про "пайпи": это моя личная подсознательная ассоциация.

     
  • 1.97, Аноним (95), 19:34, 09/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    pyre
    "погребальный костёр"

    Хм.

     
  • 1.99, Вы забыли заполнить поле Name (?), 23:08, 09/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И снова OCaml. Любит его facebook. Написали бы на самом питоне с типами.
     
     
  • 2.100, Аноним (100), 08:14, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем вообще где-то писать на питоне, если нужна надёжность или производительность? Незачем детей на работу брать, тогда и проблем не будет.
     
     
  • 3.114, Вы забыли заполнить поле Name (?), 15:23, 14/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем вообще где-то писать на питоне, если нужна надёжность или производительность? Незачем
    > детей на работу брать, тогда и проблем не будет.

    Ну удачи тебе найти разрабов на окамле.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру