| name | soc-analyst-guide |
| description | Guide pour analyste SOC — triage d'alertes, investigation, SIEM, indicateurs de compromission et playbooks de réponse. Se déclenche avec "SOC", "analyste SOC", "SIEM", "IoC", "incident de sécurité", "triage sécurité". Also triggers on "SOC alert triage", "SIEM investigation", "indicators of compromise". |
Guide Analyste SOC
1. Triage initial (< 5 min)
Critères de priorisation — Appliquer un score composite :
| Facteur | Poids |
|---|
| Sévérité SIEM (critique/haute/moyenne/basse) | 40 % |
| Criticité de l'asset (DC, prod, PII) | 30 % |
| Fiabilité de la règle (% faux positifs historique) | 20 % |
| Contexte horaire (heures ouvrées vs nuit/weekend) | 10 % |
Commandes rapides de qualification :
curl -s "https://api.abuseipdb.com/api/v2/check?ipAddress=<IP>&maxAgeInDays=30" \
-H "Key: $ABUSEIPDB_KEY" | jq '.data | {score: .abuseConfidenceScore, country: .countryCode}'
vt file <sha256_hash>
whois <IP> | grep -E 'OrgName|CIDR|country'
dig -x <IP> +short
Décision faux positif vs vrai positif :
- Même alerte sur le même asset > 3 fois en 24 h sans activité suspecte corrélée → tuning, pas escalade
- Asset non-critique, IP privée interne, comportement connu → close/informational
- Asset critique OU IoC confirmé VirusTotal/MISP → ouvrir un ticket incident
2. Qualification de l'incident
Corréler dans la fenêtre -1 h / +1 h autour de l'alerte :
# Splunk — corrélation par host
index=security sourcetype=* host="<HOSTNAME>"
earliest=-1h latest=+1h
| eval _time=strptime(_time, "%Y-%m-%d %H:%M:%S")
| sort _time
| table _time, sourcetype, EventCode, user, src_ip, dest_ip, process, message
// Microsoft Sentinel — timeline host
SecurityEvent
| where Computer == "<HOSTNAME>"
| where TimeGenerated between (ago(1h) .. now())
| project TimeGenerated, EventID, Account, Process, CommandLine, IpAddress
| order by TimeGenerated asc
Mapping MITRE ATT&CK rapide :
| Observation | Tactique ATT&CK | Technique |
|---|
| Connexion RDP depuis IP étrangère | Initial Access | T1133 External Remote Services |
powershell -enc ou cmd /c | Execution | T1059.001 / T1059.003 |
net user /add en dehors heures bureau | Persistence | T1136.001 |
| Beacon régulier vers IP externe | C2 | T1071 Application Layer Protocol |
| Exfiltration DNS (TXT records longs) | Exfiltration | T1048.003 |
3. Collecte forensique (ne pas contaminer)
Ordre de volatilité (RFC 3227) — collecter du plus volatile au moins volatile :
- RAM / processus actifs
- Connexions réseau actives
- Logs système en mémoire
- Fichiers temporaires
- Logs sur disque
- Images disque
# Windows — snapshot processus et connexions réseau
Get-Process | Select-Object Name,Id,CPU,WorkingSet,Path | Export-Csv proc_snapshot.csv
netstat -ano | Out-File netstat_snapshot.txt
Get-NetTCPConnection | Where-Object State -eq 'Established' | Export-Csv tcp_connections.csv
# Dump mémoire processus suspect (PID connu)
& "C:\Program Files\Sysinternals\procdump.exe" -ma <PID> C:\forensics\proc_<PID>.dmp
ss -tnap > /tmp/ir/connections.txt
ps auxf > /tmp/ir/processes.txt
find /tmp /var/tmp /dev/shm -type f -newer /proc/1 2>/dev/null > /tmp/ir/new_files.txt
last -n 50 > /tmp/ir/logins.txt
journalctl --since "2h ago" > /tmp/ir/journal.txt
4. Extraction et partage des IoCs
Format STIX 2.1 minimal pour partage MISP :
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--<uuid>",
"created": "2026-06-24T00:00:00Z",
"name": "C2 domain observé incident IR-2026-042",
"pattern": "[domain-name:value = 'malicious-domain.example']",
"pattern_type": "stix",
"valid_from": "2026-06-24T00:00:00Z",
"labels": ["malicious-activity"],
"confidence": 85
}
Push MISP via CLI :
misp-modules -m add_attribute --event-id <EVENT_ID> --type ip-dst --value <IP> \
--comment "C2 identifié IR-2026-042" --to_ids 1
5. Playbooks de réponse type
Phishing confirmé
- Isoler la boîte mail concernée (O365 :
Set-Mailbox -Identity user -AccountDisabled $true)
- Purger le mail de toutes les boîtes :
Search-UnifiedAuditLog → Compliance Center purge
- Bloquer le domaine expéditeur dans le proxy/MTA
- Rechercher les clics sur le lien dans les logs proxy
- Réinitialiser MFA de l'utilisateur si clic confirmé
Ransomware détecté
- Isoler immédiatement (couper le réseau, pas éteindre — préserver la RAM)
- Identifier le patient zéro via les logs de partage SMB
- Snapshot VM avant toute action
- Contacter le CERT si impact > 10 assets ou données sensibles
- Ne jamais payer sans analyse légale préalable
Brute force SSH/RDP réussi
- Vérifier les connexions actives depuis la session suspecte
- Killer la session :
kill -9 <PID> ou logoff <SESSION_ID>
- Bloquer l'IP source (firewall + fail2ban / Conditional Access)
- Analyser les actions post-authentification (sudo, cron, fichiers créés)
- Forcer rotation credentials du compte ciblé
6. Documentation et clôture
Template rapport d'incident (champs minimaux) :
Incident ID : IR-YYYY-NNN
Date/Heure détection :
Date/Heure clôture :
Analyste :
Sévérité finale : [P1/P2/P3/P4]
Assets impactés :
Vecteur initial :
Timeline (UTC) :
- HH:MM — [action/observation]
IoCs extraits : [IP, hash, domaine, compte]
Actions de remédiation :
Recommandations :
MITRE ATT&CK : [Tactic — Technique ID]
7. Tuning et amélioration continue
# Splunk — identifier les règles les plus bruyantes (faux positifs)
index=notable | stats count, dc(host) as hosts by search_name
| sort -count | head 20
- Règle > 95 % faux positifs sur 30 jours → désactiver ou restreindre le scope
- Règle jamais déclenchée en 90 jours → revalider la pertinence
- Nouvel IoC confirmé → créer une règle de détection dans les 24 h
Garde-fous et anti-patterns
- Ne jamais triage depuis la mémoire — documenter dans le SIEM/ticketing, pas dans ta tête
- Ne pas éteindre un système compromis avant d'avoir dumpé la RAM (perte d'artefacts volatils)
- Éviter les faux urgences — une alerte CRITICAL automatique sans corrélation n'est pas un incident P1
- Ne pas partager d'IoCs bruts sans les valider (IP privées, faux positifs = pollution threat intel)
- Ne jamais investiguer seul un P1 — toujours un binôme, trail d'audit complet
- Pas d'action corrective sans snapshot/backup de l'état actuel
- Méfiance envers les logins "légitimes" — Living-off-the-land (LOLBins) :
wmic, certutil, mshta utilisés à des fins malveillantes