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 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약하기
리소스 보기
공유하기:
링크드인 브랜드사회적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 로고
자원 센터

시작하기 위한 자료

더 많은 게시물
자원 센터

시작하기 위한 자료

더 많은 게시물