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 :
- Comportemental, pas artefactuel : l'IOA décrit une action ou une chaîne d'actions, pas un objet statique.
- Contextualisé : la même action est légitime dans un contexte (admin), malveillante dans un autre (process Office spawning powershell).
- 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é
| Dimension | IOC | IOA |
|---|---|---|
| Nature | Artefact statique (hash, IP, domaine, URL, registry key) | Comportement, séquence, pattern d'événements |
| Temps | Rétrospectif (a déjà été observé) | Présent ou prédictif (en cours, imminent) |
| Format | STIX 2.1, MISP, OpenIOC, CSV blocklist, YARA rule | Sigma rule, KQL/SPL/EQL query, Atomic Red Team test |
| Coût pour l'attaquant | Minutes (recompile, change IP, achète domaine) | Semaines à mois (refonte arsenal, retooling) |
| Faux positifs | Faibles 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 consommateur | SIEM lookup, EDR blocklist, FW/proxy DNS | EDR/XDR comportemental, SIEM correlation rules |
| Position Pyramid of Pain | Bas (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 fichierloader.exe, drop sur disque ; IP C2192.0.2.42; domaine d'exfildata-out.example. » - Vue IOA : « Process
winword.exespawncmd.exe→powershell.exe -nop -w hidden -enc <base64>→ connexion sortante vers IP non listée → écriture dansHKLM\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 :
| Couche | Exemples d'IOA | Tactique ATT&CK typique |
|---|---|---|
| Process | Parent-child anormal (winword → cmd), command line obfuscation, base64 long, script block PowerShell suspect | Execution (TA0002), Defense Evasion (TA0005) |
| File | Création dans \AppData\Roaming\<random>, drop dans \Windows\System32\ par non-admin | Persistence (TA0003) |
| Registry | Écriture Run, RunOnce, Image File Execution Options, Services par process non-admin | Persistence (TA0003), Privilege Escalation (TA0004) |
| Network | Beaconing périodique avec jitter, DNS tunneling, connexion vers IP non listée DNS, HTTPS sans SNI | Command and Control (TA0011), Exfiltration (TA0010) |
| Identity | Login simultané géo-incohérent, élévation de privilèges, ASREP roasting, Kerberoasting, golden ticket | Credential Access (TA0006), Lateral Movement (TA0008) |
| Image load | DLL load par process non-Microsoft signé, hijacking via DLL search order | Defense Evasion (TA0005) |
| AMSI / ETW | AmsiScanBuffer bypass, ETW provider patch, Sysmon log clearing | Defense Evasion (TA0005) |
| Cloud API | iam:CreateAccessKey sur compte rare, assumeRole cross-account, désactivation CloudTrail | Persistence + Defense Evasion |
| Reply-To ≠ From, X-Mailer suspect, attachment HTML smuggling | Initial 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.
| LOLBin | Usage légitime | Abus offensif | MITRE |
|---|---|---|---|
certutil.exe | Manip certificats | Téléchargement fichier (-urlcache -split -f) | T1105 Ingress Tool Transfer |
bitsadmin.exe | Background Intelligent Transfer | Téléchargement payload, exécution | T1105, T1197 |
mshta.exe | Exécution HTML applications | Exécution VBScript / JScript distant | T1218.005 |
regsvr32.exe | Enregistrement DLL | Squiblydoo (regsvr32 + scrobj.dll) | T1218.010 |
rundll32.exe | Exécution DLL exportée | Exécution arbitraire | T1218.011 |
wmic.exe | Query WMI | Exécution distante, recon | T1047, T1218 |
powershell.exe | Shell admin | Tout, en obfusqué | T1059.001 |
at / cron (Linux) | Schedule | Persistance, RCE | T1053.002, T1053.003 |
wget / curl | Download HTTP | Téléchargement payload | T1105 |
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: highCette 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égorie | Outil | Rôle 2026 | Particularité |
|---|---|---|---|
| EDR endpoint | CrowdStrike Falcon | EDR leader marché entreprise | Cloud-native, IOA-driven dès le design |
| EDR endpoint | Microsoft Defender for Endpoint | EDR Microsoft, intégré Windows/Office 365 | Adoption massive, ASR rules, AMSI |
| EDR endpoint | SentinelOne Singularity | EDR autonomous response | Storyline, behavioral AI |
| EDR endpoint | Palo Alto Cortex XDR | EDR + XDR network | Mature mapping ATT&CK |
| Open-source EDR | Wazuh | SIEM + EDR open-source | Adopté en SOC budget contraint |
| Open-source EDR | Velociraptor (Rapid7) | Hunt large échelle, DFIR | VQL query language, scale 10k endpoints |
| Sigma | SigmaHQ repo | Catalogue règles communautaires | ~3000 règles 2026, ATT&CK-mapped |
| Sigma converter | uncoder.io / pySigma | Compile vers Splunk/Sentinel/Elastic | Portabilité multi-SIEM |
| Atomic testing | Atomic Red Team (Red Canary) | Validation détection | ~700 atomics ATT&CK-mapped |
| Threat hunting | Jupyter Notebooks + KQL/SPL | Hunts structurés | Pattern PEAK / TaHiTI |
| MITRE ATT&CK | ATT&CK Navigator | Visualisation couverture | Heatmap technique × source détection |
| Sysmon | Sysmon (Microsoft Sysinternals) | Télémétrie endpoint riche Windows | Configuration 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/windowsCette 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 :
| Framework | Origine | Phases | Force |
|---|---|---|---|
| PEAK | SpecterOps (2023) | Prepare / Execute / Act with Knowledge | Rigueur scientifique, hunt-as-code, notebooks Jupyter |
| TaHiTI | Open Threat Hunting Framework (2018-2020) | 6 phases avec pivot CTI | CTI-driven, mapping MISP / OpenCTI |
| MITRE TTP-based hunting | MITRE (2017, mis à jour 2024) | Hypothesis → Search → Confirm | Couverture 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 :
- Modélisation : décomposition d'une technique ATT&CK en signaux observables (ETW, Sysmon, EDR telemetry).
- Détection : écriture de règles Sigma / EDR / SIEM correlation.
- Validation : Atomic Red Team, Caldera, custom scripts pour vérifier que la règle se déclenche.
- Tuning : analyse des faux positifs, exception lists, scoring confiance.
- Déploiement : pipeline CI/CD detection-as-code, versionning Git, peer review.
- 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
| Erreur | Symptôme | Fix |
|---|---|---|
| Confondre IOA et IOC | Bloquer un hash et croire avoir « détecté l'attaque » | Investir en règles Sigma comportementales mappées ATT&CK |
| EDR sans tuning baseline | Volume d'alertes ingérable, alerte fatigue | Baseline 2-4 semaines, exception list, scoring confiance |
| Sigma rules génériques sans contexte org | FP > 70 %, confiance perdue | Adapter selection / filter aux assets et users de l'org |
| Pas de mapping ATT&CK des règles | Couverture invisible, doublons, gaps | ATT&CK Navigator par source de log + technique, revue mensuelle |
| Pas de validation Atomic Red Team | Règle « live » jamais testée | Pipeline CI : atomic test → vérification → merge |
| Détection live sans hunting rétrospectif | Manquer les attaques sub-radar | 1 hunt structuré PEAK/TaHiTI par sprint |
| Sysmon mal configuré | Télémétrie pauvre, IOA invisibles | Config OlafHartong sysmon-modular ou SwiftOnSecurity |
| Pas de detection-as-code | Règles dispersées, pas de peer review | Repo 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 / Acteur | IOA caractéristique | MITRE 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_READ | T1003.001 LSASS Memory |
| Cobalt Strike beacon | Injection 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 custom | T1218 + 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-utils | Charge utile latente activée par signature spécifique sur sshd | T1554 Compromise Software Binary |
| Lazarus AppleJeus (2024) | Process macOS signé ad-hoc avec connexion C2 sortante | T1547.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
- IOC - Indicateurs de compromission, l'autre face du couple détection, artefactuelle et statique.
- TTP - Tactics, Techniques, Procedures, la grille MITRE ATT&CK qui structure les IOA.
- CVE - Définition, format, processus, vulnérabilités exploitées qui déclenchent les IOA en aval.
- CWE - Common Weakness Enumeration, taxonomie des classes de défauts.
- Bootcamp DevSecOps, formation 12 semaines couvrant detection engineering, Sigma, MITRE ATT&CK.
- Hub catégorie Glossaire cyber, autres définitions de référence Zeroday.
- MITRE ATT&CK : https://attack.mitre.org/.
- LOLBAS : https://lolbas-project.github.io/.
- GTFOBins : https://gtfobins.github.io/.
- Sigma HQ : https://github.com/SigmaHQ/sigma.
- Atomic Red Team : https://github.com/redcanaryco/atomic-red-team.
- David Bianco - Pyramid of Pain (2013) : https://detect-respond.blogspot.com/2013/03/the-pyramid-of-pain.html.
- SpecterOps PEAK Threat Hunting Framework : https://posts.specterops.io/.
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.





