Iconos SCW
héroe bg sin separador
Blog

Los codificadores conquistan la seguridad: serie Share & Learn - Padding Oracle

Publicado el 24 de enero de 2019
Última actualización el 6 de marzo de 2026

Si bien Padding Oracle suena como un nombre muy malo para una banda de rock alternativo, en realidad es una vulnerabilidad que los atacantes pueden utilizar para descifrar información sin conocer la clave de cifrado.

En términos de dificultad general para un atacante, esta dificultad está cerca de la cima de la escala. No estamos hablando de un botón mágico de descifrado, sino de un laborioso proceso mediante el cual los piratas informáticos pueden examinar los mensajes de error que se les envían en relación con el relleno de celdas y usarlo para determinar dónde terminan los datos cifrados y dónde comienza el relleno. De este modo, pueden descifrar los distintos bits del cifrado y, si disponen del tiempo y los datos necesarios para examinarlos, es posible que puedan descifrarlos.

Afortunadamente, hay varios pasos relativamente sencillos que pueden eliminar la capacidad de un atacante de utilizar el oráculo de relleno para descifrar datos cifrados. En este episodio, aprenderemos lo siguiente:

  • Cómo funciona
  • Por qué esta vulnerabilidad es tan peligrosa
  • Cómo puede establecer defensas para evitarlo.

¿Cómo funciona Padding Oracle?

El encadenamiento de bloques de cifrado (CBC) es una forma de crear un cifrado de bloques en el que una secuencia completa de bits de información, como las celdas almacenadas en una base de datos, se cifra mediante una clave de cifrado que se aplica a toda la cadena de información. Cuando se utiliza el CBC, el cifrado de un solo bloque de texto cifrado dependerá de todos los bloques anteriores. En teoría, esto hace que el cifrado sea extremadamente fuerte, ya que cualquier cosa, incluso la reordenación de los bloques, corromperá los datos.

El problema con los cifrados CBC (y con cualquier cifrado por bloques, de hecho) es que solo se pueden cifrar con bloques de tamaños exactos. Normalmente, esto se hace en tamaños de 8 o 16 bytes. Entonces, ¿qué ocurre cuando CBC necesita colocar 2 bytes de datos en una unidad de texto cifrado de 16 bytes? Utilizará relleno, básicamente caracteres sin sentido, para rellenar los huecos y hacer que la unidad tenga el tamaño adecuado.

La mayoría de los esquemas de relleno son bien conocidos, siendo el PKCS #7 uno de los más populares, por lo que los atacantes pueden saber qué tipo de relleno se está utilizando. Por ejemplo, si el CBC necesita rellenar cinco caracteres en un bloque, el PKCS #7 utilizará el valor de byte 0x05 repetido cinco veces después del texto sin formato.

Los atacantes utilizan sus conocimientos sobre el CBC y los esquemas de relleno para enviar consultas a un servidor host, también denominado oráculo. Si tienen acceso a las herramientas adecuadas, es posible que puedan obligar al servidor a que les diga si el relleno de su consulta es incorrecto. Para lograrlo, pueden pasar de cero a 255 por cada byte del cifrado hasta que el servidor les diga que el relleno es correcto. Luego, pasan a la siguiente unidad y repiten el proceso, registrando dónde comienza el relleno en cada caso.

Esto no les permite descifrar el mensaje ni siquiera la celda, pero podría permitirles mapear cada eslabón de la cadena en términos de dónde termina el texto plano y comienza el relleno. También pueden utilizar cálculos XOR para calcular el valor del último byte del texto sin formato original.

¿Por qué es tan peligroso Padding Oracle?

La razón por la que un hacker se esforzaría tanto en descifrar el cifrado es por el posible beneficio. Pocas personas cifran cosas que no son valiosas. El peligro para la organización anfitriona depende de que los datos se vean comprometidos. Esto podría incluir cosas como contraseñas, cuentas de usuario, información financiera, números de tarjetas de crédito, registros de pacientes, comunicaciones confidenciales o cualquier cantidad de información valiosa y muy solicitada.

El uso de padding oracle también podría ser la puerta de entrada a ataques posteriores. Si un atacante puede usar padding oracle para robar contraseñas, por ejemplo, aumentar sus privilegios y penetrar más profundamente en la red es una tarea secundaria fácil.

Todo el mundo piensa que el cifrado es la mejor defensa contra el espionaje o el compromiso. Sin embargo, las idas y venidas entre la ciencia del cifrado y aquellos que quieren descifrarla se han mantenido durante siglos. El oráculo acolchado es solo uno de los métodos que da ventaja a los atacantes.

Hacer que los ataques de Padding Oracle tengan un aterrizaje forzoso

Afortunadamente, hay varias formas de evitar que se acumule el oráculo. Una de las mejores es utilizar un modo de cifrado más seguro para las operaciones, como el modo Galois/Counter (GCM) o el modo Offset Codebook (OCB). Se diferencia del CBC en que utiliza un tamaño de bloque de cifrado de 128 bits. También utiliza un contador para cada bloque de datos y, a continuación, utiliza ese número para crear el texto cifrado. En otras palabras, no es susceptible a los ataques de oráculo de relleno.

La implementación de buenos controles de gestión de errores también puede afectar gravemente las posibilidades de éxito de un atacante. Dado que los ataques con oráculos de relleno se basan en la filtración de información, devuelven mensajes de error genéricos en lugar de errores de relleno específicos en caso de error de cifrado o descifrado.

También puede implementar el código de autenticación de mensajes (MAC). Los valores MAC protegen la integridad de los datos y su autenticidad, ya que permiten a los verificadores detectar cualquier cambio en el contenido del mensaje mediante una clave secreta.

Por último, todos los ataques de oráculo de relleno requieren consultas repetidas. Se pueden realizar más de 200 solicitudes para averiguar el esquema de relleno en una sola celda, multiplicado por la cantidad de unidades de información que se protegen en la cadena. Al restringir el número de solicitudes que provienen de la misma fuente, puedes detener los ataques de los oráculos de relleno denegando el acceso a un atacante antes de que realmente pueda iniciar su intento.

Estudio adicional sobre Padding Oracle

Cualquier método mediante el cual un atacante pueda descifrar información confidencial puede convertirse en una verdadera pesadilla. Sin embargo, esperamos que, en primer lugar, haya aprendido algunos buenos métodos para evitar que eso suceda.

Para leer más, puede echar un vistazo al OWASP definición y lista de verificación sobre padding oracle. También puedes poner a prueba tus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

¿Crees que estás a la altura de la tarea de frustrar los ataques de los oráculos ahora mismo? Pruébelo en la plataforma Secure Code Warrior:

Ver recurso
Ver recurso

Si bien Padding Oracle suena como un nombre muy malo para una banda de rock alternativo, en realidad es una vulnerabilidad que los atacantes pueden utilizar para descifrar información sin conocer la clave de cifrado.

¿Interesado en más?

Más información

Secure Code Warrior aquí para que su organización le ayude a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Ya sea administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados con el código inseguro.

Reserve una demostración
Comparte en:
marcas de LinkedInSocialx logotipo
autor
Publicado el 24 de enero de 2019

Comparte en:
marcas de LinkedInSocialx logotipo

Si bien Padding Oracle suena como un nombre muy malo para una banda de rock alternativo, en realidad es una vulnerabilidad que los atacantes pueden utilizar para descifrar información sin conocer la clave de cifrado.

En términos de dificultad general para un atacante, esta dificultad está cerca de la cima de la escala. No estamos hablando de un botón mágico de descifrado, sino de un laborioso proceso mediante el cual los piratas informáticos pueden examinar los mensajes de error que se les envían en relación con el relleno de celdas y usarlo para determinar dónde terminan los datos cifrados y dónde comienza el relleno. De este modo, pueden descifrar los distintos bits del cifrado y, si disponen del tiempo y los datos necesarios para examinarlos, es posible que puedan descifrarlos.

Afortunadamente, hay varios pasos relativamente sencillos que pueden eliminar la capacidad de un atacante de utilizar el oráculo de relleno para descifrar datos cifrados. En este episodio, aprenderemos lo siguiente:

  • Cómo funciona
  • Por qué esta vulnerabilidad es tan peligrosa
  • Cómo puede establecer defensas para evitarlo.

¿Cómo funciona Padding Oracle?

El encadenamiento de bloques de cifrado (CBC) es una forma de crear un cifrado de bloques en el que una secuencia completa de bits de información, como las celdas almacenadas en una base de datos, se cifra mediante una clave de cifrado que se aplica a toda la cadena de información. Cuando se utiliza el CBC, el cifrado de un solo bloque de texto cifrado dependerá de todos los bloques anteriores. En teoría, esto hace que el cifrado sea extremadamente fuerte, ya que cualquier cosa, incluso la reordenación de los bloques, corromperá los datos.

El problema con los cifrados CBC (y con cualquier cifrado por bloques, de hecho) es que solo se pueden cifrar con bloques de tamaños exactos. Normalmente, esto se hace en tamaños de 8 o 16 bytes. Entonces, ¿qué ocurre cuando CBC necesita colocar 2 bytes de datos en una unidad de texto cifrado de 16 bytes? Utilizará relleno, básicamente caracteres sin sentido, para rellenar los huecos y hacer que la unidad tenga el tamaño adecuado.

La mayoría de los esquemas de relleno son bien conocidos, siendo el PKCS #7 uno de los más populares, por lo que los atacantes pueden saber qué tipo de relleno se está utilizando. Por ejemplo, si el CBC necesita rellenar cinco caracteres en un bloque, el PKCS #7 utilizará el valor de byte 0x05 repetido cinco veces después del texto sin formato.

Los atacantes utilizan sus conocimientos sobre el CBC y los esquemas de relleno para enviar consultas a un servidor host, también denominado oráculo. Si tienen acceso a las herramientas adecuadas, es posible que puedan obligar al servidor a que les diga si el relleno de su consulta es incorrecto. Para lograrlo, pueden pasar de cero a 255 por cada byte del cifrado hasta que el servidor les diga que el relleno es correcto. Luego, pasan a la siguiente unidad y repiten el proceso, registrando dónde comienza el relleno en cada caso.

Esto no les permite descifrar el mensaje ni siquiera la celda, pero podría permitirles mapear cada eslabón de la cadena en términos de dónde termina el texto plano y comienza el relleno. También pueden utilizar cálculos XOR para calcular el valor del último byte del texto sin formato original.

¿Por qué es tan peligroso Padding Oracle?

La razón por la que un hacker se esforzaría tanto en descifrar el cifrado es por el posible beneficio. Pocas personas cifran cosas que no son valiosas. El peligro para la organización anfitriona depende de que los datos se vean comprometidos. Esto podría incluir cosas como contraseñas, cuentas de usuario, información financiera, números de tarjetas de crédito, registros de pacientes, comunicaciones confidenciales o cualquier cantidad de información valiosa y muy solicitada.

El uso de padding oracle también podría ser la puerta de entrada a ataques posteriores. Si un atacante puede usar padding oracle para robar contraseñas, por ejemplo, aumentar sus privilegios y penetrar más profundamente en la red es una tarea secundaria fácil.

Todo el mundo piensa que el cifrado es la mejor defensa contra el espionaje o el compromiso. Sin embargo, las idas y venidas entre la ciencia del cifrado y aquellos que quieren descifrarla se han mantenido durante siglos. El oráculo acolchado es solo uno de los métodos que da ventaja a los atacantes.

Hacer que los ataques de Padding Oracle tengan un aterrizaje forzoso

Afortunadamente, hay varias formas de evitar que se acumule el oráculo. Una de las mejores es utilizar un modo de cifrado más seguro para las operaciones, como el modo Galois/Counter (GCM) o el modo Offset Codebook (OCB). Se diferencia del CBC en que utiliza un tamaño de bloque de cifrado de 128 bits. También utiliza un contador para cada bloque de datos y, a continuación, utiliza ese número para crear el texto cifrado. En otras palabras, no es susceptible a los ataques de oráculo de relleno.

La implementación de buenos controles de gestión de errores también puede afectar gravemente las posibilidades de éxito de un atacante. Dado que los ataques con oráculos de relleno se basan en la filtración de información, devuelven mensajes de error genéricos en lugar de errores de relleno específicos en caso de error de cifrado o descifrado.

También puede implementar el código de autenticación de mensajes (MAC). Los valores MAC protegen la integridad de los datos y su autenticidad, ya que permiten a los verificadores detectar cualquier cambio en el contenido del mensaje mediante una clave secreta.

Por último, todos los ataques de oráculo de relleno requieren consultas repetidas. Se pueden realizar más de 200 solicitudes para averiguar el esquema de relleno en una sola celda, multiplicado por la cantidad de unidades de información que se protegen en la cadena. Al restringir el número de solicitudes que provienen de la misma fuente, puedes detener los ataques de los oráculos de relleno denegando el acceso a un atacante antes de que realmente pueda iniciar su intento.

Estudio adicional sobre Padding Oracle

Cualquier método mediante el cual un atacante pueda descifrar información confidencial puede convertirse en una verdadera pesadilla. Sin embargo, esperamos que, en primer lugar, haya aprendido algunos buenos métodos para evitar que eso suceda.

Para leer más, puede echar un vistazo al OWASP definición y lista de verificación sobre padding oracle. También puedes poner a prueba tus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

¿Crees que estás a la altura de la tarea de frustrar los ataques de los oráculos ahora mismo? Pruébelo en la plataforma Secure Code Warrior:

Ver recurso
Ver recurso

Rellene el siguiente formulario para descargar el informe.

Nos gustaría recibir su permiso para enviarle información sobre nuestros productos o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, habilite las cookies de «análisis». No dudes en volver a desactivarlas una vez que hayas terminado.

Si bien Padding Oracle suena como un nombre muy malo para una banda de rock alternativo, en realidad es una vulnerabilidad que los atacantes pueden utilizar para descifrar información sin conocer la clave de cifrado.

En términos de dificultad general para un atacante, esta dificultad está cerca de la cima de la escala. No estamos hablando de un botón mágico de descifrado, sino de un laborioso proceso mediante el cual los piratas informáticos pueden examinar los mensajes de error que se les envían en relación con el relleno de celdas y usarlo para determinar dónde terminan los datos cifrados y dónde comienza el relleno. De este modo, pueden descifrar los distintos bits del cifrado y, si disponen del tiempo y los datos necesarios para examinarlos, es posible que puedan descifrarlos.

Afortunadamente, hay varios pasos relativamente sencillos que pueden eliminar la capacidad de un atacante de utilizar el oráculo de relleno para descifrar datos cifrados. En este episodio, aprenderemos lo siguiente:

  • Cómo funciona
  • Por qué esta vulnerabilidad es tan peligrosa
  • Cómo puede establecer defensas para evitarlo.

¿Cómo funciona Padding Oracle?

El encadenamiento de bloques de cifrado (CBC) es una forma de crear un cifrado de bloques en el que una secuencia completa de bits de información, como las celdas almacenadas en una base de datos, se cifra mediante una clave de cifrado que se aplica a toda la cadena de información. Cuando se utiliza el CBC, el cifrado de un solo bloque de texto cifrado dependerá de todos los bloques anteriores. En teoría, esto hace que el cifrado sea extremadamente fuerte, ya que cualquier cosa, incluso la reordenación de los bloques, corromperá los datos.

El problema con los cifrados CBC (y con cualquier cifrado por bloques, de hecho) es que solo se pueden cifrar con bloques de tamaños exactos. Normalmente, esto se hace en tamaños de 8 o 16 bytes. Entonces, ¿qué ocurre cuando CBC necesita colocar 2 bytes de datos en una unidad de texto cifrado de 16 bytes? Utilizará relleno, básicamente caracteres sin sentido, para rellenar los huecos y hacer que la unidad tenga el tamaño adecuado.

La mayoría de los esquemas de relleno son bien conocidos, siendo el PKCS #7 uno de los más populares, por lo que los atacantes pueden saber qué tipo de relleno se está utilizando. Por ejemplo, si el CBC necesita rellenar cinco caracteres en un bloque, el PKCS #7 utilizará el valor de byte 0x05 repetido cinco veces después del texto sin formato.

Los atacantes utilizan sus conocimientos sobre el CBC y los esquemas de relleno para enviar consultas a un servidor host, también denominado oráculo. Si tienen acceso a las herramientas adecuadas, es posible que puedan obligar al servidor a que les diga si el relleno de su consulta es incorrecto. Para lograrlo, pueden pasar de cero a 255 por cada byte del cifrado hasta que el servidor les diga que el relleno es correcto. Luego, pasan a la siguiente unidad y repiten el proceso, registrando dónde comienza el relleno en cada caso.

Esto no les permite descifrar el mensaje ni siquiera la celda, pero podría permitirles mapear cada eslabón de la cadena en términos de dónde termina el texto plano y comienza el relleno. También pueden utilizar cálculos XOR para calcular el valor del último byte del texto sin formato original.

¿Por qué es tan peligroso Padding Oracle?

La razón por la que un hacker se esforzaría tanto en descifrar el cifrado es por el posible beneficio. Pocas personas cifran cosas que no son valiosas. El peligro para la organización anfitriona depende de que los datos se vean comprometidos. Esto podría incluir cosas como contraseñas, cuentas de usuario, información financiera, números de tarjetas de crédito, registros de pacientes, comunicaciones confidenciales o cualquier cantidad de información valiosa y muy solicitada.

El uso de padding oracle también podría ser la puerta de entrada a ataques posteriores. Si un atacante puede usar padding oracle para robar contraseñas, por ejemplo, aumentar sus privilegios y penetrar más profundamente en la red es una tarea secundaria fácil.

Todo el mundo piensa que el cifrado es la mejor defensa contra el espionaje o el compromiso. Sin embargo, las idas y venidas entre la ciencia del cifrado y aquellos que quieren descifrarla se han mantenido durante siglos. El oráculo acolchado es solo uno de los métodos que da ventaja a los atacantes.

Hacer que los ataques de Padding Oracle tengan un aterrizaje forzoso

Afortunadamente, hay varias formas de evitar que se acumule el oráculo. Una de las mejores es utilizar un modo de cifrado más seguro para las operaciones, como el modo Galois/Counter (GCM) o el modo Offset Codebook (OCB). Se diferencia del CBC en que utiliza un tamaño de bloque de cifrado de 128 bits. También utiliza un contador para cada bloque de datos y, a continuación, utiliza ese número para crear el texto cifrado. En otras palabras, no es susceptible a los ataques de oráculo de relleno.

La implementación de buenos controles de gestión de errores también puede afectar gravemente las posibilidades de éxito de un atacante. Dado que los ataques con oráculos de relleno se basan en la filtración de información, devuelven mensajes de error genéricos en lugar de errores de relleno específicos en caso de error de cifrado o descifrado.

También puede implementar el código de autenticación de mensajes (MAC). Los valores MAC protegen la integridad de los datos y su autenticidad, ya que permiten a los verificadores detectar cualquier cambio en el contenido del mensaje mediante una clave secreta.

Por último, todos los ataques de oráculo de relleno requieren consultas repetidas. Se pueden realizar más de 200 solicitudes para averiguar el esquema de relleno en una sola celda, multiplicado por la cantidad de unidades de información que se protegen en la cadena. Al restringir el número de solicitudes que provienen de la misma fuente, puedes detener los ataques de los oráculos de relleno denegando el acceso a un atacante antes de que realmente pueda iniciar su intento.

Estudio adicional sobre Padding Oracle

Cualquier método mediante el cual un atacante pueda descifrar información confidencial puede convertirse en una verdadera pesadilla. Sin embargo, esperamos que, en primer lugar, haya aprendido algunos buenos métodos para evitar que eso suceda.

Para leer más, puede echar un vistazo al OWASP definición y lista de verificación sobre padding oracle. También puedes poner a prueba tus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

¿Crees que estás a la altura de la tarea de frustrar los ataques de los oráculos ahora mismo? Pruébelo en la plataforma Secure Code Warrior:

Ver seminario web
Comenzar
Más información

Haga clic en el enlace de abajo y descargue el PDF de este recurso.

Secure Code Warrior aquí para que su organización le ayude a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Ya sea administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados con el código inseguro.

Ver informeReserve una demostración
Ver recurso
Comparte en:
marcas de LinkedInSocialx logotipo
¿Interesado en más?

Comparte en:
marcas de LinkedInSocialx logotipo
autor
Publicado el 24 de enero de 2019

Comparte en:
marcas de LinkedInSocialx logotipo

Si bien Padding Oracle suena como un nombre muy malo para una banda de rock alternativo, en realidad es una vulnerabilidad que los atacantes pueden utilizar para descifrar información sin conocer la clave de cifrado.

En términos de dificultad general para un atacante, esta dificultad está cerca de la cima de la escala. No estamos hablando de un botón mágico de descifrado, sino de un laborioso proceso mediante el cual los piratas informáticos pueden examinar los mensajes de error que se les envían en relación con el relleno de celdas y usarlo para determinar dónde terminan los datos cifrados y dónde comienza el relleno. De este modo, pueden descifrar los distintos bits del cifrado y, si disponen del tiempo y los datos necesarios para examinarlos, es posible que puedan descifrarlos.

Afortunadamente, hay varios pasos relativamente sencillos que pueden eliminar la capacidad de un atacante de utilizar el oráculo de relleno para descifrar datos cifrados. En este episodio, aprenderemos lo siguiente:

  • Cómo funciona
  • Por qué esta vulnerabilidad es tan peligrosa
  • Cómo puede establecer defensas para evitarlo.

¿Cómo funciona Padding Oracle?

El encadenamiento de bloques de cifrado (CBC) es una forma de crear un cifrado de bloques en el que una secuencia completa de bits de información, como las celdas almacenadas en una base de datos, se cifra mediante una clave de cifrado que se aplica a toda la cadena de información. Cuando se utiliza el CBC, el cifrado de un solo bloque de texto cifrado dependerá de todos los bloques anteriores. En teoría, esto hace que el cifrado sea extremadamente fuerte, ya que cualquier cosa, incluso la reordenación de los bloques, corromperá los datos.

El problema con los cifrados CBC (y con cualquier cifrado por bloques, de hecho) es que solo se pueden cifrar con bloques de tamaños exactos. Normalmente, esto se hace en tamaños de 8 o 16 bytes. Entonces, ¿qué ocurre cuando CBC necesita colocar 2 bytes de datos en una unidad de texto cifrado de 16 bytes? Utilizará relleno, básicamente caracteres sin sentido, para rellenar los huecos y hacer que la unidad tenga el tamaño adecuado.

La mayoría de los esquemas de relleno son bien conocidos, siendo el PKCS #7 uno de los más populares, por lo que los atacantes pueden saber qué tipo de relleno se está utilizando. Por ejemplo, si el CBC necesita rellenar cinco caracteres en un bloque, el PKCS #7 utilizará el valor de byte 0x05 repetido cinco veces después del texto sin formato.

Los atacantes utilizan sus conocimientos sobre el CBC y los esquemas de relleno para enviar consultas a un servidor host, también denominado oráculo. Si tienen acceso a las herramientas adecuadas, es posible que puedan obligar al servidor a que les diga si el relleno de su consulta es incorrecto. Para lograrlo, pueden pasar de cero a 255 por cada byte del cifrado hasta que el servidor les diga que el relleno es correcto. Luego, pasan a la siguiente unidad y repiten el proceso, registrando dónde comienza el relleno en cada caso.

Esto no les permite descifrar el mensaje ni siquiera la celda, pero podría permitirles mapear cada eslabón de la cadena en términos de dónde termina el texto plano y comienza el relleno. También pueden utilizar cálculos XOR para calcular el valor del último byte del texto sin formato original.

¿Por qué es tan peligroso Padding Oracle?

La razón por la que un hacker se esforzaría tanto en descifrar el cifrado es por el posible beneficio. Pocas personas cifran cosas que no son valiosas. El peligro para la organización anfitriona depende de que los datos se vean comprometidos. Esto podría incluir cosas como contraseñas, cuentas de usuario, información financiera, números de tarjetas de crédito, registros de pacientes, comunicaciones confidenciales o cualquier cantidad de información valiosa y muy solicitada.

El uso de padding oracle también podría ser la puerta de entrada a ataques posteriores. Si un atacante puede usar padding oracle para robar contraseñas, por ejemplo, aumentar sus privilegios y penetrar más profundamente en la red es una tarea secundaria fácil.

Todo el mundo piensa que el cifrado es la mejor defensa contra el espionaje o el compromiso. Sin embargo, las idas y venidas entre la ciencia del cifrado y aquellos que quieren descifrarla se han mantenido durante siglos. El oráculo acolchado es solo uno de los métodos que da ventaja a los atacantes.

Hacer que los ataques de Padding Oracle tengan un aterrizaje forzoso

Afortunadamente, hay varias formas de evitar que se acumule el oráculo. Una de las mejores es utilizar un modo de cifrado más seguro para las operaciones, como el modo Galois/Counter (GCM) o el modo Offset Codebook (OCB). Se diferencia del CBC en que utiliza un tamaño de bloque de cifrado de 128 bits. También utiliza un contador para cada bloque de datos y, a continuación, utiliza ese número para crear el texto cifrado. En otras palabras, no es susceptible a los ataques de oráculo de relleno.

La implementación de buenos controles de gestión de errores también puede afectar gravemente las posibilidades de éxito de un atacante. Dado que los ataques con oráculos de relleno se basan en la filtración de información, devuelven mensajes de error genéricos en lugar de errores de relleno específicos en caso de error de cifrado o descifrado.

También puede implementar el código de autenticación de mensajes (MAC). Los valores MAC protegen la integridad de los datos y su autenticidad, ya que permiten a los verificadores detectar cualquier cambio en el contenido del mensaje mediante una clave secreta.

Por último, todos los ataques de oráculo de relleno requieren consultas repetidas. Se pueden realizar más de 200 solicitudes para averiguar el esquema de relleno en una sola celda, multiplicado por la cantidad de unidades de información que se protegen en la cadena. Al restringir el número de solicitudes que provienen de la misma fuente, puedes detener los ataques de los oráculos de relleno denegando el acceso a un atacante antes de que realmente pueda iniciar su intento.

Estudio adicional sobre Padding Oracle

Cualquier método mediante el cual un atacante pueda descifrar información confidencial puede convertirse en una verdadera pesadilla. Sin embargo, esperamos que, en primer lugar, haya aprendido algunos buenos métodos para evitar que eso suceda.

Para leer más, puede echar un vistazo al OWASP definición y lista de verificación sobre padding oracle. También puedes poner a prueba tus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

¿Crees que estás a la altura de la tarea de frustrar los ataques de los oráculos ahora mismo? Pruébelo en la plataforma Secure Code Warrior:

Tabla de contenido

Descargar PDF
Ver recurso
¿Interesado en más?

Más información

Secure Code Warrior aquí para que su organización le ayude a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Ya sea administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados con el código inseguro.

Reserve una demostraciónDescargar
Comparte en:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos para empezar

Más publicaciones
Centro de recursos

Recursos para empezar

Más publicaciones