Empecemos.
"Puedo tomar cualquier MAQUINA y hacerla culpable o no culpable"
Vinnie Liu
El cifrado y la estenografia pueden proteger tus datos. Esto es ya de sobra conocido asi que no dire nada.
Otro metodo seguramente conocido. Sobreescribir los datos. Cualquier wipe deberia funcionar, pero para los mas paranoicos, el mas estricto es uno que hicieron los chicos del THC, que cumplia con el analisis presentado en el siguiente documento ya clasico:
Secure Deletion of Data from Magnetic and Solid-State Memory
Peter Gutmann
Department of Computer Science
University of Auckland
pgut001@cs.auckland.ac.nz
This paper was first published in the Sixth USENIX Security Symposium Proceedings, San Jose, California, July 22-25, 1996
Published under the Creative Commons license.
http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html
La NSA considera un borrado seguro aquel que hace 30 y pico pasadas sobreescribiendo el disco. De todas formas a mi me parece exagerado. Yo no conozco manera de recuperar un disco del que se ha hecho siquiera 1 pasada de sobreescritura. Pero para los mas paranoicos ahi queda eso.
Bueno, ya esta bien, empecemos a hablar de asuntos serios.
Los forenses se basan muchas veces en la fecha de ultima modificacion de un archivo para deducir evidencias de backdoors, archivos troyanizados, etc.
Empecemos por Linux. Pongo como ejemplo el sistema de archivos ext3, el cual desarrollo una china muy guapa, pero eso es otro tema. ¿Linux es open source no? Bien, abramos /usr/src/linux/include/linux/ext3_fs.h
Pasteemos la parte relevante.
struct ext3_inode {
__u16 i_mode; /* File mode */
__u16 i_uid; /* Low 16 bits of Owner Uid */
__u32 i_size; /* Size in bytes */
__u32 i_atime; /* Access time */
__u32 i_ctime; /* Creation time */
__u32 i_mtime; /* Modification time */
__u32 i_dtime; /* Deletion Time */
241: __u16 i_gid; /* Low 16 bits of Group Id */
Hay mas, pero solo nos interesa ese trozo. Y de ese trozo, las 2 lineas en negrita. Tenemos 2 llamadas que podemos usar para modificar esos "stamps"
- Código: Seleccionar todo
#include <sys/types.h>
#include <utime.h>
int utime(const char * filename, const struct utimbuf * buf);
#include <sys/time.h>
int utimes
(const char * filename, const struct timeval times[2]);
O podemos usar el The Defiler's Toolkit. Incluso podriamos usar el comando touch...
¿Y en windows? El proyecto Metasploit (http://www.metasploit.com/projects/antiforensics) ha desarrollado una utilidad muy maja llamada Timestomp. Es valida para NTFS. Y creo que solo para NTFS. Fuera de Metasploit tambien existe Timestamp con a.
Un inciso sobre esto. En Windows podemos evitar que se actualice la fecha de ultima modificacion de un archivo. HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate Lo ponemos a 1 y ya podemos modificar lo que queramos que la fecha de ultima modificacion no se vera alterada. Gracias Microsoft. Me han dicho que esto esta a 1 por defecto en Vista, no lo he podido comprobar, pero me parece raro.
Pasemos pagina. Hablemos ahora de esconder datos. ¿A que me refiero con esconder datos? Pues a esteganografia no, me refiero a guardar datos en sitios anormales del disco.
Linux. Podemos guardar datos en swap. Luego dicen que la swap no es importante. Tambien nos decian de canijos "el contenido de la RAM se pierde nada mas apagar el ordenador". Hace 3 meses o asi lei que un tio decia que era posible averiguar que datos habia en la RAM hasta pocos minutos despues de apagar el equipo. Era todo muy teorico y muy electronico. Ni siquiera recuerdo donde lo lei, pero parecia serio. Al grano. Linux swap. Podemos crear en la swap un segmento marcado como paginas_invalidas, bad_pages creo que dicen los guiris, y guardar nuestros datos a partir de ahi. La herramienta que yo conozco se llama Bigboo.
Seguimos en Linux. Algunos sistemas de archivos como ext2, asumen demasiadas cosas. En ext2 el i-nodo de la raiz es el numero 2, y ext2 ejemplo asume que no pueden existir bloques defectuosos antes del i-nodo de la raiz. Y algunas herramientas forenses, por lo menos el The Coroner's Toolkit ese famoso y The Sleuth Kit en UNIX asumen lo mismo y no miran ahi. Bien, creemos un bad block en el i-nodo 1 del disco. Por ejemplo, con Runefs, que forma parte de The Defiler's Toolkit.
Espacio indefinido. No se como traducir unallocated. Bien, algunas herramientas forenses solo examinan la parte del disco que esta particionada, olvidandose de la parte sin particionar. ¿Herramientas capaces de alojar datos en el espacio "unallocated" entre particiones? StegFS para Linux. Slacker de Metasploit para Win.
¿Estabamos hablando de esconder no? Sigamos. Con TrueCrypt podemos crear un segundo sistema de archivos oculto en el visible. ¿Esto por que? Porque si eres detenido y te obligan a cantar la contraseña de TrueCrypt, siempre tienes en ese sistema de archivos oculto en el habitual la informacion realmente sensible. Asi que aun te quedan esperanzas de que lo descubierto sea suficiente para tus interrogadores.
Aun hay mas. ext3 todos sabemos que es ext2+journaling. Waffen FS puede almacenar datos en el espacio reservado para journaling.
Mas comentarios breves sobre Linux. Ky FS puede guardar datos escondiendolos en directorios.
En Linux, The Defiler's Toolkit puede almacenar datos y marcar esos bloques como bad. Eso evadia a un viejo The Coroner's Toolkit, pero no a una version de 2006 o asi. The Sleuth Kit tambien es capaz de analizar datos en bad sectors.
Vayamonos a Win. NTFS. NTFS tiene una caracteristica que se llama Alternate Stream Date (ASD). ¿Que quiere decir esto? En la practica esto nos permite crear archivos en archivos. Veamoslo con un ejemplo:
c:\ type backdoor.exe >%systemroot%\notepad.exe:backdoor_muy_mala.exe
notepad.exe seguira igual. Mismo tamaño, mismo contenido. Para ejecutar nuestra backdoor:
c:\> start .\..\..\..\..\..\..\..\%systemroot%\notepad.exe:backdoor_muy_mala.exe
Y bueno, estoy cansado, esto sobre anti-forensics en sistemas de archivos por hoy. Tiene mas chicha esto, hay analisis forense en trafico de red (y anti-forense, ¿alguien recuerda Loki de phrack? Era bello eh...), hay metodos de ataque anti-forense activos como dejar de antemano el menor numero de huellas posibles, buscad en google. O acciones tan simples como usar una live-CD, o montar una particion como read-only...
Pero antes tan solo nombrar una herramienta muy maja que forma parte de Metasploit: Transmogrify. Sirve para evadir analisis de archivos modificados. Evadir al mitico tripwire. Sobre esto solo terminar con una frase: Es posible crear 2 archivos diferentes con el mismo hash MD5. ¿Y esto para que nos sirve? ¿Vosotros que pensais, que utilidad tiene esto en anti-forense?
Suerte,