Protección De Aplicaciones Móviles En Ios
Total Page:16
File Type:pdf, Size:1020Kb
Protección de Aplicaciones Móviles en iOS Trabajo Final de Máster Curso 2017-18 Máster Interuniversitario de Seguridad de las Tecnologías de la Información y de las Comunicaciones (MISTIC) Realizado por: Félix Garcia Lainez Consultor: Pau del Canto Rodrigo Profesor de la Asignatura: Victor García Font Fecha de Entrega: Junio de 2018 TFM - Protección de Aplicaciones Móviles en iOS ! Esta obra está sujeta a una licencia de Reconocimiento- NoComercial-SinObraDerivada 3.0 España de Creative Commons "2 TFM - Protección de Aplicaciones Móviles en iOS Ficha del Trabajo Final! Título del trabajo: Protección de Aplicaciones Móviles en iOS Nombre del autor: Félix Garcia Lainez Nombre del consultor/a: Pau del Canto Rodrigo Nombre del PRA: Victor García Font Fecha de entrega (mm/aaaa): 06/2018 Titulación:: MISTIC Área del Trabajo Final: Trabajo Final de Máster Idioma del trabajo: Castellano Palabras clave Seguridad, Aplicaciones Móviles, iOS "3 TFM - Protección de Aplicaciones Móviles en iOS Resumen! El objetivo de este trabajo ha sido la creación de una guía o manual de referencia para el desarrollo de aplicaciones móviles nativas seguras en iOS.! Para poner en contexto este trabajo, tal y como se describe en los capítulos 2.1 y 2.2 de esta memoria, la gran popularidad que han alcanzado las aplicaciones móviles en los últimos años ha propiciado la aparición de una gran cantidad de riesgos y amenazas asociadas a este tipo de tecnologías. ! Con el objetivo de mitigar y prevenir estos riesgos y amenazas, tal y como se recoge en el capítulo 2.3, el OWASP trató de estandarizar el desarrollo de este tipo de aplicaciones a través de la creación del MASVS [1]. Aun a pesar de no contar con el consenso de la industria, se podría decir que a día de hoy este estándar es el principal punto de referencia en este campo. ! Si bien este estándar supone un buen punto de partida, éste adolece de la falta de un conjunto de soluciones técnicas, buenas prácticas y casos de test que permitan facilitar y verificar el cumplimiento de los requisitos incluidos en el mismo. Así pues, en el capítulo 5 de este trabajo se da solución a esta problemática a través de la revisión de todos y cada uno de estos requisitos, proporcionando una línea de base para la verificación de la seguridad en las aplicaciones móviles nativas, así como la orientación necesaria durante todas las fases del desarrollo y pruebas de las mismas.! "4 TFM - Protección de Aplicaciones Móviles en iOS Abstract! The goal of this Master’s Thesis has been the creation of a guide or reference manual for the development of secure native mobile applications for iOS.! To put this work in context, as described in chapters 2.1 and 2.2 of this thesis, the great popularity that mobile applications have achieved in recent years has encouraged the emergence of a large number of risks and threats associated with this kind of technologies.! In order to mitigate and prevent these risks and threats, as stated in chapter 2.3, the OWASP tried to standardize the development of this type of applications through the creation of the MASVS [1]. Even in spite of not having the consensus of the industry, it could be said that today this standard is the main point of reference in this field.! Although this standard is a good starting point, it su#ers from the lack of a set of technical solutions, good practices and test cases to facilitate and verify compliance with the requirements included in it. In chapter 5 of this document this problem is solved through the review of each one of these requirements, providing a baseline for the verification of security in native mobile applications, as well as the necessary guidance during all phases of the development and testing of them.! "5 TFM - Protección de Aplicaciones Móviles en iOS Indice! 1. Objetivos$......................................................................................................7! 2. Estado del Arte$.............................................................................................7! 2.1. Riesgos y Controles$...............................................................................8! 2.2. Riesgos en Aplicaciones Móviles (Client-Side)$....................................11! 2.3. Mobile Application Security Verification Standard (MASVS)$................13! 3. Metodología$...............................................................................................16! 4. Planificación$...............................................................................................17! 5. Requisitos de Seguridad$............................................................................20! 5.1. V1: Requisitos de Arquitectura, Diseño y Modelado de Amenazas$....20! 5.2. V2: Requisitos de Almacenamiento de Datos y Privacidad$.................22! 5.3. V3: Requisitos de Criptografía$.............................................................33! 5.4. V4: Requisitos de Autenticación y Gestión de Sesiones$.....................36! 5.5. V5: Requisitos de Comunicaciones de Red.........................................$44! 5.6. V6: Requisitos de Interacción con la Plataforma$.................................48! 5.7. V7: Requisitos de Calidad del Código y Configuración de la Compilación$................................................................................................55! 5.8. V8: Requisitos de Resistencia contra la Ingeniería Inversa$.................65! 6. Conclusiones..............................................................................................$79! 7. Glosario$......................................................................................................80! 8. Bibliografía$.................................................................................................83! 9. Anexos$.......................................................................................................87 "6 TFM - Protección de Aplicaciones Móviles en iOS 1. Objetivos! El objetivo de este Trabajo Final de Máster es desarrollar un manual de referencia para llevar a cabo el desarrollo de aplicaciones móviles nativas seguras para iOS. Esta guía se ha pensado desde el punto de vista del desarrollador, de tal manera que en la misma se exponen una serie de requisitos de seguridad que deberían cumplir las aplicaciones nativas desarrolladas para iOS, incluyendo para cada uno de estos requisitos diferentes procesos y técnicas para cumplir con los mismos. Al final, la idea de este manual de referencia es que un desarrollador de aplicaciones móviles nativas para iOS pueda utilizarlo tanto para verificar el nivel de seguridad de una aplicación cualquiera, como para aplicar diferentes técnicas de seguridad descritas en el mismo que le permitan cumplir con estos requisitos establecidos.! 2. Estado del Arte! Según un estudio reciente del Instituto Nacional de Ciberseguridad de España (INCIBE), un usuario promedio de teléfonos inteligentes o smartphones tiene alrededor de 26 aplicaciones instaladas en su terminal, de las que el 97% tiene algún tipo de problema de privacidad. En términos de seguridad, el 86% carecía de las formas más básicas y el 75% no cifra los datos recopilados.! Las conexiones que se realizan desde estos dispositivos móviles son inalámbricas en prácticamente el 100% de los casos a través de tecnologías como pueden ser las redes de datos móviles, conexiones Wi-Fi, Bluetooth o NFC - suponiendo un punto de entrada potencial para virus, malware, etc. De la misma manera, este tipo de dispositivos almacenan todo tipo de información sobre los usuarios, de tal manera que el acceso no autorizado a dichos datos pueda comprometer la privacidad de los mismos.! Así pues, al igual que en cualquier otro tipo de tecnologías, es de vital importancia que los desarrolladores de este tipo de aplicaciones hagan hincapié en todo tipo de aspectos relacionados con la seguridad en el desarrollo las mismas, desde su concepción hasta su lanzamiento, adelantándose a los riesgos y amenazas potenciales.! Cada nueva tecnología introduce nuevos riesgos de seguridad, y mantenerse al día con esos cambios es uno de los principales desafíos a los que se enfrenta la industria de la seguridad. El lado defensivo está siempre unos pocos pasos por detrás, por ejemplo a primera vista puede parecer que los teléfonos inteligentes son como las computadoras pequeñas y las aplicaciones móviles son como el software clásico, por lo que seguramente los requisitos de seguridad deberían de ser similares en ambos casos. Pero la realidad es que esto no funciona así. Los sistemas operativos de los teléfonos inteligentes son diferentes de los de escritorio, al igual que los sistemas operativos y las aplicaciones móviles son diferentes de las aplicaciones web. Por ejemplo, el método clásico de escaneo de virus basado en firmas no tiene sentido en los entornos de SO móviles modernos: no solo es incompatible con el modelo de distribución de aplicaciones móviles, también es técnicamente imposible debido a restricciones de sandboxing. Además, algunas tipos de vulnerabilidades como es el caso de los desbordamientos de bu#er y problemas de XSS son menos relevantes en el contexto de aplicaciones móviles corrientes que en el caso de por ejemplo las aplicaciones de escritorio y aplicaciones web.! Con el tiempo, esta industria ha logrado un mejor control sobre las amenazas existentes en las aplicaciones móviles. Como resultado, la seguridad en este tipo de dispositivos se basa principalmente en la protección de datos: las aplicaciones almacenan información personal, imágenes, grabaciones de audio, notas,