SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

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

Veröffentlicht 24. Jan. 2019
Zuletzt aktualisiert am 06. März 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:

  • Wie es funktioniert
  • 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:

Siehe Ressource
Siehe Ressource

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.

Interessiert an mehr?

mehr erfahren

Secure Code Warrior hier, um Ihrem Unternehmen dabei zu helfen, den Code während des gesamten Lebenszyklus der Softwareentwicklung zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie AppSec-Administrator, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Eine Vorführung buchen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Autor
Veröffentlicht 24. Jan. 2019

Teilen auf:
LinkedIn-MarkenSozialx Logo

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:

  • Wie es funktioniert
  • 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:

Siehe Ressource
Siehe Ressource

Füllen Sie das folgende Formular aus, um den Bericht herunterzuladen.

Wir möchten Ihre Erlaubnis einholen, Ihnen Informationen über unsere Produkte oder Themen im Zusammenhang mit sicherer Verschlüsselung zuzusenden. Wir werden Ihre personenbezogenen Daten stets mit größter Sorgfalt behandeln und niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Senden
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular zu senden, aktivieren Sie bitte die „Analyse“-Cookies. Sie können diese nach Abschluss des Vorgangs wieder deaktivieren.

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:

  • Wie es funktioniert
  • 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:

Webinar ansehen
Beginnen
mehr erfahren

Klicken Sie auf den untenstehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.

Secure Code Warrior hier, um Ihrem Unternehmen dabei zu helfen, den Code während des gesamten Lebenszyklus der Softwareentwicklung zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie AppSec-Administrator, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Bericht anzeigenEine Vorführung buchen
Siehe Ressource
Teilen auf:
LinkedIn-MarkenSozialx Logo
Interessiert an mehr?

Teilen auf:
LinkedIn-MarkenSozialx Logo
Autor
Veröffentlicht 24. Jan. 2019

Teilen auf:
LinkedIn-MarkenSozialx Logo

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:

  • Wie es funktioniert
  • 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:

Inhaltsverzeichnis

PDF herunterladen
Siehe Ressource
Interessiert an mehr?

mehr erfahren

Secure Code Warrior hier, um Ihrem Unternehmen dabei zu helfen, den Code während des gesamten Lebenszyklus der Softwareentwicklung zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie AppSec-Administrator, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Eine Vorführung buchenHerunterladen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Ressourcenzentrum

Ressourcen für den Einstieg

Weitere Veröffentlichungen
Ressourcenzentrum

Ressourcen für den Einstieg

Weitere Veröffentlichungen