
Perspectivas de seguridad de Android en todo el espectro.
Información de seguridad de Android en espectro completo.
Características • Detección • Instalación • Uso • Informes
Presentado en Black Hat MEA 2023 y Black Hat ASIA 2024

APKDeepLens es una herramienta de análisis estático basada en Python para archivos APK de Android. Descompila los APK usando JADX y realiza un escaneo de seguridad profundo de múltiples capas que cubre el OWASP Mobile Top 10 (2024). Cada hallazgo está etiquetado con un nivel de gravedad (CRÍTICO / ALTO / MEDIO / BAJO / INFO) y una categoría OWASP, y los resultados se exportan en formato JSON, HTML, PDF o TXT.
Para ver los IDs completos de las comprobaciones, patrones regex y ejemplos de evidencia, consulte DETECTION.md.
Requisitos: Python 3.10+, Java / OpenJDK
git clone https://github.com/d78ui98/APKDeepLens.git
cd APKDeepLens
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python APKDeepLens.py --help
git clone https://github.com/d78ui98/APKDeepLens.git
cd APKDeepLens
python3 -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
python APKDeepLens.py --help
docker build -t apkdeeplens .
docker run --rm -v /path/to/apk/files:/apk apkdeeplens -apk /apk/file.apk
# Escaneo básico — genera informe JSON
python APKDeepLens.py -apk app.apk
# Omitir descompilación cuando el código fuente ya está extraído
python APKDeepLens.py -apk app.apk -source_code_path /path/to/source
# Generar informe HTML
python APKDeepLens.py -apk app.apk -report html
# Generar informe PDF
python APKDeepLens.py -apk app.apk -report pdf
# Generar informe en texto plano
python APKDeepLens.py -apk app.apk -report txt
# Especificar directorio de salida
python APKDeepLens.py -apk app.apk -report json -o /path/to/output/
# Omitir verificación de virtualenv (CI/CD)
python APKDeepLens.py -apk app.apk --ignore_virtualenv
Todos los informes se guardan en un subdirectorio reports/ de la ruta de salida.
Consulte DETECTION.md para ver el esquema completo de salida JSON.
APKDeepLens/
├── APKDeepLens.py # Punto de entrada principal
├── report_gen.py # Generación de informes (JSON, HTML, PDF, TXT)
├── report_template.html # Plantilla de informe HTML
├── requirements.txt
└── static_tools/
├── code_scanner.py # Escáner de seguridad de patrones de código profundo (más de 40 comprobaciones)
├── scan_android_manifest.py # Analizador de manifiesto + comprobador de seguridad
├── sensitive_info_extractor.py # Escáner de secretos codificados + URLs inseguras
├── known_false_positives.txt # Lista curada de filtros de falsos positivos
└── utility/
└── utility_class.py # Constantes compartidas (DANGEROUS_PERMISSIONS, util)
Las solicitudes de funciones, informes de errores y pull requests son bienvenidos en github.com/d78ui98/APKDeepLens/issues.
| Categoría | Comprobaciones | Rango de gravedad | OWASP |
|---|
| Seguridad del manifiesto | 10 | CRÍTICO → MEDIO | M3–M9 |
| Criptografía | 7 | CRÍTICO → MEDIO | M1, M10 |
| Seguridad de WebView | 6 | CRÍTICO → ALTO | M4, M5, M7, M9 |
| SSL / TLS | 5 | CRÍTICO → MEDIO | M5 |
| Ejecución dinámica de código | 4 | ALTO → MEDIO | M4, M7 |
| Almacenamiento inseguro de datos | 6 | ALTO → BAJO | M4, M6, M9 |
| Registros / Privacidad | 3 | MEDIO → BAJO | M6 |
| Seguridad de Intents | 2 | ALTO → MEDIO | M4 |
| Path traversal en ZIP | 1 | ALTO | M4 |
| Secretos codificados | 16+ | — | M1 |
| Comunicaciones inseguras | — | — | M5 |
| Formato | Descripción |
|---|
| JSON (predeterminado) | Legible por máquina. Todos los hallazgos incluyen id, severidad, owasp, descripción y evidencia. Ideal para integración en pipelines. |
| HTML / PDF | Tablas de gravedad con códigos de color — CRÍTICO en rojo, ALTO en naranja, MEDIO en ámbar. |
| TXT | Legible por humanos, hallazgos ordenados por gravedad con ubicaciones de archivo y descripciones. |