Kontrolle und Ueberwachung von Dateien, Verzeichnissen und Dateisystemen mit Tripwire

Tripwire – Kontrolle und Ueberwachung von Dateien, Verzeichnissen und Dateisystemen

Tripwire ist ein Programm mit dem durch Ueberwachung und Anzeige bestimmter Datenaenderungen die Sicherheit und Datenintegritaet auf diversen Betriebssystemen gewaehrleistet werden kann. Wenn man Ueberwachen will ob Dateien veraendert worden sind oder nicht kann man das mit Tripwire machen.

Bei der ersten Inbetriebnahme wird ein Scan der zu ueberwachenden Dateisysteme bzw Verzeichnisse durchgefuehrt, die dabei gewonnen Daten (Pruefsummen) werden in einer Datenbank gespeichert. Zu einem spaeteren Zeitpunkt werden Dateisysteme bzw Verzeichnisse erneut gescannt und mit den Ergebnissen in der Datenbank verglichen. Sollten Aenderungen festgestellt werden wird Tripwire das Melden. Die Ergebnisse einer solchen Ueberpruefung werden ueblicherweise in einem Report zusammngefasst. Wenn Veraenderungen an den Dateisystemen bzw Verzeichnissen gewuenscht werden kann nach der Veraenderung ein erneuter Scan durchgefuehrt werden und die Datenbank auf den neusten Stand gebracht werden. Wenn Tripwire auf einem Debian System aus den Repositories installiert wird ist eine Grundkonfiguration vorhanden die die wichtigsten Verzeichnisse und Dateisysteme eine Linux Systems erfasst(z.b /bin) bzw ausschliesst (z.b /home) Ein so konfiguriertes Tripwire arbeitet als Host basiertes Intrusion Detection System und der Betrieb ist eigentlich nur mit Root Rechten moeglich.

Die Konfiguration von Tripwire erfolgt ueber die Dateien:
/etc/tripwire/tw.pol und
/etc/tripwire/tw.cfg

Die allgemeine Konfigurationsdatei ist die tw.cfg (twcfg.txt), darin sind Programmeinstellungen fuer Tripwire wie z.b der Pfad zum Datenbankfile und dem site.key enthalten. In der Policy Datei tw.pol (twpol.txt) werden z.b die Verzeichnisse und Dateisysteme die gescannt werden sollen eingetragen. Auch Verzeichnisse die explizit nicht gescannt werden sollen werden hier aufgefuehrt.

Tripwire arbeitet mit den beiden Konfigurationsdateien nur in der signierten binaeren Form diese Dateien sollten nicht veraendert werden. Wenn Einstellungen geaendert werden sollen muessen diese Dateien neu erstellt werden.
Die lesbare und editierbare Version von tw.pol heisst standartmaessig twpol.txt
Die lesbare und editierbare Version von tw.cfg heisst standartmaessig twcfg.txt

Nachdem die beiden Textdateien wie gewuenscht angepasst worden sind muessen diese Dateien mittels tripwire wieder in ihre signierte binaere Form gebracht werden. Bei Aenderungen der tw.pol (twpol.txt) muss auch die Datenbank neu erstellt werden. Bei Aenderungen an der tw.cfg (twcfg.txt) ist das nicht noetig. Sollten die Textversionen der Config Dateien nicht vorhanden sein, was auf Produktionssystemen aus Sicherheitsgruenden sein kann dann koennen mittels twadmin die binaeren Dateien wieder in ihre Textform uebertragen werden. Tripwire benutzt ein Paar von Schluesseln zum Signieren verschiedener Dateien um deren unveraenderten Zustand sicherzustellen. Bei der Installation des Debian Pakets wird Sitephrase fuer den Site Key und die Localphrase fuer den Local Key abgefragt. Daraus werden site.key und local.key erstellt, sie finden sich dann im Verzeichniss /etc/tripwire .

Nach der beendigung der Paket Installation muss mittels:

tripwire --init

die Tripwire Datenbank geschrieben werden. Bei der Ausfuehrung gibt es einige Fehlermeldungen die darauf zurueckzufuehren sind das in der default Konfiguration das /proc Filesystem und das /dev Verzeichniss gescannt werden sollen. Die Datenbankdatei befindet sich danach in:
/var/lib/tripwire/rechnername.twd
Zu diesem Zeitpunkt findet sich in
/var/lib/tripwire/reports
noch kein Report. Da in den Verzeichnissen /proc und /dev sehr oft Aenderungen durch den normalen Systembetrieb entstehen ist es normal das das Scannen dieser Verzeichnisse eine Menge Veraenderungsmeldungen bringt.

Mittels

tripwire --check

Wird die Report Datei nach z.b
/var/lib/tripwire/report/debian-20120301-122000.twr
geschrieben. Wenn die Konfiguration zu diesem Zeitpunkt noch nicht angepasst wurde werden auch hier wieder Fehlermeldungen erscheinen weil z.b /proc und /dev noch in der Konfiguration eingetragen ist.
Der Report wird dann mittels:

tripwire --update --twrfile /var/lib/tripwire/report/debian-20120301-122052.twr

in die Datenbank eingearbeitet.(So man dies moechte) Dabei wird der Report in einem Editor angezeigt und ist im Klartext lesbar. Wenn danach die local passphrase eingegeben wird, dann wird auf Basis dieses Reports die Datenbank geupdatet. Um die default konfiguration zu veraendern mussen die config Dateien bearbeitet werden. Das geht nur mit den unverschluesselten Text Dateien. twpol.txt und twcfg.txt. Nach dem anpassen der Konfigurationen muessen die Dateien wieder signiert werden.

twadmin --create-cfgfile --cfgfile /etc/tripwire/tw.cfg --site-keyfile site.key etc/tripwire/twcfg.txt
twadmin --create-polfile --cfgfile /etc/tripwire/tw.cfg --site-keyfile site.key etc/tripwire/twpol.txt

Wegen der Aenderung der tw.pol muss die Datenbank neu geschrieben werden.

tripwire --init

Dann ein Report erstellt:

tripwire --check

Mittels:

tripwire --update --twrfile /var/lib/tripwire/report/debian-20120301-122052.twr

wird der Report erstmal in einem Editor angezeigt und kann nach dem Verlassen des Editors nach Eingabe der localen Passphrase in die Datenbank eingepflegt werden. tripwire –check muss regelmaessig aufgerufen werden z.b ueber einen cronjob um eine kontinuierliche Ueberpruefung sicherstellen zu koennen.

Umwandlung von tw.pol und tw.cfg nach twpol.txt und twcfg.txt

Sollten die dateien twcfg.txt und twpol.txt nicht mehr vorhanden sein und nur noch tw.pol und tw.cfg vorhanden sein kann man diese mit den entsprechenden Passphrasen wieder in *.txt Dateien Zurueckverwandeln.

cd /etc/tripwire
twadmin --print-cfgfile > twcfg.txt

cd /etc/tripwire
twadmin --print-polfile > twpol.txt

Das Loeschen der unverschlesselten Configdateien ist eine Best Practice wenn es um Serversicherheit geht.

Einen bereits vorhandenen Report nochmal anzeigen:

twprint --print-report --twrfile /var/lib/tripwire/report/reportname.twr