PARA QUIENES ESTAN CURIOSOS POR LO QUE SIGNIFICA LA SEGURIDAD DEL PS3, ESTE BUEN TRABAJO DE DANTEHADES DE DEMONHADES.ORG NOS ACLARA MUCHAS COSAS...
Iniciación a PS3 Aprende e investiga la seguridad de PS3
En este PDF aprenderemos por encima los conceptos básicos para analizar un sistema y saber a lo que nos enfrentamos…
Principalmente podréis ver los métodos de seguridad del sistema PS3.
2010 DanteHades DH.org 16/03/2010
Conceptos básicos de Hacker
¿Cómo se analiza un sistema para hackearlo?:
Primeramente para saber analizar un sistema tenemos que hacer una valoración tanto subjetiva como visual; cuando hacemos el análisis de un sistema vemos las vías de ataque para poder saber a lo que nos enfrentamos.
¿Cuáles pueden ser las vías de ataque?
Realmente no hay una vía de ataque similar a otra entre diferentes sistemas, los hay desde que repercuten en el lector de CD-ROM, otros en las Memory Card (PS2), otros vía SaveGame de juegos, otros mediante un archivo de imagen (TIFF es el más común) y otros mediante chips.
¿Cuáles son los pasos?
1. Analizamos todos los puertos del Sistema (USB, Ethernet, CD-ROM, etc…)
2. Analizamos la arquitectura del Sistema (Su Sistema Operativo y el código que lo interpreta).
3. Analizamos los elementos internos de la Placa Base (CPU, GPU, RAM, NandFlash, HDD).
4. Observamos el contenido digital de lo que el Sistema permite, sabiendo esto vemos si tiene algún tipo de protección y el medio que necesita para ser usado el propio código.
Ejemplo:
Me he dado cuenta de una cosa, el Pen Drive se ilumina cuando meto un juego…
Esto quiere decir una cosa, y es que en el procedimiento busca algo en ese Pen Drive.
Vamos a mirar dentro de él, podemos observar que ahora hay archivos que antes no había pero hay muchos y no conozco ninguno… Vamos a borrar 5 de esos 10 archivos que encontramos.
Metemos el juego de nuevo con el Pen Drive y vemos curiosamente que la luz que parpadeaba antes ahora ya no parpadea. ¿Qué hemos hecho? Muy fácil acabamos de borrar un archivo que necesita para cargar el cual podemos modificar y atacar… Solo es cuestión de localizarlo.
Tras un tiempo para localizar el archivo que hacia parpadear la luz, lo examinamos y observamos dentro de él una ruta hacia C: xxxxxx. Si lo cambiamos por otra ruta… ¿Qué pasará? Pueden pasar muchísimas cosas pero ya sabes cómo modificar y hackear un sistema ya que estás alterando la forma que tiene el Sistema de cargar un archivo.
Protección en Discos
¿Qué es el área de protección?
Esta área es una región protegida del soporte óptico (CD, DVD, BD) en el que las compañías almacenan un código de autentificación.
¿Por qué una copia no funciona y uno original si?
Cuando realizamos una copia del original, esta no puede ser grabada en el virgen a escala 1/1, ya que el virgen trae su propio código del producto… Por ejemplo:
- Juego Original >>> Sony Computer Entertaiment IDxxxxxx
- Disco Virgen >>> Recordable Disk Verbatim
Estos dos ejemplos siguientes muestran el área de protección y lo que el Sistema buscará, en este caso el de Sony.
La circunferencia roja muestra el Área de Protección
1. En el momento que insertamos el disco la consola en este caso PS3 leerá el Área de Protección, si no está su interpretación será que no es un juego Original por lo tanto la PS3 lo reconocerá como CD, DVD o BD de Datos.
Entonces… ¿Cómo hacemos para que cargue la copia?
Primeramente para que cargue la copia tendríamos que engañar al sistema que busca esa Área de Protección, para ello solo se podría cambiando la programación del lector, que es quien busca esa área, pero si lo cambiamos a otro lado lo leerá.
Desplazamos el Área de seguridad para que lo lea en otra capa no usada por el disco y esté disponible (Emplearíamos discos Dual Layer) Acto seguido le decimos al lector que lea esa nueva capa como si fuese original, con esto no leerá el Área de Protección que venía por defecto
no valida… (La circunferencia Roja del BD Verbatim) sino que leerá la misma que tenía real (La circunferencia Roja del GTA IV) pero en otra ubicación.
Seguridad en PS3
PlayStation 3 es el sistema más seguro hasta la fecha en el mundo, su protección reside en una combinación de hardware y software de última tecnología.
Protecciones del Sistema PS3
1. Lector BluRay.
2. Protección contra código malicioso.
3. Protección contra fallos que provoquen un desbordamiento.
4. Protección contra manipulación de archivos del Sistema.
1. Lector BluRay
El lector BluRay cuenta con varias protecciones, entre ellas las siguientes:
Máquina Virtual Java: genera certificados del disco introducido que posteriormente se guardan en el HDD.
Área de Protección: donde está la llave de descifrado de la KEYBD, esta llave lo que hace es similar a la Capa de Protección (Layer Crypt BD), sin esta llave el contenido no puede ser descifrado.
Capa de Protección (Layer Crypt BD): Esta capa es aplicada en la tecnología BluRay. Lo que hace es que los archivos son destrozados mediante un algoritmo matemático, lo cual hace los archivos ilegibles.
Certificados de seguridad: Estos certificados verifican que la llave del Área de Protección es la misma que pide el Certificado, si esta es distinta el juego no es iniciado.
BDRom Mark: Esta protección se limita en que cada X segundos lee el Área de Protección para examinar que no se ha cambiado el disco por una copia, si al hacer la lectura no detecta la KEY este automáticamente para todos los procesos del juego.
2. Protección contra código malicioso
PS3 está protegida contra Software malicioso tanto por vías de comunicación como de ejecución.
Para que se ejecute algo primero necesita aparecer dentro del listado TID (Títulos Identificativos), estos títulos tienen un nombre que los identifica (BCES00001) sin el TID el archivo nunca es ejecutado.
Los archivos no pueden ser manipulados porque tienen un HASH, este es una mezcla matemática que calcula la fecha de creación, el tamaño, el tipo de archivo, la extensión y un larguísimo etc… Pueden ser de 128bits o 16 dígitos, en el mundo no hay un HASH idéntico al otro… de ahí que no podamos saber su contenido y si lo buscamos nunca lo encontraremos.
El listado del TID siempre es actualizado y se guarda en el SPE aislado. (Luego lo comentaremos)
No podemos remplazar en la RAM un ejecutable ya que también es identificado por el SPE aislado.
Un Ejecutable de PS3 (ELF) tiene varias protecciones entre ellas estas:
1. Está firmado y con HASH
2. La PS3 lo intenta ejecutar calculando el HASH, si existe y coincide inicia el SPE.
3. El SPE carga el ELF mediante un cargador interno (Ejecutables de Linux)
4. Carga el primer ELF (Ejecutable visible) y lo aísla (Imposible atacarlo)
5. Este cuando es descifrado por el SPU (Procesador Interno del SPE) obtiene otro ELF “el oculto” y descifrado, el cual se ejecuta en el PPU (Procesador Central del Cell) e inicia la ejecución de la aplicación.
3. Protección contra fallos que provoquen un desbordamiento
Otra protección es su Sistema Operativo, al ser un microkernel trabaja de forma separada, esto quiere decir que el kernel está por un lado y los módulos que accionan determinados eventos van por otro lado.
¿En que beneficia esto al sistema?
En que si por algún casual algún modulo tiene una corrupción quedará globalizado en los módulos que el utilice pero el kernel se desvinculará de él, esto se traduce en que el kernel al hacer un reset este es como regenerado desde 0, y como los módulos pueden ser reparados añade otra opción más de seguridad al sistema.
Por ejemplo, si un juego ha sido extraído los módulos encargados de las cargas de texturas, sonidos o eventos ya programados no son cargados automáticamente, se lanza un sistema conocido como “CheckStop”, este sistema lo que hace es desencadenar el separamiento del kernel y los módulos para que el kernel tome las riendas del sistema y haga lo que el crea oportuno para salir del problema, en este caso nos mandaría directamente al menú principal como protocolo de seguridad.
Si extraemos un Pen Drive mientras escuchamos música, lo primero que hará será separar el modulo del kernel y reiniciar el modulo, de esta forma todo el sistema se reinicia punto por punto para que de forma automática no tengamos los típicos errores de Windows.
4. Protección contra código malicioso
El Sistema PS3 cuanta con una seguridad que XBOX360 por ejemplo también cuenta, pero esta además es aún más fuerte, de ahí que aún no pueda caer…
Los niveles de ejecución o LV0, LV1 y LV 2.
La PS3 dispone de 3 niveles de ejecución los cuales la hacen invencible… De momento.
1. El Nivel 0 o BootStrap
Este nivel lo que hace es que manda un archivo CIF/HASH/FIR al SPE, este es aislado y mediante la Master KEY que está integrada en una ROM dentro del propio CELL el archivo es descifrado, al descifrarse aparecen las KEYS de los loaders 1 y 2, estos loaders descifran el LV1 y LV2, dependiendo al lpar en la que estemos.
2. El Nivel 1 o Hypervisor
Este nivel es el Gestor de Hardware, es como tener una fábrica donde tienes toda la maquinaria, la maquinaria puede ser usada por el gestor pero para ello ha de tener operarios que sepan manejar cada una de ellas.
3. El Nivel 2 o Supervisor
Este nivel solo trabaja en el menú principal, es el Gestor de Software. Con la comunicación con el Hipervisor el sistema trabaja en armonía, el que manda aquí es él y da órdenes al Hipervisor para que reinicie bien, elimine o actué de alguna manera especificativa.
4. Las LPAR
Son como particiones virtuales dentro de la RAM, estas son asignadas para cada nivel.
Por ejemplo la LPAR_PS3 lo que hace es que tengas un cierto tipo de recursos que no podrás traspasar, como no poder cargar juegos de PS2, no poder iniciar Linux (LPAR_LINUX), digamos que son opciones definidas donde se dan los recursos virtuales a cada una para proteger al sistema, resumiendo limitaciones implantadas.
Tenemos varias LPAR: LPAR_LINUX (Linux), LPAR_PS2 (Emulador de PS2), LPAR_PS3 (XMB o Menú principal).
…METLDR… Qué es y qué se busca de él...
El METLDR es el motor de inicialización de los loaders encargados de la autentificación y lanzamiento de los LV0/1/2. Trabaja en el marco de trabajo conocido como secure_loader, esto quiere decir que ejercita y capacita un SPU único para trabajar, conforme a esto quiere decir que si está capacitado solo el SPU1 para procesar al METLDR los demás no entraran con los privilegios adecuados para darle uso SPU con la master key. -Esto nos limita a poder usar solamente un SPU para tal tarea, pero nos olvidamos de algo importante, el SPU dedicado a tal está ya en uso… por lo tanto no podemos usarlo. -Usando los restantes tendríamos 3 pasos importantes a seguir en el orden.
1. Inicialización y calibración del SPU.
2. Cambio de estado (Aislamiento).
3. Autentificación y uso de la master key.
En el paso 3 han de darse ciertos privilegios, entre los cuales tener presente las consideraciones que nos aplica la LPAR, esto quiere decir que hay directivas de seguridad y chequeos, tales como...
Para que se muestre el kernel ha de estar trabajando en el marco de la lpar_ps3
- Si se da el caso contrario el METLDR no debe de descifrar el lv2 en lpar_linux.
- El METLDR solo entrará en autentificación y ejecución si se cumple la Regla 1, esta regla
es que ha de trabajar en el spu1 dedicado a tal efecto, en caso contrario la ejecución del
METLDR para su descifrado será nulo.
El METLDR carga los ldr, pero estos ldr han de ser antes autentificados con un hash que contiene internamente el propio METLDR. METLDR pesa 60KB, los local store de los SPUcuentan con 256KB. Los loaders al ser descifrados cargan el lv0 (Siempre),lv1 (Siempre) y el lv2(Solo en la lpar_ps3). Los propios loaders descifran el lv0, lv1 y el lv2. El lv2 al ser descifrado en la lpar_ps3 guarda en la local_store del SPU aislado la idstorage, esta idstorage almacena los hash de los ejecutables válidos. Un SELF tiene una key interna, el SELF está compuesto por: SCE> header self ELF> Loader del SPU Normalmente cuando vemos un SELF con un editor hexadecimal vemos dentro una cabecera ELF, este ELF que vemos es la app delSPU, esta app ya está hasheada e introducida en la
idstorage; si pasa el control automáticamente es descifrada y ejecutada por el PPU mostrando los ELF internos reales.
…PREGUNTAS FRECUENTES…METLDR…
¿Qué tiene de interesante el METLDR? Pues que gracias a él se podría obtener el kernel de ps3.
¿Con el METLDR se pueden ejecutar SELF o PKG? No, el METLDR solo tiene una función... y es inicializar los loaders y autentificarlos, todo lo demás son fantasías.
¿Entonces que podría hacer con el METLDR? Lo primero es saber que interpretas tu por el METLDR, cuando sepas lo que es entonces te responderás a ti mismo.
Para terminar… ¿Por que Geo & Company no dan detalles sobre el METLDR? ¿Qué nos ocultan? Al no decir todos los pasos lo que hacen es mantener el status de pasividad, esto se traduce en solo saber ellos el tema, pero se equivocan… porque aunque ellos se callen y no digan todo hay otros que no nos callamos y lo decimos. -Si no se usa el SPU dedicado para el secure loader no se puede seguir. (Eso quiere Geo) -Si no eliminamos las restricciones que impone el hiper al lpar_linux no podremos obtener el kernel, ya que el loader del kernel examinará el entorno en el que está trabajando. -Si no hacemos un reboot del SPU dedicado y hemos aplicado los cambios anteriores en el hiper no podremos sacar el kernel.
Para finalizar, este modo como veis es temporal ya que no cuenta con ningún tipo de persistencia... Por eso estamos ya desarrollando la idea de hacer un hardware que haga todos estos pasos en el game_os de forma persistente mientras se bootea.
…CONTINUARÁ…




