¿Qué es la esteganografía?

La esteganografía consiste en ocultar información dentro de otro mensaje u objeto físico para evitar su detección. Puede utilizarse para encubrir cualquier tipo de contenido digital, como texto, imágenes, videos o audios, que luego se extrae en el destino. En ocasiones, el contenido oculto mediante esteganografía se cifra antes de ser incrustado en otro formato de archivo. Si no se cifra, puede procesarse para dificultar su detección.

Aunque se compara con la criptografía, la esteganografía no implica codificar los datos ni usar una clave para descodificarlos. El término "esteganografía" proviene del griego "steganos" (oculto o cubierto) y "graphein" (escritura). Ha sido practicada durante miles de años para mantener la privacidad de las comunicaciones, como en la antigua Grecia, donde se grababan mensajes en madera y se cubrían con cera, o en Roma, donde se usaban tintas invisibles. En ciberseguridad, la esteganografía es crucial, ya que se utiliza para ocultar información durante ataques, como los realizados por grupos de ransomware. Datos, herramientas maliciosas o instrucciones pueden esconderse en archivos de imagen, video, sonido o texto que parecen inofensivos.

¿Cómo funciona la esteganografía?

La esteganografía consiste en ocultar información de manera que no se levanten sospechas. Una técnica común es la de "bits menos significativos" (LSB), que incrusta información secreta en los bits menos significativos de un archivo multimedia. Por ejemplo:

Otra técnica es la sustitución de palabras o letras, donde se oculta el texto distribuyéndolo dentro de otro texto más grande y colocando las palabras a intervalos específicos. Aunque fácil de usar, este método puede hacer que el texto parezca incoherente.
Otros métodos incluyen ocultar una partición entera de un disco duro o incrustar datos en la sección de encabezado de archivos y paquetes de red. La eficacia de estos métodos depende de la cantidad de datos que pueden ocultar y lo difícil que sean de detectar.




Tipos de Esteganografía

Desde una perspectiva digital, existen cinco tipos principales de esteganografía:





Comparación entre esteganografía y criptografía

La esteganografía y la criptografía comparten el mismo objetivo: proteger un mensaje o información de terceros, pero emplean mecanismos diferentes para lograrlo. La criptografía convierte la información en texto cifrado, comprensible solo mediante una clave de descifrado. Esto implica que, si alguien intercepta el mensaje cifrado, notará fácilmente que se ha aplicado un cifrado. En contraste, la esteganografía no altera el formato de la información, sino que oculta la existencia del mensaje.

Usos de la esteganografía

En tiempos recientes, la esteganografía se utiliza principalmente en computadoras, donde los datos digitales son las operadoras y las redes los canales de propagación de alta velocidad. Entre sus usos se incluyen:

Esteganografía para realizar ataques

Desde el punto de vista de la ciberseguridad, los atacantes pueden usar la esteganografía para incrustar datos maliciosos en archivos que parecen inofensivos. Dado que la esteganografía requiere esfuerzos y características específicas para funcionar correctamente, su uso suele estar a cargo de atacantes avanzados con objetivos definidos. Algunas maneras en que se pueden realizar ataques mediante esteganografía incluyen:



Práctica ocultamiento de información usando Esteganografía.

Para esta práctica se hara uso de la herrmienta Stego

Paso 1: Se actualizan los repositorios de paquetes del sistema operativo Ubuntu para asegurar que se estén utilizando las versiones más recientes de los programas disponibles.

kevscl@kevscl-Inspiron-3505:~$
sudo apt update

Paso 2: Instalación de Python 3
Se instala la versión 3 de Python en el sistema. Python es un lenguaje de programación ampliamente utilizado y es necesario para ejecutar scripts y programas Python.

kevscl@kevscl-Inspiron-3505:~$
sudo apt install python3

Paso 3: Instalación de pip para Python 3
Pip es el sistema de gestión de paquetes de Python y se utiliza para instalar y gestionar bibliotecas y paquetes adicionales de Python. Aquí se instala pip específicamente para Python 3.

kevscl@kevscl-Inspiron-3505:~$
sudo apt install python3-pip

Paso 4: Clonar el repositorio de Steganography desde GitHub
Se clona el repositorio de Steganography desde GitHub utilizando el comando git clone. Esto descarga el código fuente del proyecto a la máquina local.

kevscl@kevscl-Inspiron-3505:~$
git clone https://github.com/ragibson/Steganography.git

kevscl@kevscl-Inspiron-3505:~$
cd Steganography
python3 setup.py install

Paso 6: Crear y activar un entorno virtual
Se crea un entorno virtual de Python utilizando el módulo venv. Un entorno virtual es un ambiente aislado donde se pueden instalar paquetes y dependencias de Python sin interferir con otros proyectos. Luego se activa este entorno virtual.

kevscl@kevscl-Inspiron-3505:~$
python3 -m venv practica
source practica/bin/activate
cd Steganography
python setup.py install

Paso 7: Navegar al directorio de Steganography
Se cambia el directorio de trabajo al directorio que contiene las herramientas de esteganografía.

kevscl@kevscl-Inspiron-3505:~$
cd Steganography/stego_lsb/

Paso 8: Mostrar ayuda para el comando wavsteg
Se muestra la información de ayuda para el comando wavsteg, que se utiliza para ocultar y recuperar datos en archivos de audio WAV.

kevscl@kevscl-Inspiron-3505:~$
stegolsb wavsteg --help

Paso 9: Crear un archivo de texto de prueba Se crea un archivo de texto llamado prueba.txt utilizando el comando cat y se escribe el texto "hola mundo desde ubuntu" en él.
Se utiliza el comando ls para mostrar todos los archivos en el directorio actual.

kevscl@kevscl-Inspiron-3505:~$
cat > prueba.txt
hola mundo desde ubuntu

Paso 10: Ocultar texto en un archivo de audio WAV
Se utiliza el comando stegolsb wavsteg para ocultar el texto del archivo prueba.txt dentro de un archivo de audio WAV llamado Kingdom.wav. El archivo de audio resultante se guarda como sound.wav

kevscl@kevscl-Inspiron-3505:~$
stegolsb wavsteg -h -i Kingdom.wav -s /home/kevscl/Escritorio/practica/Steganography/stego_lsb/prueba.txt -o /home/kevscl/Escritorio/practica/Steganography/stego_lsb/sound.wav

Paso 11: Recuperar texto oculto de un archivo de audio WAV
Se utiliza el comando stegolsb wavsteg con la opción -r para recuperar el texto oculto del archivo de audio WAV sound.wav y se guarda en un archivo de texto llamado sample.txt.

kevscl@kevscl-Inspiron-3505:~$
stegolsb wavsteg -r -i /home/kevscl/Escritorio/practica/Steganography/stego_lsb/sound.wav -o /home/kevscl/Escritorio/practica/Steganography/stego_lsb/sample.txt -n 2 -b 25

Paso 12: Mostrar el contenido del archivo de texto recuperado
Se utiliza el comando cat para mostrar el contenido del archivo de texto sample.txt que contiene el texto recuperado del archivo de audio.

kevscl@kevscl-Inspiron-3505:~$
cat sample.txt

Paso 13: Mostrar ayuda para el comando steglsb
Se muestra la información de ayuda para el comando steglsb, que se utiliza para ocultar y recuperar datos en imágenes PNG.

kevscl@kevscl-Inspiron-3505:~$
stegolsb steglsb --help

Paso 14: Comprimir un archivo de texto en formato RAR
Se utiliza el comando rar a para comprimir el archivo de texto prueba.txt en un archivo RAR llamado prueba.rar.

kevscl@kevscl-Inspiron-3505:~$
rar a prueba.rar prueba.txt

Paso 15: Ocultar el archivo RAR en una imagen PNG
Se utiliza el comando stegolsb steglsb para ocultar el archivo RAR prueba.rar dentro de una imagen PNG llamada anime.png. El resultado se guarda como output.png.

kevscl@kevscl-Inspiron-3505:~$
stegolsb steglsb -h -i /home/kevscl/Escritorio/practica/Steganography/stego_lsb/anime.png -s prueba.rar -n 2 -o /home/kevscl/Escritorio/practica/Steganography/stego_lsb/output.png

Paso 16: Comparar las propiedades de las imágenes anime.png y output.png

Paso 17: Recuperar el archivo RAR oculto de la imagen PNG
Se utiliza el comando stegolsb steglsb con la opción -r para recuperar el archivo RAR oculto del archivo PNG output.png y se guarda como un archivo ZIP llamado output.zip.

kevscl@kevscl-Inspiron-3505:~$
stegolsb steglsb -r -i /home/kevscl/Escritorio/practica/Steganography/stego_lsb/output.png -o /home/kevscl/Escritorio/practica/Steganography/stego_lsb/output.zip -n 2

Paso 18: Mostrar archivos ZIP generados
Se utiliza el comando ls con el patrón *.zip para mostrar todos los archivos ZIP en el directorio actual.

kevscl@kevscl-Inspiron-3505:~$
ls *.zip

Paso 19: Descomprimir el archivo ZIP generado y abrir el archivo de texto

Referencias