211service.com
La amenaza constante de los ataques de arranque en frío
De las muchas formas diferentes de atacar el contenido de la computadora, una de las más interesantes es el ataque de arranque en frío. Esto salió a la luz en 2008 cuando un grupo de investigadores de la Universidad de Princeton anunció que había descubierto una forma completamente nueva de superar el cifrado de disco, el mecanismo estándar para proteger datos confidenciales en computadoras portátiles, teléfonos inteligentes, netbooks, PC y Mac.
Hoy, Jos Wetzels de la Universidad de Tecnología de Eindhoven, Países Bajos, describe la técnica y analiza las diversas opciones para prevenir este tipo de ataque. Su conclusión aleccionadora es que a pesar del tiempo transcurrido desde que se descubrieron por primera vez los ataques de arranque en frío, esta forma de ataque todavía representa un peligro claro y presente.
El ataque de arranque en frío es posible debido a una propiedad poco conocida de las memorias de acceso aleatorio utilizadas en las computadoras para almacenar y leer datos rápidamente. La memoria de acceso aleatorio es volátil, lo que significa que debe reescribirse constantemente durante períodos medidos en milisegundos. Esta propiedad significa que cualquier cosa almacenada en la memoria de acceso aleatorio es temporal: cuando la máquina se apaga y la memoria pierde energía, la fecha se pierde pronto.
Al menos eso es lo que todos pensaban. En 2008, el grupo de Princeton demostró que los datos almacenados en la memoria de acceso aleatorio se conservan durante un período de muchos segundos después de que pierde energía. Además, enfriar la memoria puede extender este período a muchos minutos y posiblemente horas. (Una forma de enfriar la memoria de acceso aleatorio es rociarla con una lata invertida de aire líquido, que libera líquido frío en lugar de gas).
Durante este breve período después de que se pierde la energía, cualquier información en la memoria de acceso aleatorio está ahí para ser tomada. Y así es exactamente como funciona el ataque de arranque en frío.
La idea es cortar la alimentación del dispositivo y luego reiniciarlo inmediatamente en una unidad flash USB para que el sistema operativo no sobrescriba inmediatamente el contenido de la memoria de acceso aleatorio. A continuación, busque en la memoria de acceso aleatorio material confidencial, descárguelo y váyase.
Y eso es. Claramente, el atacante debe tener acceso a la computadora en cuestión. Pero todo el proceso puede terminar muy rápidamente.
Los ataques de arranque en frío están especialmente diseñados para extraer información cuando el contenido se almacena en el disco de forma cifrada. La mayoría de los sistemas de encriptación manejan esto almacenando la clave de encriptación en la memoria de acceso aleatorio para que esté disponible rápidamente cuando sea necesario. Pero eso significa que la clave se puede leer en un ataque de arranque en frío.
Una vez extraído el contenido de la memoria, el atacante todavía tiene que encontrar la clave, lo que no siempre es del todo sencillo. Una forma de hacerlo es por fuerza bruta, probando cada secuencia de bytes posible como una clave potencial. Pero eso lleva mucho tiempo y es ineficiente. Otra forma es buscar los metadatos asociados con las claves, como los prefijos ASN.1 que se usan con las claves RSA.
Otra posibilidad más es buscar las propiedades matemáticas de las claves, como su alta entropía. Pero esto puede producir una gran cantidad de falsos positivos.
Probablemente la mejor forma de extraer las claves sea utilizar todas estas técnicas y cualquier otra que esté disponible.
Los expertos en seguridad han utilizado con éxito ataques de arranque en frío para vencer el cifrado de disco en una amplia variedad de computadoras. Lo han usado para atacar BitLocker que viene con Windows Vista, FileVault, que viene con Mac OS X y dm–crypt que se usa con Linux. También lo han usado en varios teléfonos inteligentes Android con datos encriptados.
Entonces, ¿qué se puede hacer para protegerse contra los ataques de arranque en frío? Wetzels dice que hay varias opciones con diferentes grados de efectividad.
Un enfoque obvio es no almacenar claves criptográficas en la memoria de acceso aleatorio durante más tiempo del necesario. Esto requiere un software que elimine la clave cuando se haya utilizado y sobrescriba esa sección de la memoria. Un ejemplo es una aplicación llamada Deadbolt para teléfonos inteligentes con Android, que sobrescribe de forma segura cualquier clave almacenada en la memoria tan pronto como se bloquea la pantalla del teléfono inteligente.
Otro enfoque particularmente prometedor es almacenar cualquier clave confidencial fuera de la memoria de acceso aleatorio. Una categoría propuesta de soluciones consiste en modificaciones del kernel que almacenan material clave criptográfico confidencial de forma segura fuera de la RAM de tal manera que las aplicaciones que se ejecutan con privilegios regulares no pueden acceder fácilmente a ellos y se pierden tan pronto como se reinicia la computadora, dice Wetzel.
También es posible obtener hardware que no sea susceptible a ataques de arranque en frío. Por ejemplo, es posible cifrar información almacenada en una memoria de acceso aleatorio y descifrarla cuando se utiliza.
Otra opción es usar discos que tengan su propio chip criptográfico que descifre los datos cuando sea necesario. De esta forma, la clave nunca se almacena en la memoria de acceso aleatorio ni es utilizada por la CPU del sistema.
Por supuesto, la seguridad de estos sistemas depende de garantizar que cualquier clave en la que se basen se borre cada vez que se pierda la energía.
Ninguno de estos es perfecto, por supuesto, y la conclusión de Wetzel es que los ataques de arranque en frío son un vector viable y realista para un atacante que busca extraer información confidencial contenida en la memoria.
¡Usted ha sido advertido!
Ref: arxiv.org/abs/1408.0725 : Oculto en la nieve, revelado en el deshielo: revisión de los ataques de arranque en frío