Garden of KnowledgeApplied Sciences › Computer Science › Software › Security › Defensive › SOC Analysis
March 8, 2025

Detection Engineering

L’ingénierie de la détection (Detection Engineering, DE) est la discipline qui consiste à concevoir, implémenter, tester et maintenir des règles de détection pour identifier des comportements malveillants dans les systèmes d’information. Elle s’oppose à une approche réactive en professionnalisant la création de détections.

Philosophie et approche§

Detection-as-Code (DaC)§

Les détections sont traitées comme du code source, avec les mêmes pratiques d’ingénierie logicielle :

Threat-Informed Defense§

Aligner les détections sur les menaces réelles ciblant l’organisation :

  1. Identifier les acteurs menaçants pertinents (APT, cybercriminels, insiders)
  2. Cartographier leurs TTPs sur MITRE ATT&CK
  3. Prioriser les détections sur les TTPs les plus probables
  4. Valider via des simulations (Red Team, Atomic Red Team)

Pyramide de la douleur (Pyramid of Pain)§

Indicateurs classés par difficulté pour l’attaquant de les changer :

[TTPs]          ← Difficile à changer (comportement fondamental)
[Outils]        ← Coûteux à modifier
[Artefacts réseau/host] ← Modifiable
[Domaines]      ← Facile à changer
[IPs]           ← Très facile à changer
[Hashes]        ← Trivial à changer

Cibler les TTPs offre la meilleure durabilité des détections.

Cycle de vie d’une détection§

Threat Intel / Hypothèse

Recherche (query exploration)

Prototype de règle

Test sur données historiques (false positives, true positives)

Tuning (ajustement seuils, exclusions)

Review (pair, architecte)

Déploiement en production (alert ou observe)

Monitoring (performances, FP rate)

Maintenance (mise à jour si TP rate chute)

Frameworks de référence§

MITRE ATT&CK§

14 tactiques, 200+ techniques, 400+ sous-techniques. Chaque technique documente :

Usage pratique :

ATT&CK Navigator → visualiser la couverture de détection
Atomic Red Team  → tester une technique spécifique
ATT&CK Evaluations → benchmarker les outils EDR

Cyber Kill Chain (Lockheed Martin)§

PhaseDescriptionDétections types
ReconnaissanceOSINT, scanningDNS queries inhabituelles, scans nmap
WeaponizationCréation du payloadHors périmètre défensif
DeliveryEmail, Web, USBEmail gateway, proxy, AV
ExploitationExécution du payloadEDR, process monitoring
InstallationPersistenceRegistry, scheduled tasks, cron
C2Communication attaquantNetflow, DNS beaconing
Actions on ObjectivesExfiltration, mouvement latéralDLP, auth logs, file access

Unified Kill Chain§

Extension de la Kill Chain avec 18 phases organisées en 3 epochs :

MITRE D3FEND§

Contre-partie défensive d’ATT&CK : catalogue de techniques de défense mappées aux techniques offensives.

Sources de données pour la détection§

SourceContenuCouverture ATT&CK
Windows Event LogsAuth, process, network, registryInitial Access, Execution, Persistence, Lateral Movement
SysmonProcess creation/injection, file, network, registryExecution, Defense Evasion, Discovery
EDR (CrowdStrike, SentinelOne)Comportements process, mémoire, réseauTrès large
Netflow / proxy logsConnexions réseau, DNSC2, Exfiltration
Email gatewayHeaders, attachments, URLsPhishing, Initial Access
Cloud trail (AWS/Azure/GCP)API calls, IAM changesCloud-specific tactics
Firewall / IDSConnexions bloquées, signaturesNetwork-based attacks

Event IDs Windows critiques§

Event IDDescriptionTactique ATT&CK
4624Login réussiLateral Movement
4625Login échouéCredential Access
4648Login avec credentials explicitesLateral Movement
4688Création de processusExecution
4698Tâche planifiée crééePersistence
4702Tâche planifiée modifiéePersistence
4720Compte crééPersistence
4732Membre ajouté au groupe localPrivilege Escalation
4768Demande ticket Kerberos (AS-REQ)Credential Access
4769Demande service ticket (TGS-REQ)Lateral Movement
4771Échec Kerberos pré-authCredential Access
7045Service installéPersistence

Sysmon Event IDs§

Event IDDescription
1Process Create
2File creation time changed
3Network connection
5Process terminated
6Driver loaded
7Image loaded (DLL)
8CreateRemoteThread
10ProcessAccess (LSASS dump)
11FileCreate
12/13/14Registry events
15FileCreateStreamHash (Alternate Data Stream)
22DNS query
23File delete
25Process tampering

Écriture de règles Sigma§

Sigma est un format de règles de détection générique, convertible vers n’importe quel SIEM (Splunk, Elastic, QRadar, Azure Sentinel, etc.).

Structure d’une règle Sigma§

title: Suspicious PowerShell Encoded Command
id: a2e06f9b-8a74-4e3a-b88f-1234567890ab
status: production
description: Détecte l'utilisation de PowerShell avec des commandes encodées base64
references:
    - https://attack.mitre.org/techniques/T1059/001/
author: SOC Team
date: 2024/01/15
tags:
    - attack.execution
    - attack.t1059.001
    - attack.defense_evasion
    - attack.t1027
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\powershell.exe'
        CommandLine|contains|all:
            - '-EncodedCommand'
    selection_alt:
        Image|endswith: '\powershell.exe'
        CommandLine|contains:
            - ' -enc '
            - ' -ec '
    condition: selection or selection_alt
falsepositives:
    - Certains outils légitimes d'administration utilisent des commandes encodées
    - SCCM, Ansible, certains scripts de déploiement
fields:
    - Image
    - CommandLine
    - ParentImage
    - User
level: medium

Modificateurs de condition Sigma§

ModificateurDescription
containsLa valeur contient la chaîne
startswithLa valeur commence par
endswithLa valeur se termine par
reExpression régulière
`containsall`
`containsany`
lt, lte, gt, gteComparaisons numériques
cidrPlage CIDR
base64Valeur encodée en Base64
base64offsetAvec offset de padding
windashWildcards - ou / pour les flags Windows

Niveaux de sévérité§

NiveauDescription
informationalPas directement malveillant, contexte
lowComportement suspect, faible certitude
mediumActivité anormale, investigation recommandée
highTrès probablement malveillant
criticalCompromission confirmée ou imminente

Conversion avec sigma-cli§

# Installer
pip install sigma-cli

# Convertir vers Splunk SPL
sigma convert -t splunk rule.yml

# Vers Elastic EQL
sigma convert -t elasticsearch-eql rule.yml

# Vers Azure KQL
sigma convert -t microsoft365defender rule.yml

# Depuis un dossier
sigma convert -t splunk rules/

# Avec pipeline de mapping
sigma convert -t splunk -p splunk_windows rule.yml

Techniques de détection par TTP§

Execution (TA0002)§

T1059.001 — PowerShell

detection:
    selection:
        Image|endswith: '\powershell.exe'
        CommandLine|contains:
            - 'IEX'
            - 'Invoke-Expression'
            - 'DownloadString'
            - 'WebClient'
            - '-nop'
            - 'bypass'
            - '-w hidden'

T1059.003 — cmd.exe chaînes suspectes

detection:
    selection:
        Image|endswith: '\cmd.exe'
        CommandLine|contains:
            - 'echo %COMSPEC%'
            - '/c certutil'
            - 'bitsadmin /transfer'

Persistence (TA0003)§

T1053.005 — Scheduled Tasks

logsource:
    product: windows
    category: process_creation
detection:
    selection:
        Image|endswith: '\schtasks.exe'
        CommandLine|contains: '/create'
    condition: selection

T1547.001 — Registry Run Keys

logsource:
    category: registry_set
    product: windows
detection:
    selection:
        TargetObject|contains:
            - '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
            - '\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce'
    condition: selection

Credential Access (TA0006)§

T1003.001 — LSASS Memory Dump

logsource:
    category: process_access
    product: windows
detection:
    selection:
        TargetImage|endswith: '\lsass.exe'
        GrantedAccess|contains:
            - '0x1010'
            - '0x1410'
            - '0x147a'
            - '0x143a'
    condition: selection

Defense Evasion (TA0005)§

T1055 — Process Injection (CreateRemoteThread)

logsource:
    category: create_remote_thread
    product: windows
detection:
    selection:
        TargetImage|endswith:
            - '\svchost.exe'
            - '\explorer.exe'
            - '\notepad.exe'
    filter:
        SourceImage|endswith:
            - '\csrss.exe'
            - '\werfault.exe'
    condition: selection and not filter

Tests et validation§

Atomic Red Team§

Bibliothèque de tests atomiques mappés sur ATT&CK pour valider les détections :

# Installer
Install-Module -Name invoke-atomicredteam

# Lister les tests pour une technique
Invoke-AtomicTest T1059.001 -ShowDetails

# Exécuter un test
Invoke-AtomicTest T1059.001

# Avec cleanup
Invoke-AtomicTest T1059.001 -Cleanup

# Tester une liste de techniques
"T1059.001", "T1053.005", "T1547.001" | ForEach-Object {
    Invoke-AtomicTest $_ -TimeoutSeconds 60
}

Valkeyrie / DetectionLab§

DetectionLab : lab Vagrant/Terraform pré-configuré avec Splunk, Sysmon, Fleet, Velociraptor pour tester les détections dans un environnement réaliste.

# Déployer DetectionLab
git clone https://github.com/clong/DetectionLab
cd DetectionLab/Vagrant
vagrant up

Métriques de qualité d’une détection§

MétriqueDéfinitionCible
True Positive Rate (TPR)Détections correctes / Total malveillant> 90%
False Positive Rate (FPR)Fausses alertes / Total bénin< 5%
PrecisionTP / (TP + FP)> 80%
LatencyDélai entre événement et alerte< 5 min
Coverage% TTPs ATT&CK couvertsCroissant

Gestion du backlog de détection§

Priorisation§

Score priorité = Impact × Probabilité × Facilité détection
CritèrePoids
Pertinence métier (Crown Jewels menacés)Élevé
Fréquence d’utilisation par les acteursÉlevé
Absence de détection existanteMoyen
Facilité de tuning (peu de FP)Moyen
Données disponiblesBloquant

Registre des détections§

Chaque règle en production doit documenter :

## Règle : [Nom]

### Objectif
[Quoi détecter et pourquoi]

### Sources de données requises
[Logs, agents, configurations nécessaires]

### ATT&CK Coverage
Technique: T1234 — Nom de la technique

### Taux de faux positifs connu
[Cas de FP documentés + filtres appliqués]

### Actions recommandées (Playbook)
[Que faire quand cette alerte se déclenche]

### Date de dernière validation
[Date du dernier test avec Atomic Red Team]

Outils§

OutilUsage
SigmaFormat de règles universel
sigma-cliConversion Sigma vers SIEM
Atomic Red TeamTests de validation TTPs
DetectionLabLab de test complet
MITRE ATT&CK NavigatorVisualisation couverture
CalderaSimulation adversariale automatisée
VelociraptorCollecte de forensics à grande échelle
Uncoder.IOConvertisseur Sigma en ligne
PantherSIEM cloud-native avec DaC
—The Gardener