Bei der Untersuchung eines kompromittierten Linux-Servers: Wo suchen Sie nach der Persistenz des Angreifers?
Kurzantwort
Linux-Persistenz versteckt sich in geplanten Ausführungs- und Startpfaden: cron und systemd-Timer/-Units, hinzugefügte SSH-authorized_keys, veränderte Shell-rc-Dateien und Profilskripte sowie trojanisierte Dienst-Binärdateien oder vorab geladene Bibliotheken. Prüfen Sie diese systematisch. Browserverlauf und Hintergrundbild-Einstellungen sind keine Persistenzmechanismen, und ein Neustart entfernt nichts, was sich beim Booten wiederherstellt — er startet es nur neu. Der ganze Sinn von Persistenz ist es, Neustarts zu überleben, daher beweist ein Neustart nichts.
Persistenz ist die Art und Weise, wie ein Angreifer den Zugriff nach dem ersten Fußabdruck behält — und unter Linux liegt sie an einer gut bekannten Reihe von Stellen: alles, was das System automatisch ausführt, sei es nach Zeitplan, beim Booten oder bei der Anmeldung. Ein kompetenter Responder arbeitet diese Liste methodisch ab, statt dem Auffälligsten hinterherzujagen.
Wo Sie tatsächlich suchen
- Geplante Ausführung: Benutzer- und System-
crontabs,/etc/cron.*und vor allem systemd-Timer und -Units (systemctl list-timers, Unit-Dateien in/etc/systemd/systemund~/.config/systemd/user). - SSH-Zugriff: hinzugefügte Schlüssel in
~/.ssh/authorized_keysfür jeden Benutzer, einschließlich Dienstkonten; ein Angreiferschlüssel hier ist eine unauffällige, dauerhafte Hintertür. - Shell-Startdateien:
~/.bashrc,~/.bash_profile,~/.profile,/etc/profile.d/*— hier abgelegter Code läuft bei jeder interaktiven Anmeldung. - Trojanisierte Binärdateien und Bibliotheken: veränderte Dienst-Binärdateien,
LD_PRELOAD//etc/ld.so.preload-Übernahmen und manipulierte Shared Objects, die in legitime Prozesse geladen werden.
Gleichen Sie diese mit einer als sauber bekannten Referenz, den MAC-Zeiten der Dateien und den Integritätsprüfungen des Paketmanagers ab.
Warum die Ablenker falsch sind
- Der Browserverlauf ist Benutzeraktivität, kein Persistenzmechanismus. Er kann Kontext liefern, startet aber den Code des Angreifers nicht erneut.
- Hintergrundbild-Einstellungen sind kosmetisch und für die Serverpersistenz irrelevant.
- „Ein Neustart beseitigt Persistenz" ist genau das Gegenteil der Realität. Das definierende Merkmal von Persistenz ist, dass sie einen Neustart überlebt — cron, systemd und rc-Dateien werden alle beim Booten oder Anmelden erneut ausgelöst. Ein Neustart startet den bösartigen Code nur erneut und kann dabei flüchtige Beweise zerstören.
Was der Interviewer prüft
Ob Sie eine echte mentale Landkarte der Linux-Autostart-Flächen besitzen und einen kompromittierten Host systematisch angehen, statt am erstbesten GUI-Artefakt herumzustochern. Der Neustart-Ablenker prüft gezielt, ob Sie verstehen, was „Persistenz" überhaupt bedeutet.
Wahrscheinliche Anschlussfragen
- Wie würde LD_PRELOAD oder ein verändertes /etc/ld.so.preload einem Angreifer Persistenz auf Bibliotheksebene verschaffen?
- Welche systemd-Verzeichnisse würden Sie mit einer als sauber bekannten Referenz abgleichen, und warum?
- Wie unterscheiden Sie eine trojanisierte Dienst-Binärdatei von einer legitim aktualisierten?