1 pièce(s) jointe(s)
Des hackers transforment la Nintendo Switch en une véritable tablette Linux tactile
Des hackers transforment la Nintendo Switch en une véritable tablette Linux tactile
Grâce à une faille matérielle présente dans la puce Nvidia
Le groupe de hackers failoverflow a réussi l’exploit d’installer Linux sur la Nintendo Switch, la dernière console en date produite par le Japonais et qui peut faire office de console de salon ou de console portable. En exploitant une faille majeure dans la Switch, le collectif a réussi à transformer la console en une véritable tablette Linux tactile.
Preuve en images, le groupe a publié une vidéo sur leur profil Twitter pour montrer la Switch tournant sous Linux (environnement KDE). On peut y voir un utilisateur en train d'interagir avec des tweets sur le navigateur Chromium, ainsi que des fonctions propres au tactile comme pincer-zoomer. Si l’utilisateur arrive à naviguer sur internet, c’est que la connectivité réseau est fonctionnelle, autrement dit, les hackers ont installé les pilotes WiFi nécessaires.
Plus intéressant encore, la vidéo montre la tablette exécuter parfaitement une version de GLX Spheres, une application simple qui sert à mesurer l’accélération 3D de matériel supportant OpenGL. Il apparaît que le résultat est de 60 frames par seconde, ce qui devrait permettre à la tablette de faire tourner certains jeux sans souci grâce à la puce Tegra X1 dont est dotée la console. La Tegra X1 a été conçue par Nvidia et repose sur une architecture Maxwell. Ce SoC (system on a chip) est standard contrairement aux processeurs AMD dont sont équipées les consoles comme la PlayStation 4 et Xbox One. Les hackers auraient bénéficié donc d’une documentation abondante et des drivers disponibles de la Tegra X1 pour réussir leur exploit.
Les hackers viennent de montrer que la Switch peut être bidouillée de façon poussée, y installer Linux n’est qu’un premier pas. Par la suite, la tablette pourrait être dotée d’un véritable système dual-boot pour permettre d’exécuter Horizon NX (le système d'exploitation de la Switch) ou bien Linux pour jouer à des jeux mobiles ou homebrew, naviguer sur Internet et même streamer des jeux PC sur la tablette à l’aide de Steam Link.
Mais qui dit porte ouverte dit aussi piratage en masse ; cet exploit pourrait ouvrir la voie également à l’installation de copies illégales de jeux commerciaux, un destin qu’a connu la Nintendo DS dont les titres de jeux ont été massivement piratés au milieu des années 2000. Nintendo devrait-il craindre de voir ce scénario se reproduire avec la Switch ? Difficile de savoir.
Pour le moment, le groupe n’a pas publié d’informations pour installer Linux sur votre propre Switch. Toutefois, on sait que la faille matérielle exploitée par les hackers ne peut être corrigée sur cette version du matériel ni par Nintendo ni Nvidia, une bonne nouvelle donc pour les bidouilleurs.
Source : Forbes
Et vous ?
:fleche: Pensez-vous que cet exploit va ouvrir la voie au piratage des jeux sur la console ?
:fleche: Comment modifierez-vous cet appareil ? Pour quel scénario d’usage en particulier ? ?
Voir aussi :
:fleche: Plus de 10 millions de Nintendo Switch écoulées en l'espace de neuf mois, la Switch rencontrera-t-elle le succès de la PS4 ou de la Wii ?
:fleche: Gaming : un émulateur Nintendo Switch en cours de développement, Yuzu sera disponible sur Windows, macOS et Linux
2 pièce(s) jointe(s)
Nintendo Switch : on en sait plus sur « Fusée Gelée »
Nintendo Switch : on en sait plus sur « Fusée Gelée »
La faille qui permet de lancer Linux sur la console de jeu
Il y a déjà deux mois qu’un groupe de hackers baptisé Fail0verflow a publié une vidéo d’une Nintendo Switch en train de faire tourner Linux. Mis à part la brève mention de la boot ROM (la mémoire de démarrage) dans ces développements, rien de vraiment croustillant n’avait vraiment filtré, mais des détails commencent à être publiés.
Dans une FAQ parue le 4 avril dernier, la team ReSwitched balise le chemin vers la compréhension de la vulnérabilité – baptisée « Fusée Gelée » – avant d’enchaîner il y a peu avec la publication d’un dépôt GitHub plutôt détaillé. La faille au sein de la Nintendo Switch réside bel et bien dans sa mémoire de démarrage. En substance, c’est la pile logicielle USB contenue dans la boot ROM qui est le talon d’Achille de la console. ReSwitched a publié une portion de la fonction rcm_read_command_and_payload en cause ; celle qui permet à la Switch de gérer les requêtes de contrôle émises par un hôte au travers du port USB.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| // Temporary, automatic variables, located on the stack.
uint16_t status;
void *data_to_tx;
// The amount of data available to transmit.
uint16_t size_to_tx = 0;
// The amount of data the USB host requested.
uint16_t length_read = setup_packet.length;
/* Lots of handler cases have omitted for brevity. */
// Handle GET_STATUS requests.
if (setup_packet.request == REQUEST_GET_STATUS)
{
// If this is asking for the DEVICE's status, respond accordingly.
if(setup_packet.recipient == RECIPIENT_DEVICE) {
status = get_usb_device_status();
size_to_tx = sizeof(status);
}
// Otherwise, respond with the ENDPOINT status.
else if (setup_packet.recipient == RECIPIENT_ENDPOINT){
status = get_usb_endpoint_status(setup_packet.index);
size_to_tx = length_read; // <-- This is a critical error!
}
else {
/* ... */
}
// Send the status value, which we'll copy from the stack variable 'status'.
data_to_tx = &status;
}
// Copy the data we have into our DMA buffer for transmission.
// For a GET_STATUS request, this copies data from the stack into our DMA buffer.
memcpy(dma_buffer, data_to_tx, size_to_tx);
// If the host requested less data than we have, only send the amount requested.
// This effectively selects min(size_to_tx, length_read).
if (length_read < size_to_tx) {
size_to_tx = length_read;
}
// Transmit the response we've constructed back to the host.
respond_to_control_request(dma_buffer, length_to_send); |
Le souci avec cette dernière est qu’un attaquant a la possibilité de manipuler l’entier non signé length_read à sa guise au travers d’un paquet émis par un hôte connecté à la console. La suite ne se comprend mieux qu’avec la cartographie mémoire de la boot ROM d’un SoC Tegra 210 de Nvidia. Le contrôle de la variable length_read permet à l’attaquant de provoquer un dépassement de tampon dma qui se répercute sur la pile d’exécution de la boot ROM. Si l’on ajoute que dans le Recovery Mode (RCM) – prévu par Nintendo pour l’installation d’images en usine ou la récupération de consoles défectueuses –, les données chargées dans les tampons dma proviennent d’une zone mémoire contrôlée par l’attaquant, alors on éclaire un gros pan de l’obscurité qu’il y avait autour du procédé employé par Fail0verflow pour parvenir à lancer Linux sur la console. Le passage en mode RCM permet donc d’exécuter du code non signé par Nvidia.
Pour ne pas laisser à ReSwitched toute la gloire liée à la publication de ces détails, Fail0verflow a également posté des détails sur l’exploitation de la vulnérabilité, notamment, sur la façon d’accéder au Recovery Mode à l’aide d’un tweak matériel. Dans leurs notes d’information, Fail0verflow et ReSwitched indiquent qu’il suffit de provoquer un court-circuit entre certaines broches du connecteur USB. Fail0verflow a publié des images d’un gadget de sa conception qui permet de réaliser l’opération.
De façon brossée, l’exploitation de la faille requiert donc de réaliser cette adaptation matérielle puis de se connecter à la console au travers du port USB pour charger le code nécessaire ; pas simple pour un néophyte. La vulnérabilité est toutefois fâcheuse pour Nintendo, car le géant du gaming japonais ne peut la corriger en diffusant un correctif logiciel comme on en a l’habitude. Le seul moyen pour l’entreprise de rectifier le tir est de programmer de nouvelles ROM pour les prochaines consoles qui sortiront de ses laboratoires – tâche qui se fera en tandem avec Nvidia qui est le fournisseur des systèmes sur puce que la console utilise ; bienheureux donc les bidouilleurs qui possèdent déjà une Switch puisque la faille demeure exploitable dans leur cas, et ce, à jamais.
Sources
Dépôt GitHub de « Fusée Gelée »
Fail0verflow
Et vous ?
:fleche: Qu’en pensez-vous ?
:fleche: Ces détails vous donnent-ils envie d’acquérir une Switch pour reproduire la manœuvre ?
:fleche: Si oui, pour quel usage particulier envisagez-vous de le faire ?
Voir aussi
:fleche: Plus de 10 millions de Nintendo Switch écoulées en l'espace de neuf mois, la Switch rencontrera-t-elle le succès de la PS4 ou de la Wii ?
:fleche: Gaming : un émulateur Nintendo Switch en cours de développement, Yuzu sera disponible sur Windows, macOS et Linux
:fleche: Les développeurs d'un émulateur WiiU reçoivent 24 000 dollars par mois pour leur travail, leur Patreon grimpe depuis la sortie de Zelda