25
Introducción a la Esteganografía http://www.death-master.tk/ Introducción a la Esteganografía Autor: Death Master Dedico este texto a todas las víctimas de los atentados del 11 de Marzo en Madrid, así como a todos los familiares, amigos, conocidos, y a todas esas personas anónimas que arriesgaron la vida por gente a la que ni siquiera conocían. Cosas así hacen que aún tenga fe en el género humano. ¡Va por vosotros! Death Master, 2004 (GFDL) Página 1

55508239-Esteganografia

Embed Size (px)

Citation preview

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Introduccina la

    Esteganografa

    Autor:

    Death Master

    Dedico este texto a todas las vctimas de los atentados del 11 de Marzo en Madrid, as como a todos losfamiliares, amigos, conocidos, y a todas esas personas annimas que arriesgaron la vida por gente a la queni siquiera conocan. Cosas as hacen que an tenga fe en el gnero humano. Va por vosotros!

    Death Master, 2004 (GFDL) Pgina 1

  • Introduccin a la Esteganografa http://www.death-master.tk/

    ndice de contenidos

    ndice de contenidos..........................................................................................................................2

    Introduccin.............................................................................................................................................3

    Historia de la esteganografa.......................................................................................................4

    Bases de la esteganografa...........................................................................................................9

    Ficheros interpretados...................................................................................................................10

    Ficheros ejecutables........................................................................................................................16

    Esteganografa avanzada.............................................................................................................18

    Esteganografa y criptografa....................................................................................................19

    Ataques a la esteganografa.......................................................................................................20

    Software esteganogrfico............................................................................................................21

    Autopsia de un reto...........................................................................................................................22

    Distribucin de este documento.............................................................................................24

    Licencia......................................................................................................................................................25

    Death Master, 2004 (GFDL) Pgina 2

  • Introduccin a la Esteganografa http://www.death-master.tk/

    IntroduccinUn efecto esencial de la elegancia es ocultar sus medios.

    Honor de Balzac

    Este es ya el cuarto manual serio que publico.

    Siempre he credo firmemente que el conocimiento ha de ser libre, pero nunca me pic la curiosidad deescribir manuales que se publicaran y que la gente leyera (al fin y al cabo, qu poda aportar yo?). Casi porcasualidad, escrib FAQ de Software Libre y GNU/Linux despus de mucho tiempo observando ladesinformacin que haba en la red con respecto a ese tema. Conferencias de Seguridad zH'04 yCriptosistemas Informticos vinieron despus, a raz de las conferencias de seguridad de la party de ZonaHispana y unas charlas de criptografa en el IRC del foro de Hack X Crack respectivamente.

    Y comenc a sorprenderme. Sorprenderme de ver que realmente tena muchas cosas que contar, de quemis documentos eran publicados y difundidos en diversos medios de la red... pero sobre todo por el nmerode personas que los descargaron. No tengo datos exactos, pues no tengo acceso a todos los servidores quealojan los ficheros, y una visita a una pgina de descarga no asegura que se descargue el fichero, pero porejemplo Conferencias de Seguridad zH'04 ha tenido unas cinco mil (5.000) descargas en menos de cuatromeses. Quiz no parezca mucho para gente con grandes sitios web, pero para m son unas cifras enormes,ms tratndose de documentos PDF relativamente pesados, y no ligeras pginas HTML.

    En este cuarto documento, pues, quiero tratar un tema que despierta mucha curiosidad en m, y queactualmente est muy ligado a la criptografa (otra de mis grandes pasiones): la esteganografa.

    Si hablamos rigurosamente de la definicin de esteganografa, veremos que, mediante distintas solucionestcnicas, lleva aplicndose siglos en la vida del ser humano (casi siempre ligado al espionaje o al secreto).No obstante, aunque es bueno conocer su origen, nosotros nos vamos a centrar en sus aplicacionesactuales en el campo de la informtica y las comunicaciones.

    Para los que no conozcan absolutamente nada sobre esta tcnica, y antes de ver definiciones rigurosas,podemos decir que la esteganografa es una forma cmoda de trabajar con meta-informacin, es decir,informacin dentro de la informacin.

    En otros tiempos la informacin que rodeaba a una persona era transportada por unos canales muydefinidos (correo, telfono...) y de forma limitada; pero eso es algo que en las ltimas dcadas ha cambiadode forma radical. El actual desarrollo de la tecnologa computacional y las telecomunicaciones (cuyasculminaciones son el ordenador personal e Internet respectivamente) han rodeado completamente nuestrasvidas de torrentes de informacin, vivimos de hecho rodeados de un continuo ruido de fondo.

    Si nos paramos a pensar en la informacin que extraemos al visitar una web, y la cantidad real deinformacin que contiene, podemos ver que el vivir en un medio ruidoso nos hace en cierto modoimpermeables a la informacin no deseada, actuando como cribas humanas que separan el grano de lapaja en la Gran Telaraa Mundial.

    Ese enorme ruido de fondo, ese enorme remanso de informacin que supone Internet, es el perfecto caldode cultivo para las tcnicas esteganogrficas. Cuanta ms informacin y cuanto ms fcilmente sea staignorada, ms fcil es que la meta-informacin pase completamente desapercibida al resto del mundo, delresto del impermeable mundo.

    Death Master

    Death Master, 2004 (GFDL) Pgina 3

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Historia de la esteganografa

    Del griego (steganos, encubierto -con el sentido de oculto-) y pi (graphos, escritura) nace eltrmino esteganografa: el arte de escribir de forma oculta.

    Aunque (criptos, oculto) y (steganos, encubierto) puedan parecer en un principio trminosequivalentes, o al menos similares, son cosas completamente distintas. La criptografa es el arte de escribirde forma enigmtica (segn la Real Academia Espaola), mientras que la esteganografa es el arte deescribir de forma oculta. Puede que sigan pareciendo similares, pero las connotaciones toman mucho valoral analizarlo detenidamente: la criptografa tiene su fuerza en la imposibilidad de comprender el mensaje,mientras que la esteganografa la tiene en el desconocimiento de que el mensaje siquiera existe.

    Aplicado al campo informtico, podemos dar los siguientes ejemplos: nosotros podramos robar un mensajecifrado con relativa facilidad, pero an sabiendo que contiene informacin importante seramos incapaces deobtener informacin alguna de l (si la criptografa ha cumplido con su cometido). Respecto a laesteganografa, nosotros podramos capturar el trfico completo de un individuo y tratar de analizarlocompletamente (y el ruido de fondo hoy en da es mucho), sin tener la certeza de que haya o no unmensaje oculto. Espero que quede claro desde un principio que, en contra de lo que algunas personasdicen, la esteganografa NO es un tipo de criptografa: son tcnicas distintas e independientes, si bienpueden complementarse entre ellas (y de hecho lo suelen hacer).

    MtodosMtodos clsicos

    La esteganografa da sus primeros pasos en la antigua Grecia. Se cuenta en Les Histries d'Herdot queDemeratus quera comunicar a la ciudad de Esparta que Xerxes tena planes para invadir Grecia. Para evitarser capturado por espionaje en los controles, escribi sus mensajes en tablas que luego fueron cubiertascon cera, de forma que parecan no haber sido usadas. sta es posiblemente una de las primerasmanifestaciones en la historia de mensajes esteganografiados.

    Otro mtodo usado durante siglos consista en tatuar al mensajero (generalmente un esclavo) un mensajeen la cabeza afeitada para despus dejarle crecer el pelo y enviar as el mensaje oculto.

    Cifrado nulo (Null Cipher)

    El mtodo de escritura de meta-informacin en un texto es usado desde hace siglos, y sigue siendo usadohoy en da. sto es debido a que se trata posiblemente de uno de los mtodos ms sencillos de ocultarinformacin.

    Consiste en escribir un texto aparentemente inofensivo donde, mediante algn mecanismo conocido porel legtimo receptor de la informacin (actualmente hablamos de algoritmos y claves), subyace lainformacin realmente importante.

    Veamos un ejemplo de un mensaje real enviado por un espa alemn durante la Segunda Guerra Mundial:

    Apparently neutral's protest is thoroughly discountedand ignored. Isman hard hit. Blockade issue affectspretext for embargo on by products, ejecting suetsand vegetable oils.

    Si de este inocente texto extraemos la segunda letra de cada palabra, obtendremos este otro mensaje:

    Pershing sails from NY June 1

    Aqu vemos lo fcil que es esconder informacin en textos, as como comprendemos la necesidad de grancantidad de informacin (ruido) para ocultar la autntica informacin de forma que no llame la atencin.

    Death Master, 2004 (GFDL) Pgina 4

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Tinta invisible

    Aunque el mtodo de escritura con tinta invisible es usado desde la edad media, es en la Segunda GuerraMundial cuando adquiere una importancia capital. Fue usado muy activamente por la resistencia en loscampos de prisioneros nazis.

    Generalmente se usa de la siguiente forma: en primer lugar se escribe una carta completamente normal, ydespus se escribe, entre las lneas de esa carta, otro texto donde est la informacin importante. Erahabitual el uso de vinagre, zumos de frutas u orina, aunque hoy en da existen compuestos qumicosespecficos que sirven igualmente y no desprenden olores tan fuertes (que seran fcilmente detectados porun perro entrenado). Al calentar el papel, la escritura oculta se hace visible.

    Micropuntos

    La tecnologa de los micropuntos fue inventada por los alemanes durante la Segunda Guerra Mundial yfue usada de forma muy activa durante la poca de la guerra fra.

    La tcnica se basa en esconder puntos minsculos en fotografas, tan pequeos que para el ojo humano-e incluso para instrumentos pticos bsicos como lupas- resultan invisibles, pero que forman un patrn deinformacin significativa.

    Debido a la naturaleza analgica de esta tcnica, resultaba fcilmente detectable para los servicios deinteligencia, si bien advertir la presencia de mensajes esteganografiados no siempre significa que puedanser legibles. An as, descubrir la presencia de un mensaje esteganografiado se considera un fracaso de laesteganografa que lo soporta, pues la imposibilidad de comprender su contenido conforma su capa decifrado.

    Tcnicas actuales

    Actualmente la esteganografa est irremisiblemente ligada a los ordenadores, que le han proporcionado elmedio necesario para ser efectiva, y del que durante siglos no pudo disponer. As mismo, est ntimamenteligada a la criptologa en general y a la criptografa en particular.

    Hoy en da se usan multitud de tcnicas esteganogrficas, pero todas se basan en los mismos principios deocultacin de informacin. Este punto, al ser el eje central del documento, lo veremos en detalle msadelante.

    Ahora me gustara dejar una opinin personal sobre criptografa, esteganografa y la sociedad actual:

    Como ya coment en el documento de Criptosistemas Informticos, a los gobiernos nunca les hizodemasiada gracia la criptografa, esteganografa... y en general cualquier mtodo que pueda suponer datosfuera de su control. Gracias a los ordenadores personales, y al software libre en gran medida, tcnicas antesreservadas a unos pocos estn ahora al alcance de cualquiera... hasta de las peores personas.

    Todo esto viene por la campaa de acoso y derribo que ciertos sectores norteamericanos emprendieroncontra la criptografa y esteganografa en general, especialmente contra PGP y su creador PhilipZimmermann, al publicarse que esta clase de tcnicas fueron supuestamente utilizadas por la organizacinterrorista AlQaeda para transmitir informacin previa a los atentados del 11 de Septiembre en Nueva York.

    Seores: no hay medios culpables, sino personas culpables. No culpen a PGP de un atentado, no menosque a Samuel Colt por inventar el revlver (eso sin entrar a analizar los usos positivos de PGP frente a losdudosos usos positivos del revlver...) o a Albert Einstein por contribuir al desarrollo de la bomba de fisin.

    Death Master, 2004 (GFDL) Pgina 5

  • Introduccin a la Esteganografa http://www.death-master.tk/

    PublicacionesSon realmente pocas las publicaciones que existen sobre esteganografa, en comparacin por ejemplocon la criptografa. Si buscamos publicaciones en castellano, el nmero desciende muchsimo ms, hastacasi el cero.

    Al contrario que la criptografa, que existe de una manera importante desde antes del desarrollo delcomputador y fue desarrollada especialmente en la Segunda Guerra Mundial, la esteganografa, pese ahaber sufrido un desarrollo similar durante ese mismo periodo de tiempo, nunca dispuso de medios que lapermitieran tomarse en cuenta hasta la aparicin de la moderna ciencia de la computacin. Es por eso quelas publicaciones referentes al tema son tan escasas, y generalmente se encuentran englobadas como unaparte de un texto criptogrfico (como coment al principio).

    Veamos algunas de las principales publicaciones relacionadas con el tema por orden cronolgico:

    Hypnerotomachia poliphili (1499) - Annimo

    He elegido esta publicacin por lo que representa.

    Hypnerotomachia poliphili es un libro publicado en 1499 porAldus Manutius. El libro versa sobre conocimiento general,tratando temas como arquitectura, ingeniera, paisajes, creacinde jardines, pintura, escultura... de todo menos esteganografa,criptografa o cdigos de forma alguna.

    Qu es pues lo que hace tan significativo este libro? Contienemuchsimos datos escondidos en su interior. El ms famoso, y elconsiderado como primer texto esteganografiado de formaescrita se obtiene tomando la primera letra de cada uno de suscaptulos, formando:

    Poliam frater Franciscus Columna peramavit

    Que significa El Padre Francesco Colonna ama apasionadamente a Polia. Podemos ver la secuenciacompleta de la frase en http://www.bk.tudelft.nl/dks/hp/hyptext1.htm#Decorated%20initials.

    Por cierto, Francesco Colonna an viva cuando el libro fue publicado.

    Steganographia (1499) - Tritheim Johannes Heidenberg

    Se trata de la publicacin ms notoria de Tritheim.

    En Steganographia se incluye un sistema de esteganografa bastanteavanzado, pero la temtica general del libro (magia y mtodos deaprendizaje acelerados) hizo que nunca se tomara demasiado en serio eltexto.

    No obstante, en este libro se trataba un mtodo de envo de mensajes sincaracteres ni mensajero.

    Podemos encontrar un profundo anlisis de este libro en:

    http://www.esotericarchives.com/tritheim/stegano.htm.

    Death Master, 2004 (GFDL) Pgina 6

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Polygraphi (1516) - Tritheim Johannes Heidenberg

    Segunda publicacin relacionada con este tema de Tritheim.

    En Polygraphi vuelve a tratar el tema de la escritura y su significado, aunque noes un libro muy importante en el campo de la esteganografa.

    No obstante, junto a Steganographia -del mismo autor-, sentar las bases de loque ser Schola Steganographica, el considerado como primer libro deesteganografa y criptografa de la historia, y uno de los ms importantes.

    Schola Steganographica (1665) - Gasparis Schott

    Este libro es uno de los ms importantes en lahistoria de la criptografa y la esteganografa.

    En l se discuten los conocimientos de la pocarespecto a la escritura oculta o cifrada, algunos deellos tratados anteriormente, pero que en estelibro toman un profundo giro en el enfoque deestudio: Schott se aleja de lo esotrico y lomgico para enfocar la esteganografa y lacriptografa desde el punto de vista de la tcnicay la ciencia.

    En el Whipple Science Museum de Cambridgese conserva una copia completa e intacta (la de lafotografa) que fue publicada junto a otra obra delmismo autor (Technica curiosa).

    Podemos ver fotografas, as como consultar informacin mucho ms detallada acerca de esta publicacinen http://www.petitcolas.net/fabien/steganography/steganographica/index.html.

    The Pigeon Post into Paris 1870-1871 (1871) - J.D. Hayhurst O.B.E.

    Este texto trata el uso de micrografa y escritura oculta en losmensajes enviados por palomas durante la guerra franco-prusiana(1870-1871).

    Segn el texto, las tcnicas de ocultacin de informacin fuerondecisivas en el desenlace de la contienda.

    Podemos encontrar la versin completa del documento en:

    http://www.cix.co.uk/~mhayhurst/jdhayhurst/pigeon/pigeon.html.

    Death Master, 2004 (GFDL) Pgina 7

  • Introduccin a la Esteganografa http://www.death-master.tk/

    La cryptographie militaire (1883) - Auguste Kerckhoffs

    La cryptographie militaire es un estudio del uso de tcnicas criptogrficas,esteganogrficas y en general de ocultacin de informacin en el ejrcito francs del sigloXIX.

    Cualquier estudioso de la criptografa ha odo al menos hablar de los Principios deKerckhoffs. Pues estos principios fueron enunciados en Enero de 1883 durante laredaccin de este libro.

    Si alguien est interesado en la lectura de este documento, puede encontrar la primeraparte del mismo (en el idioma original: francs) en PDF en la siguiente direccin:

    http://www.petitcolas.net/fabien/kerckhoffs/crypto_militaire_1.pdf.

    Le filigrane (1907) - Charles-Mose Briquet

    Esta publicacin es un diccionario histrico de las marcas de agua, usadas a lo largo de lahistoria para autentificar todo tipo de documentos. Hoy en da las marcas de agua siguenusndose en la expedicin de papel moneda.

    Podemos consultar el documento (en italiano) en la siguiente direccin:

    http://linux.lettere.unige.it/briquet/.

    The Codebreakers: The story of secret writing (1967) - David Kahn - [KAHN67] - Actualizado 1996

    The Codebreakers es un libro de obligada lectura para los aficionados a lacriptografa, esteganografa y ocultacin de informacin en general.

    Se trata de La Biblia de los cdigos, formando un texto de referencia histricaincomparable. El autor barre un periodo de tiempo descomunal, desde losprimeros jeroglficos del 3000 A.C. hasta la poca de publicacin de la primeraedicin del libro (1967).

    El hecho de que este libro fuera publicado antes de la existencia de la modernacriptografa computacional no hace sino aumentar el valor intrnseco del texto,pues nos muestra las entraas de la teora de cdigos. El libro tambin muestraepisodios histricos importantes relacionados con la ocultacin de informacin,como el Telegrama Zimmermann de la I Guerra Mundial o el funcionamiento yruptura de las mquinas Enigma de la II Guerra Mundial.

    El libro fue revisado en 1996 por el propio autor para contemplar la moderna criptografa de clave pblica y lainfluencia de la informtica en la ocultacin de informacin. An as, no son muchos los cambios entreediciones, y podramos decir que el libro sigue siendo algo que pertenece a 1967.

    Death Master, 2004 (GFDL) Pgina 8

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Bases de la esteganografa

    El desarrollo de la informtica e Internet ha supuesto el marco perfecto para que la esteganografa alcancesu mayora de edad. Los avances en computacin nos proporcionan medios para calcular rpidamente loscambios necesarios en la ocultacin de un mensaje, e Internet proporciona los medios necesarios paratransportar grandes cantidades de informacin a cualquier punto del planeta.

    La esteganografa actual se basa en esconder datos binarios en la maraa de bits que supone un fichero.Los bits que componen el mensaje a ocultar se introducen (bien sea aadindolos, o realizandooperaciones aritmticas con los originales) en el fichero ya existente, procurando que el fichero resultantedespus de realizar los cambios parezca el original.

    Cmo logramos que el fichero resultante no parezca haber sido modificado? Depende de qu tipo defichero estemos modificando. Prcticamente cualquier tipo de fichero es bueno para ocultar datos en suinterior, pero hay algunos (imgenes y sonido principalmente) que resultan ideales para este cometido, pormotivos que ms adelante comentaremos. As mismo existen ciertos programas especializados enocultacin de informacin en sectores de disco no usados.

    Sea cual sea el tipo de informacin que queramos esteganografiar, y sea cual sea el medio en el quequeremos hacerlo, hay ciertas reglas bsicas:

    - Toda informacin (texto ASCII, hexadecimal, cdigo morse...) que queramos introducir, debe serprimero convertida a binario. Si bien cualquier base numrica es vlida, la comodidad trabajandocon binario es mucho mayor.

    - Nunca hay que permitir que un supuesto atacante obtenga el fichero original (anterior a lamodificacin), pues permitira, mediante comparacin, establecer pautas de cambios en lainformacin. Esto podra llevar en ltima instancia a desentraar el mensaje oculto.

    - Las cabeceras de los ficheros -salvo excepciones- NO deben ser modificadas.

    - No transmitir la clave o algoritmo esteganogrfico por un medio inseguro.

    Aunque la esteganografa computacional clsica consiste en la modificacin binaria del fichero que sirve decanal, existen ciertas tcnicas para casos particulares de ficheros que tambin son vlidas (aunquecomplicadas de hacer a mano, con lo cual dependemos de algn tipo de software... cosa que noqueremos). Un ejemplo de estas tcnicas es la adicin de mensajes ocultos a los ficheros de sonidomediante superposicin de capas de sonidos que no resultan audibles para el odo humano, pero que scontienen informacin.

    As mismo, tambin he encontrado documentacin de tcnicas basadas en ocultacin de mensajes enficheros de imagen creados con potentes programas de tratamiento grfico (como Gimp o Photoshop)mediante el uso de capas transparentes donde se alojaba la informacin. Al igual que en el casoanteriormente citado, no considero esta tcnica segura en absoluto.

    As pues, yo tratar nicamente la esteganografa al nivel del bit (mediante editores hexadecimales).

    Death Master, 2004 (GFDL) Pgina 9

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Ficheros interpretados

    Antes de ver los tipos ms comunes de ficheros interpretados usados en esteganografa, vamos a echar unvistazo a algunos detalles previos cuya comprensin es muy conveniente para entender la esteganografa.

    Qu es un fichero interpretado?Entre los ficheros que encontramos en nuestro disco duro encontramos principalmente dos grupos: ficherosinterpretados y ficheros ejecutables. Los ficheros ejecutables son los que mandan instrucciones alprocesador (a travs del sistema operativo y su ncleo o kernel), mientras que los ficheros interpretadosson aquellos usados para leer o escribir informacin, pero siempre mediante algn software.

    Para entender esto ms fcilmente, pensemos en situaciones cotidianas. Al abrir una fotografa PNG JPGcon nuestro software de imagen favorito (Gimp, Photoshop...) estamos leyendo un fichero interpretado (lafotografa) mediante un software que previamente ejecutamos (mediante el fichero ejecutable). En esteproceso, en primer lugar ejecutamos el fichero ejecutable que, a travs del SO, manda instrucciones alprocesador, y en segundo lugar ese software ya arrancado interpreta la informacin contenida en unaimagen y enva las instrucciones necesarias para poder ver en pantalla esa informacin ya procesada.

    Existen unos ficheros denominados scripts que en determinados casos, pese a ser ficheros interpretados,son capaces de ejecutar cdigo en el procesador (aunque siempre mediante un intrprete). Es el caso de,por ejemplo, programas escritos en bash scripting (ejecutados por bash, sh...) o en perl (ejecutados por elintrprete de perl). Aunque hay quien los considera ejecutables y quien no, nos es indiferente, porque encualquier caso no son muy tiles con fines esteganogrficos, debido a que en su mayora se trata deficheros de texto plano.

    Estructura de un ficheroAntes de empezar a modificar ficheros es importante entender la estructura bsica de un fichero.

    Aunque los usuarios de sistemas Windows no lo sepan, un fichero es lo que es debido a una informacinque se encuentra embebida en su interior y que llamamos cabecera. Digo esto porque en sistemas comoUnix y compatibles (Linux, xBSD...), un fichero BMP es reconocido como tal aunque su nombre seafoto.pepe; mientras que en los sistemas Windows simplemente se verifica la extensin del fichero, deforma que carta.bmp se tratar de abrir con el visor de imgenes predeterminado an tratndose de texto.

    Adems de la cabecera, el fichero contiene la informacin propiamente dicha (y en algunos casos otroscampos que no vienen al caso). Debido a que cada tipo de fichero tiene una estructura distinta, sepueden dar casos anecdticos, como por ejemplo que un fichero pueda ser a la vez de dos tipos sin questos interfieran entre s. Un ejemplo es un fichero gif-zip. Cmo es posible esto? Pues por lasespecificaciones de cada uno de los ficheros: un fichero gif define en su cabecera el tamao del mismo, deforma que cualquier byte posterior al supuesto fin de la informacin es ignorado, y un fichero zip almacena lainformacin en unas tablas de forma que cualquier byte anterior al inicio de stas es ignorado. As, sidefinimos una cabecera gif de, pongamos, 5000 bytes, y en el byte 5001 y posteriores ponemos las tablaszip, tendremos un fichero que es gif y zip a la vez.

    Por norma general, NO vamos a tocar nunca la cabecera del fichero. Nosotros siempre nos vamos a fijaren el cuerpo del mismo para introducir nuestros datos. La forma en que introduciremos los datos, as comoel sitio donde lo haremos, depende del tipo de fichero. Es necesario saber cmo almacena la informacinel fichero para no modificarlo de forma sensible. Para saber dnde colocar nuestros datos convieneconocer la estructura del fichero (ya sabis... http://www.google.es/ es vuestro amigo :-P) o empezar amodificar datos a partir de direcciones avanzadas, con lo cual nos aseguramos un margen prudente quenos evite tocar la cabecera. Yo tratar de proporcionar informacin acerca de los principales estndares deimagen que existen actualmente.

    Death Master, 2004 (GFDL) Pgina 10

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Ficheros de imagenLas imgenes es de lejos el tipo de fichero ms utilizado para esteganografiar mensajes ocultos.

    Conviene puntualizar que hay distintos tipos de ficheros de imagen:

    - Windows BitMaP (BMP): Es el formato grfico ms simple, y aunque tericamente es capaz derealizar compresin de imagen, en la prctica jams se usa. Consiste simplemente en una cabeceray los valores de cada pixel de la imagen (ocupando cada pixel 4, 8, 16, 24 32 bits segn lacalidad del color) empezando de abajo hacia arriba y de izquierda a derecha.

    Su principal ventaja es la sencillez (es el formato ms indicado para realizar esteganografa). Sumayor inconveniente es el inmenso tamao que ocupan.

    - PC Paintbrush (PCX): Este tipo de fichero es una evolucin del mapa de bits tradicional. EnPCX se usa el algoritmo de compresin RLE. Mediante RLE cuando dos o ms pixelsconsecutivos tienen el mismo color, el algoritmo guarda la informacin del color y el nmero depixels que lo usan (para la posterior visualizacin).

    El criterio para almacenar el nmero de pixels usando el color es el siguiente: si el byte es menor oigual que 192, corresponde a un nico pixel, pero si es superior a 192 el nmero de pixels repetidosnos lo dan los seis bits menos significativos del byte (ponemos a cero los dos bits ms significativos)y el color nos lo da el byte siguiente.

    Como ventajas tiene la sencillez del algoritmo (aunque, como ya veremos, este formato decompresin hace mucho ms tedioso la realizacin de esteganografa), y como inconveniente, laescasa compresin que obtenemos en fotografas (que tienen mayor variedad de pixels), que al finy al cabo es el mayor uso de imagenes.

    - Graphics Image Format (GIF): Es uno de los mejores formatos de compresin (sobre todo paraimgenes con grandes reas de un mismo color), adems de ser la opcin ms sencilla paraanimaciones vectoriales (flash y otros mtodos ms caros y complejos aparte...). El formatoGIF89a adems soporta transparencias y entrelazado.

    Usa el algoritmo de compresin LZW (usado en compresin de ficheros tambin), mucho mscomplejo que RLE. Su principal punto dbil es la limitacin a 256 colores (8 bits) de la paleta decolor, lo cual lo hace desaconsejable para cualquier tipo de fotografa o imagen realista.

    Su principal ventaja es la enorme compresin (cosa que nos complica sobremanera laesteganografa) y la capacidad de uso de transparencias y entrelazado, mientras que su mayordefecto es la escasa paleta de colores.

    - Joint Photographic Experts Group (JPEG): Este fichero es, con diferencia, el ms popular. Elalgoritmo de compresin de JPEG se basa en un defecto del ojo humano que impide lacompleta visualizacin de la paleta de 24 bits, por lo que elimina la informacin que el ojo humanono es capaz de procesar. Esto nos da una importante reduccin de tamao, pero -muy importante-este algoritmo S tiene prdida de informacin en el proceso de compresin. Dependiendo delfactor de compresin la prdida de imagen puede ser visible o no al ojo humano.

    Una variante del JPEG original es el JPEG progresivo, que realiza entrelazado de datos paravisualizarlo en primer lugar con baja calidad e ir aumentando la misma en varias pasadas.

    La principal ventaja que tiene JPEG es su calidad a la hora de representar fotografas (con supaleta de 16 bits y su alta compresin), y su principal desventaja es la prdida de calidad einformacin con grandes ratios de compresin.

    JPEG es sin duda el ms usado en esteganografa, pero eso no significa que sea el ms sencillo.

    Death Master, 2004 (GFDL) Pgina 11

  • Introduccin a la Esteganografa http://www.death-master.tk/

    - Tagged Image File Format (TIFF): TIFF es un formato usado en imgenes de altsimaresolucin y calidad, principalmente en trabajos de imprenta o fotografa profesional. Se tratabsicamente de un mapa de bits preparado para el estndar CMYK, y preparado para el uso demuchos estndares y formatos de compresin diversos, que pueden ser usados en la mismaimagen.

    La ventaja de este formato es la enorme calidad obtenida, y su principal desventaja el tamaoque ocupa. Debido a lo especfico de este tipo de fichero, no es prcticamente usado paraesteganografa.

    - Portable Network Graphics (PNG): El formato PNG nace debido a los problemas de la patentedel algoritmo LZW (Lempel-Ziv-Welch), y con la intencin de sustituir a GIF como estndar. PNGcubre prcticamente todas las caractersticas de GIF, con un mejor algoritmo de compresin, sinprdida de informacin y con una paleta de color muy superior a los 256 bits de GIF (16 bits).Adems, se trata del nico formato comprimido que incorpora la informacin del canal alpha,logrando una altsima calidad en el uso de capas y transparencias.

    PNG adems es uno de los primeros ficheros de imagen en contener informacin acerca del ficheroen forma de metadatos de texto (esto no os suena de nada? ;-P).

    A pesar de todas sus ventajas (principalmente el tratarse de un formato libre), tiene un defecto: nopermite el uso de animaciones (al contrario que GIF). La organizacin W3C (autores de PNG) hancreado el formato MNG para animaciones.

    Aunque son muchas las formas de representar una imagen en un ordenador, todas tienen un denominadorcomn: tienen que representar colores mediante bits, bien sea cada punto, vectores o tablas.

    Nuestro principal arma es la calidad de la imagen, por lo que segn la profundidad de color ser ms omenos sencillo la realizacin de esteganografa. Con 4 y 8 bits (16 y 256 colores respectivamente) lavariedad no es muy alta, por lo que la diferencia entre colores contiguos es poca.

    En profundidades de color ms comunes hoy da, como 16, 24 y 32 bits (65.535, 16.777.216 y4.294.967.296 de colores respectivamente) la cosa es muy diferente. Si bien con 16 bits la diferencia entrecolores no es tanta, modificar un punto en una imagen de tamao medio (200*200 = 40.000 puntos) y conuna diferencia de color de 1 entre 65.535... nadie podr distinguir este punto. Con 24 y 32 bits ya ladiferencia es muchsimo mayor... Ya vemos por dnde vamos, no? }:-P

    Efectivamente, vamos a aumentar o disminuir en una unidad el valor del color de un registro de color dela imagen. Veamos cmo esconder 1 byte de informacin...

    Esto es un fragmento de fichero de imagen BMP (tened listo el editor hexadecimal):

    0012A000 35 3D 33 33 3A 35 3B 43 15 1B 21 00 01 05 02 05 5=33:5;C..!.....0012A010 0A 07 0A 0E 05 05 0A 0B 0B 11 12 13 1A 0E 11 17 ................0012A020 22 20 2B 3B 37 4A 2A 2E 3D 19 20 2A 18 17 21 25 " +;7J*.=. *..!%0012A030 1E 30 63 58 7A A3 94 B3 66 5D 71 01 04 08 06 07 .0cXz...f]q.....0012A040 0E 2A 2C 33 45 44 50 1F 1E 26 00 00 00 1A 3D 4D .*,3EDP..&....=M0012A050 52 A5 D6 3F 93 CA 1E 60 88 0D 1D 27 0C 1E 28 43 R..?...`...'..(c0012A060 45 5E 3F 38 4A 11 11 17 0E 12 15 0E 11 19 0C 11 E^?8J...........0012A070 15 08 0D 12 0A 0B 12 07 0D 12 0B 10 14 11 12 17 ................

    Supongamos que nosotros queremos esconder una letra, concretamente la letra L. Primero debemosconvertirla en bits, as que consultamos la tabla ASCII (http://www.asciitable.com/) y comprobamos queel valor de L es...

    Decimal Octal Hex Binary Value ------- ----- --- ------ ----- 076 114 04C 01001100 L

    Ahora deberamos estudiar el fichero a modificar para analizar qu grupos conforman cada pixel, y deducircul es la cifra menos significativa. Como ejemplo tomaremos el ltimo valor del registro como tal.

    Death Master, 2004 (GFDL) Pgina 12

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Ahora, sumaremos 1 a la cantidad existente cuando el bit de la letra L sea 1, y dejaremos el fichero comoest cuando sea 0:

    0012A010 0A 07 0A 0E 05 05 0A 0B 0B 11 12 13 1A 0E 11 17 ................++++++++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++........ .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .1======== == == == == == == == == == == == == == == == ==0012A010 0A 07 0A 0E 05 05 0A 0B 0B 11 12 13 1A 0E 11 18 ................

    0012A040 0E 2A 2C 33 45 44 50 1F 1E 26 00 00 00 1A 3D 4D .*,3EDP..&....=M++++++++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++........ .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .1======== == == == == == == == == == == == == == == == ==0012A040 0E 2A 2C 33 45 44 50 1F 1E 26 00 00 00 1A 3D 4E .*,3EDP..&....=N

    0012A050 52 A5 D6 3F 93 CA 1E 60 88 0D 1D 27 0C 1E 28 43 R..?...`...'..(c++++++++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++........ .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .1======== == == == == == == == == == == == == == == == ==0012A050 52 A5 D6 3F 93 CA 1E 60 88 0D 1D 27 0C 1E 28 44 R..?...`...'..(D

    Y as obtenemos el resultado:

    0012A000 35 3D 33 33 3A 35 3B 43 15 1B 21 00 01 05 02 05 5=33:5;C..!..... 00012A010 0A 07 0A 0E 05 05 0A 0B 0B 11 12 13 1A 0E 11 18 ................ 10012A020 22 20 2B 3B 37 4A 2A 2E 3D 19 20 2A 18 17 21 25 " +;7J*.=. *..!% 00012A030 1E 30 63 58 7A A3 94 B3 66 5D 71 01 04 08 06 07 .0cXz...f]q..... 00012A040 0E 2A 2C 33 45 44 50 1F 1E 26 00 00 00 1A 3D 4E .*,3EDP..&....=N 10012A050 52 A5 D6 3F 93 CA 1E 60 88 0D 1D 27 0C 1E 28 44 R..?...`...'..(D 10012A060 45 5E 3F 38 4A 11 11 17 0E 12 15 0E 11 19 0C 11 E^?8J........... 00012A070 15 08 0D 12 0A 0B 12 07 0D 12 0B 10 14 11 12 17 ................ 0

    'L

    Voil! Guardamos los cambios, y comprobamos personalmente que no se aprecia cambio alguno asimple vista (en mi ejemplo, un fondo de pantalla de 1024*768 a 24 bits de profundidad). Pero si nosotros ledecimos a alguien que tenga la imagen original que compare a partir de la posicin 0012A000, podrdeshacer los cambios segn el patrn usado para introducirlos.

    Qu hemos hecho? Hemos cambiado el color de tres puntos en la imagen de forma que sean los coloresinmediatamente contiguos en una paleta de ms de 16 millones de colores. El ojo humano no podradistinguirlo nunca.

    Tambin es posible representar los ceros restando uno a la cifra original y los unos dejndola inalterada, olos ceros restando uno y los unos sumando uno... aunque lo ms recomendable es alterar lo mnimo posibleel fichero original.

    En ficheros con compresin es ms difcil introducir cambios sin que el resultado se altere, debido a quedebemos respetar la estructura del algoritmo de compresin, cosa bastante complicada. An as, conalgo de prctica y paciencia es perfectamente posible introducir mensajes esteganografiados en imgenesJPEG por ejemplo.

    Ya en Internet, mediante correo electrnico o una pgina web, es muy fcil distribuir un documento coninformacin esteganografiada.

    Death Master, 2004 (GFDL) Pgina 13

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Ficheros de sonidoLos ficheros de sonido son tambin utilizados a menudo en tcnicas esteganogrficas.

    Echemos un vistazo a los tipos de ficheros de sonido ms comunes:

    - Waveform Audio File Format (WAV): Se trata del formato de sonido desarrollado porMicrosoft para su sistema operativo Windows. Se compone de una cabecera de 43 bytes y unconjunto arbitrario de bytes que contienen las muestras una tras otra, sin ningn tipo decompresin y con cuantificacin uniforme. Al ser un formato realmente sencillo, es muy til pararealizar tratamiento digital de sonido.

    Su principal ventaja es la sencillez del formato, y su mayor inconveniente la cantidad deespacio requerido (una muestra de 10 segundos en calidad de CD -PCM, 44 KHz, 16 bit, estreo-ocupa 1,6 Mb).

    - Motion Picture Experts Group - Audio Layer 3 (MP3): Sin duda el ms famoso de todos losformatos de audio. Este formato utiliza un algoritmo de compresin con prdida de informacin,basndose en las limitaciones del odo humano: somos sensibles a las frecuencias medias, peropoco perceptivos con las altas o bajas; y adems percibimos mal los sonidos bajos que suenan a lavez que sonidos muy fuertes (efecto de ocultamiento). As pues, eliminando los sonidos que noomos, logra un ratio de compresin de hasta 12:1.

    Su principal ventaja, sin duda, es la gran compresin y la poca prdida de calidad que tiene, y suprincipal inconveniente es la prdida inevitable de informacin.

    - OGG Vorbis (OGG): Este formato se desarrolla para constituir una alternativa totalmente libre amp3. Aunque es un formato an muy joven (an no hace dos aos de la finalizacin de la versin1.0), tiene mucho que decir, pues tiene un sistema de compresin similar al de mp3, pero lograndomayores ratios de compresin (ocupa menos) y una mayor calidad de sonido.

    El principal obstculo para la implantacin de ogg es la estandarizacin de mp3: reproductoresporttiles, equipos de audio, reproductores DVD domsticos...

    La principal ventaja de ogg es la mayor compresin y calidad con respecto a mp3, as como ser100% libre de patentes. Su principal inconveniente, como en mp3, es la prdida de informacinen el proceso de compresin.

    La representacin de la informacin en los ficheros de sonido se realiza generalmente mediante el registroconsecutivo de las muestras que componen el sonido. Al igual que ocurra con los ficheros de imagen, elsonido es representado siempre en forma de bits, y cada vez con una calidad mayor (mientras redactoesto, estoy escuchando un mp3 de 128kbit y 44100Hz, lo cual supone una cantidad muy grande deinformacin...), de forma que para nuestros experimentos esteganogrficos podremos jugar con los bitsmenos significativos de la informacin.

    En el sonido ocurre una cosa muy curiosa: nos da prcticamente igual que la calidad sea alta o baja,pues en calidades altas la cantidad de bits usados para representar el sonido es muy alta, y un cambionfimo no influye en el resultado; mientras que en los de calidad baja, aunque la modificacin sea msllamativa, al tratarse de un sonido de baja calidad (por ejemplo calidad de radio), cualquier modificacinpuede pasar inadvertida como ruido de fondo.

    La forma de introducir los datos es la misma que ya hemos visto en el caso de ficheros de imagen.

    Death Master, 2004 (GFDL) Pgina 14

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Otros ficheros interpretadosComo ya dijimos al principio, cualquier formato es bueno para esconder informacin. La prctica totalidaddel software disponible en el mercado que automatiza la esteganografa trabaja con imgenes y sonidos,debido a que son los ms sencillos de usar para estos propsitos, pero nosotros podemos usar -casi-cualquier tipo.

    Es importante que antes de modificar un fichero sepamos a grandes rasgos cmo se estructura, para evitardaarlo o modificarlo tanto que llame la atencin.

    Algunos formatos que tambin son buenos para la ocultacin de informacin son:

    - Ficheros de vdeo: Motion Picture Experts Group -en cualquier versin- (MPEG), DivX (AVI),XviD (AVI)...

    Este tipo de ficheros son tambin tiles dada la ingente cantidad de informacin que almacenan,pero a la vez son complicados de modificar sin estropearlos, debido a los complejos algoritmosde compresin utilizados.

    - Ficheros de texto formateado: Microsoft Word (DOC), OpenOffice.org (SXW)...

    Los ficheros de texto formateado usualmente almacenan metadatos que nos resultan muy tilespara esconder nuestra informacin (y en el caso de Microsoft Word, dieron algn susto algobierno del Reino Unido... }:-D). No obstante los metadatos tambin pueden ser ledos y unamodificacin puede ser detectada con relativa facilidad...

    El caso de ficheros de texto plano, scripts o programas de lenguajes interpretados (TXT, SH, PL,HTML, PHP) es distinto, pues NO es aconsejable usarlos en esteganografa, dado que prcticamentetodos son ficheros de texto plano que son ledos por su correspondiente intrprete. Esto hace que una e enel texto sea una e limpia al abrir el fichero con un editor hexadecimal, y si la modificamos para que seauna f, en el texto cambiar para ser una f igualmente.

    Death Master, 2004 (GFDL) Pgina 15

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Ficheros ejecutables

    Esconder datos en ficheros ejecutables? Es eso posible? S, aunque se trata de una tcnica complejaque no siempre da buenos resultados.

    Antes de entrar al meollo de la cuestin, conviene hacer una anotacin: si bien para comprender esta parteno necesitaremos conocimientos especficos, si queremos realizar de forma seria esta tcnica debemostener ciertos conocimientos sobre virus informticos e ingeniera inversa (desensamblado, crackeo...), ascomo tambin de programacin en lenguaje ensamblador (AT&T e Intel, segn trabajemos con ficherosELF o Win32 PE).

    Para entender cmo funciona esta tcnica tenemos que echar un vistazo al modo de trabajo de los virusque infectan ejecutables. Este tipo de virus hoy da no son muy comunes, pues han sido desplazados por losomnipresentes gusanos, pero hace unos cuantos aos era el tipo de virus ms comn. Segn su tcnica deinfeccin podamos distinguir dos tipos de virus:

    El primer tipo inyecta su cdigo al final del ejecutable e introduce en algn lugar libre del mismo unainstruccin de salto incondicional (JMP) hacia el rea que contiene el cdigo del virus. El principal efectoes el aumento de tamao del fichero con respecto a la versin sin infectar (dada la inyeccin de cdigo).

    El segundo tipo, mucho ms complejo de programar y mucho ms raro de encontrar, busca reas libresen el ejecutable (debido al alineamiento) y distribuye su cdigo en esos huecos del fichero, uniendotodo el cdigo mediante diversas instrucciones de salto. Los efectos de este complejo mtodo deinfeccin son principalmente que el fichero sigue ocupando el mismo espacio en disco y que lascompaas antivirus se muerden las uas a la altura del codo para crear rutinas de desinfeccin para estosbichos.

    Nosotros no queremos infectar nada, pero s pensamos que no estara mal poder ocultar informacin enesos huecos libres que sabemos que existen...

    - Porqu existen esos huecos?

    Dependiendo del compilador que usemos, ste puede usar un alineamiento de entre 4 y 16 bytes.Eso nos da un posible espacio de huecos libres de entre 0 y 15 bytes para utilizar comoqueramos. La mayora de los compiladores de C (principal lenguaje de programacin) trabajan conun alineamiento de 16 bytes.

    - Cmo reconozco esos huecos libres?

    Cada compilador tiene una forma de rellenar esos huecos. Por ejemplo, los compiladores de C deMicrosoft suelen usar la instruccin debug (INT 3) que en forma hexadecimal es 0xCC (CC); loscompiladores de C de Borland suelen usar la instruccin NOP que en forma hexadecimal es 0x90(90); y otros compiladores como GCC (Gnu C Compiler) usan diversas instrucciones, lo que entreotras cosas dificulta la infeccin del ejecutable.

    - Puedo escribir en esos huecos sin ms?

    NO, y este es uno de los principales motivos por el que esta tcnica es tan compleja. Si antes deesos huecos se encuentra un salto incondicional, o una instruccin comparativa que ejecutedos o ms saltos condicionales dependiendo del resultado de evaluar la expresin, o cualquier otracosa con la condicin de que el programa NO contine en ese hilo de ejecucin de forma lineal...entonces s podemos usar esos huecos a nuestro antojo. En caso de que el programa continesu hilo de ejecucin de forma normal, NO podremos usarlos.

    Death Master, 2004 (GFDL) Pgina 16

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Esto diferencia la tcnica esteganogrfica en ejecutables de la infeccin por virus. A un virus leinteresa ejecutar cdigo, enviar instrucciones al procesador, de forma que los huecos que a nosotrosnos valen (los menos) al virus no le valen, y viceversa. Nosotros queremos que lo quemodifiquemos NO sea enviado al procesador como cdigo a ejecutar, porque en el mejor de loscasos el programa har cosas raras, y en el peor (la mayora) el ejecutable quedar inservible...con lo cual no estamos cumpliendo los preceptos de la correcta esteganografa.

    Si nosotros abrimos un fichero ejecutable y encontramos esto:

    00000800 E5 00 F0 73 03 19 81 C3 90 90 90 90 90 90 90 55 ...s...........U\-----------------/ | \-----------------/ |

    | | | +> PUSH {Inicio de subrutina} | | | | | +> NOP {Huecos} | | | +> RETN {Final de subrutina} | +> {Cdigo del programa}

    A primera vista podemos decir que este programa seguramente fue compilado con un compilador deBorland. El ejecutable dispone de 7 bytes libres donde escribir lo que queramos. Pero para no inyectarcdigo en el procesador (bueno, el que quiera ya sabe cmo :-P) debemos asegurarnos que el programaanterior a esos bytes libres no contina en ese hilo de ejecucin... cosa que se sale de la temtica deeste documento. As pues, el que quiera saber ms de esteganografa en ejecutables primero debeempaparse de ingeniera inversa. Al fin y al cabo ya sabemos cmo encontrar los bytes libres, y ya sabemoscmo introducimos informacin...

    Ahora el jarro de agua fra: la esteganografa en ejecutables tiene varios problemas serios...

    A pesar de la complejidad de la esteganografa sobre ejecutables, no es mejor que sobre ficherosinterpretados... a decir verdad es peor. Porqu? Porque cualquiera con conocimientos en ingeniera inversapuede ver que el cdigo del programa llegado a determinado punto no ejecuta instrucciones de un reaque contiene instrucciones (muy probablemente instrucciones sin sentido, al tratarse de informacin), ydeducir que ese rea originalmente contena instrucciones vacas.

    Adems existe otro problema: si el software usado realiza comprobaciones MD5, nuestro ejecutablemodificado ser considerado corrupto, y por tanto no vlido. Cualquier pretensin de pasar informacininadvertida se pierde.

    Por ltimo, las compaas antivirus en sus productos modernos incluyen sistemas heursticos dedeteccin de virus, mediante los cuales reconocen patrones de conducta, no virus concretos. Nuestrainformacin esteganografiada en un ejecutable se parece bastante a un virus... por lo que quiz seadetectada como un virus.

    Como conclusin personal, dir que la esteganografa en ficheros ejecutables no es prctica, puesimplica tener conocimientos avanzados de ramas de la seguridad informtica muy complejas (virus,lenguaje ensamblador, ingeniera inversa...), necesita mucho tiempo para llevarse a cabo, y conllevabastantes problemas prcticos en su ejecucin. An as, como dicen que el saber no ocupa lugar, aququeda. ;-)

    Death Master, 2004 (GFDL) Pgina 17

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Esteganografa avanzada

    La esteganografa es un arte complejo y con muchos matices. Sin llegar an a la combinacin deesteganografa y criptografa, es posible el uso de determinadas tcnicas avanzadas que permitenaumentar la eficacia de una informacin oculta mediante esteganografa. Veamos alguna:

    Uso de mltiples claves

    Esta tcnica es heredada directamente de la criptografa, pero con distinta forma de aplicacin. Consiste enusar distintas codificaciones para cada porcin arbitraria del mensaje a ocultar. As, una frase de cincopalabras puede tener una clave de codificacin para cada una de las palabras: en la primera restamos unaunidad en los ceros y sumamos una unidad en los unos, en la segunda realizamos lo mismo pero invirtiendoel orden de los bits, en la tercera realizamos el XOR de los bits...

    Naturalmente la clave ha de ser conocida por el destinatario.

    Esteganografa en capas

    Mediante esteganografa en capas establecemos una relacin lineal entre los elementos ocultos. As, lacodificacin de la segunda palabra o letra de un mensaje depende de la primera (puede depender del ltimovalor de la cifra, del ltimo valor modificado, de la posicin...).

    As establecemos un orden estricto de decodificacin que impide obtener completamente el mensaje sinla primera parte, con lo cual nicamente debemos comunicar la clave para obtener esta parte y la pauta aseguir para encadenar los fragmentos.

    Adicin de ruido

    Aunque en un mensaje esteganografiado TODO el fichero es considerado ruido, podemos aadir ruido enel proceso de esteganografiado. As, adems de modificar los bits necesarios para inyectar nuestromensaje, podemos modificar unos cuantos bits aleatorios del mensaje de forma que an teniendo elfichero original, un posible atacante deba conocer el sistema de codificacin usado.

    Uso de distintas magnitudes

    Aunque lo habitual es variar en 1 bit el byte del mensaje original, nada nos impide variarlo en ms bits.As, podemos establecer claves complejas, como por ejemplo: ocultamos una frase de cinco palabras, y alocultar la primera de las palabras sumamos 1 bit en la codificacin de la primera letra, 2 bits en lacodificacin de la segunda, 3 bits en la tercera... hasta que vuelva a aparecer una modificacin de 1 bit, quesignificar el inicio de otra palabra.

    Mientras trabajemos con ficheros que usen mucha informacin (imgenes de 24 bits o ms por ejemplo)no se notar que variemos la escala en 1 10 unidades, y nos proporciona un tipo de clave ms compleja.

    Otras tcnicas

    Existen muchas otras tcnicas esteganogrficas que permiten aumentar la complejidad y seguridad, tantascomo queramos idear nosotros mismos. Lo ideal es que cada uno idee y use su propia tcnica.

    Death Master, 2004 (GFDL) Pgina 18

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Esteganografa y criptografa

    Como ya comentamos al principio del presente documento, la esteganografa hoy da est ntimamenteligada a la criptografa. Teniendo unos conocimientos bsicos de criptografa y esteganografa podemosocultar nuestros datos con un grado de seguridad sorprendentemente alto (NOTA: Para los interesados enla criptografa, tengo publicado un documento sobre el tema en mi web).

    Mediante tcnicas criptogrficas como las usadas por PGP (Pretty Good Privacy) podemos hacernuestros datos completamente ilegibles, pero un fichero cifrado con PGP tiene una estructura muyespecfica que lo hace reconocible de inmediato. En ciertos pases el gobierno controla a la poblacinhasta el extremo de controlar la informacin que emiten a la red (por ejemplo en China), por lo que cualquierdato cifrado sera interceptado de inmediato. Podemos comparar la criptografa a tener alarma en casa:nuestra seguridad aumenta muchsimo, pero todos los que vean las medidas de seguridad sabrn quetenemos cosas importantes que guardar (por norma general se cifran nicamente los contenidos muyimportantes).

    Mediante tcnicas esteganogrficas podemos hacer que cualquier informacin pase inadvertida(subyaciendo en informacin inofensiva), pero la seguridad intrnseca de la esteganografa para datosimportantes no es mucha.

    Mediante la combinacin de estas dos tcnicas estableceremos dos capas en la seguridad de lainformacin: la primera capa, ms externa, es la esteganogrfica; y la segunda, interna, la criptogrfica.Cada una de las capas tiene un cometido en esta peculiar simbiosis: la capa criptogrfica se encarga de laseguridad de los datos (pues aunque la esteganografa sea un medio de proteger datos, no es comparableal cifrado) mientras que la capa esteganogrfica protege la integridad de la capa criptogrfica.

    Aunque nada nos impide realizar nuestros cifrados a mano, para usar algoritmos y claves complejas es casiimprescindible el uso de software especializado. Yo sin duda recomiendo cualquier implementacin deopenPGP, especialmente GnuPG que es software libre, y cuyo cdigo fuente puede ser revisado porcualquiera que desconfe.

    Si ciframos nuestros datos de forma que nos devuelva una armadura ASCII, ya tendremos todos loscaracteres que componen nuestro mensaje cifrado. Es muy recomendable que la clave que usemos para larealizacin de criptografa orientada a esteganografa use el algoritmo DH/DSS (Diffie-Hellman / DigitalStandard Signature), pues el tamao de salida de datos es mucho menor. Con la armadura ASCII delmensaje solamente necesitamos un poco de paciencia para esteganografiar los datos.

    Death Master, 2004 (GFDL) Pgina 19

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Ataques a la esteganografa

    No son muchas las investigaciones publicadas acerca de mtodos de ataque a la esteganografa, aunque esde esperar que debido al auge que ha experimentado hoy en da gracias a tcnicas como las marcas deagua, se publiquen ms investigaciones sobre debilidades y formas de aprovecharlas.

    Los dos mtodos ms usados para detectar y atacar la esteganografa son:

    Ataque visual

    Consiste bsicamente en buscar de forma manual diferencias entre el fichero original y elesteganografiado, siempre y cuando dispongamos del fichero original. En caso de no disponer de l, sepueden buscar irregularidades en el fichero esteganografiado para tratar de encontrar signos de laexistencia de datos ocultos, pero difcilmente podremos obtener informacin til ms all de la existencia delos mismos.

    Esta tcnica es la ms rudimentaria a la hora de realizar anlisis esteganogrfico y no tiene mucha utilidadreal.

    Ataque estadstico

    Este tipo de ataque se basa en el mismo concepto que el criptoanlisis diferencial del que habl enCriptosistemas Informticos.

    El concepto de este tipo de ataques se basa en la comparacin de la frecuencia de distribucin decolores de un fichero potencialmente esteganografiado con la frecuencia que podramos esperar enteora de un fichero esteganografiado. Aunque los resultados son bastante buenos (ha demostrado enmuchas ocasiones ser efectiva), esta tcnica es extremadamente lenta.

    Si la creacin de mensajes esteganografiados a mano ya es complicada, el ataque estadstico lo es muchoms, por lo que se automatiza mediante diversos programas. Pero a nuestro favor tenemos que losprogramas especializados en deteccin y ruptura de mensajes esteganografiados suelen buscar pautas demensajes ocultos con algn tipo de software especializado en la creacin de los mismos. Siesteganografiamos nuestros mensajes a mano, la posibilidad de que la informacin sea recuperadailcitamente es nfima.

    Uno de los programas ms famosos para detectar la presencia de esteganografa en ficheros de imagenJPG es Stegdetect (http://www.outguess.org/detection.php). Este software, mediante su mdulo Stegbreak,realiza ataques de diccionario a los principales sistemas pblicos de esteganografa.

    Conclusin

    Dada la naturaleza de la esteganografa, resulta extremadamente resistente a cualquier tipo de ataque.Los programas que aseguran detectar y recuperar datos ocultos mediante esteganografa lo hacen siemprebuscando mensajes ocultos con programas de dominio pblico. Si nosotros esteganografiamos nuestrospropios mensajes a mano o -si somos programadores- desarrollamos una herramienta privada, lasposibilidades de que nuestros datos sean comprometidos son prcticamente cero.

    Para ms informacin sobre anlisis estadsticos en esteganografa conviene leer los estudios publicadospor Stefan Hetzel.

    Death Master, 2004 (GFDL) Pgina 20

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Software esteganogrfico

    Actualmente existen muchos programas especializados en ocultacin de mensajes de texto medianteesteganografa, en la mayora de los casos en archivos de imagen o sonido.

    Antes de empezar a esteganografiar como locos, un par de consejos:

    En primer lugar, NO considero buena idea el uso de ningn tipo de software para ocultar datosimportantes, puesto que en la esteganografa no existen las claves como en la criptografa, sino que laclave es la tcnica usada para esteganografiar. Si usamos un software que tiene su propia tcnica,estamos permitiendo implcitamente que cualquiera con ese software pueda recuperar nuestros datos.Como mucho, ciertos programas incorporan la opcin de establecer una contrasea y aadir algn cifradosencillo a los datos... nada que un ataque de diccionario no pueda solucionar (de hecho ya hemos habladode Stegbreak).

    En segundo lugar, al igual que ocurre con la inmensa mayora de los programas de cifrado, existe laposibilidad (s, soy un paranoico :-P) de la existencia de backdoors que comprometan totalmente lainformacin contenida. Por ello, yo solamente considero fiable al 100% el software libre, aunque en estecaso concreto, el que el cdigo sea pblico facilita an ms a un atacante el obtener nuestra informacin.

    Dicho lo cual, pongo algunos de los principales programas de esteganografa que existen en la actualidad:

    Steganos Security Suite:(De pago // Propietario ; Sistemas Windows)http://www.steganos.com/en/sss/

    mp3stego:(Freeware // Cdigo fuente disponible ; Sistemas Windows)http://www.petitcolas.net/fabien/steganography/mp3stego/

    Hydan:(Freeware // Cdigo fuente disponible ; Sistemas Windows // Sistemas *NIX // etc)http://www.crazyboy.com/hydan/

    OutGuess:(Freeware // Cdigo fuente disponible ; Sistemas Windows // Sistemas *NIX // etc)http://www.outguess.org/

    Snow:(Freeware // Cdigo fuente disponible ; Sistemas Windows // Sistemas *NIX // etc)http://www.darkside.com.au/snow/

    Gifshuffle:(Freeware // Cdigo fuente disponible ; Sistemas Windows // Sistemas *NIX // etc)http://www.darkside.com.au/gifshuffle/

    Securengine:(De pago // Propietario ; Sistemas Windows)http://securengine.isecurelabs.com/

    JPEG-JSTEG:(Freeware // Cdigo fuente disponible ; Sistemas Windows // Sistemas *NIX // etc)ftp://ftp.funet.fi/pub/crypt/steganography/jpeg-jsteg-v4.diff.gz

    Nicetext:(Freeware // Cdigo fuente disponible ; Sistemas *NIX)http://www.ctgi.net/nicetext/

    Death Master, 2004 (GFDL) Pgina 21

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Autopsia de un reto

    Ahora vamos a ver un ejemplo que nos va a hacer comprender mucho mejor cmo funciona laesteganografa artesanal. Para realizarlo, voy a destripar paso a paso el segundo reto de esteganografaque publiqu en HpN, hace casi un ao. El hilo original del reto es:

    http://www.sfreedom.net/~hpn/foro/index.php?act=ST&f=6&t=746

    En este hilo est el texto original del reto, as como un aadido con pistas concluyentes para laresolucin del reto que publiqu para animar a la gente a intentarlo... y no se animaron. :-(

    No voy a volver a escribir las pistas (el que est interesado puede visitar el enlace) sino que pasodirectamente a la resolucin del reto. En primer lugar, descargamos los dos ficheros de audio:

    Fichero original: http://www.clubhackers.com/death/orig.wavFichero esteganografiado: http://www.clubhackers.com/death/estega.wav

    Se trata del fichero voice_input que uso en el juego Counter-Strike para rerme un rato (con un script, alpulsar una tecla reproduce el fichero por el canal de audio). Debido a las caractersticas del cdigo destreaming de sonido del motor del juego, la calidad del sonido debe ser PCM a 8.000 Hz, 16 bit y mono a128kbps.

    NOTA: Al escucharlo os reiris. Es una broma que tengo con un amigo mo del norte... Miguel, va por ti! :-P

    Sabemos que buscamos un ao. Ahora hay que dar el primer paso, para lo cual compararemos el ficherooriginal con el esteganografiado y buscaremos diferencias:

    - Observamos que hay varias diferencias dispersas entre los grupos 00001000 y 00010000. Ya tenemos elrango de datos.

    - Observamos que siempre existe un bit modificado en la posicin 0000x010 (y en 00010010), y tambinque nunca hay un bit modificado ms all de la posicin 0000x070, por lo que deducimos que en el rango0000x000 - 0000x070 estamos representando un byte.

    As pues, procedemos a desentraar esos 10 bytes, obteniendo los siguientes valores:

    (00001000-00001070) - 01001101

    (00002000-00002070) - 01000100

    (00003000-00003070) - 01000011

    (00004000-00004070) - 01000011

    (00005000-00005070) - 01001100

    (00006000-00006070) - 01011000

    (00007000-00007070) - 01011000

    (00008000-00008070) - 01011000

    (00009000-00009070) - 01001001

    (00010000-00010070) 01011000

    Ahora debemos tratar de comprender qu pueden significar esos bytes, para lo cual lo mejor es empezarconvirtindolos en base decimal y hexadecimal.

    Death Master, 2004 (GFDL) Pgina 22

  • Introduccin a la Esteganografa http://www.death-master.tk/

    (00001000-00001070) ............... 77 / 4D ............. 01001101

    (00002000-00002070) ............... 68 / 44 ............. 01000100

    (00003000-00003070) ............... 67 / 43 ............. 01000011

    (00004000-00004070) ............... 67 / 43 ............. 01000011

    (00005000-00005070) ............... 76 / 4C ............. 01001100

    (00006000-00006070) ............... 88 / 58 ............. 01011000

    (00007000-00007070) ............... 88 / 58 ............. 01011000

    (00008000-00008070) ............... 88 / 58 ............. 01011000

    (00009000-00009070) ............... 73 / 49 ............. 01001001

    (00010000-00010070) ............... 88 / 58 ............. 01011000

    Ahora consultamos la tabla ASCII para ver qu letras representan esos valores:

    (00001000-00001070) M............... 77 / 4D ............. 01001101

    (00002000-00002070) D............... 68 / 44 ............. 01000100

    (00003000-00003070) C............... 67 / 43 ............. 01000011

    (00004000-00004070) C............... 67 / 43 ............. 01000011

    (00005000-00005070) L............... 76 / 4C ............. 01001100

    (00006000-00006070) X............... 88 / 58 ............. 01011000

    (00007000-00007070) X............... 88 / 58 ............. 01011000

    (00008000-00008070) X............... 88 / 58 ............. 01011000

    (00009000-00009070) I............... 73 / 49 ............. 01001001

    (00010000-00010070) X............... 88 / 58 ............. 01011000

    MDCCLXXXIX, que como ya habris supuesto, son nmeros romanos. Concretamente 1789, ao de laRevolucin Francesa. Reto resuelto!

    Hay que tener en cuenta que todos los pasos que doy como obvios (intuir dnde hay un byte, consultar latabla ASCII...) en caso de esteganografa real, deben ser proporcionados por el emisor del mensaje. Eneste caso se daban pistas por tratarse de un reto.

    Para el que le haya gustado, en HpN queda el primer reto de esteganografa, ms sencillo que ste. ;-)

    Death Master, 2004 (GFDL) Pgina 23

  • Introduccin a la Esteganografa http://www.death-master.tk/

    Distribucin de este documentoEste documento se distribuye en formato PDF realizado bajo OpenOffice.org 1.1.1.

    Ficheros a distribuir:

    Nombre: Estega.pdfDescripcin: Documento principal.

    Nombre: Estega.pdf.sigDescripcin: Firma digital PGP del fichero Estega.pdf realizada por el autor.

    Nombre: hash.txtDescripcin: Contiene la cadena hash MD5 de los ficheros Estega.pdf y Estega.pdf.sig.

    Datos adicionales:

    El hash MD5 puede resultar til para comprobar la integridad del fichero descargado, pero no es garanta dela inalterabilidad del documento, pues puede haber sido alterado junto a la cadena de hash.

    Para comprobar la completa autenticidad e inalterabilidad del fichero, usar el sistema PGP para validar elfichero .sig (MIME/PGP) de firma. Cualquier modificacin no autorizada del documento har que la firma delmismo no sea vlida, y sta es imposible de falsificar.

    Death Master

    Autentificacin:

    -----BEGIN PGP MESSAGE-----qANQR1DBwUwDJoT5ygJgu7ABD/9qXlqVAydntKHiOo5FO0WiKcG3iPvTWjHUTpu5QeA2tXtUjwbE+mBvH6qvycNRP3VhchJpym+DOr7pwlQFTykYdbrCKoWG9Wpc1N4wMqFBjcbmZaVwwMKNcfbhuaTbi3sDwnbHZe+02auv+c2GZ9kByo9MzzteU7tPP7YPBOCojF+SrbwpBuixEFEWs33FgRUTEPcL/MMSXCmhZqucZ4WE5CCNxVBbX99U49kGLiTzVo4ua6AAy6FifSsr+TDvLq6tJIYCHpLcOuoOjlRncv9bEmJDmAfAbkyfNWtgSTJGWOesInr3Zh0wwnR/LvwcuUI7piUfuKkf7z+U/TRy2WwY60lAfWsH7mg6IWOSAWMss1SF0yn+KtvP9r6mVJacHmKBRKtBKXIUj62UeyujmAWqAZZYDUSJv4l91EU+CPONqJD7nnVHIw2jlOsCRxAb0velbmDc8/d0SWdwbkVPTJxjZHpzImMIPKvBck2DDbIb9sNfptzYMT39qmBGfAw/d6cPactyMjI+N47QEekvCWEUnYHLfUszWNxBjVEjaiCYp+Y039B3TfP9H6KlarRbindCj9fulXFAe857R/rImRHNdgKnpwYqMDiVwcPAkqXT5wtFSIUXApkOOtbeQAsV07vBogWAACP3mN9M74ljz5zQYOLzIHwm7ata1Ge/cMHY5tLChAGwnNeYku0ovZbWn4HHqBMz/114JKN6GOpYPYY1JgJ5WfuXFFINlo6tpAHt9Ae31zaTozy6XBMp9mxGcneTJOwnU6sLRc4Z3kUnBpiNPuO95y6evyHGdFExTfH6bk7Gh9inN9uqLI6cq8boCew8dk4KmYQqKlNLdfbhaKl3y0qlM9T9S4FXC6OX+W22FPTudD+SVssp3mNZFkwlYs8kbKR16izlqmCmy0XJz6aLKuxycjS56+PoLq7fNBvDybrBlVBnbvQ1zXlhBWvZP3XwUCEV63kfPg+W+5ozDm4taS7qGFqAMn9m7HpJIdxzgwSxhBS3YboRnbIAe4T7Z7WJ5YBRYrpmXTxT9YNxlxv4IbWnPZNeYk1303xpcM74vZRhD9q8kodRBmrpCSCHZwmJQHzDZ4MAG1GZX02POOi//7SthGXGAT5xF5myGjNnBj+uD6keNdRC8eoxP5n01yEPXImmFZI/rgnZLpKvTATvL9tF3sSMvkXt8V0D4k7NHfUoPhlYbrKVtZ/h/+lsBkgAeJsWKO4NiFhcTbA0NIpM4C3SqJI3KP7eOKwxXJ2y1sifce9GdSXRx/Xxj5oUil4Rxzy/CX9EOwwLfwZXH3c7Xg+HVV70aubxWjoC9UTFEAsV/KqbnT13lJOvGEJ3WHnd5I/S61hIzrXGQe6SGELDsqSRVOO8B40wH7YUAD0t/HwnQp7x9Sux9gXb9ENiZ6GJaqK/bXtBHGInU4js3u0RVIy+rbw6EHCNM6EAusQSt6Wx+YgOzcsZVXcXttCJWFxKElnvql+Cvl9DQyhBkt6TVBJtXcGRt2F1B5H2NU2GzzKDrN5KdslPvoUWJt/kdK5nTxAatB+cjEQZXLwgxDd2wv5SChoV0iBbGnBWpSmaK1h9/j2T8z74RYmC7TU55cfeX0Vuozf3lCO5+PAgIjj8hhEn7Ae9U1+OmOd79zmVBLYInweTARwTRgRiMmm2luSnni9/c7VYD073IiTWADsRZ+1HbJPhr/0GNaCrgy9yZq85jxpS+bRIedKEus5+2LEpC+XYIjI71vjMqTpdNBvExgG4w9F4NarHr+pXWXeuW5aw+fO9LMc1CoJQB6gLw/qCtmwigdmR=/28t-----END PGP MESSAGE-----

    Death Master, 2004 (GFDL) Pgina 24

  • Introduccin a la Esteganografa http://www.death-master.tk/

    LicenciaIntroduccin a la Esteganografa http://www.death-master.tk/ Versin 1.0

    Este documento ha sido liberado por su autor bajo la licencia GNU Free Documentation License (GFDL), ysu utilizacin, copia o reproduccin queda sujeta a los trminos de la citada licencia, que puede serconsultada en el siguiente sitio web:

    GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.htmlGFDL Version 1.2, November 2002Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.

    Copyright (c) 2004 Death MasterPermission is granted to copy, distribute and/or modify this document under the terms of the GNUFree Documentation License, Version 1.2 or any later version published by the Free SoftwareFoundation; with the Invariant Sections being Distribucin de este documento and Licencia, noFront-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled"GNU Free Documentation License".

    Cualquier copia, modificacin, distribucin o utilizacin en general de este documento debe respetar laautora original del mismo, correspondiente a Death Master.

    Introduction to Steganography http://www.death-master.tk/ Version 1.0

    This document has been freed by its author under the license GNU Free Documentation License (GFDL),and its use, copy or reproduction is subject to the terms of the mentioned license that can be consulted in thefollowing website:

    GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.htmlGFDL Version 1.2, November 2002Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.

    Copyright (c) 2004 Death MasterPermission is granted to copy, distribute and/or modify this document under the terms of the GNUFree Documentation License, Version 1.2 or any later version published by the Free SoftwareFoundation; with the Invariant Sections being Distribucin de este documento and Licencia, noFront-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled"GNU Free Documentation License".

    Any copy, modification, distribution or general purpose use of this document should respect the originalresponsibility of it, corresponding to Death Master.

    * End Of File *

    Death Master, 2004 (GFDL) Pgina 25