Facebook prezantoi Pysa, një analizues statik për gjuhën Python

Facebook paraqitur analizues statik i hapur pysa (Python Static Analyzer), i krijuar për të identifikuar dobësitë e mundshme në kodin Python. Analizuesi i ri është projektuar si një shtesë në paketën e veglave të kontrollit të tipit turrë e druve dhe postuar në depon e tij. Kodi botuar nën licencën MIT.

Pysa ofron analiza të rrjedhave të të dhënave si rezultat i ekzekutimit të kodit, i cili ju lejon të identifikoni shumë dobësi të mundshme dhe çështje të privatësisë që lidhen me përdorimin e të dhënave në vende 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ë thirrjet që lëshojnë programe të jashtme, në operacionet e skedarëve dhe në konstruktet SQL.

Puna e analizuesit zbret në identifikimin e burimeve të të dhënave dhe thirrjeve të rrezikshme në të cilat të dhënat origjinale nuk duhet të përdoren. Të dhënat nga kërkesat në ueb (për shembull, fjalori HttpRequest.GET në Django) konsiderohen si burim dhe thirrjet si eval dhe os.open konsiderohen si përdorime të rrezikshme. Pysa gjurmon rrjedhën e të dhënave përmes zinxhirit të thirrjeve të funksionit dhe lidh të dhënat burimore me vende potencialisht të rrezikshme në kod. Një cenueshmëri tipike e identifikuar duke përdorur Pysa është një problem i hapur i ridrejtimit (CVE-2019-19775) në platformën e mesazheve Zulip, e shkaktuar nga kalimi i parametrave të jashtëm të papastër gjatë paraqitjes së miniaturave.

Aftësitë e gjurmimit të rrjedhës së të dhënave të Pysa mund aplikoni për të verifikuar përdorimin e saktë të kornizave shtesë dhe për të përcaktuar përputhjen me politikën e përdorimit të të dhënave të përdoruesit. Për shembull, Pysa pa cilësime shtesë mund të përdoret për të kontrolluar projektet duke përdorur kornizat Django dhe Tornado. Pysa gjithashtu mund të zbulojë dobësitë e zakonshme në aplikacionet në internet, të tilla si injeksioni SQL dhe skriptimi në faqe (XSS).

Në Facebook, analizuesi përdoret për të kontrolluar kodin e shërbimit Instagram. Në tremujorin e parë të vitit 2020, Pysa ndihmoi në identifikimin e 44% të të gjitha problemeve që inxhinierët e Facebook gjetën në bazën e kodeve në anën e serverit të Instagram.
Në total, procesi i automatizuar i rishikimit të ndryshimeve të Pysa identifikoi 330 çështje, nga të cilat 49 (15%) u vlerësuan si të mëdha dhe 131 (40%) si jo të rënda. Në 150 raste (45%) problemet janë klasifikuar si false pozitive.

Burimi: opennet.ru

Shto një koment