Blog sobre seguridad informática, privacidad, anonimato, hacking ético, programación y sistemas operativos en general.

miércoles, 13 de diciembre de 2017

Esteganografía: Camuflando información en archivos.


Esteganografía literalmente significa escritura encubierta, es la técnica que permite ocultar ya sea mensajes u objetos dentro de otros, los cuales son denominados portadores de tal manera que no sea posible percibir su existencia a simple vista, lo cual hace que sea casi imposible de detectar y que aunque sea interceptado y se tenga conocimiento de la información que posee no se puede saber cómo acceder a ella ni que contiene. Esto hace de la esteganografía una técnica muy valiosa tanto para los espías, como para activistas, militares, gobiernos 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.

Hagamos de cuenta que  pegamos dos hojas de papel y en medio de ellas va una cinta con un mensaje oculto y esto solo lo conoce la persona a quien va dirigido. El mensaje puede ser interceptado y robado por un intermediario, pero este (que probablemente espera un mensaje escrito en las hojas) no encontrará nada debido a que el mensaje va dentro de un portador, en este caso el papel. Además podemos añadirle una capa extra de seguridad si lo escribimos en un tipo específico de lenguaje o código. A continuación un gráfico referente a cómo funciona la esteganografía:


Técnicas de esteganografía.

 1. Esteganografía pura: No existe estego-clave, y por tanto, se presupone que el guardían (quien intercepta el paquete) es incapaz de reconocer una información oculta mediante estego de un mensaje normal. Se aplica entonces seguridad basada en la oscuridad, es decir, se oculta un mensaje o información X en un portador Y de tal modo que el guardían no pueda reconocer que existe información oculta dentro.

2. 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.

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, 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 y el BadUSB, que básicamente siguen 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).

A continuación les dejamos un vídeo hecho por Security Hack Labs:



Esperamos que este post haya sido de su utilidad, cualquier duda o sugerencia pueden dejarla en los comentarios.

Síguenos en Facebook, Twitter, unete a nuestra charla en Riot, únete a IRC o únete a Telegram.

0 comentarios:

Publicar un comentario