Skip to content

Glossaire

utmp

Le fichier /run/utmp, qui liste les sessions ouvertes à l’instant présent, au même format struct utmp que wtmp ; vidé à chaque démarrage.

/run/utmp (aussi accessible via /var/run/utmp) liste les sessions ouvertes à l’instant présent. Il est lu par who, w et users, et écrit par login, sshd et d’autres programmes via PAM ou les fonctions utmp de la bibliothèque C. Il contient un enregistrement par session de terminal active, plus les enregistrements du démarrage en cours et du niveau d’exécution.

utmp est aussi le nom de la structure d’enregistrement, struct utmp, commune avec wtmp et btmp : type (ut_type), PID, terminal (ut_line), utilisateur, hôte distant, heure et adresse distante. L’enregistrement fait 384 octets sur x86_64 et 400 octets sur aarch64. Une connexion est un enregistrement USER_PROCESS (type 7) ; à la fin de la session, l’emplacement est réutilisé en DEAD_PROCESS (type 8).

Pourquoi c’est important en investigation

Comme /run est un tmpfs, utmp n’existe que sur un système en fonctionnement : il est vidé à chaque démarrage et absent d’une image disque d’une machine éteinte. Collecté à chaud, il répond à une question que les autres sources ne traitent qu’indirectement : qui est connecté en ce moment, sur quel terminal, depuis quelle adresse. C’est utile quand un intrus est peut-être encore connecté, et pour repérer des sessions jamais enregistrées dans wtmp. N’oubliez pas que le SSH non interactif (commande distante, scp, sftp) n’alloue pas de terminal et n’a généralement pas d’enregistrement utmp, et que root peut modifier ce fichier comme n’importe quel autre.

Exemple

Sur un hôte en fonctionnement, en root :

who -a                        # heure de démarrage, niveau d’exécution, connexions en cours
utmpdump /run/utmp            # tous les enregistrements, y compris DEAD_PROCESS
cp -p /run/utmp /media/evidence/utmp

Copiez le fichier lui-même plutôt que la seule sortie des commandes, et notez l’architecture de l’hôte : un utmp aarch64 lu avec les outils d’un poste x86_64 sera mal interprété.

Termes associés

  • wtmp et btmp : l’historique des connexions, au même format.
  • lastlog : la dernière connexion de chaque UID.
  • UAC : collecte /run/utmp dans son profil de triage.

Linux Log Parser lit utmp dans les deux tailles d’enregistrement. Plus de détails dans l’analyse forensique de wtmp, btmp et lastlog.