Los codificadores conquistan la seguridad: Share & Learn Series - Padding Oracle
Aunque "Padding Oracle" suena como un nombre realmente malo para un grupo de rock alternativo, en realidad es una vulnerabilidad que puede ser utilizada por los atacantes para descifrar información sin conocer la clave de cifrado.
En términos de dificultad general para un atacante, ésta está cerca de la cima de la escala. No estamos hablando de un botón mágico de descifrado, sino de un laborioso proceso en el que los hackers pueden examinar los mensajes de error que se les envían en relación con el relleno de las celdas, y utilizarlo para determinar dónde terminan los datos cifrados y dónde empieza el relleno. A continuación, pueden averiguar varios bits dentro del cifrado y, posiblemente, descifrarlo si disponen de tiempo y datos suficientes para examinarlo.
Afortunadamente, hay varios pasos relativamente sencillos que pueden eliminar la capacidad de un atacante de utilizar el oráculo de relleno para descifrar los datos cifrados. En este episodio, aprenderemos:
- Cómo funciona
- Por qué esta vulnerabilidad es tan peligrosa
- Cómo puede poner 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 toda una secuencia de bits de información, como las celdas almacenadas en una base de datos, se cifran utilizando 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 de los cifrados CBC (y de cualquier cifrado en bloque, en realidad) es que sólo pueden cifrarse utilizando bloques de tamaños exactos. Normalmente, esto se hace en tamaños de 8 o 16 bytes. Entonces, ¿qué ocurre cuando CBC necesita meter 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 un tamaño adecuado.
La mayoría de los esquemas de relleno son bien conocidos, siendo PKCS#7 uno de los más populares, por lo que los atacantes podrían saber qué tipo de relleno se está utilizando. Por ejemplo, si el CBC necesita rellenar cinco caracteres en un bloque, el PKCS#7 utilizaría el valor del byte 0x05 repetido cinco veces después del texto plano.
Los atacantes utilizan su conocimiento de los esquemas CBC y de relleno para enviar consultas a un servidor anfitrión, también conocido como oráculo. Si tienen acceso a las herramientas adecuadas, pueden forzar al servidor a decirles si el relleno en su consulta es incorrecto. Para ello, pueden hacer un ciclo de cero a 255 para cada byte del cifrado hasta que el servidor les diga que el relleno es correcto. Entonces, pasan a la siguiente unidad y repiten el proceso, registrando dónde empieza el relleno en cada caso.
Esto no les permite descifrar el mensaje o incluso la celda, pero podría permitirles mapear cada eslabón de la cadena en términos de dónde termina el texto plano y dónde comienza el relleno. También pueden utilizar potencialmente los cálculos XOR para averiguar el valor del último byte del texto plano original.
¿Por qué es tan peligroso el "Padding Oracle"?
La razón por la que un pirata informático se esfuerza tanto en romper la encriptación es por el potencial pago. Pocas personas cifran cosas que no son valiosas. El peligro para la organización anfitriona depende de los datos comprometidos. Eso podría incluir cosas como contraseñas, cuentas de usuario, información financiera, números de tarjetas de crédito, registros de pacientes, comunicaciones sensibles, o cualquier número de piezas de información altamente codiciadas y valiosas.
El uso del oráculo de relleno también podría ser la puerta de entrada a ataques posteriores. Si un atacante puede utilizar el oráculo de relleno para robar contraseñas, por ejemplo, entonces elevar sus privilegios y penetrar más profundamente en una red es una tarea secundaria fácil.
Todo el mundo piensa en la encriptación como la última defensa contra el espionaje o el compromiso. Sin embargo, las idas y venidas entre la ciencia del cifrado y los que quieren descifrarlo se suceden desde hace siglos. El oráculo de relleno es sólo un método que da ventaja a los atacantes.
Dando un duro golpe a los ataques de Oracle Padding
Afortunadamente, hay bastantes maneras de evitar el oráculo de relleno. Una de las mejores es utilizar un modo de operaciones de cifrado más potente, como el modo Galois/Contador (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 luego utiliza ese número para crear el texto cifrado. En otras palabras, no es susceptible de ataques de oráculo de relleno.
Implementar buenos controles de gestión de errores también puede perjudicar gravemente las posibilidades de éxito de un atacante. Dado que los ataques de oráculo de relleno se basan en la fuga de información, devuelva mensajes de error genéricos en lugar de errores de relleno específicos en caso de fallo de cifrado/descifrado.
También se puede implementar el Código de Autenticación de Mensajes (MAC). Los valores MAC protegen la integridad de los datos así como su autenticidad, permitiendo a los verificadores detectar cualquier cambio en el contenido del mensaje utilizando una clave secreta.
Por último, todos los ataques de oráculo de relleno requieren consultas repetidas. Puede haber más de 200 peticiones para averiguar el esquema de relleno en una sola celda, multiplicado por el número de unidades de información que se protegen en la cadena. Si se restringe el número de solicitudes que llegan desde la misma fuente, se puede acabar con los ataques de oráculo de relleno negando al atacante el acceso antes de que pueda comenzar realmente su intento.
Estudio adicional sobre el oráculo de relleno
Cualquier método por el que un atacante pueda descifrar información sensible puede convertirse en una auténtica pesadilla. Pero, esperamos que hayas aprendido bastantes buenos métodos para evitar que eso ocurra en primer lugar.
Para más información, puede consultar la definición y la lista de comprobación de la OWASP en padding oracle. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .
¿Crees que estás a la altura de la tarea de frustrar los ataques de oráculo de relleno ahora mismo? Pruébalo en la plataforma Secure Code Warrior :
Aunque "Padding Oracle" suena como un nombre realmente malo para un grupo de rock alternativo, en realidad es una vulnerabilidad que puede ser utilizada por los atacantes para descifrar información sin conocer la clave de cifrado.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónAunque "Padding Oracle" suena como un nombre realmente malo para un grupo de rock alternativo, en realidad es una vulnerabilidad que puede ser utilizada por los atacantes para descifrar información sin conocer la clave de cifrado.
En términos de dificultad general para un atacante, ésta está cerca de la cima de la escala. No estamos hablando de un botón mágico de descifrado, sino de un laborioso proceso en el que los hackers pueden examinar los mensajes de error que se les envían en relación con el relleno de las celdas, y utilizarlo para determinar dónde terminan los datos cifrados y dónde empieza el relleno. A continuación, pueden averiguar varios bits dentro del cifrado y, posiblemente, descifrarlo si disponen de tiempo y datos suficientes para examinarlo.
Afortunadamente, hay varios pasos relativamente sencillos que pueden eliminar la capacidad de un atacante de utilizar el oráculo de relleno para descifrar los datos cifrados. En este episodio, aprenderemos:
- Cómo funciona
- Por qué esta vulnerabilidad es tan peligrosa
- Cómo puede poner 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 toda una secuencia de bits de información, como las celdas almacenadas en una base de datos, se cifran utilizando 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 de los cifrados CBC (y de cualquier cifrado en bloque, en realidad) es que sólo pueden cifrarse utilizando bloques de tamaños exactos. Normalmente, esto se hace en tamaños de 8 o 16 bytes. Entonces, ¿qué ocurre cuando CBC necesita meter 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 un tamaño adecuado.
La mayoría de los esquemas de relleno son bien conocidos, siendo PKCS#7 uno de los más populares, por lo que los atacantes podrían saber qué tipo de relleno se está utilizando. Por ejemplo, si el CBC necesita rellenar cinco caracteres en un bloque, el PKCS#7 utilizaría el valor del byte 0x05 repetido cinco veces después del texto plano.
Los atacantes utilizan su conocimiento de los esquemas CBC y de relleno para enviar consultas a un servidor anfitrión, también conocido como oráculo. Si tienen acceso a las herramientas adecuadas, pueden forzar al servidor a decirles si el relleno en su consulta es incorrecto. Para ello, pueden hacer un ciclo de cero a 255 para cada byte del cifrado hasta que el servidor les diga que el relleno es correcto. Entonces, pasan a la siguiente unidad y repiten el proceso, registrando dónde empieza el relleno en cada caso.
Esto no les permite descifrar el mensaje o incluso la celda, pero podría permitirles mapear cada eslabón de la cadena en términos de dónde termina el texto plano y dónde comienza el relleno. También pueden utilizar potencialmente los cálculos XOR para averiguar el valor del último byte del texto plano original.
¿Por qué es tan peligroso el "Padding Oracle"?
La razón por la que un pirata informático se esfuerza tanto en romper la encriptación es por el potencial pago. Pocas personas cifran cosas que no son valiosas. El peligro para la organización anfitriona depende de los datos comprometidos. Eso podría incluir cosas como contraseñas, cuentas de usuario, información financiera, números de tarjetas de crédito, registros de pacientes, comunicaciones sensibles, o cualquier número de piezas de información altamente codiciadas y valiosas.
El uso del oráculo de relleno también podría ser la puerta de entrada a ataques posteriores. Si un atacante puede utilizar el oráculo de relleno para robar contraseñas, por ejemplo, entonces elevar sus privilegios y penetrar más profundamente en una red es una tarea secundaria fácil.
Todo el mundo piensa en la encriptación como la última defensa contra el espionaje o el compromiso. Sin embargo, las idas y venidas entre la ciencia del cifrado y los que quieren descifrarlo se suceden desde hace siglos. El oráculo de relleno es sólo un método que da ventaja a los atacantes.
Dando un duro golpe a los ataques de Oracle Padding
Afortunadamente, hay bastantes maneras de evitar el oráculo de relleno. Una de las mejores es utilizar un modo de operaciones de cifrado más potente, como el modo Galois/Contador (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 luego utiliza ese número para crear el texto cifrado. En otras palabras, no es susceptible de ataques de oráculo de relleno.
Implementar buenos controles de gestión de errores también puede perjudicar gravemente las posibilidades de éxito de un atacante. Dado que los ataques de oráculo de relleno se basan en la fuga de información, devuelva mensajes de error genéricos en lugar de errores de relleno específicos en caso de fallo de cifrado/descifrado.
También se puede implementar el Código de Autenticación de Mensajes (MAC). Los valores MAC protegen la integridad de los datos así como su autenticidad, permitiendo a los verificadores detectar cualquier cambio en el contenido del mensaje utilizando una clave secreta.
Por último, todos los ataques de oráculo de relleno requieren consultas repetidas. Puede haber más de 200 peticiones para averiguar el esquema de relleno en una sola celda, multiplicado por el número de unidades de información que se protegen en la cadena. Si se restringe el número de solicitudes que llegan desde la misma fuente, se puede acabar con los ataques de oráculo de relleno negando al atacante el acceso antes de que pueda comenzar realmente su intento.
Estudio adicional sobre el oráculo de relleno
Cualquier método por el que un atacante pueda descifrar información sensible puede convertirse en una auténtica pesadilla. Pero, esperamos que hayas aprendido bastantes buenos métodos para evitar que eso ocurra en primer lugar.
Para más información, puede consultar la definición y la lista de comprobación de la OWASP en padding oracle. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .
¿Crees que estás a la altura de la tarea de frustrar los ataques de oráculo de relleno ahora mismo? Pruébalo en la plataforma Secure Code Warrior :
Aunque "Padding Oracle" suena como un nombre realmente malo para un grupo de rock alternativo, en realidad es una vulnerabilidad que puede ser utilizada por los atacantes para descifrar información sin conocer la clave de cifrado.
En términos de dificultad general para un atacante, ésta está cerca de la cima de la escala. No estamos hablando de un botón mágico de descifrado, sino de un laborioso proceso en el que los hackers pueden examinar los mensajes de error que se les envían en relación con el relleno de las celdas, y utilizarlo para determinar dónde terminan los datos cifrados y dónde empieza el relleno. A continuación, pueden averiguar varios bits dentro del cifrado y, posiblemente, descifrarlo si disponen de tiempo y datos suficientes para examinarlo.
Afortunadamente, hay varios pasos relativamente sencillos que pueden eliminar la capacidad de un atacante de utilizar el oráculo de relleno para descifrar los datos cifrados. En este episodio, aprenderemos:
- Cómo funciona
- Por qué esta vulnerabilidad es tan peligrosa
- Cómo puede poner 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 toda una secuencia de bits de información, como las celdas almacenadas en una base de datos, se cifran utilizando 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 de los cifrados CBC (y de cualquier cifrado en bloque, en realidad) es que sólo pueden cifrarse utilizando bloques de tamaños exactos. Normalmente, esto se hace en tamaños de 8 o 16 bytes. Entonces, ¿qué ocurre cuando CBC necesita meter 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 un tamaño adecuado.
La mayoría de los esquemas de relleno son bien conocidos, siendo PKCS#7 uno de los más populares, por lo que los atacantes podrían saber qué tipo de relleno se está utilizando. Por ejemplo, si el CBC necesita rellenar cinco caracteres en un bloque, el PKCS#7 utilizaría el valor del byte 0x05 repetido cinco veces después del texto plano.
Los atacantes utilizan su conocimiento de los esquemas CBC y de relleno para enviar consultas a un servidor anfitrión, también conocido como oráculo. Si tienen acceso a las herramientas adecuadas, pueden forzar al servidor a decirles si el relleno en su consulta es incorrecto. Para ello, pueden hacer un ciclo de cero a 255 para cada byte del cifrado hasta que el servidor les diga que el relleno es correcto. Entonces, pasan a la siguiente unidad y repiten el proceso, registrando dónde empieza el relleno en cada caso.
Esto no les permite descifrar el mensaje o incluso la celda, pero podría permitirles mapear cada eslabón de la cadena en términos de dónde termina el texto plano y dónde comienza el relleno. También pueden utilizar potencialmente los cálculos XOR para averiguar el valor del último byte del texto plano original.
¿Por qué es tan peligroso el "Padding Oracle"?
La razón por la que un pirata informático se esfuerza tanto en romper la encriptación es por el potencial pago. Pocas personas cifran cosas que no son valiosas. El peligro para la organización anfitriona depende de los datos comprometidos. Eso podría incluir cosas como contraseñas, cuentas de usuario, información financiera, números de tarjetas de crédito, registros de pacientes, comunicaciones sensibles, o cualquier número de piezas de información altamente codiciadas y valiosas.
El uso del oráculo de relleno también podría ser la puerta de entrada a ataques posteriores. Si un atacante puede utilizar el oráculo de relleno para robar contraseñas, por ejemplo, entonces elevar sus privilegios y penetrar más profundamente en una red es una tarea secundaria fácil.
Todo el mundo piensa en la encriptación como la última defensa contra el espionaje o el compromiso. Sin embargo, las idas y venidas entre la ciencia del cifrado y los que quieren descifrarlo se suceden desde hace siglos. El oráculo de relleno es sólo un método que da ventaja a los atacantes.
Dando un duro golpe a los ataques de Oracle Padding
Afortunadamente, hay bastantes maneras de evitar el oráculo de relleno. Una de las mejores es utilizar un modo de operaciones de cifrado más potente, como el modo Galois/Contador (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 luego utiliza ese número para crear el texto cifrado. En otras palabras, no es susceptible de ataques de oráculo de relleno.
Implementar buenos controles de gestión de errores también puede perjudicar gravemente las posibilidades de éxito de un atacante. Dado que los ataques de oráculo de relleno se basan en la fuga de información, devuelva mensajes de error genéricos en lugar de errores de relleno específicos en caso de fallo de cifrado/descifrado.
También se puede implementar el Código de Autenticación de Mensajes (MAC). Los valores MAC protegen la integridad de los datos así como su autenticidad, permitiendo a los verificadores detectar cualquier cambio en el contenido del mensaje utilizando una clave secreta.
Por último, todos los ataques de oráculo de relleno requieren consultas repetidas. Puede haber más de 200 peticiones para averiguar el esquema de relleno en una sola celda, multiplicado por el número de unidades de información que se protegen en la cadena. Si se restringe el número de solicitudes que llegan desde la misma fuente, se puede acabar con los ataques de oráculo de relleno negando al atacante el acceso antes de que pueda comenzar realmente su intento.
Estudio adicional sobre el oráculo de relleno
Cualquier método por el que un atacante pueda descifrar información sensible puede convertirse en una auténtica pesadilla. Pero, esperamos que hayas aprendido bastantes buenos métodos para evitar que eso ocurra en primer lugar.
Para más información, puede consultar la definición y la lista de comprobación de la OWASP en padding oracle. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .
¿Crees que estás a la altura de la tarea de frustrar los ataques de oráculo de relleno ahora mismo? Pruébalo en la plataforma Secure Code Warrior :
Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Ver el informeReservar una demostraciónAunque "Padding Oracle" suena como un nombre realmente malo para un grupo de rock alternativo, en realidad es una vulnerabilidad que puede ser utilizada por los atacantes para descifrar información sin conocer la clave de cifrado.
En términos de dificultad general para un atacante, ésta está cerca de la cima de la escala. No estamos hablando de un botón mágico de descifrado, sino de un laborioso proceso en el que los hackers pueden examinar los mensajes de error que se les envían en relación con el relleno de las celdas, y utilizarlo para determinar dónde terminan los datos cifrados y dónde empieza el relleno. A continuación, pueden averiguar varios bits dentro del cifrado y, posiblemente, descifrarlo si disponen de tiempo y datos suficientes para examinarlo.
Afortunadamente, hay varios pasos relativamente sencillos que pueden eliminar la capacidad de un atacante de utilizar el oráculo de relleno para descifrar los datos cifrados. En este episodio, aprenderemos:
- Cómo funciona
- Por qué esta vulnerabilidad es tan peligrosa
- Cómo puede poner 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 toda una secuencia de bits de información, como las celdas almacenadas en una base de datos, se cifran utilizando 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 de los cifrados CBC (y de cualquier cifrado en bloque, en realidad) es que sólo pueden cifrarse utilizando bloques de tamaños exactos. Normalmente, esto se hace en tamaños de 8 o 16 bytes. Entonces, ¿qué ocurre cuando CBC necesita meter 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 un tamaño adecuado.
La mayoría de los esquemas de relleno son bien conocidos, siendo PKCS#7 uno de los más populares, por lo que los atacantes podrían saber qué tipo de relleno se está utilizando. Por ejemplo, si el CBC necesita rellenar cinco caracteres en un bloque, el PKCS#7 utilizaría el valor del byte 0x05 repetido cinco veces después del texto plano.
Los atacantes utilizan su conocimiento de los esquemas CBC y de relleno para enviar consultas a un servidor anfitrión, también conocido como oráculo. Si tienen acceso a las herramientas adecuadas, pueden forzar al servidor a decirles si el relleno en su consulta es incorrecto. Para ello, pueden hacer un ciclo de cero a 255 para cada byte del cifrado hasta que el servidor les diga que el relleno es correcto. Entonces, pasan a la siguiente unidad y repiten el proceso, registrando dónde empieza el relleno en cada caso.
Esto no les permite descifrar el mensaje o incluso la celda, pero podría permitirles mapear cada eslabón de la cadena en términos de dónde termina el texto plano y dónde comienza el relleno. También pueden utilizar potencialmente los cálculos XOR para averiguar el valor del último byte del texto plano original.
¿Por qué es tan peligroso el "Padding Oracle"?
La razón por la que un pirata informático se esfuerza tanto en romper la encriptación es por el potencial pago. Pocas personas cifran cosas que no son valiosas. El peligro para la organización anfitriona depende de los datos comprometidos. Eso podría incluir cosas como contraseñas, cuentas de usuario, información financiera, números de tarjetas de crédito, registros de pacientes, comunicaciones sensibles, o cualquier número de piezas de información altamente codiciadas y valiosas.
El uso del oráculo de relleno también podría ser la puerta de entrada a ataques posteriores. Si un atacante puede utilizar el oráculo de relleno para robar contraseñas, por ejemplo, entonces elevar sus privilegios y penetrar más profundamente en una red es una tarea secundaria fácil.
Todo el mundo piensa en la encriptación como la última defensa contra el espionaje o el compromiso. Sin embargo, las idas y venidas entre la ciencia del cifrado y los que quieren descifrarlo se suceden desde hace siglos. El oráculo de relleno es sólo un método que da ventaja a los atacantes.
Dando un duro golpe a los ataques de Oracle Padding
Afortunadamente, hay bastantes maneras de evitar el oráculo de relleno. Una de las mejores es utilizar un modo de operaciones de cifrado más potente, como el modo Galois/Contador (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 luego utiliza ese número para crear el texto cifrado. En otras palabras, no es susceptible de ataques de oráculo de relleno.
Implementar buenos controles de gestión de errores también puede perjudicar gravemente las posibilidades de éxito de un atacante. Dado que los ataques de oráculo de relleno se basan en la fuga de información, devuelva mensajes de error genéricos en lugar de errores de relleno específicos en caso de fallo de cifrado/descifrado.
También se puede implementar el Código de Autenticación de Mensajes (MAC). Los valores MAC protegen la integridad de los datos así como su autenticidad, permitiendo a los verificadores detectar cualquier cambio en el contenido del mensaje utilizando una clave secreta.
Por último, todos los ataques de oráculo de relleno requieren consultas repetidas. Puede haber más de 200 peticiones para averiguar el esquema de relleno en una sola celda, multiplicado por el número de unidades de información que se protegen en la cadena. Si se restringe el número de solicitudes que llegan desde la misma fuente, se puede acabar con los ataques de oráculo de relleno negando al atacante el acceso antes de que pueda comenzar realmente su intento.
Estudio adicional sobre el oráculo de relleno
Cualquier método por el que un atacante pueda descifrar información sensible puede convertirse en una auténtica pesadilla. Pero, esperamos que hayas aprendido bastantes buenos métodos para evitar que eso ocurra en primer lugar.
Para más información, puede consultar la definición y la lista de comprobación de la OWASP en padding oracle. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .
¿Crees que estás a la altura de la tarea de frustrar los ataques de oráculo de relleno ahora mismo? Pruébalo en la plataforma Secure Code Warrior :
Índice
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDescargarRecursos para empezar
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
El movimiento Secure-by-Design es el futuro del desarrollo de software seguro. Conozca los elementos clave que las empresas deben tener en cuenta cuando piensan en una iniciativa Secure-by-Design.
DigitalOcean reduce su deuda de seguridad con Secure Code Warrior
El uso por parte de DigitalOcean de la formación Secure Code Warrior ha reducido significativamente la deuda de seguridad, permitiendo a los equipos centrarse más en la innovación y la productividad. La mejora de la seguridad ha reforzado la calidad de sus productos y su ventaja competitiva. De cara al futuro, SCW Trust Score les ayudará a seguir mejorando las prácticas de seguridad y a continuar impulsando la innovación.
Recursos para empezar
La puntuación de confianza revela el valor de las iniciativas de mejora de la seguridad mediante el diseño
Nuestra investigación ha demostrado que la formación en código seguro funciona. Trust Score, que utiliza un algoritmo basado en más de 20 millones de puntos de datos de aprendizaje procedentes del trabajo de más de 250 000 alumnos en más de 600 organizaciones, revela su eficacia a la hora de reducir las vulnerabilidades y cómo hacer que la iniciativa sea aún más eficaz.
Seguridad reactiva frente a seguridad preventiva: Prevenir es mejor que curar
La idea de introducir la seguridad preventiva en el código y los sistemas heredados al mismo tiempo que en las aplicaciones más recientes puede parecer desalentadora, pero un planteamiento basado en el diseño seguro, aplicado mediante la mejora de las competencias de los desarrolladores, puede aplicar las mejores prácticas de seguridad a esos sistemas. Es la mejor oportunidad que tienen muchas organizaciones de mejorar su seguridad.
Ventajas de la evaluación comparativa de las competencias de seguridad de los desarrolladores
La creciente atención que se presta al código seguro y a los principios del diseño seguro exige que los desarrolladores reciban formación en ciberseguridad desde el principio del proceso de desarrollo de software, con herramientas como Secure Code Warrior's Trust Score, que ayudan a medir y mejorar sus progresos.
Impulsando iniciativas de seguridad por diseño para empresas con éxito significativo
Nuestro último documento de investigación, Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise, es el resultado de un análisis profundo de iniciativas reales de Secure-by-Design a nivel empresarial y de la derivación de enfoques de mejores prácticas basados en hallazgos basados en datos.