El formato o esquema URL en iOS ofrece a los desarrolladores un medio para comunicar apps entre ellas. Pero más allá de la comunicación, con incluir el nombre de la aplicación en la misma URL es también posible abrirla o ejecutarla. Por ejemplo, "facetime://" abrirá FaceTime para realizar por ejemplo, una llamada. Este es sólo uno de los muchos esquemas que existen con este formato para las URL. El abuso de los esquemas URL puede acabar siendo un problema para la seguridad como veremos a continuación.
Apple utiliza un mecanismo de sandbox para la seguridad y privacidad de los datos contenidos en las apps creadas para iOS. Es un sistema bastante seguro pero tiene un pequeño problema: limita demasiado la comunicación entre aplicaciones. Aquí es donde entra el esquema URL. iOS permite un único esquema URL para que dicha aplicación pueda ser llamada por otras, utilizando un sencillo método en el cual se aplica el principio de orden de llegada, es decir, sólo se ejecuta y se registra como auténtica la primera aplicación que utilizó dicho esquema en primer lugar. Aún así, es posible explotar esta vulnerabilidad tal y como explican a fondo en la web de Trend Micro para conseguir un ataque tipo Highjacking (o secuestro)
Figura 1. Aspecto de un token de login robado por la aplicación URLSchemeAttack. Fuente. |
Otro de los problemas relacionados con los esquemas URL es que estos pueden ser utilizados para ejecutar aplicaciones, como hemos comentado al principio de este artículo. Es decir, una aplicación maliciosa podría registrar una URL específica, existiendo la posibilidad de que dicho malware se pudiera ejecutar simplemente lanzando dicho esquema URL. Existen muchas aplicaciones de este tipo las cuales intentan reclamar el esquema URL perteneciente a otras aplicaciones conocidas como wechat://, fb://, etc. Esta práctica está muy extendida para conseguir ejecutar pop-ups con publicidad no solicitada.
Figura 2. Algunas aplicaciones maliciosas que intenta sacar provecho de aplicaciones populares. Fuente. |
Los esquemas URL pueden ser peligrosos y no se recomiendan para transmitir información sensible o confidencial. Un atacante puede aprovechar la función de "no autenticación" ya que los datos se transfieren independientemente del origen o destino. En su lugar, se recomienda utilizar los llamados universal links, ya que configurando un enlace de este tipo creamos un interfaz de login además de una identificación aleatoria para autenticar el token de inicio recibido. De esta forma es sencillo prevenir un ataque tipo Highjacking además de la reproducción del token de login.
No hay comentarios:
Publicar un comentario