Pysa, statički analizator za Python koji nudi Facebook

Facebook je predstavio statički analizator otvorenog koda pod nazivom «Pysa»(Python Static Analyzer) koji je dizajniran za prepoznavanje potencijalnih ranjivosti u Python kodu.

pysa pruža analizu protoka podataka kao rezultat izvršavanja koda, koji omogućuje vam prepoznavanje mnogih potencijalnih ranjivosti i problema privatnosti povezane s upotrebom podataka na mjestima gdje se ne bi trebali pojavljivati.

Na primjer, Pysa može pratiti upotrebu sirovih vanjskih podataka u pozivima koji izvršavaju vanjske programe, u operacijama datoteka i u SQL konstrukcijama.

Danas dijelimo detalje o Pysi, alatu za statičku analizu otvorenog koda koji smo izgradili za otkrivanje i sprečavanje problema sa sigurnošću i privatnošću u Python kodu. Prošle smo godine podijelili kako smo stvorili Zoncolan, alat za statičku analizu koji nam pomaže analizirati više od 100 milijuna linija hack koda i koji je pomogao inženjerima da spriječe tisuće potencijalnih sigurnosnih problema. Taj nas je uspjeh nadahnuo da razvijemo Pysu, što je kratica za Python Static Analyzer.

Pysa koristi iste algoritme za izvođenje statičke analize i čak dijeljenje koda s zoncolan. Poput Zoncolana, Pysa prati protok podataka kroz program.

Korisnik definira izvore (mjesta odakle potječu važni podaci), kao i ponore (mjesta na kojima izvorni podaci ne bi trebali završiti).

Za sigurnosne aplikacije, najčešće vrste izvora su mjesta na kojima podaci kojima upravlja korisnik ulaze, poput Django rječnika.

Prijemnici su obično mnogo raznolikiji, ali mogu uključivati ​​API-je koji pokreću kôd, kao što je eval, ili API-ji koji pristupaju datotečnom sustavu, poputos.open

Pysa izvodi iterativne krugove analize za izradu sažetaka kako bi se utvrdilo koje funkcije vraćaju podatke iz izvora, a koje imaju parametre koji na kraju pogađaju sudoper. Ako Pysa otkrije da se izvor na kraju poveže sa sudoperom, prijavljuje problem. 

Rad analizatora svodi se na prepoznavanje dolaznih izvora podataka i opasne pozive, u kojima se izvorni podaci ne bi trebali koristiti.

Pysa nadzire prolazak podataka kroz lanac poziva funkcija i izvorne podatke povezuje s potencijalno opasnim mjestima u kodu.

Budući da za vlastite proizvode koristimo okvire Python poslužitelja otvorenog koda kao što su Django i Tornado, Pysa se može početi susretati sa sigurnosnim problemima u projektima koji koriste te okvire od prvog pokretanja. Korištenje Pyse za okvire za koje još nemamo pokriće uglavnom je jednostavno kao dodavanje nekoliko konfiguracijskih linija kako bi Pysi rekli gdje podaci dolaze na poslužitelj.

Česta ranjivost koju je identificirao Pysa je otvoreni problem preusmjeravanja (CVE-2019-19775) na platformi za razmjenu poruka Zulip, uzrokovan prosljeđivanjem nečistih vanjskih parametara pri prikazivanju sličica.

Pysine mogućnosti praćenja protoka podataka mogu se koristiti za provjeru upotrebe dodatnih okvira i utvrđivanje usklađenosti s pravilima korištenja korisničkih podataka.

Npr. Pysa bez dodatnih konfiguracija može se koristiti za provjeru projekata pomoću okvira Django i Tornado. Pysa također može identificirati uobičajene ranjivosti u web aplikacijama, poput zamjene SQL-a i skriptiranja na više lokacija (XSS).

Na Facebooku se analizatorom služi za provjeru koda usluge Instagram. Tijekom prvog tromjesečja 2020. Pysa je pomogao identificirati 44% svih problema koje su pronašli Facebook inženjeri u Instagramovoj bazi kodova na poslužiteljskoj strani.

U procesu je identificirano 330 problema automatizirane provjere promjena pomoću Pyse, od kojih je 49 (15%) ocijenjeno značajnim, a 131 (40%) nije opasno. U 150 slučajeva (45%) problemi su pripisani lažno pozitivnim rezultatima.

Novi parser dizajniran je kao dodatak alatu za provjeru tipa Pyre i smješten je u vaše spremište. Kôd je objavljen pod licencom MIT.

Konačno ako želite znati više o tome, pojedinosti možete provjeriti u izvornom postu. Poveznica je ovo.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.