Pysa, statični analizator za Python, ki ga ponuja Facebook

Facebook je predstavil odprtokodni statični analizator z imenom «Pysa»(Python Static Analyzer), ki je zasnovan za prepoznavanje morebitnih ranljivosti v kodi Python.

pysa zagotavlja analizo pretoka podatkov kot rezultat izvajanja kode, ki omogoča prepoznavanje številnih potencialnih ranljivosti in težav zasebnosti, povezane z uporabo podatkov tam, kjer se ne bi smeli pojavljati.

Na primer Pysa lahko sledite uporabi surovih zunanjih podatkov v klicih ki izvajajo zunanje programe, v datotečnih operacijah in v konstrukcijah SQL.

Danes delimo podrobnosti o Pysi, odprtokodnem orodju za statično analizo, ki smo ga zgradili za odkrivanje in preprečevanje težav z varnostjo in zasebnostjo v kodi Python. Lani smo razkrili, kako smo ustvarili Zoncolan, orodje za statično analizo, ki nam pomaga analizirati več kot 100 milijonov vrstic kode za vdiranje in je inženirjem pomagalo preprečiti tisoče morebitnih varnostnih težav. Ta uspeh nas je navdihnil za razvoj Pysa, ki je kratica za Python Static Analyzer.

Pysa uporablja enake algoritme za izvajanje statične analize in celo skupno rabo kode z Zoncolan. Tako kot Zoncolan, tudi Pysa sledi toku podatkov skozi program.

Uporabnik določi vire (mesta, od kod izvirajo pomembni podatki), kot tudi ponore (mesta, kjer se izvorni podatki ne smejo končati).

Za varnostne aplikacije so najpogostejše vrste virov mesta, kjer v aplikacijo vstopajo podatki, ki jih nadzirajo uporabniki, na primer slovar Django.

Sprejemniki so ponavadi veliko bolj raznoliki, lahko pa vključujejo API-je, ki poganjajo kodo, kot je evalali API-ji, ki dostopajo do datotečnega sistema, na primeros.open

Pysa izvaja ponavljajoče se kroge analize za izdelavo povzetkov za določitev, katere funkcije vrnejo podatke iz vira in katere funkcije imajo parametre, ki sčasoma zadenejo v umivalnik. Če Pysa ugotovi, da se vir sčasoma poveže s pomivalnim koritom, sporoči težavo. 

Delo analizatorja se nanaša na prepoznavanje dohodnih virov podatkov nevarnih klicev, pri katerih se ne smejo uporabljati izvirni podatki.

Pysa spremlja prehod podatkov skozi verigo klicev funkcij in izvirne podatke poveže s potencialno nevarnimi mesti v kodi.

Ker za lastne izdelke uporabljamo odprtokodna strežniška ogrodja Python, kot sta Django in Tornado, se lahko Pysa že pri prvem zagonu začne srečevati z varnostnimi težavami pri projektih, ki uporabljajo te okvire. Uporaba Pyse za okvirje, za katere še nimamo pokritosti, je na splošno tako preprosta kot dodajanje nekaj konfiguracijskih vrstic, ki Pysi povedo, kje podatki prihajajo v strežnik.

Pogosta ranljivost, ki jo je opredelila družba Pysa, je odprta težava s preusmeritvijo (CVE-2019-19775) v platformi za sporočanje Zulip, ki jo povzroča posredovanje nečistih zunanjih parametrov pri prikazu sličic.

Pysine zmožnosti sledenja pretoku podatkov lahko uporabimo za potrditev uporabe dodatnih okvirjev in ugotavljanje skladnosti s pravilniki o uporabi uporabniških podatkov.

Npr Pysa brez dodatnih konfiguracij lahko uporabimo za preverjanje projektov z uporabo ogrodja Django in Tornado. Pysa lahko prepozna tudi splošne ranljivosti v spletnih aplikacijah, kot sta nadomestitev SQL in skriptiranje na več mestih (XSS).

Na Facebooku se z analizatorjem preveri koda storitve Instagram. V prvem četrtletju leta 2020 je Pysa pomagal identificirati 44% vseh težav, ki so jih inženirji Facebooka našli v strežniški bazi Instagrama na strežniški strani.

V procesu je bilo ugotovljenih 330 težav avtomatiziranega preverjanja sprememb z uporabo Pysa, 49 (15%) jih je bilo ocenjenih kot pomembnih, 131 (40%) pa ni bilo nevarnih. V 150 primerih (45%) so težave pripisali lažno pozitivnim rezultatom.

Novi razčlenjevalnik je zasnovan kot dodatek orodju za preverjanje vrste Pyre in je nameščen v vašem skladišču. Koda je izdana pod licenco MIT.

Končno če želite vedeti več o tem, podrobnosti lahko preverite v izvirni objavi. Povezava je to.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.