on

Análisis forense en dispositivos móviles (I)

De todos es sabido que los teléfonos móviles cada vez son más parecidos a un ordenador común. La punta de lanza de esta tendencia está encabezada por las dos plataformas más evolucionadas en el marco de la telefonía móvil. Hablamos de Android e Iphone.

La plataforma Android tiene un núcleo basado en Linux, mientras que el núcleo de los Iphone está basado en BSD. Ambos sistemas operativos son viejos conocidos en el mundo de los ordenadores tradicionales, por lo que existe una menor diferencia entre un ordenador al uso y un teléfono móvil. De hecho, el iphone 4G actual presenta unas características muy similares, si no superiores, al iMac de hace tan solo 10 años.

Fuente original: http://arstechnica.com/civis/viewtopic.php?f=19&t=1114049

Aterrizando en el mundo del análisis forense de dispositivos móviles, en absoluto se trata de un tema novedoso, aunque sí es cierto que dichos servicios se reclaman cada vez más, con una asiduidad directamente proporcional al avance de la tecnología utilizada por nuestros terminales. Hecho comprensible, puesto que a mayor capacidad/funcionalidad para gestionar nuestra información sensible, mayor es la probabilidad de que un dispositivo móvil de estas características se convierta en una evidencia digital.

Sin más dilación, en el presente post vamos a definir algunas guías que permitan conducir adecuadamente un análisis forense sobre un dispositivo móvil.

Introducción a la tecnología Flash

Sin ánimo de profundizar el tema, será importante comprender que se trata de memoria no volátil, la cual puede ser borrada y reprogramada por medios electrónicos. Este tipo de memoria es ideal para ser utilizada por terminales móviles actuales. De hecho, eso es lo que hacen.

Por lo general, la memoria NOR es utilizada para soportar el firmware del terminal móvil, mientras que la memoria NAND suele utilizarse como unidad de almacenamiento. Con esto se pretende decir que si buscamos alguna evidencia de carácter personal (emails, SMS, fotografías, etc), muy probablemente se encuentre en la NAND. De todos modos, siempre es interesante echar un vistazo a la memoria NOR, especialmente en la zona no ocupada por el firmware, ya que determinadas  plataformas móviles las utilizan para almacenar cierta información.

La memoria NAND está compuesta de Páginas, que a su vez conforman Bloques, que a su vez conforman Zonas.

Estructura lógica de memorias NAND

Resumiendo mucho, y desde un punto de vista lógico, una página de memoria NAND es muy similar a un sector de un disco duro, y al igual que éstos su tamaño es múltiplo de 512 bytes*. Desde un punto de vista físico, la memoria NAND puede ser escrita byte a byte, aunque para borrar información la cosa cambia. Para borrar información físicamente, debe borrarse todo un bloque. Es sumamente fácil detectar bloques borrados, puesto que representa una cantidad ingente (tantos como ocupe el bloque) de 1’s.

*Anteriormente hemos dicho que una página tiene un tamaño múltiplo de 512 bytes, y esto requiere una explicación: Desde un punto de vista físico, una página se compone de datos y de un payload, llamado SPARE, que contiene información relativa al estado de los datos. Esto significa que el tamaño total de la página será mayor de lo esperado. Conocer este hecho será de vital importancia para conducir con éxito el proceso de adquisición, y posterior análisis de los datos. Esto se verá más claro en el apartado “Preparación previa a la búsqueda de evidencias”.

 

Adquisición de datos

La adquisición de los datos, a partir del soporte físico, puede realizarse utilizando cualquiera de las siguientes técnicas:

Herramientas de flasheo

La utilización de herramientas suele ser la vía más fácil, y no invasiva, de las tres técnicas posibles. El problema reside en que dichas herramientas dependen fuertemente del dispositivo móvil desde el cual se desea realizar la adquisición de datos. Otro tipo de limitación suele ser la imposibilidad de recuperar la totalidad de la información residente en el dispositivo.

Este tipo de herramientas no suelen estar diseñadas, de forma expresa, para ser utilizadas en un procedimiento forense, aunque el investigador puede llegar a utilizarlas si fuese oportuno. Tampoco existen garantías de que existan dichas herramientas para todos los posibles dispositivos móviles.

Todo examinador deberá conocer, y haber testeado la herramienta utilizada en otro dispositivos móvil igual a la evidencia, el grado de modificación que puede realizar sobre la memoria flash. De hecho, es muy frecuente que este tipo de herramientas realicen modificaciones que puedan contaminar las evidencias.

A modo de ejemplo, se muestra la aplicación de Sarasoft, la cual puede ayudar al investigador en el proceso de adquisición de información:

Tool de flasheo por Sarasoft

 

JTAG

En el caso en que la adquisición de los datos no haya podido producirse, de forma satisfactoria, mediante la utilización de herramientas de flasheo, puede llegarse a utilizar el puerto JTAG.

Un puerto JTAG, y dependiendo del dispositivo móvil, suele utilizarse para la realización de testeos por el fabricante, y de forma muy particular para realizar tareas de debugging. Dicho puerto JTAG podría llegar a ser utilizado para acceder a la memoria flash del dispositivo móvil, lo cual sería algo muy positivo para un examinador forense.

A continuación se muestra un acceso, vía el puerto JTAG, a un Samsung Omnia i900:

Conexión al puerto JTAG de un Samsung Omnia i900

Como sospechareis, este proceso depende fuertemente de las especificaciones del hardware. De todos modos, y siempre dentro de un proceso de adquisición forense, es preferible realizar la adquisición mediante este método, puesto que a diferencia de la utilización de herramientas de flasheo, la adquisición vía puerto JTAG reduce la posibilidad de escrituras inadvertidas en la memoria flash, reduciendo riesgo de contaminación de las evidencias digitales.

Extracción directa desde el chip de memoria

El tercer, y más intrusivo, método para realizar una adquisición de evidencias digitales en dispositivos móviles es la extracción física de la memoria flash. Para esto se recomienda la utilización de aire caliente, lo cual facilita la extracción y posterior limpieza de los pins de la memoria flash. Un dispositivo de este tipo puede adquirirse por algo menos de 200 dólares en ebay:

Desoldadora de aire caliente

Una vez el chip está debidamente extraído y sus pines limpiados, mediante una lectora, se puede proceder a realizar un volcado completo de la memoria flash, la cual se deberá configurar con ciertas especificaciones técnicas del chip, tales como tamaño del bus de direcciones o tamaño del bus de datos. Para esto último, se recomienda un programador universal y diferentes adaptadores, en función del formato del chip que se desee analizar. Un programador universal suele ser un dispositivo bastante caro, aunque en ebay se pueden encontrar autenticas maravillas:

Reprogramadora Universal

Es fácil encontrar en ebay adaptadores por menos de 100 euros.

Zócalo de adaptación de encapsulado TSOP (el mas comúnmente utilizado en memorias FLASH) para una reprogramadora universal.

Como puede observarse, este tercer método es bastante intrusivo y requiere de cierto desembolso económico. No obstante, cuando el dispositivo móvil no es funcional o está destruido, es la única forma de realizar una adquisición coherente de los datos.

Preparación previa a la búsqueda de evidencias

Una vez realizada la adquisición de datos, y dependiendo del método de adquisición utilizado debemos asegurarnos de filtrar la información relativa al SPARE, la cual contiene información relativa al estado de los datos.

Vamos a generar una imagen limpia (sin SPARE) a partir de la imagen obtenida del proceso de adquisición:
[sourcecode]
cosmic@bartolo:/tmp$ ./unspare
Modo de empleo: ./unspare <imagen_entrada> <imagen_salida> <data_size_por_página> <spare_size_por_página>

cosmic@bartolo:/tmp$ ./unspare image_adqui.bin imagen_limpia.img 512 16
cosmic@bartolo:/tmp$ ls -als image_raw.bin imagen_datos.img
65604 -rw-r–r– 1 cosmic cosmic 67108864 2010-08-04 18:11 imagen_limpia.img
67656 -rwxr-xr-x 1 cosmic cosmic 69206016 2010-08-04 18:11 image_adqui.bin
[/sourcecode]
Para esto hemos utilizado una herramienta, llamada unspare, cuyo código fuente se distribuye a continuación:
[sourcecode]
/*************************************/
/***** unspare by blueliv 2010 *******/
/*************************************/
#include <stdio.h>
#include <stdlib.h>

main (int argc, char** argv) {
FILE *flash_image_file;
FILE *data_file;
FILE *spare_file;
unsigned char *buffer;
int n,max_size,data_size,spare_size;

if (argc<5) {
printf(“Modo de empleo: %s <imagen_entrada> <imagen_salida> <data_size_por_página> <spare_size_por_página>n”,argv[0]);
exit(0);
}

flash_image_file = fopen(argv[1], “rb”);
data_file = fopen(argv[2], “wb”);
spare_file = fopen(argv[3], “wb”);
data_size=atoi(argv[3]);
spare_size=atoi(argv[4]);
max_size=data_size+spare_size;
buffer=malloc(sizeof(char)*max_size);
if (!buffer) {
printf (“Error reservando memoria”);
exit(0);
}
if (flash_image_file) {
while (!feof(flash_image_file)) {
n=fread(buffer, max_size, 1, flash_image_file);
if (n!=0) {
n=fwrite(buffer, data_size, 1, data_file);
fwrite(buffer+data_size, spare_size, 1, spare_file);
}
}
}
else {
printf (“Error abriendo ficheron”);
}
}
[/sourcecode]
A partir de este momento disponemos de una imagen limpia, equivalente a la que podría haberse obtenido mediante la herramienta dd sobre un disco duro, por lo que desde este momento, y sobre la imagen limpia obtenida, aplicarían todas las técnicas conocidas para realizar un análisis postmortem estándar, máxime cuando por norma general los dispositivos móviles suelen utilizar particiones FAT32, FAT16 o FAT12.

Para aquellos que deseen profundizar en materia de análisis forenses de dispositivos móviles, a continuación os dejo con una serie de referencias de especial interés:

NIST – Guidelines on PDA Forensics

http://csrc.nist.gov/publications/nistpubs/800-72/sp800-72.pdf

NIST – PDA Forensics Tools: An Overview and Analysis

http://www.csrc.nist.gov/publications/nistir/nistir-7100-PDAForensics.pdf

NIST – Cell Phone Forensic Tools: An Overview and Analysis

http://csrc.nist.gov/publications/nistir/nistir-7387.pdf

Interpol – Good Practice Guide for Mobile Phone Seizure & Examination

http://www.holmes.nl/MPF/Principles.doc

http://www.holmes.nl/MPF/FlowChartForensicMobilePhoneExamination.htm

NIST – Guidelines on Cell Phone Forensics

http://csrc.nist.gov/publications/nistpubs/800-101/SP800-101.pdf

Un saludo y hasta la próxima!

Demo Free Trial MSSP
Program