
Aprovechando mi última subida al valle de Aragón para disfrutar de las últimas nevadas, me he propuesto contaros acerca de SNOW (también conocido como stegsnow), una herramienta que explota la «naturaleza esteganográfica de los espacios en blanco».
Si no recuerdas que es la esteganografía, se trata de la técnica criptográfica que consiste en ocultar mensajes en archivos digitales. En este contexto, SNOW —siglas de Steganographic Nature Of Whitespace— es un programa desarrollado por Matthew Kwan en 1996 utilizado para ocultar mensajes en texto ASCII o para extraer dichos mensajes.
SNOW se aprovecha de que los espacios y las tabulaciones al final de las líneas son invisibles para la mayoría de los visores de texto. Esto permite ocultar mensajes sin modificar la apariencia del archivo y, por tanto, pasar desapercibidos durante una lectura normal.

Cabe destacar que SNOW aplica una compresión Huffman básica para reducir el tamaño del mensaje porque el canal de ocultación ofrece muy poco espacio. Para mas dudas consultar la página web de como funciona internamente SNOW.
En caso de querer proteger el contenido secreto con contraseña, el programa hace uso del cifrado ICE —desarrollado por el propio Kwan—, ofreciendo una capa de confidencialidad extra.
Una vez compilado, el uso de SNOW se basa en combinar unos pocos parámetros. A continuación os dejo algunos ejemplos:
# 1) Ocultar una cadena `-m` comprimida `-C` y protegida `-p`
snow -C -m "Mensaje secreto muy importante" -p "contraseñaFuerte" infile.txt outfile.txt
# 2) Extraer ese mismo mensaje comprimido y cifrado, también en modo silencioso
snow -C -Q -p "contraseñaFuerte" outfile.txt
# 3) Estimar la capacidad de almacenamiento del archivo, teniendo en cuenta líneas de hasta 72 caracteres
snow -S -l 72 infile.txt
# 4) Ocultar el contenido completo de un archivo dentro de otro `-f`, con compresión y cifrado por contraseña
snow -C -f mensaje.txt -p "otraClave123" infile.txt outfile.txt
Cómo detectar textos codificados con Stegsnow y usos
La forma más sencilla de detectar archivos ocultos con SNOW es conseguir ver el patrón de tabulaciones. En nuestra opinión, la forma más sencilla de hacerlo es a través de comandos como cat -A en linux o cat -vet en macOS. Recuerda que en windows deberás descargar bash ya que no viene por defecto.

No obstante, no os recomiendo confiar vuestra privacidad a esta herramienta si no es acompañada de otras herramientas de criptografia/esteganografía.
Actualmente existen numerosos programas para hacer ataques de diccionario o de fuerza bruta a ficheros cifrado con ICE, que pese a no estar roto, se considera hoy criptográficamente obsoleto debido a la combinación de una clave relativamente corta y un tamaño de bloque de solo 64 bits.
Sí que os la recomiendo para establecer marcas de agua, ya que, salvo que un cracker conozca la herramienta y se tome el tiempo para analizarla, en un principio solo tú podrás comprobar la autenticidad de un archivo cuya autoría conoces. Es una forma interesante de comprobar quien puede estar robándote contenido, ya que aunque desaparezcan los metadatos, el mensaje oculto seguirá allí.
Instalación e instrucciones disponibles
SNOW puede instalarse de varias formas, aunque la opción más sencilla es descargar el código fuente y compilar el programa. El único problema que he tenido con el código es que una vez descomprimido el código, al intentar compilarlo con make, me daba el error «implicit declaration of function ‘strcmp». Para solucionarlo, me bastó con incluir la cabecera «string.h» en «main.c».

Como curiosidad, todo el ecosistema creado por Kwan gira en torno a la nieve y el hielo: el programa se llama SNOW, el cifrado que utiliza se llama ICE y hasta su logotipo juega con la misma temática.
A simple vista solo se ve la palabra SNOW sobre un fondo blanco, pero en realidad esconde la silueta de un oso polar «en medio de una tormenta de nieve» en palabras de Kwan, indistinguible para el ojo humano sin la configuración de blancos precisa.

Con lo visto en este artículo, os animo a hacer el reto CTF «snowfile«.
Sobre Matthew Kwan
Matthew Kwan, creador de SNOW (Darkside Technologies), es graduado en Informática por la Universidad de Melbourne y comenzó su formación en criptografía en 1991 en el Centre for Computer Security Research de la Australian Defence Force Academy, donde trabajó como codebreaker y participó en el criptoanálisis y rediseño del cifrado LOKI.

Ha sido hedge fund quant, cofundador de MessageMedia y senior software engineer en Google. También es MBA por Melbourne Business School y doctorado en Geospatial Science por la RMIT University.
Síguenos en araintel.com























