Facebook je predstavio Pysu, statički analizator za jezik Python

Facebook uveo otvoreni statički analizator pysa (Python Static Analyzer), dizajniran za identifikaciju potencijalnih ranjivosti u Python kodu. Novi analizator je dizajniran kao dodatak kompletu alata za provjeru tipa lomača i objavljeno u njegovom spremištu. Kod objavljeno pod MIT licencom.

Pysa pruža analizu tokova podataka kao rezultat izvršavanja koda, što vam omogućava da identifikujete mnoge potencijalne ranjivosti i probleme privatnosti povezanih s korištenjem podataka na mjestima gdje se ne bi trebali pojaviti.
Na primjer, Pysa može pratiti upotrebu neobrađenih vanjskih podataka u pozivima koji pokreću vanjske programe, u operacijama datoteka i u SQL konstrukcijama.

Rad analizatora svodi se na identifikaciju izvora podataka i opasnih poziva u kojima se izvorni podaci ne bi trebali koristiti. Podaci iz web zahtjeva (na primjer, rječnik HttpRequest.GET u Djangu) se smatraju izvorom, a pozivi poput eval i os.open smatraju se opasnim upotrebama. Pysa prati tok podataka kroz lanac poziva funkcija i povezuje izvorne podatke s potencijalno opasnim mjestima u kodu. Tipična ranjivost identificirana korištenjem Pyse je otvoreni problem preusmjeravanja (CVE-2019-19775) na platformi za razmjenu poruka Zulip, uzrokovano prosljeđivanjem neočišćenih vanjskih parametara prilikom renderiranja sličica.

Pysine mogućnosti praćenja toka podataka mogu primijeniti za provjeru ispravne upotrebe dodatnih okvira i za utvrđivanje usklađenosti sa politikom korištenja korisničkih podataka. Na primjer, Pysa bez dodatnih postavki može se koristiti za provjeru projekata koristeći Django i Tornado okvire. Pysa također može otkriti uobičajene propuste u web aplikacijama, kao što su SQL injekcija i cross-site scripting (XSS).

Na Facebooku se analizator koristi za provjeru koda Instagram servisa. U prvom tromjesečju 2020. Pysa je pomogla identificirati 44% svih problema koje su Facebook inženjeri pronašli u bazi kodova na strani servera Instagrama.
Ukupno, Pysa automatizovani proces pregleda promena identifikovao je 330 problema, od kojih je 49 (15%) ocenjeno kao veće, a 131 (40%) kao neozbiljno. U 150 slučajeva (45%) problemi su klasifikovani kao lažno pozitivni.

izvor: opennet.ru

Dodajte komentar