mtree(8) als Dateisystemintegritätsprüfer einsetzen.
1 Was ist ein Dateisystemintegritätsprüfer?
2 Was ist mtree?
2.1 Konfiguration
2.2 Einsatz
2.2.1 Vergleiche
2.3 Einsatzautomatisierung
Einbruchserkennung mit mtree(8)
1 Was ist ein Dateisystemintegritätsprüfer? (Index)
Ein Dateisystemintegritätsprüfer erstellt einen Fingerabdruck einer Dateihierarchie in dem er bspw Größe, Mode,
Besitzer und kryptographische Signaturen der Dateien abspeichert. Zu einem späteren Zeitpunkt kann man eine
aktuelle Datenbank erstellen lassen und gegen die alte vergleichen, so das veränderte Dateien aufgespürt werden
können. Der Hauptzweck ist somit Manipulationen an wichtigen Dateien bspw. durch Einbrecher oder rootkits
aufzudecken.
2 Was ist mtree? (Index)
mtree ist ein Instrument um eine Dateihierarchie gegen eine Spezifikation abzugleichen.
Eingesetzt wird es vor allem im build.sh Framework um die installierten Binärdateien gegen
eine vorher spezifizierte Liste abzugleichen.
Seit NetBSD 1.6 verfügt mtree auch über kryptographische Prüfsummen und ist somit ein
ideales Werkzeug zur Dateisystemintegrätitsprüfung.
2.1 Konfiguration (Index)
mtree -c erstellt standardmäßig Liste mit Dateieigenschaften ausgehend vom aktuellen Verzeichnis aus.
ein Beispiel:
ypbind size=390 time=1016771641.0
yppasswdd size=446 time=1016771641.0
ypserv size=495 time=969368679.
mtree verfügt über einige Schlüsselwörter, die entsprechende Dateieigenschaften repräsentiert, einige wichtige sind:
- ignore N
alles unter N soll ignoriert werden
- gid,gname,uid,uname
gibt die Gruppen/User ID bzw. Name wieder
- md5,rmd160,sha1
erzeugt die entsprechende Prüfsumme über der Datei
- mode
oktaler Dateimodus (rwxrwxrwx)
- size
Größe in b
- time
letzter Modifizierungszeitpunkt
diese Schlüsselweörter können als kommaseparierte Liste und Argument für -K übergeben werden.
- -L
allen Links folgen
- -p PFAD
PFAD als Startpfad einsetzen
- -X DATEI
Pfade/Dateinamen (relativ zu PFAD) in DATEI sollen ausgeschlossen werden
2.2 Einsatz (Index)
mtree -L -c -K sha1,rmd160,gname,uname,mode -p / -X /etc/mtree.excl >
/root/mtree.orig
Erzeugt nun eine Liste mit den entsprechenden Dateieigenschaften, wobei die Pfade in /etc/mtree.excl
ausgeschlossen werden.
Um die Datenbank effektiv einsetzen zu können, muss sie vor einem möglichen Einbrecher geschützt werden, die
geschieht am einfachsten mit einer kryptographischen Signatur (PGP oder OpenSSL) oder in dem sie verschlüsselt
abgelegt wird. Ebenfalls möglich ist es bei einem entfernten Rechner Prüfsummen (sha1, rmd160, md5) über die
Datenbank zu erstellen und auszudrucken oder aufzuschreiben.
2.2.1 Vergleiche (Index)
Ist die Integrität der originalen Datenbank sichergestellt, kann man nun das laufende System gegen diese
Datenbank abgleichen lassen. mtree macht dies automatisch mit der Option -f :
mtree -L -p / -X /etc/mtree.excl -f /root/mtree.orig
Stimmen laufendes und originales System überein, gibt mtree nichts aus.
Anders sieht es aus wenn Dateien verändert wurden:
stefan@fenris > cd mtreetest/3/;
stefan@fenris > rm 7 8 9 ; touch 1 2; date >> 3; date > new1; date > new2
stefan@fenris > mtree -p mtreetest/ -L -f init-db
3: modification time (Wed Feb 9 18:49:07 2005, Wed Feb 9 18:55:16 2005)
3/1: modification time (Wed Feb 9 18:36:51 2005, Wed Feb 9 18:54:47 2005)
3/2: modification time (Wed Feb 9 18:36:51 2005, Wed Feb 9 18:54:48 2005)
3/3: size (6460, 6489)
modification time (Wed Feb 9 18:48:17 2005, Wed Feb 9 18:54:52 2005)
rmd160 (0xf30de94ae188d9114a00118e80bbedf8e2c6c6ed, 0x6a5b3781799b09e2b8d8037e89fe03957ebca247)
sha1 (0x4c499470dcaed01c2681eb0676ddac8cf3024d5a, 0xc04159927a4e9ca5f521161d2cc8daa019fca19a)
extra: 3/new1
extra: 3/new2
missing: ./3/7
missing: ./3/8
missing: ./3/9
stefan@fenris >
2.3 Einsatzautomatisierung (Index)
NetBSD verfügt mit daily.conf(5) und security.conf(5) über Mechanismen, die per cron täglich
bestimmte Verwaltungsmaßnahmen und Sicherheitsstest durchführt. Dabei gibt es in
/etc/defaults/daily.conf den Schalter run_security=YES,
der security.conf ausführt. /etc/defaults/security.conf wiederum
startet mittels check_mtree=YES einen mtree-Lauf. Standardmäßig verwendet mtree dazu
die Datenbanken in /etc/mtree/. Hierin kann der Benutzer eigene Datenbanken als
VERZEICHNIS.secure hinzufügen.
net-tex.de, Index
$Id: mtree.html,v 1.26 2014/08/21 09:24:03 stefan Exp $
Autor: Stefan Schumacher,
stefan@net-tex.de, PGP-Key 0xB3FBAE33
für net-tex.de/cryptomancer.de
Bitte beachten Sie, das die Seite inhaltlich seit Ende 2007 nicht mehr gepflegt wird!
Aktuellere Informationen erhalten Sie auf Kaishakunin.com