Dateien in Tripwire überwachen

Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie Tripwire verwenden können, um die Integrität von Dateien zu überwachen und unbefugte Systemänderungen zu erkennen. Sie üben die Installation von Tripwire auf Debian, die Konfiguration seiner Datenbank und die Einrichtung der Dateiüberwachung mit praktischen Befehlszeilenübungen.

Das Lab behandelt Schlüsseloperationen wie die Generierung von Verschlüsselungsschlüsseln, das Erstellen von Baseline-Snapshots und die Analyse von Integritätsberichten. Durch diese praktischen Aufgaben entwickeln Sie die wesentlichen Fähigkeiten für die Sicherung der System-Sicherheit durch effektive Dateiüberwachung.


Skills Graph

Tripwire installieren

In diesem Schritt installieren Sie Tripwire, ein leistungsstarkes Open-Source-Tool zur Überwachung der Dateiintegrität. Tripwire hilft Systemadministratoren, unbefugte Änderungen an wichtigen Systemdateien zu erkennen, indem es für jede Datei einen digitalen "Fingerabdruck" erstellt. Dieser Fingerabdruck umfasst Attribute wie Dateigröße, Berechtigungen und Prüfsummen.

Wenn Tripwire später ausgeführt wird, vergleicht es den aktuellen Zustand der Dateien mit diesen gespeicherten Fingerabdrücken. Wenn Änderungen festgestellt werden (auch wenn sie von autorisierten Benutzern vorgenommen wurden), generiert Tripwire Alarme. Dies ist besonders nützlich für die Sicherheitsüberwachung und das Erkennen potenzieller Systemkompromisse.

Da wir eine Debian-basierte LabEx-VM verwenden, nutzen wir den apt-Paketmanager für die Installation. Der Prozess besteht aus diesen klaren Schritten:

  1. Zunächst müssen wir den lokalen Paketindex aktualisieren. Dadurch wird sichergestellt, dass wir die neueste verfügbare Version von Tripwire installieren:

    sudo apt update
  2. Installieren Sie jetzt Tripwire mit diesem Befehl. Das -y-Flag bestätigt die Installation automatisch:

    sudo apt install -y tripwire
  3. Während der Installation werden Sie Konfigurationsabfragen sehen. Wählen Sie für beide Fragen "Ja":

    • Die erste Frage fragt, ob Sie Tripwire jetzt konfigurieren möchten.
    • Die zweite betrifft die Generierung von Verschlüsselungsschlüsseln (die zur Sicherung der Tripwire-Datenbank verwendet werden).
  4. Nachdem die Installation abgeschlossen ist, überprüfen wir, ob alles funktioniert hat, indem wir die installierte Version prüfen:

    tripwire --version

Sie sollten eine Ausgabe sehen, die die Versionsnummer anzeigt, wie in diesem Beispiel:

Tripwire(R) 2.4.3.7

Diese Versionsbestätigung bedeutet, dass Tripwire ordnungsgemäß installiert ist. In den nächsten Schritten konfigurieren wir es, um die Systemdateien zu überwachen. Der Installationsprozess hat automatisch die erforderlichen Komponenten eingerichtet, einschließlich der Richtlinien-Dateien und Verschlüsselungsschlüssel, die wir später verwenden werden.

Die Datenbank initialisieren

In diesem Schritt initialisieren Sie die Tripwire-Datenbank, die als Basis für die Überwachung der Dateiintegrität dient. Die Datenbank speichert kryptografische Prüfsummen und Attribute der Dateien, die Sie überwachen möchten. Stellen Sie sich das wie das Aufnehmen eines Schnappschusses des aktuellen Zustands Ihrer Dateien vor, gegen den Tripwire später vergleicht, um Änderungen zu erkennen.

Bevor wir beginnen, ist es wichtig zu verstehen, dass die Initialisierung der Datenbank die Richtlinien-Datei (policy file) erfordert, die wir zuvor erstellt haben. Diese Richtlinien-Datei teilt Tripwire mit, welche Dateien und Verzeichnisse überwacht werden sollen und welche Attribute überprüft werden müssen.

Folgen Sie diesen Schritten, um die Datenbank zu initialisieren:

  1. Zunächst müssen wir die eigentliche Richtlinien-Datei aus der von uns bearbeiteten Textversion generieren. Führen Sie diesen Befehl aus:

    sudo twadmin --create-polfile /etc/tripwire/twpol.txt

    Sie werden aufgefordert, das lokale Passwort einzugeben, das Sie während der Installation festgelegt haben. Dieser Schritt wandelt die menschenlesbare Richtlinie in ein Format um, das Tripwire verwenden kann.

  2. Jetzt erstellen wir den ersten Datenbank-Schnappschuss mit diesem Befehl:

    sudo tripwire --init

    Dies kann einen Moment dauern, da Tripwire alle in der Richtlinie angegebenen Dateien scannt. Es berechnet Prüfsummen und protokolliert Dateiattribute für alles, was wir überwachen möchten.

  3. Während der Initialisierung können Sie Warnungen wie diese sehen:

    ######## Warning: File system error.
    #### Filename: /proc/XXXX/XXXX
    #### No such file or directory
    #### Continuing...

    Diese Warnungen über /proc-Dateien sind normal und können ignoriert werden. Das /proc-Verzeichnis enthält dynamische Systeminformationen, die sich häufig ändern. Daher überspringt Tripwire diese Dateien standardmäßig.

  4. Überprüfen wir, ob die Datenbank erfolgreich erstellt wurde, indem wir ihren Speicherort prüfen:

    sudo ls -l /var/lib/tripwire/$(hostname).twd

    Sie sollten die Datenbankdatei mit ihrer Größe und dem Zeitstempel aufgelistet sehen. Dies bestätigt, dass Tripwire erfolgreich seine Vergleichsbasis erstellt hat.

Die Datenbank ist jetzt für die Überwachung von Dateien in den nächsten Schritten bereit. Denken Sie daran, dass diese erste Datenbank den "bekannt guten" Zustand Ihrer Dateien darstellt. Deshalb ist es wichtig, sie zu erstellen, wenn Ihr System in einem sauberen, sicheren Zustand ist.

Dateien zur Überwachung hinzufügen

In diesem Schritt passen Sie an, welche Dateien Tripwire überwacht, indem Sie die Richtlinien-Datei (policy file) bearbeiten. Tripwire funktioniert, indem es aktuelle Dateien mit einem bekannten, guten Datenbank-Schnappschuss vergleicht. Daher müssen wir es explizit darüber informieren, welche Dateien es verfolgen soll. Standardmäßig überwacht Tripwire viele kritische Systemdateien. In diesem Lab konzentrieren wir uns jedoch darauf, Dateien in Ihrem Projektverzeichnis hinzuzufügen, da es sich hierbei um die Dateien handelt, mit denen Sie am häufigsten arbeiten.

Folgen Sie diesen Schritten, um die Überwachung für bestimmte Dateien hinzuzufügen:

  1. Erstellen Sie zunächst eine Sicherungskopie der ursprünglichen Richtlinien-Datei. Dies ist ein Sicherheitsmaßnahme, falls Sie beim Bearbeiten Fehler machen:

    sudo cp /etc/tripwire/twpol.txt /etc/tripwire/twpol.txt.bak
  2. Öffnen Sie die Richtlinien-Datei zum Bearbeiten mit nano, einem einfachen Texteditor. Wir verwenden sudo, da es sich um eine Systemkonfigurationsdatei handelt:

    sudo nano /etc/tripwire/twpol.txt
  3. Scrollen Sie nach unten, um den Abschnitt zu finden, der mit ( rulename = "User Binaries", beginnt (etwa Zeile 200). Hier fügen wir unsere neue Regel hinzu. Der folgende Block definiert eine neue Regel namens "Lab Project Files", die alles im Verzeichnis /home/labex/project überwachen wird:

    (
      rulename = "Lab Project Files",
      severity = $(SIG_HI)
      {
        /home/labex/project - > $(SEC_BIN)
      }
    )
  4. Speichern Sie die Datei, indem Sie Strg+O drücken (write Out), dann Enter, um die Änderungen zu bestätigen, und verlassen Sie nano mit Strg+X.

  5. Jetzt müssen wir die Tripwire-Richtlinie mit Ihren Änderungen aktualisieren. Der Befehl twadmin kompiliert die Text-Richtlinien-Datei in ein binäres Format, das Tripwire verwenden kann:

    sudo twadmin -m P /etc/tripwire/twpol.txt

    Sie werden aufgefordert, Ihr lokales Passwort einzugeben - dies ist das Passwort, das Sie während der Tripwire-Installation festgelegt haben.

  6. Schließlich müssen wir die Datenbank aktualisieren, um Ihre neuen Dateien einzubeziehen. Dies erstellt einen neuen Basis-Schnappschuss, gegen den zukünftige Integritätsüberprüfungen verglichen werden:

    sudo tripwire --update --database /var/lib/tripwire/$(hostname).twd

Jetzt wird Tripwire alle Dateien in Ihrem ~/project-Verzeichnis auf Änderungen überwachen. Dies umfasst Dateiänderungen, -löschungen oder -berechtigungsänderungen - alles, was vom aktuellen Datenbank-Schnappschuss abweicht, wird gemeldet.

Überprüfen der Dateiintegrität

In diesem Schritt führen Sie eine Integritätsüberprüfung durch, um zu überprüfen, ob seit der Erstellung der Datenbank einige der überwachten Dateien geändert wurden. Dies ist die Kernfunktion von Tripwire, die bei der Erkennung unbefugter Änderungen hilft. Stellen Sie sich das wie einen Wachmann vor, der ständig prüft, ob wichtige Dateien ohne Genehmigung verändert wurden.

Bevor wir beginnen, verstehen wir zunächst, was während einer Integritätsüberprüfung passiert:

  1. Tripwire scannt alle Dateien, die für die Überwachung konfiguriert sind.
  2. Es vergleicht den aktuellen Zustand jeder Datei mit dem ursprünglichen Schnappschuss, der in seiner Datenbank gespeichert ist.
  3. Alle Unterschiede (Hinzufügungen, Löschungen oder Änderungen) werden im Bericht markiert.

Folgen Sie diesen Schritten, um die Dateiintegrität zu überprüfen:

  1. Erstellen Sie zunächst eine Testdatei in Ihrem Projektverzeichnis, die Tripwire überwachen wird. Dies hilft uns zu sehen, wie Tripwire neue Dateien erkennt:

    touch ~/project/test_file.txt
  2. Führen Sie jetzt den Befehl zur Integritätsüberprüfung aus. sudo ist erforderlich, da Tripwire Root-Rechte benötigt, um auf alle Systemdateien zugreifen zu können:

    sudo tripwire --check
  3. Der Scan kann einige Zeit dauern, da Tripwire mehrere Phasen durchläuft. Sie werden eine Ausgabe ähnlich der folgenden sehen:

    #### Phase 1: Reading configuration file
    #### Phase 2: Generating file list
    #### Phase 3: Creating file information database
    #### Phase 4: Searching for inconsistencies
    #### Phase 5: Generating report
  4. Tripwire erstellt einen Bericht, der alle gefundenen Änderungen anzeigt. Da wir gerade eine neue Datei erstellt haben, sollten Sie im Output einen Eintrag wie diesen sehen, der darauf hinweist, dass Tripwire die neue Datei bemerkt hat:

    Added:
    "/home/labex/project/test_file.txt"
  5. Um den vollständigen Bericht anzuzeigen, müssen wir die neueste Berichtsdatei in Tripwires Berichtsverzeichnis überprüfen. Dieser Befehl listet die Berichte nach Zeit sortiert auf, wobei der neueste zuerst angezeigt wird:

    sudo ls -lt /var/lib/tripwire/report/ | head -n 2

    Notieren Sie sich den Dateinamen des neuesten Berichts aus der Ausgabe (es wird in etwa so aussehen wie labex-hostname-YYYYMMDD-HHMMSS.twr).

Die Integritätsüberprüfung wurde nun erfolgreich abgeschlossen. Tripwire hat alle überwachten Dateien gescannt und alle Änderungen in seinem Bericht festgehalten. Im nächsten Schritt werden wir den Bericht detailliert untersuchen, um zu verstehen, wie man seine Ergebnisse interpretiert.

Integritätsbericht anzeigen

In diesem letzten Schritt werden Sie den von Tripwire generierten Bericht aus der Integritätsüberprüfung untersuchen. Dieser Bericht ist im Wesentlichen ein detaillierter Vergleich zwischen Ihren aktuellen Systemdateien und der Basisdatenbank, die Sie zuvor erstellt haben. Das Verständnis dieses Berichts ist von entscheidender Bedeutung, da er genau zeigt, welche Dateien seit Ihrer letzten Überprüfung hinzugefügt, entfernt oder geändert wurden.

Lassen Sie uns den Prozess Schritt für Schritt durchgehen:

  1. Zunächst müssen wir die neueste Berichtsdatei finden. Tripwire speichert seine Berichte in einem bestimmten Verzeichnis, wobei der Dateiname Zeitstempel enthält:

    sudo ls -lt /var/lib/tripwire/report/ | head -n 2

    Der Befehl ls -lt listet die Dateien nach Änderungszeit auf (neueste zuerst), und head -n 2 zeigt nur die ersten beiden Zeilen (die Überschrift und die neueste Datei). Suchen Sie nach einem Dateinamen wie your-hostname-YYYYMMDD-HHMMSS.twr.

  2. Jetzt verwenden wir Tripwires integrierten Berichtsviewer, um den Inhalt zu untersuchen. Die Option --report-level 4 gibt uns die detaillierteste Ansicht:

    sudo twprint --print-report --report-level 4 --twrfile /var/lib/tripwire/report/[REPORT_FILENAME]

    Denken Sie daran, [REPORT_FILENAME] durch den tatsächlichen Dateinamen zu ersetzen, den Sie in Schritt 1 gefunden haben.

  3. Der vollständige Bericht enthält mehrere wichtige Abschnitte, die Ihnen helfen, zu verstehen, was sich geändert hat:

    • Hinzugefügte Dateien: Dies sind neue Dateien, die nicht in Ihrer ursprünglichen Basis vorhanden waren.
    • Entfernte Dateien: Dateien, die in Ihrer Basis waren, aber jetzt fehlen.
    • Geänderte Dateien: Bestehende Dateien, deren Inhalt oder Attribute sich geändert haben.
    • Fehlersummary: Alle Probleme, die während der Überprüfung aufgetreten sind.
  4. Wenn Sie nur eine schnelle Zusammenfassung der Änderungen ohne alle Details sehen möchten, können Sie den Bericht filtern:

    sudo twprint --print-report --report-level 4 --twrfile /var/lib/tripwire/report/[REPORT_FILENAME] | grep -A 10 "Report Summary"

    Der Befehl grep -A 10 zeigt die Zeile "Report Summary" plus die nächsten 10 Zeilen als Kontext an.

  5. Eine typische Zusammenfassungsausgabe sieht wie folgt aus:

    Report Summary:
    --------------------------------------------------------------------------
    Added objects:   1
    Removed objects: 0
    Modified objects: 0

    Dies zeigt Ihnen auf einen Blick, wie viele Dateien hinzugefügt, entfernt oder geändert wurden.

  6. Wenn Sie mit der Überprüfung des Berichts fertig sind, können Sie ihn schließen, indem Sie q drücken, wenn Ihr Terminal einen Pager verwendet, oder einfach warten, bis die Ausgabe beendet ist.

Zusammenfassung

In diesem Lab haben Sie gelernt, die Dateiintegritätsüberwachung mit Tripwire auf einem Debian-System zu implementieren. Der Prozess umfasste die Installation von Tripwire, die Konfiguration der Umgebung und die Initialisierung der Basisdatenbank, um Referenzen für die Dateiintegrität festzulegen.

Sie haben wichtige Operationen wie die Generierung der Richtliniendatei (policy file), das Scannen des Systems und das Verständnis von Tripwires Mechanismus zur Änderungserkennung untersucht. Das Lab hat auch die zu erwartenden Warnungen während der Initialisierung behandelt, wobei der Fokus auf der Erstellung eines effektiven Überwachungsframeworks lag.