Zahlen, bitte!

Sobald die Konfiguration steht, muss Samhain einmal die zu beobachtenden Dateien abklappern, jeweils eine eindeutige Prüfsumme erstellen und sich zusätzlich noch alle übrigen Dateieigenschaften notieren. Diese Initialisierung übernimmt der Befehl

samhain -t init

Je nachdem wieviele Dateien Samhain überwachen muss, darf man sich jetzt mehrere Tassen Kaffee kochen. Alle gesammelten Informationen laden in einer Datenbank, die standardmäßig in der Datei »/var/lib/samhain/samhain_file« liegt. Sollte sie bereits vorhanden sein, hängt Samhain die Daten ans Ende an. Der obige Befehl eignet sich folglich nicht dazu, die Datenbank zu aktualisieren. Dies übernimmt sein Kollege

samhain -t update
Abbildung 2: samhain -d /pfad/zur/datenbank listet den Inhalt der Signaturdatenbank auf, wobei das Format an die Ausgabe von ls -l erinnert.

Die Prüfsummen bildet Samhain übrigens mit dem TIGER192-Algorithmus. Alternativ stehen noch SHA-1 und MD5 zur Auswahl, auf die man mit der Einstellung »DigestAlgo« in der Konfigurationsdatei umschaltet. Von MD5 rät der Samhain-Autor wegen möglicher Schwächen allerdings ab.

Sobald die Datenbank steht, überprüft das folgende Kommando die System-Integrität:

samhain -t check

Damit durchläuft Samhain erneut das System und kontrolliert für jede Datei, ob die Prüfsumme sowie die Dateieigenschaften mit denen in der Datenbank hinterlegten übereinstimmen. Um diese Prüfung zu automatisieren, startet der Administrator Samhain als Daemon. Wer nach der Installation »make install-boot« abgesetzt hat, muss dazu sein System einmal neu starten, alternativ übernimmt das der Befehl:

samhain -D -t check

Das Intervall, in dem der Daemon auf die Jagd geht, legt in der Konfigurationsdatei entweder

SetFilecheckTime = Sekunden

fest oder ein Eintrag im Crontab-Stil:

FileCheckScheduleOne = */5 * * * *

Da die Datenbank mit den Prüfsummen den Ausgangspunkt für alle zukünftigen Vergleiche bildet, darf das zugrunde liegende Linux-System bei ihrer Erstellung nicht bereits kompromittiert sein. Auch einem Wachmann wird eine unverschlossene Tür nur dann auffallen, wenn sie bei seiner Einweisung verriegelt war. Man sollte Samhain folglich installieren, noch bevor der PC ans Netz geht. Darüber hinaus darf niemand die Datei mit der Datenbank in die Finger bekommen. Dazu kann man sie entweder auf ein nur einmal beschreibbares Medium verschieben oder auf einem Server parken. Der könnte dann gleich auch noch sämtliche Logfiles aller Samhain-Installationen im LAN einsammeln und deren Konfigurationsdateien speichern. Dies hat für den Administrator den Vorteil, dass alle wichtigen Daten an einer Stelle liegen und auf den Clients werkelnde Schadprogramme nicht verändern können.

Der Meister

Um ein solches Client/Server-Gespann einzurichten, muss man zunächst auf dem Server das Programm Yule erstellen. Das geht praktischerweise mit den Samhain-Quellen, man übergibt Configure lediglich noch den Parameter »--enable-network=server« :

./configure --enable-network=server
make
sudo make install

Ein nachgeschobenes

sudo make install-user

biegt noch ein paar Rechte gerade. Der entstandene Log-Server »yule« nimmt allerdings ausschließlich die Daten der Clients entgegen, selbst er führt selbst keine Integritätsprüfung durch. Bevor der Administrator den Server in Betrieb nimmt, muss er noch in der Konfigurationsdatei »/etc/yulerc« den Abschnitt »[Log]« anpassen. Er ist weitgehend identisch mit seinem Pendant aus »samhainrc« .

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023