TechTuesday: Seguridad en Desarrollo de Apps

28
TechTuesday Security Mobile Por Carlos Mota 29 de Octubre de 2013

description

Diapositivas de nuestra conferencia sobre Seguridad en Desarrollo de Apps

Transcript of TechTuesday: Seguridad en Desarrollo de Apps

Page 1: TechTuesday: Seguridad en Desarrollo de Apps

TechTuesdaySecurity MobilePor Carlos Mota

29 de Octubre de 2013

Page 2: TechTuesday: Seguridad en Desarrollo de Apps

Crecimiento del sector de los dispositivos móvilesHábitos de usoRiesgos de seguridadMedidas corporativas y personalesAdoptemos un punto de vista diferente¿De donde pueden provenir los ataques?¿Qué podemos hacer?Las capas que debemos asegurarFormación de los usuariosTendencia BYODMedidas de prevención¿A qué nos enfrentamos?SolucionesRuegos y preguntas

Page 3: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

3

¿Crecimiento del sector de los dispositivos móviles?

UNA TENDENCIA ASENTADA

Page 4: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

4

Hábitos de uso

Juegos

Consulta del tiempo

Búsquedas y mapas

Redes sociales

Música

Leer noticias

Entretenimiento

Rest.

Vídeo

o YouTube recibe más de 200 millones de peticiones diarias para reproducir vídeo, desde dispositivos móviles.

o Un americano medio, pasa un promedio de 2,7 horas diarias, utilizando las redes sociales.

o Las búsquedas que recibe Google desde dispositivos móviles han crecido un 500% en los dos últimos años.

Page 5: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

5

o Altas probabilidades de pérdida o robo del dispositivo, comparado con un ordenador de sobremesa.

o Los datos almacenados, tienden a ser más personales, como emails, mensajería instantánea, contactos, fotos…

o El riesgo de seguridad es más alto, debido a que el usuario interactúa con más frecuencia con el dispositivo.

Riesgos de seguridad en dispositivos móviles

de las empresas han sufrido pérdidas de datos, por el uso de dispositivos móviles inseguros.

de las empresas han experimentado un incremento del malware, debido a dispositivos móviles inseguros.

de las empresas, informan de que sus empleados evitan o desactivan características de seguridad en sus dispositivos.

Page 6: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

6

o La pérdida de datos corporativos o personales, tienen un coste mayor que el propio dispositivo.

o Las medidas de seguridad, deberían aplicarse en las dos vertientes, con carácter privado y empresarial.

o Los ataques más peligrosos son aquellos que se llevan a cabo de manera silenciosa y remota.

Medidas corporativas y personales

Page 7: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

7

o En 2011, Global Payments descubrió (meses más tarde) una brecha de seguridad, en sus transacciones con tarjetas que afectó a más de 1,5 millones de usuarios y que le hizo caer más de un 13% en el valor de las acciones en bolsa.

o Es necesario, conocer qué tipo de información y cómo se almacena, la misma en nuestros dispositivos.

Medidas corporativas y personales

Page 8: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

8

Adoptemos un punto de vista diferente

Necesito identificar los puntos débiles del sistema o dispositivo, para planificar un estrategia de ataque.

Debo conocer de forma exhaustiva el sistema, sus redes, elementos, versiones y todo aquello que me permita, intentar lanzar un ataque, con probabilidades de éxito.

Page 9: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

9

¿Pero de donde pueden provenir los ataques?

o Debemos tener en cuenta que no es necesario, que el atacante, acceda al dispositivo móvil físicamente. Las formas más habituales son las siguientes:

o Spyware, capaces de obtener una trazabilidad, sobre nuestros contactos, emails, llamadas, SMS y enviarlos al atacante.

o Malware, que realizan compras, obtienen acceso a servicios de pago a cargo de su tarjeta.

o Phishing, que en apariencia se confunden con aplicaciones legítimas, como entidades bancarias o redes sociales, para robar las credenciales.

o Procesos en background, que vigilan lo que sucede en los dispositivos, esperando su oportunidad.

Page 10: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

10

Ante este panorama, ¿Qué podemos hacer?

o Debemos conocer nuestra infraestructura e identificar los posibles puntos débiles en nuestros dispositivos móviles y aplicaciones.

o Recuerda que la seguridad es como una cadena y por lo tanto será tan segura como el más débil de sus eslabones.

o Es recomendable, considerar la información que vamos a almacenar y el nivel de privacidad de la misma.

Page 11: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

11

Las capas que debemos asegurar

o Las necesidades de cada capa en la seguridad de un dispositivo móvil es diferente, por sus características y por las medidas correctoras que podemos aplicar.

Capa de la aplicación

Capa del sistema operativo

Capa de hardware

Capa de infraestructura

Page 12: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

12

Formación de los usuarios

o Podemos definir eficientes modelos de seguridad, que no se aplicarán correctamente sin la adecuada formación de los usuarios de los dispositivos móviles.

o Recuerda, un modelo de seguridad, debe:

o Ser fácil de implementar.o Estar centralizado.o Actualizarse frecuentemente.

Page 13: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

13

Tendencia BYOD (Bring your own device)

o Actualmente algunas organizaciones han adoptado el modelo BYOD, que permite al empleado, utilizar su dispositivo personal para acceder a los recursos de la empresa.

o Si no se implementa adecuadamente, puede representar una brecha importante en la política de seguridad de la organización.

o Podemos aplicar ciertas medidas correctoras, que afiancen la seguridad de la organización.

• Aplicaciones web• Protocolos de seguridad y privacidad• Usar Mobile Device Management (MDM)

Page 14: TechTuesday: Seguridad en Desarrollo de Apps

14

Security Mobile

Medidas de prevención1

• Protección del accesopassword, máscara, reconocimiento dactilar

2• Control de la conectividad

WiFi , GPS o Bluetooth sólo al usarlos

3• Controlar el acceso y permisos

de la aplicacionesdebemos considerarlo durante la instalación

4• Mantener el firmware y S.O.

actualizadoconsiderar las actualizaciones del fabricante

5• Mantener copia de los datos

sobre los datos críticos, personales y de la empresa

6• Borrar datos si el dispositivo se

pierdealgunos servicios permiten el borrado de datos

7• No almacene información

privadadatos como nºs de tarjeta de crédito y sus passwords…

8• Cuidado con las aplicaciones

gratuitaspueden haber sido alteradas o contener spyware…

9• Use antivirus y herramientas

de escaneoúselos y actualícelos habitualmente

10• Use software MDM

configuran y monitorizan el acceso

Page 15: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

15

¿Pero, a qué nos enfrentamos?

1- Almacenamiento de datos inseguro

2- Controles débiles en el lado del servidor

3- Protección insuficiente en la capa de transporte

4- Inyección en el lado del cliente

5- Sistema pobre de autenticación y autorización

6- Gestión inadecuada de la sesión

7- Decisiones de seguridad a partir de entradas inseguras

8- Canal lateral de fuga de datos

9- Rotura de la criptografía

10- Divulgación de información confidencial

LOS 10 RIESGOSMÁS

RELEVANTESFuente: owasp.org

Page 16: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

16

1. Almacenamiento de datos

o No debemos dejar información sensible sin proteger, incluidos los datos en la nube.

o Para ello debemos aplicar:

o Encriptación de datos.o Nunca almacenar credenciales.o Usar herramientas como SQLCipher,

para almacenar datos en BBDD internas.o No otorgar permisos globales a las

aplicaciones, usar el principio de “privilegio más bajo”.

Page 17: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

17

2. Controles débiles en el lado del servidor

o El uso de controles débiles en el lado servidor afecta de forma negativa a la seguridad de los dispositivos móviles.

o Para ello debemos controlar:

o Que las tecnologías usadas en el backend sean robustas.

o Que se use criptografía en los procesos que lo requieran.

o Sistemas de autenticación y autorización bien implementados.

o Sistemas de validación contra determinados tipos de ataques.

o Identificación y corrección de vulnerabilidades.

Page 18: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

18

3. Protección insuficiente en la capa de transporte

o Proteger la comunicación de datos sensibles o privados por redes públicas.

o Para ello debemos:

o Asumir que el entorno de red es inseguro por naturaleza.

o Uso de protocolos como SSL/TLS.o Es posible que la encriptación usada sea

“fuerte” pero usando certificados caducados.

o Certificados emitidos por entidades válidas.

o Establecer conexiones seguras validando la autenticación del CA y CRL.

Page 19: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

19

4. Inyección en el lado del cliente

o Mecanismos débiles de validación, que permiten la inyección de comandos desde el cliente.

o Para ello debemos :

o Comprobar los datos introducidos en la capa de cliente y prevenir JavaScript XSS o XML injection.

o No permitir el acceso a sistema de archivos desde el cliente.

o Filtrar los métodos HTTP permitidos.o Algunos métodos de Objective-C son

vulnerables a la inyección.o En Android filtrar las acciones de los Intent

Filters.

Page 20: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

20

5. Sistema pobre de autenticación y autorización

o Identificar que el usuario es quien dice que es.

o Para ello debemos :

o Utilizar sistemas de autenticación adecuados, como las claves de acceso, o los patrones en los dispositivos móviles.

o Evitar sistemas complicados que simplifican los usuarios comprometiendo la seguridad general.

o Apoyarse en sistemas de autenticación como OAuth, basadas en proveedores de terceros.

o Utilizar el principio de “least privilege”.o Evitar valores como IMEI, UUID…

Page 21: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

21

6. Gestión inadecuada de la sesión

o La trazabilidad del usuario móvil puede ser diferente al de uno de aplicaciones de sobremesa.

o Para ello debemos :

o Considerar que las sesiones son generalmente más largas.

o No usar el identificador del dispositivo como token de sesión. Si es capturada, puede ser usada para realizar pagos y transacciones no autorizadas.

o Mantener la sesión con tokens Oauth, SSO…o Comprobar la generación correcta de tokens.o Gestión del ciclo de vida de la sesión en lado

del servidor.

Page 22: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

22

7. Decisiones de seguridad a partir de entradas inseguras

o Intentar saltarse los permisos y modelos de seguridad establecidos usando una vía transitiva.

o Para ello debemos :

o En la plataforma iOS, evitar y controlar el abuso de los esquemas URL.

o En la plataforma Android sucede algo similar con los Intents.

o Evitar los ataques de inyección desde el lado cliente.

o Realizar revisiones de código para tratar de identificar estas brechas de seguridad.

Page 23: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

23

8. Canal lateral de fuga de datos

o Es necesario asegurarse sobre las condiciones de seguridad donde almacenamos nuestra información.

o Para ello debemos :

o Evitar situarla en las zonas de cache de los dispositivos.

o Controlar la generación y situación de los archivos de log.

o También mantener el control de las carpetas de archivos temporales.

o Situar información no sensible en sistemas de almacenamiento externo como SD Cards.

o Controlar los archivos que generan el resto de aplicaciones.

Page 24: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

24

9. Rotura de la criptografía

o Forzar la rotura de las implementaciones usando librerías de ataque.

o Para ello debemos :

o Evitar almacenar la clave junto a los datos encriptados esto anula la protección.

o Conocer la evolución de los algoritmos de cifrado en su faceta de robustez.

o Validar correctamente los certificados SSL.

o Eliminar del servidor, algoritmos débiles.o No apoyarse en los mecanismos de

encriptación del S.O.• Encoding != encryption• Obfuscation != encryption• Serialization != encryption

Page 25: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

25

10. Divulgación de información confidencial

o Hay que evitar a toda costa almacenar en la aplicación datos confidenciales.

o Para ello debemos :

o Evitar incluir en los binarios de nuestra app, passwords y tokens de autenticación.

o Es posible hacer ingeniería inversa de las aplicaciones instaladas.

o Las claves privadas deben mantenerse bien guardadas, de ahí su nombre.

o Almacenar los datos sensibles en el lado del servidor.

o La ofuscación es una alternativa, pero el riesgo permanece latente.

Page 26: TechTuesday: Seguridad en Desarrollo de Apps

Security Mobile

26

Cursos en netmind

RUTA DE FORMACIÓN

Page 27: TechTuesday: Seguridad en Desarrollo de Apps

C. Bruc, 29 entl. 4ª. C. Modesto Lafuente, 26, 108010 Barcelona 28003 MadridTel. 93 304.17.20 Tel. 91 442.77.03Fax. 93 304.17.20 Fax. 91 442.77.07

Pg. Valldaura, 184Casa 1 local 1-208042 Barcelona Av. Cortes Valencianas, 39Tel. 93 359.97.22 46015 ValenciaFax. 93 276.25.52 Tel. 96 001.00.42

Barcelona Madrid

www.netmind.es

Valencia

Page 28: TechTuesday: Seguridad en Desarrollo de Apps

C. Bruc, 29 entl. 4ª. C. Modesto Lafuente, 26, 108010 Barcelona 28003 MadridTel. 93 304.17.20 Tel. 91 442.77.03Fax. 93 304.17.20 Fax. 91 442.77.07

Pg. Valldaura, 184Casa 1 local 1-208042 Barcelona Av. Cortes Valencianas, 39Tel. 93 359.97.22 46015 ValenciaFax. 93 276.25.52 Tel. 96 001.00.42

Barcelona Madrid

www.netmind.es

Valencia