- Alerte spoiler : « Oui, c’est possible. »
- Sujet : quand il n’y a pas de bug, il faut des méthodes créatives, et l’injection de fautes matérielles peut être la solution. Cela inclut la corruption de données de contrôle logiciel, les glitchs d’alimentation, les glitchs d’horloge, les impulsions électromagnétiques, les lasers, etc.
- Injection de fautes matérielles : elle nécessite généralement un équipement coûteux, mais une méthode peu chère consiste à utiliser un allumeur piézoélectrique de barbecue couplé à un inducteur comme outil d’injection de fautes électromagnétiques (EMFI).
Cible de test
- Équipement : ordinateur portable Samsung S3520, CPU Intel i3-2310M, 1 Go de RAM DDR3.
- Objectif : écrire un exploit local d’élévation de privilèges basé sur des fautes matérielles.
- Méthode : injecter une faute sur l’une des broches DQ du bus DDR afin de provoquer des erreurs mémoire.
Exploit par bit flip dans CPython
- Objectif : écrire un exploit d’« évasion de sandbox » dans CPython.
- Stratégie : créer une fausse structure
bytearray dans un objet bytes, puis amener CPython à fournir une référence vers ce faux objet.
Exploit par bit flip sous Linux
- Objectif : obtenir les privilèges root à partir d’un utilisateur Linux non privilégié.
- Concepts clés : cache mémoire, mémoire virtuelle et tables de pages, Translation Lookaside Buffer (TLB).
- Stratégie : mapper les tables de pages dans une mémoire accessible à l’utilisateur afin de permettre l’accès à une mémoire physique arbitraire.
Usage pratique
- Application : une LPE Windows via EMFI permettant à des joueurs de reprendre le contrôle de leur PC.
- Possibilités futures : possibilité d’implémenter des exploits automatisés en montant un RP2040 sur de la « gaming RAM ».
Le résumé de GN⁺
- Cet article explique comment explorer des vulnérabilités de sécurité logicielles et matérielles au moyen d’une injection de fautes matérielles peu coûteuse.
- L’injection de fautes matérielles est possible même sans équipement onéreux, et montre qu’elle peut permettre de franchir diverses frontières de sécurité.
- Cet article aide à comprendre l’interaction entre matériel et logiciel, et peut être utile aux chercheurs en sécurité comme aux hackers.
- Parmi les projets aux fonctionnalités similaires, on trouve des techniques d’injection de fautes mémoire comme Rowhammer.
2 commentaires
Ça me fait penser au fait de retirer l’allumeur d’un briquet pour tricher avec les pièces dans les bornes d’arcade.
Commentaires Hacker News
L’inspiration était d’obtenir les privilèges root sur la Switch 2, et la POC consistait à obtenir les privilèges root sur Linux. L’objectif était de reprendre le contrôle du matériel sans casser le TPM ni l’anti-triche ring 0 des jeux
Avec un accès physique, il est possible de reflasher le BIOS ou d’installer une porte dérobée dans un pilote. Cependant, si le disque est chiffré, ce type de piratage devient impossible
Quelqu’un a cru qu’il s’agissait d’un article disant qu’une personne avait obtenu un accès root sur un briquet. Comme le four de ses parents reçoit régulièrement des mises à jour logicielles, l’idée d’un briquet intelligent ne lui semblait pas si improbable
Dans
0x100_0000, le but du_n’est de rien modifier. Il n’a aucun effet sur la valeur numériqueCela rappelle les exploits sur les bornes d’arcade à Sydney dans les années 80 et 90. On pouvait utiliser un allumeur piézoélectrique pour ajouter des crédits au jeu
C’est le genre de contenu qu’on attend de HN. Le talent de certaines personnes est impressionnant. On se demande combien de temps il faut pour acquérir ce type de compétences
Ce n’est pas seulement un exploit amusant, c’est aussi une belle mini-introduction au fonctionnement du cache CPU. On se demande si quelqu’un se souvient d’un site web qui expliquait comment fonctionne un ordinateur en partant des portes logiques
« Il suffit d’une résistance de 15 ohms et d’un fil soudé sur DQ26. Le fil agit comme une antenne et déverse directement les interférences EM proches sur le bus de données »
Je l’ai suivi sur Mastodon, et cet article est lui aussi excellent. Il y a sur Mastodon une vidéo montrant l’accès root