Intrusion Detection am Beispiel von Snort (Teil 2)
An dieser Stelle sollen nicht die Vorteile von Open-Source-Software diskutiert werden. Dieser oftmals aussichtslose K(r)ampf hat schon Freundschaften gespalten und zu sinnlos langen Diskussionen geführt. Vielmehr ist die freie Verfügbarkeit von Snort in Bezug auf Intrusion Detection-Systeme ein wichtiger Kostenfaktor. Hier bietet Snort gegenüber kommerziellen Intrusion Detection-Systemen einen klaren Vorteil, nämlich die Tatsache, dass nur die Kosten für die Installation, Konfiguration und Pflege des Systems zu beachten sind. Kommerzielle Systeme bringen zusätzlich noch den Kostenfaktor des Kaufs mit sich.
Generell sollten False Positives mit dem Hinzufügen einer entsprechenden Signatur oder dem Anpassen der Anomaliedaten behoben werden, da sonst die Gefahr besteht, dass man sich an die falschen Alarmmeldungen gewähnt. Das hat vielleicht zur Folge, dass man zwischen vielen Falschmeldungen einmal wichtige und tatsächliche Angriffe überliest. Zudem sollte man auch bedenken, dass man als Administrator eines Tages mal nicht im Hause ist und eine andere Person mit der Einsicht der Daten beauftragt. Diese weiß vielleicht nicht, dass die entsprechende Fehlmeldung nicht beachtenswert ist und wird eventuell versuchen, Gegenmaßnahmen einzuleiten oder informiert einfach seinen Vorgesetzten oder eine andere dritten Person. Man stelle sich die Standpauke vor, die einem Administrator dann blühen dürfte.
Zu guter Letzt darf man auch den Fakt nicht vergessen, dass ein Angreifer sich die Generierung eines False Positive zu Nutze machen könnte, indem er die Protokolldaten zum Überlaufen bringt. Dieser Gedanke mag einem zwar abwegig erscheinen, denn woher soll der Angreifer wissen, dass das System einen Fehlalarm auslöst, aber man sollte diesen Fakt trotzdem nicht außer Acht lassen, denn wer weiß, über welche Wege Angreifer an ihre Informationen gelangen. Das Überlaufen der Protokolldaten zu verhindern ist zudem eine Frage, die schon beim Aufbau des Intrusion Detection Systems geklärt werden sollte, da ein Angreifer das Überlaufen auch durch eine Unmenge tatsächlicher Angriffe auslösen könnte.
4.2False Negatives
False Negatives bedeuten, dass dem Administrator ein tatsächlicher Angriff durch die Lappen gegangen ist, weil er entweder vergessen hat, eine entsprechende Regel zu entwerfen oder weil es sich um einen Angriff handelt, der zum Zeitpunkt der Einrichtung des Intrusion Detection Systems noch nicht bekannt war. Der Grund für False Positives ist also im allgemeinen analytischer Natur. Entweder hat der Administrator einen Angriff schlichtweg übersehen oder er hat sich nicht auf dem Laufenden gehalten über neue Angriffstechniken. Hier wird deutlich, dass auch ein IDS ständige Wartung benötigt, genauso wie eine Firewall. Das Informieren über neue Einbrüche, neue Angriffstechniken und neue Angriffsprogramme ist genauso elementar wie das entsprechende Anpassen der Signaturdatenbank. Ein schlecht gepflegtes Intrusion Detection System bietet nach gewisser Zeit ohne Wartung ebenso wenig Garantie für die Entdeckung neuer Angriffe wie eine schlecht gewartete Firewall Schutz vor eben diesen Angriffen bietet.
5Installation
Die Installation von Snort auf Unix-ähnlichen Systemen gestaltet sich relativ einfach. Zuerst werden die Quellen der neuesten Version von Snort13 sowie die Quellen der Libpcap14 benötigt. Letztere wird von Snort für das Abfangen der Pakete auf unterster Ebene verwendet. Nun sollten die beiden Tarballs in ein persönliches Arbeitsverzeichnis kopiert werden. Dort packt ein
<em>tar zxf snort-1.7.tar.gz</em> [RETURN]
die Quellen von Snort in ein Unterverzeichnis aus. Nachdem in letzteres gewechselt wurde, zeigt ein
./configure -help
die diversen Konfigurationsmöglichkeiten zum Übersetzen. Interessant dürften hier die unterschiedlichen Unterstützungen für die verschiedenen Datenbanksysteme und die OpenSSL-Bibliothek, sowie die 'Flexible Responses' und die Alarmierung via SMB15 sein. Einige dieser Optionen verlangen nach weiteren include-Dateien, die in den Quellcode-Distributionen der jeweiligen Programme enthalten sind, beispielsweise werden für die MySQL-Unterstützung die MySQL-Headerfiles und ihre Clientbibliothek benötigt16. Falls die Flexible Responses verwendet werden sollen - diese erweitern Snort um eine Intrusion Response Komponente (siehe dazu Abschnitt 3.4) - wird zusätzlich die Libnet benötigt17. Wenn die Software für die jeweiligen Extras vorhanden, kompiliert und installiert ist, kann mit dem Übersetzungsvorgang für Snort begonnen werden:
./configure -prefix=/usr/local -enable-smbalerts make
Nach erfolgreichem Kompilieren installiert ein
make install
als Superuser Snort und seine Komponenten nach /usr/local. An diesem Punkt angelangt, kommen wir nun zum nächsten wohl wichtigsten Schritt, der Konfiguration.
Referenzen
[7] Silicon Defense: Homepage, http://www.silicondefense.com/
Fußnoten
8 Der Leser verzeihe den Autoren den Sarkasmus, aber wir haben schon genug Erfahrung mit solchen Leuten gemacht. Hoch lebe die MCSE-Gehirnwäsche ;)
9Statistical Packet Anomaly Detection Engine
10Simple Network Markup Language
11ODBC steht für Open DataBase Connectivity und stellt ein standardisiertes Interface dar, welches eine Abstraktion von der dahinterstehenden Datenbank ermöglicht.
12PHP bedeutet PHP Hypertext Preprocessor und ist eine freie und mittlerweile sehr verbreitete Skriptsprache.
14eine Packet Capture Library http://www.tcpdump.org/
15WinPop-Up Message

