Hace unos años fue muy sonado el caso de unos espías rusos que el FBI consiguió detener después de varios años de investigación. Los espías utilizaban para comunicarse fuentes públicas (blogs, periódicos, foros,…), en los que ofuscaban información “a la vista de todos” bajo técnicas de esteganografía.
Y al final los pillaron no porque el FBI fuera capaz de encontrar estas fuentes y descifrarlas, sino porque uno de los detenidos acabó señalando al resto, descubriendo entonces cinco años de comunicaciones que pudieron poco a poco recuperarse.
Cuento esto porque la esteganografía, bien usada, resulta prácticamente imposible de descubrir, e incluso entonces, si de nuevo se han utilizado técnicas avanzadas y cruzadas (diferentes estegos en diferentes fuentes necesarios para comprender el mensaje), posiblemente sea casi indescifrable. Así que abróchese el cinturón, que vamos a hablar de esteganografía en este nuevo capítulo de la serie #MundoHacker.
Pero antes, si te importa la seguridad y privacidad…
¿Qué es la esteganografía?
La esteganografía es el arte de ocultar información en algún otro elemento. No es algo que naciera de la informática, sino que lleva acompañando al hombre desde que éste vio necesario realizar este tipo de técnicas. Casos como el uso de animales o esclavos para enviar información confidencial entre reinos (se cortaba el pelo del animal/el pelo de la cabeza del esclavo, se escribía algo en la piel, y se esperaba a que éste creciera de nuevo), o ese experimento que todos hemos realizado de escribir algo con zumo de limón y esperar a que se seque, son ejemplos de técnicas utilizadas en la antigüedad que entran dentro de esta definición.
Para ello, se utilizan dos elementos, el mensaje (la información que queremos ocultar) y el camuflaje o tapadera (el elemento que hará de tapadera), una función estego (algún tipo de técnica para que el elemento oculto pase desapercibido dentro del camuflaje) y quizás algún tipo de clave necesaria para descifrarla.
El camuflaje (con el mensaje oculto en su interior) viajará por un canal previsiblemente inseguro (una página web, o el camino entre dos reinos), pudiendo ser interceptado por algún otro receptor (llamado habitualmente guardián). Y el objetivo es que el guardián sea incapaz de, o bien darse cuenta de que el camuflaje tiene un mensaje oculto, o en caso de darse cuenta, que no pueda obtener el mensaje.
Una vez que llega a su destino, el receptor objetivo aplicará la estego-función y la estego-clave (si es que había), separando camuflaje de mensaje, y obteniendo así la información buscada.
La esteganografía (ES) tiene por tanto una terna en cuyo equilibrio radica la función para la que se ha desarrollado. Habitualmente, las técnicas de esteganografía que permiten ocultar mayor información (cantidad) son menos robustas y pasan menos desapercibidas (invisbilidad). Por contra, a mayor robustez, normalmente menor cantidad de información oculta.
Y por su idiosincrasia, obedece al principio de la negación plausible (que no haya manera, a no ser que se conozca la estego-función y la estego-clave, de que alguien pueda discernir que un elemento es camuflaje de un mensaje oculto, o simplemente ese elemento tiene ruido). Esto hace de la esteganografía una técnica muy valiosa tanto para los espías, como para activistas, militares e incluso terrorismo, ya que juega con la ventaja de que es más o menos invisible (difícil darse cuenta de su existencia), puede ser enviada por canales poco seguros (como internet) y resulta muy complicado demostrar ante un juez que estamos ante una comunicación oculta sin conocer los elementos que la forman.
¿Qué técnicas estego existen?
Aunque habitualmente solemos considerar la esteganografía como una técnica para ocultar información dentro de imágenes, lo cierto es que existen muchos otros tipos:
- Esteganografía pura: No existe estego-clave, y por tanto, se presupone que el guardían es incapaz de reconocer una información oculta mediante estego de un mensaje normal. Se aplica entonces seguridad basada en la oscuridad, y el mejor ejemplo es el mini reto hacking que proponía hace un par de semanas, donde la imagen tenía oculta otra imagen que cualquiera podía obtener abriendo el camuflaje (la primera imagen) con un descompresor cualquiera.
- Esteganografía de clave secreta: En este caso, la estego-función depende de una clave que deben conocer tanto el emisor como el receptor. Un ejemplo sencillo sería un texto oculto bajo otro texto generado aleatoriamente a partir de un capítulo de un libro que los dos (emisor y receptor) conozcan y una contraseña que dictará el cómo descifrar el mensaje camuflado.
Además, dentro de estas dos categorías, y atendiendo ya a los canales utilizados, podemos hablar de:
- Esteganografía en texto: Ofuscar información en texto, de manera que algunas (o todas) las palabras del mismo, sirvan para descifrar el mensaje. Hay varias técnicas, pero la mayoría se basan en aplicar algún algoritmo que permita elegir diferentes estados (por ejemplo, un 0 o un 1) según diferentes palabras (coche = 0, gato=1), en un orden específico. Así, cuando en el texto aparezca por primera vez coche, entendemos que habrá un 0, y si en vez de coche apareciera gato, sería un 1. Seguiremos leyendo y poco a poco obtendremos el resto del mensaje oculto. De ahí que estas técnicas se suelan apoyar en generación de semántica (para dar sentido a las frases). Tenemos por ejemplo spammimic (EN), una herramienta muy antigua encargada de codificar mensajes en supuestos mensajes de spam (los típicos mensajes de spam que vemos en foros y blogs). Simplemente dices el mensaje a ocultar, y spammimic genera el texto de spam, que el emisor colocaría en una fuente conocida, y el receptor recuperaría para hacer el proceso contrario. Cualquier guardián que viera el mensaje solo vería un spam más, sin darse cuenta de que hay información oculta.
- Esteganografía en sistemas operativos y ficheros: Consiste en ofuscar información apoyándose en las restricciones propias del canal utilizado. Un ejemplo muy utilizado hace algunos años y sencillo de aplicar era el de dividir el disco duro de un ordenador en bloques por ejemplo de 256, cuando Windows como mínimo permitía 512. Al hacerlo de esta manera, se le engañaba, por lo que para cada bloque, Windows utilizaba 256, y el emisor tenía otros 256 para ocultar información, que podía recuperar con herramientas específicas. También resulta bastante sencillo ofuscar información utilizando ADS en NTFS. En NTFS un fichero está construido por varios flujos (uno para los permisos del archivo, otro para datos del usuario,..). Herramientas como LADS o crucialADS permiten recopilar este tipo de archivos.
- Esteganografía en formato de ficheros: Ofuscamos información en las limitaciones propias del fichero, o de los elementos de control de los sistemas encargados de leer el fichero. La más conocida y sencilla es la Técnica de Final de Fichero (EOF), que aprovecha el poco control a la hora de leer un fichero para ocultar información al final del mismo. La mayoría de sistemas solo leen la información necesaria, por lo que se puede agregar contenido adicional que pasará desapercibido.
- Esteganografía hardware: Aprovechar, de nuevo, las limitaciones (o fallos de seguridad) de un elemento físico para ofuscar información dentro de él. Y aquí el mejor ejemplo es el uso de malware en BIOS (BadBIOS) que sacudió internet entera hace relativamente poco, para disgusto de los amantes de la conspiración mundial. Y el BadUSB de estos últimos días, que básicamente sigue el mismo principio.
- Esteganografía en tecnologías web: Aprovechar la propia arquitectura del lenguaje de maquetado para ofuscar información. Como bien sabe, HTML no distingue entre mayúsuculas y minúsculas, por lo que para el navegador <br> sería lo mismo que <Br>, que <bR> o que <BR>. Y ahí tenemos varias alternativas distintas que funcionan de la misma manera.
- Esteganografía en protocolos de comunicación: Semejante a las técnicas aplicadas en el formato de ficheros, pero con el formato de los protocolos (por ejemplo, ocultando información en cabeceras UDP).
- Esteganografía en contenido multimedia: Tanto en imágenes como en sonido o vídeo. Las técnicas aplicadas en esteganografía de imágenes son muy parecidas a las aplicadas en sonido (basadas normalmente en ocultar información de poco peso en elementos muy pequeños del sistema de archivos multimedia, por ejemplo a nivel de pixeles en imágenes). En vídeo encontramos técnicas cruzadas de los dos anteriores, con algunas nuevas en las que interfiere movimientos específicos (guardar información cuando una zona cambie bruscamente de tonalidad) o en ejes críticos (subidas de volumen o espacios que cumplan x particularidad).
Llevo casi 1500 palabras escritas y únicamente he hecho un repaso de algunas tipologías estego. Si el tema le parece interesante, déjeme un comentario sobre qué conceptos quería que tratara en más profundidad y entonces prepararé uno o varios tutoriales específicos del tema.
Edit unos días más tarde: Un compañero ha hecho un vídeo (EN) explicando dos de las metodologías de ofuscación de información en ficheros que comentábamos en el artículo. Muy recomendable!
________
Puedes ver más artículos de esta serie en #MundoHacker, donde tratamos en varios tutoriales las medidas para atacar y/o defenderse en el mundo digital.
Y si el contenido que realizo te sirve para estar actualizado en tu día a día, piensa si merece la pena invitarme a lo que vale un café, aunque sea digitalmente.
Si señor, te has currado el post de una forma increíble. La esteganografia, para mi un casi-arte en cualquiera de sus formas. Lamentablemente cada vez se usan estas artes más para mostrar la parte mala de todo en vez de todo lo contrario. Gracias por este gran contenido. Sigue así 😉
Muchas gracias Detective. De vez en cuando uno tiene un día inspirado :).
Saludos!
Me pareció muy agradable tu información e investigación sobre el tema podría aportar si mezclaras con programas en los que se aplica esto. Estoy investigando sobre el tema y espero podamos compartir información que se nos sea útil a ambos.
Precisamente estoy leyendo estos días el libro de Esteganografía de Alfonso Muñoz, que acaba de publicar bajo la editorial Ra-Ma. Y seguramente al término caiga algún artículo, tranquilo :).
Me alegro que te sirviera esta información. Muchas gracias!
Se encuentra el libro de esteganografía y estegonanalisis de Daniel Lerch, editorial 0xWord el cual explica paso a paso las técnicas de esteganografía digital, algunas ya pasadas de moda y otras actuales con ejemplos en Python.
Gracias por la info LordZero.
Estaba investigando para realizar una exposición sobre este tema y encontré este excelente post muy bien explicado. Lamentablemente soy un estudihambre como para hacer una pequeña donación, pero de verdad se agradece la información.
Me alegra oír eso Cristpher. Muy buena suerte con esa exposición, y por aquí me tienes para lo que haga falta :).
Hola Pablo, me has aclarado bastantes cosas, y me ha parecido muy completo.
Quisiera preguntarte algo sobre la esteganografíal, y es que si al hacer un trabajo de análisis informático, hay algún programa que pueda decirte de alguna manera si hay o pudiera haber en uno o en varias fotos algún tipo de fichero o archivo oculto.
Gracias
Buenas Rewolucion. Me alegra que te haya servido el tutorial.
El problema del estegoanálisis es que cada método está enfocado a un estego específico, y por ende, resulta complicado generar suites que nos cubran la mayoría de casuísticas.
En todo caso, hay algunas herramientas de estegoanálisis enfocadas al ámbito general. La idea cuando lo que te ineresa es saber si hay estego en algún fichero es aplicar varias de ellas y cubrir así el mayor porcentaje de métodos posibles. Tienes un recopilatorio de este tipo de herramientas (esteganografía y estegoanálisis) en esta pieza de HackPlayers (ES).
Hola.!
Tengo que hacer un trabajo sobre esteganografía, que me está llevando dolores de cabeza. ¿Podrías echarme una mano?
Tengo que sacar 12 archivos de una canción mp3
Gracias de antemano
un saludo
Hola Pablo, creo que mejor seria que pusieras un enlace del trabajo a realizar y un email, y cuando se pueda terminar, pues mandártelo al email puesto por tí.
Este no es mi campo pero los retos me gustan.
Saludos.
ya se dieron cuenta que en realidad no estan tan ocultas? y que estan pasando cosas verdaderamente preocupantes?
estan ocultas especificamente para personas como nosotros, realmente hay muchas respuestas ahi pero pues los tenemos como “censurados” ese tipo de contenidos a nuestros ojos, manden mail si siguen en el tema