
El acceso a Internet democratizó el conocimiento fueras rico o pobre. La IA está destruyendo paso a paso esa conquista
Mayo 23, 2025
ESET participa en una operación global de disrupción de Lumma Stealer
Mayo 25, 2025El panorama de amenazas móviles evoluciona y presenta desafíos cada vez más sofisticados para la comunidad de ciberseguridad. Comprender las herramientas y técnicas fundamentales para el análisis de malware en dispositivos móviles es crucial para investigadores, analistas forenses y profesionales de seguridad.
Por ello, a continuación, veremos una guía básica para tener de referencia a la hora de efectuar nuestros análisis en dispositivos con sistema operativo Android o iOS.
¿Por qué es diferente analizar malware móvil respecto a sistemas tradicionales?
El análisis de malware en móviles, a diferencia del análisis sobre sistemas Windows, Linux, o macOS, presenta desafíos únicos:
- Sistemas operativos cerrados o semicerrados (como iOS).
- Entornos virtualizados y emulados fácilmente detectables.
- Fuertes restricciones de permisos y acceso al sistema de archivos.
- Técnicas evasivas avanzadas, como el dynamic code loading y la detección de análisis.
- Sin embargo, estas diferencias no deben alejarnos, sino estimularnos a vencer estos desafíos.
Al analizar malware, tanto en Android como en iOS, contamos con dos enfoques de análisis bien diferenciados que nos van a ayudar a determinar las características y el comportamiento del malware que estemos analizando.
Por un lado, está el enfoque estático con el que analizaremos la muestra sin ejecutarla y con el que vamos a observar las características como el hash, las cabeceras del archivo y su arquitectura, las strings, identificación de ofuscación y llamadas a APIs, entre otras.
El enfoque dinámico, por otro lado, analiza las características observadas en el enfoque estático y busca determinar cómo se comporta la pieza de código que estamos analizando en el sistema. Aquí, observaremos si el malware ejecuta procesos, si se inyecta en otros, si crea, modifica o borra archivos, y la actividad de red, entre otras.
Si bien, tanto en Android como en iOS, la lógica de contar con un entorno aislado de análisis y luego analizar las muestras de modo estático y dinámico se mantiene, a la hora de la práctica hay diferencias que iremos abordando en cada sección, pues al fin y al cabo son sistemas distintos cada uno con su naturaleza propia.
Consideraciones para un entorno de laboratorio seguro
Antes de comenzar, es importante entender que vamos a necesitar un entorno de pruebas aislado y seguro para realizar los análisis. Hay que recordar que vamos a analizar piezas de código potencialmente maliciosas y debemos evitar ser víctimas de ellas.
Como dijimos antes, existen diferencias entre Android y iOS, por lo que vamos a detallar las consideraciones en cada sistema sobre el que vayamos a realizar los análisis.
Entorno de pruebas sobre Android:
Será esencial disponer de una PC dedicada donde puedas tener:
- Emuladores personalizados como Android Studio Emulator, Genymotion con soporte para arquitecturas x86 y ARM, ya que esto permitirá emular las piezas de código, incluso con la posibilidad de elegir versiones de sistemas operativos específicos y también distintos modelos de smartphones
- ADB (Android Debug Bridge) para control y extracción de datos.
Es importante también contar con dispositivos físicos rooteados, ya que, frente a detecciones de emulación, es más confiable contar con un smartphone dedicado que nos ayudará a precisar muchos comportamientos de las piezas que vayamos a analizar.
Entorno de pruebas sobre iOS:
Preferentemente, contar un equipo que tenga Xcode y una cuenta de apple developer, porque en muchos casos será necesario reempaquetar piezas de código y firmarlas.
También será de importancia contar dispositivos iPhones que soporten las últimas versiones de iOS y para los que existan posibilidad de realizar jailbreak. El uso de dispositivos físicos sigue siendo preferido para análisis más precisos, ya que muchas muestras de malware detectan emuladores y alteran su comportamiento.
Frida, Cycript y Objection son las herramientas de instrumentación y hooking, con las que debes contar.
Análisis Estático y dinámico en Android
Luego, según el tipo de enfoque, estático o dinámico, agregaremos una cantidad de herramientas para complementar los análisis.
Tanto para Android y como iOS es fundamental contar con entornos fáciles de restaurar a un estado limpio tras cada análisis, veremos que será muy común tener que volver una y otra vez a la instancia del sistema base.
Análisis estático en Android:
El análisis estático permite inspeccionar el código sin ejecutarlo. Entre las técnicas básicas que vamos a necesitar ejecutar se encuentran:
1) Técnicas
Descompilación del APK
- Extraer AndroidManifest.xml, recursos y clases DEX.
- Herramientas: apktool, JADX, dex2jar.
Revisión del AndroidManifest
- Permisos sospechosos (e.g., READ_SMS, SEND_SMS, INTERNET, SYSTEM_ALERT_WINDOW).
- Componentes maliciosos ocultos (services, receivers).
Análisis de strings
- Buscar dominios, IPs, comandos, rutas, credenciales.
- Herramientas: strings, grep, MobSF.
Análisis de código Java/Dalvik
- Buscar patrones sospechosos: Runtime.exec, Base64, Crypto, WebView.loadUrl.
- Identificación de técnicas de ofuscación.
Inspección de certificados
- Validar firma del APK y certificados de terceros embebidos.
Análisis de bibliotecas nativas (C/C++)
- Revisión de librerías .so sospechosas con Ghidra o IDA
2) Herramientas
| Herramienta | Descripción |
| APKTool | Descompila recursos y manifiestos de APK |
| JADX / JEB / CFR | Descompiladores de código DEX a Java |
| MobSF | Análisis automatizado de APK estático y dinámico |
| Androguard | Framework en Python para analizar código DEX/APK |
| Bytecode Viewer | Visor múltiple de bytecode para DEX/JAR/APK |
| ClassyShark | Visualizador de APK y estructuras de clases |
| Quark Engine | Analizador estático con heurísticas para detectar malware en APK |
| VirusTotal | Subida de APK para escaneo rápido con múltiples motores |
| ApkLeaks | Busca información sensible (tokens, keys, endpoints) en APKs |
Análisis dinámico Android:
El comportamiento del malware suele revelarse solo durante la ejecución y es por ello que mientras que ejecutamos el malware debemos tener las siguientes consideraciones:
Ejecución controlada del APK
- En emulador o dispositivo real con ADB.
- Configurar red para monitoreo de tráfico.
Monitoreo del comportamiento en tiempo real
- Uso de logcat, strace, frida, objection.
Captura de tráfico de red
- Proxy: Burp Suite, mitmproxy, Wireshark.
- Verificar si hay SSL pinning activo.
Hooking e instrumentación
- Interceptar funciones y modificar comportamientos.
- Herramientas: Frida, Xposed, AppMon.
Bypass de técnicas anti-análisis
- Desactivar detección de root/emulador.
- Desofuscar código dinámicamente.
Extracción de datos en runtime
- Obtener variables, memoria, credenciales desde RAM.
| Herramienta | Descripción |
| Xposed Framework | Permite hooks dentro de apps Android (root requerido) |
| Frida | Instrumentación dinámica en tiempo real (ideal para hooking en apps) |
| Magisk + LSPosed | Alternativa moderna a Xposed para entornos rooteados |
| Genymotion / AVD | Emuladores para correr y monitorear comportamiento de apps |
| Wireshark | Monitorea tráfico de red desde la app |
| tcpdump | Captura de paquetes en Android (usando root o ADB) |
| Strace / Logcat | Monitoreo de procesos y registros del sistema |
| CuckooDroid | Sandbox de análisis automatizado de APKs (basado en Cuckoo) |
| AppMon (Frida) | Instrumentación automática de llamadas de métodos Android |
| Objection | Herramienta basada en Frida para bypass de root/jail, dumps, etc. |
Análisis Estático y dinámico en iOS
Análisis estático en iOS
Al igual que en sistemas Android existen técnicas básicas que vamos a necesitar ejecutar, entre las que se encuentran:
Extracción del archivo IPA
- Desempaquetar .ipa y extraer el binario Mach-O.
Inspección de estructuras Mach-O
- Revisar secciones, encabezados, librerías vinculadas.
- Herramientas: otool, MachOView.
Reversing del binario
- Desensamblado de ARM/ARM64.
- Herramientas: Hopper, IDA, Ghidra.
Extracción de clases Objective-C
- Usar class-dump o class-dump-z para analizar interfaces públicas.
Búsqueda de cadenas y funciones sospechosas
- API de redes, uso de NSURLSession, objc_msgSend, dlopen, etc.
Análisis de permisos y plist
- Revisión de archivos .plist, Entitlements, uso de servicios privados.
Nota: Apple aplica técnicas de code signing, lo que dificulta la inyección de código o modificación de binarios si no se hace en un entorno con jailbreak.
| Herramienta | Descripción |
| class-dump / class-dump-z | Extrae interfaces de Objective-C de binarios |
| Hopper / Ghidra / IDA Pro | Disassemblers para binarios ARM/ARM64 |
| Cycript | para inspección en vivo y manipulación de objetos del runtime Objective-C |
| Genymotion / AVD | Emuladores para correr y monitorear comportamiento de apps |
| ipa-extract | (parte de libimobiledevice) Para desempaquetar archivos IPA |
| otool / MachOView | Herramientas para examinar binarios Mach-O |
| Radare2 / rizin | Framework para reversing de binarios |
| MobSF | También soporta análisis básico de archivos IPA |
| bagbak | Extrae y decompila apps desde dispositivos jailbreakeados |
| ppduck / IPAPatch | Herramientas para dumpear IPAs protegidas |
| ios-deploy | Para instalar y conectar apps a dispositivos reales |
| QARK (limitado) | Puede hacer análisis de seguridad en código fuente iOS |
Análisis dinámico iOS:
En cuanto a las técnicas esenciales sobre el análisis dinámico para iOS nos encontramos con:
Instrumentación del binario
- Inyección con Frida, uso de objection, Cycript, Flex.
Ejecución en dispositivo jailbreakeado
- Correr app maliciosa controladamente en iOS modificado.
Hooking de funciones clave
- Interceptar llamadas a API sensibles (red, archivos, crypto, sensores).
Captura de tráfico
- Uso de proxy con bypass de SSL pinning (ej: SSL Kill Switch 2).
Análisis de procesos y comportamiento
- Uso de herramientas de Xcode (Instruments, lldb) o de terceros.
Dump de memoria
- Extraer información en caliente desde procesos activos.
| Herramienta | Descripción |
| Frida | Instrumentación de apps iOS (requiere jailbreak o Frida gadget embebido) |
| Cycript / MTerminal | Hooking e inspección en tiempo real en entornos jailbroken |
| Objection | Interacción automatizada con apps iOS (necesita Frida) |
| Instruments (Xcode) | Profiling y tracing nativo de iOS (con certificado de desarrollo) |
| tcpdump / Wireshark | Para capturar tráfico de red en iOS (más complicado sin jailbreak) |
| Flex | Herramienta para modificar comportamiento de apps en runtime |
| SSL Kill Switch 2 | Bypass de pinning SSL en apps iOS |
| Frida-trace | Para interceptar funciones clave en runtime |
| Appmon (Frida) | Soporte limitado en iOS, pero útil para funciones comunes |
Buenas prácticas al analizar malware
No uses tu máquina principal: trabaja siempre desde un entorno aislado o máquina virtual.
Captura todo: tráfico, logs, imágenes del sistema y hashes antes y después de la ejecución.
Compara con versiones legítimas si sospechas de una aplicación troyanizada.
Mantente actualizado: el ecosistema móvil cambia constantemente. Sigue fuentes como VirusTotal, Koodous y WeLiveSecurity.
Conclusión
Entre iOS y Android, como pudimos observar, existen diferencias entre las que podemos destacar:
- OS tiene mayores barreras técnicas y legales, y requiere jailbreak o entorno de desarrollo certificado.
- Android ofrece mayor flexibilidad para análisis, incluso sin root en algunos casos.
- El análisis dinámico es crucial para detectar comportamientos ocultos, C2, cargas tardías, etc.
- La instrumentación con Frida es transversal y poderosa en ambos sistemas.
Sin dudas, el análisis de malware móvil es un campo desafiante y dominar las herramientas y técnicas presentadas aquí es fundamental para cualquier analista de seguridad. La combinación de análisis estático y dinámico, adaptado a las particularidades de cada plataforma, es clave para desentrañar las amenazas y proteger el mundo móvil.
¡Para todos nuestros lectores!
Aprovechen esta oportunidad de obtener un trial gratuito de 30 días para Google Workspace, la mejor solución para tu empresa. Disfruta de todas sus funcionalidades, como correo electrónico personalizado, almacenamiento en la nube y herramientas de colaboración.

