Mariana Trench, analizzatore di codice statico open source di Facebook

Facebook svelato pochi giorni fa ha rilasciato l'analizzatore statico open source, Mariana Trench, che ha lo scopo di identificare le vulnerabilità nelle applicazioni Android e nei programmi Java.

A viene fornita la capacità di analizzare progetti senza codici sorgente, per cui è disponibile solo il bytecode per la macchina virtuale Dalvik. Un altro vantaggio è l'altissima velocità di esecuzione (l'analisi di diversi milioni di righe di codice richiede circa 10 secondi), che consente di utilizzare Mariana Trench per verificare tutte le modifiche proposte man mano che vengono introdotte.

L'analizzatore è stato sviluppato come parte di un progetto per automatizzare il processo di revisione del codice fonte di applicazioni mobili di Facebook, Instagram e Whatsapp.

Condividiamo i dettagli su Mariana Trench (MT), uno strumento che utilizziamo per rilevare e prevenire errori di sicurezza e privacy nelle applicazioni Android e Java. Come parte del nostro sforzo per aiutare a scalare la sicurezza attraverso l'automazione degli edifici, abbiamo recentemente aperto MT per supportare gli ingegneri della sicurezza su Facebook e in tutto il settore.

Questo post è il terzo della nostra serie di approfondimenti sugli strumenti di analisi statica e dinamica di cui ci fidiamo. MT è l'ultimo sistema, dopo Zoncolan e Pysa, creato rispettivamente per codice Hack e Python.

Nella prima metà del 2021, metà di tutte le vulnerabilità nelle applicazioni mobili di Facebook sono state identificate utilizzando strumenti di analisi automatizzata. Il codice di Mariana Trench è strettamente intrecciato con altri progetti di Facebook, ad esempio, l'operazione di ottimizzazione del bytecode Redex viene utilizzata per analizzare il bytecode e la libreria SPARTA viene utilizzata per l'interpretazione visiva e lo studio dei risultati.analisi statica.

Le potenziali vulnerabilità e i problemi di sicurezza vengono identificati analizzando i flussi di dati durante l'esecuzione della domanda, che permette di identificare le situazioni in cui i dati esterni grezzi vengono elaborati in costrutti pericolosi, come query SQL, operazioni sui file e chiamate che portano all'avvio di programmi esterni.

MT è progettato per essere in grado di eseguire la scansione di basi di codice mobili di grandi dimensioni e segnalare potenziali problemi nelle richieste pull prima che entrino in produzione. È stato creato come risultato di una stretta collaborazione tra la sicurezza di Facebook e gli ingegneri del software, che addestrano MT a guardare il codice e analizzare come i dati fluiscono attraverso di esso. L'analisi dei flussi di dati è utile perché molti problemi di sicurezza e privacy possono essere modellati come flussi di dati dove non dovrebbero.

Il lavoro dell'analizzatore si riduce a determinare fonti di dati e chiamate pericolose, dove i dati originali non dovrebbero essere usati: Il parser monitora il passaggio dei dati attraverso la catena di chiamate di funzione e collega i dati iniziali a punti potenzialmente pericolosi nel codice.

Poiché in MT, un flusso di dati può essere descritto da:

  • Fonte: un punto di origine. Può essere una stringa controllata dall'utente che accede all'applicazione tramite `Intent.getData`.
  • Lavello: una destinazione. Su Android, può essere una chiamata a "Log.w" o a "Runtime.exec". Ad esempio, i dati di una chiamata a Intent.getData sono considerati un'origine da monitorare e le chiamate a Log.w e Runtime.exec sono considerati usi pericolosi.

Una grande base di codice può contenere molti tipi diversi di sorgenti e corrispondenti ricevitori. Possiamo dire a MT di mostrarci flussi specifici definendo regole.

Una regola potrebbe specificare, ad esempio, che vogliamo trovare intent redirect (problemi che consentono agli aggressori di intercettare dati sensibili) definendo una regola che ci mostri tutte le tracce da sorgenti "controllate dall'utente" a un sink di "reindirizzamenti di intenzioni".

Infine se sei interessato a saperne di più, puoi controllare il dettagli nel seguente link.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.