viernes, agosto 30, 2019

Google Project Zero desvela que "Lo que pasó en tu iPhone puede que no se quedara en tu iPhone"

Estos días Google Project Zero ha publicado la información y los detalles para conocer todos los exploits y vulnerabilidades utilizadas, así que no voy a centrarme en mucho en este artículo en esa parte. Sí que es relevante que la gente entienda detalles al respecto de lo que significa, de cómo está hecho, y de qué podemos esperar de aquí al futuro.

Figura 1: Google Project Zero desvela que:
"Lo que pasó en tu iPhone puede que no se quedara en tu iPhone"

Para que os hagáis una idea, si eres usuario de iPhone, desde el 2016 hasta el 2019, han estado activas direcciones en Internet que explotaban vulnerabilidades en todo la gama de dispositivos y todas las versiones de iOS y robar todos tus datos - mensajes privados y fotos -  con solo visitar una página web.  Esto tipo de ataques no son algo nuevo, y ya explicamos en detalle cómo funcionan este tipo de ataques en el libro de Hacking iOS: iPhone & iPad del que tenemos hasta dos ediciones.

Figura 2: Hacking iOS: iPhone & iPhone (2ª Edición)

Esto no es nuevo, ya hace mucho tiempo con el famoso JailbreakMe (v1, v2 y v3) se demostró que era más que posible hacerlo de manera automatizada. Al final, aprovechándose de que el ecosistema de dispositivos es muy reducido en iPhone y de que el número de versiones de sistema operativo iOS es muy corto, el trabajo de automatizar una explotación consistente, no era algo ilusorio.

La privacidad de los datos almacenados en un terminal iPhone

No quiero centrarme mucho en cómo funciona la seguridad en iOS y las formas de explotarla, en el libro de Hacking iOS: iPhone & iPad 2º Edición - permitidme que sea recurrente en esto - ya explicamos los detalles de cómo se suelen atacar estos dispositivos, y si quieres conocer las diferentes formas de hacerlo te recomiendo que te lo leas. No está actualizado a la última versión de iOS, pero sí que explica ataques se pueden hacer hoy, que se hacen, y que se harán en el futuro cambiando los exploits.

La parte fundamental de la privacidad de los datos almacenados en tu iOS es que la mayoría de las aplicaciones confían en varios sistemas de protección de iPhone que son clave para que no pase nada. El primero de ellos es que no se pueden acceder a los datos sin que el terminal iOS haya descifrado el disco de almacenamiento.

Es por eso que cuando un terminal se bloquea lo más importante es romper el passcode para lograr el descifrado del disco. Esto es lo que dio lugar al conflicto entre el gobierno de USA y Apple con el terminal iPhone del terrorista de San Bernardino. Al final, una empresa rompió el passcode haciendo un ataque muy inteligente clonando la electrónica de una placa de iPhone con un ataque precioso de NAND Mirroring.

Que los datos estén cifrados cuando el sistema está apagado intenta evitar que alguien haga un ataque local al terminal cuándo las protecciones de seguridad del sistema operativo iOS están apagadas - aunque hemos visto que existen formas de saltárselo -, pero como ya hemos visto, dependen de factores como que no se pueda manipular la electrónica y romper la "raíz de confianza", como ya se ha hecho.

El que iOS haya puesto tanto cuidado en el cifrado del disco duro llevó a que muchas apps no cifraran ninguno de sus datos que utilizaban. Caso de WhatsApp del que yo siempre me quejaba, Telegram, iMessage, etc... han guardado en texto plano, haciendo que cualquiera que accediera al sistema de ficheros pudiera llevarse los datos, y manipularlos.
Eso llevaba a que fuera fácil extraer la base de datos de WhatsApp desde un ordenador pareado, o que se pudieran manipular los mensajes que contenía, algo que hicimos hace mucho tiempo en unas demos tratando de explicar cómo funcionaba eso. Así que, el que iOS cifrara los datos incentivó a que las apps de iOS no cifraran ningún dato que utilizaban.

Por supuesto, para eso hay que tener acceso al sistema operativo, y poder hacer cosas. Pero existen muchas formas de manipular el sistema operativo desde fuera ya que un terminal iPhone es, ante todo, un terminal con hiper-conectividad. Esto es lo que explicaba en la presentación esa que se hizo tan famosa - tiene más de 1.6 Millones de visulizaciones - de "Tu iPhone es tan (in)seguro como tu Windows". Te puedes conectar a un terminal iPhone encendido vía WiFi, vía BlueTooth, vía 2G/3G/4G, vía conexión a tu ordenador Windows o MacOS, etc... Y cada tipo de conexión es una carretera de entrada de información - que puedes ser buena o mala - a tu sistema operativo.


Figura 4: Tu iPhone es tan (in)seguro como tu Windows

Así, por ejemplo, nosotros demostramos cómo era posible hacer un JavaScript Botnet con terminales iPhone con iOS a través de puntos de acceso WiFi maliciosos o servicios Proxy. Y hace un par de años demostramos cómo era posible robar la agenda de contactos de un terminal iPhone con solo poner música en un altavoz BlueTooth gracias a nuestro ataque de DirtyTooth.


Figura 5: Dirtytooh en iPhone para robar contactos de iOS

Si hay conectividad hay forma de llegar al sistema operativo, así que todas las partes del sistema que son "frontera" con el resto del mundo, deben tener un cuidado extremo con las vulnerabilidades que inyectan, ya que un fallo de seguridad explotable en una parte del sistema operativo que recibe información desde fuera puede hacer que tu terminal sea accesible remotamente por cualquiera.

Y ahora completemos el círculo. La primera capa de protección de tus datos es el cifrado del disco que hace iOS, pero cuando tienes el terminal arrancado la primera vez, el disco está descifrado y los datos disponibles. La segunda capa de protección debería estar puesta por el cifrado de las aplicaciones, pero vender que la protección de iPhone era tan robusta hizo que los desarrolladores no cifraran los datos habitualmente.

La tercera capa de protección es la robustez de las partes de tu iPhone que se conectan al mundo exterior, como el módulo BlueTooth, el modem 4G, el módulo de descubrimiento de redes WiFi o los clientes de servicios de Internet, como el navegador, el cliente de correo electrónico, o una app cualquiera de tu sistema. Y créeme, siempre van a aparecer vulnerabilidades en estos módulos. Vulnerabilidades que se inyectan en las nuevas funciones, que se descubren y se parchean... o no. 

La última capa de protección el el CodeSigning de iOS, o la necesidad de que todo el código que se ejecuta en iPhone tenga que venir firmado por un certificado digital que tenga una cadena de confianza firmada por Apple. Es decir, un desarrollador firma su software con un certificado digital de firma de código que ha sido emitido y firmado por Apple. Así, nadie que no haya pasado por los controles de calidad del software de Apple puede ejecutar un programa en iOS.

Por supuesto, como os podéis imaginar, conseguir que un programa que va a robar tus fotos, tu base de datos de WhatsApp o Telegram, consiga ser firmado para poder ejecutarse en el sistema operativo - y fuera del espacio de la app vulnerable - necesita encontrar los famosos exploits del kernel de iOS que permiten modificar dicho kernel para quitar la verificación de "Código Firmado" antes de ejecutar cualquier programa. Es decir, para hacer el famoso Jailbreak.

Cómo controlar tu iPhone completamente

Pues bien, supongamos que alguien pone foco en buscar vulnerabilidades de ejecución de código arbitrario en la aplicación que más se usa para traer código remoto, que no es nada más que el navegador de Internet. Cada URL que se visita desde un navegador es un código que se ejecuta en la app en iPhone, si alguien encuentra la manera de explotar una o varias vulnerabilidades para llegar a ejecutar código en el sistema operativo, habría pasado la primera protección.

Pero hay que conseguir pasar la segunda puerta, hay que romper el CodeSigning en el sistema iOS, y para eso se necesitan las famosas vulnerabilidades de Jailbreak. Estos exploits han sido codiciados habitualmente por analistas forenses - llegando a valer dos millón de dólares - e investigadores de seguridad. Apple incentivo que se buscaran estas vulnerabilidades al prohibir a "security researches", analistas forenses y cuerpos de seguridad que pudieran acceder al terminal iPhone en una investigación. Así que, la única forma de conseguir el acceso era haciendo el "jailbreak".
Ahora, Apple se ha dado cuenta de que los Security Researchers se han profesionalizado tanto en el jailbreak - por pura necesidad - que se ha vuelto en su contra. Por eso ahora Apple va a dar a los investigadores terminales iPhone con iOS "capado" para que puedan probar y buscar vulnerabilidades en otras partes sin necesidad de preocuparse por el "jailbreak".

Volviendo al objetivo de controlar el terminal iPhone completamente, primero deberíamos encontrar las vulnerabilidades en el navegador más usado - Apple Safari o Google Chrome -, después deberíamos encontrar las vulnerabilidades de jailbreak para explotarlas desde una página web. Esto lo hicieron hace mucho tiempo en "jailbreakme", una web a la que los usuarios iban con su navegador para liberar los primeros iPhone, y que abrió el camino a jailbreakme v2, y v3.

Como ya he dicho antes, como parte fundamental de la seguridad de los iPhone, en el libro de Hacking iOS: iPhone & iPad describimos este proceso en detalle, y cómo se podían empaquetar esos exploits para usarlos en otros entornos como hizo el investigador español José Selvi con JailOwnMe.

Llegados a este punto, ya tenemos una carretera desde un servidor de Internet al corazón de tu terminal iPhone para ejecutar cualquier programa, por ejemplo uno que busque todas las bases de datos de tus apps como WhatsApp, Skype, Telegram, iMessages, Photos, e-Mail, etcétera, y se lleve todos los datos a la nube. Si las bases de datos estuvieran cifradas sería un poco más complicado para el programa - debería localizar las claves de descifrado en las apps y robarlas también - pero al estar en claro, es bastante cómodo llevarse todo.

¿Y el cifrado del disco de iOS en tu iPhone? Pues como estás navegando por Internet, significa que tu terminal está arrancado y por lo tanto el disco duro descifrado - pusiste el passcode para iniciar sesión - así que tus datos están disponibles para cualquier app que se ejecute, esté firmada o no, ya que se ha hecho un jailbreak.

¿Y qué ha descubierto Google Project Zero?

Pues que desde el año 2016 hay sitios en Internet que tienen automatizado exploits e implants (los programas que se meten dentro de tu terminal para robarte los datos) para romper la seguridad de todos los terminales iPhone según van saliendo y robar todos los datos. Así que con hacer campañas de spear-phishing (mensajes de e-mail con direcciones URLs maliciosas enviadas a objetivos clave), se pueden llevar los datos de una persona cualquiera con solo hacer un click en la URL.

Figura 7: Línea temporal de los exploits usados en las diferentes versiones

Esto, desde luego, deja por tierra la campaña de Apple de este año en Las Vegas de "Lo que pasa en iPhone se queda en tu iPhone", que fue una campaña clara y directa contra el negocio de los datos en Google, y se suma a que haya tenido que pedir perdón públicamente al saberse que las grabaciones de voz de Siri - de lo que ya sabíamos que podía pasar - estaban siendo escuchadas por empresas terceras a Apple sin mucho control.
La descripción de todos los exploits en iOS, en el navegador, y la arquitectura del implant que hacen para robar todos tus datos están en estos artículos del blog de Project Zero.

¿Y qué podemos hacer contra esto?

Pues por desgracia es el mundo en el que estamos y no vamos a poder hacer demasiado. Hay que tomar precauciones infinitas. Actualizar el sistema operativo, ser cuidadoso con las URLs que se abren, pero ... podríamos caer cualquiera en este tipo de ataques, así que lo que tenemos que exigir a las compañías que hagan todo lo que sea posible por evitar esto. 
Que inviertan más en las pruebas de seguridad, que la ventaja competitiva del tiempo no justifica que un fallo de estas características acabe con la vida de una persona por ver expuesta toda su privacidad. No es solo decir "I am sorry", es hacer más, que podemos hacer muchas más cosas, y estar más cerca de los mejores "Security Researchers" para evitar al máximo posible estas situaciones que, lamentablemente, volveremos a vivir una y otra vez en este mundo digital en el que vivimos.

Saludos Malignos!

No hay comentarios:

Entrada destacada

Seis recomendaciones personales de libros de @0xWord para disfrutar y aprender

Este verano pude disfrutar de la lectura de un libro que me encantó. El libro de Factfulness que me había regalado mi compañera Beatriz Ce...

Entradas populares