Glossaire cyber

IOA - Indicators of Attack vs IOC, détection 2026

IOA (Indicators of Attack) : différence avec IOC, détection comportementale, EDR/XDR, MITRE ATT&CK, Sigma, detection engineering et threat hunting 2026.

Naim Aouaichia
16 min de lecture
  • Glossaire
  • IOA
  • MITRE ATT&CK
  • EDR
  • Threat Hunting
  • Detection Engineering
  • Sigma

Un IOA (Indicator of Attack) est un indicateur comportemental d'une attaque en cours ou en cours de préparation, par opposition à l'IOC (Indicator of Compromise) qui est un artefact statique d'une compromission passée. Le terme a été popularisé par George Kurtz (CrowdStrike, vers 2014) pour formaliser la rupture entre la détection signature-based historique et l'approche behavioral des EDR modernes. En 2026, 60-70 % du budget detection engineering des équipes SOC matures est alloué aux IOA-based detections (règles Sigma, hunts MITRE ATT&CK, detection-as-code), exactement parce que la Pyramid of Pain (David Bianco, 2013) prouve qu'un attaquant change ses IOC en minutes et ses IOA en semaines ou mois. Comprendre la distinction IOA/IOC, le mapping MITRE ATT&CK, le rôle des EDR/XDR, le concept de LOLBins et la discipline detection engineering est le pivot d'un SOC qui dépasse le stade « SIEM avec feeds CTI gratuits ».

Pour le contexte adjacent : voir IOC - Indicateurs de compromission pour l'approche artefactuelle, et TTP - Tactics, Techniques, Procedures pour la grille MITRE ATT&CK qui structure les IOA.

1. Définition précise et origine du terme

Un IOA est une séquence ou combinaison d'événements observables sur un système (process, file, network, registry, identity, cloud API) qui, prise dans son contexte, signale qu'une attaque est en cours ou vient de se produire. Trois propriétés distinctes :

  1. Comportemental, pas artefactuel : l'IOA décrit une action ou une chaîne d'actions, pas un objet statique.
  2. Contextualisé : la même action est légitime dans un contexte (admin), malveillante dans un autre (process Office spawning powershell).
  3. Indépendant de la signature : un IOA ne repose pas sur un hash, une IP ou un domaine, mais sur comment un binaire ou un compte se comporte.

Le terme Indicator of Attack a été introduit par CrowdStrike vers 2014 (voir https://www.crowdstrike.com/cybersecurity-101/indicators-of-attack-vs-indicators-of-compromise/) pour formaliser la rupture méthodologique amenée par les EDR (Endpoint Detection and Response) avec collecte télémétrique riche : process tree, command line, child-parent, image load, network connection par process. Avant cette rupture, la détection endpoint était dominée par les antivirus signature-based, qui sont strictement IOC-driven.

2. IOA vs IOC - le mental model détaillé

DimensionIOCIOA
NatureArtefact statique (hash, IP, domaine, URL, registry key)Comportement, séquence, pattern d'événements
TempsRétrospectif (a déjà été observé)Présent ou prédictif (en cours, imminent)
FormatSTIX 2.1, MISP, OpenIOC, CSV blocklist, YARA ruleSigma rule, KQL/SPL/EQL query, Atomic Red Team test
Coût pour l'attaquantMinutes (recompile, change IP, achète domaine)Semaines à mois (refonte arsenal, retooling)
Faux positifsFaibles si feed curéModérés à élevés si pas de tuning
Volume signalÉlevé (millions d'IOC dans feeds publics)Faible mais qualitatif
Outil consommateurSIEM lookup, EDR blocklist, FW/proxy DNSEDR/XDR comportemental, SIEM correlation rules
Position Pyramid of PainBas (Hash, IP, Domain)Haut (Network/Host artifact, Tools, TTPs)

Exemple concret de la même attaque vue par les deux lentilles :

  • Vue IOC : « Hash SHA-256 4a7e... du fichier loader.exe, drop sur disque ; IP C2 192.0.2.42 ; domaine d'exfil data-out.example. »
  • Vue IOA : « Process winword.exe spawn cmd.exepowershell.exe -nop -w hidden -enc <base64> → connexion sortante vers IP non listée → écriture dans HKLM\Software\Microsoft\Windows\CurrentVersion\Run → création scheduled task \Microsoft\Windows\<random>\Updater. »

Le SOC junior bloque l'IP 192.0.2.42 puis attend la prochaine alerte. Le SOC mature détecte la chaîne winword → cmd → powershell (T1059.001 PowerShell, T1566.001 Spearphishing Attachment) et généralise la détection à toutes les futures campagnes utilisant la même TTP, indépendamment des IOC.

Position tranchée : un SOC qui se résume à un SIEM consommant des feeds STIX/TAXII gratuits sans règles comportementales est par définition immature en 2026. La maturité commence dès qu'il y a une discipline detection engineering dédiée à produire et tuner des règles Sigma/EDR ATT&CK-mapped.

3. Catégories d'IOA observables

Les IOA peuvent être classés par couche d'observation et par tactique MITRE ATT&CK. Tableau de référence :

CoucheExemples d'IOATactique ATT&CK typique
ProcessParent-child anormal (winword → cmd), command line obfuscation, base64 long, script block PowerShell suspectExecution (TA0002), Defense Evasion (TA0005)
FileCréation dans \AppData\Roaming\<random>, drop dans \Windows\System32\ par non-adminPersistence (TA0003)
RegistryÉcriture Run, RunOnce, Image File Execution Options, Services par process non-adminPersistence (TA0003), Privilege Escalation (TA0004)
NetworkBeaconing périodique avec jitter, DNS tunneling, connexion vers IP non listée DNS, HTTPS sans SNICommand and Control (TA0011), Exfiltration (TA0010)
IdentityLogin simultané géo-incohérent, élévation de privilèges, ASREP roasting, Kerberoasting, golden ticketCredential Access (TA0006), Lateral Movement (TA0008)
Image loadDLL load par process non-Microsoft signé, hijacking via DLL search orderDefense Evasion (TA0005)
AMSI / ETWAmsiScanBuffer bypass, ETW provider patch, Sysmon log clearingDefense Evasion (TA0005)
Cloud APIiam:CreateAccessKey sur compte rare, assumeRole cross-account, désactivation CloudTrailPersistence + Defense Evasion
EmailReply-To ≠ From, X-Mailer suspect, attachment HTML smugglingInitial Access (TA0001)

Cette grille est directement extractible par les LLM search et sert de matrice de couverture pour un programme detection engineering.

4. LOLBins, Living off the Land et IOA

Un attaquant moderne préfère exécuter des binaires légitimes système plutôt que de déposer ses propres outils, cette pratique est dite « Living off the Land » (LotL). Conséquence : la détection signature-based (IOC) est structurellement impuissante, parce que certutil.exe est signé Microsoft et présent partout. Seul l'IOA marche.

Catalogue de référence : LOLBAS (Living Off The Land Binaries, Scripts and Libraries), https://lolbas-project.github.io/, ~200 entrées en 2026 mappées MITRE ATT&CK. Côté Linux : GTFOBins, https://gtfobins.github.io/, ~300 entrées.

LOLBinUsage légitimeAbus offensifMITRE
certutil.exeManip certificatsTéléchargement fichier (-urlcache -split -f)T1105 Ingress Tool Transfer
bitsadmin.exeBackground Intelligent TransferTéléchargement payload, exécutionT1105, T1197
mshta.exeExécution HTML applicationsExécution VBScript / JScript distantT1218.005
regsvr32.exeEnregistrement DLLSquiblydoo (regsvr32 + scrobj.dll)T1218.010
rundll32.exeExécution DLL exportéeExécution arbitraireT1218.011
wmic.exeQuery WMIExécution distante, reconT1047, T1218
powershell.exeShell adminTout, en obfusquéT1059.001
at / cron (Linux)SchedulePersistance, RCET1053.002, T1053.003
wget / curlDownload HTTPTéléchargement payloadT1105

Détecter ces LOLBins par hash ne sert à rien : ils sont signés et légitimes. La règle Sigma type cible la command line et le contexte parent :

# Sigma rule - Suspicious certutil.exe usage for download
title: Certutil URL Download Pattern
id: 0d8a8eda-a9b0-4f4f-8b1e-0f8b1234abcd
status: stable
description: |
  Détecte certutil.exe utilisé pour télécharger un fichier, pattern LOLBin classique
  associé à T1105 Ingress Tool Transfer. Faux positifs très rares, certutil étant
  rarement utilisé légitimement par les utilisateurs finaux.
references:
  - https://lolbas-project.github.io/lolbas/Binaries/Certutil/
  - https://attack.mitre.org/techniques/T1105/
tags:
  - attack.command_and_control
  - attack.t1105
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    Image|endswith: '\certutil.exe'
    CommandLine|contains:
      - '-urlcache'
      - '-verifyctl'
      - '-split'
      - 'http://'
      - 'https://'
  condition: selection
falsepositives:
  - Scripts d'admin légitimes (whitelister par hash de script et user)
level: high

Cette règle Sigma compile vers Splunk SPL, Microsoft Sentinel KQL, Elastic EQL, CrowdStrike CQL via le projet uncoder.io (https://uncoder.io/) ou pySigma. C'est la portabilité qui rend Sigma central en detection engineering 2026.

5. Stack outillage IOA - EDR, Sigma, Atomic Red Team

CatégorieOutilRôle 2026Particularité
EDR endpointCrowdStrike FalconEDR leader marché entrepriseCloud-native, IOA-driven dès le design
EDR endpointMicrosoft Defender for EndpointEDR Microsoft, intégré Windows/Office 365Adoption massive, ASR rules, AMSI
EDR endpointSentinelOne SingularityEDR autonomous responseStoryline, behavioral AI
EDR endpointPalo Alto Cortex XDREDR + XDR networkMature mapping ATT&CK
Open-source EDRWazuhSIEM + EDR open-sourceAdopté en SOC budget contraint
Open-source EDRVelociraptor (Rapid7)Hunt large échelle, DFIRVQL query language, scale 10k endpoints
SigmaSigmaHQ repoCatalogue règles communautaires~3000 règles 2026, ATT&CK-mapped
Sigma converteruncoder.io / pySigmaCompile vers Splunk/Sentinel/ElasticPortabilité multi-SIEM
Atomic testingAtomic Red Team (Red Canary)Validation détection~700 atomics ATT&CK-mapped
Threat huntingJupyter Notebooks + KQL/SPLHunts structurésPattern PEAK / TaHiTI
MITRE ATT&CKATT&CK NavigatorVisualisation couvertureHeatmap technique × source détection
SysmonSysmon (Microsoft Sysinternals)Télémétrie endpoint riche WindowsConfiguration par fichier XML (SwiftOnSecurity, OlafHartong)

Installation et test rapide de la stack open-source pour un PoC SOC :

# Sysmon avec config OlafHartong (modulaire)
git clone https://github.com/olafhartong/sysmon-modular.git
cd sysmon-modular
.\Merge-AllSysmonXml.ps1
# Copier le XML résultant et installer
sysmon64.exe -accepteula -i sysmonconfig.xml
 
# Atomic Red Team
git clone https://github.com/redcanaryco/atomic-red-team.git
git clone https://github.com/redcanaryco/invoke-atomicredteam.git
# Lancer un atomic test (ex. T1059.001 PowerShell encoded command)
Import-Module .\invoke-atomicredteam\Invoke-AtomicRedTeam.psd1 -Force
Invoke-AtomicTest T1059.001 -ShowDetails
Invoke-AtomicTest T1059.001 -TestNumbers 1
 
# Vérifier que ton EDR/SIEM a remonté l'event correspondant
# Sigma: https://github.com/SigmaHQ/sigma/tree/master/rules/windows

Cette boucle « atomic test → vérification SIEM → tuning règle » est le cœur de la discipline detection engineering en 2026. Les SOC matures la pratiquent en continu via des pipelines CI/CD (detection-as-code) qui versionnent les règles Sigma dans Git, déploient automatiquement vers les SIEM/EDR, et lancent les atomics en pre-deploy pour valider la couverture.

6. Frameworks de threat hunting basés IOA

Trois frameworks structurés dominent en 2026, à connaître nominativement :

FrameworkOriginePhasesForce
PEAKSpecterOps (2023)Prepare / Execute / Act with KnowledgeRigueur scientifique, hunt-as-code, notebooks Jupyter
TaHiTIOpen Threat Hunting Framework (2018-2020)6 phases avec pivot CTICTI-driven, mapping MISP / OpenCTI
MITRE TTP-based huntingMITRE (2017, mis à jour 2024)Hypothesis → Search → ConfirmCouverture ATT&CK explicite

PEAK est l'évolution de TaHiTI vers une approche plus expérimentale et reproductible, chaque hunt produit un notebook versionné qui contient l'hypothèse, la requête (KQL/SPL/EQL), les résultats, et la décision (vrai positif → règle de détection à industrialiser ; faux positif → hypothèse rejetée et documentée). Le repo public threat-hunting-tables de SpecterOps fournit des templates.

7. Detection engineering - la discipline derrière les IOA

Detection engineering est devenu une fonction nommée et reconnue en SOC à partir de ~2020-2022, sous l'impulsion notamment de Jared Atkinson (SpecterOps), Florian Roth (Nextron Systems, créateur de Sigma) et Jose Rodriguez (créateur de HELK et OSSEM). Discipline qui combine :

  1. Modélisation : décomposition d'une technique ATT&CK en signaux observables (ETW, Sysmon, EDR telemetry).
  2. Détection : écriture de règles Sigma / EDR / SIEM correlation.
  3. Validation : Atomic Red Team, Caldera, custom scripts pour vérifier que la règle se déclenche.
  4. Tuning : analyse des faux positifs, exception lists, scoring confiance.
  5. Déploiement : pipeline CI/CD detection-as-code, versionning Git, peer review.
  6. Mesure : couverture ATT&CK Navigator, taux de FP, taux de détection en prod.

Tarification marché 2026 (France) : detection engineer junior 45-60 k€ brut annuel, senior 65-85 k€, lead detection engineer 90-130 k€. Aux US : senior 135 €-220k base + equity. Profil rare, fortement demandé, principalement chez les éditeurs SaaS et les grandes banques. Compétences clés : Python, KQL/SPL/EQL, Sigma, Sysmon, MITRE ATT&CK, EDR API.

Position tranchée : un SOC sans detection engineer dédié ne dépasse pas le stade « consommateur de règles vendor préfabriquées » et reste exposé aux TTPs custom des attaquants ciblés. À partir d'une équipe SOC de 8-10 analystes, allouer au moins 1 ETP detection engineer est un must, pas un luxe.

8. Erreurs fréquentes IOA et anti-patterns

ErreurSymptômeFix
Confondre IOA et IOCBloquer un hash et croire avoir « détecté l'attaque »Investir en règles Sigma comportementales mappées ATT&CK
EDR sans tuning baselineVolume d'alertes ingérable, alerte fatigueBaseline 2-4 semaines, exception list, scoring confiance
Sigma rules génériques sans contexte orgFP > 70 %, confiance perdueAdapter selection / filter aux assets et users de l'org
Pas de mapping ATT&CK des règlesCouverture invisible, doublons, gapsATT&CK Navigator par source de log + technique, revue mensuelle
Pas de validation Atomic Red TeamRègle « live » jamais testéePipeline CI : atomic test → vérification → merge
Détection live sans hunting rétrospectifManquer les attaques sub-radar1 hunt structuré PEAK/TaHiTI par sprint
Sysmon mal configuréTélémétrie pauvre, IOA invisiblesConfig OlafHartong sysmon-modular ou SwiftOnSecurity
Pas de detection-as-codeRègles dispersées, pas de peer reviewRepo Git, CI, coverage, release notes

9. Cas concrets - IOA célèbres dans des incidents publics

Quelques patterns IOA documentés publiquement à connaître pour donner du concret aux discussions :

Incident / ActeurIOA caractéristiqueMITRE technique
APT29 / NOBELIUM (SolarWinds 2020)Légitime DLL hijack via SolarWinds.Orion.Core.BusinessLayer.dll modifiéT1195.002 Compromise Software Supply Chain
Mimikatz (depuis 2014)Process non-Microsoft accédant LSASS avec PROCESS_VM_READT1003.001 LSASS Memory
Cobalt Strike beaconInjection dans werfault.exe, sleep + jitter, named pipe \\.\pipe\msagent_<random>T1055.012 Process Hollowing, T1071.001 Web Protocols
Volt Typhoon (2023-2024)LotL extrême : wmic, ntdsutil, netsh chaînés sans payload customT1218 + T1003.003 NTDS
HAFNIUM ProxyLogon (2021)Création de webshell .aspx dans \inetpub\wwwroot\aspnet_client\system_web\T1505.003 Web Shell
CVE-2024-3094 xz-utilsCharge utile latente activée par signature spécifique sur sshdT1554 Compromise Software Binary
Lazarus AppleJeus (2024)Process macOS signé ad-hoc avec connexion C2 sortanteT1547.013 LaunchAgents

Le cas Volt Typhoon (acteur sponsorisé Chine, ciblage infrastructures critiques US documenté par CISA/Microsoft en mai 2023, puis exfiltration confirmée 2024) illustre la rupture IOA absolue : l'acteur n'utilise quasiment aucun malware custom. Tout passe par des LotL Windows natifs (wmic, ntdsutil, netsh, cmd, powershell) chaînés sur plusieurs semaines. Aucun IOC stable possible, uniquement la détection comportementale par chaînes de commandes inhabituelles. Référence pour comprendre pourquoi le pivot IOC → IOA est non-négociable en 2026.

10. Pour aller plus loin

11. Points clés à retenir

  • IOA = comportemental, IOC = artefactuel. IOA détecte une attaque en cours, IOC matche une compromission passée.
  • Origine du terme : George Kurtz / CrowdStrike vers 2014. Concept formalisé dès 2013 par David Bianco dans la Pyramid of Pain.
  • Coût attaquant : changer un IOC = minutes ; changer un IOA = semaines ou mois. Justifie l'investissement asymétrique 60-70 % IOA dans le budget detection 2026.
  • Stack EDR 2026 : CrowdStrike Falcon, Microsoft Defender for Endpoint, SentinelOne, Cortex XDR pour le commercial ; Wazuh + Velociraptor pour open-source.
  • Sigma : standard de fait pour règles IOA portables. ~3000 règles SigmaHQ en 2026, compilation multi-SIEM via uncoder.io / pySigma.
  • LOLBins : ~200 entrées LOLBAS Windows + ~300 GTFOBins Linux. Détection signature impossible, détection contextuelle obligatoire.
  • MITRE ATT&CK = grille obligatoire pour mapper règles, hunts, couverture. ATT&CK Navigator pour visualiser.
  • Atomic Red Team : ~700 tests atomiques ATT&CK-mapped. Validation continue des règles en CI/CD detection-as-code.
  • PEAK / TaHiTI / MITRE TTP-based : trois frameworks threat hunting structurés. PEAK recommandé en 2026.
  • Detection engineering : discipline nommée, profil 65-85 k€ senior France, 135 €-220k US. 1 ETP minimum à partir de 8-10 analystes SOC.
  • Volt Typhoon (2023-2024) : cas d'école LotL pur, aucun IOC stable, détection IOA-only. Référence pour le pivot.
  • Anti-pattern n°1 : SOC SIEM-only consommant des feeds STIX/TAXII gratuits sans règles comportementales, immature en 2026, voué à manquer les attaques ciblées.

Questions fréquentes

  • Quelle différence concrète entre IOA et IOC en SOC opérationnel ?
    Un **IOC** (Indicator of Compromise) est un artefact **statique** : hash SHA-256, IP, domaine, URL, clé registry. Un **IOA** (Indicator of Attack) est un **comportement** : `cmd.exe` lancé par `winword.exe`, accès à `lsass.exe` par un process non-signé, écriture dans `HKLM\SYSTEM\CurrentControlSet\Services` puis création de scheduled task dans la même heure. L'IOC dit « cet artefact a été observé », l'IOA dit « ce qui se passe en ce moment ressemble à une attaque ». Un attaquant peut changer ses IOC en quelques minutes (recompile, change d'IP) ; ses IOA, donc ses TTP, coûtent des semaines ou mois à modifier. C'est exactement ce que documente la **Pyramid of Pain** de David Bianco (2013). En SOC mature, 60-70 % du budget detection engineering 2026 est alloué aux IOA-based detections, le reste aux IOC.
  • Comment détecter concrètement un IOA en EDR moderne ?
    L'EDR collecte la **télémétrie** (process tree, file ops, network, registry, image load, named pipes, AMSI, ETW providers) et applique des règles comportementales. Exemple concret : règle « Suspicious LSASS Access » présente dans Microsoft Defender for Endpoint et CrowdStrike Falcon, détecte tout process non-signé Microsoft qui ouvre `lsass.exe` avec `PROCESS_VM_READ` ou `PROCESS_QUERY_LIMITED_INFORMATION`, signature classique de **Mimikatz** (T1003.001 dans MITRE ATT&CK). Stack opérationnelle : EDR (CrowdStrike Falcon, Microsoft Defender XDR, SentinelOne, Cortex XDR), règles Sigma converties via **uncoder.io**, validation continue via **Atomic Red Team** (Red Canary, repo `atomics/`) qui propose ~700 tests atomiques mappés MITRE ATT&CK pour vérifier la couverture detection.
  • Faut-il privilégier IOA ou IOC dans une stratégie de détection 2026 ?
    **Les deux, mais avec un investissement asymétrique.** Sur la Pyramid of Pain, les IOA (TTPs et tools) sont plus douloureux pour l'attaquant : changer un IOC coûte minutes, changer un IOA coûte semaines. Recommandation 2026 : 60-70 % du budget detection engineering dédié aux IOA (règles Sigma, hunts comportementaux, detection-as-code), 20-30 % aux IOC (feeds STIX/TAXII, blocklists, MISP), 10 % au tuning et faux positifs. Position opposée : une équipe SOC débutante doit commencer par les IOC (signal/bruit favorable, livrables rapides) puis monter en IOA progressivement à mesure que l'EDR est déployé et que l'équipe gagne en maturité MITRE ATT&CK. Sauter la phase IOC sans EDR mature produit des dashboards vides.
  • Qu'est-ce qu'un LOLBin et pourquoi c'est central en IOA ?
    Un **LOLBin** (Living Off The Land Binary) est un binaire **légitime** présent par défaut sur le système (Windows : `certutil.exe`, `bitsadmin.exe`, `mshta.exe`, `regsvr32.exe`, `rundll32.exe`, `wmic.exe`, `powershell.exe`, `msiexec.exe` ; Linux : `at`, `wget`, `curl`, `python`, `bash`) que les attaquants détournent pour exécuter du code, télécharger des payloads, persister, ou contourner l'AppLocker. Le projet **LOLBAS** (Living Off The Land Binaries, Scripts and Libraries) maintient un catalogue communautaire (https://lolbas-project.github.io/) avec ~200 entrées en 2026, mappées MITRE ATT&CK. Détecter un LOLBin par le hash est inutile (le binaire est légitime), il faut détecter son **usage anormal** (ex. `certutil.exe -urlcache -split -f http://...` est une copie de fichier malveillante, T1105 Ingress Tool Transfer). C'est le cas d'école IOA : pas de signature statique possible, uniquement du contexte comportemental.
  • Quel framework de threat hunting structuré utiliser en 2026 ?
    Trois frameworks dominent en 2026, complémentaires plus que concurrents. **PEAK** (Prepare, Execute, Act with Knowledge), publié par SpecterOps en 2023, structure le hunt par hypothèse → exécution → action sur la connaissance acquise. **TaHiTI** (Targeted Hunting integrating Threat Intelligence), Open Threat Hunting Framework 2018-2020, 6 phases avec emphasis sur le pivot CTI. **MITRE TTP-based hunting**, methodology MITRE 2017 mise à jour 2024, structure les hunts par technique ATT&CK. Recommandation : adopter PEAK pour la rigueur méthodologique et le tooling (les **Hunt Notebooks** de SpecterOps en Markdown structuré), TaHiTI quand le hunt est CTI-driven, MITRE ATT&CK comme grille de couverture. Outillage 2026 : Jupyter notebooks + KQL/Splunk SPL/EQL, **HELK** pour le lab, **Atomic Red Team** pour la validation continue, **Velociraptor** (Rapid7) pour le hunt à large échelle.

Écrit par

Naim Aouaichia

Cyber Security Engineer et fondateur de Zeroday Cyber Academy

Ingénieur cybersécurité avec un parcours hybride : développement, DevOps Capgemini, DevSecOps IN Groupe (sécurité des documents d'identité régaliens), audits CAC 40. Fondateur de Hash24Security et Zeroday Cyber Academy. Présence LinkedIn 43 000 abonnés, Substack Zeroday Notes 23 000 abonnés.