Creo este hilo para discutir todo lo relacionado sobre lo que será la futura Scene de Nintendo 3DS. Antes que nada, hacer unas
advertencias sobre las normas en las discusiones de este hilo:
- Este hilo no está para discutir sobre la moralidad de la Scene.
- Este hilo no admite que se hable sobre carga de juegos sin poseer el original. Se tratará sobre todo las posibilidades del Homebrew.
- Se aplican las mismas normas que en el resto de EOL
Hemos podido comprobar como generación tras generación la seguridad de las consolas ha ido aumentando, dificultando a la Scene la carga de aplicaciones no oficiales. Aunque la Scene de Nintendo DS ya es madura y se ha podido acceder a la totalidad de las posibilidades de la consola, su sucesora, la DSi, aún sigue sin sucumbir del todo, habiendo características a las que no se ha podido acceder. La Nintendo 3DS utiliza el mismo sistema de DSi, pero con ciertos cambios y sobre todo mejoras en la seguridad. Si la DSi sigue sin poder ser explotada al completo, queda en entredicho la posibilidad de hacerlo en 3DS, que es incluso más segura.
Sea como sea que se llegue a conseguir finalmente una Scene en 3DS, los métodos utilizados hasta el momento son los siguientes:
- Aprovechar el método de retrocompatibilidad: Gracias al modo de retrocompatibilidad, se ha podido acceder a la Scene de dicha consola partiendo de la Scene de su consola anterior. Un ejemplo es la propia Nintendo DS y su retrocompatibilidad con juegos de GBA. En Wii, en cambio, nunca se consiguió acceder a las opciones de Wii desde el modo Game Cube, aunque debido a un fallo de programación, las claves de la consola se quedaban en memoria tras pasar al modo Game Cube, pudiendo ser leídas.
- Ataque mediante desbordamiento de búfer: Consiste en hacer que el programa copie una cantidad de datos mayor a la que acepta el área de memoria que le corresponde, provocando que se sobrescriban otras zonas de la memoria. Si no hay separación entre memoria dedicada a datos y dedicada al programa, se podrá cambiar el puntero y empezar a ejecutar código externo al programa. De no ser así, saltará una excepción en la aplicación y el ataque fallará. Para introducir los datos que provocarán el desbordamiento se modifican archivos que serán cargados por el programa, como el archivo de partida. De encontrarse cifrado el archivo de partida (no pudiéndose modificar), suele recurrirse a medios multimedia, como imágenes, música y vídeos.
- Ataque Man-in-the-middle: Este tipo de ataque consiste en hacerse pasar por el servidor en Internet al que se conecta la consola para conseguir que esta reciba los datos que deseemos. Gracias a este tipo de ataque, se puede conseguir enviar una aplicación que será ejecutada en el cliente, o un ataque de tipo desbordamiento del búfer.
- Ataque mediante análisis y modificación de datos en buses: Normalmente, la información que pasa a través de los buses de la consola no viene cifrada, por lo que puede ser estudiada y modificada para estudiar el funcionamiento del sistema para encontrar o provocar fallos que consigan ejecutar código externo.
Satoru Iwata, presidente de Nintendo, afirmó en el 26 de enero del 2011 que Nintendo 3DS sería de todas su consola más segura, y según cierta filtración, parecería que Nintendo sí ha realizado importantes cambios sobre la seguridad de su consola. Las medidas tomadas, o que podrían haber sido tomadas para cada tipo de ataque, son las siguientes:
- Aprovechar el método de retrocompatibilidad: Aunque en Nintendo DS se consiguió llegar a una Scene que aproveche la totalidad de las características de la consola desde la Scene de GBA, en DSi, consola en la que se basa 3DS, no se ha conseguido todavía usar de forma completa el modo DSi desde la Scene de DS. Respecto el modo Game Cube en Wii, el error de dejar las claves en la memoria probablemente no se repita.
- Ataque mediante desbordamiento de búfer: Este tipo de ataque puede o bien realizarse a las aplicaciones de la tienda virtual, o a los juegos de DS/3DS. En el primer caso, según una filtración las aplicaciones no tendrían privilegios, lo cual quiere decir que aunque se consiguiese un desbordamiento del búfer, no se podría realizar ninguna modificación sobre el sistema. En el segundo caso, el de juegos de cartuchos, es aún peor, ya que los juegos no pueden acceder al sistema, hasta el punto de que por este motivo no pueden tener actualizaciones, y que se usa un procesador a parte para los juegos. El procesador, un ARM11 MPCore, incluye además un sistema de reporte de overflow para que salte una excepción, lo cual dificulta seriamente el ataque. Además, en el caso de aplicarse el ataque sobre las aplicaciones, sería necesario encontrar un bug para conseguir privilegios sobre el sistema.
- Ataque Man-in-the-middle: Este tipo de ataque es válido si no existe una autentificación del cliente y del servidor y los datos no vienen cifrados, lo cual sería inaudito. La conexión se encontraría probablemente bajo SSL/TLS, haciendo imposible este ataque.
- Ataque mediante análisis y modificación de datos en buses: Es muy poco probable que los datos en los buses se encuentren cifrados, lo cual deja abierto este tipo de ataque. No obstante, son muy pocos los que cuentan con el equipamiento y los conocimientos de electrónica necesarios para llevar a cabo este tipo de ataque.
A todo esto, se le suma un problema más:
Las actualizaciones. Como ya se ha dicho, los juegos de cartucho no tienen acceso al sistema, por tanto, la consola para actualizarse tendría que conectarse a Internet.
¿Pero qué ocurriría con aquellas personas sin conexión a Internet? Según una filtración, existiría un nuevo tipo de actualización: La actualización mediante Street Pass. La consola trae un módulo WiFi solo para actualizarse (tiene por tanto 2) el cual se conectaría a otras consolas Nintendo 3DS mediante el Street Pass para intercambiar datos, entre ellos su versión. Si nuestra consola se cruzase con una consola con una versión posterior a la que tenemos, nuestra consola le pediría un paquete con la nueva versión, y así podría actualizarse. Este método de actualización, el cual es transparente al usuario, obliga a que lo primero a conseguir en la Scene sean Custom Firmwares, para desactivar este método de actualización.
Este nuevo método de actualización, aunque increíblemente efectivo, trae consigo un importante riesgo relacionado con la Scene:
Viruses informáticos. En el hipotético caso de que consiguiese la clave privada con la que se firman las actualizaciones
(lo cual no deja de ser bastante improbable, aunque por un descuido en PS3 sí se ha conseguido) podría crearse una actualización que brickee
(deje inutilizable) consolas o algo muchísimo peor: Robe información privada como la tarjeta de crédito. Gracias a las actualizaciones vía Street Pass, sería posible transmitir una actualización supuestamente superior a la entonces existente para que todas las consolas Nintendo 3DS con las que se cruce el infectador pedirían e instalarían esta falsa actualización. Si además el virus es transparente y propaga a nuevas víctimas por el mismo método, se conseguiría una infección exponencial.
Las actualizaciones vía Street Pass tienen otro problema: Al no saber el usuario que se está llevando al cabo una actualización, no puede tomar medidas para evitar que la instalación de la actualización recibida se interrumpa. Por ejemplo, en el momento de la actualización podría darse un duro golpe y apagarse, quitarse la batería, o actualizar con una batería defectuosa que no indique adecuadamente la energía restante. Nintendo, preveyendo estos problemas, podría haber tomado medidas. La más probable, sería impedir que las actualizaciones modifiquen el boot y tener a parte una versión del firmware de fábrica, que se restauraría mediante cierta acción en el arranque. Este método de recuperación, de existir, podría ayudar a la Scene.
Estas no dejan de ser hipótesis, y en muchos casos de información no confirmada, aunque permite preveer en qué consistirá la Scene de Nintendo 3DS. Si tienes una hipótesis interesante, avísame y la pondré aquí.
Agradecimientos a Codestation: Programador, scener de PSP, y una genial persona