ApkVuln - Analizador estático de APKs a través de expresiones regulares - BoomerNiX

viernes, 3 de abril de 2020

ApkVuln - Analizador estático de APKs a través de expresiones regulares

Aprovechando la cuarentena, he gastado un poco de tiempo para generar una pequeña herramienta (siempre mejorable), ApkVuln, destinada a analizar APKs gracias a expresiones regulares (las que he agregado son un ejemplo rápido, que arrojará muchos falsos positivos. Lo importante es tener la idea e ir agregando reglas más especificas y potentes).

Para ApkVuln, es necesario instalar apkx, que se encargará de decompilar el APK que le pasemos. El uso del script es muy básico, se recibe como argumento el archivo a analizar, luego internamente se va a decompilar el código en una carpeta (proceso que puede tardar varios minutos, según el peso de la aplicación), y posteriormente se analiza cada pieza de código con las expresiones regulares. Ejemplo de lanzamiento para la APK de Telegram en la figura 1:

Figura 1 - Ejemplo de ApkVuln

No voy a explicar el código, que está en el GitHub. Lo único que comentar es cómo subir expresiones regulares propias:


  1. Crear un fichero Python con un nombre descriptivo.
  2. Importar la clase Template (se encuentra en regex/_template).
  3. Crear una clase Regex que heredé de Template.
  4. En la función __init__:
    • Crear una lista de expresiones regulares.
    • Llamar a super, con la lista y el nombre de vulnerabilidad que queramos.
Todo este proceso se puede ver en la figura 2

Figura 2 - Módulo de ejemplo
Pues ya estaría rápido y fácil. Vuelvo a dejar el enlace al ApkVuln en GitHub. La idea también se puede aplicar a repositorios de códigos de GitHub, repositorios de Linux, etc. Solo es adaptar el código a nuestras necesidades. Hasta pronto.


No hay comentarios:

Publicar un comentario