Disco rígido con mente propia = ideas impropias

Gabolonte Blasfemus

wdImaginate que, de la manera que sea, descubrís que infectaron tu PC. Ninguna solución antimalware parece erradicar los malos bits, por lo que procedés, mecánicamente, al mismo paso que cualquier haría: Formateo de disco y reinstalación de cero del SO. Cuando finalizás la instalación, descubrís que el malware de la instalación original continúa ejecutándose en la nueva. Ya, algo nervioso, procurás el medio de instalación más confiable que consigas y, luego de asegurarte de haber eliminado todas las particiones del disco, haber sobrescrito la MBR 2 veces, y haber reinstalado nuevamente el sistema sin siquiera haber copiado en el ni un solo archivo de la instalación original, volvés a encontrarte con el rostro del mal en tu propia computadora. Puede ser tranquilamente la pesadilla de todo geek, y ahora también sabemos que puede ser una realidad para algunos.

El especialista en seguridad Bruce Schneier es uno de los que le dedican completa atención a los ya famosos archivos filtrados de la NSA, y regularmente viene listando diversos artilugios de espionaje que figuraban en el catálogo del 2008 de la infame agencia, con nombres tan creativos como sus funciones, y que parecen sacados de una película de 007. Uno de ellos es IRATEMONK (que traducido al español sería algo como Monje Furioso), y se trata ni más ni menos de uno de esos fantasmas temibles cuyos cuentos espeluznantes nos quitan el sueño a quienes estamos en IT: Malware implantado en el firmware. Pero lo que hace especial a este monje es que no se refugia en un lugar ya común de la paranoia como el BIOS del motherboard de una PC, sino que lo hace en un lugar prácticamente ignorado y desconocido por la mayoría: La electrónica del disco rígido. Desde ahí, puede asegurarse que no importa cuantos reparticionados, formateos o instalaciones sufra, el sistema finalmente instalado siempre terminará teniéndola adentro. Eso significa que un blanco de espionaje, en tanto y en cuanto siga con su misma máquina y/o disco rígido, siempre tendrá su equipo comprometido, no importa cuántas veces instale desde cero el software.

Ahora, bien podríamos pensar que esto es algo que sólo un organismo omnipotente como la NSA puede conseguir, y que está lejos de la comprensión del resto de los mortales, por lo que, obviando al gran elefante de estrellas blancas sobre fondo azul con anteojos de sol y audífonos que está en la habitación, nadie más debería ser capaz de semejante hechicería. Pero la realidad tiene esa mala costumbre de demostrarnos cómo solemos quedarnos cortos a la hora de las estimaciones de oído.

La mini consola de juegos basada en Raspberry Pi de Jeroen Domburg; para jugar a dos manos.

La mini consola de juegos basada en Raspberry Pi de Jeroen Domburg; para jugar a dos manos.

Jeroen Domburg es un ingeniero holandés al que le encanta jugar tanto con hardware como con software para lograr cualquier idea que se le ocurra, por más alocada que esta sea. Su sitio SpritesMods.com así lo refleja, en él va volcando cada experimento que hace en sus ratos libres. Algunos tal vez lo conozcan por haber creado la consola de videojuegos más diminuta del mundo usando un Raspberry Pi, pero en este momento es otro de sus hacks el que nos interesa, uno que involucra a, ni más ni menos, un disco Western Digital. Jeroen logra descubrir que un disco rígido común como el que reside en cualquier PC contiene, en su placa de circuitos, un procesador ARM multinúcleo (en el caso del que el tenía eran 3) y suficiente memoria DRAM y flash como para ser utilizado como cualquier sistema microcontrolador multipropósito; en pocas palabras, si lograba alterar su programación podría hacerle hacer absolutamente lo que él quisiera. Y así fue; en primer lugar consiguió obtener información sobre los núcleos y el software que ejecutaban gracias al puerto JTAG que la mayoría de los microcontroladores poseen. Luego de tener una idea de todo el hardware, sus funciones, y un mapa del direccionado del sistema, fue capaz de alterar la programación original agregando una rutina propia que escribía una secuencia de datos específica al inicio de cada archivo. El único problema es que estas modificaciones eran al vuelo, sobre la memoria RAM del sistema, por lo que se perdían al reiniciar el microcontrolador, y además seguía utilizando el puerto JTAG, que requiere una conexión especial a la placa de circuito, algo imposible de hacerle a un disco rígido instalado dentro de una PC. Entonces fue cuando, ahondando más, descubrió que los fabricantes de discos rígidos utilizan ciertas secuencias de comandos específicas a través del puerto SATA para, a través del mismo, actualizar la memoria flash donde reside la programación del microcontrolador. De esta forma no sólo fue capaz de subir sus modificaciones directamente a través del puerto SATA, sino que incluso logró hacer correr un kernel Linux, dándole todo un nuevo significado a la frase instalé Linux en mi disco rígido.

Jeroen Domburg, un groso de la ingeniería inversa.

Jeroen Domburg, un groso de la ingeniería inversa.

Jeroen explica como todo lo descubierto por él conforma el set de know-how esencial para obtener malware residente en el firmware del disco rígido, que infecte una y otra vez todo sistema que corra. Dice que la infección puede dispararse, por ejemplo, cuando el firmware modificado del disco lea un archivo con una cadena única y específica de datos. Esa cadena podemos mandarla nosotros mismos al servidor cuando más nos guste, de diversas maneras, de acuerdo a los servicios que corra el mismo: Si es un servidor web, basta mandar la cadena específica dentro de la URL, que tarde o temprano terminará escrita en disco a través del log del servidor. Las formas de desencadenarlo pueden ser innumerables. ¿Y cómo infectamos el firmware del disco en un primer lugar, sin acceso físico? Fácil, mediante el 0-day exploit de moda que brinde acceso remoto al servidor se ejecuta software que sobrescriba el firmware a través del puerto SATA, como vimos antes. Tal vez el servidor sufra un kernel panic en ese momento, pero al reiniciar todo andará como siempre, y la flash del disco ya estará comprometida.

Pero los usos de modificar el firmware de un rígido para nuestros propósitos no tienen que ser necesariamente malignos, Jeroen también explica que puede usarse para obtener un disco a prueba de clonado, en donde si el acceso es al azar, con lecturas y escrituras combinadas, tal como lo sería con el uso normal de un sistema operativo, no pasa nada, pero en cuando el acceso involucra sólo lecturas secuenciales, como ocurriría si el disco estuviese siendo clonado, su firmware comenzaría a mandar información falsa en lugar de los verdaderos contenidos de los archivos.

Ahora resta el ejercicio de pensamiento final. Imaginen, si un sólo tipo (por supuesto, convengamos que no es cualquier tipo, pero también convengamos que existen muchos en el mundo con su nivel) fue capaz de tener todo listo para crear un malware permanente viviendo dentro de las entrañas de un disco rígido convencional, nos extraña que la NSA con todos sus recursos, lo pueda estar haciendo desde hace años? Peor aún, ¿nos extrañaría que muchas otras organizaciones y black hats de alto nivel lo estén haciendo de manera rutinaria, incluso masiva? Por supuesto, hay un pequeño pero en esta técnica que es que en cada modelo y marca de disco rígido la arquitectura de la placa controladora puede variar, por lo que es necesaria una buena dosis de horas de trabajo e inversión para lograr cubrir todas las marcas. Nada que un trabajo financiado por alguna organización pesada no pueda cubrir, además, ¿quién puede contar más de 5 fabricantes mundiales de discos rígidos? No me parece un tiro tan lejano ya…

 

 


Comments are closed.