Cómo mitigar los ataques cardiacos como antes del día cero

5

Cuando se utilizan datos confidenciales, como una contraseña, en un servidor, estos residen en la memoria durante un breve periodo de tiempo. Dado que existen fallas de seguridad como Heartbleed que tienen la capacidad de "sangrar" la memoria por su contenido, ¿qué tipo de defensa preventiva existe para este tipo de ataques antes de un día cero?

¿Hay métodos por ahí que borran la memoria 'sensible' después de su uso para que, por ejemplo, una contraseña no permanezca (ni se libere) en un área de memoria a la que pueda acceder un posible desbordamiento de búfer?

    
pregunta Aedazan 05.11.2015 - 04:54
fuente

3 respuestas

7

El problema principal con Heartbleed no era que los datos secretos no se usaban cuando aún estaban en la memoria, sino que la memoria contenía datos secretos que estaban en uso. Estos eran datos de solicitudes paralelas, pero lo más importante era la clave privada del certificado que se necesitaba para establecer los protocolos SSL.

Una técnica típica utilizada para protegerse contra este tipo de ataques es la separación de privilegios . En el caso de un protocolo de enlace SSL, podría estar utilizando un HSM que puede cifrar / firmar pero nunca hace que la clave sea accesible. Podría ser una separación de nivel de proceso empleada, por ejemplo, por OpenSSH. O los cálculos críticos podrían incluso ser emitidos por otro sistema informático controlado por una parte diferente, como hecho con Cloudflare Keyless SSL .

    
respondido por el Steffen Ullrich 05.11.2015 - 06:55
fuente
0

Absolutamente. La limpieza de la memoria de datos críticos ha sido común en C / C ++ durante décadas. .NET incluso proporciona una clase de SecureString documentada como :

  

Representa el texto que debe mantenerse confidencial, por ejemplo, eliminándolo de la memoria de la computadora cuando ya no sea necesario.

Pero los datos generalmente deben estar en texto sin cifrar en la memoria en algún momento para que no haya una solución perfecta.

    
respondido por el Neil Smithline 05.11.2015 - 05:36
fuente
0

El método que ftp muy seguro utiliza para manejar el uso de cadenas y búfer a través de una API. No es exactamente borrar los datos (la opción que sugiere su pregunta), pero es un enfoque del problema.

enlace

    
respondido por el Scott C Wilson 08.11.2015 - 09:50
fuente

Lea otras preguntas en las etiquetas