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