
Analyseur Android Rust sécurisé, unifié, puissant et extensible
Analyseur Android Rust sécurisé, unifié, puissant et extensible
SUPER est une application en ligne de commande utilisable sur Windows, MacOS X et Linux, qui analyse les fichiers .apk à la recherche de vulnérabilités. Pour ce faire, il décompresse les APK et applique une série de règles pour détecter ces vulnérabilités.
Mais pourquoi créer un nouvel analyseur ? MobSF, Qark, Androbugs… ne suffisent-ils pas ? Eh bien, nous pensons que non. Tous présentent deux problèmes principaux que nous voulions résoudre : ils sont écrits en Java ou Python et ils ne sont pas facilement extensibles. Ils ne sont pas conçus pour être utilisés directement par les entreprises travaillant dans l'analyse Android, et ne placent pas ce type de fonctionnalité en priorité.
Notre approche résout ces problèmes de différentes manières : Nous avons d'abord choisi d'utiliser Rust comme langage de programmation. Le langage développé ouvertement par la Fondation Mozilla nous offre de nombreuses utilités pour travailler avec les expressions régulières, les fichiers, etc. et, surtout, il nous permet de créer un logiciel sécurisé qui ne dépend pas de compilateurs JVM ou JIT. Avec Rust, les débordements de pile, les erreurs de segmentation, etc. sont directement impossibles, ce qui est logique dans une application axée sur la sécurité. Et cela nous donne également assez de puissance pour effectuer une analyse efficace, avec la possibilité de l'automatiser en grand volume. Ceci est permis par les abstractions à coût zéro de Rust, qui offrent une efficacité comparable seulement au C/C++.
Deuxièmement, nous avons décidé de rendre le logiciel 100 % extensible : toutes les règles sont centralisées dans
un fichier rules.json, et chaque entreprise ou testeur peut créer ses propres règles pour analyser ce dont il a besoin.
Il est également modulaire, de sorte que les nouvelles fonctionnalités peuvent facilement être ajoutées. Enfin, un système
de modèles pour les rapports de résultats donne aux utilisateurs la possibilité de personnaliser le rapport.
Il offre également d'excellents outils de revue de code, directement dans le rapport HTML, afin que chacun puisse rechercher dans le code généré avec une coloration syntaxique pour une analyse encore meilleure des vulnérabilités.
Nous avons publié des binaires dans la page de téléchargement pour Windows (8.1+), Linux et MacOS X. Nous n'avons que des paquets 64 bits pour l'instant. Si vous devez utiliser SUPER sur un système 32 bits, vous devrez compiler SUPER à partir des sources. Pour cela, vous devrez installer Rust avec rustup.rs.
Remarque : nécessite Java 1.7+ pour fonctionner.
SUPER est très facile à utiliser. Téléchargez simplement le fichier .apk souhaité dans le dossier downloads (créez ce dossier si nécessaire) et utilisez le nom comme argument lors de l'exécution du programme. Après l'exécution, un rapport détaillé apparaîtra dans le dossier results avec le nom de cette application. Quelques options d'utilisation sont disponibles :
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
Tout le monde est invité à contribuer à SUPER. Veuillez consulter les Directives de contribution à SUPER pour obtenir des instructions sur la procédure à suivre.
Documentation de développement
Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public License telle que publiée par la Free Software Foundation, soit la version 3 de la Licence, soit (à votre discrétion) toute version ultérieure.