Usamos cookies y procesamos datos de tu navegación principalmente con fines técnicos, estadísticos y publicitarios; la utilización de nuestros servicios implica tu consentimiento. Más información en nuestra política de privacidad.

Atmosphere-NX CFW (Nintendo Switch)

Contenido

Introducción

SciresM, miembro del grupo ReSwitched se ha puesto manos a la obra en la creación de su propio Firmware (de código abierto) customizado tras haber encontrado varias vulnerabilidades en la consola.

¿A qué versiones de Firmware afecta este Exploit?

A todas las consolas actuales en cualquier versión. Aunque se recomienda no actualizar a mas de 1.0.0, 3.0.0 o 4.1.0. (Explicación mas abajo.)

Pequeña guia de preguntas y respuestas para novatos

  • ¿Que es un Custom Firmware?

Un Custom Firmware, es una modificación del firmware de la consola que permite añadir, quitar o modificar funcionalidades a la consola.

  • ¿Que es la TrustZone?

La TrustZone es la última capa de seguridad de la Switch, decide si se puede confiar en el software que se va a ejecutar, en el que se incluyen (pero no limitado a) Sistema operativo, juegos, programas, actualizaciones...

  • ¿Que diferencias hay entre los métodos de entrada?

Para el usuario medio la única diferencia es la comodidad para iniciar el CFW.

Actualmente existe 2 métodos de entrada:

  • Fusee-Gelee: Vulnerabilidad del bootrom (Memoria de solo lectura que almacena el software que inicializa la consola) que permite tomar el control antes de que la TrustZone entre en acción, permitiendo así ejecutar un supervisor de eventos alternativo que permita saltarse la cadena de confianza.

Este método requiere de una ligera modificacion del hardware o hacer un puente entre 2 pines del rail derecho del joycon de la consola, y conectarla al ordenador por USB para cargar el payload que lanza el CFW. Funciona en todos los firmwares de las consolas actuales (Nintendo ya esta fabricando consolas con la vulnerabilidad arreglada).

  • Vulnerabilidades por software

Actualmente no hay ninguna vulnerabilidad por software de dominio publico que sea capaz de cargar, pero existen vulnerabilidades privadas que se liberaran en diferentes rangos de tiempo que seran capaz de lanzar el CFW sin necesidad de modificar el hardware de la consola y un ordenador. Para usar dichas vulnerabilidades requiere de tener un Firmware especifico.

  - Para firmware 1.0.0: Liberaran la vulnerabilidades para/durante el verano.
  - Para firmwares comprendidos entre 2.0.0-3.0.0: Liberaran la vulnerabilidad poco después de que liberen la vulnerabilidad de 1.0.0
  - Para firmwares comprendidos entre 3.0.1-4.1.0: Se conocen vulnerabilidades pero no se quieren liberar de momento hasta que no se confirme que funcione en las futuras consolas y versiones.
  - Para firmwares 5.0.0 o mayores: Sin fecha conocida ni indicios de vulnerabilidades.
  • Componentes

Atmosphère consta de múltiples componentes, cada uno de los cuales reemplaza/modifica un componente diferente del sistema:

Fusée: Bootloader, responsable de cargar y validar la 2º etapa (TrustZone personalizado) además del package2 (Kernel/FIRM sysmodules), y aplicarles parches según sea necesario. Esto reemplaza toda la funcionalidad normalmente en Package1loader/NX Bootloader.

Exosphère: TrustZone personalizado, para ejecutar un monitor seguro personalizado.

Thermosphère: Soporte EL2 EmuNAND, es decir, copia de seguridad y uso de imágenes NAND virtualizadas/redirigidas.

Stratosphère: Sysmodule(s) personalizados, ambos del estilo Rosalina para extender el Kernel/proporciona nuevas características, y del estilo de reimplementación del cargador para enganchar acciones importantes del sistema.

Troposphère: Application-level Horizon OS patches, utilizados para implementar características deseables de CFW.

Estado de los proyectos en desarrollo para Atmosphère-NX

El CFW se encuentra aún en desarrollo. Puedes ver su desarrollo en su GitHub.

El CFW saldrá Soon™

Datos de interés arrojados por SciresM

  • Los eFuses sólo se comprueban (en package1loader) una vez, al arrancar el sistema. Por lo que son irrelevantes para usar emuNAND.