MDstable
NoteSnippetChecklistPlaybook

Triage d'alertes — Méthodologie

Prioriser, qualifier et escalader les alertes SOC efficacement

snippetintermediate 2025-05-13 5 min read
soctriagealertincidentSIEMescalade

Matrice de sévérité P1–P4

PrioritéCritèresDélai de réponseExemples
P1 — CritiqueActif critique compromis, données exfiltrées, ransomware actif, accès DA< 15 minRansomware, exfil active, compromission DC
P2 — ÉlevéMouvement latéral, escalade de privilèges, C2 confirmé< 1 hPass-the-Hash, Kerberoasting, beacon C2
P3 — MoyenActivité suspecte sans preuve de compromission, scan interne< 4 hScan de ports interne, outil d'admin suspect
P4 — BasAnomalie isolée, probable faux positif, activité bénigne inhabituelle< 24 hConnexion hors-horaires sur compte de service

Checklist de triage

Checklist0/9

Méthodologie — 5 premières minutes

1. Contexte de l'alerte

splunk
Variables
{{TARGET_HOST}}
{{SOURCE_IP}}
# Splunk — Historique de l'hôte sur les dernières 24h
index=windows host="{{TARGET_HOST}}" earliest=-24h
| stats count by sourcetype, EventCode
| sort -count
# Elastic (KQL) — Activité de l'IP source
host.ip: "{{SOURCE_IP}}" and @timestamp >= now-24h

2. Position dans la Kill Chain / MITRE ATT&CK

Phase Kill ChainTechniques ATT&CK associéesSignal d'alerte
ReconnaissanceT1595, T1592Scan massif, OSINT automatisé
WeaponizationT1588, T1587(offline — peu visible)
DeliveryT1566 (phishing), T1190Email suspect, exploit web
ExploitationT1059, T1203Script exécuté, crash process
InstallationT1547, T1543Nouvelle clé Run, service créé
C2T1071, T1095Beacon régulier, DNS inhabituel
ActionsT1041, T1486Exfil, chiffrement de fichiers

3. Criticité de l'asset

splunk
Variables
{{TARGET_HOST}}
# Splunk — Lookup criticité asset
| inputlookup asset_inventory.csv
| where host="{{TARGET_HOST}}"
| table host, owner, criticality, environment, location
bash
Variables
{{CMDB_API_URL}}
{{TARGET_HOST}}
{{CMDB_TOKEN}}
# Vérification CMDB rapide
curl -s "{{CMDB_API_URL}}/api/assets?hostname={{TARGET_HOST}}"
-H "Authorization: Bearer {{CMDB_TOKEN}}" | jq '.criticality, .owner'

4. Processus parent — analyse rapide

splunk
Variables
{{TARGET_HOST}}
# Splunk — Processus lancés sur l'hôte (Event 4688)
index=windows EventCode=4688 host="{{TARGET_HOST}}" earliest=-2h
| table _time, SubjectUserName, NewProcessName, ParentProcessName, CommandLine
| sort _time
splunk
# Splunk — Enfants suspects de Office/navigateur
index=windows EventCode=4688
(ParentProcessName="*WINWORD.EXE" OR ParentProcessName="*EXCEL.EXE"
OR ParentProcessName="*OUTLOOK.EXE" OR ParentProcessName="*chrome.exe"
OR ParentProcessName="*firefox.exe")
(NewProcessName="*cmd.exe" OR NewProcessName="*powershell.exe"
OR NewProcessName="*wscript.exe" OR NewProcessName="*mshta.exe")
| table _time, host, SubjectUserName, ParentProcessName, NewProcessName, CommandLine

5. Vérification faux positif rapide

splunk
Variables
{{ALERT_RULE_NAME}}
# Splunk — Volume historique de la même règle (baseline 30j)
index=notable rule_name="{{ALERT_RULE_NAME}}" earliest=-30d
| timechart span=1d count as daily_count
| stats avg(daily_count) as avg, stdev(daily_count) as stddev
# Si today >> avg + 2*stddev → anomalie réelle
# Si today ≈ avg → probable bruit habituel

Arbre de décision — Escalade

Alert reue
Asset critique Non Indicateur connu FP Oui Fermer tuner rgle
Oui Non
Preuve dexcution Corroboration autre alerte
Oui Non Oui Non
P1/P2 P3/P4 Escalader P2 Surveiller P4
Escalader N2 Investiguer

Queries de contexte complémentaires

splunk
Variables
{{TARGET_IP}}
{{USERNAME}}
# Splunk — Connexions réseau depuis l'hôte
index=network src_ip="{{TARGET_IP}}" earliest=-1h
| stats count by dest_ip, dest_port, protocol
| sort -count
# Splunk — Authentifications récentes de l'utilisateur
index=windows EventCode=4624 SubjectUserName="{{USERNAME}}" earliest=-7d
| stats count by Logon_Type, IpAddress, host
| sort -count
python
Variables
{{VT_API_KEY}}
{{TARGET_IP}}
# Python — Lookup rapide IOC sur VirusTotal
import requests
VT_API = "{{VT_API_KEY}}"
ioc = "{{TARGET_IP}}"
r = requests.get(
f"https://www.virustotal.com/api/v3/ip_addresses/{ioc}",
headers={"x-apikey": VT_API}
)
data = r.json()
print(f"Malicious: {data['data']['attributes']['last_analysis_stats']['malicious']}")

Template de ticket triage

ALERTE Nom rgle
Date/heure ISO 8601
Analyste Nom
Priorit initiale P1-P4]
HOST hostname | IP IP | Criticit HIGH/MED/LOW
USER username | Dpartement dept
DESCRIPTION
Ce qui sest pass en 2-3 phrases
INDICATEURS
Process ProcessName ChildProcess
CommandLine cmd
Hash MD5/SHA256
IP ext IP | Port port
CORROBORATION
Autre alerte sur mme host
IOC connu en Threat Intel
Baseline anormale confirme
DCISION VP FP Indtermin
ACTION Escalade N2 Containment Fermeture tuning
💡 Tip — Vérifier systématiquement le processus parent avant de fermer une alerte sur un script ou outil d'admin — un powershell.exe lancé par svchost.exe est bien plus suspect que le même lancé par un utilisateur depuis le terminal.
OPS·BRAIN v1.090 notes · Securitylocal