Facebook прадставіў Pysa, статычны аналізатар для мовы Python

Facebook прадставіў адкрыты статычны аналізатар Пыса (Python Static Analyzer), прызначаны для выяўлення патэнцыйных уразлівасцяў у кодзе на мове Python. Новы аналізатар аформлены ў выглядзе надбудовы над інструментарыем для праверкі тыпаў. пахавальны вогнішча і размешчаны ў яго рэпазітары. Код апублікаваны пад ліцэнзіяй 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%) праблемы былі аднесены да ілжывых спрацоўванняў.

Крыніца: opennet.ru

Дадаць каментар