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

Facebook podnijeti otvoreni statički analizator pysa (Python Static Analyzer), dizajniran za prepoznavanje potencijalnih ranjivosti u Python kodu. Novi analizator dizajniran je kao dodatak alatu za provjeru tipa Lomača i objavio u svom spremištu. Kodirati objavljen pod licencom MIT-a.

Pysa pruža analizu protoka podataka kao rezultat izvršavanja koda, što vam omogućuje prepoznavanje mnogih potencijalnih ranjivosti i problema s privatnošću povezanih s korištenjem podataka na mjestima gdje se ne bi trebali pojaviti.
Na primjer, Pysa može pratiti korištenje neobrađenih vanjskih podataka u pozivima koji pokreću vanjske programe, u operacijama s datotekama i u SQL konstrukcijama.

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

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

Na Facebooku se analizator koristi za provjeru koda usluge Instagram. U prvom tromjesečju 2020. Pysa je pomogla identificirati 44% svih problema koje su Facebookovi inženjeri pronašli u Instagramovoj bazi kodova na strani poslužitelja.
Ukupno je Pysin automatizirani proces pregleda promjena identificirao 330 problema, od kojih je 49 (15%) ocijenjeno kao veliko, a 131 (40%) kao manje ozbiljno. U 150 slučajeva (45%) problemi su klasificirani kao lažno pozitivni.

Izvor: opennet.ru

Dodajte komentar