on

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:

[sourcecode]
# 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
[/sourcecode]

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:

[sourcecode]
930138 dico LA VANGUARDIA”>blueliv en el peri
930178 dico LA VANGUARDIA
932104 .href=”https://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=”https://www.blueliv.com/es/blueliv-en-el-periodico-la-vanguardia/” title=”blueliv en el pe
ri
[/sourcecode]

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

mmls2

Extracto de tabla de particiones 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:

recuperación_ficheros

 

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:

[sourcecode]
|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 %),
[/sourcecode]

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

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,

Demo Free Trial MSSP
Program