Rechnernetze und Telekommunikation

Nutzen und Gefahren

Quelle

IDS/IRS Einführung

Bei den Vorteilen und Annehmlichkeiten die das Internet mit sich bringt, wird leider oft übersehen welche Gefahren von diesem ausgehen. Private ungeschützte Rechner sind ein beliebtes Angriffsziel für so genannte "Script-Kiddies", die vorgefertigte Programme benutzen, um sich Zugang zu diesen Rechnern zu verschaffen, und einen größeren Angriff auf ein lohnenderes Ziel vorzubereiten.

Als erste Maßnahme zur Sicherung eines solchen Rechners kommt eine Firewall zum Einsatz. Aber gerade in unternehmensweiten Netzwerken die mit dem Internet verbunden sind, reicht der Einsatz einer Firewall und eines eventuellen Grenznetzwerkes nicht mehr aus. Die unglaubliche Menge an möglichen Angriffen und die immer raffinierter werdenden Verschleierungstaktiken der "Hacker" können selbst eine gut konfigurierte Firewall penetrieren. Die einzige Möglichkeit eine solche Penetration oder Eindringen (engl. Intrusion) zu erkennen, ist die Echtzeitüberwachung von Logdateien des überwachten Rechners, weil der Eindringling deutliche Spuren - wie zum Beispiel wiederholte Einlogversuche, Systemverletzungen und ähnliches - hinterlassen wird. Das Problem dabei ist, dass die Menge an Logdateien und Protokollen bei großen Netzwerken leicht mehrere MByte pro Tag übersteigt. Eine manuelle Überwachung dieser Logdateien fällt damit aus.

Ein Intrusion Detection System automatisiert diese Arbeit für den Systembetreuer.

Definition

Intrusion Detection Systeme vs. Intrusion Response Systeme

Ein Intrusion Detection System entspricht einer Alarmanlage für einen Rechner oder für ein komplettes Netzwerk. Das Intrusion Detection System (IDS) überwacht einzelne Systemkomponenten und gibt Alarm, wenn es die Spur eines Eindringlings erkennt. Das Intrusion Response System (IRS) führt zusätzlich selbstständig vordefinierte Gegenmaßnahmen aus. Es entspricht damit mehr einem scharfen Wachhund, der neben der Erkennung des Eindringlings und der "Alarmmeldung durch sein Bellen" die Möglichkeit hat, den Eindringling mit "seinen Fängen zu stellen".

Hostbasierte Intrusion Detection Systeme

Die ersten Intrusion Detection Systeme sind bereits in den 80er Jahren entwickelt worden, um die unbefugte Benutzung von teuren, zentralisierten Rechnernstrukturen zu verhindern. Diese Intrusion Detection Systeme werten die Auditdaten der zentralen Mainframe-Rechner aus, um einen Eindringling zu erkennen. Diese Intrusion Detection Systeme werden hostbasierte IDS genannt, da sie nur den Rechner überwachen können, auf dem sie installiert werden. Dies ist nicht weiter schlimm gewesen, weil an den damaligen Mainframe-Rechnern nur "dumme" Terminals angeschlossen worden sind, die nur aus einem Monitor, einer Tastatur und der Verbindung zum Zentral-Rechner bestanden.

Multi-Homed Intrusion Detection Systeme

Mit sinkenden Hardwarekosten sind aus den "dummen" Terminals Workstations geworden, die eigene Prozessoren besitzen. Aus der zentralisierten ist eine verteilte Arbeitsweise geworden, bei der Anwendungen auf den Workstations laufen, deren Daten aber auf dem Server verbleiben. Um auch diese Workstations zu überwachen, werden kleine Module (Agents) auf diesen installiert, welche die Auditdaten dieser Workstations vorfiltern und an den zentralen Server senden, der dann versucht ein Eingringen zu erkennen.

Aufgrund der verteilten Module werden diese Intrusion Detection Systeme Multi-Homed IDS genannt.

Netzbasierte Intrusion Detection Systeme

Mit steigender Vernetzung aufgrund des Internet sind Angriffe und Einbrüche nicht mehr von direkt physisch mit den Servern verbundenen Rechnern, sondern von entfernten Clients ausgeführt worden, die sich irgendwo auf der Welt befinden können. Da diese Eindringlinge gezwungenermaßen auf das TCP/IP-Protokoll zurückgreifen müssen um ihren Angriff zu fahren, hinterlassen sie nicht nur Spuren in den Logdateien, sondern auch in den IP-Paketen selbst. Ein Netz-basiertes Intrusion Detection System untersucht nur diese IP-Pakete und nicht mehr die Auditdaten.

Das heisst aber auch, dass das Netzbasierte Intrusion Detection System nicht mehr nur einen, bzw. die mit Agents ausgestatteten Rechner überwacht, sondern alle Rechner, die in dem (Sub-) Netz liegen, dessen IP-Pakete kontrolliert werden.

Komponenten

Ein Intrusion Detection System besteht aus drei Komponenten (siehe Abbildung 1): dem Datenmonitor, dem Analyzer mit Signaturdatenbank und der Ergebnisdarstellung.


                                 Abbildung 1 Grundkomponenten eines Intrusion Detection/Response System


Wie bereits erwähnt, fügt das Intrusion Response System nur die Response zu diesen drei Grundkomponenten.

Datenmonitor

Die Aufgabe des Datenmonitors ist es, Daten zu sammeln und vorzufiltern die das Intrusion Detection System benötigt, um ein Eindringen zu erkennen. Bei hostbasierten und Multi-Homed Intrusion Detection Systemen werden Auditdaten, der zu überwachenden Rechner ausgewertet (siehe oben).

Quellen für den Datenmonitor:

  • vom Betriebssystem überwachte Komponenten, wie dessen Dateisysteme (Zugriffsrechte), Netzdienste (wer hat sich von außen angemeldet) und Logdateien, die je nach Betriebssystem bereits standardmässig angelegt werden.

  • Logdateien von Sicherheitsanwendungen, wie z. B. Firewalls und andere überwachte Systemkomponenten

  • die Betriebsmittelvergabe durch das Betriebssystem, wie die CPU-Auslastung, der Ein- und Auslagerungsrate des virtuellen Speichers, der Anzahl aktiver Netzverbindungen, der Anzahl wiederholter Einlogversuche und ähnliches

  • der Netzverkehrsdurchsatz, wie Quell- und Zieladresse sowie Quell- und Ziel-Port von Paketen, wieviele Pakete versandt werden und welche Optionen in den einzelnen Paketen verwandt werden (Source Routing, SYN-Bit, etc.)


Besonders die letztere Quelle ist bei netzbasierten Intrusion Detection Systemen von Interesse.

Die Logdateien des Betriebssystems sind auf einer hohen Abstraktionsebene. Zusätzlich dazu sollten Auditdaten auf niedrigen Abstraktionsebenen -wie die erwähnten IP-Pakete -ausgewertet werden.

Das bedeutet es fällt eine sehr großes Datenvolumen an, das von der nächsten Komponente -dem Analyzer -bewältigt werden muss.

Analyzer mit Signaturdatenbank

Ein Einbruch der erkannt, aber erst Minuten oder gar Stunden später gemeldet wird, ist erfolgreich. Das Intrusion Detection System muß aber bereits während des Einbruchsversuchs Alarm melden, damit eine Gegenmaßnahme erfolgreich sein kann. Die Datenanalyse muß das große Datenvolumen somit in Echtzeit bearbeiten und auswerten können.

Dies bedeutet, dass die Hardware des Analyzers, mit der Echtzeitanalyse des Datenvolumens nicht überfordert sein darf. Ist dies nicht der Fall, zum Beispiel bei zu geringer CPU-Leistung, so können Angriffe wegen fehlender Daten eventuell nicht erkannt werden. Gerade in unternehmensweiten Netzwerken ist die Skalierung der Analyzerkomponente schwierig [HL97].

Die Analyse wird grundsätzlich durch zwei verschiedene Techniken realisiert. Zum einen mittels Signaturanalyse oder auch Missbrauchserkennung (missuse detection) und zum anderen mittels Anomaliedetektion.

Signaturanalyse

Die Missbrauchserkennung versucht in den Auditdaten bereits bekannte Spuren, die so genannten Signaturen zu entdecken. Diese Signaturen sind in einer Datenbank abgelegt. Der Analyzer vergleicht die Auditdaten mit diesen Signaturen. Letztendlich handelt es sich dabei um einen einfachen "String Matching"-Algorithmus.

Die Signaturanalyse arbeitet analog zu einem Virenscanner, der in den zu untersuchenden Dateien nach bestimmten Byte-Sequenzen sucht, um einen Virus zu erkennen.

Für ein Intrusion Detection System hat das -genauso wie bei einem Virenscanner -den Vorteil, das bereits bekannte Angriffe leicht und sicher erkannt werden. Andererseits versagt die Signaturanalyse, wenn es sich um einen Angriff handelt, der (noch) nicht in der Signaturdatenbank abgelegt ist. Wie ein Virenscanner muß die Signaturdatenbank ständig und vollständig aktualisiert werden, um ein Maximum an Sicherheit zu garantieren.

Anomaliedetektion

Die Anomaliedetektion geht einen anderen Weg. Der Analyzer geht hierbei davon aus, das eine Eindringen bzw. ein Angriff ein anomales Systemverhalten hervorruft. Der Analyzer versucht diese Anomalie zu erkennen und zu detektieren. Das bedeutet, dass es einen Normwert geben muß, von der die Anomalie abweichen kann. Dieser Normwert muß vorher vom Analyzer bestimmt werden.

Eine solche Analysemethode kann neue und unbekannte Angriffe erkennen. Die Verfahren die eingesetzt werden, um die Anomalie zu erkennen, sind der statistische und der logische Ansatz.


Statistischer Ansatz: Beim statistischen Ansatz versucht das System Abweichungen von Normalwerten einer vorgegebenen Parametermenge (zum Beispiel CPU-Auslastung oder die Seitenzugriffsrate) zu finden. Diese Normalwerte können zustandsunabhängige oder zustandsabhängige Mittelwerte sein. Sobald sich ein Parameter außerhalb seines normalen Bereiches befindet, wird ein Alarm ausgelöst.


Logischer Ansatz: Hier wird zusätzlich zum einfachen statistischen Ansatz die zeitliche

Abfolge von Ereignissen berücksichtigt. Das Normverhalten wird dabei durch Regeln beschrieben.

Ergebnisdarstellung

Die Signaturanalyse liefert eine klare ja/nein Entscheidung. Das Problem ist, das mit dieser einfachen Aussage nicht geklärt ist, um was für eine Art von Angriff es sich handelt oder wie Schwer dieser Angriff wiegt. Damit dieses bewerkstelligt werden kann, muß von der Signaturdatenbank mitgeteilt werden, um welchen Angriff es sich handelt, damit eine passende Gegenmaßnahme eingeleitet werden kann.

Die Anomaliedetektion liefert im Gegensatz dazu eine Verdachtsbewertung (engl. suspicion value), die proportional zur Abweichung vom Normwert ist. Je nach Schwere bzw. Gefahrenpotential können unterschiedliche Darstellungsarten gewählt werden:


  • eine Mail an den System- bzw. Security-Administrator mit der Art des Angriffs.

  • ein lokaler Alarm, wie z. B. ein Pop-Up-Fenster auf der Sicherheitskonsole des Administrators bei gefährlichen Angriffen, auf die unverzüglich reagiert werden muß.

  • eine Alarmmeldung auf den Pager oder das Handy des Administrators, wenn die Sicherheitskonsole nicht ständig (24 Stunden, 7 Tage pro Woche) überwacht wird.


Es muß dabei darauf geachtet werden, dass die Nachrichten des Intrusion Detection System nicht von einem Eindringling verfälscht werden, um seinen Angriff zu verschleiern. Zusätzlich muß für den Fall einer Denial-of-Service Attacke darauf geachtet werden, das eine alternative Benachrichtigungsmöglichkeit besteht, die resistent gegen eine Denial-of-Service Attacke ist.

Response

Sobald ein Angriff oder ein Einbruch vom Intrusion Detection System erkannt und gemeldet worden ist, muss darauf reagiert werden. Die Reaktion kann ausschließlich vom Administrator ausgelöst oder durch das Intrusion Response Systems automatisiert werden.

Grundsätzlich können folgende passiven Gegenmaßnahmen ergriffen werde:


  • Rekonfiguration der Firewall oder der Router um die Angreifer IP abzublocken.

  • Herunterfahren von Diensten um Ports zu schließen.

  • In ganz schwerwiegenden Fällen kann der Router komplett heruntergefahren werden.


Wenn diese Maßnahmen automatisiert werden, muß darauf geachtet werden, dass sich das Intrusion Response System sicher gegenüber der Firewall, bzw. dem Router authentifiziert. Ein Eindringling darf die automatisierte Response nicht für eine Denial-of-Service Attacke ausnutzen, indem er dem Router den Befehl gibt sämtliche Verbindungen zu schliessen.

Aktivere Gegenmaßnahmen dürfen nur in begrenztem Maß eingesetzt werden, da die Rechtssprechung keinerlei Selbstjustiz duldet. Die IP-Adresse des Angreifers wird durch Analyse der Logdateien ermittelt, sofern sie nicht "gespooft" worden ist. Ist der Eindringling "klug" genug, um seine IP-Adresse zu spoofen, sollte die gespoofte IP-Adresse an die Ermittlungsbehörden (Polizei, Staatsanwaltschaft, etc.) übergeben werden, um ihnen die Möglichkeit zu geben den Eindringling zu ermitteln.

Interaktion der Komponenten

Die Interaktion der Komponenten des Intrusion Detection System, bzw. des Intrusion Response System entspricht denen in Abbildung 2.


                            Abbildung 2 Interaktion der Komponenten eines Intrusion Detection/Response System


Die große Menge an Auditdaten, die das Monitormodul gesammelt und vorgefiltert hat, werden durch den Analyzer mit seiner Signaturdatenbank ausgewertet. Wenn das Analyzermodul einen Einbruch entdeckt, wird diese an dem Administrator gemeldet. Falls der Administrator die Response automatisiert hat, wird die Reaktion direkt vom Analyzer veranlaßt. Der Administrator kann zusätzliche Gegenmaßnahmen veranlassen, wenn er dies für Notwendig hält.

Beispiel Port-Scan

Zur Planung eines Angriffs ist es für den Angreifer notwendig mehr über sein Ziel zu erfahren. Neben den nichttechnischen Möglichkeiten wie das Social-Engineering, wird der Angreifer versuchen mehr über den Rechner in Erfahrung zu bringen, den er penetrieren will. Die einfachste Methode ist ein Port-Scan.

TCP/IP Verbindungsaufbau

Um Daten im Internet auszutauschen, wird das TCP/IP Protokoll benutzt. Die Verbindungen zwischen dem Client und dem Server werden über Ports hergestellt. An diesen Ports werden von den Servern bestimmte Dienste (ECHO - Port 7, FINGER - Port 79, HTTP - Port 80, etc.) angeboten. Um einen dieser Dienste zu nutzen, muß der Client einen Drei-Wege-Handshake durchführen.



                                                             Abbildung 3 Drei-Wege-Handshake

Der Client sendet an den Server ein SYN-Paket. Dieser antwortet mit SYN/ACK, welches vom Client mit ACK beantwortet wird. Die Verbindung ist hergestellt, und Daten können zwischen dem Client und dem Server ausgetauscht werden. Um die Verbindung zu beenden, wird das FIN-Paket gesendet (siehe Abbildung 3). Die Sequenznummern sind hier nur der Vollständigkeit halber aufgeführt, spielen jedoch nur bei Spoofing Angriffen eine Rolle.

Aktiver Port-Scan

Der Eindringling versucht bei einem Port-Scan herauszufinden welche Ports aktiv sind, d.h. welche Dienste dieser spezielle Rechner anbietet. Da es eine Unmenge von bekannten Sicherheitslöchern für die verschiedenen Dienste gibt und viele nicht geschlossen werden, sei es wegen Nicht-Wissens, Unfähigkeit oder Faulheit des Administrators, kann der Eindringling einige dieser Dienste ausnutzen, um in das System einzudringen.

Um offene Ports zu finden, versucht der Eindringling mit allen Ports einen Verbindungsaufbau. Ist dieser Erfolgreich, so weiß der Angreifer, dass der Dienst der hinter diesem Port steht, aktiv ist. Da dies alles ist was der Angreifer wissen will, beendet er die Verbindung sofort. Alternativ dazu kann der Angreifer den Port offen lassen; also das abschliessende FIN-Paket nicht senden, um diesen Port für andere Verbindungen über einen kurzen Zeitraum zu sperren (Denial-of-Service).

Diese Art von Port-Scan ist sehr einfach zu entdecken. Zum einen wird der Verbindungsaufbau abgeschlossen (dieses wird protokolliert) und zum anderen benutzt der Angreifer den erwähnten sweep über den gesamten Portraum, was eine signifikante Spur (Signatur) hinterlässt. Diese kann nicht nur von einem Intrusion Detection System mit Erfolg erkannt werden.

Half-Open Port-Scan

Bei dieser Variante des aktiven Port-Scans bricht der Angreifer den Verbindungsaufbau ab, sobald er das SYN/ACK-Paket vom Server erhält, da dieses Paket nur gesendet wird wenn der Port aktiv ist. Der Server sendet nach einer kurzen Wartezeit ein weiteres SYN/ACK-Paket, da er davon ausgeht, dass das Paket nicht empfangen worden ist. Wenn also mehrere (tausend) SYN- Pakete an einen Port geschickt werden, kann dieser Port keine anderen Teilnehmer mehr akzeptiern. Diese Denial-of-Service Attacke wird SYN-Flooding genannt.

Da beim Half-Open Scan keine Verbindung zustande kommt, wird dieser Versuch im Normalfall nicht protokolliert. Dieses erschwert eine Entdeckung. Wie bei allen Port-Scans ist jedoch der sweep über den Portraum das auffälligste Merkmal. Ein Intrusion Detection System oder auch ein packet-sniffer können daher einen Half-Open Scan erkennen.

FIN-Stealth Scan

Hier wird ein Designfehler im TCP-Protokoll ausgenutzt, der zu unterschiedlichen Implementationen im TCP/IP-Stack der Betriebssysteme geführt hat. Windows-NT Systeme sind gegen diese Art von Scan immun. Der FIN-Stealth Scan liefert also zusätzlich zu den Informationen des Scans Hinweise auf das verwendete Betriebssystem des Ziel-Rechners.

Anstatt eine Verbindung zu initiieren, um zu erfahren ob ein Port aktiv ist oder nicht,

schickt der Angreifer bei dieser Variante nur das FIN-Paket, das eigentlich dafür da ist eine Verbindung zu beenden. Wenn der Port das RST-Paket zurücksendet, weiß der Angreifer, dass der Port nicht aktiv ist (siehe Abbildung 4).


                                                    Abbildung 4 Fin Stealth Scan

Diese Variante ist tückischer als die bereits angesprochenen. Da kein Versuch unternommen wird eine Verbindung aufzubauen, wird auch nicht protokolliert. Die Entdeckung eines FIN-Stealth Scan ist deswegen schwieriger als z.B. ein Half-Open Scan. Ein sniffer oder ein Intrusion Detection System, welche so eingestellt worden sind eine Häufung von FIN-Paketen zu entdecken, erkennen einen FIN-Stealth Scan.

Verschleierung eines Scans

Das markanteste Merkmal eines Port-Scans ist der sweep über den gesamten Portraum. Wenn der Angreifer den Port-Scan verschleiern will, ist seine erstes Anliegen daher das verbergen dieses sweeps.

Eine Möglichkeit dies zu erreichen, ist die zeitliche Ausdehnung des sweeps. Der Grundgedanke dahinter ist folgender. Ein Rechner der ans Internet angeschlossen ist und Dienste anbietet wird im Normalfall statisch konfiguriert sein. Er wird also nicht stündlich oder täglich andere Dienste anbieten, sondern immer die Gleichen. Wenn der Angreifer nur wissen will welche Dienste dies sind, kann er den Port-Scan über mehrere Tage ausdehnen und fällt so nicht durch gehäufte Anfragen auf.

Eine andere Möglichkeit ist der distributed Port-Scan. Hierbei wird nicht nur von einem Rechner, sondern von mehreren Rechnern gleichzeitig Anfragen an den Ziel-Rechner geschickt. Da der Scan nicht mehr von einem Rechner ausgeht, sieht es für den Ziel-Rechner wie normale Anfragen aus dem Internet aus. Einziges Erkennungskriterium für einen so verschleierten Port-Scan ist die Häufung von Anfragen auf ungewöhnliche Ports.

Beide Verschleierungstaktiken lassen sich natürlich kombinieren. Zusätzlich kann der Angreifer die angesprochenen Port-Scan Varianten mischen, um die Erkennung zusätzlich zu erschweren. Ein Intrusion Detection System, das so konfiguriert worden ist, dass es die Auditdaten über mehrere Tage auswertet, kann alle Kombinationen der bisher vorgestellten Varianten und Verschleierungsmethoden erkennen.

Um die Häufung von Anfragen zu verringern, kann der Angreifer anstatt aller, nur die für

ihn interessanten Ports scannen. Wenn der Angreifer zum Beispiel nur ein bestimmtes Sicherheitsloch eines Dienstes ausnutzen will, scannt er eben nur diesen einen Port. Da der charakteristische sweep bei dieser Verschleierung fehlt, ist diese Variante nur dann zu erkennen, wenn die vom Angreifer gescannten Ports (ähnlich einem Honeypotsystem1) explizit überwacht werden.

Diese Variante ist auch für ein Intrusion Detection System nur mit Einschränkungen erkennbar.

Nutzen und Gefahren

Das Intrusion Detection System ist aufgrund seines Aufbaus in der Lage Angriffe und Attacken zu erkennen, die eine Firewall systembedingt nicht erkennen kann. Dies gilt insbesondere für Angriffe von innen. Zusätzlich kann ein Intrusion Detection System Port-Scans, die über einen langen Zeitraum gedehnt werden und/oder von verschiedenen Quellen ausgehen, erkennen, wenn es entsprechend konfiguriert ist. Da ein Intrusion Detection System ähnlich einem Highlevel Proxy die Netzpakete bis zur höchsten Ebene dekodiert und analysiert, kann es auch Angriffe auf den höchsten Leveln des ISO/OSI- Modells erkennen.

Wenn das Intrusion Detection System zusätzlich über eine Anomaliedetektion verfügt, kann es ungewöhnliches Benutzer- und und Systemverhalten erkennen. Damit ist es dem Intrusion Detection System möglich Eindringlinge zu erkennen, die sich echte Login- Informationen von Benutzern beschafft haben.

Das Intrusion Detection System erhöht so die Sicherheit für ein Netzwerk. Es wäre jedoch sträflich leichtsinnig, wenn man nach Anschaffung eines Intrusion Detection Systems die Firewall abschalten würde. Ein Intrusion Detection System ist nur in Verbindung mit einer Firewall nützlich. Allerdings muß beachtet werden, dass ein Intrusion Detection System auch Gefahren mit sich bringt. Ein Angreifer, der weiß das ein Intrusion Detection System eingesetzt wird, wird als erstes versuchen das IDS lahmzulegen. Das Intrusion Detection System und das Betriebssystem auf dem es läuft, müssen deshalb gegen die Angriffe gesichert sein.

Die Konfiguration des Intrusion Detection System ist eine heikle Angelegenheit. Wenn das IDS zu empfindlich eingestellt ist, wird es zu viele Fehlalarme melden. Ist es zu grob eingestellt, werden einige Angriffe vom IDS nicht erkannt. In beiden Fällen verliert das IDS an Glaubwürdigkeit.

Zusätzlich muß die Security-Policy des Unternehmens so definiert werden, damit eine automatische Response nicht für eine Denial-of-Service Attacke ausgenutzt werden kann.

Wegen der hohen Kosten für das Intrusion Detection System, dessen Hardware und dessen

Konfiguration, sollte man vor der Entscheidung für oder gegen ein IDS das eigene Sicherheitsbedürfnis kennen.


1Honeypot: Honigtopf, System das offensichtliche Sicherheitslöcher vortäuscht

Quelle:
 Auszug aus einem Seminar über 'Sicherheit im Internet' von Makoto Miyamoto, Ruhr-Universität Bochum