Facebook ha introdotto Pysa, un analizzatore statico per il linguaggio Python

Facebook presentata analizzatore statico aperto Pisa (Python Static Analyser), progettato per identificare potenziali vulnerabilità nel codice Python. Il nuovo analizzatore è progettato come componente aggiuntivo del toolkit di controllo del tipo Pira e pubblicato nel suo repository. Codice pubblicato con licenza MIT.

Pysa fornisce l'analisi dei flussi di dati come risultato dell'esecuzione del codice, che consente di identificare molte potenziali vulnerabilità e problemi di privacy associati all'utilizzo dei dati in luoghi in cui non dovrebbero apparire.
Ad esempio, Pysa può tenere traccia dell'utilizzo di dati esterni non elaborati nelle chiamate che avviano programmi esterni, nelle operazioni sui file e nei costrutti SQL.

Il lavoro dell'analizzatore si riduce all'identificazione delle fonti di dati e delle chiamate pericolose in cui non dovrebbero essere utilizzati i dati originali. I dati provenienti dalle richieste web (ad esempio, il dizionario HttpRequest.GET in Django) sono considerati come una fonte e chiamate come eval e os.open sono considerate usi pericolosi. Pysa tiene traccia del flusso di dati attraverso la catena di chiamate di funzione e associa i dati di origine a punti potenzialmente pericolosi nel codice. Una tipica vulnerabilità identificata utilizzando Pysa menziona un problema di reindirizzamento aperto (CVE-2019-19775) nella piattaforma di messaggistica Zulip, causato dal passaggio di parametri esterni non puliti durante il rendering delle miniature.

Le funzionalità di tracciamento del flusso di dati di Pysa possono farlo applicare verificare il corretto utilizzo di framework aggiuntivi e determinare il rispetto della politica di utilizzo dei dati dell'utente. Ad esempio, Pysa senza impostazioni aggiuntive può essere utilizzato per controllare progetti utilizzando i framework Django e Tornado. Pysa può anche rilevare le vulnerabilità comuni nelle applicazioni web, come SQL injection e cross-site scripting (XSS).

Su Facebook l'analizzatore viene utilizzato per verificare il codice del servizio Instagram. Nel primo trimestre del 2020, Pysa ha contribuito a identificare il 44% di tutti i problemi riscontrati dagli ingegneri di Facebook nel codebase lato server di Instagram.
In totale, il processo automatizzato di revisione delle modifiche di Pysa ha identificato 330 problemi, di cui 49 (15%) sono stati classificati come gravi e 131 (40%) come non gravi. In 150 casi (45%) i problemi sono stati classificati come falsi positivi.

Fonte: opennet.ru

Aggiungi un commento