martes, septiembre 20, 2016

NAND Mirroring: O cómo el FBI se pudo hacer con la llave maestra del iPhone

El asunto del iPhone 5C y la NO colaboración por parte de Apple en el proceso de recuperación del passcode del terminal del llamado terrorista de San Bernardino llevó a que todo acabara en los tribunales y con el FBI pidiendo no ya la colaboración de Apple para desbloquear ese iPhone 5C sino una llave maestra para desbloquear cualquier terminal iPhone. La cosa se complicó mucho mediáticamente hasta que al final el FBI dijo que ya había conseguido acceso al terminal y decidió olvidar el asunto. ¿Cómo lo hizo? Las especulaciones al respecto fueron muchas y variadas. Desde el mundo de los investigadores de seguridad, hasta los amantes de los conspiraciones. Hoy hay una explicación técnica posible.

Figura 1: NAND Mirroring o cómo el FBI se pudo hacer con la llave maestra del iPhone

Lo único que teníamos anunciado públicamente era que el FBI había conseguido acceso y que además había ayudado con este "exploit" o "técnica" a otras unidades del gobierno que tenían el mismo problema con el mismo tipo de terminal. Para los que no recuerden el problema, el asunto radica en poder hacer un número de intentos ilimitados al passcode sin que se borre el disco duro cuando se alcance un número determinado de fallos. Es decir, lo que quería el FBI es que se anulara esa función del terminal por parte de Apple.

NAND Mirroring en iPhone 5C

Los investigadores de seguridad propusieron una técnica llamada NAND mirroring que permitía hacer este trabajo. De forma muy simplificada, la idea consiste en copiar la memoria del chip que controla el número de intentos de passcode. La NAND Memory. Después, se clona y todos los datos que contiene la memoria NAND original se ponen sobre otra memoria vacía. Esto hace que la memoria NAND original tenga el contador de intentos intacto al igual que la memoria NAND clonada. Después, se conecta la memoria NAND clonada al terminal y se prueba un número de passcodes sin llegar a alcanzar el límite máximo que lanza el proceso de borrado del disco, al que llamaremos límite de seguridad.

Figura 2: Analizador de señales conectado para clonar la NAND de un iPhone 5

Una vez alcanzado el límite de seguridad en los intentos, la memoria NAND clonada tiene el contador al límite, así que se vuelve a copiar sobre ella el contenido de la memoria NAND original que tiene el contador inicial y se vuelve a conectar al terminal iPhone 5C para continuar con otro conjunto de intentos hasta alcanzar el límite de seguridad. Así, el proceso se repite hasta poder dar con el passcode en un ataque de fuerza bruta.

Figura 3: Demostración del concepto de NAND Mirroring en iOS 9 de Jonathan Zdziarski

El proceso ya había sido demostrado y explicado en una simulación con un terminal iPhone 5C con jailbreak por parte del investigador Jonathan Zdziarski, pero ahora el investigador Sergei Skorogobatov de la Universidad de Cambridge ha publicado un paper y un vídeo en el que demuestra el proceso.
Para ello, ha tenido que decodificar las señales físicas de la memoria y hacer un proceso de ingeniería inversa de las señales para hacer un proceso de volcado de todas las posiciones de memoria del chip, al estilo que cuentan en Halt & Catch fire con la memoria de la BIOS de IBM. El proceso está explicado en detalle en el paper, que merece la pena que leas.

Figura 5: Demostración de NAND Mirroring en iPhone 5C de Sergei Skorogobatov

Este trabajo viene acompañado justo junto con la noticia de la demanda que han interpuesto un conjunto de abogados en defensa de las libertades de los ciudadanos para que el FBI dé explicaciones de cuál ha sido el proceso que ellos utilizaron para conseguir acceso al terminal iPhone 5C, puesto que quieren saber si cuentan con una llave maestra o no. 


Figura 6: Episodio de "Halt & Catch Fire" en el que se clona la BIOS de IBM

Sea como fuere, con la publicación de la técnica de NAND mirroring en iPhone 5C, estos terminales acaban de convertirse en los más inseguros junto con los iPhone 4, ya que en ambos casos existe forma demostrada y conocida de saltarse el passcode del terminal sin borrar los datos, así que la llave maestra que pedía el FBI ha sido entregada a todo el mundo. Ahora es cosa del usuario asumir el riesgo de tener uno de estos terminales o deshacerse de ellos.

Por supuesto, queda por ver si esta técnica se puede aplicar a terminales iPhone 4S, iPhone 5, iPhone 5S, iPhone 6, iPhone 6 Plus, iPhone 6S, iPhone 6S Plus y los flamantes iPhone 7 e iPhone 7 Plus y el resto de dispositivos con iPad, iPod Touch o Apple TV . Veremos.

Saludos Malignos!

4 comentarios:

Mario Raúl PÉREZ dijo...

Esa es una técnica muy conocida en electrónica, el IPhone realmente no es un dispositivo de seguridad.

Igualmente me quito el sombrero, por la forma tan amena y didáctica que lo explicas, eres un crack en eso, en hacer disfrutar del leer contenidos tan técnicos.

Aprovechando la realidad de que estas trabajando con Latch, se me ocurre que una posible mitigación a este problema seria una llave hibrida, en donde parte de el código se obtenga de un servidor, y otra parte del dispositivo.

En este esquema tendríamos dos contadores, uno en "la nube" y el otro en el dispositivo, siendo ya mas complejo corromperlo, requiriendo acceso a dos ubicaciones.

Claro esta hay otras opciones como dispositivos especializados de criptografia, chips y memorias "Antisabotaje", pero siempre nos quedara la duda de si no hay puertas traseras solicitadas por parte del FBI o la CIA.

Un saludo grande, y que siga la fiesta ;)

Pixu Kideak dijo...

Sin querer desviar el tema central del artículo, ¿en Android se cuenta con algún sistema similar, o en caso contrario, el número de intentos de logueo es ilimitado?

Un saludo,

Jake Torra dijo...

¿Todo este procedimiento serviría de algo si se hiciera un borrado remoto del iphone desde icloud una vez perdido/robado? De todas formas creo que con acceso físico a un dispositivo muy pocos equipos (no solo smartphones) se salvan de que se les pueda extraer gran parte de la información, lo realmente peligroso seria poder hacerlo remotamente. Dentro de poco tiempo empezaremos a ver los primeros discos de smartphones encriptados, como ya tienen la mayoría de las personas mas influyentes del mundo así como ejércitos etc.

Mario Raúl PÉREZ dijo...

BlackBerry si no me equivoco ya tiene un dispositivo android con funciones de encriptado. De hecho BB fue unos de los primeros en incorporar en el propio S.O. funciones de encriptación avanzadas y algo de hardware de soporte.

En cuanto al borrado seguro, cosa que tanto Android como IPhone lo admiten, el detalle es que requiere de conexión.

Veamoslo del lado "benévolo": El primer paso de una auditoria física y análisis forense es aislar el equipo bajo análisis. Si es una notebook "intentar" desconectar su batería, luego hacer imagen de todo lo que se pueda hacer imagen (backup): Discos, memorias, roms. por último jugar con el hasta desbloquearlo o encontrar la información buscada.

Ningún equipo, salvo los que incluyen hardware anti-sabotaje (chips especializados que son incopiables-inborrables-inaccesibles sin su clave), se salva de una lectura "en crudo" de sus posiciones de memoria.

Hasta los sistemas mas buenos, y que pueden permitirse invertir muchísimo dinero, son vulnerados (Casos comunes son las PlayStations, Los XBox, el sistema de DVD, etc.)

Lo último es integrar memorias en los mismos chips que procesan, haciendo chips o memorias inteligentes, que no tienen acceso a sus circuitos internos desde el exterior salvo por su puerto de comunicaciones controlado por CPU.

Este último es el caso de las smart-cards usadas por ejemplo en tarjetas bancarias.

Eso es seguridad algo mas garantizada, aunque siempre estaremos confiando en la buena fe del fabricante en que no deje puertas traseras.

Desarmas un chip de este estilo, es muy difícil, es como abrir un microprocesador (y no romperlo).

Los equipos para hacer eso último son muy caros y estos chips pueden incluir técnicas para hacer que se rompa al intentar "abrirlos". Este proceso se conoce como decapping, otras técnicas usadas son rayos x, microscopios electrónicos especializados, mediciones de consumo de energía, donde se puede "ver" o "sentir" lo que pasa en el circuito interno e inferir la información que procesan.

En fin, si la información es confidencial, lo mas confiable podría ser crear una aplicación que use GPS y Geo-vallas (o bluetooh para medir proximidad a una baliza oculta) para que cuando el dispositivo se aleja de la zona confiable, una aplicación o proceso del sistema operativo empiece a hacer un borrado seguro de los datos (de forma autónoma y a ocultas, sin intervención del usuario ni internet).

Evitar que el dispositivo se apague y hacer uso y abuso del hecho que las baterías en algunos dispositivos ya no son accesibles ni fáciles de quitar.

Esto último seria más seguro, necesitaría un dispositivo rooteado y conocimientos de programación, pero es una alternativa factible y una opción bastante "vendible" a quien necesite seguridad, digo, por si alguien toma la idea ;)

En fin, se me ha pasado la mano con la extensión del comentario pero espero transmitir algo útil en el.

Saludos!

Entrada destacada

Navaja Negra: La CON de Albacete el 29 de Septiembre @navajanegra_ab @elevenpaths @0xWord

Es la sexta edición de esta CON que comenzó hace ya más de un lustro en la ciudad de Albacete , reúne el próximo 29 de Septiembre a una b...

Entradas populares