En criptografía, un ataque de arranque en frío (o de menor grado, un ataque de reinicio en plataforma) es un tipo de ataque de canal lateral en el cual el atacante con acceso físico a una computadora es capaz de recuperar las llaves de cifrado durante la ejecución del sistema operativo, después de realizar el arranque en frío para reiniciar la máquina. El ataque se basa en persistir datos pertenecientes a la memoria DRAM y a la memoria SRAM para recuperar el contenido de la memoria legible segundos a minutos después de que el control ha sido eliminado.
Descripción Para ejecutar el ataque, se ejecuta el arranque en frío en una computadora. El arranque en frío ocurre cuando la energía es apagada y encendida sin que el sistema operativo la apague limpiamente, o si está disponible, se presiona el botón de reinicio. Inmediatamente después, el disco extraíble se utiliza para arrancar un sistema operativo ligero, que luego se utiliza para vaciar el contenido de la memoria de pre-arranque físico en un archivo. De manera alternativa, los módulos de memoria son extraídos del sistema original y rápidamente se colocan en una máquina controlada por el atacante, la cual después se arranca para acceder a la memoria. Un análisis más detallado se puede ejecutar en la información vaciada desde la memoria para encontrar información delicada, tales como las claves contenidas en dicha información (ahora están disponibles herramientas automatizadas para realizar esta tarea contra de los ataques hacia algunos sistemas de encriptación populares).
El ataque puede demostrar que es efectivo en contra de los sistemas de cifrado de disco completo de varios vendedores y sistemas operativos, incluso en los lugares donde se utiliza un módulo de plataforma confiable (TPM) con procesador de cifrado seguro. Esto es un problema propiamente del hardware (memoria insegura) y no un defecto de software. Aunque el enfoque de la investigación actual es el cifrado de disco, todo dato sensible almacenado en la memoria es vulnerable a ataques.
Con ciertos módulos de memoria, el tiempo en la ventana para un ataque se puede extender hasta una hora ya que los congelan con un refrigerante como una lata de aire comprimido. Además, como los bits desaparecen en la memoria con el tiempo, pueden ser reconstruidos, ya que desaparecen de manera predecible. En el caso de las aplicaciones de cifrado de disco, pueden ser configuradas para permitir que el sistema operativo pueda iniciar sin ingresar un PIN de pre-arranque o presentar una clave de hardware (por ejemplo, BitLocker es una configuración simple que utiliza un TPM sin tener un PIN con dos factores de autenticación o una clave USB), haciendo que el plazo para el ataque no se limite en absoluto.
Este no es el único ataque que permite la lectura de claves de cifrado desde memoria - por ejemplo, un ataque DMA permite acceder a la memoria por medio del canal DMA 1394. Microsoft recomienda cambiar la configuración predeterminada de Windows para prevenir esto si le representa una preocupación.
La capacidad para ejecutar con éxito el ataque de arranque en frío varía considerablemente debido a los diferentes sistemas, tipos de memoria, fabricantes de memoria y características de la tarjeta madre, y es más difícil de realizar que los métodos de software o ataques DMA.
Factores atenuantes
Cifrado completo de memoria Cifrar la memoria de acceso aleatorio (RAM) (RAM) mitiga la posibilidad de que un atacante pueda obtener las claves de cifrado u otro material alojado en la memoria a través de un ataque de arranque en frío. Este acceso puede requerir cambios en el sistema operativo, aplicaciones y hardware. Un ejemplo de cifrado basado en la memoria del hardware se implementó en el Xbox de Microsoft,B. Huang "Keeping Secrets in Hardware: The Microsoft Xbox Case Study", "CHES 2002 Lecture Notes in Notes in Computer Science Volume 2523", 2003 otro ejemplo es la codificación de memoria como una característica de ciertos procesadores Intel Core.
El cifrado de memoria completa basada en software es similar al almacenamiento de claves basado en CPU ya que el material clave nunca se expone a la memoria, pero es más comprensiva puesto que todos los contenidos de la memoria se cifran. Existen múltiples documentos académicos que describen los métodos de encriptación de memoria y al menos un producto comercial de PrivateCore.Y. Hu, G. Hammouri, and B. Sunar "A fast real-time memory authentication protocol", "STC '08 Proceedings of the 3rd ACM workshop on Scalable trusted computing", 2008G. Duc and R. Keryell, "CryptoPage: an efficient secure architecture with memory encryption, integrity and information leakage protection", Dec. 2006X. Chen, R. P. Dick, and A. Choudhary "Operating system controlled processor-memory bus encryption" , "Proceedings of the conference on Design, automation and test in Europe", 2008
Recientemente, se han publicado varios trabajos destacando la disponibilidad de seguridad-mejorada x86 y procesadores de productos ARMM. Henson and S. Taylor "Beyond full disk encryption:protection on security-enhanced commodity processors" , "Proceedings of the 11th international conference on applied cryptography and network security", 2013M. Henson and S. Taylor "Memory encryption: a survey of existing techniques" , "ACM computing surveys (CSUR) volume 46 issue 4", 2014 En ese trabajo, un procesador ARM Cortex A8 se utiliza como sustrato en el que una solución de cifrado de memoria se construye. Segmentos de procesos (por ejemplo, la pila, el código o montón) pueden cifrarse individualmente o en conjunto. Esta obra marca la primera implementación de cifrado de memoria en un procesador con propósitos generales de materia. El sistema proporciona protecciones de confidencialidad e integridad de código y datos que están cifrados en todas partes fuera de los límites de CPU.
Desmontaje de discos cifrados La mayoría de los sistemas de encriptación de disco sobrescriben sus claves de cifrado almacenadas en caché como discos cifrados que son desmontados. Por lo tanto, garantizar que todos los discos cifrados sean desmontados (asegurados) cuando el ordenador está en una posición vulnerable a robo puede eliminar este riesgo y también representa buenas prácticas. Esta mitigación, normalmente no se puede realizar con el disco del sistema en donde se está ejecutando.
Modos de cifrado avanzado La configuración predeterminada para Bitlocker utiliza un TPM sin un arranque de PIN o clave externa, en esta configuración, la clave de cifrado del disco es obtenida del TPM transparente durante la secuencia de arranque del sistema operativo sin ninguna interacción con el usuario. Por consecuente, el ataque de arranque frío todavía puede ser ejecutado en un equipo con esta configuración, incluso cuando está apagado y aparentemente asegurado con sus llaves en el TPM, la máquina simplemente puede encenderse antes de comenzar el ataque.
La autenticación de dos factores, así como un pre-arranque de PIN o un dispositivo USB extraíble que contiene una clave de inicio con un TPM, puede utilizarse para solucionar esta vulnerabilidad en la implementación predeterminada de Bitlocker. De este modo, se requiere una clave de inicio o PIN al encender la máquina o al despertar del modo de hibernación (modo apagado). El resultado es que una vez que el ordenador ha sido apagado durante unos minutos, ya no se podrá acceder a los datos en la memoria RAM sin una clave secreta; el ataque solo puede completarse si el dispositivo es tomado mientras sigue encendido. Ninguna protección adicional se ofrece durante modo sleep (modo de baja potencia), como la clave normalmente permanece en la memoria con los elementos de cifrado de disco completo, no se tiene que volver a ingresar cuando la máquina se reanuda.
Administración de energía Apagar una computadora genera un número de paquetes de software cifrados que desmontan datos cifrados y eliminan claves de cifrado en la memoria. Cuando una máquina se apaga o pierde energía y el cifrado no se ha extinguido (por ejemplo, en el caso de pérdida repentina de la energía) la persistencia de datos ocurre desde decenas de segundos hasta varios minutos dependiendo de los dispositivos físicos RAM en la máquina. Asegurar que el equipo se apague cada vez que esta vulnerable a robo puede mitigar este riesgo.
Para sistemas que utilizan el modo hibernación (estado ACPI S4), el sistema de cifrado también debe desmontar todos los discos cifrados cuando entran en estado de hibernación, o el archivo de hibernación o la partición necesitaría ser cifrada como parte del sistema de cifrado de disco.
Por el contrario, el modo sleep (estado ACPI S1, S2 and S3) es generalmente inseguro, ya que las claves de encriptación seguirán siendo vulnerables en la memoria del ordenador, permitiendo así que el ordenador lea los datos cifrados al despertar o después de leer nuevamente el contenido de la memoria. Configurar el sistema operativopara apagar o hibernar cuando no se use, en lugar de utilizar el modo sleep, puede ayudar a mitigar este riesgo.
Sistemas compatibles con TCG Otro método de mitigación es utilizar un hardware y un sistema operativo que se ajusten a la "Plataforma TCG para el Restablecimiento de Especificaciones en un Ataque de Mitigacion ", una respuesta de la industria a este ataque específico. La especificación fuerza al BIOS a sobrescribir la memoria durante el POST , si el sistema operativo no se cierra limpiamente.
Sin embargo, esta medida puede eludirse aun cuando se quite el módulo de memoria del sistema y la lectura en otro sistema bajo el control del atacante no soporte estas medidas (como se demuestra en el documento original).
Arranque
Aunque se limite las opciones del dispositivo de arranque en BIOS, puede ser más difícil arrancar otro sistema operativo, muchos BIOS preguntarán al usuario por el dispositivo de arranque después de presionar una tecla específica durante el mismo. Limitar las opciones del dispositivo de arranque no impiden que el módulo de memoria sea removido del sistema y leído desde un sistema alternativo. Además, la mayoría de los chipsets permiten en la configuración del BIOS que este sea restablecido si la placa base es físicamente accesible, permitiendo a la configuración de arranque predeterminada ser restaurada incluso si está protegida con una contraseña.
Almacenamiento de claves basadas en el CPU Los parches de núcleo para Linux tales como TRESORTRESOR USENIX paper, 2011 y Loop-AmnesiaLoop-Amnesia ACSAC 2011 paper and code modifican el núcleo de un sistema operativo para que los registros del CPU (en el caso de TRESOR, los registros de depuración x86 y en el caso de Loop-Amnesia, los registros de perfil de AMD64 o EMT4) puedan ser utilizados para almacenar las claves de cifrado, en vez de la RAM. Las claves almacenadas a este nivel no pueden ser leídas fácilmente desde el espacio de usuario y se pierden cuando la computadora es reiniciada. TRESOR y Loop-Amnesia utilizan el sistema on-the-fly para la generación de claves, debido al espacio limitado para el almacenamiento de fichas criptográficas. Por seguridad, ambos deshabilitan lo interruptores para prevenir que la información de claves se filtre a la memoria desde los registros del procesador mientras se está realizando el cifrado o descifrado, así como el bloqueo de acceso a los registros de depuración y de perfil.