2. 2
Puntos a seguir…
Introducción
o Introducción
o Auditorias en dispositivos móviles
• Como se realizan
• Fases de una auditoria
• Problemas que nos podemos encontrar
• Optimización
o Entornos de pruebas
• Emuladores o dispositivos físicos
• Hooking - Objection
• Configuración de Seguridad en redes
• Depuración activa
• SSL Pinning
• Proxy
• Análisis Estático
• Root Dispositivo
o Conclusiones
3. 3
Introducción
Y tu quien eres?
– Consultor de Ciberseguridad en Innotec System Grupo Entelgy
Ingeniero en Informática
Master en Ciberseguridad
Doctorando en Ingeniería Informática - Informática Industrial y
Tecnología Electrónica Seguridad en Aplicaciones Móviles y Sistemas
Inteligentes
• 4 años de experiencia como Consultor de Seguridad / Pentester en
importantes clientes
– Auditorias Móviles y Web
– Auditorias Internas
– Ejercicios de Red Team
– Hardware hacking
– Análisis de dispositivos IoT (Bluetooth, Wifi, …)
• Investigador y docente en la Universidad de Sevilla
• Miembro organizador del capitulo de Owasp Sevilla
• Certificaciones : CEH y …Paco Ramírez
Twitter : @pacoraml
Linkedin : Francisco José Ramírez
4. 4
En esta ponencia no se van a presentar
vulnerabilidades ni se va a atacar a
ningún sistema, todo esta realizado bajo
un entorno controlado y las aplicaciones
que se han utilizado, en algunos casos se
tienen autorización explicita de los
creadores para mostrar la información y
en otras casos como aplicaciones publicas
conocidas, la información revelada se
puede encontrar en internet.
Disclaimer
IMPORTANTE
11. 11
Para hacer una auditoria
OWASP Mobile Testing Guide
L1 - Todas las apps
L2 - Sanitarias, Financieras (No pagos)
L1 + R – Aplicaciones donde se quieren proteger las conexiones, Juegos
L2 + R – Financieras, Todas las aplicaciones que trabajen sobre datos
sensibles, Financieras (Pagos).
13. 13
Controles a destacar
Principales
Control Descripción
SSL Pinning Comprobación del certificado del servidor al establecer la comunicación.
Root Detection Comprobación si el dispositivo es root
Anti-Tampering Comprobación de la firma de la aplicación.
Debug Mode Detection Comprobación si la aplicación esta corriendo en modo debug.
Ofuscated Code Ofuscación de código.
15. 15
Controles a destacar
Root Detection
Los posibles riesgos de tener el móvil con root es acceder información
sensible guardada dentro de la sandbox de la aplicación.
Para un pentester esta información puede contener claves o
información para la auditoria.
16. 16
Controles a destacar
Debug mode
Si conseguimos depurar la aplicación se puede conseguir extraer del código información sensible como
funciones de cifrados o claves. También nos puede servir para modificar funciones o procesos a nuestro
gusto.
19. 19
Controles a destacar
Anti Tampering
Este concepto es muy similar al
aplicado en dispositivos de pagos como
TPV o cajeros que si son manipulados
borran su firmware.
En este caso, se verifica con que
certificado se ha firmado la aplicación y
si este no coincide con el que la
aplicación comprueba no se inicia la
aplicación.
Nota: Cualquiera de los controles visto van íntegramente relacionados para fortalecer su seguridad, ya
que también podríamos acceder a su código y si no esta ofuscado podemos modificarlo.
20. 20
Fases de una auditoria
Proceso completo (Simulado)
• En toda auditoria podemos establecer los siguientes pasos (suponemos como media 1 semana de auditoria o 5 días hábiles)
Preparación
del entorno
• Esto nos debería de llevar el
10% de la auditoria
Pruebas o
comprobación
de los
controles
• Esto nos debería de llevar
el 60% de la auditoria
Informe
• Esto nos debería de
llevar el 30% de la
auditoria
½ día
2 ½ - 3
días
1 ½ - 2
días
21. 21
Fases de una auditoria
Proceso completo (Real)
• En toda auditoria podemos establecer los siguientes pasos (suponemos como media 1 semana de auditoria o 5 días hábiles)
Preparación
del entorno
• Esto realmente nos ha llevado el
30 % de la auditoria
Pruebas o
comprobación
de los
controles
• Esto realmente nos lleva el
35% de la auditoria
Informe
• Esto realmente nos
lleva el 30% de la
auditoria
1 - 1 ½
días
1 ½ - 2
días
1 ½ - 2
días
22. 22
Optimización
Calidad de las auditorias
• También tenemos el dilema de la calidad de auditoria que queremos dar a nuestros clientes
Calidad Tiempo
23. 23
Optimización
Problemas
• Bajo mi experiencia profesional, cuando tienes que realizar muchas
auditorias encadenadas en algún momento tienes que optimizar
tiempo
– Problemas
• Cada app es un mundo y en el primer entorno que has preparado a lo mejor
no es valido para el 2º
• Puede ser que la app no permita entornos emulados
• Puede ser que la app tiene que estar en un entorno actualizado
• No puede estar en un dispositivo con root
• ….
24. 24
Fases de una auditoria
Optimización
• Tenemos claro que donde podemos realmente recortar tiempo es en el primer punto
Preparación
del entorno
• Esto realmente nos ha llevado el
30 % de la auditoria
Pruebas o
comprobación
de los
controles
• Esto realmente nos lleva el
35% de la auditoria
Informe
• Esto realmente nos
lleva el 30% de la
auditoria
1 - 1 ½
días
1 ½ - 2
días
1 ½ - 2
días
25. 25
Make Enviroment Android Tools
M.E.A.T.
• Hemos creado una herramienta para automatizar el proceso de
preparación del entorno en sencillos pasos
Solución para
optimizar tiempo
27. 27
Menu principal de MEAT
Start audit
• Hemos creado un menú sencillo donde simplemente tienes la opción directa de comenzar una auditoria o tener otras
opciones para ayudar en la auditoria
28. 28
Dispositivo físico o entorno emulado
Cual es mejor?
Si decidimos comenzar una auditoria lo primero seria escoger un entorno para probar nuestra aplicación, en nuestro menú
29. 29
Dispositivo físico o entorno emulado
Cual es mejor?
Si decidimos comenzar una auditoria lo primero seria escoger un entorno para probar nuestra aplicación, en nuestro menú
• Debemos tener en cuenta los siguientes puntos, para elegir el
adecuado
– Dispositivos emulados : Pueden ser mas cómodos para realizar la auditoria que
un dispositivo físico, pero no tienen arquitectura ARM y es probable que nos
falle alguna librería. Lo malo es también que algunos emuladores suelen fallar
bastante…
– Dispositivo físico: No es tan cómodo para hacer las pruebas, ya que lo tenemos
que tener conectado a nuestro PC, pero son bastante mas fiable a la hora de
hacer pruebas. No es posible hacer pruebas en diferentes versiones.
30. 30
Hooking
Frida Gadget
Una de las herramientas mas usadas por auditores de aplicaciones móviles es Frida y su framework vitaminado Objection
31. 31
¿Qué es hooking?
Explicación
Hooking se llama al proceso de depurar una función dinámicamente para poder modificar su resultado, todo esto modificando
sus registros en memoria y es todo dinámico.
32. 32
¿Cómo podemos hacer hooking?
Frida
Hay herramientas que nos ayudan a modificar estos procesos en memoria y sacar otro resultado, la mas conocida y que vamos
a usar en este taller es Frida.
33. 33
¿Cómo podemos hacer hooking?
Frida
A continuación vamos a mostrar un video de como se puede hacer un bypass de una función de detección de root en un
dispositivo Android para que veáis como funciona Frida.
34. 34
¿Cómo podemos hacer hooking?
Root Detection Bypass con Frida
Para usar Frida le tenemos que pasar un fichero en JavaScript que tenga la siguiente estructura y decir que función queremos
hacer hooking y cual queremos que sea su resultado.
35. ¿Cómo podemos hacer hooking?
Bypass SSL Pinning sin root
35
36. 36
Manera mas fácil de usar Frida
Objection
• La manera mas fácil de usar Frida es con el framework objection que nos ofrece un nuevo terminal donde podemos hacer
hooking de funciones de una manera fácil, como por ejemplo evadir SSL Pinning.
37. 37
Manera mas fácil de usar Frida
Objection
• Pero antes debemos conocer varios opciones que nos permite objection y una de
ella es parchear el fichero apk, para poder usar sin necesidad de tener root en el
dispositivo móvil.
• Opciones:
– objection patchapk –s <apkfile>
– N para añadir los ficheros de network security config (> Android 6.0)
– d para activar la depuración en el apk
38. 38
Objection PatchApk
Network Security Config
En nuestra herramienta añadimos la opción por si quieres añadir la configuración
del network security config
38
Objection PatchApk
Network Security Config
En nuestra herramienta añadimos la opción por si quieres añadir la configuración
del network security config
38
Objection PatchApk
Network Security Config
En nuestra herramienta añadimos la opción por si quieres añadir la configuración
del network security config
41. 41
Objection patchapk
Network Security Config
• En nuestro fichero de configuración de la aplicación o conocido como AndroidManifest.xml tenemos que añadir lo
siguiente :
42. 42
Objection patchapk
Network Security Config
• La entrada anterior hace referencia a un fichero que debemos añadir en la siguiente ruta
res/xml/network_security_config.xml y que tiene la siguiente estructura:
43. 43
Objection patchapk
Network Security Config
• Pero la manera anterior es mas complicada ya que necesita de mas pasos para llegar a lo mismo que si creamos esta
estructura:
Con esto
decimos que
use los
certificados de
confianza del
sistema
44. 44
Objection apk
Debug mode
• Otra de las opciones que nos preguntaran en la herramienta es si queremos activar la depuración
45. 45
Objection apk
Debug mode
• Para activar la depuración es necesario modificar el fichero AndroidManifest en la aplicación
46. 46
Objection apk
Debug mode
• Después nos preguntara si queremos instalar el apk que hemos parcheado en el dispositivo y este se lanzara
automáticamente
• Tambien nos preguntara si queremos lanzar la terminal de objection
46
Objection apk
Debug mode
• Después nos preguntara si queremos instalar el apk que hemos parcheado en el dispositivo y este se lanzara
automáticamente
• Tambien nos preguntara si queremos lanzar la terminal de objection
48. 48
Analizar comunicaciones
Proxy
• Por ultimo el menú te preguntara si quieres que levantes un proxy para poder ver las comunicaciones que pasan por el
dispositivo
50. 50
• Otras opciones
Mas pruebas
• Se ha incluido un análisis estático con la herramienta MARA
Framework
• Se puede rootear el dispositivo y abrir un terminal con acceso de root
Además incluye
algunos extras
para las
auditorias
54. 54
Conclusiones
MEAT v2.0
• Ya se esta trabajando en una nueva versión de la herramienta para incluir lo
siguiente:
– Drozer
– MobSf
– Modificación de algunos controles como Anti Tampering
– …
• También se esta trabajando en no crear una .ova que sabemos que para descargar
suelen ser ficheros muy grande y pasar todo a un contenedor en Docker
– Problemas: Existen ciertas configuraciones en interfaces graficas que tienes que hacer a mano
pero ….
• También a lo mejor se proporcionan guías de instalación de esta herramienta
55. 55
Conclusiones
MEAT
• Con una herramienta podemos conseguir ahorrar tiempo en partes que no son
productivas como hemos visto anteriormente, después de muchas auditorias de
móvil esto puede resultar bastante mas cómodo.
• Esta herramienta es libre de uso, aunque si esta protegida con una licencia GNU,
para evitar que caiga en fines comerciales por terceros
• Esta herramienta ha sido creada para ayudar y sabemos que puede tener fallos
por eso todo lo que reportéis será de agradecer y se intentara corregir lo antes
posible
– Las criticas constructivas nos ayudan a todos, podemos también aceptar propuestas de como
mejorar
56. Entelgy
C/ Orense, 70
28020 Madrid
T. +34 914 251 111
Av. Llano Castellano, 43
28034 Madrid
T. +34 917 281 504
Avda. Carrilet, 3 Edificio D
08902 Hospitalet de Llobregat
Barcelona
T. +34 936 245 273
Entelgy Ibai
C/ Nervión, 3
48001 Bilbao
T. +34 944 231 104
P. Empresarial Inbisa-Gamarra
Av. Olmos, 1, Zona D-2, Of. 8
01013 Vitoria-Gasteiz
T. +34 945 069 465
C/ Portuetxe, 53
20018 Donostia-San Sebastián
T. +34 944 231 104
Entelgy Brasil Entelgy Chile Entelgy Colombia Entelgy México Entelgy Perú
Avda. Angelica, 2261 Av. Andrés Bello 2777 – Of. 504 Cra 13 # 98 – 70 Of. 301 y 302 Av. Pº de la Reforma, 107-601 Avd. Ricardo Palma, 341
4ª andar, conjuntos 41 a 46a Las Condes - Santiago – CHILE Edificio Ochic - Barrio El Chico Col. Tabacalera Edif. Platino – Oficina 304
São Paulo/SP 01227-200 – BRASIL T. +562 480 28 00 Bogotá - COLOMBIA Delegación Cuauhtémoc Distrito Miraflores
T. +55 11 4097-9200 +57 601 89 68 / + 57 601 78 33 06030 CDMX – MÉXICO Lima – PERÚ
T. +52 1 (55) 1377 9130 T. +51 1 644 01 51
Avda Rodrigo Fernando Grillo, 207
Araraquara – São Paulo – BRASIL
blog.entelgy.com
@entelgy
entelgy.com
linkedin.com/company/entelgy
Entelgy Innotec Security
Av. Llano Castellano, 43
28034 Madrid
T. +34 917 281 504
innotec.security
@innotecsecurity
linkedin.com/company/entelgy-innotec-security