Avances en la scene de PS4: demostrada la ejecución de GNU/Linux

David Rodriguez
En la que parece ser una de las primeras aplicaciones prácticas del exploit a bajo nivel (es decir, con acceso de usuario privilegiado al sistema) que se anunciaba hace aproximadamente un mes, el grupo fail0verflow (conocido por sus logros en la scene de PS3, Wii y Wii U) presentó ayer durante la edición 31 del congreso "Chaos Communication Congress" o 31C3 su último logro: la carga de una versión modificada del sistema GNU/Linux en una consola PlayStation 4.

Para ilustrar el alcance del logro, además de mostrar las pantallas de su presentación directamente desde la interfaz gráfica funcional (incluyendo el escritorio ligero LXDE) del sistema arrancado, los miembros del grupo concluían su demostración con la ejecución bajo un emulador de Game Boy Advance de rendimiento aceptable (a pesar del renderizado por software) de una rom modificada para la ocasión de Pokémon Esmeralda.


Todavía contamos con pocos detalles sobre el método empleado para permitir la ejecución de código no firmado, en este caso iniciar el proceso de debootstrap que permite la carga de un kernel Linux modificado en unas 7000 líneas para hacerlo compatible con el hardware de la consola, así como el resto del sistema operativo. A juzgar por el inicio de la demostración, que conlleva el acceso a una página (seguramente redirigida desde una modificación local) de la guía de uso de la consola, se trataría del mismo exploit de webkit (el sistema sobre el que funciona el navegador web de la consola al igual que muchos otros como Chrome o Safari) que se había demostrado a principios de diciembre, probablemente parcheado en versiones del software de la consola superiores a la 1.76 y aún no puesto a disposición del público general.

En cuanto a la adaptación necesaria en esas 7400 líneas para el funcionamiento del kernel Linux 4.4, las pantallas de la presentación de fail0verflow relatan algunas de las peculiaridades del hardware de la consola, en la que han conseguido acceso a los 8 núcleos de la CPU AMD, incluyendo el soporte para escalado de frecuencia. La APU, relativamente comparable a las Radeon producidas para PC y cuyo elemento más complicado para estos propósitos es el subsistema de acceso a la memoria unificada, recibe distintos nombres en clave como Liverpool o Starsha según el componente consultado. Por su parte, el concentrador de controladores de entrada/salida (Southbridge) es consistentemente llamado Aeolia en el sistema, y exhibe una disposición poco estándar que prácticamente rompe la especificación PCI.

En el estado actual, la imagen GNU/Linux que demostraron tiene acceso a sistemas periféricos como la tarjeta de red, el controlador WiFi y Bluetooth, los leds, el puerto serie y la salida digital de audio (S/PDIF) y video (HDMI). La presentación gráfica se realiza de momento en modo directo (framebuffer), mientras trabajan en la disponibidad de aceleración de la GPU, y el equipo espera lograr pronto la codificación de audio a través del HDMI y el acceso al subsistema USB, que según explican podría abrir también una vía al uso del disco duro interno. El almacenamiento óptico (disponible a través del estándar AHCI Sata) no ha sido objeto aún de sus pruebas.

Los desarrolladores han prometido la puesta a disposición del público de los parches para el kernel que permiten su ejecución con el hardware de la consola, así como del código que permite el arranque del sistema GNU/Linux, pero no publicarán el exploit necesario en primer lugar para la ejecución de cualquier código no firmado en la consola. Sobre este aspecto afirman que la seguridad del firmware es suficientemente baja como para que otros puedan proporcionar sus propios puntos de inyección de código (además es bastante probable que la autoría del que emplearon en la demostración corresponda a otro grupo o desarrollador).

En resumen, lo que sabemos es que a través de un exploit no disponible todavía y probablemente limitado a versiones muy antiguas del firmware de PS4 se puede ejecutar código (hasta aquí nada nuevo), y que con una modificación sustancial del soporte de hardware del kernel Linux, esta posibilidad puede emplearse para cargar un sistema operativo completo con acceso considerable al sistema. La disponibilidad de esta imagen no resulta de utilidad para el público general hasta que se publique una forma de ejecutar código no firmado, y en todo caso su aplicación no tiene nada que ver con la carga de copias de seguridad de software PS4, sino con la de ejecución de software compatible con GNU/Linux en la consola.

Por supuesto, el poder ejecutar este sistema operativo abre considerables posibilidades, sobre todo en el caso de conseguirse el soporte de aceleración de la GPU y el correcto acceso a la memoria de sistema, dada la abundantísima disponibilidad de software de todo tipo que la convertiría en un equipo de propósito general. Específicamente en el ámbito del entretenimiento, además de los magníficos centros multimedia como Kodi (antes XBMC) o MythTV y algunos de los mejores emuladores multisistema como Retroarch, la arquitectura x86 de la plataforma la haría en principio compatible con la versión GNU/Linux de Steam y sus más de 3500 títulos disponibles.