¿Qué es un ataque de oráculo u oracle attack?

Autor: | Última modificación: 2 de agosto de 2022 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes qué es un ataque de oráculo y qué alcance tiene a la hora de desencriptar un archivo sin tener su calve? La criptografía es una rama de las matemáticas que se utiliza en ciberseguridad para proteger información confidencial, como mensajes privados, contraseñas, transferencias bancarias, etc. No obstante, de acuerdo con el ranking de OWASP Top 10 (que determina cuáles son los ciberataques más comunes en la web), los ataques a fallos criptográficos son unos de los más utilizados por hackers de sombrero negro en la red.

En este post, hablaremos sobre un tipo de ataque criptográfico que puede llevar a descifrar por completo ciertos mensajes encriptados con modos de operación ECB y CBC. A continuación, te explicaremos qué es un ataque de oráculo, los diferentes tipos que existen y cómo prevenirlos en un sistema.

¿Qué es un ataque de oráculo?

Un ataque de oráculo permite descifrar un mensaje encriptado sin necesidad de su clave. De hecho, este tipo de ataques se caracterizan por aprovechar vulnerabilidades muy simples para conseguir efectos muy contundentes, como el descifrado total. Un ataque de oráculo consiste en descifrar el contenido encriptado de un mensaje a partir de una respuesta de go/no go por parte del sistema.

Los modos de operación de cifrado por bloques ECB y CBC pueden contar con vulnerabilidades que permiten descifrar datos por medio de ataques de oráculo. Un ejemplo de ellos, que es muy común en criptografía, es el ataque de oráculo de relleno a CBC, más conocido como padding oracle attack.

Ejemplos de ataques de oráculo

En criptografía, es importante saber qué es un ataque de oráculo, ya que es fácil de evitar cuando se conoce, pero muy peligroso cuando no. A continuación, te explicaremos algunos ejemplos comunes de este tipo de ciberataque.

Padding Oracle Attack

Un padding oracle attack se basa en la simple información que proporciona un sistema cuando devuelve un error en el padding del mensaje encriptado. Funciona especialmente para el modo de encriptación CBC y conduce al conocimiento total del contenido oculto.

Supón que obtienes o capturas un paquete de datos cifrados con el modo CBC y que puedes hacerle peticiones a un servidor web con ellos. Ahora, imagina también que dicho servidor te devuelve un mensaje de error si encuentra que el padding del texto cifrado no es correcto.

🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴

Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Ciberseguridad por una semana

Dicho mensaje no parece representar ninguna vulnerabilidad para el sistema, pero, en realidad, si se usa adecuadamente, permite encontrar el texto plano original en su totalidad. Cuando un sistema que funciona con el modo de cifrado CBC emite este mensaje de error sobre el padding, un hacker lo puede usar en un ataque de fuerza bruta para encontrar el último byte de texto plano, por medio de un ataque de bit-flipping y siguiendo las propiedades de una operación XOR.

A partir de ese punto, se puede automatizar el proceso para repetirlo uno por uno con cada byte y, finalmente, obtener el texto plano del mensaje. En este caso, el atacante no habría necesitado la clave. Solamente el texto cifrado sin su clave y una vulnerabilidad muy simple: el mensaje de error de padding.

BREACH

Otro ejemplo de qué es un ataque de oráculo se conoce como BREACH (Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext) y va dirigido al protocolo de seguridad HTTPS.

BREACH es un fallo criptográfico que se usa en contra del protocolo HTTPS, cuando se utiliza el método de compresión HTTP. Este ataque de oráculo se publicó en el año 2013 durante la conferencia Back Hat y fue presentado por Angelo Prado, Neal Harris y Yoel Gluck; aunque existe el consenso de que la idea se había discutido en años anteriores dentro de la comunidad.

El ciberataque BREACH se basa en el uso de un exploit conocido como CRIME, que utiliza una vulnerabilidad de HTTPS para filtrar datos sobre cookies privadas de un usuario y, así, poder secuestrar y suplantar su sesión en una aplicación web. CRIME se considera un exploit, ya que permite desarrollar los ataques después del secuestro de la sesión.

Ahora bien, el ataque BREACH logra utilizar dicho exploit para descifrar total o parcialmente el contenido de un paquete de datos cifrados con HTTPS.

¿Cómo evitar ataques de oráculo?

Ahora sabes qué es un ataque de oráculo y conoces algunos ejemplos, por lo que hablaremos sobre los métodos para prevenirlos.

La mitigación de ataques con el exploit CRIME a HTTPS continúa en desarrollo. No obstante, protegerse de ataques de oráculo a CBC y ECB es mucho más fácil.

La principal mitigación de ataques de oráculo a ECB y CBC es utilizar un modo de operación de cifrado por bloques diferente, como el GCM, que combina el método de counter con un protocolo de código de autenticación de mensaje (HMAC). Otra opción para evitar un padding oracle attack es limitar al máximo los mensajes de error que reciben usuarios sin privilegios de administrador.

¿Cómo aprender más?

Ya sabes qué es un ataque de oráculo u oracle attack en criptografía. Si quieres aprender más y convertirte en un experto en ciberseguridad, aquí tenemos el curso perfecto para ti. Entra en nuestro Ciberseguridad Full Stack Bootcamp y especialízate en hacking ético en menos de 7 meses. ¿A qué esperas? ¡Inscríbete ya!

¡CONVOCATORIA ABIERTA!

Ciberseguridad

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado