Como hemos comentado en alguna ocasión, OWASP es una comunidad dedicada a permitir la creación, desarrollo, adquisición, operación y mantenimiento de aplicaciones y otros dispositivos que puedan ser confiables, incluyendo aplicaciones móviles.
El OWASP Top Ten Mobile Risks una versión especializada del OWASP Top Ten y su última versión data del año 2016 y se espera una actualización próximamente.
Un análisis basado en OWASP Top Ten Mobile Risks identifica los principales riesgos de seguridad que afectan en la actualidad a las aplicaciones móviles y cuya detección y mitigación deben ser una prioridad.
Estos riesgos han sido definidos en base a la experiencia obtenida por la comunidad en pruebas de intrusión en aplicaciones móviles y el análisis del estado del arte de las aplicaciones móviles, teniendo en cuenta el impacto que estos riesgos pueden tener entre otros aspectos en la reputación de la organización.
Por ello, una revisión de seguridad basada en OWASP Top Ten Mobile Risks debe estar orientada a analizar y detectar los siguientes elementos como puntos más importantes:
M1 – USO INADECUADO DE LA PLATAFORMA
Esta categoría cubre el uso indebido de características de la plataforma o el no uso de los controles de seguridad, permisos de plataforma, uso indebido de TouchID, servicios de contraseñas (KeyChain IOS) o algún otro control de seguridad que sea parte del sistema operativo móvil. Lo que se valora en el ataque es la seguridad de cualquier API expuesta.
M2 – ALMACENAMIENTO DE DATOS INSEGUROS
La valoración y por ende el vector de ataque varía mucho. Desde aplicaciones de terceros que utilizan caché, cookies y otra información para recopilar datos protegidos, hasta que un adversario pueda obtener físicamente el dispositivo y ver información, debe manejar el almacenamiento de datos correctamente de varias maneras. Esto incluye la autenticación, el cifrado y el manejo adecuado de todas las funciones de almacenamiento en caché.
En resumen, lo que se valora de manera más importante es que el almacenamiento de datos inseguros puede ser extremadamente fácil de explotar ya que dependiendo de la aplicación, el impacto en el negocio puede ser bastante severo.
M3 – COMUNICACIÓN INSEGURA
Esta categoría cubre los protocolos inseguros de enlace, versiones SSL incorrectas, negociación débil, la comunicación sin cifrar de datos sensibles, etc. Por lo que hay que comprobar que los desarrolladores (a menudo muy preocupados en cuanto a la protección del procedimiento de autenticación y los datos en reposo) hayan implementado un cifrado de lo datos que se transmiten correctamente.
M4 – AUTENTICACIÓN INSEGURA
Esta categoría captura las nociones de autenticación del usuario final o gestión de sesión incorrecta. Esto puede incluir:
- No identificar al usuario en absoluto cuando sea necesario
- No mantener la identidad del usuario cuando se requiere
- Debilidades en el manejo de sesiones
M5 – CRIPTOGRAFÍA INSUFICIENTE
El uso incorrecto del cifrado es extremadamente común en las aplicaciones móviles. Los algoritmos de cifradas débiles, así como el procedimiento de cifrado / descifrado defectuoso, pueden ser fácilmente explotados y por ende lo que se valorara son los problemas donde se intentó la criptografía, pero no se hizo correctamente.
M6 – AUTORIZACIÓN INSEGURA
Esta es una categoría para capturar cualquier fallo en la autorización (por ejemplo, decisiones de autorización en el lado del cliente, navegación forzada, etc.). Es distinto de los problemas de autenticación (por ejemplo, inscripción de dispositivos, identificación de usuarios, etc.).
M7 – CALIDAD DEL CÓDIGO EN EL LADO DEL CLIENTE
Esta categoría se refiere a la captura de todos los problemas de implementación a nivel de código en el cliente móvil. Esto es distinto de los errores de codificación del servidor. Entrarían dentro de ella, cosas como desbordamientos de búfer, vulnerabilidades de cadena de formato y varios otros errores de nivel de código donde la solución es reescribir algún código que se esté ejecutando en el dispositivo móvil. Es decir, se centra en las vulnerabilidades creadas debido a errores de codificación.
M8 – ADULTERACIÓN DEL CÓDIGO
Esta categoría cubre parches binarios, modificación de recursos locales, incorrecta utilización de métodos y modificación de memoria dinámica. Por ende, esta categoría cubre cualquier modificación que el adversario pueda realizar en el código de la aplicación.
M9 – INGENIERIA INVERSA
Esta categoría incluye el análisis del núcleo binario final para determinar su código fuente, bibliotecas, algoritmos y otros activos. Esto puede utilizarse para explotar otras vulnerabilidades nacientes en la aplicación, así como para revelar información sobre los servidores backend, las claves criptográficas y la propiedad intelectual. Por lo que hay que valorar que el propio código se encuentre correctamente ofuscado ya que es la mejor manera de paliar con la ingeniería inversa.
M10 – FUNCIONALIDAD EXTRAÑA
Esta vulnerabilidad surge cuando los desarrolladores no eliminan funciones adicionales, creadas durante el proceso de desarrollo para facilitar la prueba de la aplicación y que pueden ser explotadas para realizar ataques contra la aplicación.
Como se puede observar existen diferentes riesgos en las propias aplicaciones móviles (tan de moda en los últimos tiempos en entornos personales y corporativos), por lo que desde Áudea siempre aconsejamos analizar las mismas para que no sean el foco de algún ataque.
Fernando Saavedra
Cibersecurity Manager