Login
Newsletter
Werbung

Fr, 14. Dezember 2001, 00:00

Intrusion Detection am Beispiel von Snort (Teil 3)

Da Snort in erster Linie ein regelbasiertes IDS ist, benötigt es eine Art Wissensbasis, eine »Datenbank«, in der die sogenannten Signaturen definiert sind. Als Signaturen werden in diesem Kontext die Charakteristika eines Pakets bezeichnet, die dieses Paket und seine Eigenschaften (z.B. Flags, Source- und Destination-Port und/oder -IP-Adresse) oder 'bösartig' definieren. Ohne eine solche Wissensbasis ist Snort quasi blind, es kann zwar die Pakete von der Netzwerkkarte dekodieren, weiß aber nicht, welche dieser Pakete erwünscht sind und welche nicht.

6 Die Konfiguration von Snort

Wie sieht nun eine solche Wissensbasis aus? Die Wissensbasis ist eine einfache Textdatei, das sich aus Regeln19 (im folgenden auch rules genannt) zusammensetzt, anhand derer Snort weiß, wie es mit den einzelnen Paketen zu verfahren hat. Wie wir sehen, dreht sich bei der Konfiguration von Snort alles um solche Regeln. Betrachten wir nun den Aufbau und die Funktionsweise solcher rules.

6.1 Aufbau einer Rule

Eine Regel setzt sich aus zwei Teilen zusammen, dem sogenannten rule header und den rule options. Da Snort nicht mit Zeilenumbrüchen innerhalb der rules umgehen kann, ist es enorm wichtig, folgendes zu beachten:

Regeln müssen immer in einer Zeile stehen!

Snort beendet sich andernfalls mit einer entsprechenden Fehlermeldung und verweigert die Arbeit.

6.1.1 Der Rule Header

Der Rule Header definiert, was geschehen soll, wenn eine bestimmte Signatur in einem Paket gefunden wird und trifft eine grobe Vorauswahl über Protokoll, IP-Adresse und Portnummer:

alert
action


TCP

protocol


any any

Source IP-AddressPort


->

direction

!192.168.0.0/24 :1024

Destination IP-Address Port
action
hier stehen folgende Optionen zur Verfügung: Alarmieren (alert), Protokollieren (log) und Ignorieren (pass). Es können auch eigene actions definiert werden (siehe 6.2.2).
protocol
definiert, welches Protokoll beobachtet werden soll; zur Zeit werden die 3 gängigsten Protokolle TCP, UDP und ICMP unterstützt.
Portnumber & IP-Address
Zuerst wird die Source IP-Adresse in CIDR20-Notation angegeben, das (!) dient hier als Negationsoperator und definiert so alle IP-Adressen, die nicht 192.168.0.0/24 entsprechen. Als Portnummer kann jede Zahl zwischen 1 und 65535 gewählt werden, Bereiche werden mit dem (:)-Operator gekennzeichnet (hier alle Ports über 1024).(any) definiert alle gültigen Werte für Port und/oder IP-Adresse. Nach dem direction-Operator wird noch die Destination IP-Adresse und Portnummer angegeben.
direction
Der direction-Operator legt die Richtung des Traffics fest; unidirektional (->) oder bidirektional (<>)

Sicherlich läßt sich über den Sinn und Unsinn des oben aufgeführten rule headers streiten, doch er soll hier nur als Beispiel und Veranschaulichung der diversen Operatoren dienen. Mit dem rule header bekommt Snort schon einen guten Einblick in die Wünsche des Netzwerkadministrators, doch die eigentlichen Gefahren entgehen Snort, hierfür ist ein Blick in die jeweils spezifischen Details der einzelnen Pakete notwendig (Data Segment, Flags).

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung