Cómo robar imágenes del iPhone de alguien cercano

El conocido investigador de Google Task Zero, Ian Beer, acaba de publicar una entrada de blog que está generando mucha atención.

El artículo tiene un título muy preciso e interesante: Una odisea para explotar la radio de proximidad sin clics en un iPhone.

Pero son titulares como el que hemos usado anteriormente los que describen la esencia práctica del ataque de Beer.

La secuencia de control que descubrió permite a un atacante robar un iPhone cercano y obtener información personal, utilizando únicamente conexiones inalámbricas, sin necesidad de clics ni advertencias por parte del usuario inocente del dispositivo.

De hecho, el artículo de Beer termina con un breve vídeo que lo muestra robando una imagen de su propio teléfono utilizando el programa de hackeo instalado a continuación. Habitación:

  • Toma una foto de un documento secreto con el iPhone en una habitación.
  • Deja al usuario del teléfono (un oso de peluche rosa gigante, por cierto) sentado tranquilamente viendo un video de YouTube.
  • Va a la habitación de al lado e inicia un ataque inalámbrico automatizado que utiliza un pequeño error en el teléfono.
  • El controlador carga sigilosamente código malicioso en el teléfono, se otorga acceso al directorio de datos de la aplicación Fotos y revisa el archivo. La imagen del truco se documenta y se publica de forma invisible en su portátil de al lado.
  • El teléfono sigue funcionando con normalidad, sin advertencias, ventanas emergentes ni nada que pueda alertar al usuario del ataque.

En la ubicación hackear celular por wifi de nuestros artículos

Así que, si has actualizado tu iPhone en los últimos meses, deberías estar a salvo de este ataque en particular.

Otra buena noticia es que Beer, según admite él mismo, dedicó seis meses de trabajo exhaustivo y dedicado a descubrir cómo explotar su propio virus.

Para que te hagas una idea de la cantidad de esfuerzo invertido en los 5 minutos de ‘; El videoclip de arriba sobre el robo de información de un oso de peluche. Como advertencia, si piensa investigar a fondo el magnífico artículo de Beer, tenga en cuenta que su publicación tiene más de 30 000 palabras, más extensa que el original Pet Ranch de George Orwell o Un cuento de Navidad de Charles Dickens.

Obviamente, puede que se pregunte por qué Beer se molestó en usar un insecto que había descubierto y del que ya había informado, pero se esforzó tanto en convertirlo en un arma, por usar la jerga paramilitar común en ciberseguridad.

Bueno, Beer da la respuesta él mismo, justo al principio de su artículo: La moraleja de este proyecto no debería ser: nadie dedicará seis meses de su vida solo a hackear mi teléfono, estoy bien.

Más bien, debería ser: una persona, trabajando sola en su habitación, fue capaz de desarrollar una habilidad que le permitiría poner en grave peligro a los usuarios de iPhone que… Sin duda, entrar en contacto cercano con ellos.

Para ser claros: Beer, a través de Google, reportó el error original rápidamente, y como sabemos que nadie más lo había descubierto antes que él, no hay indicios de que este error haya sido explotado por alguien en el mundo real.

Pero la cuestión es que es razonable asumir que una vez que se detecta un desbordamiento de la barrera a nivel de kernel, incluso a pesar de las mejores y actuales mitigaciones de control, un oponente identificado podría hacer un uso inseguro de él.

Aunque los controles de seguridad, como la aleatorización del diseño de la sala de direcciones y los códigos de verificación de recordatorio, aumentan significativamente nuestra ciberseguridad, no son soluciones milagrosas por sí mismos.

Como Mozilla, en cambio, lo expresa secamente al solucionar cualquier problema de mala gestión de memoria en Firefox, también errores obviamente leves o misteriosos que el grupo no pudo o no supo cómo explotar: ‘; Varios de estos errores revelaron evidencia de corrupción de memoria y presumimos que, con suficiente iniciativa, algunos de ellos podrían haberse utilizado para ejecutar código arbitrario.

En resumen, encontrar errores es crucial; parchearlos es crucial; aprender de nuestros errores es esencial; pero debemos seguir mejorando nuestras defensas de ciberseguridad en todo momento.

El camino hacia el ataque operativo de Beer

Es difícil hacer justicia a la obra maestra de Beer en un breve resumen como este, pero aquí hay una descripción (quizás demasiado simplificada) de solo algunas de las habilidades de hacking que utilizó:

  • Identificar un nombre de variable de bit que parecía peligroso. El nombre peculiar que dio origen a todo esto fue IO80211AWDLPeer:: parseAwdlSyncTreeTLV, donde TLV describe tipo-longitud-valor, un método para empaquetar datos complejos en un extremo y analizarlos en el otro. AWDL es la abreviatura de Apple Wireless Direct Web Link, la red inalámbrica en malla exclusiva utilizada para funciones de Apple como AirDrop. Este nombre de función indica la presencia de código complejo a nivel de kernel que se expone directamente a información no confiable enviada desde otros dispositivos. Este tipo de código suele ser una fuente de errores de programación dañinos.
  • Al encontrar un error en el código de gestión de datos de TLV, Beer detectó un problema por el cual un objeto de datos de TLV limitado a un búfer de memoria de solo 60 bytes (10 direcciones MAC como máximo) se configuraba incorrectamente. Comprobado con una limitación de seguridad común de 1024 bytes, en lugar de con la dimensión real del búfer disponible.
  • Desarrollar una pila de controladores de vehículos de red AWDL para generar paquetes sospechosos. De hecho, Beer comenzó con un proyecto de código abierto existente que pretendía ser compatible con el código propietario de Apple, pero no logró que funcionara como necesitaba. Así que terminó desarrollando el suyo propio.
  • Encontrar una manera de que los paquetes que superan los controles de seguridad existentes en otros lugares superen los controles de seguridad existentes. Aunque el código del núcleo central era defectuoso y no realizó correctamente su análisis de errores final, hubo varias comprobaciones parciales previas que dificultaron considerablemente el ataque. Por cierto, como explica Beer, resulta atractivo, en código de bajo nivel, especialmente si es crucial para la eficiencia, asumir que los datos no confiables ya se habrán desinfectado y, por lo tanto, limitar la comprobación de errores del código al punto realmente crucial. ¡No lo hagas, especialmente si ese código esencial está en el bit!
  • Aprender a convertir el desbordamiento del búfer en una corrupción de lotes manejable. Esto proporcionó un método previsible y explotable para usar paquetes AWDL y forzar la entrada de lecturas y escrituras no autorizadas en la memoria del núcleo.
  • Probar un total de 13 adaptadores Wi-Fi diferentes para encontrar la manera de contrarrestar el ataque. Beer pretendía enviar paquetes AWDL infectados en los canales Wi-Fi de 5 GHz que se usan comúnmente hoy en día, por lo que necesitaba encontrar un adaptador de red que pudiera reconfigurar para satisfacer sus necesidades.

En ese momento, Beer ya había alcanzado un resultado de prueba de concepto donde muchos de nosotros nos habríamos dado por vencidos.

Con las capacidades de lectura y escritura del núcleo, podía forzar remotamente la aplicación Calc a aparecer en el teléfono, siempre que se tuviera habilitada la red AWDL, por ejemplo, al usar el ‘;’ El símbolo “Compartir” en la app Fotos permite enviar archivos mediante AirDrop.

Sin embargo, se identificó que lo convertía en un ataque de clic cero, donde la víctima solo necesita estar usando su teléfono en ese momento.

Como puedes imaginar, un ataque de clic cero es mucho más dañino, ya que incluso un usuario informado no detectaría ninguna señal que advirtiera de un problema inminente.

  • Hacerse pasar por un dispositivo cercano que ofrece archivos para compartir mediante AirDrop. Si tu teléfono cree que un dispositivo cercano podría ser uno de tus contactos, basándose en los datos de Bluetooth que envía, iniciará temporalmente AWDL para confirmarlo. Si no está entre tus llamadas, no verás ninguna ventana emergente ni ninguna otra advertencia, pero el insecto AWDL explotable quedará expuesto brevemente mediante el subsistema AWDL activado inmediatamente.
  • Expandiendo el ataque para hacer más que simplemente activar una aplicación existente como Calc, Beer descubrió cómo usar su uso preliminar en una cadena de ataque completa que puede acceder a archivos aproximados en el dispositivo y robarlos.

En el video de arriba, el ataque tomó el control de una aplicación que ya estaba ejecutándose (el oso de peluche estaba viendo YouTube, si recuerdas); desactivó la aplicación desde dentro del bit para que ya no se limitara a ver su propia información; usó la aplicación para acceder al directorio DCIM (cámara) desde la aplicación Fotos; tomó el archivo de imagen más reciente. Y luego lo exfiltró mediante un enlace TCP de apariencia inocente.

¡Guau!

¿Qué hacer?

Consejo 1. Asegúrate de estar al día con las reparaciones de seguridad, ya que la plaga en el corazón de la cadena de ataque de Beer fue encontrada y revelada por él mismo, por lo que ya está cubierta. Probablemente a Ajustes > Actualización general de software.

Consejo 2. Desactiva el Bluetooth cuando no lo necesites. El ataque de Beer es un buen ejemplo de que “menos es más”, ya que necesitaba Bluetooth para convertirlo en un verdadero ataque sin clics.

Consejo 3. Nunca pienses que porque un insecto parezca “difícil” nunca será explotado. Beer confiesa que esto fue difícil, realmente difícil, de usar, pero al final no imposible.

Idea 4. Si eres diseñador, sé riguroso con los datos. Nunca está de más realizar una buena comprobación de errores.

Para todos los programadores: esperen lo mejor, es decir, deseen que cada persona que llame a su código haya comprobado si hay errores al menos una vez; pero prepárense para lo peor, es decir, supongan que no lo han hecho.