Por Edward Pavel López Cárdenas Twitter

Sergio Ruiz
Sergio Ruiz

Por Edward Pavel López Cárdenas Twitter

El objetivo del trabajo es abordar la esteganografía por medio de ejercicios prácticos que muestran el proceso de la esteganografía; como el estudio y aplicación de técnicas para camuflar mensajes dentro de archivos contenedores.

El trabajo tiene una visión práctica, enfocada al análisis de herramientas informáticas para aplicar técnicas criptográficas y esteganográficas para camuflar mensajes dentro de los archivos contenedores diversos. Como contra parte, se investiga una herramienta de estegoanálisis, para identificar mensajes camuflados en archivos contenedores. Finalmente se identifica las actividades a realizar en el estegoanálisis.

Criptografía: Estudio de técnicas de esteganografía y estegoanálisis en la informática

Aplicaremos la técnica esteganográfica del bit menos significativo, que consiste en ocultar bits del mensaje entre bits del archivo contenedor. En este proceso, los bytes del archivo contenedor modificados suelen ser aquellos que causen el menor ruido posible a la hora de que el archivo contenedor sea consumido [1]. Para esto usaremos el lenguaje Python, ya que nos permitirá conocer con facilidad los algoritmos implementados en sus librerías.
Se seleccionó la librería cryptosteganography, así en la documentación de la librería se indica que permite guardar mensajes o archivos encriptados con el algoritmo AES 256 dentro de una imagen [2]. Sobre la funcionalidad de la librería se identificó que:

1- Para iniciar la aplicación de la técnica esteganográfica se requiere inicializar la clase CryptoSteganography con una clave.

2- Luego, llama al método hide que requiere la ruta de la imagen contenedora, el nombre de la imagen de salida y el mensaje en bytes o cadena a cifrar. En el método hide ejecuta las siguientes actividades:

  • Crea un cifrador, usando el algoritmo AES (Modo CBC y vector de inicialización aleatorio de 16 bytes) para esto usa la librería Cryptodome. Al cifrar concatena el vector de inicialización y el mensaje.
  • Luego de obtener el criptograma, se camufla en la imagen, con el método lsb.hide de la librería Stegano.
  • Con el método save de la librería de Python, guarda la imagen contenedora en la ruta indicada.
Proceso para camuflar mensajes en un archivo contenedor

Figura 1. Proceso para camuflar mensajes en un archivo contenedor. Fuente: Elaboración propia.

3- Para obtener y leer los mensajes cifrados, la librería facilita el método retrieve. Se describe la función implementada en el método:

  • Para la ejecución requiere tener inicializada la clase CryptoSteganography, con una clave. La clave solo es requerida para la generar el cifrador.
  • Inicia usando el método lsb.reveal de la librería Stegano para extraer el criptograma de la imagen.
  • Crea el cifrador, usando la librería Cryptodome, con el vector de inicialización que se extrae de los primeros 16 bytes del criptograma y la clave proporcionada al iniciar la clase CryptoSteganography.
Proceso para obtener el mensaje o archivo de un archivo contenedor

Figura 2. Proceso para obtener el mensaje o archivo de un archivo contenedor. Fuente: Elaboración propia.

Conociendo el funcionamiento de la librería CryptoSteganography, se implementó la clase MiSteganoLib (https://github.com/thunsupay/miSteganoLib) que sirve de apoyo para automatizar las pruebas. Para eso se implementaron dos métodos:

  1. El método hideFileorMessage para camuflar un mensaje en una imagen, requiere indicar verdadero o falso para saber si es archivo e indicar la ruta de la imagen o un mensaje en cadena.
  2. El método getFileorMessageFormImageContainer permite obtener el mensaje camuflado y se encarga de identificar el tipo de mensaje. En el caso de archivos le asigna un nombre aleatorio con la extensión posible del archivo (para esto nos apoyamos de la librería filetype) y si es un mensaje cadena lo imprime en consola.

En la ejecución de múltiples pruebas se identifica que para esconder mensajes o archivos se requiere una imagen y el mensaje a esconder debe pesar menos que la imagen contenedora. Se pudo camuflar mensajes en formato cadena y a varios tipos de archivos, entre ellos: mp3, ogg, mp4, pdf, docx, pptx. Se cambio el modo CBC del algoritmo AES para generar el cifrador y se logró ejecutar el camuflado y la obtención del mensaje original.

Se revisaron aplicativos listos para instalar y usar como StegoStick, OurSecret, QuickStego, Camouflage y Steghide. En general ocultan desde mensajes o cualquier tipo de archivo en contenedores diversos. Los archivos contenedores generalmente son de tipo imagen, audio o video. En la generación de criptogramas se aplica una diversa gama de algoritmos entre ellos: Tiple DES, MD5, AES y otros.

Como contraparte tenemos el estegoanálisis que permite identificar y procesar archivos modificados con el objetivo de obtener mensajes ocultos. Revisando herramientas y la forma de la aplicación del estegoanálisis, se puede ver que no hay una herramienta libre o de pago que cubra todos los escenarios de pruebas y que tenga un entorno visual amigable para aplicar el estegoanálisis. Por lo tanto, un analista debe conocer un conjunto de herramientas que le permitan aplicar diversas técnicas esteganográficas y criptográficas para conocer mensajes ocultos en archivos contenedores [3]. Además, se pudo identificar un procedimiento para la aplicación del estegoanálisis:

  1. El punto de partida es la revisión inicial de metadata y firmas digitales. Un archivo contenedor de data oculta en el proceso de ocultamiento del mensaje puede haber modificado metadata o firmas digitales del archivo contenedor inicial.
  2. Verificación de los hashes del archivo inicial y el archivo contenedor. En caso existir diferencia se puede indicar que el archivo contenedor tiene modificaciones.
  3. Identificación del ruido en un archivo contenedor. El ruido se puede interpretar como una perturbación no relacionada al archivo. En este caso tenemos los siguientes análisis:
    1. Para el caso de imágenes, se busca identificar alteraciones aplicando modificaciones en los colores básicos.
    2. Para el caso de audios, se busca analizar los espectrogramas de un audio con el objetivo de identificar ondas que no tengan relación o que alteren las frecuencias normales del audio.
  4. Identificación de mensajes ocultos a través de diversas herramientas que fuercen la identificación de contenido oculto en archivos contenedores, el costo en tiempo y capacidad de cómputo.
  5. Finalmente, en caso el mensaje oculto sea un criptograma, se requerirá aplicar herramientas y metodologías de criptoanálisis.
    Para cada etapa del estegoanálisis se requieren diversas herramientas. Algunas de las herramientas son: ExifTool, Binwalk, Steghide, zsteg, stegsolve, jstego y Sonic Visualiser [4].

El estegoanálisis es la contraparte de la estegonografía ya que permite identificar archivos que sean contenedores de información maliciosa. Con la estegonografía podrían burlarse los mecanismos de detección de código malicioso el cual puede ser ejecutado al leer un archivo contenedor o por otro componente de software malicioso que esté esperando instrucciones de los archivos contenedores [5].

Conclusiones

La experiencia práctica requirió de una investigación de conceptos previa, para ello consultaron distintos trabajos de investigación y videos que expliquen de forma práctica su aplicación. De ello podemos concluir:

  1. La esteganografía y su función de camuflaje de mensajes es un arma de doble filo, ya que puede servir para ocultar mensajes muy importantes y para que ciberdelincuentes puedan burlar sistemas de seguridad y usar archivos contenedores para esconder código malicioso que pueda ser ejecutado en los equipos víctima.
  2. Actualmente, las técnicas esteganográficas son muy fáciles de aplicar. Este escenario permite comprender la relevancia del estegoanálisis que implementa metodologías y algoritmos para identificar archivos contenedores y obtener los mensajes camuflados en ellos.

¿Quieres obtener el mismo conocimiento que Edward?

APRENDE MÁS CON EL MÁSTER EN CIBERSEGURIDAD

IV.Bibliografía

[1] Y.-K. Lee, G. Bell, S.-Y. Huang, R.-Z. Wang, and S. Shyu, An Advanced Least-Significant-Bit Embedding Scheme for Steganographic Encoding. 2009.
[2] V. Busquet, “Cryptosteganography,” Project description, 2020. https://pypi.org/project/cryptosteganography/.
[3] V. A. Rajgure and V. T. Gaikwad, “Steganography and Steganalysis : Different Approaches,” Int. J. Electron. Signals Syst., pp. 165–170, 2012, doi: 10.47893/ijess.2012.1032.
[4] J. Hammond, “Steganography BsidesCT CTF 2018.” 2018, [Online]. Available: https://www.youtube.com/watch?v=pJYyyz6HPbQ.
[5] H. Wang and S. Wang, “Cyber warfare: steganography vs. steganalysis.,” no. January, 2004.

Comparte este post