¿Cómo se evalúa la seguridad de una aplicación móvil?
Evaluar la seguridad de una aplicación móvil es fundamental para detectar problemas en las apps y mitigarlos antes de que sean explotados por los ciberdelincuentes
A principios de mayo de 2024, se hizo público que algunas de las aplicaciones móviles más descargadas del mundo, como Xiaomi File Manager o WPS Office, eran vulnerables a un ataque que ha puesto en jaque la seguridad de los móviles Android en este 2024: Dirty Stream. Este caso nos permite observar cómo los actores maliciosos están focalizando sus esfuerzos en atacar nuestros teléfonos móviles, unos dispositivos críticos para nuestro día a día a nivel personal, profesional y empresarial.
Ante este peligroso contexto, evaluar la seguridad de una aplicación móvil se ha convertido en una acción imprescindible para las empresas que desarrollan apps móviles. Puesto que las auditorías de seguridad de aplicaciones móviles permiten detectar y mitigar vulnerabilidades antes de que puedan ser explotadas con éxito. Por eso, es fundamental que las empresas que desarrollan aplicaciones móviles sometan a sus apps a pruebas de seguridad periódicas.
A continuación, vamos a explicarte cómo se evalúa la seguridad de una aplicación móvil para lograr que sea resiliente frente al creciente número de ataques contra nuestros smartphones.
Los principales objetivos de las auditorías de apps móviles
Una auditoría de seguridad de una aplicación móvil consiste en el análisis de los componentes y funcionalidades de esta, con el objetivo de verificar su estado de seguridad. Este tipo de auditorías se realizan tanto sobre aplicaciones Android como iOS.
Algunos de los principales objetivos de las pruebas de seguridad en apps móviles son:
- Determinar el nivel de madurez de la aplicación en cuanto a la seguridad.
- Identificar los puntos débiles o vectores de entrada para un posible atacante.
- Garantizar el uso adecuado de las herramientas proporcionadas por la plataforma.
- Concienciar al usuario para que haga un uso responsable de las aplicaciones.
- Cumplir con la normativa vigente y los estándares actuales.
- Complementar el proceso de gestión de riesgos.
Análisis dinámico y estático de una aplicación móvil
El análisis dinámico de una aplicación móvil consiste en el conjunto de técnicas que tienen como objetivo estudiar el comportamiento de la aplicación mientras está en ejecución. Como resultado, se interactúa con la aplicación para analizar la forma en la que gestiona los datos de los usuarios y las protecciones del binario. Este tipo de análisis se descompone en las siguientes partes:
- Monitorización de la aplicación y manipulación de su flujo de ejecución.
- Interceptación y análisis de la comunicación entre la aplicación y los servidores.
El segundo punto guarda una estrecha relación con los procedimientos seguidos durante la auditoría de seguridad de una aplicación web convencional o una API, por lo que las vulnerabilidades identificadas serán similares.
El análisis estático está compuesto por el conjunto de técnicas orientadas a la realización de ingeniería inversa de la aplicación. En este proceso de la evaluación de seguridad de una aplicación móvil, se intenta recuperar el código de la aplicación junto a sus recursos con el objetivo de identificar vulnerabilidades sin ejecutarla y entender en la medida de lo posible la lógica de esta.
Metodologías que se emplean para realizar una auditoría de seguridad de apps móviles
Actualmente, el principal referente en este tipo de auditoría para evaluar la seguridad de una aplicación móvil es el proyecto de seguridad móvil de OWASP (OWASP MAS).
Este proyecto incluye un estándar de verificación (MASVS) que indica los controles de seguridad que deben realizarse junto a una guía de pruebas (MASTG). Este segundo documento explica en detalle conceptos de Android y iOS y plantea múltiples técnicas y herramientas para verificar los controles descritos en la MASVS.
Adicionalmente, resulta relevante seguir metodologías empleadas en las auditorías de seguridad de aplicaciones web convencionales (OWASP ASVS/WSTG) o de una API (OWASP Top 10 API) para identificar problemas de seguridad en las comunicaciones de la aplicación con los servidores.
Herramientas para evaluar la seguridad de una aplicación móvil
El kit de herramientas empleado en una auditoría de seguridad de una aplicación móvil es amplio debido a la gran cantidad de factores que deben tenerse en cuenta. Los tipos de herramientas más empleados para evaluar la seguridad de una aplicación móvil son:
- Descompiladores: programas que permiten obtener una aproximación del código fuente de la aplicación, así como sus distintos recursos. Por ejemplo, en Android resulta habitual utilizar Apktool para desempaquetar los ficheros APK, mientras que en iOS se suele optar por GHidra, Hopper o IDA para descompilar el ejecutable del fichero IPA.
- Servidores proxy: herramientas para interceptar la comunicación entre la aplicación y los servidores para analizarla y modificarla. Este tipo de programas resulta fundamental para estudiar durante el análisis dinámico la información intercambiada con los servidores. Un ejemplo de servidor proxy ampliamente utilizado es Burp Suite.
- Herramientas de instrumentación de código: programas que inyectan bibliotecas dinámicas en el proceso de la aplicación para poder manipular su flujo durante la ejecución. Este tipo de programas son principalmente utilizados para evadir medidas de protección del binario contra ingeniería inversa como la detección de ejecución en dispositivos rooteados o jailbroken y el uso de depuradores. La herramienta más conocida para ejecutar estas tareas es frida o las basadas en ella como objection.
- Software de rooting/jailbreak: programas empleados para modificar el sistema operativo de un dispositivo móvil con el objetivo de desactivar múltiples medidas de seguridad que dificultan la auditoría. Un ejemplo de este tipo de medidas es la protección sandbox, la cual impide que un usuario o programa pueda acceder a los ficheros gestionados por una aplicación. Actualmente para Android la mejor opción es usar Magisk y para iOS dependiendo de la versión del sistema operativo disponemos de Checkra1n o Dopamine.
- Herramientas de desarrollo de Android y iOS: conjunto de programas incluidos en los kits de desarrollo para Android y iOS. Por ejemplo, un programa básico para auditar en Android es ADB. Por otro lado, en iOS resulta habitual utilizar otool.
Riesgos de no evaluar la seguridad de una aplicación móvil
No revisar adecuadamente la seguridad de una aplicación móvil puede tener serias consecuencias que podrían derivar en que un atacante comprometa la información de los usuarios.
Los problemas de seguridad más comunes a los que puede verse expuesta una aplicación móvil son:
- Almacenamiento de información sensible en el dispositivo de forma insegura.
- Uso inadecuado de las herramientas de la plataforma.
- Presencia de información sensible en la aplicación.
- Exposición de funcionalidades sensibles a terceros.
- Uso de tecnologías obsoletas.
- Protección insuficiente contra ingeniería inversa.
- Filtración de datos personales a plataformas de terceros.
Debido a la complejidad que suele suponer mitigar estos problemas de seguridad en este tipo de apps se recomienda realizar una auditoría de seguridad de aplicaciones móviles anual. Adicionalmente, puede realizarse una recertificación entre auditorías para verificar la adecuada mitigación de las vulnerabilidades identificadas.
En definitiva, las aplicaciones móviles se han convertido en herramientas críticas para personas y empresas. A través de ellas controlamos nuestras cuentas bancarias, nos comunicamos con amigos, compañeros y socios, consultamos las noticias o gestionamos múltiples áreas de nuestra vida diaria.
Por eso mismo se han convertido en un target muy atractivo para los delincuentes. Evaluar la seguridad de una aplicación móvil es la mejor forma que tienen los desarrolladores de evitar que la seguridad de su app sea vulnerada. Y, de paso, eludir las consecuencias económicas, reputacionales y legales que desencadena un incidente de seguridad.