SCW アイコン
ヒーロー背景(区切りなし)
ブログ

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

2019年1月24日 掲載
最終更新日: 2026年3月6日

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:

  • どのように機能するのか
  • 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:

リソースを参照
リソースを参照

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.

もっと知りたいですか?

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先事項とする文化を構築するために、貴組織をSecure Code Warrior 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約する
共有する:
リンクトインのブランドソーシャルx ロゴ
著者
2019年1月24日発行

共有する:
リンクトインのブランドソーシャルx ロゴ

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:

  • どのように機能するのか
  • 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:

リソースを参照
リソースを参照

以下のフォームに記入してレポートをダウンロードしてください

当社製品や安全な暗号化に関する情報をお送りする許可を頂ければ幸いです。お客様の個人情報は常に最大限の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

送信
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、「分析」クッキーを有効にしてください。完了後は、お気軽に再度無効にしてください。

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:

  • どのように機能するのか
  • 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:

ウェビナーを見る
始める
もっと詳しく

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先事項とする文化を構築するために、貴組織をSecure Code Warrior 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。

報告書を見るデモを予約する
PDFをダウンロード
リソースを参照
共有する:
リンクトインのブランドソーシャルx ロゴ
もっと知りたいですか?

共有する:
リンクトインのブランドソーシャルx ロゴ
著者
2019年1月24日発行

共有する:
リンクトインのブランドソーシャルx ロゴ

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:

  • どのように機能するのか
  • 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:

目次

PDFをダウンロード
リソースを参照
もっと知りたいですか?

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先事項とする文化を構築するために、貴組織をSecure Code Warrior 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約するダウンロード
共有する:
リンクトインのブランドソーシャルx ロゴ
リソースセンター

始めるためのリソース

その他の投稿
リソースセンター

始めるためのリソース

その他の投稿