Intrusion Detection Systeme gibt’s auch gratis
Netzwerke wollen gesichert sein, aber kommerzielle Lösungen sind nicht immer günstig zu haben. Open-Source-Programme können eine Alternative bieten.
Intrusion Detection Systeme (IDS) sind heute mehr denn je zur Notwendigkeit geworden. In kleineren Netzwerken ist eine kommerzielle Lösung vielleicht zu umfangreich oder schlicht zu teuer. Auch wenn der Trend immer mehr zu Intrusion Prevention Systemen (IPS) geht, sind Technologien, mit denen sich so genannte Day-Zero-Attacken feststellen und stoppen lassen, alles andere als überflüssig. Und hier können Open-Source-Lösungen eine gangbare Alternative sein.
Nicht immer bieten Open-Source-Programme den vollen Funktionsumfang eines kommerziellen Äquivalents. Aber in einigen Programmen verbergen sich Features, die durchaus interessant sein können. Immerhin fassen die Entwickler des Prelude-Projekts derzeit Funktionen verschiedener Programme unter einem Hut zusammen und arbeiten so an einer umfassenden Lösung auch auf Open-Source-Ebene.
Ein Intrusion Detection System stellt Einbrüche auf einem Netzwerk, einem Computer oder einer Anwendung fest. Die meisten Programme filtern anhand von Signaturen nach wahrscheinlichen Einbrüchen. Andere untersuchen das System auf Abweichungen von normalen Aktivitäten, um so etwaige Attacken auszumachen. Die Programme wandeln dabei auf einem schmalem Grad: Je umfassender eine Lösung nach Abweichungen oder Signaturen sucht, desto mehr Performance geht natürlich auf das Konto der Sicherheitssoftware. Auch die Zahl so genannter ‘False Positives’, also falscher Alarm, steigt mit umfangreichen Lösungen. Ist die Suchtiefe jedoch zu gering, könnten Angreifer durch das Netz schlüpfen. Wird ein Eindringling von einem IDS entdeckt, dann blockiert im zweiten Schritt ein Intrusion Prevention System den Angriff, indem es die verdächtigen Datenpakete abfängt.
AIDS, HIDS und NIDS sind keine Krankheiten
Die Angebotspalette für Intrusion Detection Systeme ist umfangreich, daher werden drei Kategorien unterschieden. Zum einen Systeme, die nur Anwendungen oder Dienste beobachten. Diese werden Application-based IDS (AIDS) genannt. Ein Host-basiertes IDS (HIDS) setzt sich meist aus verschiedenen Softwareteilen zusammen und wacht über Dateisysteme, Logfiles und das Betriebssystem. Ein HIDS beobachtet zudem Veränderungen in der Software, hier können auch verschiedene AIDS-Tools enthalten sein. Noch eine Schicht tiefer setzen netzwerkbasierte IDS an. NIDS analysieren den gesamten Datenverkehr auf Netzwerkebene.
Viele kommerzielle Produkte versuchen über eine Bündelung von IDS aus allen drei Bereichen möglichst umfangreichen Schutz zu gewährleisten. Dadurch werden die Produkte besonders für kleine und mittelständische Unternehmen sehr umfassend und kostenintensiv. Bei Open-Source-Produkten ist das Angebot etwas feiner strukturiert.
Honigtopf mit Spurensicherungs-Funktion
Auf Anwendungsebene erfreuen sich so genannte Honeypots als Schutz gegen unerwünschte Besucher großer Beliebtheit. Damit werden Systeme bezeichnet, die als Köder für Angreifer ausgelegt werden, und die eigentlich Muster von Angreifern analysieren sollen. Hier sind Anwendungen wie ‘Honeyd’ oder ‘mod_security’ zu nennen. Diese Programme verfügen aber auch über Monitoring-Funktionen und zeichnen Angriffe auf oder scannen nach Mustern bekannter Angriffsszenarien.
Host-basierte Lösungen verifizieren die Systemintegrität, die Log-Files oder die System-Patches. ‘Advanced Intrusion Detection Environment’ und ‘Tripwire’ überwachen Veränderungen im Dateisystem und zeichnen zum Beispiel auf, welche Dateien verändert wurden. Informationen über neu hinzugekommene Dateien werden in einer separaten Datenbank gespeichert. Anhand dieses Indexes kann die Integrität der Daten mit Algorithmen überprüft werden. Ein Beispiel ist das Shell-Script ‘Chkrootkit’, das nach bekannten Signaturen von Trojanern scannt und eine Reihe von Plattformen unterstützt.
‘Logcheck’ überwacht Logfiles und schickt auffällige Ergebnisse per Mail an den Administrator weiter. ‘Logsurfer’ kann neben der Fähigkeit, Veränderungen in den Log-Files zu berichten, auch noch das Regelwerk dynamisch anpassen. Das Unix-Programm ‘Swatch’ meldet schwere Sicherheitsverstöße und andere Probleme. Dabei filtert die Software irrelevante Daten weitgehend aus. Ursprünglich sollte Swatch aus der Datenmenge in den Logfiles für die Administratoren die wichtigen Daten hervorheben.
Warum nicht gleich ein sicheres Betriebssystem?
System-Patches für Linux-Betriebssysteme bieten ebenfalls eine Reihe von Sicherheitsfunktionen. Dabei handelt es sich um Aktualisierungen für das freie OS, die bestimmte Sicherheitsrisiken ausmerzen. Aber Vorsicht, etwa das ‘Linux Intrusion Detection System’, eine lose Sammlung von verschiedenen Patches, ist nach der Installation selbst gegenüber dem Root derartig restriktiv, dass die Patches nur mit größter Umsicht installiert werden sollten.
Ein anderes Beispiel ist ‘OpenWall’, ebenfalls ein Konvolut von Patches, die aber jeweils einzeln konfiguriert werden können. OpenWall unterstützt die gebräuchlichen Distributionen. Ein weiteres Beispiel ist das ‘SELinux’-Projekt (Security-enhanced Linux) der amerikanischen National Security Agency.
Snort und Prelude sorgen sich ums Netzwerk
Den Datenverkehr auf dem Netzwerk überwacht ‘Snort’. Es analysiert Protokolle und Signaturen. Über eine Firewall kann das Programm unerwünschten Datenverkehr blockieren. Das Programm versteht sich mit dem SQL Server, den Datenbanken MySQL und PostgreSQL und mit PHP. Mit ‘PortSentry’ lassen sich unter Unix in Echtzeit Port-Scans auf angegriffenen Hosts entdecken und abwehren.
Vielversprechend ist auch das Projekt ‘Prelude’. “Vor dem Sturm” ist das Motto der Software-Entwickler. Die Hybrid-Lösung bündelt Informationen aus den Open-Source-IDS-Programmen Snort, Honeyd, Nessus Vulnerability Scanner oder Samhain und daneben noch 30 Typen von Systems-Logs. Damit können Angriffe besser verifiziert und Korrelationen automatisch zwischen verschiedenen Ereignissen analysiert werden. Das Entwickler-Team arbeitet derzeit an einer einzelnen umfassenden Lösung, die verschiedene Open-Source-Komponenten zusammenfasst.