Análisis Estático de Aplicaciones Android con Framework especializado

Clase 9 de 22Curso de Análisis de Malware para Dispositivos Móviles

Contenido del curso

Resumen

Identificar amenazas ocultas en una aplicación móvil antes de ejecutarla es posible gracias al análisis estático. Mediante un framework especializado como MobSF, se puede inspeccionar cada componente de un archivo APK —permisos, manifiesto, código fuente, dominios y firmas digitales— sin necesidad de instalar la app en un dispositivo real. A continuación se recorre paso a paso cómo funciona este proceso utilizando una aplicación de linterna aparentemente inofensiva.

¿Cómo se inicia el análisis estático de una aplicación Android?

Una vez que el framework está en ejecución, basta con arrastrar el archivo APK dentro de la interfaz para que el motor de análisis comience de forma automática [0:44]. En este caso se utiliza Linterna.apk, una aplicación catalogada como "inútil" que muchos usuarios instalan sin sospechar lo que realmente hace.

Al finalizar el escaneo, la pantalla principal muestra un panel con pestañas en el lado izquierdo que organizan todos los hallazgos:

  • Puntaje de seguridad: calificación general del riesgo.
  • Información del archivo: nombre, peso y hashes en MD5, SHA1 y SHA-256 [1:28].
  • Información de la aplicación: nombre original, nombre de paquetes y versiones.
  • Componentes internos: actividades, servicios, receptores (receivers) y proveedores (providers) que utiliza la app [1:50].

Desde este mismo panel se puede relanzar el escaneo o iniciar un análisis dinámico posterior.

¿Qué revelan los permisos y el manifiesto de Android?

Al abrir el manifiesto de Android dentro de la sección de código decompilado se despliega la lista completa de permisos [2:14]. Lo llamativo es la cantidad: una simple linterna solicita diecinueve permisos, muchos de ellos marcados como peligrosos.

Uno de los hallazgos más relevantes es el permiso sobre el administrador de descargas, señalado con nivel de riesgo alto [3:02]. Esto sugiere que la aplicación podría actuar como un dropper, es decir, un programa diseñado para descargar archivos maliciosos de internet y continuar infectando el dispositivo.

La firma digital del APK también se examina aquí [2:40]. Aunque el certificado aparezca como válido, eso no garantiza que la aplicación sea legítima; solo confirma que fue firmada correctamente.

¿Qué información aporta el análisis del código?

El framework cruza los hallazgos del código fuente con el OWASP Top Ten Mobile, mostrando vulnerabilidades concretas junto con su nivel de severidad y un puntaje CVSS [4:20]. Por ejemplo, bajo la categoría M9 — Ingeniería Inversa, se detecta que el archivo podría contener credenciales expuestas. Al seguir el enlace a la ruta indicada, se encuentran variables que aparentan almacenar un usuario y una contraseña en texto plano [4:42].

También se inspeccionan las APIs de Java utilizadas. En este caso se identifica una API de crypto, y al hacer clic en el enlace se visualiza exactamente en qué parte del código se implementa [3:40].

¿Qué técnicas de evasión utiliza la aplicación?

Un dato revelador es la presencia de una técnica antiemulación [5:22]. Una vez instalada, la app consulta:

  • Fabricante del dispositivo.
  • Placa base y número de serial.
  • Nombre del operador telefónico, dato clave porque los emuladores normalmente no tienen SIM.
  • Interfaces de conexión activas.

Esta técnica busca detectar si la app se ejecuta en un entorno virtualizado y modificar su comportamiento para evadir el análisis.

¿Qué dominios, URLs y datos adicionales expone el APK?

El framework enumera los dominios con los que la linterna se comunica, indicando su estado, si aparecen en alguna lista negra y datos de geolocalización [5:46]. Debajo se listan todas las URLs contactadas y los archivos internos del APK asociados.

Otros elementos que se extraen automáticamente:

  • Base de datos de Firebase vinculada.
  • Correos electrónicos incrustados en el código.
  • Trackers de terceros.
  • Strings o cadenas de texto relevantes [6:14].
  • Servicios, receptores, proveedores y librerías utilizadas.

En un entorno profesional, los puntos prioritarios al analizar un APK sospechoso son los permisos, el análisis del código, el manifiesto y los dominios de conexión [7:08]. Sin embargo, el mismo proceso resulta valioso para desarrolladores que deseen auditar sus propias aplicaciones antes de publicarlas, verificando servicios, APIs y cualquier detalle crítico [6:58].

Si ya cuentas con el framework listo, prueba analizar alguna aplicación que tengas instalada y comparte qué hallazgos te sorprendieron más.