
mobileAudit v3.2.0
Aplicación Django que realiza análisis SAST y de malware para APKs de Android
Auditoría Móvil

MobileAudit - Análisis SAST y de malware para APKs de Android
Una aplicación web Django para realizar análisis estático y detectar contenido malicioso dentro de APKs de Android. El proyecto extrae metadatos de la aplicación, escanea el código fuente en busca de debilidades y agrega resultados (hallazgos SAST, buenas prácticas, información de certificados, cadenas, bases de datos, archivos, VirusTotal y más) en un panel navegable y una API.
Documentación de DeepWiki: https://deepwiki.com/mpast/mobileAudit
- Componentes
- Imágenes base Docker
- Características principales
- Patrones
- Modelos
- Instalación
- API v1
- TLS
- Variables de entorno

En cada uno de los análisis, se tendrá la siguiente información:
- Información y análisis del APK: Información de la aplicación, información de seguridad, componentes, información del certificado, cadenas, bases de datos, archivos
- Hallazgos SAST categorizados con mapeo a CWE y Mobile Top 10
- Motor de patrones con reglas activables/desactivables
- Verificaciones de dominios de malware contra MalwareDB y Maltrail
- Consulta a VirusTotal (API v3) y carga opcional (deshabilitada por defecto)
- Integración con DefectDojo (API v2) (opcional) para exportar hallazgos
- API con Swagger y ReDoc, más autenticación basada en tokens
- Exportar informes de análisis a PDF
- Hallazgos editables con clasificación de falsos positivos

Para facilitar el acceso, hay una barra lateral en la página izquierda del análisis:

Componentes

- db: PostgreSQL 3.11.5
- nginx: Nginx 1.23.3
- rabbitmq: RabbitMQ 3.11.5
- worker: Celery 5.2.2
- web: Aplicación Mobile Audit (Django 3.2.16)
Imágenes base Docker
La imagen está basada en python buster. Enlace a la imagen de Docker Hub
| Imagen | Etiquetas | Base |
|---|---|---|
| mpast/mobile_audit | 3.0.0 | python:3.9.16-buster |
| mpast/mobile_audit | 2.2.1 | python:3.9.7-buster |
| mpast/mobile_audit | 1.3.8 | python:3.9.4-buster |
| mpast/mobile_audit | 1.0.0 | python:3.9.0-buster |
Características principales
- Se ejecuta en Docker para un despliegue fácil y reproducible
- Extrae y muestra información detallada del APK
- Reglas SAST que se mapean a CWE y riesgos Mobile Top 10
- Detección de indicadores de malware (MalwareDB / Maltrail)
- Puntos de integración para VirusTotal y DefectDojo (opcional)
- Exportar resultados de análisis a PDF
- Autenticación de usuarios, gestión y API basada en tokens
- Documentación con Swagger y ReDoc
- Configuración de Nginx preparada para TLS en producción
Planificado / lista de deseos
- Integración LDAP
- Exportar a Markdown / CSV
- Mejoras en la recarga dinámica de la página (WIP)
Patrones
- La aplicación incluye un motor de reglas/patrones que detecta posibles vulnerabilidades y fragmentos maliciosos dentro de los APKs.
- Los patrones son configurables y se pueden activar/desactivar desde la interfaz
/patterns. - Nota: Algunos patrones codificados provienen del proyecto apkleaks: https://github.com/dwisiswant0/apkleaks

Modelos
La aplicación tiene modelos creados para cada una de las entidades de la información de los análisis, para poder crear relaciones y obtener las mejores conclusiones para cada uno de los APKs.

Para ver el esquema completo del modelo, vaya a models
Instalación
Usando Docker-compose:
El archivo docker-compose.yml proporcionado le permite ejecutar la aplicación localmente en desarrollo.
Para construir la imagen local y si hay cambios en el Dockerfile local de la aplicación, puede construir la imagen con:
docker-compose build
Luego, para iniciar el contenedor, ejecute:
docker-compose up
Opcional: ejecutar en modo detached (no ver los registros)
docker-compose up -d
Una vez que la aplicación se haya iniciado, puede probarla navegando a: http://localhost:8888/ para acceder al panel.

Además, hay una versión TLS usando docker-compose.prod.yaml que se ejecuta en el puerto 443
Para usarlo, ejecute
docker-compose -f docker-compose.prod.yaml up
Luego, puede probar la aplicación navegando a: https://localhost/ para acceder al panel.
Para más información, consulte TLS
Para detener y eliminar los contenedores, ejecute
docker-compose down
API v1
Integración de API REST con Swagger y ReDoc.
Uso
- Punto final para autenticarse y obtener token:
/api/v1/auth-token/

- Una vez autenticado, use el encabezado en todas las solicitudes:
Authorization: Token <ApiKey>
Swagger

ReDoc

Puntos finales
- Una vista JSON de la especificación de la API en
/swagger.json - Una vista YAML de la especificación de la API en
/swagger.yaml - Una vista swagger-ui de la especificación de la API en
/swagger/ - Una vista ReDoc de la especificación de la API en
/redoc/
TLS
Requisitos previos
- Añada los certificados en
nginx/ssl - Para generar un certificado autofirmado:
openssl req -x509 -nodes -days 1 -newkey rsa:4096 -subj "/C=ES/ST=Madrid/L=Madrid/O=Example/OU=IT/CN=localhost" -keyout nginx/ssl/nginx.key -out nginx/ssl/nginx.crt
Configuración de Nginx
- TLS - puerto 443:
nginx/app_tls.conf - Estándar - puerto 8888:
nginx/app.conf
Configuración Docker
Por defecto, hay un volumen en docker-compose.yml con la configuración con el puerto 8888 disponible
- ./nginx/app.conf:/etc/nginx/conf.d/app.conf
En un entorno de producción use docker-compose.prod.yaml con el puerto 443
- ./nginx/app_tls.conf:/etc/nginx/conf.d/app_tls.conf
Variables de entorno
Todas las variables de entorno están en un archivo .env, hay un .env.example con todas las variables necesarias. También están recogidas en app/config/settings.py
Ajustes mínimos sugeridos para .env en desarrollo local
- Establezca SECRET_KEY, credenciales de la base de datos y credenciales del usuario administrador.
- Deje VirusTotal / DefectDojo deshabilitados a menos que tenga claves API válidas y servicios disponibles.
Contribuir
Si desea contribuir, consulte Contributing