Sicherheit muss nicht teuer sein

11.11.2004
Von Tanja Möhler
"Snort" ist eine preisgünstige Open-Source-Alternative zu kommerziellen Intrusion-Detection-Lösungen.

Lösungen für das Erkennen von Einbruchsversuchen im Netz, neudeutsch Intrusion Detection Systems (IDS), gehören in Unternehmen fast schon zur Grundausstattung. Das Open-Source-Produkt Snort beweist, dass ein solcher Schutz nicht teuer sein muss.

Das Tool läuft auf x86-Systemen unter anderem unter den Betriebssystemen Linux, Windows, FreeBSD, OpenBSD, NetBSD, PA-Risc HP-UX und Sparc Solaris. Die Installation ist relativ einfach: Hierzu müssen die neueste Version von Snort und die entsprechende Library zur Paketüberwachung, "libcap" für Linux und Unix-Systeme und "winpcap" für Windows-Systeme, im Internet unter http://www.snort.org heruntergeladen und installiert werden. Da die Datenmengen während des Betriebs sehr umfangreich ausfallen können, sollte ausreichend Platz auf der Festplatte vorhanden sein. Auch die Netzwerkkarte (NIC) muss leistungsfähig sein, damit alle Daten korrekt eingesammelt werden können. Als Faustregel gilt: Für ein Netzwerk mit 100 Mbit/s Datendurchsatz sollte die Netzwerkkarte ebenfalls dieses Tempo unterstützen.

Leistungsstarke Netzwerkkarte erforderlich

Der Netzwerkadapter muss in den promiskuren Betriebsmodus versetzt werden, da er sonst nur Pakete akzeptiert, die an ihn gerichtet sind, und alle anderen ignoriert. Wäre dies der Fall, könnte das IDS nur Angriffe erkennen, die sich speziell gegen den Host richten, auf dem es installiert ist. Im promiskuren Modus dagegen werden alle Pakete verarbeitet. Zur Fernwartung des Systems sind unter Linux und Unix die Secure Shell (SHH), bei Apache Secure Sockets Layer (SSL) und bei Windows die Terminal Services erforderlich. Darüber hinaus ist eine zweite Ethernet-Schnittstelle sinnvoll. So lässt sich ein Interface für die Netzwerk-Connectivity nutzen, während das andere für das eigentliche Sniffing zuständig ist.

Snort kann als reiner Packet-Sniffer, als Packet-Logger oder als Network Intrusion Detection System (NIDS) agieren. Das Open-Source-Tool besteht aus den vier aufeinander aufbauenden Hauptkomponenten Sniffer, Präprozessor, Detection Engine und einem für die Ausgabe zuständigen Plugin. Der Packet-Sniffer liest die Pakete des Netzwerkverkehrs mittels libcap oder wincap und protokolliert sie. Mit der Logging-Funktion lassen sich die Daten in einer Datei sammeln, in Verzeichnissen sortieren und für eine spätere Weiterverarbeitung speichern. Sie dienen der Netzwerkanalyse, Fehlerbehebung oder der Leistungsanalyse.

Dabei legt der Administrator fest, welche Daten aufgezeichnet werden und wo und wie (Text- oder Binärform) diese abzulegen sind. Werden die Daten als binäre Datei gespeichert, lassen sich die Datenpakete wesentlich schneller sammeln, da die Software sie nicht in ein vom Administrator lesbares Format umwandeln muss.

Die Präprozessoren nehmen die Paketdaten auf und verarbeiten sie noch vor der eigentlichen Analyse. Dabei werden die gesammelten Pakete auf ein bestimmtes Verhalten untersucht und einem Verhaltenstyp zugeordnet. Hier entscheidet sich, ob ein Datenrahmen beobachtet, verworfen, modifiziert oder ob ein Alarm ausgelöst wird. Eine weitere Aufgabe der Präprozessoren besteht darin, HTTP-, Telnet-, FTP- und RPC-Traffic in ein lesbares Format zu übertragen.

Damit fragmentierte Pakete die mit Mustererkennung arbeitende Einbruchsüberwachung nicht umgehen können, verfügt Snort über den "Frag-2"-Präprozessor, der die Bruchstücke wieder zusammenbaut, bevor er sie an die Detection Engine weiterleitet. Der "Stream-4"-Präprozessor macht Snort zu einem Stateful-System, das erkennt, wenn ein Eindringling versucht, das Betriebssystem mit Hilfe von Fingerprinting-Techniken abzufragen.

False-Positives lassen sich in Grenzen halten

Snort agiert auch auf unregelmäßige und daher verdächtige Scan-Versuche, etwa mit "Stealth FIN Scans". Darüber hinaus stehen seit Version 2.0.0 zwei Portscan-Präprozessoren zur Verfügung. Deren Standardkonfiguration führt allerdings in vielen Fällen zu falschbegründeten Fehlermeldungen (False-Positives), vor allem wenn DNS-Server und Web-Proxy-Server im Einsatz sind. Dies lässt sich umgehen, indem man die Portscan-Präprozessoren so konfiguriert, dass sie Traffic von bestimmten Hosts ignorieren. Hierzu kann beim Start von Snort die BPF-Filtersprache gewählt oder eine Pass-Regel für den Durchlass solcher Daten eingerichtet werden.

Detection Engine: Herzstück mit Feintuning-Option

Die Detection Engine ist das Herzstück des IDS. Hier werden die Daten anhand definierter Regeln geprüft und etwaige Angriffe registriert. Die dabei verwendeten, text-basierenden Regelsätze sind nach Gruppen kategorisiert. Die Datei backdoor.rules enthält beispielsweise bekannte Backdoor-Angriffe und Exploits. Die Regelsätze werden regelmäßig aktualisiert und stehen im Internet (http://www.snort.org/cgi-bin/done.cgi) kostenlos zur Verfügung.

Zusätzlich können Anwender auch eigene Filterregeln schreiben, was eine feinere Abstimmung des IDS auf die individuelle Umgebung erlaubt. Dies setzt allerdings das Erlernen der speziellen Regelsyntax voraus. Zum Abgleich der Muster mit dem Paketinhalt bietet Snort die drei Algorithmen Aho-Corasick, Wu-Manber und Boyer-Moore an. Stimmt der Paketinhalt mit einer der in der Detection Engine hinterlegten Signaturen überein (Pattern-Matching), wird der Mustervergleich verlassen, der Angriff protokolliert und eine Alarmmeldung generiert. Darüber hinaus beinhaltet die Detection Engine integrierte Plugins, über die Programme von Drittanbietern verlinkt werden können. "Snortsam" (http://www.snortsam.net/index.html) zum Beispiel bietet die Möglichkeit, die Detection Engine mit der Firewall zu verbinden. Erkennt das System einen Exploit, kann die Firewall die entsprechende Quell-IP-Adresse blockieren.

Weiterleitung der Alarme an SQL-Datenbanken

Die Alarmmeldung wird in einer Log-Datei abgelegt oder über eine Netzwerkverbindung gesendet. Ist ein Samba-smbclient auf dem System installiert, lassen sich auch Windows-Popup-Meldungen nutzen. Der Alarm kann ebenso an SQL-Datenbanken von MySQL, Postgres oder Oracle gesendet und dort gespeichert werden. Eine Echtzeitbenachrichtigung des Systemadministrators per E-Mail ist mit Hilfe von Syslog-Tools wie Swatch möglich, das unter http://swatch.sourceforge.net zu beziehen ist.

Die Analyse der gesammelten Daten kann nicht nur interne und externe Angriffe aufdecken, sie soll auch dazu beitragen, das gesamte System zu beschleunigen und zu verbessern. Hierfür stehen dem Anwender die vier Tools "Swatch" (Simple Log Watcher and Filter), "Acid", "Snortsnarf" und "IDScenter" zur Verfügung. Sie finden sich unter http:// www.stanford.edu/~atkins/swatch, http://www.cert.org/kb/acid, http://www.silicondefense.com/ software/snortsnarf und http:// www.packx.net. Haupteinsatzgebiet für Swatch ist die Alarmierung. Acid empfiehlt sich vor allem zum Durchsuchen und Analysieren der Daten. Snortsnarf eignet sich zum Überprüfen und Aufbereiten der Daten. IDScenter ist ein Datenanalyse-Tool speziell für Windows-basierende Snort-Installationen. (ave)