---
title: "Triage d'alertes — Méthodologie"
domain: security
subdomain: soc
phase: 01-triage
type: snippet
tags: [soc, triage, alert, incident, SIEM, escalade]
difficulty: intermediate
status: stable
updated: "2025-05-13"
---
## Matrice de sévérité P1–P4

| Priorité | Critères | Délai de réponse | Exemples |
|---|---|---|---|
| **P1 — Critique** | Actif critique compromis, données exfiltrées, ransomware actif, accès DA | < 15 min | Ransomware, exfil active, compromission DC |
| **P2 — Élevé** | Mouvement latéral, escalade de privilèges, C2 confirmé | < 1 h | Pass-the-Hash, Kerberoasting, beacon C2 |
| **P3 — Moyen** | Activité suspecte sans preuve de compromission, scan interne | < 4 h | Scan de ports interne, outil d'admin suspect |
| **P4 — Bas** | Anomalie isolée, probable faux positif, activité bénigne inhabituelle | < 24 h | Connexion hors-horaires sur compte de service |

---

## Checklist de triage

<Checklist items={[
  "Identifier la source de l'alerte (SIEM, EDR, IDS, honeypot)",
  "Vérifier la criticité de l'asset concerné (CMDB / inventaire)",
  "Corréler avec d'autres alertes actives sur le même hôte/IP",
  "Déterminer la position dans la Kill Chain (TA0001–TA0011)",
  "Vérifier l'historique de l'utilisateur/IP (baseline comportementale)",
  "Consulter les rapports de Threat Intel (TIP, IOC feeds)",
  "Statuer : Vrai Positif / Faux Positif / Indéterminé",
  "Documenter la décision dans le ticket SOAR/ITSM",
  "Escalader si P1 ou P2 confirmé"
]} storageKey="soc-triage-alert" />

---

## Méthodologie — 5 premières minutes

### 1. Contexte de l'alerte

```splunk
# 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 Chain | Techniques ATT&CK associées | Signal d'alerte |
|---|---|---|
| Reconnaissance | T1595, T1592 | Scan massif, OSINT automatisé |
| Weaponization | T1588, T1587 | (offline — peu visible) |
| Delivery | T1566 (phishing), T1190 | Email suspect, exploit web |
| Exploitation | T1059, T1203 | Script exécuté, crash process |
| Installation | T1547, T1543 | Nouvelle clé Run, service créé |
| C2 | T1071, T1095 | Beacon régulier, DNS inhabituel |
| Actions | T1041, T1486 | Exfil, chiffrement de fichiers |

### 3. Criticité de l'asset

```splunk
# Splunk — Lookup criticité asset
| inputlookup asset_inventory.csv
| where host="{{TARGET_HOST}}"
| table host, owner, criticality, environment, location
```

```bash
# 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
# 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
# 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 reçue
    │
    ▼
[Asset critique ?] ──Non──► [Indicateur connu FP ?] ──Oui──► Fermer + tuner règle
    │ Oui                          │ Non
    ▼                              ▼
[Preuve d'exécution ?]      [Corroboration autre alerte ?]
    │ Oui           │ Non         │ Oui          │ Non
    ▼               ▼             ▼              ▼
  P1/P2          P3/P4        Escalader P2    Surveiller P4
Escalader N2   Investiguer
```

---

## Queries de contexte complémentaires

```splunk
# 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
# 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 règle]
Date/heure : [ISO 8601]
Analyste : [Nom]
Priorité initiale : [P1-P4]

HOST : [hostname] | IP : [IP] | Criticité : [HIGH/MED/LOW]
USER : [username] | Département : [dept]

DESCRIPTION :
[Ce qui s'est passé en 2-3 phrases]

INDICATEURS :
- Process : [ProcessName] → [ChildProcess]
- CommandLine : [cmd]
- Hash : [MD5/SHA256]
- IP ext : [IP] | Port : [port]

CORROBORATION :
[ ] Autre alerte sur même host
[ ] IOC connu en Threat Intel
[ ] Baseline anormale confirmée

DÉCISION : [ ] VP  [ ] FP  [ ] Indéterminé
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.</Tip>
