🔍 Contexte

Article technique publiĂ© le 26 mars 2026 par Paul Meyer (Edgeless Systems) sur le blog katexochen.aro.bz. L’auteur dĂ©crit la reproduction complĂšte de l’attaque BadAML contre la plateforme Contrast (runtime Kubernetes basĂ© sur des CVMs) et la mise en place d’une mitigation.

🎯 Description de l’attaque BadAML

BadAML est une attaque exploitant les tables ACPI fournies par l’hĂŽte pour obtenir une exĂ©cution de code arbitraire Ă  l’intĂ©rieur de VMs confidentielles (CVMs), contournant leurs garanties d’isolation mĂ©moire.

Le vecteur d’attaque repose sur :

  • L’injection d’une table ACPI malveillante (SSDT) contenant du bytecode AML via l’option QEMU -acpitable file=payload.aml
  • L’utilisation de OperationRegion AML pour accĂ©der Ă  des adresses mĂ©moire physiques arbitraires, y compris les pages mĂ©moire privĂ©es du guest
  • La mĂ©thode _INI dĂ©clenchĂ©e automatiquement lors de l’initialisation des pĂ©riphĂ©riques
  • Un primitif lecture/Ă©criture (PTCH) permettant de patcher octet par octet le script /init dans l’initrd
  • L’ouverture d’un shell root interactif sur la console sĂ©rie

đŸ› ïž DĂ©tails techniques du payload ASL

Le payload définit un device ACPI fictif FAKE (HID MSFT0003) avec :

  • COM0 : mappage du port sĂ©rie legacy (0x03F8) pour l’exfiltration
  • INRD : lecture d’un pointeur 64 bits vers l’initrd depuis une adresse mĂ©moire systĂšme
  • MĂ©thode PTCH : primitive read-write arbitraire via OperationRegion dynamique
  • MĂ©thode _INI : point d’entrĂ©e de l’attaque, patche /init pour exĂ©cuter cd sysroot && sh </dev/ttyS0 >/dev/ttyS0 & #

🔬 Reproduction dans Contrast

Edgeless Systems a reproduit l’attaque end-to-end en :

  • ImplĂ©mentant le chemin d’attaque complet hĂŽte-vers-guest (sans mĂ©canisme de mise Ă  jour ACPI depuis le guest)
  • RĂ©solvant le problĂšme des adresses hardcodĂ©es via une technique de scan mĂ©moire en deux phases :
    • Scan grossier (CSCA) par incrĂ©ments de 8 Mo pour localiser un fichier cible rempli du pattern DEADBEEF
    • Scan fin (FSCN) pour trouver le dĂ©but du pattern
  • DĂ©monstration de l’Ă©criture en mĂ©moire privĂ©e en patchant les 4 premiers octets avec CAFEBABE
  • IntĂ©gration du reproducer dans la CI comme test de rĂ©gression

đŸ›Ąïž Mitigation

La mitigation implĂ©mentĂ©e est un sandbox AML qui restreint l’exĂ©cution du bytecode aux pages mĂ©moire partagĂ©es uniquement, empĂȘchant l’accĂšs aux pages privĂ©es du guest.

📋 Type d’article

Analyse technique dĂ©taillĂ©e visant Ă  documenter la reproduction d’une attaque publiĂ©e (Takekoshi et al.) et Ă  prĂ©senter la mitigation dĂ©ployĂ©e dans le produit Contrast d’Edgeless Systems.

🧠 TTPs et IOCs dĂ©tectĂ©s

TTP

  • T1542 — Pre-OS Boot (Defense Evasion)
  • T1059 — Command and Scripting Interpreter (Execution)
  • T1055 — Process Injection (Defense Evasion)
  • T1106 — Native API (Execution)

IOC

  • Fichiers : payload.aml

Malware / Outils

  • BadAML SSDT payload (other)

🔗 Source originale : https://katexochen.aro.bz/posts/badaml/