Análisis de Código Descompilado para Detectar Malware en APKs
Clase 10 de 22 • Curso de Análisis de Malware para Dispositivos Móviles
Resumen
¿Cómo realizar un análisis estático y dinámico de aplicaciones Android?
En la actualidad, la seguridad en las aplicaciones móviles es fundamental. El análisis estático es una herramienta poderosa para optimizar tus tareas de análisis y evitar procesos repetitivos. Sin embargo, a veces es necesario revisar el código descompilado de una aplicación para detectar posibles amenazas ocultas. Este enfoque no solo amplía tu panorama sobre la aplicación, sino que te permite comprender mejor cada fragmento del código.
¿Qué pasos seguir para iniciar el análisis?
-
Análisis inicial con el framework: Antes de descompilar el código, utiliza un framework para obtener un primer análisis. Identifica el puntaje de la aplicación, sus instalaciones y, especialmente, quién es el desarrollador.
-
Revisión del manifiesto: Una vez que tengas acceso al manifiesto de la aplicación, céntrate en los permisos otorgados. Evalúa si los permisos son lógicos para la función que promete la aplicación.
-
Descompilación con APKTool: Para obtener un análisis más profundo, descompila la aplicación. Utiliza el comando:
APKTool d cien_sonidos.apk
Esto te generará una carpeta con todos los archivos necesarios para un examen a detalle.
¿Por qué es importante revisar el código Smally?
El código Smally es una representación del código fuente que se utiliza para ocultar o inyectar malware. En el análisis puede aparecer entidades como MetExploit, muy utilizadas en prácticas de hacking ético y por cibercriminales para pruebas de penetración. Si observas nombres inusuales en los archivos generados, es una señal de alerta.
¿Cómo verificar la autenticidad del certificado?
Los certificados pueden ser generados por cualquiera, incluso por un cibercriminal. En este análisis, al observar que el desarrollador mencionado en la Play Store es diferente al que firma la aplicación, se plantea una posible discrepancia o amenaza. Esta discrepancia puede indicar que el certificado y, por ende, la aplicación fueron comprometidos.
¿Por qué integrar análisis estático y dinámico?
Hacer sinergia entre ambos tipos de análisis ofrece una visión más completa:
-
Análisis estático: Te permite observar las funciones básicas de la aplicación y evaluar su superficie básica de ataque sin ejecutar el código.
-
Análisis dinámico del código descompilado: Revela el comportamiento real y la funcionalidad profunda del código en ejecución, permitiéndote ver acciones ocultas o permisos inusuales.
Incorporando ambos métodos, puedes evaluar cómo cada fragmento de código interactúa y si el comportamiento observado es el esperado o contiene patrones sospechosos. Recuerda, el examen minucioso y la constante actualización de habilidades son cruciales para un análisis efectivo. ¡Anímate a seguir aprendiendo y mejorando tus técnicas de análisis!