jueves, 15 de abril de 2010

Reduciendo falsos positivos en las búsquedas de strings

Desde blueliv hemos encontrado diversidad de proyectos relacionados con el ámbito forense. Entre los más abundantes, los casos de fraude corporativo, dónde uno o varios trabajadores de la Organización se ven involucrados en una investigación de fraude interno. Es común, en éste tipo de casos, el uso de búsquedas de strings en base a un listado de palabras relacionadas con el caso bajo estudio, tal y como se muestra a continuación:

# srch_strings –a -t d imagen.dd > imagen.dd.strings

Produciendo el siguiente output:

31747 mkdosfs

31786 K FAT16

31835 This is not a bootable disk. Please insert a bootable floppy and

31902 press any key to try again ...

284256 BLUELI~1

284384 BLUELI~1HTM

284448 BLUELO~1

284512 BLUELO~1HTM

284608 BELIV-~1

284704 BELIV-~1HTM

284864 BLUELI~2

285024 BLUELI~2HTM

285184 BLUELI~3

285344 BLUELI~3HTM

285504 BLUELI~4

285664 BLUELI~4HTM

285824 BLUELI~5

285952 BLUELI~5HTM

302592 .

302624 ..

302688 BL_RSS GIF

302752 GSOM_S JS

302816 GLOCK2 JS

302880 SWFOBJ~1JS

302976 LASALL~1JPG

Búsqueda de cadenas en la imagen de una adquisición

Una vez terminada la obtención de strings se realiza una búsqueda de palabras clave en el fichero generado:

# grep -i “vanguardia” imagen.dd.strings

Produciendo el siguiente output:

930138 dico LA VANGUARDIA">blueliv en el peri

930178 dico LA VANGUARDIA

932104 .href="http://www.blueliv.com/es/blueliv-en-el-periodico-la-vanguardia/" rel="bookmark" title="P

ermanent Link to blueliv en el peri

932251 dico LA VANGUARDIA blueliv en el peri

932291 dico LA VANGUARDIA

932339 a 9 de abril de 2010, bluelivha sido elegida para salir en LA VANGUARDIAen su edici

932492 n title="blueliv en la vanguardia" .href="http://e3.comunicacionempresarial.net/?p=392">

932686 a del diario LA VANGUARDIA

2067127 .href="http://www.blueliv.com/es/blueliv-en-el-periodico-la-vanguardia/" title="blueliv en el pe

ri

Búsqueda de palabras clave

Como se puede observar, obtenemos todos los bloques en que se ha detectado la palabra buscada, para, a partir de éste punto, iniciar la recuperación de ficheros susceptibles de ser revisados por los analistas o en su defecto por abogados. Por ejemplo, la palabra Vanguardia, entre otros, se ha detectado en la posición 932339 de la imagen analizada, de modo que para iniciar su recuperación, deberemos dividir entre 512 (valor por defecto de los bloques/sectores) para obtener el inodo (cluster en FAT):

Para ello, debemos detectar el sector de inicio de la partición con la que deseamos trabajar:

root@blueliv:# mmls imagen.dd




root@blueliv:# ifind -o 62 -a -d 1820 imagen.dd

20681

Extracto de tabla de paticiones mediante la herramienta mmls

Para recuperar el fichero, utilizaremos la herramienta icat para volcar el contenido del inodo y así poder recuperar el fichero que deseamos ver:

root@blueliv:i# icat -o 62 imagen.dd 20681 > vanguardia.html

root@blueliv: # cat vanguardia.html | grep vanguardia

root@blueliv:#

Volcado del contenido del inodo 20681

Recuperado el fichero y guardado, podemos ver como al realizar el grep de “vanguardia” en el fichero recuperado, no hemos obtenido ningún resultado útil para la investigación, resultando en un común falso positivo.

Con la finalidad de facilitar las tareas de análisis de strings en los análisis forense, hemos desarrollado una serie de scripts de automatización de cada una de las etapas de recuperación anteriormente indicadas:


Fases del proceso de recuperación de los datos deseados

Adicionalmente a la automatización de dicho proceso, hemos incorporado una pequeña inteligencia en el análisis que consiste en:

1. Obtener todas las coincidencias para cada una de las palabras de nuestra “blacklist” y localizar el inodo (correspondiente fichero) dónde se encuentran.

2. Obtener un porcentaje de coincidencias para cada palabra en cada fichero

3. Cruzar todos los resultados para cada una de las palabras

Los que nos permite ésta metodología, es una visión cruzada de coincidencias, reduciendo así la cantidad de falsos positivos que vamos a afrontar como analistas. Supongamos que detectamos que un fichero “X” tiene los strings “vanguardia” y “blueliv”. Dicho fichero tendrá preferencia ante la revisión que otro que tan solo ha obtenido como strings “vanguardia” y ¿ qué pasa si además le añadimos porcentajes de detección ?

Veamos,

Supongamos una blacklist con las siguientes palabras clave:

· Malware

· Botnet

· Bluelog

· ROT13

· Vanguardia

Que van a ser utilizadas para la búsqueda de strings en la misma imagen de los ejemplos anteriores, produciendo los siguientes resultados:

|26|/bluelog.html |ROT13 ( 0.328947368421053 %), blueliv ( 3.61842105263158 %), bluelog ( 5.59210526315789 %), botnet ( 3.94736842105263 %),

|30|/bluelivlavanguardia090410.pdf |blueliv ( 5.83333333333333 %), botnet ( 0.277777777777778 %), vanguardia ( 8.83333333333333 %)

|54903|/bluelog_files/navbar.html |blueliv ( 37.5 %), bluelog ( 37.5 %),

|76872|/blueliv–Leap_In_Value_-_Media_files/glock2.js |blueliv ( 0.595238095238095 %),

|76891|/blueliv–Leap_In_Value_-_Media_files/gsom.css |blueliv ( 0.125 %),

Identificación de ficheros susceptibles de ser analizados

Observando el extracto de los resultados, se puede ver que los siguientes ficheros (a criterio del analista forense) serán susceptibles de ser extraídos y analizados detenidamente:

· Inodo: 26 – fichero: bluelog.html

· Inodo: 30 – fichero: bluelivlavanguardia090410.pdf

· Inodo: 54903 – fichero: /bluelog_files/navbar.html

El resto de resultados, a juzgar por el nombre de fichero y las palabras que le afectan, todo indica que son un falso positivo, y por lo tanto, no entrarían en objeto de revisión en una primera iteración de análisis superficial. Veamos por ejemplo el Inodo 30:

root@blueliv:i# icat -o 62 imagen.dd 30 > bluelivlavanguardia090410.pdf



Fichero recuperado

Para concluir, tan solo comentar que con ésta pequeña automatización seguiremos obteniendo falsos positivos, pero nos proporciona los criterios objetivos suficientes para realizar una primera criba de ficheros a analizar.

Saludos,