La XBOX al descubierto :reir:
---------------------------
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.
Sacado de Hispasec.
www.hispasec.com
---------------------------
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.
Sacado de Hispasec.
www.hispasec.com