Dans les systèmes de type Unix, un nom de fichier n’est qu’une étiquette — un pointeur pratique pour les humains. La véritable identité et les métadonnées d’un fichier sont stockées dans une structure de données appelée Inode (Index Node).
Ce que contient un Inode : la taille du fichier, le propriétaire (UID/GID), les permissions (RWX), les horodatages, et les pointeurs vers les blocs de données réels sur le disque.
Ce que ne contient PAS un Inode : le nom du fichier. Les noms de fichiers sont stockés dans le fichier du répertoire, mappant les noms à des numéros d’inode spécifiques.
Implication forensique : si un acteur de la menace téléverse un reverse shell nommé malware.sh et le renomme plus tard en systemd-update pour se fondre dans la masse, le numéro d’inode reste identique. Le suivi du numéro d’inode (ls -i) permet aux analystes de tracer le fichier à travers les tentatives d’évasion par renommage.
L’analyse des horodatages est la fondation de la reconstruction chronologique. Cependant, les horodatages POSIX de Linux piègent fréquemment les analystes juniors qui supposent qu’ils fonctionnent de manière identique à ceux de Windows.
Les horodatages standards sont connus sous le nom de MAC times :
Lettre
Nom complet
Signification
Action déclencheur
M
mtime (Modify)
le contenu du fichier a été altéré.
écriture dans le fichier (ex: echo >>, vim).
A
atime (Access)
le fichier a été lu ou exécuté.
cat, grep, exécution. (Note : souvent désactivé ou défini sur relatime sur les serveurs modernes pour améliorer les performances, ce qui le rend très peu fiable en forensique).
C
ctime (Change)
les métadonnées (l’inode) ont été altérées.
changement des permissions (chmod), du propriétaire (chown), déplacement ou renommage du fichier.
3. DFIR Avancé : récupérer la date de création (crtime)
Afin d’établir à quel moment précis une charge utile malveillante a touché le disque, les analystes doivent extraire le crtime. Si le système de fichiers sous-jacent est Ext4, cela nécessite d’interroger directement le périphérique de stockage brut.
Identifier l’Inode : trouvez le numéro d’inode de la charge utile suspecte.
ls -i /mnt/analyse/tmp/malware → (Supposons que le résultat soit 12345)
Interroger le périphérique brut : utilisez l’utilitaire debugfs. Notez que debugfs requiert l’identifiant de la partition brute (ex: /dev/sda1), et non le point de montage.
debugfs -R 'stat <12345>' /dev/sda1
Extraire crtime : la sortie révélera la structure brute de l’inode. Localisez le champ crtime pour établir le moment exact où l’attaquant a déposé le fichier.
Les adversaires déposent rarement leurs boîtes à outils initiales dans des répertoires hautement surveillés ou restreints par des permissions. Les analystes DFIR doivent prioriser l’analyse des “Drop Zones” inscriptibles par tous.
/tmp/ et /var/tmp/
les répertoires de préparation classiques (staging). Bien que /tmp/ soit généralement vidé lors d’un redémarrage du système, /var/tmp/ est persistant. Recherchez des fichiers cachés (commençant par un point), des binaires ELF compilés ou des scripts shell déposés.
/dev/shm/ (Mémoire partagée)
vecteur de menace critique : il s’agit d’un disque virtuel en RAM. Les fichiers écrits ici n’existent qu’en mémoire et sont complètement détruits lors d’un redémarrage. Les acteurs de la menace y déposent leurs charges utiles pour exécuter des malwares dits “Fileless”. Si un analyste effectue un triage à chaud (live triage), lister le contenu de /dev/shm/ et acquérir la mémoire volatile (RAM) est absolument obligatoire avant d’éteindre le système.
Les acteurs de la menace avancés comprennent le fonctionnement des MAC times et les manipulent activement pour perturber la chronologie forensique, une technique connue sous le nom de Timestomping.
L’attaque : l’adversaire utilise la commande native touch pour antidater son malware :
touch -d "2020-01-01" /tmp/malware.sh
Le résultat : les horodatages mtime (Modification) et atime (Accès) sont artificiellement changés pour 2020, faisant apparaître le fichier comme un ancien script système hérité.
La commande touch réussit à usurper mtime et atime. Cependant, altérer les horodatages d’un fichier est, par définition, une altération des métadonnées du fichier.
Par conséquent, le ctime (Change time) est automatiquement mis à jour à l’heure actuelle du système par le noyau.
La règle d’or : si vous rencontrez un binaire système ou un script où le mtime indique 2020, mais que le ctime indique hier (s’alignant avec la fenêtre d’intrusion suspectée), le fichier a définitivement été altéré ou a subi un timestomping.