Samstag, 31. Juli 2010 |
In dieser Folge wird die Umsetzung der Beispiele aus About Security #47 mit dem Intrusion-Detection-System Snort beschrieben. Snort ist ein netzwerkbasiertes Open-Source-Intrusion-Detection-System, das auch das Packet-Sniffing und Packet-Logging (Paketprotokollierung) beherrscht. Während beim Packet-Sniffing empfangene Pakete auf dem Bildschirm ausgegeben werden, werden sie beim Packet-Logging auf einem Laufwerk protokolliert. Beim Betrieb als Intrusion-Detection-System werden die empfangenen Pakete anhand vorgegebener Signaturen (bei Snort Regeln genannt) sortiert, bewertet und weiterverarbeitet. Ab Version 2.3.0 RC1 kann Snort im Inline-Modus betrieben werden. Dabei werden die Pakete von iptables übernommen und iptables durch Snort-Regeln unterstützt.
N E U ! Security
aktuell
Täglich aktuelle Security-Infos!
Snort-Regeln sind textbasiert und werden, in Gruppen
zusammengefasst, in
einem Unterverzeichnis von Snort gespeichert. Zum Beispiel enthält die
Datei web-php.rules die Regeln für Angriffe
und Exploits
für PHP-Anwendungen.
Eine Regel besteht aus zwei Teilen: dem Regel-Header und den Regel-Optionen. Ihr Aufbau soll an folgender Regel zur Erkennung des Heraufladens von PHP-Dateien (zweites Beispiel in About Security #47) erklärt werden:
Regel-Header:
alert tcp any ->
Regel-Optionen:
(msg:"WEB-PHP Forum upload.php Heraufladen einer PHP-Datei";
flow:to_server,established;
uricontent:"/forum/upload.php"; content:"bild="; content:".php";
reference:AboutSecurity47;
classtype:web-application-attack;
sid:1234567890;
rev:1;)
Regel-Header:
alert log und pass.
tcp
wird in der Snort-Konfiguration definiert und standardmäßig auf any
gesetzt. any -> werden
und in der Snort-Konfiguration
definiert. Regel-Optionen:
msg: flow:to_server,established uricontent:"/forum/upload.php";
content:"bild="; content:".php"; /forum/upload.php
wird nur im URI-Abschnitt gesucht, dies erspart die Suche in der
Nutzlast der Pakete. bild= und .php
wird im gesamten Paket gesucht. reference:AboutSecurity47; classtype:web-application-attack;
classtype enthält eine
Klassifizierung, um die Bedeutung des Angriffs einzuschätzen. Jeder
Klassifizierung ist eine Standardpriorität zugeordnet: hoch, mittel
oder niedrig. sid:1234567890; sid enthält die eindeutige
Snort-Regel-ID zur Identifikation der Regel rev:1; rev enthält die Versionsnummer
der Regel
Zur Erkennung des Pufferüberlaufs im POP3-Server (drittes Beispiel in
About Security #47)
muss nach dem Befehl USER gesucht werden,
gefolgt von
einem Parameter, der länger als 50 Zeichen ist. Dies
übernimmt folgende Regel:
alert tcp any -> 110
(msg:"POP3 USER Pufferueberlauf";
flow:to_server,established;
content:"USER"; nocase; isdataat:50,relative;
reference:AboutSecurity,47;
classtype:attempted-admin;
sid:1234567891;
rev:1;)
Die bisher nicht beschriebenen Felder haben folgende Bedeutung:
nocase; isdataat:50,relative; relative) relativ zum Ende des
vorhergehenden Matches (d.h. hier: 50 Bytes nach dem Auftreten von USER).
Zusätzlich kann über einen regulären Ausdruck (Schlüsselwort pcre:)
die Art der gefundenen Daten geprüft werden.
Die Regel zur Erkennung des Diretory-Traversal-Angriffs (erstes Beispiel aus About Security #47) wird entsprechend gebildet. Wie genau, überlasse ich jedem Leser als kleine "Hausaufgabe". Die Lösung gibt es im Security-Forum.
Bei Bedarf kann in einer späteren Folge ausführlicher auf Snort und seine Regeln eingegangen werden. In der nächsten Folge geht es um eine Erweiterung der Intrusion-Detection-Systeme: Intrusion-Prevention-Systeme.
Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!
About Security – Übersicht zum aktuellen Thema "Intrusion Detection und Prevention Systeme"