Sudo Hardening: Session Recording & Audit (Artikel 325)
Maximale Absicherung des sudo-Befehls. Erfahren Sie alles über Session-Recording (I/O Logging), zentrale Log-Server und die revisionssichere Protokollierung administrativer Aktionen.
# Sudo Hardening: Jede Aktion lückenlos überwachen
TL;DR / Management Summary In hochregulierten Umgebungen reicht es nicht zu wissen, dass jemand Sudo genutzt hat. Wir müssen wissen, was genau getan wurde. Mit Sudo I/O Logging zeichnen wir jede Tastatureingabe und jede Bildschirmausgabe einer Sudo-Sitzung auf – wie ein digitaler Videorekorder. In diesem Modul lernen wir, wie wir diese “Session Recordings” aktivieren, zentral speichern und mittels
sudoreplayfür forensische Analysen wiedergeben.
# 1. Einführung & Architektur
Die visuelle Kontrolle.
Sudo kann so konfiguriert werden, dass es den gesamten Datenstrom (stdin, stdout, stderr) in eine Datei schreibt.
# Die Audit-Architektur (Mermaid)
graph TD
A[Admin User] -->|sudo -i| B[Sudo Engine]
B -->|Start Recording| C[/var/log/sudo-io/]
B -->|Execute| D[Shell / Command]
D -->|Screen Output| B
B -->|Write to| C
E[Security Auditor] -->|sudoreplay| C
C -->|Playback Session| E
# 2. Implementierung: I/O Logging aktivieren
Der Mitschnitt.
Erstellen Sie eine Datei unter /etc/sudoers.d/99-audit:
# Aktiviert I/O Logging für alle User
Defaults iolog_dir=/var/log/sudo-io/%{user}/%{command}
Defaults log_stdin, log_stdout, log_stderr
Performance & Disk: I/O Logging erzeugt bei interaktiven Befehlen (z.B. vim oder top via Sudo) massive Datenmengen. Überwachen Sie den Speicherplatz von /var/log/sudo-io/!
# 3. Session Replay: Die forensische Analyse
Die Vergangenheit abspielen.
Wenn ein Vorfall gemeldet wird, können Sie die Sitzung wie einen Film ansehen.
# Sitzungen finden
sudo sudoreplay -l user=admin
# Sitzung wiedergeben
sudo sudoreplay <session_id>
- Tipp: Mit der Taste
>können Sie die Wiedergabe beschleunigen.
# 4. Day-2 Operations: Zentrales Logging
Revisionssicherheit.
Lokale Logs auf dem Server können von einem Angreifer mit Root-Rechten gelöscht werden. Nutzen Sie ab Sudo 1.9.0 den sudo_logsrvd, um Logs in Echtzeit an einen zentralen, gehärteten Log-Server zu senden.
# 5. Troubleshooting & “War Stories”
Wenn der Admin sich beobachtet fühlt.
# Story 1: “Das Passwort im Log”
Symptom: Ein Security-Audit stellt fest, dass in den Sudo-I/O-Logs Passwörter im Klartext stehen.
Ursache: Der Admin hat innerhalb einer Sudo-Sitzung ein Tool gestartet, das nach einem Passwort fragt (z.B. mysql -p). Da stdin geloggt wird, landet das Passwort in der I/O-Log-Datei.
Lösung: Beschränken Sie das I/O-Logging auf kritische User oder Gruppen. Nutzen Sie für Passwörter immer Maskierungstools oder externe Passwort-Safes.
# Story 2: “Terminal-Resize Chaos”
Symptom: sudoreplay zeigt nur Zeichensalat oder verschobene Fenster an.
Ursache: Der Admin hat während der Sitzung die Größe seines Terminalfensters geändert. Sudo zeichnet die Dimensionen nicht dynamisch auf.
Lösung: Nutzen Sie das Flag Defaults log_rows, log_cols, um die initiale Größe zu fixieren, und bitten Sie Admins, das Fenster während Sudo-Sitzungen nicht zu skalieren.
# 6. Fazit & Empfehlung
- Pflicht: Aktivieren Sie einfaches Sudo-Logging (
Defaults logfile=...) auf jedem Server. - Wahl: Nutzen Sie I/O Logging nur auf “High-Value” Targets (Domain Controller, Backup-Server).
- Sicherheit: Sichern Sie das Verzeichnis
/var/log/sudo-io/mit restriktiven Rechten (700für root).
# Anhang: Cheatsheet
| Aufgabe | Syntax / Befehl |
|---|---|
| I/O Log Pfad | Defaults iolog_dir=... |
| Alles loggen | Defaults log_output |
| Nur bestimmte Befehle | Defaults!/usr/bin/passwd !log_output |
| Sitzungen suchen | sudoreplay -l |
| Echtzeit-Play | sudoreplay -f |
| TTY erzwingen | Defaults requiretty |
| Env nicht erben | Defaults env_reset |
| Logfile Pfad | /var/log/sudo.log |