Si existe un elemento
malicioso con poder, temible y endiabladamente silencioso todo el mundo tiende
a pensar en un rootkit. Un rootkit se
instala en el mismo corazón del sistema, ahí construye su morada, habita y
sale de caza cuando las condiciones le son propicias. Es devastador, el
depredador perfecto, con capacidad para engañarte y los privilegios del núcleo
del sistema e incluso más. Lo más parecido a un rootkit en el mundo real sería
una cuenta en un paraíso fiscal. Oculta, poderosa, resistente a la ingeniería
inversa y pensada para aprovecharse de los recursos del sistema mediante la
perversión.
El dominio de un rootkit se mide por la
capacidad de este para penetrar en el sistema. Más profundo, más privilegios.
Todo el mundo piensa en el núcleo, pero imagina por un momento que antes de que
el propio núcleo tenga la oportunidad de pasar por la CPU, mucho antes, existe un proceso de arranque que toma el control
de todos los elementos para finalizar entregando el mando al sistema. Si es
posible llegar hasta ese lugar donde comienza a despertar la máquina, el
rootkit no solo será poderoso, también será
inmortal.
Todo esto es lo que podría haber pasado por
la cabeza del investigador portugués Pedro Vilanças (@osxreverser) cuando descubrió que
todos los MacBook de Apple, anteriores a mediados de 2014, podían ser
envenenados y al despertar de la hibernación notar la extraña presencia de un
nuevo inquilino en el lugar.
Vilanças se interesó por los ataques a la EFI
(Extensible Firmware Interface) a raíz de la recuperación de una contraseña de
firmware que olvidó. Hablar de firmware e ingeniería inversa es hablar de
adentrarse en una nueva dimensión donde parte del tiempo el investigador ha de
alejarse del teclado para llevar sus dedos sobre los propios chips donde ya no
se habla de simples variables, punteros o estructuras en memoria, sino de
pulsos, frecuencias y voltajes.
A raíz de los trabajos de los investigadores:
Trammell,
y Rafal Wojtczuk junto con Corey
Kallenberg,
se podía llegar a la conclusión de que la modificación del firmware con acceso
físico era posible a través del ataque
de Trammell, ayudado con un dispositivo denominado OptionROM. Eso dejaba el
vector de ataque limitado por ese "acceso
físico", lo cual no es práctico para un atacante (ya sabéis lo engorroso que es eso de montar una
operación de campo: alquilar disfraces, distraer al objetivo y vigilarlo a
través de un periódico agujereado desde un banco del parque).
Un ataque al que se le queda corto el
adjetivo de sofisticado. Pero estaba esa pega del acceso físico, la necesidad
de enchufar un cacharro que portaba un exploit en un puerto Thunderbolt, eso le
quitaba elegancia al ataque.
Si se tiene cierto dominio del portugués, es
fácil imaginar la exclamación de sorpresa que Pedro Vilança pudo haber soltado
al descubrir algo que iba a cambiar la aproximación al ataque. Es posible manipular el firmware de un
MacBook en remoto, sin necesidad de hardware adicional o acceso físico.
Vilanças se dio cuenta de que las protecciones contra escritura de la
BIOS se encontraban desactivadas tras la vuelta del sistema desde el modo Sleep.
Curiosamente y en concreto el sistema ha de estar algo más de 30 segundos para
que tal evento ocurra.
Observemos un extracto del software empleado
para leer la BIOS y su estado 'flashrom',
antes del modo Sleep:
SPIBAR
= 0xfed1c000 + 0x3800
0x04:
0xe008 (HSFS)
HSFS:
FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=1
Warning:
SPI Configuration Lockdown activated.
Reading OPCODES... done
Y esta otra cuando se toma tras volver del
modo Sleep:
SPIBAR
= 0xfed1c000 + 0x3800 0x04: 0x6008 (HSFS)
HSFS:
FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=0
Programming
OPCODES... done
Asombrosamente las protecciones están desactivadas (observemos la bandera
FLOCKDN, flash lockdown) y esto no pasa desapercibido incluso para el propio
software, cuando avisa del bloqueo en el primer registro:
Warning:
SPI Configuration Lockdown activated.
La especificación ACPI define varios niveles
o estados de consumo. El estado S3 hace referencia a la suspensión del sistema
en RAM, es decir, todos los componentes son "apagados" a excepción de la RAM en la que el estado del
sistema es mantenido hasta la transición hacia un estado operacional. Esa
transición es controlada por un proceso perteneciente al EFI y según Vilanças
es posible que contenga un bug que explicaría la vulnerabilidad.
Explica el propio Vilanças en su blog que no
ha encontrado el mismo fallo en unidades posteriores a mediados o finales de
2014. Se pregunta si esto ha sido
parcheado por Apple. Queda la duda abierta, puesto que aun no ha salido una corrección para los
firmwares afectados.
Uniendo todas las piezas queda claro que,
aunque es complejo, existe ventana para
manipular la BIOS de un Macbook mediante la visita de una web, abriendo un
archivo de video o un documento. Si los elementos se alinean del modo
adecuado la fatalidad puede llegar a morder la manzana y envenenarla.
Cualquier servicio de inteligencia hubiera
cubierto de oro a Vilanças por tener exclusividad, sin embargo ahí tenemos la
información y es de agradecer que todos los usuarios de un Macbook sepan que
cuando su portátil se deshaga del abrazo del sueño y vuelva a mundo de los
vivos puede que no sea el mismo. Es más puede que ya no sea ni suyo.
Propuso Goya que el sueño de la razón produce
monstruos. Ahora sabemos que el despertar instala rootkits.
Más información:
The Empire Strikes Back Apple – how your Mac
firmware security is completely broken
David García

Si hubiera revelado los detalles a un (y sólo a un) Servicio de Inteligencia, ya estaría más muerto que Carracuca.
ResponderEliminarLo hubieran cubierto, pero no de oro, sino de tierra. Dos metros, para ser exactos.
Por lo demás, buen artículo, David. Se agradece el tinte libertario mencionando los paraísos fiscales como ejemplo.