Devenir root à l'aide d'un briquet
Si vous avez laissé trainé votre laptop sans surveillance et qu’en revenant, vous voyez un petit fil dépasser, attention ! Un cybercriminel armé d’un simple briquet pourrait en prendre le contrôle.
C’est un peu tiré par les cheveux comme scénario, et d’ailleurs c’est suremet pour ça que Netflix a toujours refusé mes candidatures mais c’est bien une vraie faille de sécurité bien réelle découverte par David Buchanan, un chercheur en sécurité qui aime visiblement jouer avec les ondes électromagnétiques.
Son idée c’est d’exploiter les perturbations électromagnétiques générées par un transducteur piézoélectrique (vous savez les briquets qui font clac-clac…) pour injecter des erreurs dans la mémoire vive d’un ordinateur. Hé oui, avec un simple briquet à 2 balles, il est possible de prendre le contrôle total d’un PC.
Démonstration :
Mais alors comment un transducteur peut-il permettre de pirater un ordinateur ?
Et bien au cœur de chaque ordinateur se trouve de la mémoire vive (RAM), composée de millions de minuscules condensateurs qui stockent les données sous forme de charges électriques. Ces composants sont extrêmement sensibles aux perturbations électromagnétiques. Ça tombe bien puisqu’un transducteur piézoélectrique génère justement une petite décharge électromagnétique.
L’astuce de notre hacker consiste donc à placer une simple antenne (en fait un bout de fil de cuivre) à proximité des puces mémoire de l’ordinateur et lorsqu’il actionne son transducteur près de cette antenne, le champ électromagnétique généré vient perturber le fonctionnement de la RAM.
Résultat : certains bits stockés en mémoire se retrouvent inversés, passant de 0 à 1 ou vice-versa. On appelle ça une injection de fautes par champ électromagnétique (ou EMFI pour les intimes).
Mais alors comment inverser quelques bits au hasard peut permettre de prendre le contrôle d’un ordinateur ? C’est là que ça devient intéressant.
Notre hacker est parvenu à cibler précisément les bits correspondant aux tables de pages mémoire du système. Ces tables sont utilisées par le processeur pour faire le lien entre la mémoire virtuelle (celle “vue” par les programmes) et la mémoire physique. En modifiant stratégiquement certains bits, il est possible de tromper le système et d’obtenir un accès en lecture/écriture à l’ensemble de la mémoire physique. Et qui dit accès total à la mémoire dit contrôle total sur la machine !
Concrètement, voici comment se déroule l’attaque :
1. Le hacker ouvre le capot de l’ordinateur ciblé et soude un petit fil conducteur sur l’un des connecteurs de la barrette mémoire. Ce fil servira d’antenne pour capter les perturbations électromagnétiques.
2. Il lance un programme spécialement conçu qui va saturer la mémoire avec des données spécifiques et effectuer en boucle des lectures/écritures.
3. Il actionne son transducteur piézoélectrique à proximité de l’antenne, générant une petite décharge électromagnétique.
4. Le programme détecte les erreurs mémoire induites et vérifie si elles correspondent au schéma recherché (modification des tables de pages).
5. Si c’est le cas, le programme exploite immédiatement la faille pour obtenir un accès root sur le système.
6. Le tour est joué : en quelques impulsions, le hacker a pris le contrôle total de la machine !
Bien sûr, cette attaque nécessite un accès physique à l’ordinateur et un certain savoir-faire technique. D’ailleurs, ce type d’attaque par injection de fautes n’est pas totalement nouveau. Des techniques similaires ont déjà été utilisées par le passé pour pirater des cartes à puce ou des consoles de jeux. Mais c’est la première fois qu’on voit une démonstration aussi “low-tech” sur un PC standard. Le plus inquiétant est que cette vulnérabilité semble affecter la plupart des ordinateurs modernes, quel que soit le système d’exploitation utilisé.
Comme je vous le disais, cette attaque reste relativement complexe à mettre en œuvre et nécessite un accès physique prolongé à la machine. Et les constructeurs de PC travaillent déjà sur des contre-mesures, comme l’utilisation de mémoires ECC plus résistantes aux erreurs ou le blindage électromagnétique des composants sensibles.
Et pour les plus téméraires d’entre vous qui voudraient tenter l’expérience (attention, c’est à vos risques et périls !), voici un petit tutoriel express :
1. Procurez-vous un vieux laptop que vous n’avez pas peur de sacrifier (on ne sait jamais).
2. Ouvrez le capot et repérez les barrettes de RAM.
3. Soudez délicatement un condensateur et un fil sur l’un des connecteurs de la RAM (choisissez DQ26 si vous voulez reproduire exactement l’expérience de Buchanan).
4. Refermez le capot en laissant dépasser le fil.
5. Allumez l’ordinateur et lancez un programme de test mémoire (comme memtest86).
6. Approchez un transducteur piézoélectrique du fil et actionnez-le plusieurs fois.
7. Observez si des erreurs apparaissent dans le test mémoire.
Attention, cette manipulation peut endommager définitivement votre matos alors ne la tentez que si vous êtes prêt à dire adieu à votre ordinateur !
Pour conclure, cette découverte plutôt cool nous montre que même à l’ère du quantique et de l’IA, des techniques de hacking bien low tech peuvent encore poutrer nos systèmes les plus sophistiqués. Et si vous voyez des gars faire clic clac avec leur briquet piezo à côté d’un PC, vous saurez à quoi vous en tenir.
Entièrement dédiée à la cybersécurité, l'école Guardia est accessible soit directement après le bac (post-bac), soit après un bac+2 ou bac+3. En rejoignant l'école Guardia, vous deviendrez développeur informatique option cybersécurité (Bac+3) ou expert en cybersécurité (Bac+5).