Intrusion-Detection-System Snort

Netzwerke wirkungsvoll absichern

15.09.2015 von Thomas Joos
Intrusion-Detection-Systeme (IDS) wie Snort analysieren den Netzwerkverkehr und erkennen unautorisierte Zugriffe. Wie zeigen, wie Sie Snort konfigurieren und Regeln erstellen, um solche Angriffe abzuwehren.

So funktioniert Snort

Die Open-Source-Software-Snort überwacht verdächtigen Netzwerkverkehr, indem es die Daten der lokalen Netzwerkkarte des Servers oder Rechners analysiert. Snort betreiben Sie entweder auf einem eigenständigen Server, einem Rechner im Netzwerk oder über eine Live-DVD wie Security Onion. Während der Analyse des Netzwerkverkehrs vergleicht Snort die Daten mit denen bekannter Angriffe. Dazu verfügt die Open-Source-Anwendung über Regeln, die Angreifer erkennen können. Sobald ein potenzieller Angriff bekannt wird, zeigt Snort Warnungen an. Damit das Programm auch aktuelle Angreifer im Netzwerk erkennt, müssen Sie die Signature-Dateien aktualisieren, genauso wie bei Antivirenprogrammen.

Snort
Snort im Praxiseinsatz
Die Installation von Snort besteht aus dem Bestätigen weniger Fenster.
Snort im Praxiseinsatz
Snort benötigt noch WinPcap um den Datenverkehr im Netzwerk mit zu schneiden.
Snort im Praxiseinsatz
Nach der Installation von Snort müssen Sie noch einige Aktualisierungen vornehmen und die Regeldateien in das Verzeichnis kopieren.
Snort im Praxiseinsatz
Mit Notepad++ bearbeiten Sie die Konfigurationsdatei von Snort optimal.
Snort im Praxiseinsatz
Mit Notepad++ können Sie Textteile ersetzen und Snort konfigurieren.
Snort im Praxiseinsatz
Snort verwenden Sie in der Befehlszeile. Mit snort -W lassen Sie die Interfaces anzeigen
Snort im Praxiseinsatz
Mit der Option -T können Sie die Snort-Konfiguration testen
Snort im Praxiseinsatz
Nach der Konfiguration beginnt Snort mit seinen Tests.

So installieren Sie Snort

Die Installation auf Windows-Rechnern ist recht einfach. Sie laden die Snort-Installationsdatei auf den Windows-Rechner, auf dem Sie Snort installieren wollen. Zusätzlich laden Sie im Download-Bereich von Snort auch die aktuellen Regeln für die eingesetzte Version herunter. Damit der Download freigeschaltet wird, müssen Sie sich mit einer E-Mail-Adresse und einem Kennwort registrieren. Der Download der Regeldateien hat eine Größe von etwa 34 MByte, was zeigt, dass einige Daten enthalten sind.

Die Regeldateien liegen in gepackter Form vor. Außerdem brauchen Sie die kostenlose Open-Source-Erweiterung WinPcap 4.1. Diese Erweiterung wird auch von vielen Sniffer-Programmen benötigt, zum Beispiel von WireShark.

Für die Installation sind die Installationsdateien von Snort und die erstellten Regeln erforderlich. Nach dem Download der beiden Dateien starten Sie die Installation. Bei der Auswahl der Komponenten können Sie alle ausgewählten Funktionen installieren lassen.

Die Installation von Snort besteht aus dem Bestätigen weniger Fenster.

Nach der Installation erhalten Sie noch die Information, dass Sie WinPcap 4.1.1 benötigen. Die Erweiterung können Sie nachträglich installieren.

Snort braucht WinPcap, um den Datenverkehr im Netzwerk mitzuschneiden.

An dieser Stelle ist die Installation abgeschlossen, Sie müssen aber noch die Regeln für Snort integrieren. Wie das geht, zeigen wir Ihnen im nächsten Abschnitt.

Regeln für Snort aktualisieren

Die Regeldateien laden Sie direkt auf der Download-Seite von Snort herunter. Die ausführbaren Dateien befinden sich im Unterverzeichnis \bin des Snort-Installationsverzeichnisses. Im Verzeichnis \Logs speichert Snort wichtige Protokolldateien. Die Regeln zum Entdecken von Angreifern sind im Verzeichnis \rules gespeichert.

Entpacken Sie danach das Archiv auf dem Rechner. Im entpackten Regelverzeichnis finden Sie jetzt das Unterverzeichnis Rules. Öffnen Sie das Verzeichnis, und kopieren Sie alle Regeldateien in das Verzeichnis Rules des Snort-Installationsverzeichnisses.

Danach kopieren Sie die Dateien aus dem Verzeichnis \etc des entpackten Archivs in das Verzeichnis \etc der Snort-Installation.

Nach der Installation von Snort müssen Sie noch einige Aktualisierungen vornehmen und die Regeldateien in das Verzeichnis kopieren.

Snort konfigurieren - Netzwerke hinterlegen und mehr

Um Snort zu konfigurieren, verwenden Sie die Datei snort.conf im Verzeichnis \etc des Snort-Installationsverzeichnisses. Die Datei können Sie mit einem normalen Editor bearbeiten. Zu empfehlen ist die Open-Source-Software Notepad++, da diese die Zeilen nummeriert und die Datei besser anzeigen kann.

Mit Notepad++ bearbeiten Sie die Konfigurationsdatei von Snort optimal.

Die Konfigurationsdatei besteht aus neun Bereichen. Diese werden zu Beginn der Datei aufgelistet. Im ersten Schritt müssen Sie im Bereich 1 die IP-Adressen in Ihrem Netzwerk sowie die Subnetzmaske angeben.

Suchen Sie dazu nach der Zeile "ipvar HOME_NET any". Ersetzen Sie das Wort "any" durch die IP-Adresse und das Subnetz, zum Beispiel mit: "ipvar HOME_NET 192.168.178.0/24"

Danach legen Sie eine Zeile weiter unten fest, welche IP-Adressen nicht zu Ihrem Netzwerk gehören. Hier verwenden Sie am besten alle Adressen und Subnetze, außer Ihrem internen Netzwerk. Dazu bearbeiten Sie die Zeile "ipvar EXTERNAL_NET any". Auch hier ersetzen Sie das Wort "any". Verwenden Sie die Variable "!$HOME_NET", also: "ipvar EXTERNAL_NET !$HOME_NET".

Optional haben Sie jetzt noch die Möglichkeit, die IP-Adressen von Anwendungsservern zu hinterlegen, wie SQL, SMTP und Webserver. Sie können an dieser Stelle aber auch jeweils die Variable "$Home_NET" belassen. Auf Wunsch lassen sich auch die erlaubten Ports für Webserver anpassen. Diese finden Sie in der Zeile "List of ports you run web servers on".

Ein wichtiger Bereich liegt in der Zeile 104, wenn Sie mit Notepad++ arbeiten. Hier legen Sie fest, in welchem Verzeichnis die Regeln für das Finden von Angreifern gespeichert werden sollen. Sie müssen an dieser Stelle das komplette Verzeichnis angeben, also zum Beispiel "C:\Snort\rules". Die Zeile hat dann die Syntax: "var RULE_PATH c:\snort\rules". Sie finden die Zeile im Abschnitt "Path to your rules files"

Im gleichen Abschnitt kommentieren Sie mit "#" die Zeile "var SO_RULE_PATH ../so_rules" aus, sodass diese nicht mehr angewendet wird. Die Zeile "var PREPROC_RULE_PATH ../preproc_rules" müssen Sie ebenfalls bearbeiten und den Pfad zu den Regeln angeben. Die Syntax ist:

var PREPROC_RULE_PATH c:\snort\preproc_rules

Stellen Sie sicher, dass sich die Regeln auch in den entsprechenden Verzeichnissen befinden. Anschließend müssen Sie im nächsten Abschnitt für die beiden Variablen der White Lists und Black Lists ebenfalls das Verzeichnis zu den Regeln festlegen, in diesem Beispiel also "c:\snort\ rules". Die Syntax der beiden Zeilen lautet:

# If you are using reputation preprocessor set thesevar WHITE_LIST_PATH c:\snort\rulesvar BLACK_LIST_PATH c:\snort\rules

An dieser Stelle haben Sie die Konfiguration des ersten Abschnitts abgeschlossen.

Im zweiten Abschnitt ist das Protokollverzeichnis zu konfigurieren. Suchen Sie dazu nach der Zeile "config logdir". Diese befindet sich in Zeile 182 von Notepad++. Die Zeile ist durch ein "#" deaktiviert. Dieses Zeichen müssen Sie entfernen und das Protokollverzeichnis ausgeben. Die Zeile hat die Syntax:

config logdir: c:\snort\log

Danach suchen Sie die Zeile:

# path to dynamic preprocessor librariesdynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/

Diese befindet sich in Notepad++ in der Zeile 242. Den Wert hinter "directory" müssen Sie so anpassen, dass er auf das Verzeichnis "C:\Snort\lib\snort_dynamicpreprocessor" zeigt. Die Zeile hat dann folgende Syntax:

dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor

Auch die nächste Zeile müssen Sie so bearbeiten, dass diese auf das korrekte Verzeichnis zeigt. Überprüfen Sie, ob das Verzeichnis mit Ihrer Snort-Installation übereinstimmt. In der zweiten Zeile achten Sie außerdem darauf, dass die Datei "sf_engine.dll" eingetragen ist:

dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll

Die nächste Zeile (249) Zeile "dynamicdetection directory /usr/local/lib/snort_dynamicrules" können Sie wieder mit "#" auskommentieren.

Im Abschnitt 5 sollten Sie einige Zeilen mit "#" auskommentieren:

Zeile 261: # preprocessor normalize_ip4Zeile 262: # preprocessor normalize_tcp: block, rsv, pad, urp, req_urg, req_pay, req_urp, ips, ecn streamZeile 263: # preprocessor normalize_icmp4Zeile 264: # preprocessor normalize_ip6Zeile 265: # preprocessor normalize_icmp6

Suchen Sie danach nach der Zeile "# Portscan detection" Standardmäßig sind Portscans an dieser Stelle deaktiviert. Entfernen Sie die Raute (#), damit Portscans durchgeführt werden. Die Zeile 413 sieht dann folgendermaßen aus:

preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { low }

Erstellen Sie danach im Verzeichnis "C:\Snort\rules" zwei Textdateien mit den Bezeichnungen "white.list" und "black.list". In diesen beiden Dateien können Sie später in jeder Zeile IP-Adressen für White Lists und Black Lists pflegen. Die beiden Dateien müssen Sie in der Config-Datei noch hinterlegen. Dazu öffnen Sie den Abschnitt "# Reputation preprocessor" ab Zeile 501. Bearbeiten Sie die beiden Zeilen 506 und 507 so, dass der Name, der von Ihnen erstellten Datei verwendet und die Syntax von Snort beibehalten bleibt. Die Zeilen sehen dann so aus:

whitelist $WHITE_LIST_PATH\white.list, \blacklist $BLACK_LIST_PATH\black.list

Ab Zeile 540 finden Sie den Abschnitt "# site specific rules". Hier sollten Sie bis Zeile 658 in allen Zeilen das Slash-Zeichen (/) durch Back-Slash (\) ersetzen. Das können Sie in Notepad über Suchen\Ersetzen durchführen.

Mit Notepad++ können Sie Textteile ersetzen und Snort konfigurieren.

Anschließend aktivieren Sie im Bereich 8 der Konfigurationsdatei die drei Zeilen:

include $PREPROC_RULE_PATH/preprocessor.rulesinclude $PREPROC_RULE_PATH/decoder.rulesinclude $PREPROC_RULE_PATH/sensitive-data.rules

Speichern Sie die Datei ab. Sie können natürlich noch weitere Einstellungen abändern, um Snort an Ihre Bedürfnisse anzupassen.

Snort testen und Netzwerke überprüfen

Öffnen Sie im ersten Schritt eine Befehlszeile mit Administratorrechten und wechseln in das Snort-Installationsverzeichnis und hier in das Verzeichnis \bin. Mit Snort.exe -W werden die Interfaces angezeigt, mit denen Sie im Netzwerk nach Angreifern suchen können.

Snort verwenden Sie in der Befehlszeile. Mit snort -W lassen Sie die Interfaces anzeigen.

Mit

snort -i <Nummer der Karte> -c c:\snort\etc\snort.conf -T

testen Sie die Konfigurationsdatei und prüfen so, ob Snort generell funktioniert.

Mit der Option -T können Sie die Snort-Konfiguration testen.

Wenn der Test erfolgreich abgeschlossen ist, erhalten Sie eine entsprechende Meldung. Snort ist jetzt einsatzbereit. Im Anschluss können Sie überprüfen, ob Snort auch Alarme melden kann, wenn ein Angreifer gefunden wird. Dazu öffnen Sie die Datei "local.rules" im Verzeichnis "C:\Snort\rules". Tragen Sie unterhalb der Beschreibung die folgenden Zeilen ein:

Alert icmp any any -> any any (msg:"Snort Test"; sid:1000000001;)Alert udp any any -> any any (msg:"Snort Test UDP"; sid:1000000002;)Alert tcp any any -> any any (msg:"Snort Test TCP"; sid:1000000003;)

Speichern Sie die Datei, und starten Sie den Scanvorgang mit:

snort -i <Nummer der Karte> -c c:\snort\etc\snort.conf -A console

Snort beginnt jetzt mit den Tests des Netzwerks und sollte während dieser Testphase entsprechende Informationen anzeigen. (hal)