Esteganografía en sistemas operativos y ficheros (Windows)

Buenas de nuevo a todos. En esta entrada nos adentraremos en técnicas esteganográficas ya algo más avanzadas. Comenzaremos a trabajar con técnicas llevadas a cabo ya en un ordenador para la ocultación de información y archivos en el mismo. Estas primeras entradas se llevarán a cabo bajo un SO Windows 7.

Para comenzar hablaremos de una técnica pero solo dejándola en la teoría, sin ejecutar ningún ejemplo práctico. Esta técnica se aprovecha de la limitación del sistema de archivos basándose en la forma que ocupan espacio los archivos en los sistemas de almacenamiento según el filesystem con el que esté formateado. Esto es el espacio que se ocupa de cada bloque. Por ejemplo el sistema de archivos FAT16 emplea bloques de 32 KB, algo que se continúa empleando en FAT32, y el formato ext2 que se emplea en Linux tiene un tamaño de bloque modificable al crear el sistema de archivos, desde los 512 bytes hasta los 4KB. Esto hace que al copiar un archivo dentro, como los archivos no tienen un tamaño exactamente igual a un número exacto de bloques, queden bloques sin ocuparse completamente pero reservados para dicho archivo, lo que permitiría ocultar información dentro de ellos sin que fuera leída por el sistema debido a la fragmentación interna.

Vamos a explicar un poco qué es esto de la fragmentación interna. Se podría decir que es la división en bloques de la que hemos hablado anteriormente, de mayor o menor tamaño dichos bloques. Esto hace que los bloques sean de tamaño fijo. Por tanto, la fragmentación interna se basa en que un archivo que no ocupa un bloque completo porque su tamaño no llega a ocupar por completo el último bloque que contiene su información, se ” apropia” del bloque ya que el sistema de archivos no admite divisiones más pequeñas que las de los bloques en los que se divide, por tanto el espacio que queda libre dentro del bloque que no es el archivo puede servir para ocultar dicha información. Es un poco enrevesado pero tiene muy fácil explicación si lo comparamos con algo más corriente. Imaginad que tenemos una jarra de un litro de agua, y vasos de 400ml. Si comenzamos a llenar vasos (los bloques de datos) con ese litro de agua (el archivo) llenaremos dos vasos por completo y un vaso lo llenaremos hasta los 200ml, quedando 200ml libres (el espacio que queda libre en el bloque) y por tanto en ese espacio podemos meter por ejemplo aceite hasta llenar el vaso (información a ocultar).

Esta técnica parece muy útil y a priori indetectable, pero sin embargo no todo son buenas noticias. Esto tiene la pega de que si luego el archivo se copia a otro lugar, la información ocultada no se copiaría puesto que no forma parte del archivo sino del bloque que lo contiene y además el archivo se podría copiar a otro sistema de archivos distinto con la consecuente reorganización de los bloques, cosa que por otra parte es una ventaja a la hora de que la información ocultada no sea sustraída. La información oculta se pierde igualmente si el fichero aumenta de tamaño debido a la reorganización de bloques, por tanto para ocultar información se deberán escoger archivos que no varíen de lugar y tamaño. Esto es, básicamente, que si quieres ocultar de este modo información no lo hagas en un archivo que vayas a pasar del ordenador a un pendrive y no lo hagas en un archivo que vayas a modificar.

El modo que voy a citar ahora es para valientes, y realmente poco recomendable pero aun así existe por tanto lo citaré. Esta forma de ocultar información dentro del sistema de archivos es borrándola. Es algo arriesgado pero si se usa con cuidado puede resultar eficaz. Esto se basa en que cuando borramos un archivo, solo se eliminan los enlaces a los bloques que el archivo ocupaba, marcándose estos como libres y por tanto objeto de sobreescritura, pero si dicha sobreescritura no se lleva a cabo, los datos permanecen intactos y recuperables con software de recuperación de datos, que lo que hacen es escanear el sistema de archivos y recuperar aquellos bloques que no estén sobreescritos. Recalco la parte de que es realmente poco recomendable, pero si estáis seguros de que no vais a tocar la parte del sistema de archivos donde se encuentran los bloques que queréis ocultar y de los que habéis borrado los enlaces, adelante porque nadie se espera que para ocultar información la borres.

Y por último, y ya entrando en algo más práctico, hablaremos de cómo emplear los ADS (Alternate Data Stream) o Flujos Alternativos de Datos para darle este uso esteganográfico que pretendemos. Primero hablaremos muy brevemente del uso de los ADS. Son característicos del sistema de archivos NTFS, y sirven para almacenar metadatos en un fichero, asociando uno o varios archivos de cualquier extensión al archivo inicial, sea cual sea también su extensión, por tanto se puede ocultar información sin necesidad de crear un archivo nuevo. Es notable decir que estos flujos son invisibles en el explorador de archivos (esto ya os va gustando más eh?) y ahora explicaremos cómo llevarlo a cabo y cómo descubrirlos también.

La forma de llevarlo a cabo es escribiendo en la consola de comandos “type archivo1.xxx>archivo2.yyy:archivoOculto.xxx” ocultando así enlazándolo con el archivo2, el archivo1 elegido, y usando como contraseña (por llamarlo así, realmente es el nombre de la ruta hasta el archivo oculto) archivoOculto. Y para obtener ese archivo oculto escribimos “more<archivo2.yyy:archivoOculto.xxx”. Veámoslo en un ejemplo práctico:
Inicio

 

 

 

En esta imagen observamos que tenemos una foto y un documento de texto, ocultaremos el txt en la foto.

 

 

 

 

Nudo

 

Introducimos el comando con los parámetros antes mencionados.

Aquí empleamos también dir /r, que es el comando que nos permite ver ese enlace que existe y observando que el enlace (la contraseña como la hemos llamado antes) se llama Probando.

Desenlace

 

Ahora para obtener el texto antes oculto, introducimos el comando también mencionado. Para mayor claridad, borramos el archivo de texto que contenía el “Hola Mundo!” y observamos que sigue apareciendo el mensaje oculto, y por último observamos que en el explorador de archivos únicamente aparece la foto, ningún archivo más.

Tenemos que tener en cuenta un aspecto importante del comando more y es que daña la información al mostrarla por consola. Con esto hay que tener cuidado ya que cuando únicamente ocultamos texto no hay problema ya que no se modificará la información (por eso hemos puesto este ejemplo) pero si queremos ocultar por ejemplo una imagen o un archivo de audio (o cualquier otro), aparte de que por pantalla se mostrará la codificación del archivo (probad a abrir una imagen con el bloc de notas y disfrutad del festival de símbolos), esa codificación estará dañada y si la copiamos para extraer el archivo no saldrá que está dañado y no nos permitirá abrirlo. Para solventar esto se emplearán otras técnicas que veremos en entradas posteriores.

Y hasta aquí esta parte, gracias y cualquier duda no dudéis en preguntar

AlDr0id

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s