59872

So konfigurieren Sie Snort und erstellen IDS-Regeln

21.10.2009 | 09:35 Uhr |

Wir zeigen, wie Sie bei dem Intrusion-Detection-System Snort die Erkennungsregeln pflegen und eigene Signaturen für Einbruchsversuche erstellen.

Rules: Einblick in die Snort Rules DoS von der Community.
Vergrößern Rules: Einblick in die Snort Rules DoS von der Community.
© 2014

In diesem Artikel unserer Schwesterpublikation tecchannel.de zeigen wir Ihnen, wie Sie das bekannte IDS Snort an Ihre Bedürfnisse anpassen. Denn Snort kann nur mit einer individuellen Einstellung seine ganze Wirkung entfalten. Die hier vorgestellten Installationshinweise und Konfigurationsvorschläge müssen Sie an Ihre konkrete Situation anpassen.

Nach der Installation sollten Sie eine sogenannte reconfiguration durchführen und die wichtigen Einstellungen im Terminal anpassen. Danach geht es an die Bearbeitung der Regeln.

Snort ist ein IDS, das fast ausschließlich auf Regeln basierend arbeitet. Bereits mit der ersten Installation werden zahlreiche Regeln mitgeliefert. Was aber besagen diese und wie passt man sie an?

Zunächst einmal ist es wichtig, dass die Rules in einer Zeile geschrieben stehen müssen, um von Snort als Rules erkannt zu werden. Man unterscheidet bei den Regeln zwischen zwei Teilen, einem allgemein gehaltenen „Rule Header“ und einer genaueren Spezifikation durch „Rule Options“. Im Header findet Snort die IP- und Port-Angaben von Netzwerkpaketen, die das IDS näher untersuchen soll. Zudem definiert man hier, was Snort als erste Reaktion durchführen soll, sofern eine Signatur erkannt wurde. Allgemein sieht der Header folgendermaßen aus:

action protocol source_ip_address port direction destination_ip_address port

Für action bieten sich folgende Reaktionen an: alert (alarmieren), pass (ignorieren) oder log (protokollieren). Anschließend ist definiert, welches Protokoll das zu untersuchende Paket verwendet. Normalerweise handelt es sich hierbei um TCP, UDP oder ICMP Traffic. Danach werden die IP Adressen, die Ports und die Richtung des Pakets angegeben, auf das Snort reagieren soll.

Konkret bedeutet dies etwa für eine Alarmmeldung bei Angriffen der Backdoor Trinity, die ihre Daten auf Port 33270 sendet:

alert tcp $EXTERNAL_NET any -> $HOME_NET 33270

Trifft die Grobklassifikation über den Rule Header zu, definieren die Rule Options weitere Details der Signatur und der eventuell auszulösenden Aktion. Die Rule Options werden durch einfache Klammern vom Rule Header getrennt. Schlüsselwort und die durch einen Doppelpunkt getrennten Werte bilden die einzelne Option, mehrere Options werden durch einen Strichpunkt voneinander getrennt:

(Keyword1 : value1 ; Keyword2 : value 2; …)

Im Detail sieht das dann etwa so aus:

(msg:"BACKDOOR trinity connection attempt"; flow:to_server,established; content:"!@|23|"; depth:3; reference:cve,2000-0138; reference:nessus,10501; classtype:attempted-admin; sid:1843; rev:6;)

Die Options sind sehr vielfältig und in der Dokumentation von Snort eingehend erklärt. Im Beispiel ist als Erstes die Option msg zu sehen. Sie definiert in ihrem Value-Teil die Meldung, die in das Logfile geschrieben wird. Das Keyword flow definiert im Beispiel, dass das Paket über eine bereits aufgebaute Verbindung zu einem Server unterwegs ist. Die Option depth stellt eine Besonderheit dar: Sie ist ein Modifier für das vorangegangene content -Keyword. depth weist hier Snort an, nur die ersten drei Bytes des Pakets zu inspizieren. Über reference können weitere Informationen externer Quellen in das Logfile eingebunden werden. So wird im Beispiel oben ein Link zu nessus.org in das Log eingebunden, der auf ein Dokument mit der ID 10501 verweist.

0 Kommentare zu diesem Artikel
59872