Pysa, një analizues statik për Python i ofruar nga Facebook

Facebook ka prezantuar një analizues statik me burim të hapur të quajtur "Pysa»(Python Static Analyzer) që është krijuar për të identifikuar dobësitë e mundshme në kodin Python.

Pysa ofron analizë të rrjedhës së të dhënave si rezultat i ekzekutimit të kodit, i cili ju lejon të identifikoni shumë dobësi dhe probleme të mundshme e privatësisë në lidhje me përdorimin e të dhënave në vendet ku ato nuk duhet të shfaqen.

Për shembull, Pysa mund të gjurmojë përdorimin e të dhënave të jashtme të papërpunuara në thirrje që ekzekutojnë programe të jashtme, në operacionet e skedarëve dhe në konstruktet SQL.

Sot, ne ndajmë detaje rreth Pysa, një mjet me burim të hapur të analizës statike që kemi ndërtuar për të zbuluar dhe parandaluar çështjet e sigurisë dhe privatësisë në kodin Python. Vitin e kaluar, ne ndamë mënyrën se si krijuam Zoncolan, një mjet i analizës statike që na ndihmon të analizojmë më shumë se 100 milion rreshta të kodit të hakut dhe ka ndihmuar inxhinierët të parandalojnë mijëra probleme të mundshme të sigurisë. Ky sukses na frymëzoi për të zhvilluar Pysa, e cila është shkurtesë për Python Static Analyzer.

Pysa përdor të njëjtët algoritme për të kryer analiza statike dhe madje edhe për të ndarë kodin me të Zoncolan. Ashtu si Zoncolan, Pysa gjurmon rrjedhat e të dhënave përmes një programi.

Përdoruesi përcakton burimet (vendet ku burojnë të dhënat e rëndësishme) si dhe lavamanët (vendet ku nuk duhet të mbarojnë të dhënat burimore).

Për aplikacionet e sigurisë, llojet më të zakonshme të burimeve janë vendet ku të dhënat e kontrolluara nga përdoruesit hyjnë në aplikacion, siç është fjalori Django.

Marrësit priren të jenë shumë më të larmishëm, por mund të përfshijnë API që ekzekutojnë kod, si p.sh. eval, ose API që hyjnë në sistemin e skedarëve, të tilla sios.open

Pysa kryen raunde përsëritëse të analizave për të ndërtuar abstrakte për të përcaktuar se cilat funksione i kthejnë të dhënat nga një burim dhe cilat funksione kanë parametra që përfundimisht godasin një lavaman. Nëse Pysa zbulon se një burim përfundimisht lidhet me një lavaman, ai raporton një problem. 

Puna e analizuesit ulet për të identifikuar burimet e të dhënave hyrëse dhe thirrje të rrezikshme, në të cilat të dhënat origjinale nuk duhet të përdoren.

Pysa monitoron kalimin e të dhënave përmes zinxhirit të thirrjeve të funksioneve dhe i shoqëron të dhënat origjinale me vende potencialisht të rrezikshme në kod.

Për shkak se ne përdorim kornizat e serverit Python me burim të hapur si Django dhe Tornado për produktet tona, Pysa mund të fillojë të hasë çështje sigurie në projektet që përdorin këto korniza që nga fillimi i parë. Përdorimi i Pysa për kornizat për të cilat nuk kemi mbulim është zakonisht aq i thjeshtë sa shtimi i disa rreshtave të konfigurimit për t'i treguar Pysa se ku vijnë të dhënat në server.

Një dobësi e zakonshme e identifikuar nga Pysa është një çështje e hapur e ridrejtimit (CVE-2019-19775) në platformën e mesazheve Zulip, e shkaktuar nga kalimi i parametrave të jashtëm të papastër kur shfaqen miniaturat.

Aftësitë për ndjekjen e rrjedhës së të dhënave të Pysa mund të përdoren për të vërtetuar përdorimin e kornizave shtesë dhe për të përcaktuar pajtueshmërinë me politikat e përdorimit të të dhënave të përdoruesit.

P.sh. Pysa pa konfigurime shtesë mund të përdoret për të verifikuar projektet duke përdorur kornizat Django dhe Tornado. Pysa gjithashtu mund të identifikojë dobësitë e zakonshme në aplikacionet në internet, të tilla si zëvendësimi i SQL dhe skriptimi ndër-faqesh (XSS).

Në Facebook, analizuesi përdoret për të verifikuar kodin e shërbimit Instagram. Gjatë tremujorit të parë të vitit 2020, Pysa ndihmoi në identifikimin e 44% të të gjitha problemeve të gjetura nga inxhinierët e Facebook në bazën e kodit nga ana e serverit në Instagram.

Gjithsej 330 probleme u identifikuan gjatë procesit i verifikimit të ndryshimit të automatizuar duke përdorur Pysa, 49 (15%) prej të cilave u vlerësuan si domethënëse dhe 131 (40%) nuk ishin të rrezikshëm. Në 150 raste (45%) problemet u atribuoheshin pozitiveve false.

Analizuesi i ri është dizajnuar si një shtesë e paketës së veglave të verifikimit të tipit Pyre dhe vendoset në depon tuaj. Kodi lëshohet nën licencën MIT.

Më në fund nëse doni të dini më shumë rreth kësaj, ju mund të kontrolloni detajet në postimin origjinal. Lidhja është kjo.


Përmbajtja e artikullit i përmbahet parimeve tona të etika editoriale. Për të raportuar një gabim klikoni këtu.

Bëhu i pari që komenton

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.