SelfLinux Sicherheit Samhain Abschnitt 3 | SelfLinux-0.13.0

| Samhain | Autor Formatierung GFDL

#### 3 Allgemeines zur Benutzung

#### 3.1 Die Datenbank

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:

1. die Datenbank kann auf einem nicht beschreibbaren Gerät gespeichert werden, z. B. ein USB-Stick, der auf nicht beschreibbar' geschaltet ist,
2. 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
3. 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)).

#### 3.2 Verifikation der System-Integrität

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

#### 3.3 Pflege der Datenbank

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:

1. Mit --interactive fragt Samhain bei jeder entdeckten Veränderung, ob der entsprechende Eintrag in der Datenbank geändert werden soll.
2. 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).

#### 3.4 Inhalt der Datenbank ansehen

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).

#### 3.5 Verifikation der Email-Nachrichten von Samhain

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:

1. alle Email sollten in einer Datei sein (z.B eine Mailbox im mbox-Format),
2. die jeweils erste Email nach dem Start von Samhain kann nicht verifiziert werden, und
3. das zur Verifikation benutzte Samhain-Programm muss den selben Schlüssel enthalten wie das sendende Samhain-Programm (siehe Abschnitt Verifikation des Samhain-Programmes).

#### 3.6 Verifikation der lokalen Log-Datei

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:

1. 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
2. das zur Verifikation benutzte Samhain-Programm muss den selben Schlüssel enthalten wie das sendende Samhain-Programm (siehe Abschnitt Verifikation des Samhain-Programmes).

#### 3.7 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.