Facebook je predstavil Pysa, statični analizator za jezik Python

Facebook uveden odprti statični analizator pysa (Python Static Analyzer), zasnovan za prepoznavanje potencialnih ranljivosti v kodi Python. Novi analizator je zasnovan kot dodatek kompletu orodij za preverjanje tipa Pire in objavil v svojem skladišču. Koda objavljeno pod licenco MIT.

Pysa zagotavlja analizo tokov podatkov kot rezultat izvajanja kode, kar vam omogoča, da prepoznate številne potencialne ranljivosti in težave z zasebnostjo, povezane z uporabo podatkov na mestih, kjer se ne bi smeli pojaviti.
Pysa lahko na primer sledi uporabi neobdelanih zunanjih podatkov pri klicih, ki zaženejo zunanje programe, pri operacijah datotek in konstrukcijah SQL.

Delo analizatorja se zmanjša na prepoznavanje virov podatkov in nevarnih klicev, pri katerih se prvotni podatki ne smejo uporabljati. Podatki iz spletnih zahtev (na primer slovar HttpRequest.GET v Djangu) se obravnavajo kot vir, klici, kot sta eval in os.open, pa se obravnavajo kot nevarne uporabe. Pysa sledi pretoku podatkov skozi verigo funkcijskih klicev in povezuje izvorne podatke s potencialno nevarnimi mesti v kodi. Tipična ranljivost, ugotovljena z uporabo Pysa, omenja problem odprte preusmeritve (CVE-2019-19775) v platformi za sporočanje Zulip, ki ga povzroča posredovanje neočiščenih zunanjih parametrov pri upodabljanju sličic.

Zmožnosti sledenja pretoka podatkov Pysa lahko uporabiti za preverjanje pravilne uporabe dodatnih ogrodij in ugotavljanje skladnosti s politiko uporabe uporabniških podatkov. Na primer, Pysa brez dodatnih nastavitev se lahko uporablja za preverjanje projektov z uporabo ogrodij Django in Tornado. Pysa lahko odkrije tudi običajne ranljivosti v spletnih aplikacijah, kot sta vstavljanje SQL in skriptiranje na več mestih (XSS).

Na Facebooku se analizator uporablja za preverjanje kode storitve Instagram. V prvem četrtletju leta 2020 je Pysa pomagala identificirati 44 % vseh težav, ki so jih Facebookovi inženirji našli v kodni bazi Instagrama na strežniški strani.
Pysin avtomatizirani postopek pregledovanja sprememb je skupno odkril 330 težav, od katerih jih je bilo 49 (15 %) ocenjenih kot večje in 131 (40 %) kot neresnih. V 150 primerih (45 %) so bile težave razvrščene kot lažno pozitivne.

Vir: opennet.ru

Dodaj komentar