Este hack que se publicó hace tiempo me ha recordado los tiempos viejunos de los 70 y 80s en los que se podían hackear las máquinas recreativas de videojuegos para conseguir partidas gratis con un Magiclick. Pero David Buchanan consiguió llevarlo un nivel más allá: en Can You Get Root With Only a Cigarette Lighter? (2024) explicó cómo se puede aprovechar un efecto similar para conseguir privilegios de root en Linux en ordenadores antiguos. MacGyver estaría orgulloso.Este investigador ha demostrado que basta un mechero piezoeléctrico, un cable y algo de maña. No explota ningún bug de software, sino un fallo físico provocado a propósito: una inyección electromagnética sobre la RAM (nombre guay para «chispazo») que fuerza errores en bits concretos mientras el sistema lee o escribe datos.¿Cómo se hackea un ordenador con un mechero?En las recreativas se usaba el famoso Magiclick: un encendedor de chispa que produce el mismo efecto piezoeléctrico para encender el gas de las cocinas. El truco era tocar con el Magiclick la zona metálica donde se introducían las monedas o alguna otra; con una descarga breve el contador de monedas detectaba un pulso eléctrico y se obtenían créditos gratis.Volviendo al siglo XXI, para demostrar que se podía hacer algo parecido con un ordenador intentó hackear un portátil Samsung de 2011 equipado con un Intel Core i3-2310M y 1 GB de RAM DDR3. (En ordenadores más modernos probablemente este método no funciona.) Lo que hizo fue soldar un cable a una línea de datos del módulo, añadir una resistencia de 15 ohmios y usar un pequeño cable como antena. Ni siquiera hace falta contacto físico al hacer el ¡click! Si el mechero está cerca, la chispa genera interferencias que alteran algunas operaciones de la memoria. La clave es que el fallo no sea totalmente aleatorio: en sus pruebas logró repetir cambios en un bit concreto, lo bastante como para construir un ataque encima.El objetivo final era corromper las tablas de páginas de Linux, que son las estructuras que traducen las direcciones virtuales de un proceso a memoria física real. Si una entrada de esas tablas se estropea en el momento justo, una página normal y corriente puede pasar a apuntar a otra zona mucho más sensible. Para aumentar las probabilidades, llenó aproximadamente la mitad de la RAM física con tablas de páginas preparadas y forzó accesos continuos a la DRAM (evitando las cachés). Comprobó que al alterar el bit 29 de una dirección la referencia se desplazaba, consiguiendo así el objetivo.Cuando el truco sale bien, la entrada corrupta acaba apuntando a una de esas tablas ya preparadas, accesibles desde el espacio de usuario. Desde ahí, el atacante puede leer y escribir memoria física de forma arbitraria. El paso final consiste en localizar la primera página de /usr/bin/su, que ya es un ejecutable setuid root, y reemplazar en memoria su copia en la caché de páginas por un pequeño programa malicioso que abre una shell con privilegios. No se accede al disco; lo que se «envenena» es solo la copia en memoria, pero eso basta para que, al ejecutar su, el sistema arranque el código inyectado y conceda privilegios de root.A partir de ahí, Linux queda vendido. La página tiene incluso un vídeo de demostración. No es un ataque práctico para cualquiera: requiere incluso acceder al equipo físicamente, abrirlo soldar… Tampoco es especialmente limpio, ni para nada fácil, ni fiable, pero… a veces los hackeos son así. En cierto modo es una demostración de que, incluso sin bugs de software, se puede conseguir privilegios de root en un PC con Linux atacando directamente el hardware. Los equipos modernos tienen mejores protecciones contra este tipo de alteraciones, pero muchos otros sistemas siguen cojeando en este aspecto.# Enlace Permanente