SelfLinux Sicherheit Samhain Abschnitt 7 | SelfLinux-0.13.0

| Samhain | Autor Formatierung GFDL

#### 7 Weitere Eigenschaften von Samhain

#### 7.1 Signierte Datenbank- und Konfigurationsdateien

Samhain unterstützt GnuPG-signierte Datenbank- und Konfigurationsdateien. Dabei ist folgendes zu beachten:

- Separate Signaturen werden nicht unterstützt.
- Die Signatur muss so erfolgen, dass die Datei nicht verändert wird. Das Ende der Konfigurationsdatei sollte mit [EOF] markiert werden, damit Samhain nicht versucht, die Signatur als Option zu interpretieren. Die empfohlenen GnuPG-Optionen zum Signieren sind: gpg -a --clearsign --not-dash-escaped DATEI
- Der öffentliche Schlüssel des Schlüsselpaares muss im Schlüsselring (HOME/.gnupg/pubkey.gpg) des Benutzers sein, mit dessen Rechten Samhain läuft - in der Regel also root.
- Zur Überprüfung kann man als Benutzer root mit dem Befehl /pfad/zu/gpg --status-fd 1 --verify DATEI die Signatur überprüfen. Wenn das nicht klappt, wird Samhain auch keinen Erfolg haben ...

Zur Verifikation der Signatur muss Samhain mit der entsprechenden Option übersetzt sein: ./configure --with-gpg=/PFAD_ZU_GPG.

Es empfiehlt sich, den Fingerabdruck des verwendeten GnuPG-Schlüssels mit anzugeben, damit Samhain auch überprüfen kann, ob der korrekte Schlüssel zum Signieren verwendet wurde.

Weiterhin ist es möglich, die TIGER192-Prüfsumme des GnuPG-Programmes mit anzugeben. Dies schließt die Lücke, dass ein Einbrecher die Samhain-Datenbank modifizieren könnte, und außerdem das GnuPG-Programmes austauschen könnte, um zu verbergen, dass die Signatur nicht mehr gültig ist. Der Nachteil dabei ist, dass Samhain neu übersetzt werden muss, wenn GnuPG aktualisiert wird. Die TIGER192-Prüfsumme lässt sich berechnen mit gpg --load-extension tiger --print-md TIGER192 /usr/bin/gpg oder mit samhain -H /usr/bin/gpg; die komplette Ausgabe sollte angegeben werden:

root@linux # ./configure --with-gpg=/usr/bin/gpg \ --with-checksum="/usr/bin/gpg: 1C739B6A F768C949 FABEF313 5F0B37F5 22ED4A27 60D59664" \ --with-fp="EF6C EF54 701A 0AFD B86A F4C3 1AAD 26C8 0F57 1F6C"

#### 7.2 Stealth (versteckter Modus)

Samhain unterstützt die Möglichkeit, auf versteckte Weise zu arbeiten. Dabei gibt es beim Übersetzen der Quellen die folgenden Optionen:

- Mit --enable-install-name=NAME wird nicht nur der Name des Programmes geändert; auch alle Verzeichnisse und Dateien, die diesen Namen enthalten (/var/lib/samhain/, /etc/samhainrc, ...) werden bei der Installation unter geändertem Namen angelegt.
- Mit --enable-nocl[=XYZ] wird die Interpretation von Optionen auf der Kommandozeile verhindert. Das optionale Argument XYZ ist ein magisches Wort, das es ermöglicht, Kommandozeilen-Argumente von stdin zu lesen, z. B.: echo -- --help | samhain XYZ
- Mit --enable-micro-stealth=ZAHL (ZAHL muss ganzzahlig und im Bereich 127 bis 255 sein) werden alle Zeichenketten in den Quellen so verändert, dass sie nicht mehr mit dem Befehl strings sichtbar werden. Dies soll verhindern, dass ein Einbrecher nach Samhain suchen kann mit z. B. dem Befehl: strings /usr/local/sbin/* | grep samhain.
- Mit --enable-stealth=ZAHL (ZAHL muss ganzzahlig und im Bereich 127 bis 255 sein) anstelle von --enable-micro-stealth=ZAHL werden auch Zeichenketten in der Logdatei und in der Samhain-Datenbank entsprechend verändert. Weiterhin erwartet Samhain nun, dass die Konfigurationsdatei steganographisch in einem Bild versteckt ist. Das Bild muss in unkomprimiertem Postskript-Format vorliegen; dieses Format kann z. B. mit convert +compress bild.jpg bild.ps erzeugt werden. Ein Hilfsprogramm samhain_stealth steht zur Verfügung, um die Konfigurationsdatei zu verstecken: samhain_stealth -s bild.ps konfigurationsdatei zum Verstecken, samhain_stealth -g bild.ps, um die versteckte Datei wieder zu sehen.
- Mit --enable-khide=/boot/System.map-$(uname -r) (das Argument ist also die System.map-Datei, die zum Kernel gehört) wird ein Kernel-Modul erzeugt, das beim Laden alle Prozesse und Dateien versteckt, die die Zeichenkette samhain enthalten, bzw. die Zeichenkette NAME, wenn die Option --enable-install-name=NAME benutzt wurde, um Samhain unter einem anderen Namen zu installieren.

Offensichtlich ist es nicht möglich, die Logdatei einfach mit more oder less anzusehen, wenn die Option --enable-stealth=ZAHL benutzt wird. Stattdessen kann man die Datei mit samhain -jL /pfad/zur/logdatei | less ansehen.

#### 7.3 Überwachung des Kernels

Samhain kann die Integrität des Kernels überwachen, also prüfen, ob der Kernel zur Laufzeit z. B. durch Laden eines Rootkit-Moduls verändert wurde. Hierzu ist es notwendig, beim Übersetzen der Quellen die Option --with-kcheck=/boot/System.map-$(uname -r) anzugeben (d. h. das Argument ist die zum Kernel passende System.map-Datei).

Mit dem Standard-Kernel neuerer Fedora Core-Systeme ist diese Option nicht verfügbar, da durch einen Kernel-Patch die Datei /dev/kmem nicht mehr lesbar (oder beschreibbar) ist.

#### 7.4 Überwachung von Login/Logout-Vorgängen

Wird Samhain mit der Option --enable-login-watch übersetzt, so ist es möglich, Login/Logout-Vorgänge zu überwachen. D. h. es wird eine Nachricht geschickt, wenn ein solcher Vorgang stattfindet.

Diese Funktion beruht auf der Überwachung der wtmp-Datei in regelmäßigen Abständen (standardmäßig 300 Sekunden).

#### 7.5 Suche nach SUID/SGID-Dateien

Wenn Samhain mit der Option --enable-suidcheck übersetzt ist, so ist es möglich, das gesamte Dateisystem regelmäßig nach Dateien zu durchsuchen, bei denen das SUID- oder SGID-Bit gesetzt ist, und neu entdeckte Dateien dieser Art zu melden.