Skip to content

Glossar

utmp

Die Datei /run/utmp mit den aktuell offenen Sitzungen, im selben struct-utmp-Format wie wtmp; wird bei jedem Systemstart geleert.

/run/utmp (auch erreichbar als /var/run/utmp) listet die aktuell offenen Sitzungen. Die Datei wird von who, w und users gelesen und von login, sshd und anderen Programmen über PAM oder die utmp-Funktionen der C-Bibliothek geschrieben. Sie enthält einen Eintrag pro aktiver Terminal-Sitzung sowie Einträge für den aktuellen Systemstart und den Runlevel.

utmp ist auch der Name der Eintragsstruktur struct utmp, die sich die Datei mit wtmp und btmp teilt: Typ (ut_type), PID, Terminal (ut_line), Benutzer, Remote-Host, Zeit und Remote-Adresse. Ein Eintrag ist auf x86_64 384 Bytes und auf aarch64 400 Bytes groß. Ein Login ist ein USER_PROCESS-Eintrag (Typ 7); endet die Sitzung, wird der Slot als DEAD_PROCESS (Typ 8) weiterverwendet.

Warum es in Ermittlungen wichtig ist

Da /run ein tmpfs ist, existiert utmp nur auf einem laufenden System: Die Datei wird bei jedem Start geleert und fehlt im Abbild eines ausgeschalteten Rechners. Live gesichert beantwortet sie eine Frage, die andere Quellen nur indirekt klären: Wer ist gerade angemeldet, an welchem Terminal, von welcher Adresse. Das hilft, wenn ein Angreifer womöglich noch verbunden ist, und beim Aufspüren von Sitzungen, die nie in wtmp eingetragen wurden. Beachten Sie, dass nicht-interaktives SSH (ein Remote-Befehl, scp, sftp) kein Terminal belegt und meist keinen utmp-Eintrag hat, und dass root die Datei wie jede andere bearbeiten kann.

Beispiel

Auf einem laufenden Host als root:

who -a                        # Startzeit, Runlevel und aktuelle Logins
utmpdump /run/utmp            # alle Einträge, auch DEAD_PROCESS-Slots
cp -p /run/utmp /media/evidence/utmp

Sichern Sie die Datei selbst, nicht nur die Befehlsausgabe, und notieren Sie die Architektur des Hosts: Ein aarch64-utmp, gelesen mit Werkzeugen auf einer x86_64-Workstation, wird falsch interpretiert.

Verwandte Begriffe

  • wtmp und btmp: der Login-Verlauf im selben Format.
  • lastlog: der letzte Login pro UID.
  • UAC: sichert /run/utmp in seinem Triage-Profil.

Linux Log Parser liest utmp in beiden Eintragsgrößen. Mehr in der Forensik von wtmp, btmp und lastlog.