Menú principal

martes, 23 de agosto de 2011

El parlanchín User-Agent de Safari en iOS

Es interesante reflexionar sobre por qué el User-Agent de Safari en iOS muestra tantos datos sobre la versión exacta del sistema operativo que está corriendo en el dispositivo. Tras comentar en múltiples ocasiones con profesionales del mundo de la seguridad, no se llega a ninguna conclusión clara de por qué Apple decide tener este comportamiento, y muchos incluso confiesan haberse instalado otros navegadores para evitar este comportamiento. El problema es que, cuando un usuario se conecta a cualquier sitio web, el valor de User-Agent de Safari especifica al servidor la versión exacta del sistema operativo se está realizando dicha conexión.

La teoría de User-Agent dice que este valor debe ser suficientemente explícito como para que el servidor pueda atender con garantías de satisfacción al navegador cliente. Es decir, que pueda entregarle un código que sea compatible con el cliente y útil para el usuario. Así, si un cliente se conecta con alguna versión sin Flash, o con unas restricciones de tamaño, o con un navegador que no soporta determinados protocolos, el servidor sería capaz de entregarle la página más adecuada para él. Hasta ahí todo correcto.

Sin embargo, la pregunta más interesante es, ¿por qué es necesario que Safari muestre la versión de iOS concreta?¿por qué no valdría con que el servidor identificase que la petición HTTP viene de un iOS a secas? ¿O un iOS del tipo necessario para la renderización correcta de la página? Por el contrario, en el User-Agent de un Safari en iOS se puede leer la siguiente información: 

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; es-es) 
AppleWebKit/533.17.9 (KHTML, like Gecko) 
Version/5.0.2 Mobile/8J2 Safari/6533.18.5

Se puede obvervar como se dispone de la versión del iOS, la versión de Safari, etc... Con esta información, un atacatne tiene toda la la información necesaria para saber a qué es vulnerable nuestro dispositivo. En este sencillo caso, al anunciar que se está navegando con un iOS inferior a 4.3.5 las alternativas son: 

2) El dispositivo tiene realizado el jailbreak y está parcheado con iSSLFix y PDF Patcher 2.

La cosa se pone mucho más peligrosa cuando nos encontramos como dispositivos sin actualizaciones de seguridad, como es el caso de iPhone 3G y anteriores, donde navegar con Safari se convierte en una auténtica exposición impúdica de todas las vulnerabilidades que contiene, al navegar con sistemas operativos con versiones de iOS 4.2 o incluso anteriores, de los que se conocen bugs de explotación remota.

En definitiva, es interesante reflexionar sobre el porqué de toda esa información, ¿hace bien o hace mal? A nuestro entender parece que no hace ningún bien, y puede dar mucha información para realizar ataques sobre los dispositivos vulnerables, o sencillamente un exploiter que espere a que determinados iPhone se conecten a su servidor y en función de la versión explote alguna vulnerabilidad y disponer del control del dispositivo. ¿Tú que opinas sobre este comportamiento tan parlanchín?

No hay comentarios:

Publicar un comentario en la entrada

Artículos relacionados

Otras historias relacionadas

Entradas populares