Tripwire & Co. Überprüfung der Integrität von Dateien und Verzeichnissen
Was ist Tripwire? Tool zur Überwachung von Systemen Sicherheit durch Bestandsaufnahme Überprüfung der Dateiintegrität Tripwire guard the guards 2 Versionen: – GPL – General Public License – Kommerziell
Installation von Tripwire RPM, src und doc Links zu finden unter – nach Paketinstallation… – anpassen von twcfg.txt (/etc/tripwire) – aufrufen von twinstall.sh (/etc/tripwire) – Erzeugung von site-key und local-key
Komponenten von Tripwire Konfigurationsdateien – twcfg.txt > tw.cfg Default Policy Datei – twpol.txt > tw.pol Datenbank Datei Report Dateien Verschlüsselungsdateien
Verschlüsselung Verwendung einer 1024-bit asymmetrischen Verschlüsselung (public & private key) site-key – Verschlüsselung von policy- und config-File local-key – Verschlüsselung der DB und report files
Tripwire Befehle tripwire – Datenbank initialisieren – Integrität überprüfen – Datenbank aktualisieren – Policy aktualisieren – Test
Tripwire Befehle twadmin – Konfigurationsdatei erzeugen – Konfigurationsdatei ausgeben – Policy-Datei erzeugen – Policy-Datei ausgeben – Schlüssel erzeugen
Tripwire Befehle twprint – Datenbank einsehen und ausgeben – Reportdateien einsehen und ausgeben
Funktionsweise
Die Default Policies Regeln Haltepunkte Attribute Direktiven Variablen Kommentare Beispiel – /temp -> $(ReadOnly); # Kommentar
Regeln Allgemeiner Aufbau – object name -> property mask; Beispiele – /bin->$(ReadOnly); – /etc/shadow->$(IgnoreNone); – /etc->$(mask1); #mask1 is user defined – /etc/passwd->$(mask2); #mask2 is user defined keine Rekursionen in versch. Partitionen – /usr-> +pinugsmc-a; – /usr/local -> +pinugsmc-a;
Property Masks Beschreiben Objekteigenschaften, die analysiert wreden sollen Übliche Syntax: – [+-][pinugtsldbamcrCMSH] keine leere Maske +.. einschalten -.. ausschalten
Property Masks - Beispiele +p+n+s # compare perm. numb.of links, and file size +pns # same as above pns # sane as above mask1 = +pinug; #define a variable called mask1 /file -> $(mask1)-g # use mask1 but turn off # property g
Select Flags
Property mask Characters p.. file permissions i.. inode number n.. number on links u.. user ID of owner g.. group ID of owner t.. file type s.. file size d.. device number r.. device number b.. number of blocks m.. modif. ts c.. inode cr/mod ts l.. file grows a.. access ts C.. CRC-32 M.. MD5 S.. SHA H.. HAVAL
Haltepunkte ! object name; Beispiel – /etc -> $(ReadOnly); – ! /etc/rc.d;# ignore – ! /etc/mnttab;# ignore
Vordefinierte Variablen ReadOnly – +pinugsmtdbCM-raclSH Dynamic – +pinugtd-rsacmblCMSH Growing – +pinugtdl-rsacmbCMSH IgnoreAll – -pinusgamctdrblCMSH
Regelattribute object name -> property mask (attribute = value, attribute = value, …) /usr/lib -> $(ReadOnly) (attribute=value) { rule 1; rule 2; } { /usr/lib -> $(ReadOnly); }
Regelattribute rulename Beispiel – (rulename=rcfiles) { /home/.login -> $(ReadOnly); /home/.cshrc -> $(ReadOnly); /home/.logout -> $(ReadOnly); } – tripwire --check --rule-name rcfiles
Regelattribute to Beispiel – { /temp -> $(IgnoreAll); /payroll -> $(ReadOnly) } /projects -> $(ReadOnly) – tripwire –-check –- -report
Regelattribute severity Beispiel – /usr/bin -> $(ReadOnly) (severity=90); – /usr/lib -> $(ReadOnly) (severity=75); tripwire --check --severity=80
Regelattribute recurse Werte: true, false, -1, 0, …, Beispiel – /temp/dog -> $(ReadOnly) (recurse=2) – /temp/dog/shepherd wird gescannt – /temp/dog/shepherd/bark wird gescannt – /temp/dog/shepherd/bark/loudly.txt wird nicht gescannt
Automatisierte Prüfung Verwendung von cron Eintrag in crontab – 0 3 * * * /usr/sbin/tripwire -- check