Warum kann der Root-Benutzer die Protokolle löschen?
Weil Sie den Server verwalten müssen müssen.
Was hindert einen Hacker mit Root-Zugriff daran, die Protokolle zu löschen, um ihre Spuren zu verwischen?
In Bezug auf die lokale Protokollierung nur seine eigene Dummheit. In Bezug auf die externe Protokollierung, ihre und Ihre Fähigkeiten.
Es gibt viele, viele verschiedene Möglichkeiten zum "Protokollieren". Tatsächlich könnte das verwurzelte Computerprotokoll auf einem separaten, versteckten Gerät gespeichert werden, das nicht einfach überschrieben werden kann, z. B. einem Himbeer-Pi / Arduino-Logger, von dem ich einige habe.
Unter Linux root soll so ziemlich alles können. In Windows gilt das gleiche Konzept. Wenn Sie Root-Zugriff auf einen Computer haben, können Sie fast alles tun, was Sie möchten, einschließlich des Löschens von Protokollen.
Sie können auch alle Verbindungen zu einem bestimmten Computer protokollieren, insbesondere wenn dies nicht der Fall ist Es soll überhaupt nicht "zugegriffen" werden.
Wie würden Sie herausfinden, was los ist, und wie würden Sie es umgehen?
So finden Sie alle Änderungen in den letzten 120 Minuten:
find / -mmin -120 -printf '% p \ t% a \ n'
Schön, oder? Gotcha, Hacker! Mwahahaha ... aber Sie können diese Attribute ändern, wenn Sie wissen, was Sie tun, wie folgt:
touch -d "vor 24 Stunden" <file>
Schlimmer noch, automatisieren Sie es:
find / -print | beim Lesen der Datei; Berühren Sie -d "$ (Datum -r" $ Datei ") - 24 Stunden" "$ Datei" erledigt
Aber warten Sie, Mark Hulkalo! Wenn alle Dateien vor 24 Stunden zuletzt bearbeitet wurden, zeigt dies deutlich, dass wir einen Haxor haben! Richtig, aber Sie können auch $ RANDOM
anwenden, wenn 24 vorhanden ist. Hier ist ein Beispiel für eine Zahl von 1-24: $ ((RANDOM% 10) + 1)
. Jetzt sieht es nicht so einfach aus, es zu entdecken, oder?
Aber was ist, wenn alle Dateien so aussehen, insbesondere Dateien, die nicht geändert werden sollen? Beschränken Sie den Bereich auf ein bestimmtes Verzeichnis, z. B. / root
. Es gibt viele Möglichkeiten, Ihre Anwesenheit lokal zu maskieren.
Wenn der Angreifer nicht vergessen hat, ~ / .bash_history
zu bereinigen, fliegen Sie blind. Wirklich, wenn die einzige "Protokollierung", die Sie haben, ~ / .bash_history
ist, dann sind Sie in Schwierigkeiten, wenn Ihr Angreifer zumindest mäßig intelligent ist. Dies kann auf jedem Benutzerkonto mit erstaunlicher Leichtigkeit gelöscht werden, solange Sie über die entsprechenden Berechtigungen verfügen.
Es ist viel einfacher, Einträge an einem Ort zu protokollieren, an dem sie nicht leicht erkannt oder geändert werden können, z. B. an einem externen Gerät. Während es möglich ist, mithilfe der Forensik die Fußabdrücke Ihres Angreifers wiederherzustellen, ist es sehr, sehr einfach zu umgehen, wenn Sie wissen, was Sie tun. Aus diesem Grund ist die externe Protokollierung eine viel bessere Lösung.
Und das ist die Geschichte, warum die externe Protokollierung im Allgemeinen die Antwort ist. Beachten Sie, dass es auch Möglichkeiten gibt, die externe Protokollierung zu umgehen. Nichts ist jemals 100% sicher; Sie können es Ihrem Angreifer nur schwerer machen, nicht unmöglich.