La XBOX al descubierto
---------------------------
Se difunde detallada documentación técnica, obtenida a través de
ingeniería inversa, sobre la consola Microsoft XBOX.
XBOX es una consola de videojuegos diseñada por Microsoft. Consta de una
CPU x86 a 733Mhz, 64 Mbytes de memoria RAM, un chip gráfico de última
generación, un lector de DVD y un disco duro. En realidad, se trata,
prácticamente, de un PC casi estándar. La XBOX, no obstante, dispone de
diversas contramedidas para evitar la piratería de videojuegos y la
elaboración de software de forma no autorizada por Microsoft.
El pasado Enero, HispaSec publicó un boletín en este mismo medio,
informando de la publicación del código objeto de la BIOS de la XBOX. En
esta ocasión, Andrew "bunnie" Huang descibe los fundamentos
criptográficos internos de la consola utilizados, por ejemplo, para
verificar la integridad y no alteración de la BIOS de la misma.
El documento, 15 páginas en inglés y disponible en PDF, proporciona una
lectura más que interesante a los aficionados a la ingeniería inversa.
Se publica, con todo lujo de detalles, el proceso de arranque de la
consola, y las relaciones criptográficas puestas en juego.
La XBOX arranca desde un bloque de 512 bytes integrado en el diseño del
propio "chipset" de la consola. Dicho bloque realiza una inicialización
básica del sistema, carga el "bootloader" desde la memoria FLASH, lo
descifra, verifica su integridad y le pasa el control de la ejecución.
El "bootloader", a su vez, completa la inicialización de la máquina,
carga una imagen kernel desde la memoria FLASH, la descifra, la
descomprime y verifica su integridad, pasándole el control.
De esta forma Microsoft se asegura que el sistema operativo almacenado
en la memoria FLASH no sea analizable y, sobre todo, modificable por
terceras partes.
La clave del ataque consiste en identificar el hecho de que el arranque
del sistema se realiza a través del bloque oculto en el "chipset", y no
en el vector de arranque de la memoria FLASH, que contiene rutinas
aparentemente fidedignas pero que no funcionan correctamente. Una vez
conocido este hecho, es tarea relativamente simple interceptar el bus
que va del "chipset" a la CPU y capturar el sector de arranque realmente
ejecutado por la consola cuando se inicializa.
Una vez capturado dicho bloque, que está en texto claro para poder ser
ejecutado por la CPU, se obtienen las rutinas de descifrado del
"bootloader" y su clave asociada. Con esta información resulta trivial
elaborar un nuevo "bootloader" y un nuevo "kernel", y reprogramar la
memoria FLASH con ellos. También, por supuesto, se puede utilizar esta
información para analizar el contenido de la memoria FLASH original de
la videoconsola.
El total, toda la experiencia consumió apenas 3 semanas de trabajo de
una persona, y 50 dólares en equipamiento.
Un detalle importante ha sido el descubrimiento de que el software de la
consola tiene acceso al número de serie hardware de la máquina. Ello
abre un mundo de posibilidades una vez que la consola se conecta a
Internet, por ejemplo, desde el punto de vista de identificar y seguir a
usuarios y sus hábitos.
También se ha encontrado una importante vulnerabilidad en el código de
arranque del "chipset", ya que para la inicialización del hardware de la
consola toma valores de una tabla, no cifrada, contenida en la memoria
FLASH. Alterando dicha tabla, que no está cifrada ni autentificada,
puede conseguirse alterar el arranque del equipo, saltándose las rutinas
de descifrado y verificación. Ello permitiría reprogramar la FLASH con
código propio, sin tener que preocuparse de obtener la clave de cifrado
del sistema.
La ingeniería inversa con fines de "interoperatividad" está protegida
por ley en muchos países del mundo, incluyendo EE.UU. y España. En ese
sentido, este "ataque", que abre la puerta a la posibilidad de ejecutar
código propio en la consola, sería legal.
Estos descubrimientos facilitan enormemente iniciativas como la de
desarrollar una versión de Linux para la XBOX. Esto es extremadamente
interesante, porque la XBOX se convertiría en un potente ordenador a muy
bajo coste.
Opina sobre esta noticia:
http://www.hispasec.com/unaaldiacom.asp?id=1333
Más Información:
Keeping Secrets in Hardware: the Microsoft XBox TM Case Study
ftp://publications.ai.mit.edu/ai-publications/2002/AIM-2002-008.pdf
http://web.mit.edu/bunnie/www/proj/anatak/AIM-2002-008.pdf
Keeping Secrets in Hardware: Xbox Case Study
http://slashdot.org/article.pl?sid=02/06/01/1656228&mode=thread&tid=172
bunnie's adventures hacking the Xbox
http://web.mit.edu/bunnie/www/proj/anatak/xboxmod.html
MIT grad student hacks into Xbox
http://www.msnbc.com/news/761330.asp?cp1=1
Un estudiante consigue las claves de seguridad de la Xbox
http://www.idg.es/pcworld/noticia.asp?idn=23867
Hackeando una XBox
http://barrapunto.com/article.pl?sid=02/06/01/230248&mode=thread&threshold=
03/01/2002 - Xbox al descubierto
http://www.hispasec.com/unaaldia.asp?id=1166
Jesús Cea Avión
jcea@hispasec.com