# debsums -a, --all check configuration files (normally excluded)
Es gibt jedoch hier und da eine große Menge temporärer Zusatzdateien, nicht nur im temporären Verzeichnis.
Ungefähr 4.000 binäre .pyc-Dateien von Python, die standardmäßig nicht deaktiviert werden können:
# cat /etc/python/debian_config
# standard, optimize
byte-compile = standard
usw...
Gibt es eine Linux-Distribution mit Online-Repositorys, mit denen jede auf meinem Computer installierte Datei sicher überprüft werden kann?
Ich rede vonPaketmanagerwie ein hostbasiertes Intrusion Detection System mit moderner Kryptografie, das jede Infektion verhindern/erkennen kann.
Antwort1
RPM-basierte Systeme haben rpm -q --verify
, das ähnliche Dinge tut.
Ich glaube jedoch nicht, dass eine dieser Funktionen eine geeignete Alternative zu einem IDS darstellt. Das Hauptproblem besteht darin, dass sich die Prüfsummen auf dem betreffenden Computer befinden. Wenn dieser also kompromittiert wurde, können Sie den lokalen Prüfsummen nicht vertrauen.
Vielleicht können Sie neue Prüfsummen aus den Internet-Repositories beziehen, aber ich bin dennoch der Meinung, dass Sie es falsch angehen, wenn Sie hierfür Paketprüfsummen verwenden.
Eine weitaus bessere Option ist die Verwendung eines speziellen Dateiintegritätsprüfers wieBERATERoderStolperdraht. Mit diesen Tools können Sie die Prüfsummen des Systems berechnen, sobald Sie es in einen bekanntermaßen einwandfreien Zustand gebracht haben, und diese dann zum späteren Vergleich auf einem entfernbaren, schreibgeschützten Datenträger (z. B. einer CD-R) speichern.
Ein weiteres Problem mit der Paketprüfsummenmethode ist, dass man nicht erwarten kann, dass sie Dinge wie /etc
Dateien prüft, da bekannt ist, dass sie den Standardinhalt absichtlich ändern. Mit etwas wie AIDE berechnen Sie die PrüfsummennachSie nehmen Ihre Änderungen an den Bestandsversionen dieser Dateien vor, sodass Sie mit Sicherheit sagen können, ob eine Änderung erwartet wurde oder nicht.
Das heißt nicht, dass die Paketprüfsummenüberprüfung nutzlos ist. Sie ist nur nicht dazu gedacht, böswillige Änderungen zu erkennen. Sie dient dazu, versehentliche Änderungen zu erkennen, damit diese behoben werden können. Beispielsweise könnte jemand einen ungeschickten chmod -R
Befehl ausgeführt und dann, Ctrl-Cnachdem er seinen Fehler bemerkt hatte, zu lange vor dessen Ausführung zugeschlagen haben. Daher überprüfen Sie die Pakete, um herauszufinden, welche Dateiberechtigungen beschädigt wurden.
Antwort2
Ich bevorzuge Warrens Lösung (AIDE), aber wenn Sie Ihr System wirklich überwachen möchten, verwenden Sie etwas wie CFEngine oder ein Derivat (Puppet, Chef, Saltstack, was auch immer), um den gesamten Inhalt Ihres Dateisystems zu verwalten. Verwenden Sie einen Paketmanager, um Dateien zu installieren, ein Konfigurationsverwaltungssystem, um den Inhalt aller Konfigurationsdateien zu verwalten, und lassen Sie sich benachrichtigen, wenn sich etwas außerhalb Ihres Konfigurationssystems ändert (und ändern Sie die Dinge wahrscheinlich auch wieder zurück). Je tiefer Sie gehen, desto komplexer wird jedoch die Lösung. Ein System und alle darauf befindlichen Dateien vollständig zu verwalten, ist ein wirklich großes Unterfangen. CFEngine kann Prüfsummen von Dateien lernen und diese auch für Sie überwachen, wenn Sie sich nicht so sehr für den Inhalt interessieren, sondern nur benachrichtigt werden möchten, wenn sich etwas ändert. Die anderen haben wahrscheinlich eine ähnliche Funktionalität, sind aber langsamer. Ich kann Ihnen sagen, dass Sie wirklich keine häufige rekursive Dateisystemüberwachung mit Puppet durchführen möchten. Andererseits sind die Lernkurven für verschiedene Tools unterschiedlich. AIDE ist ziemlich einfach zu erlernen, CFEngine kann eine kleinere Herausforderung darstellen.