8
SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA . PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI... 1. Introducción. La esteganografía es el arte de escribir de forma oculta. Esta palabra, de origen griego, proviene de los términos esteganos (secreto, oculto) y graphos (escritura), es decir, escritura ocultaLa esteganografía y la criptografía persiguen el mismo fin: enviar mensajes de forma secreta, pero ambas disciplinas son diferentes. En la criptografía se trata de ocultar el significado de un mensaje, mientras que en la esteganografía se trata de ocultar el mensaje en sí, que además puede estar cifrado, o no. El uso de la esteganografía data de hace miles de años, y ya Herodoto (485 a.c. - 425 a.c.) narra cómo Demeratus, rey de Esparta utilizó la esteganografía para avisara a su ciudad de un próximo ataque de Xerxes, rey de los persas. En aquellos tiempos se escribía sobre tablillas enceradas, marcándolas con un punzón... Demeratus hizo grabar un mensaje directamente en la madera de las tablillas y luego las hizo cubrir de cera, de manera que parecieran “tablas en blanco” sin utilizar... Desde la antigüedad hasta hoy, la esteganografía se ha utilizado constantemente, y el único límite que ha tenido es el de la imaginación humana... ejemplos por todos conocidos son la tinta invisible, los mensajes escondidos en dobles fondos, o los microfilms escondidos en el tubo de pasta de dientes de un super-espía... Hoy, la esteganografía cobra sentido de nuevo, ya que es posible ocultar información relevante en ficheros que aparentemente tienen sólo otros contenidos, como los ficheros gráficos o de sonido. Pero no nos quedemos aquí, expliquemos por qué es esto posible, veamos cómo se puede hacer teóricamente y pongámoslo en la práctica... 2. Esteganografía digital. Hay gran variedad de tipos de ficheros de ordenador, pero en el fondo, el contenido de todos ellos es el mismo: una sucesión de bits (ceros y unos). Las diferencias que existen entre los ficheros hay que verlas desde un punto de vista más alto, desde un nivel de abstracción mayor y radica en el significado que contienen los bits. Los distintos tipos de ficheros organizan su contenido de forma diferente, para poder almacenar un tipo de información distinta... así tenemos ficheros que contienen texto, imágenes, datos de contabilidad, documentos complejos, sonido, hojas de cálculo, vídeo, planos, páginas de Internet, etc... Hoy en día se puede guardar cualquier tipo de información en un fichero. La esteganografía digital trata de esconder los datos de un fichero (bits) dentro de otro fichero (que contiene más bits). O sea, que de lo que trata esta disciplina es de “esconder bits dentro de un montón de bits”. Pero claro, si modificamos un fichero añadiéndole más bits escondidos... estaremos www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 1.

esteganografiaXXI

Embed Size (px)

Citation preview

Page 1: esteganografiaXXI

SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.

PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

1. Introducción.

La  esteganografía  es  el   arte  de escribir de  forma oculta.  Esta  palabra, de origen griego, proviene de los términos esteganos (secreto, oculto) y graphos (escritura), es decir, escritura oculta. La esteganografía y la criptografía persiguen el mismo fin: enviar mensajes de forma secreta, pero ambas disciplinas son diferentes. En la criptografía se trata de ocultar el significado de un mensaje, mientras que en la esteganografía se trata de ocultar el mensaje en sí, que además puede estar cifrado, o no.

El uso de la esteganografía data de hace miles de años, y ya Herodoto (485 a.c. ­ 425 a.c.) narra  cómo Demeratus,  rey  de Esparta  utilizó   la  esteganografía para avisara  a   su  ciudad de un próximo ataque de Xerxes, rey de los persas. En aquellos tiempos se escribía sobre tablillas enceradas, marcándolas con un punzón... Demeratus hizo grabar un mensaje directamente en la madera de las tablillas y luego las hizo cubrir de cera, de manera que parecieran “tablas en blanco” sin utilizar...

Desde la antigüedad hasta hoy, la esteganografía se ha utilizado constantemente, y el único límite que ha tenido es el de la imaginación humana... ejemplos por todos conocidos son la tinta invisible, los mensajes escondidos en dobles fondos, o los microfilms escondidos en el tubo de pasta de dientes de un super­espía...

Hoy, la esteganografía cobra sentido de nuevo, ya que es posible ocultar información relevante en ficheros que aparentemente tienen sólo otros contenidos, como los ficheros gráficos o de sonido. Pero no nos quedemos aquí,  expliquemos por qué es esto posible, veamos cómo se puede hacer teóricamente y pongámoslo en la práctica...

2. Esteganografía digital.

Hay gran variedad de tipos de ficheros de ordenador, pero en el fondo, el contenido de todos ellos es el mismo: una sucesión de bits (ceros y unos). Las diferencias que existen entre los ficheros hay que verlas desde un punto de vista más alto, desde un nivel de abstracción mayor y radica en el significado que contienen los bits.

Los   distintos   tipos   de   ficheros   organizan   su   contenido   de   forma   diferente,   para   poder almacenar un tipo de información distinta... así tenemos ficheros que contienen texto, imágenes, datos de contabilidad, documentos complejos, sonido, hojas de cálculo, vídeo, planos, páginas de Internet, etc... Hoy en día se puede guardar cualquier tipo de información en un fichero. 

La esteganografía digital trata de esconder los datos de un fichero (bits) dentro de otro fichero (que contiene más bits). O sea, que de lo que trata esta disciplina es de “esconder bits dentro de un montón de bits”. Pero claro, si modificamos un fichero añadiéndole más bits escondidos... estaremos 

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 1.

Page 2: esteganografiaXXI

SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.

PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

modificando el contenido del fichero y la información que éste almacena... y ese cambio será visible... ¿o quizás no?

La esteganografía moderna   trata  de  esconder bits  dentro de un   fichero, pero   sin  que un observador que disponga del fichero final pueda sospechar que dicho fichero, además del significado evidente que contiene, almacena otra información oculta...

3. ¿Cómo se puede ocultar una serie de bits en otra serie de bits?

El tipo de fichero que se desea esconder no es relevante en absoluto, puede ser cualquiera. Nos da igual que sea un pdf, un ejecutable, o un archivo de sonido... ¡al fin y al cabo se esconderán los bits que lo componen! Otra cuestión muy diferente es de qué tipo es el fichero “anfitrión”, el que va a guardar la  información secreta...  ya que al hacerlo no debemos destruir  el contenido original del fichero.

La cuestión es ¿cómo podemos ocultar una serie de bits en un fichero? Tenemos dos opciones:

1. Añadir   los  bits  del  fichero a ocultar a un  fichero ya existente.  Esta  opción supone aumentar el tamaño del fichero ocultador, sumándole el tamaño del fichero oculto.

Para hacerlo, si no queremos que el engaño sea visible, debemos conseguir que el fichero ocultador siga pareciendo normal. Por lo tanto, sólo podremos insertar bits ocultos en huecos   del   fichero   ocultador.   Los   huecos   pueden   ser   creados   artificialmente...   por ejemplo, en un fichero ejecutable podemos abrir un hueco de 100 bytes y antes del hueco colocar un salto incondicional al byte justamente posterior al hueco. Pero no todos los tipos de ficheros admiten huecos...

Esta   técnica  se  usa  sobre   todo  con  ficheros  ejecutables. Sin embargo,  hay  que   tener cuidado de  que  el   porcentaje   de huecos no   sea muy  elevado, ya  que  podría  resultar evidente que el tamaño del fichero es demasiado grande para lo que hace el programa...

Este sistema tiene como gran desventaja que los huecos artificiales en el código pueden ser fácilmente descubiertos por un analizador de código apropiado que los detecte, con lo que el sistema no es muy seguro.

2. Modificar los bits de un fichero ya existente, en función de los bits a ocultar, de forma que después podamos recuperar los bits ocultos. En términos teleco­frikis, podríamos decir que es como “modular” un fichero portador con un fichero de datos.

La desventaja de este sistema es obvia: modifica el contenido del fichero original. Pero si lo pensamos bien, eso quizás no sea un problema...

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 2.

Page 3: esteganografiaXXI

SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.

PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

Este sistema se utiliza con ficheros de imágenes (mapas de bits) o con ficheros de sonido. En estos tipos de archivo, se almacenan digitalizados valores que en sí son analógicos. De tal manera, por ejemplo, que un fichero de mapa de bits almacena, para cada punto de la pantalla, un valor numérico que representa una referencia del color exacto de dicho punto. En el caso del sonido, almacenan, para cada instante, el valor numérico que representa el tono exacto del sonido.

Como   un   fichero   de   imágenes   puede   codificar   millones   de   colores,   si   variamos   la referencia del color de un pixel en una unidad, entre más de 17 millones de valores, la diferencia de color es inapreciable por el ojo humano. Lo mismo ocurre con los ficehros de sonido: Si en un instante variamos la referencia del tono de sonido en una unidad, frente a los millones de valores posibles, la diferencia del tono no será apreciable por el oído humano.

Es decir, por este sistema, se consigue que el fichero resultante  aparentemente  no tenga nada raro, es un fichero perfectamente normal, sin nada destacable. Sólo si un atacante dispusiera de  la   imagen original,   además de  la   imagen con el   archivo  oculto,  podría detectar los cambios a nivel binario.

Pero una de  las máximas de este sistema es que los  ficheros “ocultadores” originales NUNCA deben ser transmitidos y es mejor ni siquiera guardar copia de ellos. Si no se tiene   la   imagen   original   para   compararla   con   la   imagen   esteganografiada...   ¡Es   casi imposible detectar que esta última oculta algo!

La única debilidad de este sistema radica en la posibilidad de que el atacante conozca el algoritmo esteganográfico. Si así fuera, podría ejecutar el algoritmo inverso sobre archivos de   imagen   o   de   sonido,   en   busca   de   “información  secreta”.   Si   bien   este   ataque   es estadísticamente  muy   complejo   si   el   algoritmo   esteganografiador   es   suficientemente bueno, ya que las posibilidades de ocultación son enormes.

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 3.

Page 4: esteganografiaXXI

SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.

PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

Veamos un resumen de todo lo explicado en la siguiente tabla:

TIPOS DE ESTEGANOGRAFÍA DIGITAL.

Añadir los bits del fichero a ocultar a un fichero ya existente.

Modificar los bits de un fichero ya  existente, en función de los bits a 

ocultar.

Características

➔ Se puede ocultar cualquier tipo de fichero.➔ Los ficheros a ocultar pueden ser previamente encriptados.➔ Es posible la esteganografía recursiva (un fichero oculto dentro de un fichero, que a su 

vez está oculto  dentro de un fichero, que a su vez está oculto  dentro de un fichero...)

➔ Como ficheros ocultadores se suelen usar  ejecutables.

➔ Como   ficheros   ocultadores   se   suelen usar  imágenes y sonido.

Ventajas ➔ No   se   modifica   el   contenido   del fichero ocultador

➔ El fichero resultante es  perfectamente normal, lógico y coherente.

➔ No se aumenta  el   tamaño del   fichero ocultador.

➔ Sin   conocer   el   algoritmo esteganografiador, es casi imposible ni siquiera   detectar   que   el   fichero resultante esconde algo.

➔ Conociendo el algoritmo ocultador, es estadísticamente muy difícil obtener el fichero   oculto.   (Si   el   algoritmo   está bien diseñado).

➔ Es bastante resistente frente a ataques.

Inconvenientes

➔ Si un atacante consiguiera el fichero ocultador original y el fichero ocultador con la información añadida, podría obtener la información oculta fácilmente.

➔ Hay   que   crear   huecos   artificiales donde   esconder   la   información oculta.

➔ Aumenta   el   tamaño   del   fichero ocultador.

➔ Es fácilmente detectable. (Se pueden encontrar los trozos de código inútil).

➔ Es débil frente a ataques.

➔ Modifica   el   contenido   original   del fichero ocultador.

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 4.

Page 5: esteganografiaXXI

SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.

PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

4. La Esteganografía Digital en la práctica

Todo esto es muy bonito y muy interesante... ¿pero cómo lo podemos aplicar? Evidentemente hay   dos   maneras...   Puedes  implementar   tus   propios   algoritmos   esteganográficos   para   ocultar   la información (pero este recurso está limitado a unos pocos...), o también puedes utilizar programas esteganográficos ya existentes.

Voy a explicar aquí la utilización de un programa de esteganografía sumamente sencillo. Se llama  steghide  y   funciona bajo   linux.  Hay otras  aplicaciones para  linux y  para  las   plataformas Windows... Al final encontrarás enlaces a algunas de ellas.

Steghide es un paquete disponible en el repositorio de Debian Etch. Se instala con el comando:

prompt# apt­get install steghide

Una vez hecho esto, ya estará disponible como un comando más del sistema.

Para hacer una demostración, he escogido varios ficheros:

✔ He elegido ocultar la hoja de datos técnicos del punto de acceso Linksys WAP54G, en formato pdf. Es el fichero WPA54G.pdf.

✔ Como  fichero   “ocultador”,  he   elegido  una  preciosa  foto   de   la   escultura   que   hay   en Córodba en mitad del río, llamada estatua.jpg.

✔ He ocultado  la hoja  de cálculo en  la   imagen, usando steghide, obteniendo el   fichero esteganografiado estatua2.jpg. Aparentemente contiene sólo la fotografía de la estatua en el río, aunque internamente incluye también el fichero pdf.

Para esteganografiar, hay que ejecutar el comando steghide indicando el archivo a ocultar, el archivo ocultador y el nombre del archivo esteganografiado resultante. Al ejecutar, el programa pide una contraseña (a la que llama salvoconducto).

prompt$   steghide   embed   ­ef   WAP54G.pdf   ­cf   estatua.jpg   ­sf estatua2.jpg

Para  invertir  el  proceso,  hay que ejecutar el  comando steghide,  indicando el  nombre del archivo esteganografiado y un nombre del archivo para el “secreto” extraído. Al ejecutar, el programa pide la contraseña. Si no es correcta, no extraerá la información oculta.

prompt$ steghide extract ­sf estatua2.jpg ­xf WAP54G.pdf

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 5.

Page 6: esteganografiaXXI

SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.

PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

A continuación muestro las consolas relativas a los dos procesos:

Pantalla­1: Proceso de “esteganografiar”: oculta el fichero “WPA54G.pdf” dentro del fichero “estatua.jpg”, produciendo el fichero “estatua2.jpg”. (Se usó como contraseña “estudiaenlinea”).

Pantalla­2: Proceso de “desesteganografiar”: Obtiene el fichero “WAP54G.pdf” a partir del fichero “estatua2.jpg”. (Se usó como contraseña “estudiaenlinea”).

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 6.

Page 7: esteganografiaXXI

SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.

PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

Y por si quedara duda, os muestro las dos imágenes, la original y la que tiene el fichero oculto... ¿Cuál es cuál?

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 7.

Page 8: esteganografiaXXI

SEGURIDAD EN SISTEMAS LINUX. MÓDULO 4: CRIPTOGRAFÍA.

PRACTICANDO LA ESTEGANOGRAFÍA EN EL SIGLO XXI...

5. Archivos incluidos en esta práctica.

Adjunto a este documento incluyo los siguientes ficheros:

✔ WAP54G.pdf. Es el fichero pdf que se oculta.

✔ estatua.jpg. Es el fichero “portador”, antes de incluir la información oculta.

✔ estatua2.jpg. Es el fichero esteganografiado, es decir es la imagen con el fichero oculto incluido. A partir de él se puede obtener el fichero WAP54G.pdf ejecutando el comando descrito anteriormente y usando como contraseña “estudiaenlinea”.

6. Enlaces interesantes sobre el tema.

✔ http://steghide.sourceforge.net/    Página oficial de Seteghide. (In English).

✔ http://steghide.sourceforge.net/documentation/manpage_es.php     Documentación   de Setghide. (En castellano).

✔ http://www.fbi.gov/hq/lab/fsc/backissu/july2004/research/2004_03_research01.htm    Impresionante documento del FBI que explica la esteganografía en general y la digital en particular. Muy bueno. (In English).

✔ http://www.nakasoft.net/_about.htm     Página   oficial   de   NakaSoft,   creadores   de  Xiao Steganography, aplicación esteganográfica para Windows. Es Freeware. (En castellano).

• http://www.nakasoft.net/xiao/esp/    Página de Xiao Steganography. Incluye el programa y vídeos explicativos.

✔ http://lifehacker.com/software/encryption/hide­files­in­jpeg­images­207905.php     Explica cómo hacer esteganografía con WinRar, si bien ,se consiguen ficheros muy débiles frente a ataques. (In English).

✔ http://openstego.sourceforge.net/    Página principal de OpenStego, utilidad esteganográfica para Linux y Windows. Es Freeware. (In English).

• http://www.dragonjar.org/openstego­solucion­libre­para­esteganografia.xhtml     Tutorial de OpenStego. (En castellano).

✔ http://www.invisiblesecrets.com/     Página principal del software “Invisible Secrets”, para plataformas Windows. Es de pago. (In English).

www.estudiaenlinea.es Joaquín J. Domínguez Torrecilla. Página 8.