Un ataque de Evil-Maid es una técnica de explotación que consiste en manipular equipos desatendidos a los que se tiene acceso físico.
El nombre viene de que este tipo de ataques son realizados habitualmente en hoteles por parte de personas que se hacen pasar por limpiadoras.
Las formas más básicas de realizar un ataque de Evil-Maid consisten en reiniciar el equipo desde un dispositivo externo (usb, cd) con un sistema operativo apropiado (p.e. una distro Linux para forense) y montar el disco duro para obtener acceso a la información que contiene o bien extraer el disco duro directamente y montarlo en otro equipo.
Muchos seguramente habéis utilizado estas técnicas o similares, pero no con fines maliciosos, sino cuando se os olvida la contraseña del sistema o cuando tenéis que analizar un equipo de otro usuario.
A nivel corporativo o doméstico, este tipo de ataques pueden parecer algo poco habitual, solo al alcance de los servicios de inteligencia. Pero es algo cada vez más normal, dado que muchos solemos llevar dispositivos informáticos encima y dejarlos en hoteles, espacios de coworking, en el coche, etc.
Un ejemplo se dio en el famoso torneo EPT de Barcelona en 2013, donde varios jugadores descubrieron que sus portátiles habían sido manipulados:
En la última Blackhat/Defcon de las Vegas, varias personas hicieron fotos de sus equipos cuando los dejaban en el hotel y las compararon con cómo se los encontraron al volver de las charlas. Y sorpresa, algunos descubrieron que habían sido movidos, incluso a pesar de haberlos dejado en la caja fuerte:
En este caso si podemos suponer que se trata de la acción de profesionales. Y como se puede ver, incluso los profesionales pueden cometer errores. Esto otro le sucedió a un investigador de seguridad alemán en un hotel de Alemania, cuando dejo su PC en la habitación mientras impartía un curso de formación:
Y es que una de las dificultades de realizar este tipo de ataques es que pueden ser fácilmente detectados por usuarios precavidos.
Como medida de prevención, la mejor protección consiste en utilizar alguna herramienta de cifrado de disco, preferiblemente FDE (Full Disk Encryption) con una contraseña o llave introducida al arrancar, aunque incluso así nuestro equipo podría ser comprometido.
Joanna Rutkowska presento en 2009 una técnica para modificar el sistema de arranque de un equipo con Truecrypt y sustituirlo por una versión troyanizada que puede capturar la contraseña del sistema FDE. De forma similar se podría crear un bootkit para robar esta clave si estuviese almacenada en un dispositivo externo o se recibe por red.
Para evitar este tipo de manipulaciones lo recomendable es:
• Proteger la configuración de BIOS del equipo (desactivando el arranque desde dispositivos externos).
• Utilizar Safeboot o algún mecanismo similar para proteger el arranque.
Pero no es esta la única forma de recuperar las llaves de los sistemas de cifrado de disco. Si dejamos el PC encendido, estas pueden ser obtenidas de la memoria del equipo, mediante distintas técnicas:
• Extracción de memoria mediante DMA: Firewire, Thunderbolt, ExpressCard, etc.
• Ataques ColdBoot.
• Hibernando el equipo y copiando el fichero de hibernación (si no está cifrado).
Este año se ha presentado también una técnica para comprometer las llaves de cifrado de sistemas como Bitlocker si estas van asociadas a la cuenta de dominio del usuario, aprovechando varias vulnerabilidades descubiertas en el mecanismo de autenticación en red de Windows.
Una opción más segura contra este tipo de ataques es el uso de discos duros auto-encriptados (SED: Self Encrypting Disks) con autenticación en BIOS. En este caso el cifrado se realiza a nivel del disco duro y la clave de cifrado no queda nunca ni en memoria ni en disco. Aunque también existen vectores de ataque, especialmente si el equipo no está apagado.
Resumiendo, es difícil protegerse contra este tipo de ataques si se realizan por atacantes profesionales, de forma que es recomendable no dejar los equipos desatendidos y no viajar con datos sensibles, incluso aunque utilicemos cifrado.
Para los más paranoicos también podemos:
• No dejar nunca el equipo encendido o suspendido.
• Hacer fotos del equipo al dejarlo y verificar que no ha sido movido.
• Poner pegatinas o purpurina (patrón aleatorio) en los tornillos para detectar si el equipo ha sido abierto.
• Bloquear los conectores del equipo (sobre todo los puertos DMA e incluso los USB).
Por supuesto esto también se aplica a otros dispositivos como móviles, tabletas, etc…