Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mariana-trench — Un outil d'analyse statique orienté sécurité pour les applications Android et Java. | Kitploit
Outils/GitHubGitHub/facebook/mariana-trench
Sécurité AndroidAnalyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeSécurité Mobile
GitHubfacebook/mariana-trench

mariana-trench

Un outil d'analyse statique orienté sécurité pour les applications Android et Java.

Voir le dépôt
1.2k156il y a 5h 44mVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Mariana Trench

logo

MIT License .github/workflows/tests.yml

Mariana Trench est une plateforme d'analyse statique orientée sécurité ciblant Android.

Ce guide vous accompagnera dans l'installation de Mariana Trench sur votre machine et vous permettra de trouver votre première vulnérabilité d'exécution de code à distance dans une petite application exemple. Ces instructions sont également disponibles sur notre site web.

Prérequis

Mariana Trench nécessite une version récente de Python. Sur MacOS, vous pouvez obtenir une version récente via homebrew :

root@kitploit:~
$ brew install python3

Sur un Linux de type Debian (Ubuntu, Mint, Debian), vous pouvez utiliser apt-get :

root@kitploit:~
$ sudo apt-get install python3 python3-pip python3-venv

Ce guide suppose également que vous avez installé le Android SDK et une variable d'environnement $ANDROID_SDK pointant vers l'emplacement du SDK.

Pour le reste de ce guide, nous supposons que vous travaillez dans un environnement virtuel. Vous pouvez le configurer avec

root@kitploit:~
$ python3 -m venv ~/.venvs/mariana-trench
$ source ~/.venvs/mariana-trench/bin/activate
(mariana-trench)$

Le nom de l'environnement virtuel devant votre invite de commande indique que l'environnement virtuel est actif.

Installation de Mariana Trench

Dans votre environnement virtuel, installer Mariana Trench est aussi simple que d'exécuter

root@kitploit:~
(mariana-trench)$ pip install mariana-trench

Remarque : pip install n'est actuellement pas pris en charge pour les Macs Apple Silicon ; vous pouvez compiler depuis les sources en suivant les instructions dans le Guide du développeur.

Exécution de Mariana Trench

Nous allons utiliser une petite application faisant partie de notre documentation. Vous pouvez l'obtenir en exécutant

root@kitploit:~
(mariana-trench)$ git clone https://github.com/facebook/mariana-trench
(mariana-trench)$ cd mariana-trench/

Nous sommes maintenant prêts à exécuter l'analyse

root@kitploit:~
(mariana-trench)$ mariana-trench \
  --system-jar-configuration-path=configuration/default_system_jar_paths.json \
  --model-generator-configuration-paths=configuration/default_generator_config.json \
  --lifecycles-paths=configuration/lifecycles.json \
  --rules-paths=configuration/rules.json \
  --apk-path=documentation/sample-app/app/build/outputs/apk/debug/app-debug.apk \
  --source-root-directory=documentation/sample-app/app/src/main/java \
  --model-generator-search-paths=configuration/model-generators/

# ...
INFO Analyzed 68937 models in 7.47s. Found 9 issues!
# ...

L'analyse a trouvé 9 problèmes dans notre application exemple. La sortie de l'analyse est un ensemble de spécifications pour chaque méthode de l'application.

Post-traitement

Les spécifications elles-mêmes ne sont pas destinées à être lues par des humains. Nous avons besoin d'une étape de traitement supplémentaire pour rendre les résultats plus présentables. Nous faisons cela avec SAPP installé via PyPi :

root@kitploit:~
(mariana-trench)$ sapp --tool=mariana-trench analyze .
(mariana-trench)$ sapp --database-name=sapp.db server --source-directory=documentation/sample-app/app/src/main/java
# ...
2021-05-12 12:27:22,867 [INFO]  * Running on http://localhost:13337/ (Press CTRL+C to quit)

La dernière ligne de la sortie nous indique que SAPP a démarré un serveur web local qui nous permet de consulter les résultats. Ouvrez le lien et vous verrez les 4 problèmes trouvés par l'analyse.

Exploration des résultats

Concentrons-nous sur le problème d'exécution de code à distance trouvé dans l'application exemple. Vous pouvez l'identifier par son code de problème 1 (pour toutes les exécutions de code à distance) et l'appelable void MainActivity.onCreate(Bundle). Avec seulement 4 problèmes à voir, il est facile d'identifier le problème manuellement, mais une fois que plus de règles sont exécutées, la fonctionnalité de filtre en haut à droite de la page devient pratique.

Single Issue Display

Le problème vous indique que Mariana Trench a trouvé une exécution de code à distance dans MainActivity.onCreate où les données proviennent de Activity.getIntent à un appel de distance, et s'écoulent dans le constructeur de ProcessBuilder à trois appels de distance. Cliquez sur « Traces » dans le coin supérieur droit du problème pour voir un exemple de trace.

La trace révélée par Mariana Trench se compose de trois parties.

La trace source représente d'où proviennent les données. Dans notre exemple, la trace est très courte : Activity.getIntent est appelée directement dans MainActivity.onCreate. Trace Source

La racine de la trace représente où la trace source rencontre la trace sink. Dans notre exemple, il s'agit de la méthode onCreate de l'activité. Trace Root

La dernière partie de la trace est la trace sink : c'est là que les données de la source s'écoulent dans un sink. Dans notre exemple, de onCreate à onClick, à execute, et enfin dans le constructeur de ProcessBuilder. Trace Sink

Configuration de Mariana Trench

Vous vous demandez peut-être : « comment l'outil sait-il ce qui est une donnée contrôlée par l'utilisateur et ce qui est un sink ? ». Ce guide est destiné à vous aider à démarrer rapidement sur une petite application. Nous n'avons pas couvert comment configurer Mariana Trench. Vous pouvez en lire plus sur notre site web sous Configuration.

Contribuer

Pour un guide détaillé sur la compilation depuis les sources et le développement sur Mariana Trench, consultez le Guide du développeur sur notre site web.

Licence

Mariana Trench est sous licence MIT.

Télécharger l’outil