cyber / cybersecurite-fondamentale
Forensics et réponse à incident
Explication
Ce que vous allez apprendre
- Suivre le cycle de réponse à incident du NIST SP 800-61 (préparation, détection, confinement, éradication, récupération)
- Comprendre pourquoi éteindre une machine compromise fait perdre des preuves volatiles précieuses
- Respecter l'ordre de volatilité pour prioriser la collecte de preuves (RAM avant disque)
- Documenter une chaîne de custody rigoureuse pour garantir l'intégrité juridique des preuves
- Repérer les signaux d'alerte typiques d'une compromission dans les logs système
Dans quel contexte ?
Une équipe découvre qu'un serveur envoie un volume de trafic sortant anormalement élevé vers une adresse IP inconnue, un dimanche soir. Le réflexe instinctif serait d'éteindre immédiatement la machine. Mais cela effacerait la mémoire vive contenant le processus malveillant actif et ses connexions réseau en cours — des preuves essentielles pour comprendre comment l'attaquant est entré et ce qu'il a fait. La bonne réaction est d'isoler la machine du réseau tout en la laissant allumée, le temps de collecter ces preuves volatiles.
Que faire quand la prévention a échoué
Toutes les leçons précédentes visaient à empêcher un incident. Celle-ci part d'un postulat différent, réaliste : un incident finit toujours par arriver un jour, et la question devient "comment réagir sans aggraver la situation ni perdre les preuves". C'est le rôle du forensics (investigation numérique) et de la réponse à incident.
Pourquoi ne JAMAIS éteindre une machine compromise en premier réflexe
Piège fréquent
Le réflexe instinctif est de débrancher ou d'éteindre la machine infectée. C'est souvent une erreur : la mémoire vive (RAM) contient des informations précieuses (processus malveillants actifs, connexions réseau en cours, clés de déchiffrement en mémoire) qui disparaissent instantanément à l'extinction. La bonne pratique est d'isoler la machine au niveau réseau tout en la laissant allumée pour préserver ces preuves volatiles.
L'ordre de volatilité, un principe qui guide toute la collecte
| Type de preuve | Volatilité | Ordre de collecte |
|---|---|---|
| Mémoire RAM | Extrême (perdue en secondes) | 1er |
| Connexions réseau actives | Très élevée | 2e |
| Processus en cours d'exécution | Élevée | 3e |
| Contenu du disque dur | Faible, stable | 4e |
La collecte de preuves doit suivre cet ordre précis, du plus volatile au moins volatile, pour ne rien perdre d'irremplaçable.
La chaîne de custody : pourquoi documenter obsessionnellement
Chaque preuve collectée doit être hachée (pour prouver qu'elle n'a pas été altérée après collecte) et son parcours documenté avec précision (qui l'a collectée, quand, comment). Sans cette rigueur, une preuve pourtant authentique peut devenir inutilisable juridiquement si sa provenance ou son intégrité est contestée.
Les signaux d'alerte typiques à surveiller
De nouveaux comptes ou des modifications de groupes privilégiés, des processus avec des connexions sortantes vers des adresses inconnues, des tâches planifiées créées sans explication, des volumes de trafic sortant anormaux — ce sont les indices qu'un analyste apprend à repérer pour reconstituer, souvent à partir de logs multiples, une timeline précise de ce qui s'est réellement passé.
Commandes & code
Forensics et réponse à incident
# Cycle de réponse à incident (NIST SP 800-61)
1. Préparation : plan de réponse écrit, outils prêts, équipe identifiée AVANT l'incident
2. Détection & analyse : identifier qu'un incident est en cours, en évaluer la portée
3. Confinement : limiter la propagation sans détruire les preuves
4. Éradication : supprimer la cause racine (malware, accès compromis, vulnérabilité exploitée)
5. Récupération : restaurer les services en confiance, surveillance renforcée post-incident
6. Retour d'expérience : "post-mortem" sans recherche de coupable, améliorer le processus# Confinement d'un hôte compromis (isolation réseau immédiate, en préservant l'état pour analyse)
# Isoler au niveau réseau plutôt qu'éteindre la machine (éteindre perd la mémoire vive = preuves volatiles)
iptables -I INPUT -s <ip_hote_compromis> -j DROP
iptables -I OUTPUT -d <ip_hote_compromis> -j DROP
# Ou au niveau du switch/VLAN : déplacer le port vers un VLAN de quarantaine isolé# Capture de preuves volatiles AVANT toute action destructive (ordre de volatilité, du plus au moins volatile)
# 1. Registres CPU/cache (quasi impossible à capturer en pratique)
# 2. Mémoire vive (RAM) - CAPTURER EN PREMIER
# 3. État réseau (connexions actives)
# 4. Processus en cours
# 5. Disque
# 6. Logs distants / sauvegardes
# Capture mémoire avec LiME (Linux Memory Extractor) sur un système de LAB compromis (simulation)
insmod lime.ko "path=/mnt/forensics/memory.lime format=lime"
# Snapshot de l'état réseau et des processus avant toute autre intervention
ss -tulpn > /mnt/forensics/network_state.txt
ps auxf > /mnt/forensics/process_list.txt
lsof -i > /mnt/forensics/open_files_network.txt# Chaîne de custody (chain of custody) : hacher chaque preuve collectée pour prouver son intégrité ultérieure
sha256sum /mnt/forensics/memory.lime > /mnt/forensics/memory.lime.sha256
sha256sum /mnt/forensics/disk_image.dd > /mnt/forensics/disk_image.dd.sha256
# Toute preuve doit être accompagnée de : qui l'a collectée, quand, comment, et son hash au moment de la collecte# Image disque en lecture seule pour analyse (ne JAMAIS analyser directement le disque original)
dd if=/dev/sdb of=/mnt/forensics/disk_image.dd bs=4M status=progress conv=noerror,sync
# Alternative plus rapide et avec métadonnées intégrées : dc3dd, ou ewfacquire (format E01 standard forensics)
ewfacquire /dev/sdb -t /mnt/forensics/disk_image# Analyse de logs pour reconstituer une timeline d'attaque (exemple: logs d'authentification SSH)
grep "Failed password" /var/log/auth.log | awk '{print $1, $2, $3, $9, $11}' | sort | uniq -c | sort -rn | head -20
# Recherche de comptes créés récemment ou de modifications suspectes de sudoers
grep "new user" /var/log/auth.log
find /etc/sudoers.d/ -newer /var/log/auth.log -type f
# Recherche de binaires suspects récemment modifiés dans les répertoires système
find /usr/bin /usr/sbin /bin /sbin -newermt "2026-09-01" -type f -ls# Timeline forensique : agréger des événements de sources multiples (logs auth, web, EDR) par horodatage
from datetime import datetime
events = []
def add_event(source: str, timestamp: datetime, description: str):
events.append({"source": source, "timestamp": timestamp, "description": description})
# ... peuplé depuis auth.log, access.log, EDR alerts, etc.
timeline = sorted(events, key=lambda e: e["timestamp"])
for e in timeline:
print(f"{e['timestamp'].isoformat()} [{e['source']}] {e['description']}")
# Une timeline claire est souvent l'élément le plus utile du rapport d'incident final# Indicateurs de compromission (IoC) à rechercher systématiquement
- Nouveaux comptes utilisateurs ou modification de groupes privilégiés
- Processus inhabituels avec des connexions réseau sortantes vers des IP/domaines inconnus
- Tâches planifiées (cron, Scheduled Tasks) créées récemment sans justification
- Fichiers binaires avec des hash correspondant à des malwares connus (VirusTotal, MISP)
- Volumes de trafic sortant anormaux (exfiltration potentielle)Résumé
- Isoler un hôte compromis au niveau réseau plutôt que l'éteindre préserve les preuves volatiles (RAM).
- L'ordre de volatilité guide la collecte : mémoire avant réseau, avant processus, avant disque.
- Chaque preuve doit être hachée et documentée (chain of custody) pour rester exploitable juridiquement.
- Une timeline consolidée à partir de logs multiples est souvent l'artefact le plus précieux du rapport final.
Exercices pratiques
Mission : le trafic sortant anormal du dimanche soir
Objectif : Réagir correctement à un incident en cours en respectant l'ordre de volatilité des preuves, sans céder au réflexe d'éteindre la machine.
Contexte
Un dimanche soir, l'équipe de garde de Technologik reçoit une alerte : un serveur applicatif envoie un volume de trafic sortant anormalement élevé vers une adresse IP inconnue. La machine semble par ailleurs fonctionner normalement pour les utilisateurs. Un membre junior de l'équipe propose immédiatement de l'éteindre "pour arrêter l'hémorragie".