Facebook introducerade Pysa, en statisk analysator för Python-språket

Facebook lämnats öppen statisk analysator pysa (Python Static Analyzer), utformad för att identifiera potentiella sårbarheter i Python-kod. Den nya analysatorn är designad som ett tillägg till verktygslådan för typkontroll Bål och lades upp i sitt förråd. Koda publicerad under MIT-licensen.

Pysa tillhandahåller analys av dataflöden som ett resultat av kodexekvering, vilket gör att du kan identifiera många potentiella sårbarheter och integritetsproblem i samband med att använda data på platser där den inte borde visas.
Till exempel kan Pysa spåra användningen av rå extern data i anrop som startar externa program, i filoperationer och i SQL-konstruktioner.

Analysatorns arbete handlar om att identifiera datakällor och farliga samtal där originaldata inte ska användas. Data från webbförfrågningar (till exempel HttpRequest.GET-ordboken i Django) betraktas som en källa, och anrop som eval och os.open anses vara farliga användningsområden. Pysa spårar dataflödet genom kedjan av funktionsanrop och associerar källdata med potentiellt farliga platser i koden. En typisk sårbarhet som identifieras med Pysa är ett öppet omdirigeringsproblem (CVE-2019-19775) i Zulip-meddelandeplattformen, orsakad av att orenade externa parametrar skickas vid rendering av miniatyrer.

Pysas dataflödesspårningsfunktioner kan tillämpa för att verifiera korrekt användning av ytterligare ramverk och för att fastställa efterlevnad av policyn för användning av användardata. Till exempel kan Pysa utan ytterligare inställningar användas för att kontrollera projekt med Django- och Tornado-ramverken. Pysa kan också upptäcka vanliga sårbarheter i webbapplikationer, såsom SQL-injektion och cross-site scripting (XSS).

På Facebook används analysatorn för att kontrollera koden för Instagram-tjänsten. Under det första kvartalet 2020 hjälpte Pysa till att identifiera 44 % av alla problem som Facebook-ingenjörer hittade i Instagrams kodbas på serversidan.
Totalt identifierade Pysas automatiserade process för granskning av förändringar 330 problem, varav 49 (15 %) bedömdes som stora och 131 (40 %) som icke-allvarliga. I 150 fall (45 %) klassades problemen som falska positiva.

Källa: opennet.ru

Lägg en kommentar