Фейсбук ачык статикалык анализатор (Python Static Analyzer), Python кодундагы потенциалдуу кемчиликтерди аныктоо үчүн иштелип чыккан. Жаңы анализатор типти текшерүү инструменттерине кошумча катары иштелип чыккан жана анын репозиторийинде жайгаштырылган. Code MIT лицензиясы боюнча.
Pysa коддун аткарылышынын натыйжасында берилиштердин агымынын анализин камсыздайт, бул көптөгөн потенциалдуу алсыздыктарды жана берилиштерди пайда болбошу керек жерлерде колдонуу менен байланышкан купуялык маселелерин аныктоого мүмкүндүк берет.
Мисалы, Pysa тышкы программаларды ишке киргизген чалууларда, файл операцияларында жана SQL конструкцияларында чийки тышкы маалыматтардын колдонулушун көзөмөлдөй алат.
Анализатордун иши баштапкы маалыматтар колдонулбашы керек болгон маалымат булактарын жана кооптуу чалууларды аныктоого чейин жетет. Веб суроо-талаптарынан алынган маалыматтар (мисалы, Django тилиндеги HttpRequest.GET сөздүгү) булак катары каралат, ал эми eval жана os.open сыяктуу чалуулар кооптуу колдонуу катары каралат. Pysa функционалдык чакыруулар тизмеги аркылуу маалыматтардын агымын көзөмөлдөйт жана коддогу кооптуу жерлер менен баштапкы маалыматтарды байланыштырат. Pysa аркылуу аныкталган типтүү аялуу ачык багыттоо көйгөйү болуп саналат () эскиздерди көрсөтүүдө тазаланбаган тышкы параметрлерди өткөрүүдөн улам келип чыккан Zulip билдирүү платформасында.
Pysa маалымат агымын көзөмөлдөө мүмкүнчүлүктөрү мүмкүн кошумча алкактарды туура колдонууну текшерүү жана колдонуучунун маалыматтарын колдонуу саясатына шайкештигин аныктоо. Мисалы, Pysa кошумча жөндөөлөрү жок Django жана Tornado алкактары аркылуу долбоорлорду текшерүү үчүн колдонулушу мүмкүн. Pysa ошондой эле веб-тиркемелердеги SQL инъекциясы жана сайттар аралык скрипт (XSS) сыяктуу жалпы кемчиликтерди аныктай алат.
Фейсбукта анализатор Instagram сервисинин кодун текшерүү үчүн колдонулат. 2020-жылдын биринчи чейрегинде Pysa Facebook инженерлери Instagram'дын сервердик код базасында тапкан бардык көйгөйлөрдүн 44% аныктоого жардам берди.
Жалпысынан Pysa автоматташтырылган өзгөртүүлөрдү карап чыгуу процесси 330 көйгөйдү аныктады, анын ичинен 49у (15%) негизги жана 131и (40%) олуттуу эмес деп бааланган. 150 учурда (45%) көйгөйлөр жалган позитив катары классификацияланган.
Source: opennet.ru
