Website-Suche

Tutorial zur Erkennung von Stolperdraht-Eindringlingen unter Linux


Egal, ob Sie ein erfahrener Systemadministrator oder ein Linux-Anfänger sind, ob Sie ein Unternehmensnetzwerk oder nur Ihr Heimnetzwerk verwalten, Sie müssen sich über Sicherheitsprobleme im Klaren sein.

Ein häufiger Fehler besteht darin, zu glauben, dass Sie als Heimanwender mit wenigen Computern mit Blick auf die Welt vor böswilligen Angriffen geschützt sind. Der Angreifer wird von Ihnen nicht das bekommen, was er von einem großen Unternehmensnetzwerk bekommen kann, aber das bedeutet nicht, dass Sie sicher sind. Je früher Sie sich der Sicherheit bewusst werden, desto besser.

Während das Thema Netzwerksicherheit riesig ist, behandelt dieses Tutorial eine interessante Software namens Tripwire, ein HIDS (Host-based Intrusion Detection System). Natürlich lernen Sie nicht nur etwas über Stolperdraht, sondern auch, was ein IDS ist, welche Verwendungsmöglichkeiten, Fallen und Fallstricke es gibt. Ein wenig Netzwerkwissen wird Ihnen definitiv helfen, plus ein gewisses Maß an Paranoia (es ist Ihre Entscheidung, ob das ein Witz war oder nicht).

In diesem Tutorial lernen Sie:

  • Was ist ein Intrusion Detection System?
  • So installieren Sie Tripwire auf den wichtigsten Linux-Distributionen
  • So verwenden Sie Tripwire mit Befehlen
  • So konfigurieren Sie Tripwire-Einstellungsdateien

Was ist ein Intrusion Detection System?

Intrusion Detection Systeme, die im Folgenden als IDS bezeichnet werden, sind Softwareanwendungen, die ein Netzwerk auf verdächtige Aktivitäten überwachen, wobei das Stichwort hier "Monitor" ist. Der Unterschied zwischen einem IDS und einer Firewall besteht darin, dass erstere in der Regel nur ungewöhnliche Aktivitäten meldet, während eine Firewall eine Anwendung ist, die erstellt wurde, um diese Aktivität zu stoppen. Es ist also im Grunde ein Fall von passiv vs. aktiv.

Wie bereits erwähnt, kann man ein IDS zwar in einem SOHO-Netzwerk verwenden, aber sein wahrer Wert zeigt sich in größeren Netzwerken mit vielen Subnetzen und wertvollen Daten. Es gibt auch IDPSs, bei denen das zusätzliche "P" für Prävention steht, was bedeutet, dass ein IDPS auch versucht, die Firewall neu zu konfigurieren, um beispielsweise eine neue Bedrohungslage widerzuspiegeln, also in diesem Fall auf Passiv trifft Aktiv.

Wir lassen Sie tiefer in die reichhaltige Dokumentation zu diesem Thema eintauchen, da Sicherheit im Allgemeinen nicht Gegenstand unseres Artikels ist, und wir werden versuchen, uns auf die Arten von IDS zu konzentrieren, damit wir zu unserem Thema gelangen können, das Stolperdraht ist.

Die wichtigsten Arten von IDS

Es gibt NIDS und HIDS, d.h. Netzwerk-IDS und Host-basiertes IDS. Die erste versucht, Eindringlinge zu erkennen, indem sie den Netzwerkverkehr überwacht (z. B. Snort), während das HIDS Dateiänderungen auf den überwachten Systemen, Systemaufrufen, ACLs usw. überwacht, um das gleiche Ergebnis zu erzielen.

Manchmal kann ein HIDS so konfiguriert werden, dass es auch Netzwerkpakete überwacht, genau wie ein NIDS, aber dies ist kein Artikel über die allgemeine Klassifizierung von IDS. Es gibt verschiedene Meinungen über die Effizienz verschiedener IDS-Typen, aber wir sagen, verwenden Sie das richtige Werkzeug für die richtige Aufgabe.

HIDS waren die erste Art von Intrusion Detection-Software, die entwickelt wurde, und wie man leicht annehmen kann, ist sie geeigneter, wenn der Verkehr mit der Außenwelt weniger häufig ist (da der Netzwerkverkehr zu dieser Zeit bestenfalls eher spärlich war) oder das Netzwerkdesign so beschaffen ist, dass es die Verwendung sowohl von HIDS als auch von NIDS zulässt. abhängig vom Datenverkehr (denken Sie an die DMZ).

So installieren Sie Tripwire auf den wichtigsten Linux-Distributionen

Bevor wir beginnen, ein sehr wichtiger Ratschlag: Versuchen Sie, Tripwire direkt nach der Installation des Systems zu installieren, denn auf diese Weise besteht eine bessere Chance, dass es sauber und unverfälscht von böswilligen Personen ist. Tripwire erstellt eine Datenbank mit Informationen, die sich auf Ihr System beziehen, und vergleicht diese dann mit dem, was es bei regelmäßiger Ausführung findet, was es sollte, um einen echten Nutzen daraus zu ziehen.

Sie können den entsprechenden Befehl unten verwenden, um Tripwire mit dem Paketmanager Ihres Systems zu installieren.

So installieren Sie Tripwire unter Ubuntu, Debian und Linux Mint:


sudo apt install tripwire

So installieren Sie Tripwire auf Fedora, CentOS, AlmaLinux und Red Hat:


sudo dnf install tripwire

So installieren Sie Tripwire auf Arch Linux und Manjaro (Installation von AUR über yay):


yay -S tripwire-git

Abhängig von Ihrer Distribution werden während der Installation einige Eingabeaufforderungen angezeigt. Diese sind selbsterklärend und ermöglichen es Ihnen, einige der Einstellungen von Tripwire bereits zu konfigurieren.

Sie werden aufgefordert, eine Passphrase zu konfigurieren, wie unten gezeigt. Vergessen Sie dieses Passwort nicht!

So verwenden Sie Tripwire

Wenn Tripwire installiert ist, können wir es verwenden.

  1. Tripwire arbeitet mit Modi. Ein Modus ist im Grunde genommen eine Funktion, die Stolperdraht ausführen kann. Alle Stolperdrahtmodi können auch als Aktionen betrachtet werden, und jedes aktionsbezogene Flag (z. B. –init) verfügt über eine kurze Entsprechung mit dem Präfix -m. Um die Datenbank zu initialisieren, können wir also schreiben:

    
    tripwire -m i 
    

  2. Nach all dem Gerede wird man natürlich Stolperdraht verwenden wollen, so dass dies mit dem Check-Modus erreicht werden kann:

    
    tripwire -m c 
    

  3. Ein Flag, das Sie häufig im Prüfmodus verwenden können, ist -I, was für interaktiv steht. Sie werden eine große Anzahl von Problemen finden, die Stolperdraht beim Scannen gefunden hat, aber keine Panik. Und natürlich sollten Sie sich nicht nur auf HIDS verlassen, um die Integrität Ihres Systems zu überprüfen. IDS-Software ist im Allgemeinen dafür bekannt, falsch negative/positive Ergebnisse zu erzeugen, daher müssen die Berichte aus solchen Systemen mit Vorsicht genossen werden. Unser Befehl für den Prüfmodus wird also:

    
    tripwire -m c -I
    
  4. Bevor wir zum Datenbankaktualisierungsmodus übergehen, müssen wir Sie daran erinnern, das Handbuch zu lesen. Jeder Modus hat seine spezifischen Optionen, die Sie höchstwahrscheinlich nützlich finden werden, plus andere Optionen, die allen oder einigen der Modi gemeinsam sind, wie -v, -c oder -f (wir laden Sie ein, herauszufinden, was sie tun). Auf GitHub von Tripwire gibt es auch ein Handbuch, falls Sie den man-Befehl verabscheuen. Da Sie diese Befehle häufig verwenden müssen, sollten Sie natürlich cron oder ein anderes Tool verwenden, das Sie für die Planung verwenden. Zum Beispiel wird diese Zeile in der crontab von root den Trick machen:

    
    45 04 * * * /usr/sbin/tripwire -m c 
    

    Dadurch wird der Befehl täglich um 04:45 Uhr ausgeführt.

  5. Im Laufe der Zeit ändern sich die Dateien auf einem System. Systemupdates, Neuinstallationen, all dies erhöht die Diskrepanzen zwischen dem Original und dem, was Tripwire über Ihr System (die Datenbank) weiß. Daher muss die Datenbank regelmäßig aktualisiert werden, um Berichte so genau wie möglich zu erhalten. Wir können dies leicht erreichen, indem wir Folgendes eingeben:

    
    tripwire -m u
    
  6. Wenn Sie die Datenbank in ihrer jetzigen Form sehen möchten, kommt twprint zur Rettung:

    
    twprint -m d
    

    Wir empfehlen dringend, insbesondere bei langsamen Terminals oder Remote-Verbindungen, aber auch, wenn Sie tatsächlich etwas lesen möchten, entweder einen Pager wie less zu verwenden oder die Ausgabe in eine Datei umzuleiten. Wenn Sie die Ausgabe des obigen Befehls über wc leiten, erhalten Sie 769078 Zeilen. Sie wurden gewarnt.

  7. Wenn Sie auch nur im Entferntesten mit der Systemsicherheit zu tun haben, wissen Sie, was der Begriff "Richtlinie" bedeutet. In Tripwire-Begriffen definieren Sie die Richtlinie in einer Datei, die Regeln darüber enthält, welches Systemobjekt überwacht wird und wie, um es grundsätzlich zu platzieren. # startet einen Kommentar, und die allgemeine Regel für eine Zeile in der Richtliniendatei lautet:

    
    #This is a comment and an example 
    object -> property
    /sbin -> $(ReadOnly)
    ! /data1
    

    Ein Objekt ist also im Grunde ein Ordner in Ihrem System, und hier zeigt die zweite Zeile, wie Sie tripwire anweisen sollten, das Verzeichnis /data1 in Ruhe zu lassen, indem Sie den Operator ! verwenden (C, irgendjemand?). Beachten Sie in Bezug auf Objekte, dass Namen wie $HOME oder ~ niemals gültige Objektbezeichner sind und Sie wahrscheinlich eine Fehlermeldung erhalten. Es gibt viele Dinge, die man beim Schreiben oder Aktualisieren einer Richtliniendatei beachten sollte (Regelattribute, Variablen usw.), und tripwire sieht in dieser Hinsicht vielversprechend und vielseitig aus. Alles, was Sie mit den Optionen für die Richtliniendatei von tripwire tun können, finden Sie auf der Handbuchseite und einige schöne Beispiele in /etc/tripwire/twpol.txt.

  8. TWADMIN ist auch hilfreich beim Erstellen oder Überprüfen von Konfigurationsdateien oder Schlüsseln. Mit diesem Befehl wird z. B. die Richtliniendatei in ihrem aktuellen Zustand gedruckt:

    
    twadmin -m p
    
  9. Schließlich der Testmodus. Was nützt ein Monitoring-Tool, wenn es Ihnen nicht richtig Bericht erstatten kann? Das ist es, was der Testmodus tut. Es sendet eine E-Mail an den Administrator, basierend auf den Einstellungen in der Konfigurationsdatei (erstes Beispiel unten) oder als Befehlszeilenoption (zweites Beispiel unten), und wenn die E-Mail korrekt empfangen wird, ist das Leben gut. Dies setzt natürlich voraus, dass Ihr E-Mail-System ordnungsgemäß eingerichtet ist. Mal sehen:

    
    tripwire -m t 
    tripwire -m t -e $user@$domain
    

Tripwire-Dateien

Es gibt einige verschiedene Konfigurationsdateien, die von Tripwire generiert werden. Diese befinden sich im Verzeichnis /etc/tripwire.


ls /etc/tripwire
$hostname-local.key  site.key  tw.cfg  twcfg.txt  tw.pol  twpol.txt

Natürlich ist $hostname die Ausgabe des Befehls hostname auf einem beliebigen Linux-Rechner. Nun, die beiden .key-Dateien sind Site-weite und lokale Schlüssel für Tripwire, und es gibt, wie Sie sehen können, zwei .txt-Dateien, eine .cfg- und eine .pol-Datei. Wenn Sie genauer hinsehen, werden Sie vielleicht ein Muster in der Benennung dieser vier Dateien bemerken, und Sie haben Recht. Die .cfg- und .pol-Dateien werden aus den entsprechenden .txt-Dateien wie folgt generiert:


twadmin -m F /etc/tripwire/twcfg.txt
twadmin -m F /etc/tripwire/twpol.txt

Dadurch werden die Dateien tw.cfg bzw. tw.pol generiert, die, wie gesagt, für die Konfiguration von tripwire unerlässlich sind. tw.cfg ist die Datei, mit der man das Programm konfiguriert, und tw.pol definiert die Richtlinie. Schauen wir uns die Syntax ein wenig an.

tw.cfg

Der Untertitel ist absichtlich irreführend, da tw.cfg aus einer Textdatei generiert wird, ähnlich wie bei der sendmail-Konfiguration, und es ist binär und für normale Menschen unlesbar.

Was man also macht, ist, die Werte der Objekte in twcfg.txt zu ändern und dann tw.cfg "neu zu kompilieren". Sie werden sehen, dass es angesichts der Art des Programms nicht viele Optionen zum Ändern gibt. Hier sind die ersten Zeilen unseres Setups:


ROOT           =/usr/sbin
POLFILE        =/etc/tripwire/tw.pol
[...] 
LATERPROMPTING =false
[...]

Auch hier sind Sie eingeladen, die twcfg.txt Datei als root zu öffnen und nach Ihren Wünschen zu optimieren.

tw.pol

Die Geschichte zwischen Binär und Text gilt auch hier, daher werden wir sie nicht noch einmal sagen. Stattdessen konzentrieren wir uns auf einige gut zu wissende Werte in der twpol.txt Datei, die Sie vielleicht nur ändern möchten. Die allgemeine Syntax ist die gleiche wie oben. Ein Wert, den Sie hier und in twcfg.txt ändern möchten (dort sehen Sie ihn als ROOT-Objekt, hier als TWBIN), ist der Ort, an dem sich die ausführbaren Dateien befinden.

Wenn Sie mit einem Paketmanager wie aptitude oder dnf installiert haben, wird der Speicherort höchstwahrscheinlich /usr/sbin sein. Aber wenn Sie aus dem Quellcode installiert haben, da nicht jeder, wie Sie gesehen haben, Tripwire für seine Distribution packt, haben Sie vielleicht nach /usr/local installiert, und wenn Sie diese Speicherorte nicht ändern, wird nichts so funktionieren, wie es sollte. Wir empfehlen jedoch die Verwendung von Symlinks:


ln -s /usr/local/bin/tripwire /usr/sbin/tripwire 

Wie bei jeder solchen Datei definiert die Richtlinie, welche Speicherorte in Ihrem System von welcher Bedeutung sind (z. B. ist /boot kritisch). Dies ist die Essenz dessen, was eine Richtliniendatei tut. Sie können die Werte natürlich ändern, aber wir empfehlen Vorsicht und das aus einem sehr guten Grund. Der Abschnitt "Kritische Sicherheit" ist z. B. wie folgt definiert:


SEC_CRIT        =$(IgnoreNone) -SHa ; # Critical files that cannot change

Nachdem alle Sicherheitskategorien definiert wurden, definiert twpol.cfg die Sicherheitswichtigkeit jedes wichtigen Standorts, wie oben gezeigt. Die Richtliniendatei ist fast 300 Zeilen lang, aber gut kommentiert, um Ihnen das Leben zu erleichtern. Hoffentlich wird Ihre erste Stolperdrahtinstallation nicht in die Produktion gehen, also nehmen Sie sich etwas Zeit, um mit Richtliniendefinitionen zu experimentieren, bis Sie die richtige Stelle gefunden haben.

Abschließende Gedanken

Diese Reise (!) in das IDS-Land war kurz, wenn man bedenkt, wie viele Dinge man über das Thema, Anwendungsfälle, Beispiele aus der Praxis, Tests und so weiter lernen kann. Wir wollten Ihnen nur Stolperdraht und Intrusion Detection Systeme im Allgemeinen vorstellen und überlassen es Ihnen, darüber nachzudenken, welche Sicherheitsszenarien an Ihrem Standort am besten geeignet sind.

Verwandte Artikel: