Lo que las apps esconden

69
Curso de Especialización en Dispositivos Móviles A Coruña, 22 de junio de 2012

description

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.

Transcript of Lo que las apps esconden

Page 1: Lo que las apps esconden

Curso de Especialización en Dispositivos Móviles

A Coruña, 22 de junio de 2012

Page 2: Lo que las apps esconden

VULNEX: www.vulnex.com

Blog: www.simonroses.com

Twitter:

@vulnexsl @simonroses

SOBRE MI

Page 3: Lo que las apps esconden

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

Page 4: Lo que las apps esconden

DESCARGO DE RESPONSABILIDADES

Todas las Apps se considerarán seguras hasta que se demuestre su culpabilidad mediante una revisión de seguridad

Page 5: Lo que las apps esconden

AGENDA

1. TODO GIRA ALREDEDOR DE LAS APPS

2. RIESGOS EN APPS

3. CASOS DE ESTUDIO

4. CONSEJOS DE DESARROLLO SEGURO

5. CONCLUSIONES

Page 6: Lo que las apps esconden
Page 7: Lo que las apps esconden

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…

Page 8: Lo que las apps esconden

1. CIFRAS DE INFARTO

APPS BAJADAS

• IPhone (Marzo 2012) 25 Billions == 25 mil millones

• Android (Diciembre 2011) 10 Billions == 10 mil millones

• WP7: ¿?

Page 9: Lo que las apps esconden

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

Page 10: Lo que las apps esconden

1. TECNOLOGÍAS

• Android -> Eclipse

• iOS -> Xcode

• Windows Phone -> Visual Studio

• Multiplataforma -> – Comerciales

• Xamarin - Mono Touch / Android

• Corona SDK

– Open Source • Phonegap

Page 11: Lo que las apps esconden

1. ANÁLISIS – XAMARIN MONO (ANDROID) I

Page 12: Lo que las apps esconden

1. ANÁLISIS – XAMARIN MONO (ANDROID) II

Page 13: Lo que las apps esconden

1. ANÁLISIS – XAMARIN MONO (ANDROID) III

Page 14: Lo que las apps esconden

1. ANÁLISIS – XAMARIN MONO (IOS) IV

Page 15: Lo que las apps esconden

1. ANÁLISIS – PHONEGAP (ANDROID) I

Page 16: Lo que las apps esconden

1. ANÁLISIS – PHONEGAP (ANDROID) II

Page 17: Lo que las apps esconden

1. ANÁLISIS – PHONEGAP (IOS) III

Page 18: Lo que las apps esconden
Page 19: Lo que las apps esconden

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

Page 20: Lo que las apps esconden

2. USUARIOS DE APPS ANALIZADAS

• Redes sociales +2 millones

• Finanzas 500.000

• Productividad 10 millones

• Seguridad 5 millones

• Medios 100.000

• Viajes 5 millones

Page 21: Lo que las apps esconden

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

Page 22: Lo que las apps esconden

2. OWASP MOBILE TOP 10 RISKS

Page 23: Lo que las apps esconden

2. VULNEX - MAPA DE RIESGO EN APPS

Page 24: Lo que las apps esconden

1. ANÁLISIS IOS – FAIRPLAY & JAILBREAK I

Page 25: Lo que las apps esconden

1. ANÁLISIS IOS – FAIRPLAY & JAILBREAK II

Page 26: Lo que las apps esconden

1. ANÁLISIS IOS – FAIRPLAY & JAILBREAK III

Page 27: Lo que las apps esconden
Page 28: Lo que las apps esconden

3. CONTRASEÑAS EN TEXTO CLARO

• La App no protege adecuadamente la información sensible, credenciales

• OWASP Mobile: M1- Insecure Data Storage

Page 29: Lo que las apps esconden

3. EJEMPLO CONTRASEÑAS EN TEXTO CLARO: CREDENTIALS MANAGER (CVE-2011-1840)

Page 30: Lo que las apps esconden

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)

Page 31: Lo que las apps esconden

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

Page 32: Lo que las apps esconden

3. EJEMPLO DE CANAL INSEGURO: RED SOCIAL

Page 33: Lo que las apps esconden

3. MITIGAR CANAL INSEGURO

• Cifrar datos confidenciales saliendo del dispositivo (Proteger información en tránsito)

• Se aplica a cualquier tipo de conexión

Page 34: Lo que las apps esconden

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

Page 35: Lo que las apps esconden

3. EJEMPLO DEPURACIÓN HABILITADA: FINANZAS

Page 36: Lo que las apps esconden

3. EJEMPLO DEPURACIÓN HABILITADA: SERVIDOR

Page 37: Lo que las apps esconden

3. EJEMPLO DEPURACIÓN HABILITADA: FINANZAS

Page 38: Lo que las apps esconden

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”

Page 39: Lo que las apps esconden

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

Page 40: Lo que las apps esconden

3. EJEMPLO SQL DINÁMICO: FINANZAS

Page 41: Lo que las apps esconden

3. EJEMPLO CROSS SITE SCRIPTING (XSS): VIAJES

Page 42: Lo que las apps esconden

3. EJEMPLO CROSS SITE SCRIPTING (XSS), POR SI NO LO VISTE BIEN

Page 43: Lo que las apps esconden

3. EJEMPLO VALIDACIÓN DE DATOS: OCIO

Page 44: Lo que las apps esconden

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.

Page 45: Lo que las apps esconden

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

Page 46: Lo que las apps esconden

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

Page 47: Lo que las apps esconden

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

Page 48: Lo que las apps esconden

• 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?

3. MITIGACIÓN INTEGRACIÓN LIBRERÍAS DE TERCEROS

Page 49: Lo que las apps esconden

3. PERMISOS

• Es importante entender los permisos de aplicación

• La App puede comprometer el bolsillo del usuario y la seguridad del dispositivo

Page 50: Lo que las apps esconden

3. EJEMPLO DE PERMISOS - SEXYPIC

Page 51: Lo que las apps esconden

3. EJEMPLO DE PERMISOS - DROIDDREAM

Page 52: Lo que las apps esconden

3. MITIGAR PERMISOS

• Usuario: Aplicar sentido común

• Desarrollador: No abusar de la solicitud de permisos (overprivileged)

Page 53: Lo que las apps esconden

3. CRYPTO DÉBIL

• Uso incorrecto de librerías criptográficas

• Desarrollar algoritmo de cifrado propio – “killer”

• M9 - Broken Cryptography

Page 54: Lo que las apps esconden

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/

Page 55: Lo que las apps esconden

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

Page 56: Lo que las apps esconden

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

Page 57: Lo que las apps esconden

3. EJEMPLO CREDENCIALES EN CÓDIGO: SERVIDOR

Page 58: Lo que las apps esconden

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

Page 59: Lo que las apps esconden

3. ANÁLISIS DE APP I - PROCESO

Page 60: Lo que las apps esconden

3. ANÁLISIS DE APP II - CÓDIGO

Page 61: Lo que las apps esconden

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 TRÁNSITO PROTEGIDA

SÍ SÍ

INFORMACIÓN EN REPOSO PROTEGIDA

SÍ NO

MALICIOSA NO NO

PRECIO GRATIS < 1 EUR

Page 62: Lo que las apps esconden
Page 63: Lo que las apps esconden

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

Page 64: Lo que las apps esconden

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

Page 65: Lo que las apps esconden

4. RECURSOS DE SEGURIDAD

• Iphone – https://developer.apple.com/library/mac/#documentation/securit

y/Conceptual/SecureCodingGuide/Introduction.html

• Android

– http://developer.android.com/guide/topics/security/security.html – http://developer.android.com/search.html#q=security&t=5

• WP7

– http://msdn.microsoft.com/en-us/library/ff402533(VS.92).aspx

• OWASP Mobile Security Project https://www.owasp.org/index.php/OWASP_Mobile_Security_Project

Page 66: Lo que las apps esconden
Page 67: Lo que las apps esconden

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í

Page 68: Lo que las apps esconden

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?

Page 69: Lo que las apps esconden

5. PREGUNTAS

¡Gracias!