Tutoriales

Herramienta de análisis estático centrada en la seguridad

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.

requisitos previos

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.

Postprocesamiento

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.

Explorar resultados

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 onCreatellegar onClickllegar executey 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».

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Botón volver arriba