05 enero 2011

Ataques visuales: Detectando patrones en el caos

Hace unos años la NSA (National Security Agency) ofertaba puestos de trabajo con un eslogan muy curioso: "te divierte buscar patrones en el caos, este es tu sitio". Si el cerebro humano es bueno en algo es precisamente en eso, en detectar patrones.

Por suerte no hace falta ser el indomable Will Hunting para ver más allá de lo evidente. Los ataques visuales son fáciles de utilizar e históricamente han mostrado gran utilidad.

Un ataque visual se podría definir como aquel procedimiento que mediante el uso de representaciones visuales o procedimientos sencillos de filtrado permite observar "patrones de conducta" con alguna utilidad práctica. En os últimos años se han mostrado efectivos en criptoanálisis (cifrado en bloque, rotura de PRNGs), estegoanálisis, session hijacking (Michal Zalewski ya se entrenía con esto hace mucho tiempo), "comportamiento" del tráfico en una red, etc.

Veamos dos ejemplos de su uso, en criptoanálisis y estegoanálisis:
  1. Su aplicación en criptoanálisis es evidente. Un ejemplo muy simpático consiste en atacar a cifrados en modo bloque ECB, es decir, bloques de información cifrados de manera individual (uno a uno). En Wikipedia se puede ver el clásico ejemplo que permite observar la "imagen en claro" del contenido cifrado. Además de otros ataques, estas técnicas visuales demostraron que el modo ECB no se debe utilizar.
  2. En estegoanálisis los ataques visuales son igualmente divertidos. Desde que en 1999 Andreas Westfeld y Andreas Pfitzmann publicaran el paper "Attacks on Steganographic Systems. Breaking the Steganographic Utilities EzStego, Jsteg, Steganos, and S-Tools—and Some Lessons Learned" mucho se ha avanzado en esta dirección. Estos ataques permiten "destacar" la información ocultada, por ejemplo, en una imagen digital. Principalmente se han utilizado para atacar técnicas de ocultación basadas en la modificación LSB-secuencial, aunque también pueden ser utilizadas para detectar en determinadas situaciones información ocultada mediante la modificación del LSB de píxeles de manera pseudoaleatoria. Su funcionamiento es mejor si las cubiertas elegidas (las imágenes modificadas) presentan áreas de colores uniformes o saturadas. Este ataque se puede probar, por ejemplo, con la herramienta StegSecret (en su manual hay un ejemplo visual). En el caso de esta herramienta se fuerza contrastes bruscos en función de si el bit menos significativo de cada octeto es un 1 o un 0. Si el LSB de un octeto de la codificación de un píxel es 1 el octeto entero se codificará con el valor 255 si es 0 el octeto tendrá una codificación de 0. Buscando contrastes bruscos se observan anomalías de píxeles que "no se comportan como sus vecinos". Estos simples ataques demostraron que es falso: a) la modificación de los bits menos significativos de la codificación de los píxeles de una imagen no introduce un "ruido visual", en general, suficiente para levantar sospechas a una persona que vea una imagen que contiene información oculta y b) la información almacenada "naturalmente" en los LSB es aleatoria, con lo que su modificación para introducir información oculta no proporcionaría pistas adicionales a un analista.
Independientemente de su uso en la seguridad en redes, el análisis de datos de manera visual (visual data analysis) puede ser un buen complemento para procesar de manera "inteligente" enormes cantidad de datos, datos "aleatorios o caóticos". Un paper para adentrarse en este mundo es "Challenges in Visual Data Analysis" de Daniel A. Keim et al. de la Universidad de Konstanz (Alemania).

Un viejo dicho "underground" a finales de los 90 decía:
Si la oscuridad ciega tu vista, que la paranoia sea tu guía.
Asique, si tienes un conjunto de datos, no sabes que significan, como se relacionan, que impacto puede tener su procesamiento en los sistemas de información o si esos datos son "seguros" muéstralos en una gráfica, construye una imagen con ellos y aplica filtrado, busca luz en la oscuridad... quién sabe si eres bueno lo mismo te contrata la NSA :)

Contribución por Alfonso Muñoz

3 comments :

ramandi dijo...

Me gusta la entrada, aunque tratándose de ataques visuales echo de menos alguna imagen en el propio post. Eso sí, las de las referencias son muy buenas.

Saludos!

hecky dijo...

Muy bueno Alfonso, me parece leia en una ocasion y si no tu me desmentiras, que una tecnica esteganografica que se recomienda para evitar los patrones y ataques visuales es la esteganografia en fractales.

Un placer leerte, ojala tuvieras un blog para seguir ahi cada paso que das en la esteganografia.

Saludos ;)

Anónimo dijo...

@hecky
Habiendo blogs interesantes como este quién quiere escribir el suyo propio :)

Existe muchas maneras de minimizar los efectos de los ataques visuales. Un ejemplo clásico es la utilización de imágenes en alta resolución, por ejemplo "tomadas" con una cámara fotográfica, haciendo esto a la vez puedes tener una foto única para cada transmisión :). Adicionalmente habrá que tener cuidado que no se introduzcan otras series de patrones (metadatos, ruido de sensonres CCD, etc)...

Alfonso