Fosa de las Marianas es una plataforma de análisis estático centrada en la seguridad para Android.
Esta guía lo guía a través de la configuración de Mariana Trench en su computadora y le permite encontrar su primera vulnerabilidad de ejecución remota de código en una pequeña aplicación de muestra. Estas instrucciones también están disponibles en nuestro sitio web.
Mariana Trench requiere la última versión de Python. En MacOS, puede obtener la versión actual a través de homebrew:
$ brew install python3
En versiones Debian de Linux (Ubuntu, Mint, Debian) puede usar apt-get
:
$ sudo apt-get install python3 python3-pip python3-venv
Esta guía también asume que tiene el SDK de Android instalado y las variables de entorno $ANDROID_SDK
Apunta a la ubicación del SDK.
Para el resto de esta guía, asumiremos que está trabajando en un entorno virtual.puedes configurar esto
$ python3 -m venv ~/.venvs/mariana-trench $ source ~/.venvs/mariana-trench/bin/activate (mariana-trench)$
El nombre del entorno virtual antes del indicador de shell indica que el entorno virtual está activo.
Instalar la Fosa de las Marianas
Instalar Mariana Trench en tu entorno virtual es tan fácil como ejecutar
(mariana-trench)$ pip install mariana-trench
Corriendo la Fosa de las Marianas
Usaremos una pequeña aplicación que forma parte de nuestra documentación.Puedes conseguirlo corriendo
(mariana-trench)$ git clon https://github.com/facebook/mariana-trench
(mariana-trench)$ cd mariana-trench/documentation/sample-app
Ahora estamos listos para ejecutar el análisis.
(Fosa de las Marianas)$Fosa de las Marianas\
–system-jar-configuration-path=$ANDROID_SDK/plataformas/android-30/android.jar \
–apk-path=muestra-aplicación-debug.apk \
–source-root-directory=app/src/main/java
…
Una generaciónNFO analizó 68886 modelos en 4,04 segundos. 4 preguntas encontradas!
…
El análisis encontró 4 problemas en nuestra aplicación de muestra. El resultado del análisis es un conjunto de especificaciones para cada método de la aplicación.
La especificación en sí no significa que pueda ser leída por humanos. Necesitamos un paso de procesamiento adicional para que el resultado sea más expresivo. Hacemos esto usando el SAPP PyPi instalado para nosotros:
(mariana-trench)$ sapp –tool=análisis de mariana-trench.
(mariana-trench)$ sapp –database-name=sapp.db server –source-directory=app/src/main/java
…
2021-05-12 12:27:22,867 [INFO] * Ejecutar en http://localhost:5000/ (presione CTRL+C para salir)
La última línea de la salida nos dice que SAPP inició un servidor web local, veamos los resultados. Abra el enlace y verá los 4 problemas encontrados por el análisis.
Centrémonos en el problema de ejecución de código remoto que se encuentra en la aplicación de ejemplo.Puedes identificarlo por su código de problema 1
(para toda la ejecución remota de código) y llamable void MainActivity.onCreate(Bundle)
Con solo mirar 4 preguntas, es fácil identificarlas manualmente, pero una vez que ejecute más reglas, la función de filtro en la esquina superior derecha de la página será útil.
Esta pregunta te dice que Mariana Trench es MainActivity.onCreate
¿De dónde provienen los datos? Activity.getIntent
una llamada, que luego fluye hacia el constructor ProcessBuilder
Quedan 3 llamadas. Haga clic en «Seguimiento» en la esquina superior derecha del problema para ver un seguimiento de muestra.
Las huellas que emergen de la Fosa de las Marianas constan de tres partes.
Esta Seguimiento de la fuente Indica la fuente de los datos. En nuestro ejemplo, la traza es muy corta: Activity.getIntent
ser llamado MainActivity.onCreate
directamente.
Esta rastrear la raíz Indica la ubicación del seguimiento de fuente y el seguimiento de sumidero.En nuestro ejemplo, este es el activo. onCreate
método.
La última parte de la traza es cita: Aquí es donde los datos del origen fluyen hacia el sumidero.En nuestro caso onCreate
llegar onClick
llegar execute
y finalmente en el constructor ProcessBuilder
.
Configuración de la Fosa de las Marianas
Es posible que se pregunte: «¿Cómo sabe la herramienta qué son los datos controlados por el usuario y qué es un receptor?». Esta guía está diseñada para ayudarlo a comenzar rápidamente con aplicaciones pequeñas. No cubrimos cómo configurar la Fosa de las Marianas. Puede leer más sobre esto en nuestro sitio web en «Configuración».