Estas aquiContenido / A propósito del "ataque del frío"

A propósito del "ataque del frío"


Poradmin- Publicado el23 Febrero 2008

Tenía pendiente leerme el reciente trabajo sobre persistencia de memoria residual en la RAM de equipos apagados y ya he hecho mis deberes. Expondré a continuación algunas de mis conclusiones, en la esperanza de que contribuyan a despejar algunas dudas que los lectores han expuesto en sus comentarios o, en el peor de los casos, que al menos mis palabras fomenten el debate sobre algunos aspectos colaterales.

Comenzaré por mis conclusiones. Si eres un émulo de Jack Bauer, seguro que la agencia para la que trabajas es plenamente consciente de este riesgo y hace tiempo que te habrá provisto de un sofisticado (y caro) portátil, equipado con refuerzos mecánicos dirigidos a impedir una rápida extracción de tus módulos de memoria o incluso con algún módulo soldado firmemente a la placa. No obstante, eso no te libera de la necesidad de controlar en todo momento tu portátil, sobre todo cuando lo tienes encendido, suspendido o hibernando. Una vez lo apagues del todo, bastará con que lo tengas controlado durante un minuto más para que ni un atacante equipado con nitrógeno líquido (que en tu "negocio" puede haberlos) pueda extraer tus claves de la memoria.

¿Y los usuarios comunes? Pues básicamente lo mismo: tu portátil corre peligro si te lo "levantan" mientras tiene algún tipo de vida eléctrica, y si está recién apagado aún puede extraerse algo de la RAM, pero dudo que tu atacante sepa cómo hacerlo, o que tenga el tiempo, la habilidad y el interés necesarios para rociar tus DIMM con un spray invertido ;)

Sin embargo, que no se me entienda mal, porque mis afirmaciones anteriores no pretenden quitar ningún mérito ni interés a un excelente trabajo que aunque sólo fuera por su poder desmitificador ya valdría su peso en oro. Pero es que además -como dije al principio- nos va a permitir hacer algunas reflexiones sobre algunos aspectos interesantes...

Por ejemplo:

  1. Algunos lectores parecen dar a la BIOS un papel protector frente a este tipo de ataques del que desde luego carece, porque la mayoría de ellas permiten seleccionar un modo de arranque rápido (denominado generalmente "quick boot" o algo similar) que omite los tests destructivos para la memoria del POST (Power-On Self Test). En esas condiciones, la BIOS se limita a sobre escribir unos pocos megabytes del espacio total de direcciones.
  2. No se requiere ningún equipo especial para poder leer la memoria residual.
  3. Aún si se logra eludir la sobreescritura destructuva realizada por la BIOS (como comentamos en el paso 1) es necesario impedir la carga de un sistema operativo al uso, porque eso sí que acabaría con casi cualquier rastro en la memoria residual. La forma de evitar esto consiste en utilizar alternativas para el arranque, como el PXE (Preboot Execution Environment) de Intel, o un cargador de arranque SYSLINUX desde un dispositivo USB (u otro disco). En el primer caso (PXE) los autores del trabajo consiguieron transferir los datos residuales de 1 GB de RAM en un minuto. En el caso de USB tardaron 4 minutos.
  4. Algún lector opinaba que bastaba programar un borrado seguro (wipe) al apagar la máquina para resultar inmune, pero -como otro lector acertadamente respondió- esa protección resulta inútil ante un apagado inesperado. Lo mismo cabe decir de cualquier otra solución de borrar-al-apagar que confíe en el sistema operativo o las aplicaciones.
  5. La posibilidad de ataques remotos resulta muy interesante, aunque sólo es aplicable a máquinas que arrancan desde la red. Se podría comprometer alguna máquina de la red para configurarla como un servidor de arranque PXE, desde el que podría obtenerse un volcado de memoria desde la máquina objetivo, que además podría pasar desapercibido si se camuflara como un rearranque motivado por una actualización de software, por ejemplo. Demasiado sofisticado -lo sé- para quienes no somos Jack Bauer ;)
  6. Otro aspecto muy interesante de la investigación radica en la elaboración de algoritmos para la reconstrucción de las claves de cifrado completas a partir de los fragmentos de las mismas recuperados. En ese sentido parecen ayudar mucho las precomputaciones que la mayoría de los programas de cifrado realizan (y almacenan en memoria) a fin de acelerar las operaciones. Para dar una idea de la efectividad de estos algoritmos, el trabajo asegura que con tasas de decaimiento típicas la probabilidad de recuperar una clave DES de 56 bits es superior al 98%, o de más del 96% para una clave Triple DES de 168 bit.
  7. No menos interesantes resultan las herramientas aplicadas para detectar la presencia de claves de cifrado en volcados de memoria, como keyfind para claves AES de 128 y 256 bit.
  8. Como dijimos también al principio (y además hemos comentado en otras ocasiones), este trabajo conluye que un atacante "moderadamente capaz" puede saltarse la mayoría de los programas de cifrado de disco (por no decir todos) si accede al portátil cuando está encendido o suspendido. Obtener imágenes de memoria y localizar las claves es cuestión de unos pocos minutos y puede realizarse con herramientas automatizadas.
  9. Como dijimos en la nota inicial, todos los programas de cifrado, y en todos los sistemas operativos, pueden resultar vulnerables al ataque, pero algunos lo son más que otros. Mención especial requiere el BitLocker que se incluye en las versiones más caras de Windows Vista, y cuyo modo básico (por defecto) parece resultar particularmente vulnerable, hasta un punto de que la propia Microsoft reconoce. También destacan los autores un hallazgo adicional: Mac OS X 10.4 y 10.5 mantienen múltiples copias de la contraseña de login del usuario en memoria, lo que la hace susceptible a este tipo de ataques.
  10. Por último, es necesario mencionar que este tipo de ataques no sólo permiten obtener las claves utilizadas para cifrar el disco, sino que tienen muchas más aplicaciones. Por ejemplo, mediante la utilidad de búsqueda de claves en memoria también podrían localizarse contraseñas, números de cuenta, etc. Y también resulta posible atacar sistemas DRM (protección de contenidos digitales), en la medida en que suelen guardar sus claves en memoria. También son particularmente sensibles los servidores Web, por cuanto deben mantener en memoria las claves privadas requeridas por las sesiones cifradas con SSL.

Creo que el resumen esbozado contiene bastante aspectos susceptibles de un animado debate, pero no debe evitar una lectura atenta del trabajo original, que es lo único que podría evitar los errores a los que puedan inducir mis personales interpretaciones e inevitables sesgos.

Etiquetas

Comentarios

Selecciona arriba tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tu elección para próximas visitas (sólo si eres usuario registrado).

Es recomendable seguir el método que han propuesto para saber si la memoria se limpia después de un reinicio del sistema o no.

1. Create a Python program with the following code:

#!/usr/bin/env python

# a pirate's favorite chemical element
a = ""
while 1: a += "ARGON"

2. Run the sync command to flush any cached data to the hard disk.

3. Start the Python program, and allow it to run for several minutes. It won’t display anything on the screen, but after a while you should see hard drive activity as the memory fills and data gets swapped to disk.

4. Deliberately crash the system by turning the power off and on again or briefly removing the battery and power cord.

5. After the system reboots, look for the “ARGON” pattern in memory. You can use the following command to print strings of text contained in RAM:

sudo strings /dev/mem | less

If you see copies of the string “ARGON”, some of the contents of memory survived the reboot. You’ll see many other strings that were loaded into memory when the system restarted, and possibly other data left over from before it rebooted.

Hola: Como ejercicio técnico es de admirar; pero la verdad es que me parece que es rizar el rizo, teniendo en cuenta la mayoría por comodidad no borra la memoria virtual y con todo lo que hay metido...

He hecho un par de trabajitos (pam_pkcs11) sobre el tema, y doy fe de que al menos en Linux se hace lo imposible por que las claves estén en memoria el menor tiempo posible:

399 	  /* check password length */
400 	  if (!configuration->nullok && strlen(password) == 0) {
401 	    release_pkcs11_module(ph);
402 	    memset(password, 0, strlen(password));
403 	    free(password);
404 	    pam_syslog(pamh, LOG_ERR,
405 	         "password length is zero but the 'nullok' argument was not defined.");
406 	    return PAM_AUTH_ERR;
407 	  }

Si a algun desarrollador se le olvida poner a ceros -memset()-la contraseña antes del free(), le echan de la comunidad.... :-). De esta manera la ventana de exposición es prácticamente nula

Ahora, que no puedo afirmar lo mismo de los desarrolladores de otros ¿sistemas? ¿operativos?

Por lo que -al menos en Linux- en lo que respecta al punto 10 (búsqueda en memoria de las contraseñas) podemos estar moderadamente tranquilos

probando sudo strings /dev/mem | grep TROZODEMICONTRASEÑA

mi clave truecrypt no apareció (teniendo en cuenta que la clave criptográfica para los volúmenes es una derivada sha1 sobre la contraseña de texto que introduzco, eso no quiere decir que esté a salvo, que lo sepais).

En cambio mi clave pam si que salió.

En mi caso haciendo lo mismo, han aparecido la contraseña de la cuenta de gtalk, de la cuenta de inicio de sesión (también es cierto que me la pidió justo antes por el tema del 'sudo') y la contraseña de alguna página web...vamos, que si vas y te copias el fichero /dev/mem de alguien se la puedes liar parda! xDDDD

Según tengo entendido el procesador C7 de Via tiene un "módulo" llamado VIA PadLock Security Engine que se encarga del cifrado AES por hardware y yo pregunto... ¿sería un modo de "burlar" este tipo de ataques, usando el hardware dedicado para el cifrado de la información, o siempre la ram sería el punto debil?

presurizando la caja y un generador de pulso electromagnético conectado a un sensor de presión XDDD

This s Ta w4y !

Tocan la caja y pum!, de uno solo vuela toda la porno, listo nunca nadie supo y nunca nadie sabra.

xP

....y si te vas a un ciber/universidad/sitio_donde_se_comparten_ordenadores? en esos sitios normalmente sólo se cierra sesión (porque es como te lo encuentras, para que el que viene detrás no pierda tiempo en arrancarlo), ahí si que puede ser la fiesta padre.... xDDDD

Un día pillaré un volcado de una de las máquinas del lab a ver qué sale :P

En mi Pais se esta fomentando el cumplimiento de los contribuyentes (si se pagan poco los impuestos); y esto funciona con incursiones sopresivas de agentes del Fisco.

Por lo que creo que este ataque es muy efectivo ya que ellos durante su inspección pueden asirce de las computadoras de una oficina y extraer el contenido de la memoria a los fines de descubrir aquellos programillas que estuviste corriendo (que generalmente lo hacen desde Pendrives).

Por lo que creo que no hay que ser un Jack Bauer para que te pase, pero es algo que debería dejar sin sueño a los evasores de impuestos al menos.

Saludos y el tema me resultó muy interesante.

Publicidad

Patrocinadores

Kriptópolis alojado en
Zilos-Veloxia Network

Tu mejor defensa:
Bufet Almeida

Publicidad