Los ataques de canal lateral representan una amenaza significativa para la seguridad de los sistemas informáticos, explotando información capturada de la implementación de un sistema en lugar de las debilidades en el algoritmo en sí. Las vulnerabilidades CRIME y BREACH son ejemplos destacados de este tipo de ataque, específicamente dirigidos a mecanismos de compresión de datos para inferir información confidencial.
Compresión de Datos y Ataques de Canal Lateral
La compresión de datos es una técnica fundamental para optimizar el rendimiento de la red y el almacenamiento. En el segundo enfoque de compresión, si una cadena de caracteres se repite en algún lugar del texto, solo se almacena la primera vez junto con punteros que señalan dónde se encuentra nuevamente la misma secuencia. Esto significa que si una frase aparece varias veces en un texto, la compresión funciona de manera muy eficiente, resultando en un tamaño comprimido menor y una compresión más rápida.
Un ataque de canal lateral explota esta característica. Considere un sitio web que utiliza cookies comprimidas y cifradas, donde algunos valores son secretos y otros pueden ser establecidos por el usuario. Si un atacante puede insertar datos controlados junto con datos secretos, la eficiencia de la compresión puede revelar si sus datos "coinciden" con una parte del secreto.

En este contexto, la solicitud acepta compresión GZIP y DEFLATE en el atributo "Accept-Encoding" de la cabecera. Si, por ejemplo, una frase secreta como "tops3cr3t" aparece dos veces, la variable "Cookie" del encabezado se comprime de manera muy rápida y eficiente.
Ahora imagine que un atacante quiere obtener un token CSRF de un sitio web servido a través de HTTPS. El cibercriminal puede realizar solicitudes al sitio web, por ejemplo, inyectando etiquetas HTML o Javascript en otros sitios web. Aunque el usuario malicioso no puede leer el resultado porque está cifrado, sí puede leer el tamaño de la respuesta. Si la página web también refleja parte de su entrada, puede atacar el sitio web mediante un ataque de canal lateral de compresión.

El atacante puede obtener un token CSRF realizando muchas solicitudes y observando el tamaño de la respuesta. Al igual que con el ejemplo de la cookie, solo le restaría realizar solicitudes tales como "csrftoken=a", "csrftoken=b", etc., observando el tamaño de la respuesta. Se obtendrá una compresión cada vez menor a medida que se adivina con éxito la frase secreta, y el tamaño disminuye en un byte si se adivinó un carácter correctamente. En la mayoría de los casos, incluso se puede adivinar un carácter a la vez.
El Ataque CRIME (Compression Ratio Info-leak Made Easy)
En la Ekoparty 2012, Thai Duong y Juliano Rizzo anunciaron el ataque CRIME, un ataque de canal lateral de compresión contra HTTPS. La demostración particular mostró cómo un atacante podría ejecutar este ataque para recuperar los encabezados de una solicitud HTTP. Dado que los encabezados HTTP contienen cookies y las cookies son el vehículo principal para la autenticación de aplicaciones web después del inicio de sesión, esto representa un ataque significativo.
El ataque CRIME (Compression Ratio Info-leak Made Easy) explota una vulnerabilidad en los protocolos SSL/TLS y SPDY cuando la compresión de datos está habilitada. Los atacantes pueden aprovechar este canal lateral de compresión para extraer información sensible, como cookies de sesión o tokens de autenticación, al observar el tamaño de los datos cifrados comprimidos.
Mecanismo y Objetivos
Este ataque se dirige a las versiones 3 y anteriores del protocolo SPDY, utilizado en navegadores como Mozilla Firefox y Google Chrome. Explota el cifrado TLS de datos comprimidos sin ocultar adecuadamente la longitud de los datos no cifrados. Al observar las diferencias de longitud, los atacantes pueden inferir los encabezados HTTP en texto claro, lo que potencialmente conduce al secuestro de sesión.
Mitigación del Ataque CRIME
El ataque CRIME se mitigó por completo al inhabilitar la compresión TLS/SPDY y al modificar Gzip para permitir la separación explícita de contextos de compresión en SPDY. Para mitigar los ataques CRIME en SPDY, se recomienda deshabilitar la compresión de SPDY o cambiar a un perfil HTTP/2.0. Es crucial deshabilitar la compresión TLS en el servidor para prevenir los ataques CRIME. Después de realizar los cambios, se debe verificar que la compresión está deshabilitada probando el handshake TLS con herramientas como nmap o sslyze.
El Ataque BREACH (Browser Reconnaissance & Exfiltration via Adaptive Compression of Hypertext)
Los ataques BREACH, descubiertos en 2013, son ataques similares al ataque CRIME. Ambos son ataques de canal lateral de compresión; sin embargo, CRIME apunta a la información comprimida en las solicitudes HTTP a través de la compresión TLS, mientras que BREACH apunta a la información comprimida en las respuestas HTTP a través de la compresión HTTP. Esto permite esencialmente el mismo ataque demostrado por Duong y Rizzo, pero sin depender de la compresión de nivel TLS.
Mecanismo y Objetivos
A pesar de que el ataque BREACH no tiene como objetivo directo la seguridad SSL, pone en peligro el objetivo de privacidad de SSL al reducir HTTPS al cifrado de los encabezados de página, dejando otros contenidos susceptibles al descubrimiento. Mediante una combinación de ataques de fuerza bruta y técnicas de tipo "divide y vencerás", los piratas informáticos pueden utilizar los ataques BREACH para extraer credenciales de inicio de sesión, direcciones de correo electrónico y otros datos confidenciales de identificación personal (PII) de sitios web con SSL habilitado.
BREACH es una categoría de vulnerabilidades y no una instancia específica que afecta a un software concreto. Aunque no es estrictamente un requisito, el ataque se ve favorecido en gran medida por respuestas que siguen siendo en su mayoría las mismas. Esto se debe a que la diferencia en el tamaño de las respuestas medidas por el atacante puede ser bastante pequeña:
- Contra un cifrado de flujo, el ataque es más simple; la diferencia de tamaños entre los cuerpos de respuesta es mucho más granular en este caso.
- El número específico de solicitudes necesarias dependerá del tamaño del secreto.
Estrategias de Mitigación y Prevención
Para protegerse contra ataques como CRIME y BREACH, además de las mitigaciones específicas mencionadas, es fundamental implementar el cifrado TLS con Perfect Forward Secrecy (PFS) para prevenir la descifrado de comunicaciones pasadas. Asimismo, se debe mantener los navegadores y el software del servidor actualizados regularmente para parchear vulnerabilidades conocidas.
Referencias y Vulnerabilidades Relacionadas
CVEs (Common Vulnerabilities and Exposures)
- CRIME (SSL/TLS) attack - CVE-2012-4929
- CRIME (SPDY) attack - CVE-2012-4930
- BREACH attack - CVE-2013-3587
- The POODLE attack - CVE-2014-3566 (vulnerabilidad relacionada)
CWE (Common Weakness Enumeration)
CAPEC (Common Attack Pattern Enumeration and Classification)
- CAPEC-310: Side-Channel Attack
OWASP Top 10 (2021)
- OWASP 2021-A2: Fallos criptográficos
- OWASP 2021-A5: Fallos de seguridad de configuración
- OWASP 2021-A6: Componentes vulnerables y obsoletos
tags: #vulnerabilidad #crime #spdy