
Sicuro, Unificato, Potente ed Estensibile Analizzatore Android in Rust
Analizzatore Android Rust: Sicuro, Unificato, Potente ed Estensibile
SUPER è un'applicazione a riga di comando utilizzabile su Windows, macOS X e Linux, che analizza file .apk alla ricerca di vulnerabilità. Lo fa decomprimendo gli APK e applicando una serie di regole per rilevare tali vulnerabilità.
Ma perché creare un nuovo analizzatore? MobSF, Qark, Androbugs... non bastano? Beh, crediamo non siano sufficienti. Tutti hanno due problemi principali che volevamo risolvere: sono scritti in Java o Python e non sono facilmente estendibili. Non sono pensati per essere utilizzati direttamente da aziende che lavorano nell'analisi Android e non mettono questo tipo di funzionalità al primo posto.
Il nostro approccio risolve questi problemi in modi diversi: per prima cosa abbiamo deciso di usare Rust come linguaggio di programmazione. Il linguaggio sviluppato apertamente dalla Mozilla Foundation ci offre molte utilità per lavorare con espressioni regolari, file ecc. e, soprattutto, ci permette di creare un software sicuro che non dipende da compilatori JVM o JIT. Con Rust, overflow di stack, errori di segmentazione ecc. non sono direttamente possibili, il che ha senso in un'applicazione incentrata sulla sicurezza. E ci dà anche abbastanza potenza per eseguire analisi efficienti, offrendoci la possibilità di automatizzarle in grandi volumi. Questo è dato dalle astrazioni a costo zero di Rust, che ci forniscono un'efficienza paragonabile solo a C/C++.
In secondo luogo, abbiamo deciso di rendere il software 100% estensibile: tutte le regole sono
centralizzate in un file rules.json, e ogni azienda o tester può creare le proprie regole per
analizzare ciò di cui ha bisogno. È anche modulare, così che nuovi sviluppi possano facilmente
aggiungere nuove funzionalità. Infine, un sistema di templating per i report dei risultati consente
agli utenti di personalizzare il report.
Fornisce anche ottimi strumenti di revisione del codice, direttamente nel report HTML, in modo che chiunque possa cercare nel codice generato con evidenziazione della sintassi per un'analisi delle vulnerabilità ancora migliore.
Abbiamo rilasciato alcuni binari nella pagina di download per Windows (8.1+), Linux e macOS X. Per ora abbiamo solo pacchetti a 64 bit. Se hai bisogno di usare SUPER su un sistema a 32 bit, dovrai compilare SUPER dal sorgente. Per farlo, dovrai installare Rust con rustup.rs.
Nota: Richiede Java 1.7+ per funzionare.
SUPER è molto facile da usare. Basta scaricare il file .apk desiderato nella cartella downloads (crea quella cartella se necessario) e usare il nome come argomento quando si esegue il programma. Dopo l'esecuzione, un report dettagliato apparirà nella cartella results con il nome di quell'applicazione. Sono disponibili alcune opzioni di utilizzo:
USAGE:
super [FLAGS] [OPTIONS] <package>
FLAGS:
--bench Show benchmarks for the analysis
--force If you'd like to force the auditor to do everything from the beginning
-h, --help Prints help information
--html Generates the reults in HTML format
--json Generates the reults in JSON format
--open Open the report in a browser once it is complete
-q, --quiet If you'd like a zen auditor that won't output anything in stdout
-a, --test-all Test all .apk files in the downloads directory
-V, --version Prints version information
-v, --verbose If you'd like the auditor to talk more than necessary
OPTIONS:
--dex2jar <dex2jar> Where to store the jar files
--dist <dist> Folder where distribution files will be extracted
--downloads <downloads> Folder where the downloads are stored
--jd-cmd <jd-cmd> Path to the jd-cmd file
--min-criticality <min_criticality> Set a minimum criticality to analyze (Critical, High, Medium, Low)
--results <results> Folder where to store the results
--rules <rules> Path to a JSON rules file
--template <template> Path to a results template file
-t, --threads <threads> Number of threads to use, by default it will use one thread per logical CPU core
ARGS:
<package> The package string of the application to test
Tutti sono invitati a contribuire a SUPER. Consulta le Linee guida per contribuire a SUPER per istruzioni su come procedere.
Questo programma è software libero: puoi ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation, sia la versione 3 della Licenza, o (a tua scelta) qualsiasi versione successiva.