Intrusion Detection System

Als weiterer Schutz des Netzwerks oder einzelner Hosts wird ein IDS installiert.

* Einbruchserkennung in Netzwerke mit IDS und Honeypots (Index)

Ich habe auf den Chemnitzer Linux-Tagen 2005 einen Vortrag zum Thema "Einbruchserkennung in Netzwerke mit IDS und Honeypots" gehalten. Dazu habe ich meine Vortragsfolien und einen Aufsatz ins Netz gestellt.

Audio-Aufzeichnung des Vortrags: OGG, 20MB MP3, 5MB

* Was ist ein IDS? (Index)

Ein IDS ist ein System das der Einbruchserkennung in Netzwerke oder einzelne Hosts dient. Dazu werden Ereignisse in einem Netzwerk (oder auf einem einzelnen Rechner) überwacht.
Es ist ein Teil eines Sicherheitskonzepts und als weitere Maßnahme neben einem Paketfilter, entsprechenden Proxies und den sozialen Vorgaben zu verstehen.
Es kann Ereignisse abfangen, die einen Angriff kennzeichnen, aber nicht durch andere Sicherungsmaßnahmen abgedeckt sind. Das IDS arbeitet für gewöhnlich auf der Firewall (um diese zu schützen) oder im Netzwerk hinter der Firewall um das Netz auch bei einer penetrierten Firewall zu schützen.

* Methodik und Technik. (Index)


IDS kann man in verschiedene Kategorieren einteilen, unter anderem:
- Arbeitsort des IDS: Hostbasiert (HIDS), Netzwerkbasiert (NIDS) oder Hybrid
- Erkennungsmechanismen: Signaturerkennung, statische Anomalieerkennung, Hybrid
- Zeitfunktion: (nahezu) Echtzeit oder Postmortem
oder nach der Strategie der Angriffserkennung:
- Signaturerkennung : bekannte Angriffssignaturen werden erkannt
- Anomalieerkennung : vom Normalbetrieb abweichende Operationen werden erkannt
- Integritätschecker : Integrität der Daten wird geprüft
- Bottleneck - privilegierte Operationen die durch eine Backdoor
ausgeführt werden, werden erkannt.

* schematischer Aufbau eines NIDS und HIDS (Index)

NIDS
                               Sensor Sensor
                                  |   /
Internet ====== Firewall ====== Intranet
                                  |
                                  |
                                NIDS Manager
- verteilte Sensoren überwachen den Traffic und melden ihre Ergebnisse
an den NIDS Manager, der weitere Aktionen veranlasst
- Angriffe hinter der Firewall können erkannt werden
- Nachteil: nicht in geswitchten oder verschlüsselten Netzen
- Datenverkehr wird geloggt, daraus ergeben sich Probleme mit dem Datenschutz
HIDS:
Das IDS läuft direkt auf dem Rechner (z.B. ein Virenscanner oder Logchecker)
und funktioniert daher auch in geswitchten oder verschlüsselten Netzwerken.
Nachteilig kann sich das HIDS auf die Performance auswirken und es
kann wieder Probleme mit dem Datenschutz geben.
Desweiteren gibt es auch hybride IDS, welche sowohl Merkmale eines hostbasierten als auch eines netzbasierten IDS auf sich vereinigen.

* Plazierung (Index)

Wie sollte man das IDS plazieren? Bei einem HIDS scheint sich diese Frage recht einfach zu erledigen, aber man sollte auch beachten wo man dieses HIDS installiert. Ein IDS auf einem Paketfilter der ins Internet geht, kann zu sehr vielen falschen Positivmeldungen führen und ist somit wenig nützlich, er sollte also dann schon hinter dem Paketfilter sitzen, so das einige Attacken von selbigem abgefangen werden. Ein Gateway das zum Beispiel die Serverfarm vom restlichen LAN trennt sollte unbedingt per IDS überwacht werden. Ein HIDS auf einem großem Server kann evtl. die Last massiv erhöhen und den Traffic ausbremsen. Wie bereits schon angedeutet können IDS massivst den Datenschutz verletzen wenn sie z. B. auf einem Arbeits-PC den Netzwerkverkehr überwachen und dabei sogar gegen geltendes Recht verstoßen.

* Maßnahmen und Programme (Index)

Eine einfache, aber wirkungsvolle, Maßnahme zur ID ist das sogenannte Simple Auditing. Dabei werden Informationen über das System und seine Attribute zusammengestellt und gegen eine Beispieldatenbank abgeglichen. Dies kann zum Beispiel das Dateisystem, laufende Daemons oder geöffnete Ports umfassen, die Backline zum Datenbankvergleich sollte auf einem frischen System erstellt werden.
Beispiele zur Sicherung des Dateisystems:
Ein geeignetes Programm zur Überwachung des Dateisystems ist AIDE, das ich hier weiter beschrieben habe. AIDE erstellt mathematische Prüfsummen über das Dateisystem und kann so Veränderungen oder gar Fälschungen (z. B. durch Rootkits) aufspüren und lässt sich hervorragend per Skript über cron automatisieren.
Ebenfalls sehr einfach aber wirkungsvoll ist das wahrscheinlich älteste IDS - root der seine Logfiles liest. In den Logdateien werden wichtige bzw. vorher definierte Ereignisse eingetragen. Dies ermöglicht es Einbruchsversuche (besonders welche per Script auf schon bekannte und behobene Exploits) oder vorbereitende Maßnahmen (z. B. Portscans detektieren mit Portsentry) zu erkennen. Daher sollte man die Logfiles sorgfältig studieren und sichern, da sie nebenbei auch ein wichtiger juristischer Beweisfaktor sind und damit wohl auch das erste Angriffsziel bei einem erfolgreichen Angriff darstellen. Diese Aufgaben lassen sich auch wieder hervorragend automatisieren, der syslogd ist z. B. in der Lage die Logdateien auf einen anderen Netzwerkhost zu schreiben, oder der Einsatz von ssyslogd, welcher die Logdateien automatisch verschlüsselt. Auf einem wichtigen Rechner kann man die Logs auch gleich ausdrucken lassen, so das kein Einbrecher mehr diese wichtigen Daten manipulieren kann. Ebenso sollte man Programme, so sie es denn unterstützen, dazu veranlassen Logs zu generieren. Dies kann z. B. mit dem xinetd statt dem inetd geschehen oder in dem ein eingesetzter Paketfilter oder tcpwrapper Verbindungen mitloggt.
Ein weiterer wichtiger Aspekt ist die Netzwerküberwachung auf verdächtige Aktionen. In einem Netzwerk das relativ öffentliche Zugänge bietet (z. B. an einer Uni) kann man mit arpwatch das Netz auf neue MAC Adressen, also Netzwerkkarten, überwachen. Ein sehr einfaches Mittel ist das Leiten des Netzwerktraffics durch einen Filter, das sog. "network grep". Dieses System ist sehr einfach umzusetzen, allerdings ist es auch nicht besonders leistungsfähig, da es z. B. durch Fragmentierung sehr leicht umgangen werden kann. Vorteile sind die sehr leichte Updatebarkeit und die höchste Anzahl an verfügbaren Signaturen, allerdings werden diese nicht besonders intelligent abgearbeitet. Ein Programm das der NIDS dient, ist das beliebte Snort. Snort selber unterstützt drei Modi, Sniffer, Packet Logger und NIDS. Hier soll nur das NIDS interessieren. Snort überwacht den Netzwerkverkehr und reagiert dabei auf vorbestimmte Regeln. So kann Snort z. B. bei einem root ftp-login Alarm schlagen oder bei ICMP ECHO Paketen das ICMP Sequenzfeld nach bestimmten Werten durchsuchen um damit Stacheldraht aufzuspüren. Eine weitere Maßnahme kann das Einrichten eines sogenannten Honeypots sein. Ein Honeypot (Honigtopf) ist eine Methode aus dem Kampf von Infanterieeinheiten. Ein einzelner Soldat wird angeschossen damit seine Kameraden ihn retten wollen. Wenn diese dann in den Bereich des Scharfschützen kommen, werden sie der Reihe nach ausgeschaltet. In der IDS ist ein Honeypot ein System das besonders konfiguriert wird um einen Angreifer anzulocken um ihn somit zu analysieren oder von den wichtigen Produktivsystemen wegzulocken. Dies kann mit einem Programm oder einem einzelnen Rechner geschehen. Beispielsweise kann man ein unsicheres System einrichten das exploitete Programme enthält (ein beliebiges Microsoft OS) und keinem weiteren Zweck im Netzwerk dient. Da es ja keine Last auf dem System geben sollte und es keinen weiteren Nutzen hat als der IDS zu dienen, sollte man jeden entstehenden Verkehr mitloggen, da dieser schon von vornherein suspekt ist. Ein Honeypot hat auch Nachteile, er kann bei erfolgreichem Einbruch als Basis für weitere Angriffe gegen die echten Server dienen (vielleicht sogar gegen fremde Systeme, was juristische Komplikationen bringen kann), eventuell sollte man daher den Honeypot in einem extra Netz plazieren. Desweiteren erhöht ein Honeypot die Komplexität des Netzes und dies ist selbstverständlich nicht wünschenswert. Ebenso entsteht administrativer Aufwand, der Honeypot muss zwar nicht unbedingt gepatcht aber eben überwacht werden. Daher sollte man den Einsatz eines Honeypot wohl überdenken. Programme die speziell dazu dienen sind z. B. LaBrea oder das Deceiption Toolkit. Ebefalls ist es empfehlenswert die eigenen Rechner bzw. das Netzwerk auf Sicherheitslücken zu überprüfen. Dazu gehören die Pflichten des Admins, das Verfolgen diverser Listen zu Sicherheitslücken (z. B. bugtraq) oder das Überprüfen des Systems mit audit-packeges oder einem Security Scanner wie Nessus. (Nur weil Nessus keine Fehler findet, heißt das nicht, das das System sicher ist!) Sollte man dazu aus verschiedenen Gründen nicht in der Lage seine sollte man evtl. einen externen Diensleister in Betracht ziehen. Abschließend sei noch einmal auf die grösste Fehlerquelle - den Benutzer - hingewiesen, schließlich ist Social Engineering auch eine beliebte und äusserst effektive Einbruchsmethode.

net-tex.de, Index
\$Id: ids.html,v 1.31 2014/08/21 09:24:03 stefan Exp $


$Log: ids.html,v $ Revision 1.31 2014/08/21 09:24:03 stefan Umlaute und Makefile clean up

Autor: Stefan Schumacher für net-tex.de/cryptomancer.de, PGP-Key 0xB3FBAE33

Bitte beachten Sie, das die Seite inhaltlich seit Ende 2007 nicht mehr gepflegt wird!
Aktuellere Informationen erhalten Sie auf Kaishakunin.com