Introduction aux attaques par injection de défauts électromagnétiques (EMFI)

Introduction aux attaques par injection de défauts électromagnétiques (EMFI)

L'injection de défauts électromagnétiques (EMFI) perturbe les circuits intégrés en appliquant de courtes rafales électromagnétiques. Cette présentation couvre les bases de l'EMFI, les exigences du dispositif, et son utilisation pour détecter les vulnérabilités dans les systèmes modernes.
# Introduction conviviale aux attaques par injection de fautes : Démystification de l'injection de fautes électromagnétiques (EMFI)

**Table des matières**

- [Introduction aux attaques par injection de fautes](#introduction-aux-attaques-par-injection-de-fautes)
- [Qu'est-ce que l'injection de fautes électromagnétiques (EMFI) ?](#quest-ce-que-linjection-de-fautes-électromagnétiques-emfi)
- [Comment fonctionne l'EMFI : De la théorie à la pratique](#comment-fonctionne-lemfi-de-la-théorie-à-la-pratique)
  - [Comprendre les interférences électromagnétiques](#comprendre-les-interférences-électromagnétiques)
  - [Impact de l'EMFI sur les circuits intégrés (CI)](#impact-de-lemfi-sur-les-circuits-intégrés-ci)
- [Un ensemble compact d'EMFI : Composants et assemblage](#un-ensemble-compact-demfi-composants-et-assemblage)
  - [Équipement requis](#équipement-requis)
  - [Schéma typique d'installation](#schéma-typique-dinstallation)
  - [Considérations de sécurité](#considérations-de-sécurité)
- [L'EMFI en action : Scénarios d'attaque dans le monde réel](#lemfi-en-action-scénarios-dattaque-dans-le-monde-réel)
  - [Étude de cas 1 : Extraction de clés cryptographiques](#étude-de-cas-1-extraction-de-clés-cryptographiques)
  - [Étude de cas 2 : Attaques par faute sur les microcontrôleurs sécurisés](#étude-de-cas-2-attaques-par-faute-sur-les-microcontrôleurs-sécurisés)
  - [Étude de cas 3 : EMFI sur un système sur puce intégré (SoC)](#étude-de-cas-3-emfi-sur-un-système-sur-puce-intégré-soc)
- [Détecter les vulnérabilités en utilisant l'EMFI](#détecter-les-vulnérabilités-en-utilisant-lemfi)
  - [Scan pour réponse aux fautes](#scan-pour-réponse-aux-fautes)
  - [Automatisation des tests par injection de faute avec Python et Bash](#automatisation-des-tests-par-injection-de-faute-avec-python-et-bash)
- [Atténuer les attaques par injection de faute : Mesures défensives](#atténuer-les-attaques-par-injection-de-faute-mesures-défensives)
- [Avancer dans vos connaissances : Ressources et communauté](#avancer-dans-vos-connaissances-ressources-et-communauté)
- [Conclusion](#conclusion)
- [Références](#références)

---

## Introduction aux attaques par injection de fautes

Les attaques par injection de fautes sont une classe d'attaques matérielles dans lesquelles un adversaire **induit intentionnellement des erreurs (fautes) dans le fonctionnement d'un appareil**, dans le but de contourner les contrôles de sécurité, d'extraire des données sensibles ou de compromettre la fiabilité d'un système. Cette technique est particulièrement pertinente avec la prolifération des applications sécurisées fonctionnant sur des systèmes embarqués, des cartes à puce aux appareils IoT.

Les injections de fautes peuvent être réalisées par différentes méthodes :
- Perturbation tension/fréquence
- Injection de faute laser
- **Injection de faute électromagnétique (EMFI)**
- Manipulation thermique/environnementale

Parmi celles-ci, **l'EMFI** se distingue comme une technique flexible et sans contact, exploitant de courtes impulsions d'énergie électromagnétique (EM) pour perturber des régions cibles du silicium, entraînant des fautes transitoires. Cet article se concentre sur l'utilisation de l'EMFI dans la recherche en cybersécurité et les attaques pratiques.

---

## Qu'est-ce que l'injection de fautes électromagnétiques (EMFI) ?

L'**injection de fautes électromagnétiques (EMFI)** est une technique avancée dans laquelle une rafale contrôlée d'énergie électromagnétique est dirigée vers une partie spécifique d'un circuit intégré (CI) ou d'un microcontrôleur. L'intention est de **perturber le fonctionnement correct de l'appareil** en induisant des fautes, telles que des inversions de bits, des violations de synchronisation ou des sauts d'instructions.

### Caractéristiques clés :

- **Non invasive** : Pas besoin d'ouvrir le boîtier ou de toucher physiquement le silicium interne.
- **Précise** : Peut cibler des unités fonctionnelles spécifiques à l'intérieur d'une puce (ex : cœur CPU, E/S).
- **Reproductible** : Des configurations appropriées permettent une injection de faute cohérente et reproductible.
- **Puissante** : Particulièrement efficace contre les puces avec des fonctionnalités de sécurité telles que le démarrage sécurisé, les moteurs cryptographiques ou la résistance à la falsification.

### Aperçu du concept

![Diagramme du principe de l'EMFI](https://i.imgur.com/LB3vYoG.png)
*Figure : Principe de l'injection de fautes électromagnétiques (simplifié)*

La technique EMFI implique typiquement :
- L'utilisation d'une **sonde à base de bobine** (fabrication artisanale ou commerciale) pour concentrer les champs EM.
- L'emploi d'un **générateur d'impulsions EM** pour produire des impulsions haute tension de l'ordre de la nanoseconde.
- La synchronisation avec l'horloge du système pour maximiser la probabilité de provoquer des fautes significatives pendant les phases de calcul sensibles.

**Source :** [arXiv:2509.18341v1](https://arxiv.org/html/2509.18341v1), [Blog Ledger sur le compact EMFI](https://www.ledger.com/blog/compact-em)

---

## Comment fonctionne l'EMFI : De la théorie à la pratique

### Comprendre les interférences électromagnétiques

Les **interférences électromagnétiques (EMI)** se produisent lorsqu'un champ électromagnétique externe perturbe le fonctionnement normal des circuits électroniques. Dans le contexte de l'injection de fautes, l'attaque est focalisée, intentionnelle et hautement contrôlée.

**Physique derrière l'EMFI :**
- Les équations de Maxwell dictent comment les champs EM se propagent et interagissent avec les matériaux.
- Les transitoires rapides à haute énergie induisent des courants indésirables dans le circuit victime.
- Dans les systèmes numériques, cela peut provoquer des surtensions de tension (ou de courant) aux portes logiques ou cellules mémoire critiques à des moments précis, causant des fautes.

### Impact de l'EMFI sur les circuits intégrés (CI)

Lorsqu'une impulsion EM soigneusement conçue est envoyée à un appareil, plusieurs effets d'attaque sont possibles :
- **Violations de synchronisation :** Les données ne sont pas correctement lues, ou les séquences de contrôle se dérangent.
- **Saut d'instructions :** Le CPU saute involontairement des instructions.
- **Inversions de bits :** Les bits en mémoire ou dans les registres changent en raison des courants induits.
- **Contournement de la sécurité :** Les vérifications de sécurité ou les branches conditionnelles peuvent être subverties.

**Exemple :**  
Un microcontrôleur exécute un code qui vérifie si un mot de passe est correct. Une attaque par EMFI pourrait inverser le résultat de cette vérification, contournant l'authentification et accordant un accès non autorisé.

---

## Un ensemble compact d'EMFI : Composants et assemblage

Avant de lancer une attaque, comprenons à quoi ressemble un ensemble typique d'EMFI dans un laboratoire de sécurité.

### Équipement requis

1. **Générateur d'impulsions** — Produit des impulsions haute tension rapides et précises (souvent jusqu'à plusieurs centaines de volts, avec des largeurs aussi petites que quelques nanosecondes).
2. **Sonde d'injection EM** — Généralement une petite bobine (sonde en boucle) positionnée juste au-dessus de la puce cible.
3. **Oscilloscope/Analyseur logique** — Surveille la réponse du système et aide à la calibration temporelle.
4. **Équipement de synchronisation et de déclenchement** — S'assure que la faute est injectée au bon moment.
5. **Appareil cible** — Le système embarqué, microcontrôleur ou SoC à tester.
6. **Système de positionnement** — Micro-positionneur XYZ pour un alignement précis de la sonde.
7. **Équipement de blindage et de sécurité** — Pour éviter les interférences collatérales et les blessures.

**Nota :** Certaines installations avancées utilisent des étapes motorisées, des retards contrôlables par ordinateur et même l'apprentissage automatique pour automatiser le processus.

### Schéma typique d'installation

```plaintext
+---------------------+    Câble coaxial     +-----------------------+
| Générateur d'impulsion |--------------------->| Sonde EM (boucle/coil) |
+---------------------+                      +-----------------------+
                                                        |
                                                        V
                                                 +-----------+
                                                 |   Cible   |
                                                 |   Appareil |
                                                 +-----------+
                                                        |
                                                        v
      +---------+     Déclenchement/Synchro     +-------------+   USB/Série   +-----------+
      | PC hôte |<--------------------->| Oscilloscope|--------------->| PC hôte   |
      +---------+                      +-------------+                +-----------+
    (Contrôle, Timing)               (Surveillance de la réponse)

Considérations de sécurité

  • Haute tension : Les générateurs d'impulsions peuvent délivrer des tensions dangereuses ; manipulez avec une extrême prudence.
  • Champs EM : Un blindage est nécessaire pour localiser l'attaque et minimiser les émissions.
  • Dommages à l'appareil : Les impulsions répétitives et à haute énergie peuvent endommager de façon permanente les CI cibles.

L'EMFI en action : Scénarios d'attaque dans le monde réel

Étude de cas 1 : Extraction de clés cryptographiques

Concept de l'attaque

De nombreux appareils reposent sur des clés cryptographiques stockées en interne (ex : clés AES, RSA). En perturbant l'exécution pendant le calcul cryptographique (comme la multiplication dans RSA), les attaquants peuvent induire des fautes entraînant des sorties erronées à partir desquelles des clés secrètes peuvent être récupérées mathématiquement.

Exemple
  • Cible : Carte à puce exécutant un calcul de signature RSA.
  • Processus : Appliquer l'EMFI pendant le calcul de la clé privée pour fausser sélectivement les bits cruciaux.
  • Résultat : Utilisez plusieurs sorties défectueuses et le cryptogramme original pour reconstruire les clés en utilisant une technique connue sous le nom d’analyse différentielle de fautes.
Flux d'analyse différentielle de fautes
flowchart TD
    A[L'appareil exécute l'algorithme cryptographique] --> B[L'EMFI induit une faute dans le calcul]
    B --> C[La sortie est capturée (chiffre/signe défectueux)]
    C --> D[L'attaquant utilise des équations connues et de multiples sorties défectueuses]
    D --> E[Récupération de clé par des techniques algébriques]

Étude de cas 2 : Attaques par faute sur les microcontrôleurs sécurisés

Les microcontrôleurs modernes utilisés dans les cartes de paiement, TPM ou jetons d'authentification incluent des fonctionnalités de sécurité—mais l'EMFI peut les contourner, exposant leurs secrets.

Exemple : Sauter les vérifications d'authentification

Supposons qu'un segment de code cible effectue une vérification de mot de passe :

if (hash_entrée == hash_stocké) {
    accorder_accès();
}

Une impulsion d'EMFI, bien synchronisée pendant la comparaison, peut corrompre le registre du flux de contrôle du CPU ou les drapeaux, sautant ainsi la conditionnelle et forçant un accès injustifié.

Démonstration : Visualisation de la manipulation du flux de contrôle

Cycle Opération État du registre Effet EMFI Sortie
T1 Charger hash_entrée hash_entrée dans R1 - -
T2 Comparer hash_entrée et stocké R1, R2 Impulsion EM Mauvais résultat de comparaison
T3 Se brancher si identique Vérification conditionnelle Sauté Accès accordé !

Étude de cas 3 : EMFI sur un système sur puce intégré (SoC)

Avec les SoC (ex : ARM Cortex-M, A53), l'EMFI ouvre une large surface d'attaque :

  • Boot ROM
  • Enclaves sécurisées
  • Décryptage de code à la volée
  • Authentification de données en cours d'exécution
Exemple : Attaque sur le démarrage sécurisé

Un SoC peut vérifier l'intégrité du firmware au démarrage. Un attaquant synchronise une impulsion d'EMFI avec la routine de vérification CRC, la faisant ignorer ou mal calculer la vérification. L'appareil charge alors un firmware modifié (malveillant) par l'attaquant.

Référence du monde réel :
Lors d'un séminaire Creach Labs, les chercheurs ont montré comment les SoC exécutant des environnements d'exécution de confiance pouvaient être compromis avec l'EMFI.


Détecter les vulnérabilités en utilisant l'EMFI

Les chercheurs en sécurité utilisent souvent l'EMFI pour caractériser les vulnérabilités dans de nouveaux appareils. Le processus implique un sondage systématique, une injection de faute et l'observation des réponses des appareils.

Scan pour réponse aux fautes

Processus pas à pas :
  1. Identifier le code sensible : Où cibler (ex : comparaison de mot de passe, routines cryptographiques) ?
  2. Synchroniser l'impulsion : Utiliser GPIO, sortie série ou lignes de débogage pour assurer un timing précis.
  3. Varier les paramètres : Explorer la largeur de l'impulsion, l'amplitude, le décalage temporel et la position de la sonde.
  4. Recueillir les sorties : Enregistrer les réponses de l'appareil, les cryptogrammes défectueux ou les journaux de débogage pour analyse.
  5. Classer les défauts : Utiliser des scripts pour analyser les sorties et catégoriser par type de défaut—instructions sautées, inversions de bits, réinitialisation totale de l'appareil, etc.
Exemple de script de scan (Bash+Python) :

Supposons que votre appareil sorte des informations de diagnostic via l'UART et que vous souhaitiez automatiser la classification des fautes.

Bash : Lancement d'un scan de faute, capture des journaux série pour chaque injection :

for delay in $(seq 0 100 5000); do
    echo "Injection à un délai de $delay ns"
    ./trigger_pulsegen --delay $delay --width 10 --voltage 200
    cat /dev/ttyUSB0 > log_${delay}.txt &
    sleep 0.5
    pkill -f "cat /dev/ttyUSB0"
done

Python : Analyse des journaux pour les motifs de faute (ex : recherche de 'FAULT DETECTED') :

import glob

for logfile in glob.glob("log_*.txt"):
    with open(logfile) as f:
        content = f.read()
        if "FAULT DETECTED" in content:
            print(f"{logfile}: Faute observée")
        elif "RESET" in content:
            print(f"{logfile}: Réinitialisation de l'appareil détectée")
        else:
            print(f"{logfile}: Aucune faute")

Automatisation des tests par injection de faute avec Python et Bash

Les recherches à grande échelle impliquent l'intégration de tout l'équipement avec une automatisation logicielle :

  • Automatiser le positionnement de la sonde (via des moteurs)
  • Contrôler de manière programmable les paramètres d'impulsion
  • Collecte et traitement des données en temps réel
  • Ciblage adaptatif basé sur les résultats observés

Exemple simple d'automatisation en Python :

Supposons que vous ayez une API pour votre générateur d'impulsions et votre oscilloscope :

import pulsegen
import oscilloscope

# Connexion aux appareils
pulse = pulsegen.connect("COM4")
scope = oscilloscope.connect("USB0::0x1AB1::0x0588::DS1ET141904883")

delays = range(1000, 5000, 200)  # en ns

for d in delays:
    pulse.setup(delay=d, width=10, voltage=250)  # configure les paramètres d'injection
    pulse.fire()   # injecter !
    trace = scope.capture()
    # Enregistrer, analyser ou visualiser la trace capturée :
    filename = f"trace_{d}ns.csv"
    with open(filename, "w") as f:
        f.write(trace)

Nota : L'automatisation dans la vie réelle peut impliquer des bibliothèques complexes, gestion des erreurs et intégration avec des positionneurs de sonde.


Atténuer les attaques par injection de faute : Mesures défensives

Au fur et à mesure que l'EMFI se développe, il en va de même pour les contre-mesures—les fabricants de matériel conçoivent désormais des résistances aux fautes :

  • Capteurs : Détecteurs intégrés de champs EM puissants ou d'anomalies de tension.
  • Calcul redondant : La logique critique est dupliquée et les résultats sont comparés (Redondance Modulaire Duale, RMD).
  • Retards aléatoires/Obfuscation : Ajoute du bruit à la ponctualité de l'exécution, rendant le ciblage précis plus difficile.
  • Blindage physique : Ajoute des barrières conductrices absorbant les ondes EM sur les zones sensibles des CI.
  • Surveillance logicielle : Les logiciels surveillent les états impossibles (ex : saut impossible dans la logique).

Exemple de logiciel : Exécution triplée pour vérification :

// Pseudo-code
resultat1 = calc_hash(entree);
resultat2 = calc_hash(entree);
resultat3 = calc_hash(entree);

if ((resultat1 == resultat2) && (resultat2 == resultat3))
    utiliser(resultat1);
else
    déclencher_alerte();

Avancer dans vos connaissances : Ressources et communauté

Si vous souhaitez aller au-delà des bases, les ressources et communautés suivantes sont inestimables :


Conclusion

L'injection de fautes électromagnétiques (EMFI) est un outil fascinant—bien qu'impressionnant—dans le domaine de la recherche en sécurité matérielle. Ce qui a commencé comme une curiosité académique exotique constitue désormais un risque critique que tout concepteur de microcontrôleurs sécurisés ou de puces doit considérer. Avec même un équipement de base et des scripts, les attaquants (et les chercheurs) peuvent monter des intrusions matérielles précises, reproductibles et très perturbatrices.

Comme vous l'avez vu :

  • L'EMFI peut contourner, réduire ou extraire des secrets cryptographiques.
  • Une configuration pratique est à la portée de nombreux laboratoires et professionnels.
  • Les vulnérabilités du monde réel dans le démarrage sécurisé des SoC, les cartes à puce et les éléments sécurisés montrent la gravité de l'EMFI.
  • La recherche défensive et la conception de puces sécurisées doivent s'adapter en permanence.

Pour les débutants comme pour les vétérans, l'EMFI représente à la fois une menace à gérer—et un puissant outil de diagnostic pour future-proofing notre monde numérique.


Références

  1. Un guide convivial pour débutant sur les attaques par injection de fautes (arXiv:2509.18341v1)
  2. Une configuration compacte d'injection de fautes électromagnétiques — Blog Ledger
  3. Ne faites pas confiance aux systèmes sur puce modernes : Injection de fautes électromagnétiques contre SoC — Séminaire Creach Labs
  4. Projet ChipWhisperer
  5. Les équations de Maxwell et les bases de l'EMI — Wikipedia
  6. Injection de fautes et mesures de contremesures — Embedded.com

Ce guide long format vous a-t-il été utile ? Si c'est le cas, partagez-le avec votre équipe de sécurité ou vos pairs en ingénierie matérielle ! Pour des techniques ou exemples plus avancés, voir les ressources ci-dessus et les derniers actes de conférence sur la sécurité matérielle et embarquée.

[Pour des retours, corrections ou contributions, voir le préimprimé original ArXiv et la communauté ouverte de recherche en sécurité.]

🚀 PRÊT À PASSER AU NIVEAU SUPÉRIEUR ?

Faites passer votre carrière en cybersécurité au niveau supérieur

Si vous avez trouvé ce contenu utile, imaginez ce que vous pourriez accomplir avec notre programme de formation élite complet de 47 semaines. Rejoignez plus de 1 200 étudiants qui ont transformé leur carrière grâce aux techniques de l'Unité 8200.

Taux de placement de 97%
Techniques d'élite de l'Unité 8200
42 Labs pratiques