Les attaques DMA (Direct Memory Access) exploitent les interfaces matérielles à haut débit — Thunderbolt, PCIe, FireWire et USB4 — pour lire et écrire directement dans la mémoire physique d'un système sans passer par le processeur ni le système d'exploitation. Ces attaques sont dévastatrices car elles contournent l'ensemble des protections logicielles : chiffrement de disque, authentification, EDR, et même le Secure Boot. Un attaquant avec un accès physique de quelques secondes peut extraire les clés de chiffrement, injecter du code en mémoire kernel, ou contourner l'écran de verrouillage. Ce guide technique détaille l'ensemble des vecteurs d'attaque DMA, les outils d'exploitation (PCILeech, Inception), les mécanismes de protection (IOMMU/VT-d, Thunderbolt Security Levels, Kernel DMA Protection) et les méthodologies de test pour les audits de sécurité matérielle.

\\n

En bref

  • Vecteurs DMA : Thunderbolt 3/4, PCIe, FireWire IEEE 1394, USB4 et M.2/NVMe
  • Outils : PCILeech, Inception, FPGA-based DMA platforms (Screamer, Squirrel)
  • Attaques : extraction de clés BitLocker/FileVault, bypass écran de verrouillage, injection kernel
  • Mitigations : IOMMU/VT-d, Thunderbolt Security Levels, Kernel DMA Protection, Secure Boot
  • Méthodologie de test physique pour les audits de sécurité matérielle
\\n
DMA (Direct Memory Access) — Mécanisme matériel permettant aux périphériques de lire et écrire directement dans la mémoire RAM sans intervention du processeur. Conçu pour les transferts de données haute performance, le DMA crée un vecteur d'attaque critique car il contourne toutes les protections logicielles du système d'exploitation.
\\n

Principes du DMA et Vecteurs d'Attaque

\\n

Le DMA est un mécanisme fondamental de l'architecture PC : les périphériques (carte réseau, carte graphique, contrôleur de stockage) ont besoin de transférer de grandes quantités de données vers et depuis la RAM sans solliciter le CPU à chaque octet. Le contrôleur DMA permet ces transferts directs entre le périphérique et la mémoire physique. Le problème de sécurité est évident : un périphérique malveillant peut lire ou écrire n'importe quelle adresse de la mémoire physique, accédant aux données de tous les processus, du kernel et des structures de sécurité.

\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
InterfaceDébitAccès DMARisque
Thunderbolt 3/440 GbpsOui (PCIe tunneling)Critique
USB440-80 GbpsOui (PCIe tunneling)Critique
FireWire (IEEE 1394)800 MbpsOui (natif)Critique
ExpressCard5 Gbps (PCIe x1)Oui (PCIe direct)Critique
M.2/NVMe64 Gbps (PCIe 5.0 x4)Oui (PCIe direct)Nécessite ouverture
USB 3.x standard20 GbpsNon (sauf USB4)Faible
\\n

PCILeech : L'Outil de Référence

\\n

PCILeech est l'outil de référence pour l'exploitation DMA. Il supporte de multiples plateformes matérielles (FPGA, Thunderbolt, USB3380) et offre des fonctionnalités puissantes :

\\n
# PCILeech — Exemples d'utilisation\\n\\n# 1. Dump de la mémoire physique complète\\npcileech dump -out memory.raw -min 0 -max 0x100000000\\n\\n# 2. Recherche de patterns en mémoire (clés de chiffrement)\\npcileech search -s "PRIVATE KEY" -min 0 -max 0x100000000\\n\\n# 3. Injection de shellcode en mémoire kernel\\npcileech kmdload -kmd LINUX_X64\\n\\n# 4. Bypass de l'écran de verrouillage Windows\\npcileech patch -sig wx64_intelptt_unlock\\n\\n# 5. Extraction de credentials (LSASS)\\npcileech lsass -out creds.txt
\\n

Plateformes FPGA pour Attaques DMA

\\n

Les plateformes FPGA sont le standard pour les attaques DMA professionnelles. Elles émulent un périphérique PCIe légitime (carte réseau, contrôleur USB) et interceptent/injectent les transactions DMA :

\\n
    \\n
  • Screamer (PCIe) : carte PCIe basée sur Xilinx Artix-7. Se connecte via le slot PCIe x1/x4 et émule n'importe quel device ID. Compatible PCILeech avec des débits de lecture de 2+ GB/s.
  • \\n
  • Squirrel (M.2) : facteur de forme M.2 — se branche dans le slot M.2 d'un laptop. Discret et efficace pour les audits physiques.
  • \\n
  • USB3380-based : carte USB-to-PCIe bridge. Moins performante mais bon marché (~50€) et facilement disponible.
  • \\n
  • LambdaConcept PCIe Screamer : plateforme open-source avec firmware PCILeech. Inclut un sniffer PCIe pour l'analyse passive du trafic.
  • \\n
\\n

Extraction de Clés BitLocker via DMA

\\n

L'une des attaques DMA les plus impactantes cible BitLocker (chiffrement de disque Windows). Quand BitLocker utilise le TPM seul (sans PIN de pre-boot), la clé de chiffrement (FVEK — Full Volume Encryption Key) est déchiffrée au boot et stockée en mémoire RAM. Un attaquant DMA peut :

\\n
    \\n
  1. Connecter un device DMA au système allumé (ou en veille S3)
  2. \\n
  3. Scanner la mémoire physique à la recherche du FVEK pattern
  4. \\n
  5. Extraire la clé — le disque peut être déchiffré hors-ligne
  6. \\n
\\n

Attaques FireWire Historiques

\\n

FireWire (IEEE 1394) est l'ancêtre des attaques DMA — le protocole accorde par conception un accès DMA complet à tout périphérique connecté, sans aucune authentification. L'outil Inception automatise les attaques FireWire :

\\n
# Inception — bypass de l'écran de verrouillage via FireWire\\ninception --target win10 # Patch la mémoire pour bypass le login\\ninception --target osx # Même chose sur macOS\\ninception --target linux # Et Linux\\n\\n# Inception modifie la routine d'authentification en mémoire\\n# pour qu'elle accepte n'importe quel mot de passe
\\n

IOMMU/VT-d : La Mitigation Principale

\\n

L'IOMMU crée des tables de traduction d'adresses pour les périphériques DMA, similaires aux tables de pages du MMU pour les processus. Chaque périphérique ne peut accéder qu'aux régions de mémoire physique qui lui sont explicitement assignées. Intel VT-d et AMD AMD-Vi implémentent l'IOMMU au niveau matériel.

\\n
    \\n
  • Thunderbolt Security Levels : None (SL0, DMA libre), User (SL1, confirmation), Secure (SL2, confirmation + UUID), USB-only (SL3, pas de PCIe tunneling)
  • \\n
  • Kernel DMA Protection (Windows 10+) : active l'IOMMU avant le chargement des drivers Thunderbolt, bloquant le DMA pré-boot
  • \\n
  • DMAR ACPI table : décrit les mappings IOMMU au BIOS/UEFI. Certains BIOS ne configurent pas correctement l'IOMMU, laissant des fenêtres d'attaque
  • \\n
\\n
⚠️ Attention — Même avec l'IOMMU activé, des contournements existent : certains BIOS laissent des fenêtres DMA ouvertes pendant le boot, les drivers kernel peuvent désactiver temporairement la protection IOMMU pour un device, et les attaques par ATS (Address Translation Services) PCIe peuvent contourner l'IOMMU en exploitant les capacités de traduction du device lui-même.
\\n
? Conseil pratique — Pour un audit DMA, commencez par vérifier si l'IOMMU est activé : dmesg | grep -i iommu sur Linux, ou msinfo32 → Kernel DMA Protection sur Windows. Testez avec un device PCILeech USB3380 (~50€) avant d'investir dans une plateforme FPGA.
\\n

À retenir

  • Les attaques DMA permettent la lecture/écriture de TOUTE la mémoire physique via Thunderbolt, PCIe ou FireWire
  • PCILeech + FPGA (Screamer/Squirrel) est le standard pour les audits DMA professionnels
  • BitLocker sans PIN de pre-boot est vulnérable — la FVEK est en RAM et extractible par DMA
  • L'IOMMU (VT-d/AMD-Vi) est la mitigation principale mais n'est pas toujours activé par défaut
  • Thunderbolt 4 impose Security Level 2 minimum mais des contournements via ATS existent
\\n

FAQ — Questions Fréquentes

\\n
\\n

Les MacBooks sont-ils vulnérables aux attaques DMA ?

Les MacBooks avec Apple Silicon (M1+) ne sont pas vulnérables aux attaques DMA classiques car Apple implémente un IOMMU strict (DART — Device Address Resolution Table) qui isole chaque périphérique. Les MacBooks Intel avec Thunderbolt 3 étaient vulnérables avant macOS Catalina 10.15.4 qui a activé l'IOMMU par défaut. Les MacBooks avec puce T2 ajoutent une couche de protection supplémentaire.

\\n

Comment se protéger contre les attaques DMA ?

Activez l'IOMMU dans le BIOS (VT-d/AMD-Vi), configurez Thunderbolt en Security Level 2 ou 3, utilisez un PIN de pre-boot avec BitLocker (pas TPM seul), désactivez FireWire si non utilisé, et activez Kernel DMA Protection sur Windows 10+. Pour les environnements les plus sensibles, désactivez physiquement les ports Thunderbolt ou utilisez des bloqueurs de port physiques.

\\n

PCILeech fonctionne-t-il à distance ?

Non, PCILeech nécessite un accès physique pour connecter le device DMA. Cependant, une fois le shellcode injecté en mémoire kernel, l'attaquant peut établir un accès distant persistant. Certains scénarios d'attaque combinent l'accès physique bref (evil maid) avec un implant réseau pour un accès continu.

\\n
\\n

Besoin d'un accompagnement expert ?

Nos consultants spécialisés en sécurité matérielle et audits physiques vous accompagnent dans l'évaluation de votre posture de sécurité.

Contactez-nous
\\n
Article recommandé : SGX/TDX et TEE : Attaques sur les Enclaves Sécurisées
\\n

? Articles connexes

\\n\\n\n

Détection forensique des attaques DMA et traces en mémoire

\n

La détection forensique d'une attaque DMA passée est particulièrement ardue car les accès mémoire directs ne génèrent pas de logs système standard. Les indices à rechercher lors d'une investigation post-incident incluent : les entrées de journal PCIe anormales dans les logs UEFI/BIOS (certains firmwares modernes journalisent les accès DMA inhabituels), les artefacts dans la mémoire de dump révélant des modifications de structures noyau cohérentes avec une attaque par rootkit DMA, et les journaux des contrôleurs Thunderbolt indiquant des connexions de périphériques non approuvés.

\n

L'outil PCILeech lui-même génère des signatures détectables par certains EDR : les accès mémoire en mode DMA depuis un périphérique non-hôte correspondent à des patterns d'accès anormaux que des solutions comme Intel Transparent Supply Chain ou les modules IOMMU monitoring de certains hyperviseurs peuvent détecter en temps réel. Pour les organisations à haute sensibilité (défense, finance, infrastructure critique), l'implémentation d'un monitoring IOMMU actif — qui journalise toutes les tentatives d'accès DMA hors des plages allouées — est une mesure de défense en profondeur efficace contre les attaques Thunderbolt physiques.

\n

Les contre-mesures physiques contre les attaques DMA représentent la première ligne de défense pour les environnements à haute sécurité. Le verrouillage des ports Thunderbolt via BIOS/UEFI est la mesure la plus simple et la plus efficace — la plupart des BIOS enterprise permettent de désactiver complètement les ports Thunderbolt ou de les limiter au mode "USB seulement" (sans DMA). Pour les environnements où Thunderbolt est nécessaire pour les docks et périphériques légitimes, l'activation du mode "Thunderbolt Security Level: User Authorization" exige une approbation explicite de l'utilisateur pour chaque nouveau périphérique Thunderbolt, avec persistance de l'autorisation stockée dans un TPM.

Les protections logicielles complémentaires incluent l'activation de la protection noyau Windows (Kernel DMA Protection, disponible depuis Windows 10 version 1803 sur hardware compatible) qui utilise l'IOMMU pour isoler les périphériques Thunderbolt dans des espaces d'adressage dédiés. Sur Linux, les paramètres `iommu=force` et `intel_iommu=on` dans GRUB activent la protection IOMMU. Ces mesures n'éliminent pas tous les vecteurs DMA (bus PCIe interne reste potentiellement vulnérable sur les machines accessibles physiquement) mais augmentent significativement le coût et la complexité des attaques.

\\n
Ayi NEDJIMI
\\n

Testez vos défenses avant les attaquants

\\n

Pentest, Red Team, audit de sécurité — rapport détaillé avec plan de remédiation priorisé.

\\n\\n
\\n