Charla: Lo que las Apps esconden, impartida por Simón Roses de Vulnex para el curso de Especialización en Dispositivos Móviles que tuvo lugar en la Facultad de Informática de la Universidad de A Coruña del 20 al 22 de Junio de 2012.
2. SOBRE MI
VULNEX: www.vulnex.com
Blog: www.simonroses.com
Twitter:
@vulnexsl
@simonroses
3. OBJETIVOS DE LA CHARLA
• Las Apps son la nueva Web
• Visión general sobre la postura de
seguridad de las Apps en los Markets
• Se revelarán las vulnerabilidades
pero no las víctimas
4. DESCARGO DE RESPONSABILIDADES
Todas las Apps se considerarán
seguras hasta que se demuestre
su culpabilidad mediante una
revisión de seguridad
5. AGENDA
1. TODO GIRA ALREDEDOR DE LAS APPS
2. RIESGOS EN APPS
3. CASOS DE ESTUDIO
4. CONSEJOS DE DESARROLLO SEGURO
5. CONCLUSIONES
6.
7. 1. POR QUÉ LAS APPS?
• IDC predice que la venta de smartphones alcanzará los 982
millones de dispositivos en 2015
• Morgan Stanley Research estima que la venta de smartphones
superará a la de los PCs en 2012
• La media de aplicaciones instaladas es de 65, pero el
consumidor medio sólo utiliza unas 15 Apps habitualmente por
semana
• En 2011 se lanzó un promedio de 701 Apps en la versión
británica de la App Store de Apple CADA DÍA!!
• Una aplicación para casi todo…
8. 1. CIFRAS DE INFARTO
APPS BAJADAS
• IPhone (Marzo 2012)
25 Billions == 25 mil millones
• Android (Diciembre 2011)
10 Billions == 10 mil millones
• WP7: ¿?
9. 1. DESARROLLO DE APPS
(1) Se puede incluir C en Java Apps / Apps de sistemas escritas en C
(2) Por el momento sólo Microsoft pero próximamente abierto
19. 2. I+D SEGURIDAD APPS
• REGLAS
Más de 5000 Apps de los Markets oficiales analizadas
Algunas App una hora de análisis o menos
Diferentes categorías analizadas:
• Seguridad
• Redes sociales
• Comunicaciones
• Servidores
• Finanzas
• Ocio
• Productividad
• Viajes
• Juegos
• Utilidades
20. 2. USUARIOS DE APPS ANALIZADAS
• Redes sociales +2 millones
• Finanzas 500.000
• Productividad 10 millones
• Seguridad 5 millones
• Medios 100.000
• Viajes 5 millones
21. 2. OWASP MOBILE PROJECT
• OWASP inició en 2010 un proyecto de
seguridad móvil
• Objetivo: Proporcionar a desarrolladores y
profesionales de seguridad recursos para
asegurar aplicaciones móviles
• Hitos:
– OWASP Top 10 riesgos móviles
– Guías de desarrollo y pruebas de seguridad
– Proyecto OWASP GoatDroid
30. 3. MITIGAR CONTRASEÑAS EN TEXTO CLARO
• Utilizar cifrado y seguridad de
la plataforma
(Información en reposo)
• Establecer los permisos apropiados para
los ficheros
– MODE_WORLD_WRITEABLE
– MODE_WORLD_READABLE
• Evitar guardar datos en áreas de
almacenamiento externo y público
(principalmente tarjetas SD)
31. 3. CANALES INSEGUROS
• App envía datos a la red sin cifrar
(HTTP vs. HTTPS)
– Atentos a las credenciales
– Información PII (chats, Facebook,
etc.)
• Cuando se utilizan canales codificados,
realizar la validación del certificado
• OWASP Mobile: M3- Insufficient
Transport Layer Protection
33. 3. MITIGAR CANAL INSEGURO
• Cifrar datos confidenciales saliendo
del dispositivo (Proteger información
en tránsito)
• Se aplica a cualquier tipo de conexión
34. 3. DEPURACIÓN HABILITADA
• La App tiene la depuración o “logueo” habilitada
• Ayuda a un atacante a aprender el funcionamiento
de la App
• OWASP Mobile: M8- Side Channel
Data Leakage
38. 3. MITIGACIÓN DEPURACIÓN HABILITADA
• Para depuración de código:
– ¿Qué datos se guardan en logs?
– ¿Dónde se guardan los datos?
• Android: Eclipse deshabilita la
depuración en la versión “release”
39. 3. VALIDACIÓN DE DATOS
• La App no realiza una validación de
datos adecuada
• Fuente de multitud de vulnerabilidades
• OWASP Mobile: M4- Client Side Injection
44. 3. MITIGAR VALIDACIÓN DE DATOS
• Validar datos:
– Válidos
– Seguros
– Longitud
• Para consultas SQL usar sentencias preparadas
• Validar y escapar los datos antes de mostrarlos
para aplicaciones web
• Utilizar lista blanca en vez de lista negra.
Recomendadas las librerías OWASP ESAPI.
45. 3. VIOLACIÓN PRIVACIDAD (PII)
• La App recoge información PII
– Usuario: nombre, contactos, bookmarks
– Dispositivo: versión S.O., nombre, IMEI,
IMSI, versión kernel, UUID
– Info general: geo localización
– OWASP Mobile Risk Classification: M8 – Side
Channel Data Leakage
46. 3. MITIGACIÓN VIOLACIÓN PRIVACIDAD
• Las Apps no deben recoger todo lo que
puedan, sólo lo que necesiten
• Si necesita recoger PII:
– ¿Dónde va esa información?
• Ficheros logs
• Base de datos
• Red
– Protégela:
• En tránsito
• En reposo
47. 3. INTEGRACIÓN LIBRERÍAS DE TERCEROS
• La App integra librerías de terceros:
– Facebook
– Greendroid
– Android.ads
– Apache
– google.android.apps.analytics
– Json
– Mozilla
– Javax
– xmlrpc.android
– slf4j
48. 3. MITIGACIÓN INTEGRACIÓN LIBRERÍAS DE
TERCEROS
• Si utilizas librerías de terceros, usa
librerías conocidas
• ¿Qué información están recolectando
estas librerías?
• ¿Necesitamos realmente librerías de
redes sociales integradas en nuestras
aplicaciones de Finanzas?
49. 3. PERMISOS
• Es importante entender los permisos
de aplicación
• La App puede comprometer el bolsillo
del usuario y la seguridad del
dispositivo
52. 3. MITIGAR PERMISOS
• Usuario: Aplicar sentido común
• Desarrollador: No abusar de la
solicitud de permisos
(overprivileged)
53. 3. CRYPTO DÉBIL
• Uso incorrecto de librerías
criptográficas
• Desarrollar algoritmo de
cifrado propio – “killer”
• M9 - Broken Cryptography
54. 3. EJEMPLO CRYPTO DÉBIL - SEGURIDAD
Contraseña en código
Cifrar contraseña con MD5 (sin
salt)
Hash almacenado en fichero
texto con permisos world
Fichero almacenado en la tarjeta
SD
http://www.md5-hash.com/
55. 3. MITIGAR CRYPTO DÉBIL
• Uso de librerías criptográficas conocidas
y leer la documentación
• Olvídate de cifrado propietario
• Si utilizas SHA1 o MD5 para contraseñas
aplica salt, mejor utilizar SHA-256
• Si utilizas SHA1PRNG define la semilla
56. 3. CREDENCIALES EN CÓDIGO
• Las credenciales están integradas en el
código
• Fáciles de identificar para
los atacantes
• OWASP Mobile: M10- Sensitive
Information Disclosure
58. 3. MITIGAR CREDENCIALES EN CÓDIGO
• Fácil, no escribir las credenciales en
archivos de código
• ¿Qué sucede al cambiar las credenciales?
Una nueva App al market!
• Las credenciales deben utilizar
almacenamientos de datos seguros
61. 3. ANÁLISIS DE APP III - CONCLUSIÓN
APP BANCO APP SOSPECHOSA
VULNERABILIDADADES NO SÍ
• Debug Habilitado
• Contraseñas Texto Claro
• Contraseñas en Logs
OFUSCACIÓN SÍ NO
INFORMACIÓN EN SÍ SÍ
TRÁNSITO PROTEGIDA
INFORMACIÓN EN SÍ NO
REPOSO PROTEGIDA
MALICIOSA NO NO
PRECIO GRATIS < 1 EUR
62.
63. 4. CONSEJO (I)
• Todas las Apps necesitan un ciclo de desarrollo seguro
• Realiza Modelos de Amenazas
• Comprende los riesgos de la plataforma y la App
• Revisiones de seguridad profesionales son caras pero
pequeño ISV y desarrolladores pueden utilizar los
recursos disponibles
64. 4. CONSEJO (II)
• Puedes añadir detección de jailbreak pero es una batalla perdida.
Android:
• Comprobar si existe /system/app/Superuser.apk
• Comprobar si existe el paquete com.noshufou.android.su
• Podemos escribir directamente a /data/data
IPhone
• Ejecuta fork()
• Comprueba si existe /Applications/Cydia.app
WP7
• Permitido por Microsoft (DESCONTINUADO)
http://labs.chevronwp7.com/
• Ofuscación de código
67. 5. RESUMEN
• Las Apps son un negocio imparable
• Las Apps son realmente interesantes para los atacantes,
millones de posibles víctimas
– Autores Malware
• En las Apps analizadas hay algunas vulnerabilidades
interesantes
• Diferentes clases de vulnerabilidades, pero existen más
de lo mostrado aquí
68. 5. PRÓXIMOS PASOS
• Automatizar el análisis de Apps
– Análisis estático
– Análisis dinámico
• Estudio de las tecnologías
multiplataforma y su repercusión en
seguridad
– Managed Apps (Mono)
– ¿Son las vulnerabilidades
multiplataforma?