SOC & Blue Team

MITRE ATT&CK Navigator : guide pratique 2026

MITRE ATT&CK Navigator en 2026 : layers JSON, gap analysis, comparaison profils adversaires, intégrations DeTT&CT, Vectr, scoring coverage défensif step-by-step.

Naim Aouaichia
15 min de lecture
  • MITRE ATT&CK
  • Navigator
  • Detection Engineering
  • Purple Team
  • DeTT&CT
  • Vectr
  • Gap Analysis
  • Threat Modeling

MITRE ATT&CK Navigator est l'outil web officiel maintenu par MITRE qui permet de visualiser, manipuler et partager des couvertures personnalisées de la matrice ATT&CK Enterprise (ou Mobile, ICS). Il offre une représentation graphique en grille tactiques × techniques permettant de scorer chaque technique selon des critères personnalisés (couverture défensive actuelle, profil d'un acteur adversaire, priorité de detection engineering), de combiner plusieurs layers via opérations mathématiques (addition, différence, intersection), et d'exporter les visualisations en JSON, SVG ou Excel pour partage ou intégration dans d'autres outils. En 2026, Navigator est devenu l'outil pivot des programmes detection engineering, gap analysis et purple teaming, avec un écosystème riche d'intégrations (DeTT&CT pour génération automatique, Vectr pour orchestration purple team, Atomic Red Team pour tests d'émulation, Sigma pour règles de détection). Cet article détaille le setup (version hébergée vs self-hosted Docker), la création d'une layer custom step-by-step, la comparaison de profils adversaires (APT29 vs FIN7 vs Lazarus), la gap analysis défensive contre un profil menace, les intégrations majeures et les patterns de partage en équipe.

Vue d'ensemble : qu'est-ce que Navigator

Navigator est une application web open source (TypeScript, Angular) maintenue par MITRE Engenuity, accessible publiquement à mitre-attack.github.io/attack-navigator/. Source code et instructions self-host : github.com/mitre-attack/attack-navigator.

Fonctionnalités centrales :

  • Visualisation matrice : grille tactiques (colonnes) × techniques (lignes regroupées). Choix entre matrices Enterprise (la plus utilisée), Mobile, ICS.
  • Layers : surcouches personnalisées qui colorent les techniques selon scores et catégories. Plusieurs layers peuvent être actives simultanément.
  • Scoring : attribution d'une valeur numérique à chaque technique (par exemple 0 à 3 pour niveaux de couverture détection).
  • Métadonnées : commentaires, liens, couleurs custom, masquage de sous-techniques.
  • Opérations entre layers : combine via addition, soustraction, multiplication. Permet par exemple de calculer une layer "gap" = (profil adversaire) - (couverture défensive).
  • Export : JSON (réimportable), SVG (image vectorielle), Excel (tableau).
  • Import : layers JSON depuis fichier ou URL.

Setup : version hébergée vs self-hosted

Version hébergée par MITRE (recommandée pour la majorité)

URL : https://mitre-attack.github.io/attack-navigator/

Aucune installation. Layers stockées dans le localStorage du navigateur (perdues si cache vidé ou changement de poste). Suffit pour usage individuel exploratoire ou prototypage.

Self-host Docker

Pour persistance multi-utilisateurs ou intégration interne.

# Récupération du code source
git clone https://github.com/mitre-attack/attack-navigator.git
cd attack-navigator
 
# Build et run via Docker
docker build -t attack-navigator -f Dockerfile .
docker run -d -p 4200:4200 --name navigator attack-navigator
 
# Accès via http://localhost:4200

Pour une utilisation production avec reverse proxy nginx + TLS et persistance des layers via stockage S3 ou volume monté, configurer le backend (optionnel, par défaut tout en localStorage côté client).

Self-host avec sources de données ATT&CK custom

Pour les organisations qui maintiennent un fork interne d'ATT&CK avec techniques propriétaires (par exemple secteur défense, intelligence) :

# Configurer la source des données STIX dans navigator
# Éditer config.json pour pointer vers votre instance MITRE TAXII server
{
  "data_sources": [
    {
      "name": "Internal ATT&CK",
      "url": "https://attack-internal.example.test/api/v2/objects/"
    }
  ]
}

Anatomie d'une layer JSON

Une layer Navigator est un fichier JSON suivant le schéma officiel attack-navigator/layer/.

{
  "name": "SOC Detection Coverage 2026 Q2",
  "versions": {
    "attack": "16",
    "navigator": "5.1.0",
    "layer": "4.5"
  },
  "domain": "enterprise-attack",
  "description": "Couverture détection actuelle SOC interne",
  "filters": {
    "platforms": ["Windows", "Linux", "macOS", "Office 365", "Azure AD"]
  },
  "sorting": 0,
  "layout": {
    "layout": "side",
    "showName": true,
    "showID": true,
    "showAggregateScores": true
  },
  "hideDisabled": false,
  "techniques": [
    {
      "techniqueID": "T1003.001",
      "tactic": "credential-access",
      "score": 3,
      "color": "",
      "comment": "LSASS access détecté via Sysmon EID 10 + Sigma rule. EDR Falcon supplémentaire.",
      "enabled": true,
      "metadata": [
        {"name": "Detection Source", "value": "Sysmon + Falcon"},
        {"name": "Last Tested", "value": "2026-04-15"},
        {"name": "Owner", "value": "Detection Engineering"}
      ]
    },
    {
      "techniqueID": "T1059.001",
      "tactic": "execution",
      "score": 2,
      "comment": "PowerShell logs (4104, 4103) ingérés. Règle DownloadString. Pas de couverture obfuscation avancée."
    },
    {
      "techniqueID": "T1566.001",
      "tactic": "initial-access",
      "score": 1,
      "comment": "Microsoft Defender for Office 365 actif. Pas de sandbox URL custom."
    }
  ],
  "gradient": {
    "colors": ["#ff6666", "#ffe766", "#8ec843"],
    "minValue": 0,
    "maxValue": 3
  },
  "legendItems": [
    {"label": "0 - Pas de visibilité", "color": "#ff6666"},
    {"label": "1 - Logs ingérés", "color": "#ffaf66"},
    {"label": "2 - Alerte SIEM/EDR", "color": "#ffe766"},
    {"label": "3 - Alerte + réponse automatisée SOAR", "color": "#8ec843"}
  ]
}

Champs clés :

  • versions : aligner avec la version ATT&CK utilisée et la version Navigator cible.
  • domain : enterprise-attack, mobile-attack ou ics-attack.
  • filters.platforms : restreint l'affichage aux plateformes pertinentes (réduit le bruit visuel).
  • techniques : liste des techniques scorées avec techniqueID (T-numéro), score, comment, metadata.
  • gradient : mapping couleur en fonction de la valeur du score (du rouge "mauvaise couverture" au vert "bonne couverture" par convention).
  • legendItems : légende affichée dans Navigator pour expliquer le scoring.

Création d'une layer custom step-by-step

Procédure type pour générer une première layer de couverture détection à partir de votre stack SOC actuelle.

Étape 1 — Cartographier votre stack de capteurs

Inventorier les sources de données disponibles côté SOC :

  • Endpoint : Sysmon (avec quelle config ? SwiftOnSecurity, Olaf Hartong, Microsoft baseline ?), EDR (Falcon, SentinelOne, Defender for Endpoint), Auditd Linux.
  • Réseau : Zeek (anciennement Bro), Suricata, NetFlow, DNS logs.
  • Cloud : CloudTrail AWS, Activity Logs Azure, Cloud Audit Logs GCP.
  • Identity : Entra ID Sign-In Logs, Okta System Log, AD Security Event Logs.
  • Email : Microsoft Defender for Office 365, Proofpoint, Mimecast.
  • Application : WAF logs, application logs critiques.

Étape 2 — Mapper les capteurs aux techniques ATT&CK

Pour chaque technique ATT&CK, déterminer si vos capteurs ont la visibilité nécessaire. Par exemple :

Technique ATT&CKCapteurs requisVisibilité actuelle
T1003.001 (LSASS Memory)Sysmon EID 10 + EDROUI
T1059.001 (PowerShell)Script Block Logging EID 4104 + EDR process createOUI
T1566.001 (Spearphishing Attachment)Email security gateway logsOUI partiel
T1110.001 (Password Guessing)Auth logs (4625), VPN logsOUI
T1078.004 (Cloud Accounts)Entra ID Sign-In, CloudTrailOUI
T1200 (Hardware Additions)Endpoint USB monitoringNON

Étape 3 — Scorer les techniques

Convention de scoring proposée 2026 :

ScoreDéfinition
0Pas de visibilité (capteur absent ou non ingéré)
1Logs ingérés mais pas de règle dédiée (visibilité passive)
2Règle de détection active générant alerte SIEM ou EDR
3Détection + réponse automatisée SOAR ou containment

Étape 4 — Créer la layer dans Navigator

  1. Ouvrir Navigator, créer "New layer" (Enterprise, version récente).
  2. Définir le nom et la description.
  3. Pour chaque technique mappée, cliquer dessus et attribuer le score via le panel de droite.
  4. Ajouter un commentaire (source de détection, date dernière vérification, owner).
  5. Configurer le gradient de couleur (rouge → vert).
  6. Filtrer par plateformes pertinentes (Windows, Linux, etc.).

Étape 5 — Exporter et versionner

Export via menu "Download layer as JSON". Stockage en Git interne pour versioning et partage.

Comparaison de profils adversaires

L'un des usages les plus puissants de Navigator : comparer la couverture défensive avec le profil TTP d'un adversaire spécifique.

Récupérer une layer adversaire

MITRE publie des layers prêtes pour les principaux groupes d'adversaires sur attack.mitre.org/groups/. Exemples :

  • APT29 (Cozy Bear, Russie) : attack.mitre.org/groups/G0016/G0016-enterprise-layer.json
  • FIN7 (groupe cybercrime financier) : G0046
  • Lazarus Group (Corée du Nord) : G0032
  • Sandworm (GRU, Russie) : G0034
  • Mustang Panda (Chine) : G0129
  • Volt Typhoon (Chine, infra critiques) : G1017

Charger via "Open Existing Layer" → "Load from URL" en collant l'URL JSON.

Combiner deux layers

Une fois la layer adversaire ET votre layer de couverture chargées simultanément, Navigator permet de créer une troisième layer combinée :

  1. Menu "Create new from other layers".
  2. Sélectionner la formule mathématique : a - ba = profil adversaire (score 1 par technique utilisée), b = couverture défensive (votre score 0-3).
  3. Le résultat : techniques rouge sombre = utilisées par adversaire mais non couvertes (gap critique). Techniques vertes = couvertes mais non dans le profil adversaire (couverture excédentaire potentielle).
Exemple visuel pseudo-code de la formule
 
Si Profil_APT29[T1059.001] = 1 (utilisée)
et Couverture_SOC[T1059.001] = 2 (alerte active)
alors Gap[T1059.001] = 1 - 2 = -1 (couverture suffisante)
 
Si Profil_APT29[T1003.001] = 1 (utilisée)
et Couverture_SOC[T1003.001] = 0 (pas de visibilité)
alors Gap[T1003.001] = 1 - 0 = 1 (gap critique à combler)

Priorisation par profil multi-adversaires

Pour une organisation soumise à plusieurs profils menace simultanément (banking targeting + nation-state + cybercrime), créer une layer agrégée pondérée :

Layer_Threat_Combined = 
  0.4 × Layer_APT29 +     # nation-state probable
  0.3 × Layer_FIN7 +      # cybercrime financier
  0.3 × Layer_Lazarus     # nation-state additional

Puis comparer cette layer combinée à votre couverture pour priorisation pondérée des efforts detection engineering.

Gap analysis et detection engineering

L'usage opérationnel principal de Navigator est l'identification des gaps prioritaires pour la roadmap detection engineering.

Workflow trimestriel type

  1. Mois 0 : générer ou réviser la layer de couverture détection actuelle.
  2. Mois 0 : récupérer ou mettre à jour les layers de profils adversaires pertinents.
  3. Mois 0 : générer la layer "gap" via combinaison.
  4. Mois 0-1 : prioriser les top 10 techniques gap selon trois critères : sévérité ATT&CK (impact business si exploitée), fréquence dans rapports CTI récents, faisabilité de détection (existe-t-il des règles Sigma publiques ?).
  5. Mois 1-3 : developing detection engineering sprint sur ces top 10 (création règles Sigma, deployment SIEM, tuning).
  6. Mois 3 : retest via Atomic Red Team pour valider la détection effective.
  7. Mois 3 : mettre à jour la layer de couverture et boucler.

Critères de priorisation

# Pseudo-code de priorisation
prioritization_score:
  base: 0
  factors:
    - exploited_in_recent_apt_report: +3
    - covered_by_sigma_public_rule: +2
    - high_business_impact_tactic: +2
    - low_implementation_effort: +1
    - already_partial_coverage: -1  # complète l'existant
    - rare_in_observed_intrusions: -1

Métriques pilotables

  • Coverage % par tactique : pour chaque tactique ATT&CK (Initial Access, Execution, etc.), pourcentage de techniques avec score >= 2.
  • Coverage absolu vs profil menace : pourcentage des techniques utilisées par votre top 5 adversaires que vous détectez à score >= 2.
  • Tendance trimestrielle : évolution du score moyen entre Q1, Q2, Q3, Q4.

Intégrations majeures

Navigator s'intègre avec un écosystème croissant en 2026.

DeTT&CT (Detect Tactics, Techniques and Combat Threats)

Open source par Marcus Bakker et Ruben Bouman. Génère automatiquement layers Navigator à partir de :

  • Inventaire des sources de données (data sources YAML).
  • Inventaire des règles de détection (techniques covered YAML).
  • Visibility scoring automatique.
# Installation
pip install dettect
 
# Génération layer de visibilité depuis inventaire data sources
python dettect.py datasource -fd data-sources.yaml --layer
 
# Génération layer de détection depuis inventaire de règles
python dettect.py detection -fd techniques-administration.yaml --layer

Vectr (Security Risk Advisors)

Plateforme commerciale dédiée aux exercices purple team. Orchestrer des campagnes d'émulation, scorer les détections par technique, exporter les résultats vers Navigator pour visualisation. Particulièrement adapté aux programmes purple team formels.

Atomic Red Team (Red Canary)

Bibliothèque open source de tests atomiques par technique ATT&CK. Permet de tester une détection en exécutant la TTP correspondante sur un endpoint de lab :

# Test atomic pour T1003.001 (LSASS Memory) sur Windows
Invoke-AtomicTest T1003.001

Le résultat (alerte générée ou non) permet de valider et mettre à jour la layer de couverture dans Navigator.

CALDERA (MITRE)

Framework open source d'émulation adversaire. Orchestre des opérations multi-techniques avec mapping ATT&CK natif. Génère des rapports Navigator-compatible automatiquement (article dédié sur l'émulation avec CALDERA disponible séparément).

SigmaHQ

Le repo public de règles Sigma (3 000+ règles) inclut un mapping ATT&CK pour chaque règle via le tag tags. Conversion automatique vers une layer Navigator possible via :

# Conversion d'un dossier de règles Sigma vers layer Navigator
python sigma2attack.py --rules-directory ./sigma/rules/ --output coverage.json

Plateformes commerciales

Cymulate, AttackIQ, SCYTHE, XM Cyber, Picus Security exécutent des simulations BAS (Breach and Attack Simulation) automatisées et exportent leurs résultats au format Navigator. Coût licence à partir de 30 à 100 k€ annuels selon scope.

Patterns de partage en équipe

Trois patterns observés dans les SOC matures.

Pattern 1 — Repo Git dédié soc-attack-layers

soc-attack-layers/
├── README.md                       # documentation usage
├── coverage/
│   ├── coverage-2026-Q1.json       # snapshot couverture trimestrielle
│   ├── coverage-2026-Q2.json
│   └── coverage-current.json       # symbolic link vers la dernière
├── adversary-profiles/
│   ├── apt29.json
│   ├── fin7.json
│   ├── lazarus.json
│   └── industry-banking-aggregated.json
├── gap-analysis/
│   ├── gap-vs-apt29-2026-Q2.json
│   ├── gap-vs-fin7-2026-Q2.json
│   └── gap-aggregated-2026-Q2.json
└── docs/
    ├── scoring-convention.md
    ├── data-sources-inventory.md
    └── quarterly-review-template.md

Versioning Git permet revue via PR, historique, branches par scénario d'évolution.

Pattern 2 — Convention de scoring documentée

Sans convention partagée, chaque analyste score différemment. Documentation type :

# Scoring Convention SOC Layers Navigator
 
## Échelle de couverture détection (0-3)
- 0 : Pas de visibilité (capteur absent OU log non ingéré)
- 1 : Visibilité passive (log ingéré mais pas de règle dédiée)
- 2 : Détection active (règle alertant en SIEM ou EDR)
- 3 : Détection + réponse automatisée SOAR ou containment EDR
 
## Évaluation par technique
- Une technique = un score basé sur le pire des sub-techniques principales
- Sub-techniques scorées séparément si différentes en couverture
- Commentaire obligatoire : source de détection, dernière vérification
 
## Date de revue
- Layer générale : trimestrielle
- Layer après changement majeur capteur : ad-hoc immédiat
- Layer adversaire : annuelle ou après publication MITRE update

Pattern 3 — Revue trimestrielle équipe

Rituel formel de 90 minutes par trimestre :

  • 30 min : revue de la layer trimestrielle, identification des évolutions.
  • 30 min : présentation des gaps prioritaires identifiés.
  • 30 min : alignement sur la roadmap detection engineering du prochain trimestre.

Output : layer Navigator mise à jour + ticket epic detection engineering avec top 5-10 techniques à couvrir.

Pièges fréquents et bonnes pratiques

Cinq écueils observés dans les programmes de gap analysis ATT&CK 2024-2026.

Vouloir couvrir 100 % du framework. Le framework Enterprise contient 600+ techniques et sub-techniques. Coverage 100 % est un objectif théorique inatteignable et inutile. Mieux vaut viser 90 % de couverture du top 5 adversaires que 50 % uniformément.

Score subjectif sans convention équipe. Sans documentation explicite du scoring, deux analystes scoreront différemment la même technique. Toujours formaliser la convention de scoring en début de programme.

Layers non versionnées. Une layer en localStorage ou sur un Drive partagé non-versionné se perd, est écrasée, ou diverge. Versioning Git obligatoire pour les layers de référence.

Gap analysis sans suite. Identifier les gaps sans alimenter la roadmap detection engineering = exercise théorique sans valeur. Le pipeline gap → priorisation → sprint detection eng → retest doit être bouclé.

Ignorer les mises à jour ATT&CK. ATT&CK évolue tous les 6 mois (avril, octobre). Une layer générée pour v14 (octobre 2023) doit être révisée pour v18 (avril 2026). Sinon les techniques renommées ou ajoutées créent des angles morts.

Points clés à retenir

  • Navigator est l'outil pivot pour visualiser, comparer et partager des couvertures personnalisées de la matrice ATT&CK. Version hébergée par MITRE suffit dans 80 % des cas, self-host Docker pour persistance équipe.
  • Une layer JSON est l'unité atomique : techniques scorées avec commentaires et metadata, exportable pour partage et versionning Git.
  • L'usage le plus puissant : combiner sa layer de couverture défensive avec une layer de profil adversaire pour identifier les gaps prioritaires de detection engineering.
  • DeTT&CT, Vectr, Atomic Red Team, CALDERA, SigmaHQ sont les écosystèmes majeurs qui s'intègrent avec Navigator. Les plateformes BAS commerciales (Cymulate, AttackIQ) automatisent la mesure mais peuvent gonfler artificiellement les chiffres de couverture.
  • La maturité défensive ne se mesure pas en pourcentage de framework couvert (objectif inatteignable) mais en couverture pondérée des profils adversaires plausibles pour l'organisation, validée en conditions réelles par purple team.

Pour aller plus loin

Questions fréquentes

  • Faut-il self-host Navigator ou utiliser la version hébergée ?
    La version hébergée par MITRE (mitre-attack.github.io/attack-navigator) suffit pour 80 % des cas. Avantages : aucune infra à maintenir, toujours à jour avec les dernières versions ATT&CK, accès depuis n'importe où. Limites : layers stockées uniquement en local navigateur (perdues si cache vidé), aucune persistance multi-utilisateurs, pas d'authentification ni de RBAC. Self-host (Docker container, repo github mitre-attack/attack-navigator) devient pertinent pour : équipes SOC qui veulent partager des layers persistantes, organisations avec contrainte data residency, intégration avec outils internes (CI/CD, dashboards). Le déploiement Docker prend 15 minutes.
  • Quelle différence entre une layer ATT&CK et un dashboard SIEM ?
    Un dashboard SIEM (Splunk, Sentinel, Elastic) montre les alertes en temps réel : ce qui se passe maintenant, qui a été touché. Une layer Navigator montre la couverture théorique de la défense : quelles techniques ATT&CK sont surveillées, à quel niveau de confidence, sur quels capteurs. Les deux sont complémentaires. Le SIEM répond à 'qu'est-ce qui se passe ?', la layer répond à 'qu'est-ce qu'on est capable de détecter ?'. Une organisation mature compare les deux pour identifier les angles morts : techniques sur lesquelles on a 0 alerte (parce que jamais attaquée OU parce qu'on ne sait pas la détecter).
  • Comment construire ma première layer custom en 2026 ?
    Trois approches selon le niveau. Manuel : créer une layer vide dans Navigator, sélectionner les techniques pertinentes, leur attribuer scores et commentaires, exporter en JSON. Faisable en 2 à 4 heures pour 30 à 50 techniques. Semi-automatisé : utiliser DeTT&CT (Marcus Bakker, Ruben Bouman) qui prend en input vos sources de données (EDR, SIEM, network) et génère automatiquement la layer de couverture théorique. Automatisé : Sigma rules vers MITRE mapping via sigma2attack ou Sigmac, génération automatique de la layer à partir des règles déployées. Démarrer manuel pour comprendre le modèle, basculer vers DeTT&CT au-delà de 100 techniques cartographiées.
  • Comment comparer la couverture défensive avec un profil d'attaquant ?
    Quatre étapes. 1) Récupérer la layer du profil adversaire : MITRE publie des layers prêtes pour les principaux groupes (APT29, FIN7, Lazarus, Sandworm, Mustang Panda) sur attack.mitre.org. 2) Récupérer ou créer votre layer de couverture défensive (techniques détectées par votre stack). 3) Charger les deux layers dans Navigator et utiliser l'opération 'Combine layers' avec score difference (couverture - profil adversaire). 4) Visualiser les techniques rouge sombre = profil adversaire actif que vous ne couvrez pas. C'est votre liste prioritaire de detection engineering. Cette analyse prend 1 à 3 heures par groupe adversaire évalué.
  • Quels outils s'intègrent avec ATT&CK Navigator ?
    Cinq écosystèmes principaux en 2026. DeTT&CT (open source) : génère layers de couverture détection à partir de log sources et règles. Vectr (Security Risk Advisors) : plateforme purple team avec scoring qui exporte vers Navigator. Atomic Red Team (Red Canary) : tests d'émulation par technique avec mapping ATT&CK. CALDERA (MITRE) : émulation adversaire avec génération de rapport ATT&CK. SigmaHQ : règles de détection avec tags ATT&CK qui se convertissent en layer. Côté commercial : Cymulate, AttackIQ, SCYTHE, XM Cyber génèrent des rapports compatibles Navigator.
  • Quelle est la meilleure pratique pour partager des layers entre équipes ?
    Trois patterns. Versioning Git : stocker les layers JSON dans un repo Git dédié SOC (par exemple soc-attack-layers/) avec convention de nommage (coverage-2026-Q2.json, profile-apt29.json, gap-2026-Q2.json). Permet revue via PR, historique, branches par scénario. Convention de scoring : aligner toute l'équipe sur une grille (0=pas de visibilité, 1=visibilité log only, 2=détection alerte, 3=détection alerte + réponse automatisée). Documentation : pour chaque layer, README qui explique périmètre, méthodologie de scoring, date de revue, owner. Sans ces patterns, les layers s'accumulent en silos individuels et perdent leur valeur d'outil de coordination.

Écrit par

Naim Aouaichia

Expert cybersécurité et fondateur de Zeroday Cyber Academy

Expert cybersécurité avec un master spécialisé et un parcours hybride : développement, DevOps, DevSecOps, SOC, GRC. Fondateur de Hash24Security et Zeroday Cyber Academy. Formateur et créateur de contenu technique sur la cybersécurité appliquée, la sécurité des LLM et le DevSecOps.