
Laboratorio práctico de formación en seguridad Android de OWASP con 78 módulos MASVS/MASTG que emparejan aplicaciones vulnerables, seguras y atacantes para demostrar debilidades móviles y sus correcciones.
Proyecto Oficial de OWASP — Un Laboratorio Práctico de Formación en Seguridad OWASP MASVS/MASTG para Desarrolladores de Android y Pentesters — Arquitectura Espejo: Vulnerable ↔ Seguro ↔ Atacante
La Android Security Masterclass es un proyecto oficial de OWASP diseñado con una Arquitectura Espejo para enseñar a desarrolladores de Android e investigadores de seguridad exactamente cómo se ven las vulnerabilidades y exactamente cómo solucionarlas utilizando prácticas modernas de desarrollo en Android.
En lugar de buscar errores en bases de código Java obsoletas, este proyecto utiliza un stack tecnológico de vanguardia (Kotlin, Jetpack Compose, MVVM, Material 3) y está estructurado en torno a un sistema "Package-by-Feature" masivamente escalable.
🌐 Portal del Proyecto OWASP y Documentación:
- Página del Proyecto OWASP: https://owasp.org/projects/android-security-masterclass
- Portal de Documentación: https://owasp.github.io/Android-Security-Masterclass/
- Whitepaper y Matriz de Mapeo de 78 Módulos: Disponible en el portal de documentación.
graph TD
COMMON("🧱 :common<br/>Shared Data · Theme<br/>Dashboard Metadata")
subgraph FEATURES ["📦 Package-by-Feature (78 Isolated MASWE Modules)"]
direction LR
M1(":features:maswe0001<br/>Private Storage")
M2(":features:maswe0002<br/>External Storage")
M5(":features:maswe0005<br/>Logging Leaks")
MDOT("...<br/>... ")
M78(":features:maswe0078<br/>Privacy")
end
VULN("❌ :app-vulnerable<br/>Thin Shell Orchestrator")
SEC("✅ :app-secure<br/>Thin Shell Orchestrator")
ATK("😈 :app-attacker<br/>Simulated Malware")
COMMON --> FEATURES
FEATURES -- "Insecure Implementation" --> VULN
FEATURES -- "Hardened Implementation" --> SEC
VULN -. "Active Exploit<br/>IPC / Logcat" .-> ATK
classDef common fill:#4A90D9,stroke:#2C5F8A,color:#fff,stroke-width:2px,font-weight:bold
classDef feat fill:#F39C12,stroke:#D35400,color:#fff,stroke-width:2px,font-weight:bold
classDef vuln fill:#E74C3C,stroke:#C0392B,color:#fff,stroke-width:2px,font-weight:bold
classDef secure fill:#27AE60,stroke:#1E8449,color:#fff,stroke-width:2px,font-weight:bold
classDef attacker fill:#8E44AD,stroke:#6C3483,color:#fff,stroke-width:2px,font-weight:bold
class COMMON common
class M1,M2,M5,MDOT,M78 feat
class VULN vuln
class SEC secure
class ATK attackerEl proyecto utiliza una arquitectura Hiper-Modular que abarca más de 80 módulos en total:
MasterclassDataA diferencia de otros proyectos educativos que utilizan datos triviales ("admin:password"), nuestras simulaciones de fuga utilizan payloads de grado regulatorio:
💡 Consejo: Puedes ver todos estos datos simulados en vivo en tu dispositivo pulsando el botón "Data Vault" en el Dashboard de la app vulnerable o de la segura.
Hemos mapeado todo el estándar OWASP MASVS en 78 módulos distintos a través de 8 dominios:
Los siguientes módulos tienen su lógica de negocio, arquitectura MVI, pruebas unitarias y simulaciones de ataque/defensa completamente implementadas:
-assumenosideeffects) y wrappers SecureLog.adb backup o copia de seguridad en la nube de Google Drive. Endurecido mediante android:allowBackup="false", dataExtractionRules y fullBackupContent.(Consulta el docs/mapping_matrix.md en el sitio de MkDocs para el desglose completo de los 78 vectores).
app-vulnerable o app-secure y despliégala en un emulador.Build Variants y selecciona debug. Ejecuta la app y revisa Logcat. Verás las fugas en la app vulnerable.release. La minificación de R8 (ProGuard) se activará. ¡En app-secure, todos los logs críticos serán eliminados por completo!:app-attacker)Para ver las consecuencias reales de estas vulnerabilidades, instala el módulo :app-attacker junto con :app-vulnerable en el mismo dispositivo.
graph LR
subgraph VICTIM ["❌ :app-vulnerable"]
direction TB
LOG("📋 Log.d sends PII<br/>to system Logcat")
FP("📂 FileProvider<br/>exported paths")
end
subgraph MALWARE ["😈 :app-attacker"]
direction TB
LE("🔍 LogcatExploitScreen<br/>reads all logs")
ER("📥 ExploitReceiverScreen<br/>steals files via URI")
end
LOG -- "READ_LOGS permission" --> LE
FP -- "content:// URI interception" --> ER
classDef victim fill:#E74C3C,stroke:#C0392B,color:#fff,stroke-width:2px
classDef malware fill:#8E44AD,stroke:#6C3483,color:#fff,stroke-width:2px
class LOG,FP victim
class LE,ER malwareConceder el Permiso READ_LOGS (Para MASWE-0005):
Por defecto, Android no permite que las apps lean los logs del sistema. Para demostrar cómo una app maliciosa puede leer logs si se le concede permiso (o en dispositivos rooteados/antiguos), debes conceder este permiso manualmente vía ADB:
adb shell pm grant com.hasantuncay.mobsec.attacker android.permission.READ_LOGS
Nota para Dispositivos Físicos: Si pruebas en MIUI, ColorOS, etc., debes ir a Opciones de Desarrollador y habilitar "Depuración USB (ajustes de seguridad)" para permitir que ADB conceda permisos.
Este proyecto ha sido creado estrictamente con fines educativos. Las vulnerabilidades demostradas en el módulo :app-vulnerable son reales y peligrosas. No utilices el código del módulo :app-vulnerable en entornos de producción. Consulta siempre el módulo :app-secure para las mejores prácticas.
¡Damos la bienvenida a las contribuciones de la comunidad! Por favor, lee nuestra completa Guía de Contribución antes de abrir un Pull Request. Cubre nuestra filosofía de proyecto (Arquitectura Espejo Package-by-Feature), estándares de código y el proceso paso a paso para generar e implementar lógica dentro de los módulos :features:masweXXXX.
Líder del Proyecto:
Comunidad y Soporte:
| Capa de Módulo | Rol | Estado |
|---|
:common | La base. Contiene el generador de payloads de alta fidelidad MasterclassData, los metadatos del Dashboard, el tema central de UI y los componentes de navegación genéricos. | Base ✅ |
:features:masweXXXX | 78 módulos Gradle totalmente aislados (0001 a 0078). Cada módulo contiene tanto la lógica vulnerable como la segura para una única debilidad específica, evitando por completo la fuga de código entre módulos. | 78 Módulos Generados ✅ |
:app-vulnerable | Una app orquestadora "Thin Shell". Conecta los componentes de UI inseguros de los 78 módulos de características para demostrar la consecuencia exacta de las violaciones de OWASP. | Activo ✅ |
:app-secure | Una app orquestadora "Thin Shell". Conecta las implementaciones seguras utilizando estándares modernos (Jetpack Security, Tink, SQLCipher, ProGuard). | Activo ✅ |
:app-attacker | Una app maliciosa de terceros simulada. Demuestra exploits IPC en vivo mediante un proceso secundario que se ejecuta simultáneamente en el dispositivo. | Activo ✅ |