
Extraire automatiquement la chronologie forensique d'un dump de mémoire volatile
Extrayez automatiquement une chronologie forensique à partir de dumps de mémoire volatile.
AutoTimeliner exécute plusieurs plugins Volatility3 sur des images mémoire Windows, Linux et macOS, puis fusionne leur sortie en une seule chronologie CSV triée :
| Plugin | Ce qu'il capture |
|---|---|
timeliner | Événements horodatés inter-plugins (toutes les familles d'OS quand c'est supporté) |
| Plugin | Ce qu'il capture |
|---|---|
timeliner | Horodatages des processus, du registre, des handles, etc. |
mftscan | Entrées de fichiers MFT trouvées en mémoire |
shellbags | Historique d'accès aux dossiers utilisateur depuis les ruches du registre |
| Plugin | Ce qu'il capture |
|---|---|
linux.pslist | Contexte temporel de démarrage/arrêt des processus |
linux.bash | Preuve de l'historique des commandes shell |
linux.lsof | Preuve de fichiers ouverts depuis les processus |
| Plugin | Ce qu'il capture |
|---|---|
mac.pslist | Contexte temporel de démarrage/arrêt des processus |
mac.bash | Preuve de l'historique des commandes shell |
mac.lsof | Preuve de fichiers ouverts depuis les processus |
| Plugin | Ce qu'il capture |
|---|---|
psscan | Processus actifs, terminés et cachés avec horodatages |
cmdline | Arguments de ligne de commande pour chaque processus |
userassist | Preuve d'exécution de programmes depuis le registre Windows |
| Plugin | Ce qu'il capture |
|---|---|
netscan | Connexions réseau avec horodatages de création |
| Plugin | Ce qu'il capture |
|---|---|
malfind | Injection de code et régions mémoire suspectes |
svcscan | Services Windows (utile pour la détection de persistance) |
| Plugin | Ce qu'il capture |
|---|---|
dlllist | DLL chargées par chaque processus |
filescan |
AutoTimeliner identifie automatiquement la famille de l'image mémoire et active l'ensemble de plugins approprié pour Windows, Linux ou macOS. Pour un démarrage plus rapide, vous pouvez passer
--os-hintpour ignorer la détection automatique.
git clone https://github.com/andreafortuna/autotimeliner.git
cd autotimeliner
poetry install
pip install .
autotimeliner -f IMAGEFILE [-t TIMEFRAME] [-o OUTPUT] [options]
Extraire une chronologie complète d'une image unique :
autotimeliner -f TargetServer.raw
Filtrer sur une fenêtre temporelle spécifique :
autotimeliner -f TargetServer.raw -t 2023-10-17..2023-10-21
Traiter tous les fichiers .raw d'un répertoire, en spécifiant le chemin de sortie :
autotimeliner -f './*.raw' -o /evidence/timeline.csv
Accélérer le démarrage quand l'OS du dump est déjà connu :
autotimeliner -f TargetServer.raw --os-hint windows
Utiliser les alias macOS pour plus de commodité :
autotimeliner -f MacbookCapture.mem --os-hint darwin
Exécuter uniquement timeliner et shellbags (ignorer l'analyse MFT) :
autotimeliner -f TargetServer.raw --skip-mftscan
Analyse forensique complète (ensemble de plugins Windows + plugins étendus optionnels) :
autotimeliner -f TargetServer.raw --with-dlllist --with-filescan --with-handles --with-envars
Analyse rapide axée sur les malwares :
autotimeliner -f TargetServer.raw --skip-timeliner --skip-mftscan --skip-shellbags
Collecte de chronologie axée Linux (active automatiquement les plugins Linux) :
autotimeliner -f UbuntuWorkstation.mem
Collecte de chronologie axée macOS (active automatiquement les plugins macOS) :
autotimeliner -f MacbookCapture.mem
Le CSV de sortie comporte les colonnes suivantes :
AutoTimeliner inclut plusieurs optimisations pour réduire le temps d'identification :
--os-hint contourne complètement la détection automatique de l'OS.linux, ubuntu, macos).chemin + taille + mtime).Fichier de cache :
~/.cache/autotimeliner/volatility3/.autotimeliner_profile_cache.json
Pendant la détection, les journaux incluent la progression des sondes et des messages de résultat tels que :
OS probe attempt: family=windows plugin=windows.info.Info
OS probe returned no rows: windows.info.Info
Memory image identification succeeded: os=linux profile=linux:... probe=linux.banners.Banners
Voir docs/migration.md pour une comparaison complète.
Principaux changements :
-p / --customprofile est obsolète — il est ignoré silencieusement.mftparser → mftscan — mêmes données, nouveau nom de plugin.mactime est désormais optionnel — utilisez --use-mactime pour l'ancien workflow de fichier body.poetry install
poetry run pytest
MIT — voir LICENSE.
Andrea Fortuna — [email protected] — andreafortuna.org
| Fichiers ouverts en mémoire au moment de l'acquisition |
handles | Handles ouverts (fichiers, clés de registre, mutex) |
envars | Variables d'environnement des processus |
| Dépendance | Version | Notes |
|---|
| Python | ≥ 3.9 | |
| Volatility3 | ≥ 2.5 | installé automatiquement via Poetry/pip |
| jsonschema | ≥ 4.0 | permet la validation du schéma Volatility3 et évite l'avertissement Dependency for validation unavailable: jsonschema |
| mactime | quelconque | optionnel — requis uniquement pour le mode héritage --use-mactime |
| Drapeau | Description |
|---|
-f, --imagefile | Fichier de dump mémoire ou glob (ex. '*.raw') |
-t, --timeframe | Filtrer selon la plage YYYY-MM-DD..YYYY-MM-DD |
-o, --output | Chemin du CSV de sortie (défaut : <imagefile>-timeline.csv) |
--os-hint | Forcer la famille d'OS de l'image (windows, linux, mac ; alias : win, macos, darwin) et ignorer l'auto-identification |
--skip-timeliner | Ignorer le plugin timeliner |
--skip-mftscan | Ignorer le plugin mftscan |
--skip-shellbags | Ignorer le plugin shellbags |
--skip-psscan | Ignorer l'analyse des processus |
--skip-cmdline | Ignorer l'extraction des lignes de commande |
--skip-netscan | Ignorer l'analyse des connexions réseau |
--skip-userassist | Ignorer les preuves d'exécution de programmes |
--skip-svcscan | Ignorer l'analyse des services Windows |
--skip-malfind | Ignorer la détection de malware/injection |
--with-dlllist | Activer l'analyse DLL (lent) |
--with-filescan | Activer l'analyse des fichiers ouverts (nombreux enregistrements) |
--with-handles | Activer l'analyse des handles (nombreux enregistrements) |
--with-envars | Activer l'extraction des variables d'environnement |
--use-mactime | Mode héritage : utiliser le binaire externe mactime |
-v, --verbose | Activer la journalisation de débogage |
--version | Afficher la version et quitter |
| Colonne | Description |
|---|
Timestamp (UTC) | Horodatage UTC ISO 8601 |
Source | Plugin ayant produit l'enregistrement |
Description | Nom de fichier, chemin, processus ou clé de registre |
Detail | Type d'horodatage, utilisateur ou contexte supplémentaire |
Inode | Numéro d'inoeud MFT (le cas échéant) |
UID / GID | Identifiants utilisateur/groupe |
Size | Taille du fichier en octets |
Mode | Chaîne de mode du fichier |