Home Categorias Apple Analisis Forense en Iphone – 1 Parte extracción directa desde el iphone.

Fuente: http://resources.infosecinstitute.com/iphone-forensics/

“Las imágenes y la explicación técnica es propiedad de http://resources.infosecinstitute.com

El Analisis forense del iPhone se puede realizar  desde las copias de seguridad realizadas por iTunes (ataque al depósito de claves) o directamente en el  dispositivo.

 En este artículo se explica el procedimiento técnico y los desafíos que implica la extracción de datos desde el iPhone en directo..

Los investigadores de los laboratorios de Sogeti han dado a conocer herramientas de código abierto (forenses, con el apoyo de iOS 5) para recuperar datos de bajo nivel desde el iPhone. Los datos que aparecen a continuación describen sus investigaciones y dan una visión general sobre el uso de herramientas forenses para  iPhone.

Pasos a seguir  el análisis forense del iPhone son:

  • Creación y Carga de un conjunto de herramientas forenses en el dispositivo sin dañarlo
  • El establecimiento de una comunicación entre el dispositivo y el ordenador
  • Anulación de las restricciones de códigos de acceso para el iPhone
  • Leyendo el sistema de archivos cifrados
  • Recuperar los archivos borrados
  • Creación y Carga de las herramientas forenses

Imagine una computadora que está protegida con una contraseña a nivel de sistema operativo – pero que todavía se puede acceder a los datos del disco duro de arranque desde un CD live, o sacando el disco duro y conectándolo  a otro equipo. 

Para llevar a cabo el análisis forense del iPhone, se utiliza la idea  de Live CD. iPhone sólo tiene un puerto , vamos a cargar el sistema operativo personalizado a través de USB para acceder al disco duro del dispositivo. 

Con el fin de crear y cargar las herramientas forenses, primero tenemos que entender las funciones del iPhone a nivel de sistema operativo. IOS (antes conocido como iPhone OS) es el sistema operativo que se ejecuta en todos los dispositivos de Apple como el iPhone, iPod, Apple TV y el iPad. IOS es un archivo zip (viene con la extensión. ipsw) que contiene los gestores de arranque, kernel, software de sistema, librerías compartidas.

Cuando un iPhone arranca,pasa a través de una cadena de confianza, que es una serie de revisiones de firma RSA entre los componentes de software en un orden específico, como se muestra a continuación:

El BootRom es memoria de sólo lectura (ROM) y es la primera etapa de arranque de un dispositivo iOS.BootRom contiene todos los certificados raíz  que debe de comprobar antes de pasar a la siguiente etapa.

iPhone funciona en 3 modos: modo normal, modo de recuperación, el modo DFU 

En el modo Normal, BootRom  inicializa y carga el cargador de inicio de nivel bajo (LLB) mediante la verificación de su firma. LLB chequea  la firma y las cargas de la etapa 2 del gestor de arranque (iBoot). la firma iBoot comprueba el núcleo y el árbol de dispositivos, mientras que la firma núcleo comprueba todas las aplicaciones de usuario.

En modo DFU, el iPhone sigue la secuencia de arranque con una serie de controles de los certificados, como se muestra a continuación. La firma BootRom comprueba los cargadores de arranque de segundo nivel (IBSS, IBEC). La firma del cargador de arranque comprueba el núcleo, y la firma del núcleo comprueba la ramdisk.


Durante la actualización de  IOS, el ramdisk se carga en la RAM y se carga a todos los otros componentes del sistema operativo. Para el analisis, vamos a crear un disco RAM a medida con nuestro kit completo de herramientas forenses y lo cargaremos en la memoria volátil del iPhone. 

Para cargar nuestra Ramdisk  tenemos que pasar por alto todos estos controles de la firma. En la cadena de la secuencia de arranque de confianza, si queremos controlar un vínculo, que puede controlar totalmente todos los enlaces que siguen. La comunidad hacker ha encontrado varias vulnerabilidades en BootRom. Estas nos  permiten  flashear nuestro propio cargador de arranque y de este modo parchear las firmas para la ejecución de las etapas posteriores.

Aparte, los controles en cada etapa están encriptados. Estas claves de cifrado pueden ser descargadas con las herramientas de jailbreak.

La construcción de un disco RAM personalizado

En primer lugar, vamos a construir un disco ram personalizado utilizando todas nuestras herramientas forenses y parchear las comprobaciones de disco ram de la firma en el kernel. Más tarde, vamos a utilizar herramientas de jailbreak para cargar el kernel por los controles de parcheo de la firma bootrom.

Con el kit de herramientas de codigo abierto realizado por los laboratorios de Sogeti, podemos construir una Ramdisk sólo en Mac OS X. El juego de herramientas forenses  contiene secuencias de comandos Python, un binarios y unos cuantos pocos scripts de shell.

Con el fin de ejecutar las herramientas, primero tenemos que instalar todas las dependencias (utilice los comandos que aparecen a continuación en la terminal de OS X).

Descargar ldid, conceder permisos de ejecución y moverlo a / usr / bin.

Descargue e instale OSXFuse.

Descargar e instalar módulos de Python – pycrypto, M2crypto, construir y barra de progreso.

Descargar e instalar Mercurial (http://mercurial.selenic.com/) de revisar el código fuente desde el repositorio.

Descargar RedSn0w para recuperar claves de cifrado para descifrar Ramdisk y Kernel.

Para parchear la firma en el kernel.

Lo anterior crea un script de python kernel parcheado y un script de shell para crear ramdisk.

Ejecutamos los sscript del kit de herramienta de análisis que se suma a la ramdisk. La imagen de disco RAM es más que un simple sistema de archivos HFS + (nativo de Mac, por lo que es bastante simple de añadir archivos a la misma). Todos los pasos anteriores, crear un kernel parcheado y un disco RAM personalizado con  las herramientas forenses. Nota: He creado el kernel parcheado y un ramdisk personalizado para el iPhone 4. Usted puede descargar directamente los archivos y saltarse todos los pasos anteriores.

Enlace de descarga  para:

  • myramdisk.dmg
  • kernelcache.release.n90.patched
  • iphone forensics.pptx

Cargando Forensic Toolkit

Con el fin de cargar la caja de herramientas forenses, el firmware iOS 5, el  kernel parcheado y el disco RAM personalizado necesitamos realizar lo siguiente.

Conectar el dispositivo al ordenador mediante un cable USB y ejecutar el siguiente comando. Siga los pasos mostrados por el redsn0w para arrancar el dispositivo en modo DFU. En el modo DFU, redsn0w explota la vulnerabilidad BootRom y carga el núcleo parcheado y ramdisk personalizado en el dispositivo.

Si el proceso falla con la no identificación de datos obtenidos de error, asegúrese de que el equipo host está conectado a Internet. 

El establecimiento de una comunicación entre el dispositivo y el ordenador

Una vez arrancado con el disco RAM personalizado, . USBMUX es el protocolo utilizado por iTunes para hablar con el iPhone  y coordinar el acceso . USB proporciona multiplexación TCP como conectividad a través de un puerto USB mediante SSL. En este canal, iTunes utiliza la AFC servicio para transferir archivos. Pero aquí se utiliza este canal para establecer una conexión SSH y obtener un shell en el dispositivo.

SSH trabaja en el puerto 22. Tcprelay.py va a dirigir el trafico del 22 al puerto 2222.

SSH es ahora accesible en localhost: 2222.

En este punto, se obtiene el acceso al sistema de archivos. Para hacer las cosas aún más complicadas, cada archivo es encriptado con su propia clave de cifrado única, vinculada a un determinado dispositivo IOS. Por otra parte, el mecanismo de protección de los datos introducidos con el IOS 4 añade otra capa de cifrado que no da acceso a los archivos protegidos y elementos de llaves, cuando el dispositivo está bloqueado. La protección de datos es la combinación del uso de encriptación basada en hardware, junto con una clave de software. 

Todos los iPhone (> 3g) contiene una pieza especial de hardware (AES procesador) que se encarga de la codificación con un juego de llaves codificados (UID, GID). El Sistema operativo que se ejecuta en el dispositivo no puede leer las claves codificadas, pero puede utilizar las claves generadas por el UID (0 × 835 y 0x89B) para el cifrado y el descifrado. 

La clave de software está protegida por un código de acceso y también se utiliza para desbloquear el dispositivo cada vez que el usuario desea hacer uso del dispositivo. Así que para acceder a los archivos protegidos, en primer lugar tenemos que pasar por alto el código de acceso.

Anulación de las restricciones de códigos de acceso para el iPhone

En un principio (<iOS 4), código de acceso se almacena en un archivo que puede ser eliminado directamente a través de SSH. Desde la introducción de la protección de datos (a partir de iOS 4), el código de acceso se utiliza para cifrar los archivos protegidos y elementos de llaves en el dispositivo. Así que con el fin de descifrar los datos, tenemos que suministrar el código de acceso válido.

La validación de clave de acceso se realiza a dos niveles: uno en el trampolín y otra a nivel de kernel.   Sin embargo, estos mecanismos de protección no son aplicables a nivel de kernel (método AppleKeyStore) y dan lugar a ataques de fuerza bruta. Para hacer ataques de fuerza bruta . 

Puerto 1999 se abrió con tcprelay.py es utilizado por el script de fuerza bruta. Se conecta con el demonio personalizado restored_external en el disco RAM, recoge la información básica del dispositivo (número de serie, UDID, etc), las claves únicas del dispositivo (teclas de 0 × 835 y 0x89B), descarga la keybag sistema y trata de fuerza bruta la contraseña (4 dígitos solamente).

A continuación la tabla muestra el tiempo necesario para bruteforce códigos de acceso diferentes.

Código de acceso Complejidad Fuerza bruta tiempo
4 dígitos 18 minutos
4 alfanumérica 51 horas
5 alfanumérica 8 años
8 caracteres alfanuméricos 13.000 años

Leyendo el sistema de archivos cifrados

Después de una fuerza bruta  con éxito, el programa transfiere automáticamente la llave.Llavero es una base de datos que almacena SQLLite datos sensibles en su dispositivo. El llavero está cifrado con la clave de hardware, sino que también restringe el que las aplicaciones pueden acceder a los datos almacenados. Cada aplicación en el dispositivo tiene un único identificador de la aplicación (también llamado como derechos). El servicio de llavero que restringe los datos de una aplicación puede tener acceso sobre la base de este identificador. De forma predeterminada, las aplicaciones sólo pueden acceder a los datos relacionados con su propia aplicación identificador. Más tarde, Apple introdujo grupos de llavero, permitiendo a las aplicaciones que pertenecen al mismo grupo  poder  compartir los elementos de llavero. Hay dos formas de acceder a todos los elementos de llavero: Una es escribir una aplicación. El otro es por escrito una solicitud y la concesión de llavero com.apple.keystore.access-keys-derecho.

Llavero contenidos de bases de datos pueden ser extraídos utilizando keychain_tool.py

Ejecutar el script de shell dump_data_partition para volcar el sistema de archivos

El script lee el sistema de archivos desde el dispositivo y lo copia al directorio de UDID como una imagen (. Dmg). El archivo de imagen se puede abrir utilizando el HFSExplorer modificado que descifrar los archivossobre la marcha .

Para descifrar de forma permanente, el guión emf_decrypter.py se puede utilizar.

Se descifra todos los archivos de la imagen del sistema de archivos. Para ver los archivos desencriptados, montar el sistema de archivos con comandos a continuación.

Tan pronto como el sistema de archivos se descifra, hay varios archivos de interés disponibles, tales como la base de datos de correo, la base de datos de SMS y la historia de ubicación, etc …

 Recuperar los archivos borrados

Eliminar un archivo en el iPhone sólo elimina la referencia de archivo. Por lo tanto, es posible recuperar los archivos borrados, para ello, ejecutar secuencias de comandos emf_undelete.py.

Con esta técnica es posible recuperar datos valiosos como los registros de llamadas, imágenes eliminadas, SMS borrados, contactos borrados, correo de voz y correos electrónicos eliminados.

Referencias

  1. de protección de datos iPhone en profundidad por Jean-Baptiste Bedrune, Jean

 

Articulos que pueden ser de su interes.