Parte: 6 — Análisis de malware · Fuente: Learning Malware Analysis y OWASP Mobile Security ⏱️ Duración estimada: 120 min · Nivel: Avanzado
Analizar aplicaciones Android maliciosas: entender el formato APK, descompilar el bytecode Dalvik a algo legible, revisar el manifiesto y los permisos, y reconstruir el comportamiento (robo de SMS/credenciales, overlays bancarios, spyware). El alumno aprenderá el flujo estático y dinámico con un emulador aislado.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Estructura APK y Android Manifest | Punto de partida del análisis |
| 2 | Permisos y componentes exportados | Superficie de abuso |
| 3 | Bytecode Dalvik y Smali | El código real de la app |
| 4 | Descompilación a Java | Lectura rápida de la lógica |
| 5 | Abuso de Accessibility y overlays | Técnicas de troyanos bancarios |
| 6 | C2 y exfiltración | Robo de datos y control |
| 7 | Análisis dinámico en emulador | Comportamiento real |
⚠️ Nota ética y de seguridad: instala y ejecuta APKs maliciosos solo en un emulador aislado (sin cuentas reales, sin SIM, sin red hacia Internet salvo el proxy del lab). Nunca en tu teléfono personal. Trabaja únicamente con muestras autorizadas.
Estático:
apktool d muestra.apk. Revisa AndroidManifest.xml: permisos (READ_SMS, SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE) y componentes exported.jadx-gui muestra.apk. Localiza el Application/servicios y sigue el flujo desde onCreate/receivers de SMS.SmsManager, AccessibilityService, WebView (overlays).Dinámico:
adb install muestra.apk) con snapshot previo.Analiza un APK malicioso y entrega un informe con: permisos peligrosos, componentes exportados, técnica principal (overlay/SMS/spyware), C2 e IOCs, respaldado por descompilado y captura de tráfico. Criterio de aceptación: identificas la capacidad principal con la evidencia del código descompilado y capturas al menos un endpoint C2 en mitmproxy, sin haber usado un dispositivo real.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| Instalar en el móvil personal | Riesgo real; usa solo emulador aislado |
| jadx falla al descompilar | Ofuscación/anti-descompilación; usa Smali de apktool |
| Sin tráfico TLS legible | Falta el CA del proxy o hay pinning; instala CA y bypass con Frida |
| Permisos "normales" pero malicioso | Revisa accesibilidad y APIs, no solo el manifiesto |
| Multi-DEX incompleto | La app tiene varios DEX; asegúrate de analizarlos todos |
❓ ¿Basta el análisis estático? Da mucho (permisos, C2, lógica), pero la ofuscación y la carga dinámica exigen análisis dinámico con emulador y Frida.
❓ ¿Qué es el certificate pinning y cómo lo supero? La app valida el certificado del servidor; para inspeccionar TLS en el lab se hace bypass con Frida en el emulador.
❓ ¿Por qué la accesibilidad es tan peligrosa? Permite leer y controlar toda la interfaz: capturar credenciales, autorizar acciones y ocultar la actividad al usuario.