Retour au cours

cyber / cybersecurite-fondamentale

Forensics et réponse à incident

Leçon 231 exercice

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 preuveVolatilitéOrdre de collecte
Mémoire RAMExtrême (perdue en secondes)1er
Connexions réseau activesTrès élevée2e
Processus en cours d'exécutionÉlevée3e
Contenu du disque durFaible, stable4e

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

text
# 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
bash
# 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é
bash
# 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
bash
# 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
bash
# 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
bash
# 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
python
# 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
text
# 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

1 disponible
1

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".

Résoudre l’exercice →