|
Standardmäßig wird die Datenbank nach /var/lib/samhain/samhain_file
geschrieben. Nach der Initialisierung der Datenbank ist in dieser der aktuelle
Zustand der überwachten Dateien gespeichert: Prüfsummen des Dateiinhaltes,
Dateigröße, Zugriffsrechte, Eigentümer und Gruppe, Zeiten, Anzahl von Hardlinks,
die Nummer der Inode, und (bei Geräten) die Gerätenummer.
Samhain benutzt standardmäßig den TIGER192-Prüfsummenalgorithmus.
Optional kann auch SHA-1 oder MD5 benutzt werden (MD5 wird wegen möglicher
Schwächen nicht mehr empfohlen).
Diese Datenbank sollte natürlich vor unabsichtlichem oder böswilligem
Überschreiben gesichert werden. Dazu bieten sich mehrere Möglichkeiten an:
-
die Datenbank kann auf einem nicht beschreibbaren Gerät gespeichert werden,
z. B. ein USB-Stick, der auf nicht beschreibbar' geschaltet ist,
-
die Datenbank kann mit GnuPG signiert
werden, wie
weiter unten.
beschrieben wird - dies schützt zwar nicht davor, dass sie überschrieben wird,
ermöglicht aber, eine solche Manipulation zu erkennen -, oder
-
die Datenbank kann auf einem anderen Rechner gespeichert werden, und Samhain
kann so konfiguriert werden, dass die Datenbank beim Start von diesem Rechner
heruntergeladen wird (siehe Abschnitt
Logging zu einem Log-Server (Yule)).
|
Die Verifikation der System-Integrität erfolgt durch Vergleich der überwachten
Dateien mit den Angaben, die in der Datenbank gespeichert sind. Manuell (oder
per cron) kann dies erfolgen mit dem Kommando:
root@linux ~#
samhain -t check
|
Eine wesentliche Eigenschaft von Samhain besteht jedoch darin, dass es zum
Einsatz als Dämon entwickelt wurde. D. h. Samhain startet automatisch beim
Booten des Rechners, überwacht das Dateisystem, und meldet Veränderungen
entsprechen den eingestellten Logging-Eigenschaften (siehe Abschnitt
Konfiguration der Logging-Eigenschaften). Bei der Installation wird
mit dem Kommando:
root@linux ~#
make install-boot
|
dafür gesorgt, dass Samhain beim nächsten Booten gestartet wird.
Will man nach der Initialisierung der Datenbank den Samhain-Daemon
gleich starten, so kann man dies mit folgendem Befehl tun:
root@linux ~#
samhain start
|
|
Natürlich gibt es in einem Dateisystem durchaus auch gewollte Veränderungen,
z. B. infolge von mehr oder weniger regelmäßigen Sicherheits-Aktualisierungen.
Nach solchen Veränderungen muss die Datenbank von Samhain jeweils
auf aktuellen Stand gebracht werden. Dies erfolgt mit dem Kommando:
root@linux ~#
samhain -t update [--interactive] [-l none] [-e none]
|
Die in Klammern gesetzten Optionen sind nicht notwendig, aber gegebenfalls
hilfreich:
-
Mit --interactive fragt Samhain bei jeder entdeckten
Veränderung, ob der entsprechende Eintrag in der Datenbank geändert werden soll.
-
Falls das Update der Datenbank stattfindet, während der
Samhain-Daemon läuft, sollte man darauf achten, Konflikte beim
Logging zu vermeiden, indem man bestimmte Log-Optionen nicht benutzt. Dies gilt
insbesondere für die lokale Log-Datei (ausschalten mit
-l none) sowie für Logging zu einem Log-Server (siehe
Abschnitt Logging zu einem Log-Server (Yule);
ausschalten mit -e none).
|
Wenn man den Inhalt der Datenbank ansehen möchte, kann man folgenden
Befehl benutzen:
root@linux ~#
samhain [-a] -d /pfad/zur/datenbank
|
Dies liefert eine Ausgabe, die ähnlich ist wie ls -l. Mit der
Option -a werden weitere Details angezeigt, die man bei
ls -l nicht erhält (z. B. die Prüfsumme einer Datei).
|
Wird Email als Log-Option benutzt, so ist es möglich, zu überprüfen, ob die
erhaltenen Emails tatsächlich von Samhain stammen. Hierzu gibt es den das
Kommando:
root@linux ~#
samhain -M /pfad/zur/mailbox
|
Dabei gibt es folgende Einschränkungen:
-
alle Email sollten in einer Datei sein (z.B eine Mailbox im mbox-Format),
-
die jeweils erste Email nach dem Start von Samhain kann nicht verifiziert
werden, und
-
das zur Verifikation benutzte Samhain-Programm muss den selben Schlüssel
enthalten wie das sendende Samhain-Programm (siehe Abschnitt
Verifikation des Samhain-Programmes).
|
Wird die lokale Log-Datei benutzt, so ist es möglich, zu überprüfen, ob die
Einträge tatsächlich von Samhain stammen, und nicht verändert wurden. Hierzu
gibt es den das Kommando:
root@linux ~#
samhain -M /pfad/zur/logdatei
|
Dabei gibt es folgende Einschränkungen:
-
es ist ein Schlüssel notwendig, der nach Eröffnung der Log-Datei per Email
geschickt wird, falls (und nur falls) auch Email als Log-Option benutzt wird,
und
-
das zur Verifikation benutzte Samhain-Programm muss den selben Schlüssel
enthalten wie das sendende Samhain-Programm (siehe Abschnitt
Verifikation des Samhain-Programmes).
|
Beim Übersetzen der Quellen wird standardmäßig ein zufällig erzeugter Schlüssel
eingebettet. Der Wert dieses Schlüssels wird von ./configure
am Ende angezeigt (die Zahlen sind nur Beispiele):
Base key: 1076404394,1083932597
|
Ein Samhain-Programm mit identischem Schlüssel lässt sich erzeugen, indem man
als Option für ./configure angibt:
--enable-base=1076404394,1083932597.
Da sich Emails (siehe Abschnitt
Verifikation der Email-Nachrichten von Samhain
- und lokale Log-Dateien (siehe Abschnitt
Verifikation der lokalen Log-Datei)
- nur verifizieren lassen, wenn verifizierendes und erzeugendes Programm den
selben eingebetteten Schlüssel haben, ist es somit prinzipiell möglich, die
Integrität eines Samhain-Programmes zu überprüfen, dass auf einem entfernten
Rechner läuft, und per Email Log-Berichte schickt.
|
|
|