⚠️ Ce projet réalise des opérations sensibles (accès disque bas niveau, capture mémoire, collecte de journaux/registre/historiques). Il est destiné à des opérateurs habilités, dans un cadre légal défini. Ce README documente aussi les limites de chaque mécanisme — à lire avant tout usage sur une scène réelle.
| Étape (ordre de volatilité) | Windows | Linux | macOS |
|---|---|---|---|
| 1. État volatil live (réseau, ARP, routes, sessions, processus, services, tâches planifiées) | live_artifacts_win.py |
live_artifacts_lin.py |
intégré à forensic_mac.py |
| 2. Capture RAM | forensic_win.py (winpmem / fallback) |
forensic_lin.py (LiME / kcore / /dev/mem / proc-mem) |
non tentée (SIP/Apple Silicon — voir plus bas) |
| 3. Copie bit-à-bit disque | forensic_win.py |
forensic_lin.py |
forensic_mac.py (/dev/rdiskN) |
| 4. Artefacts persistants (event logs, registre, prefetch, MFT/$LogFile / journald, syslog, historiques navigateur/shell) | persistent_artifacts_win.py |
persistent_artifacts_lin.py |
intégré à forensic_mac.py (unified logs, FSEvents) |
| 5. Analyse (volatility3, plaso, YARA, Sleuth Kit) | analysis/run_analysis.py (multi-plateforme, outils tiers à installer) |
idem | idem |
| Chaîne de custody | opérateur, lieu, horodatage NTP vérifié, manifeste signé (common/custody.py) — appliqué sur toutes les plateformes |
||
| Gestion de dossier / rapport | common/case_manager.py — CASE.json + RAPPORT.html, sur toutes les plateformes |
forensic_tools/common/ contient les briques partagées : write-blocking
logiciel, vérification d'intégrité des outils tiers, ordre de volatilité,
chaîne de custody, gestion de dossier.
# Linux — tout, dans l'ordre de volatilité, avec identité opérateur
sudo python3 forensic_lin.py --live --ram --disk /dev/sda --persistent \
--operator "J. Dupont" --location "Bureau 3, Paris" --case-ref "2026-0472"
# Windows (PowerShell admin)
python forensic_win.py --live --ram --disk \\.\PhysicalDrive0 --persistent ^
--operator "J. Dupont" --location "Site client" --case-ref "2026-0472"
# macOS (sudo)
sudo python3 forensic_tools/macos/forensic_mac.py --live --persistent --disk /dev/rdisk0
# Menu interactif (recommandé pour un premier usage) — applique l'ordre de
# volatilité automatiquement quel que soit l'ordre choisi dans le menu
sudo python3 forensic_lin.py
python forensic_win.py
# Analyse post-acquisition (outils tiers à installer, voir analysis/README.md)
python forensic_tools/analysis/run_analysis.py forensic_output --ram forensic_output/ram_dump_xxx.raw- Write-blocking :
FILE_FLAG_NO_BUFFERING/O_DIRECTcontournent le cache, ce ne sont pas des bloqueurs d'écriture.common/write_protect.pyajoute une protection logicielle best-effort (blockdev --setrosous Linux, stratégie registre sous Windows) mais ne remplace pas un bloqueur d'écriture matériel certifié, requis pour une procédure légale stricte. - Intégrité des outils tiers :
winpmem.exeest vérifié contre un hash de référence (common/TOOL_HASHES.json), mais ce hash a été calculé au packaging de ce projet, pas vérifié indépendamment auprès de Velocidex. Revalidez-le avant usage sur scène. - Chaîne de custody :
custody.pysigne le manifeste (RSA si le paquetcryptographyest installé, sinon HMAC) et horodate via NTP quand le réseau est disponible. Cela renforce la traçabilité technique mais ne remplace pas scellés physiques, témoins, ou les exigences propres à votre juridiction. - macOS : la capture RAM complète n'est pas tentée — SIP et les protections Apple Silicon bloquent l'accès mémoire brut sans compromettre l'intégrité de la scène (désactivation de SIP). Seuls disque, état live et artefacts persistants (dont FSEvents et unified logs) sont couverts.
- Analyse :
run_analysis.pyorchestre volatility3/plaso/YARA/Sleuth Kit s'ils sont installés séparément — rien n'est bundlé (taille et licences). Voirforensic_tools/analysis/README.md. - Outils userland vs rootkits noyau : la collecte live/persistante s'appuie sur des utilitaires système (netstat, ps, tasklist...) qui peuvent être trompés par un rootkit actif. Croiser systématiquement avec l'analyse de la RAM.
forensic_win.py / forensic_lin.py — points d'entrée (identiques aux copies dans forensic_tools/)
forensic_tools/
common/ — case_manager, custody, tool_integrity, write_protect, volatility_order
windows/ — forensic_win.py, live_artifacts_win.py, persistent_artifacts_win.py, winpmem.exe
linux/ — forensic_lin.py, live_artifacts_lin.py, persistent_artifacts_lin.py
macos/ — forensic_mac.py
analysis/ — run_analysis.py (orchestration volatility3/plaso/YARA/Sleuth Kit)
lime-builder/ — build LiME pour Linux (inchangé)
build.py — compilation PyInstaller (inchangé)