Computersicherheit ist in der heutigen Zeit nicht nur wegen den sich häufenden Medienberichten über gelungene Einbruchsversuche ein vieldiskutiertes Thema. Eine Folge davon ist ein deutlicher Anstieg der Nachfrage an Sicherheitsprodukten, zu denen auch Intrusion Detection Systeme zählen. Übereinstimmend wird geschätzt, daß sich durch deren Verwendung ein höheres Niveau der Systemsicherheit erreichen läßt. 1999 wurden in 37% aller Unternehmen, für die Sicherheit von Bedeutung ist, ID-Produkte benutzt (Vorjahr 29%) [18].
Das Sicherheitsniveau dieser Produkte hängt unter anderem wesentlich von der Effizienz des Zusammenwirkens mit anderen Produkten wie z.B. Firewalls ab. Dieses Zusammenwirken ist bisher teilweise noch nicht vorhanden bzw. noch nicht optimiert. In der vorliegenden Diplomarbeit wird nun ein Ansatz vorgestellt, der durch die aktive Verknüpfung der Komponenten Firewall und IDS die Effizienz beider Systeme steigern und zusätzliche Möglichkeiten erschließen soll. Da diese Kopplung Implikationen auf Design und auszuwählende Mechanismen des zu integrierenden IDS hat, wird hier ein Modell vorgestellt, welches für diesen Zweck optimiert wurde. Die vorliegende Arbeit enthält weiterhin eine detaillierte Beschreibung der exemplarischen Implementierung dieses Modells sowie die
Präsentation und Bewertung erster Einsatzerfahrungen.
Inhaltsverzeichnis
Abbildungsverzeichnis
Tabellenverzeichnis
Einleitung
1. Sicherheit in Computersystemen
1.1 Sicherheitslücken
1.2 Grundsätzliche Vorgehensweise eines Eindringlings
1.3 Angriffsarten
1.4 Gegenmaßnahmen
2. Intrusion Detection Systeme
2.1 IDS-Eigenschaften
2.2 Klassifizierung von Intrusion Detection Systemen
2.3 Arbeitsweise eines IDS
2.3.1 Datenselektion
2.3.2 Datenanalyse
2.3.3 IDS-Sprachen
2.4 Kombination von Firewall und IDS
3. Entwurf eines Firewall-IDS
3.1 Theoretische Modelle
3.1.1 Das ECA-Modell
3.1.2 Ein generisches Intrusion Detection Modell
3.2 Grundlegende IDS-Entwurfskonzepte
3.2.1 Modellauswahl
3.2.2 Typ des zu entwerfenden Systems
3.2.2 Leistungsmerkmale des zu entwerfenden Systems
3.2.3 Auswahl des Angriffserkennungsmechanismus
3.2.4 Auswahl der Datenbereitstellung
3.2.5 Integration der Analysemethoden
3.2.6 Konzeption der Endlichen Automaten für die Mustererkennung
3.2.7 Entwurf der IDS-Sprache
3.3 IDS-spezifische Konkretisierung des ECA-Modells
3.4 Integration des IDS in die VDMFA-Firewall
3.4.1 Firewall-Architektur: Überblick
3.2.2 Integration des IDS
3.2.3 IDS/Firewall-Kommunikationsinfrastruktur
3.2.4 IDS/Firewall-Konfiguration
3.5 Firewall-spezifische Konkretisierung des ECA-Modells
4 Prototypische Implementierung des IDS
4.1 Überblick
4.1.1 IDS-Architektur
4.1.2 Die IDS-Regelsprache
4.2 Funktionsprinzipien
4.2.1 Interpretation der IDS-Sprache
4.2.2. Die Analyzer-Klassenhierarchie
4.2.2 Realisierung der Finite State Machinen
4.2.4 Die Caches
4.2.5 Mögliche Verwendung eines Loaders im Aktionsteil von IDS-Regeln
4.2.6 Aktionsmodule
4.2.7 Das Normalwert-Modul
4.3 Dokumentation der einzelnen Klassen/Module
4.3.1 IDSMod
4.3.2 Analyzer
4.3.3 Compare
4.3.4 CacheAnalyzer
4.3.5 PacketCache
4.3.6 LogCache
4.3.7 FlowCache
4.3.8 StandardMod
5 Test
5.1 Versuchsbeschreibung
5.2 Ergebnisse
6 Ausblick
Anhang A - Konfigurationsdateien
sys_start.ini
ids_start.ini
idm_start.ini
Anhang B – Installation und Betrieb
Anhang C – Ressourcen zum Thema Computersicherheit
Quellenverzeichnis
Ehrenwörtliche Erklärung
Hiermit versichere ich, die vorliegende Diplomarbeit ohne Hilfe Dritter und nur mit den angegebenen Quellen und Hilfsmitteln angefertigt zu haben. Alle Stellen, die aus den Quellen entnommen wurden, sind als solche kenntlich gemacht worden. Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen.
Darmstadt, 15.10.1999 Marc Tresse
Abbildungsverzeichnis
Abbildung 1: Angriffssignatur
Abbildung 2: Pattern Matching mit Endlichen Automaten
Abbildung 3: ECA-Regelkreislauf
Abbildung 4: Generisches Intrusion Detection Modell
Abbildung 5: Firewall-Architektur
Abbildung 6: ECA-Einteilung von Firewall- und IDS-Komponenten
Abbildung 7: Kommunikationsinfrastruktur
Abbildung 8: IDS-Architektur
Abbildung 9: IDS-Sprachsyntax (BNF)
Abbildung 10: Analyzer-Hierarchie
Abbildung 11: Compare-Mechanismus
Abbildung 12: CacheAnalyzer-Mechanismus
Tabellenverzeichnis
Tabelle 1: Ursachen für Sicherheitslöcher in Computersystemen
Tabelle 2: Vorgehensweise eines Hackers
Tabelle 3: Sicherheitprodukte
Tabelle 4: IDS-Eigenschaften
Tabelle 5: Unterteilung des TCP/IP-Verkehrs
Tabelle 6: Systemaktivitäten
Tabelle 7: "Verdächtige" Aktivitäten
Tabelle 8: Statistische Messungen
Tabelle 9: ECA-Modell: Definition
Tabelle 10: IDS-Spracheigenschaften
Tabelle 11: ECA Modell: IDS-spezifische Konkretisierung
Tabelle 12: ECA Modell: Firewall-spezifische Konkretisierung
Einleitung
Computersicherheit ist in der heutigen Zeit nicht nur wegen den sich häufenden Medienberichten über gelungene Einbruchsversuche ein vieldiskutiertes Thema. Eine Folge davon ist ein deutlicher Anstieg der Nachfrage an Sicherheitsprodukten, zu denen auch Intrusion Detection Systeme zählen. Übereinstimmend wird geschätzt, daß sich durch deren Verwendung ein höheres Niveau der Systemsicherheit erreichen läßt. 1999 wurde in 37% aller Unternehmen, für die Sicherheit von Bedeutung ist, ID-Produkte benutzt (Vorjahr 29%) [18]. Das Sicherheitsniveau dieser Produkte hängt unter anderem wesentlich von der Effizienz des Zusammenwirkens mit anderen Produkten wie z.B. Firewalls ab. Dieses Zusammenwirken ist bisher teilweise noch nicht vorhanden, bzw. noch nicht optimiert. In der vorliegenden Diplomarbeit wird nun ein Ansatz vorgestellt, der durch die aktive Verknüpfung der Komponenten Firewall und IDS die Effizienz beider Systeme steigern und zusätzliche Möglichkeiten erschließen soll. Da diese Kopplung Implikationen auf Design und auszuwählende Mechanismen des zu integrierenden IDS hat, wird hier ein Modell vorgestellt, welches für diesen Zweck optimiert wurde. Die vorliegende Arbeit enthält weiterhin eine detaillierte Beschreibung der exemplarischen Implementierung dieses Modells, sowie die Präsentation und Bewertung erster Einsatzerfahrungen.
1. Sicherheit in Computersystemen
Die hier genannten Aspekte sollen lediglich einen Einblick in die Problematik der Computersicherheit geben und wurden mit Hinblick auf das Thema der vorliegenden Diplomarbeit ausgewählt. Eine ausführliche Abhandlung von Fragen der Computersicherheit würde den Rahmen der vorliegenden Arbeit bei weitem sprengen. Deshalb wird der interessierte Leser zusätzlich auf die in Anhang C aufgeführten Bücher, sowie [19] verwiesen.
1.1 Sicherheitslücken
Jedes Computersystem besitzt eine Vielzahl potentieller Sicherheitslücken, die es einem Angreifer ermöglichen, unauthorisierten Zugang zu diesem System erlangen. Diese Sicherheitslücken können sich überall befinden, zum Beispiel in Anwendungen, Kommunikationsprotokollen und Betriebssystemen, aber auch in der Hardware (in Prozessoren, Router und Modems) oder in den aufgestellten Sicherheitsrichtlinien. Es gibt im Internet und in der Fachliteratur (siehe Anhang C und [19]) eine nahezu unfaßbare Menge an bekannten Sicherheitslöchern, und jeden Tag werden neue entdeckt. Die Hauptursachen hierfür sind:
- Nachlässigkeit in der Produktherstellung (z.B. ungenügende Fehlerbehandlung)
- Systemfehler (durch schlechte Programmierung oder mangelhaften Entwurf)
- Fehlerhafte Konfiguration der Hard- und Software von Computersystemen
- Ungenügende Schulung von Sicherheitspersonal und Systemanwendern
- Unzulängliche Reaktionen der Softwarehersteller
Tabelle 1: Ursachen für Sicherheitslöcher in Computersystemen
Einem Angreifer, ob neugieriger Computerfreak, Industriespion oder frustrierter Angestellter, bieten sich also genügend Möglichkeiten, um aktiv zu werden. Das Risikopotential für die Betreiber von Computersystemen ist dabei groß: Die Weitergabe vertraulicher Informationen und die Manipulation oder gar mutwillige Zerstörung wichtiger Daten durch einen Angreifer ist unweigerlich mit finanziellen und zeitlichen Verlusten für das Opfer des Angriffs verbunden.
1.2 Grundsätzliche Vorgehensweise eines Eindringlings
Die meisten Angriffe auf Computersysteme laufen, unabhängig vom zugrundeliegenden Motiv des Angreifers, nach einem festen Muster ab [19]:
1. Sammeln von Informationen über das Angriffsziel:
Auskundschaften von Netzwerktopologie, verwendeten Rechnern, Betriebssystemen und Softwareversionen, sowie Erlangung von Informationen über Systembenutzer und Hardwarestandorte.
2. Ausfindig machen von System-Schwachstellen und Beschaffen geeigneter Werkzeuge:
Durch Nachforschungen im Internet, in Sicherheitsforen, in der Fachliteratur und in Hackerkreisen, sowie eigenhändige Untersuchung von Quellcode.
3. Test
Simulation des Angriffs, um das Verhalten des Zielsystems sowie der verwendeten Werkzeuge zu analysieren.
4. Durchführen des Angriffs
5. Verwischen von Spuren:
z.B. Manipulation von Logdateien, Zeitstempeln und Dateieigenschaften, Verwendung
unauffälliger Dateinamen und Benutzeraccounts, manipulieren der Ursprungsadresse von
Netzwerkpaketen.
Tabelle 2: Vorgehensweise eines Hackers
1.3 Angriffsarten
Für die Beschreibung sämtlicher zur Zeit bekannten Angriffe gilt gleiches wie für die Behandlung des Themas Computersicherheit: Eine detaillierte Ausführung ist nicht Sinn und Zweck dieser Diplomarbeit, zudem wäre eine Liste von Angriffen aufgrund der ständigen Neuentwicklungen schon zum Zeitpunkt ihres Entstehens nicht mehr aktuell. Deshalb sei hier auf die aktuellen Mailinglisten bzw. Advisories von Sicherheitsorganisationen, System-administratoren und Herstellern von Sicherheitsprodukten, sowie auf die Websites von Hackern verwiesen (Anhang C und [19]). In diesen Quellen finden sich ausführliche Angaben über die Funktionsweise der einzelnen Angriffe.
Eine grobe Unterteilung läßt sich aber z.B. im Bereich der Angriffe, die über Daten des Netzwerkverkehrs geschehen, dennoch vornehmen:
1. Angriffe auf Paket- bzw. Protokollebene (Ausnutzung von Protokollschwächen)
Abbildung in dieser Leseprobe nicht enthalten
2. Angriffe auf der Anwendungsebene (Ausnutzung von Anwendungsfehlern)
Abbildung in dieser Leseprobe nicht enthalten
Diese (unvollständige) Auflistung soll lediglich die ungeheure Bandbreite der möglichen Angriffe über Daten des Netzwerkverkehrs andeuten. Außer den Angriffen über Netzwerkdaten gibt es noch weitere Angriffstechniken (Abhören elektromagnetischer Strahlung, Zerstörung von Rechnern, etc.), die jedoch nicht Thema der vorliegenden Arbeit sind.
1.4 Gegenmaßnahmen
Bei der Verhinderung und Erkennung von Angriffen helfen eine Vielzahl von Produkten und Organisationen (siehe Anhang C). Ausgangspunkt sind hierbei die jeweiligen Sicherheitsrichtlinien (Policies), die jede Organisation bzw. jedes Unternehmen aufstellen sollte, um ihr Sicherheitsverhalten zu formalisieren und zu reglementieren. Dabei ist es empfehlenswert, mehrere Sicherheitsmaßnahmen zu koppeln und sich nicht nur auf ein Produkt oder eine Verfahrensweise zu verlassen. Derzeit aktuelle Sicherheitsprodukte und ihre Aufgaben sind z.B.
- Firewalls: Trennung von internem und externem Netz, Zugriffsbeschränkung, Kontrolle des ein- und ausgehenden Netzwerkverkehrs
- Scanner: Automatische Schwachstellenerkennung
- Paketsniffer: Überprüfen von Netzwerkpaketen
- Paketfilter: Zugangsbeschränkung auf Paketbasis
- Netzwerküberwachungswerkzeuge: Verbindungs- und Datenflußkontrolle
- Intrusion Detection Systeme: Einbruchserkennung und Einbruchsabwehr
Tabelle 3: Sicherheitprodukte
Schwerpunktmäßig werden in der vorliegenden Diplomarbeit die beiden Komponenten Firewall und Intrusion Detection System und ihr Zusammenwirken untersucht.
2. Intrusion Detection Systeme
Bevor man mit dem Entwurf eines Intrusion Detection Systems beginnt, ist es notwendig, sich einen Überblick über die charakterisierenden Eigenschaften sowie die verschiedenen Arten von ID-Systemen zu verschaffen. Auch sollte man sich über die Arbeitsweise eines solchen Systems im klaren sein, weswegen in diesem Kapitel einige grundlegende IDS-Konzepte vorgestellt werden. Der Schwerpunkt liegt dabei auf der Beschreibung dieser Konzepte, eine Bewertung hinsichtlich des zu implementierenden IDS erfolgt in Kapitel 3 (Entwurf).
2.1 IDS-Eigenschaften
Die Haupteigenschaft eines ID-Systems ist die Fähigkeit, Angriffe auf ein Computersystem zu erkennen und eine entsprechende Reaktion auszulösen. Eine Liste weiterer charakterisierender Eigenschaften findet man in [15]. Demzufolge sollte ein IDS die nachfolgend aufgeführten Merkmale aufweisen:
- Zuverlässigkeit der Angrifsserkennung: möglichst viele Angriffe sollten bei gleichzeitig minimaler Rate von Fehlalarmen erkannt werden.
- Transparenz: Die regulären Benutzer (sowie die Angreifer) sollten das IDS nicht bemerken.
- Fehlertoleranz: Das IDS sollte durch einen Ausfall oder ein Fehlverhalten des überwachten Computersystems nicht in seiner Funktionsweise beeinträchtigt werden.
- Einbruchssicherheit: Ein IDS muß selber Angriffen widerstehen können, ggf. kann das IDS sich sogar selbst überwachen.
- Integrierbarkeit: Ein IDS sollte einfach in das zu überwachende System zu integrieren sein.
- Anpassungsfähigkeit: Veränderungen im zu überwachenden System sollten vom IDS leicht bewältigt werden.
- Täuschungsresistenz: Das IDS sollte schwer zu überlisten sein.
- Robustheit: Ausfälle des IDS sollten möglichst selten vorkommen und seine Funktion sollte nach einem Absturz schnell wieder herzustellen sein.
- Kontinuierliches Arbeiten ohne notwendige Aufsicht: Der jeweilige Benutzer sollte möglichst selten eingreifen müssen.
Tabelle 4: IDS-Eigenschaften
2.2 Klassifizierung von Intrusion Detection Systemen
Eine Klassifizierung von ID-Systemen findet man in [4]. Die wesentlichen Unterscheidungs-merkmale sind nachfolgend aufgeführt:
Hostbasiert/Netzbasiert
Dieses Kriterium bezieht sich auf die Datenquelle des IDS. Ein Hostbasiertes IDS analysiert üblicherweise Systemdaten oder Logdateien eines oder mehrerer Rechner. Diese Daten werden meist vom Audit-System des jeweiligen Betriebssystems geliefert, können aber auch durch Produkte von Drittanbietern bereitgestellt werden. Netzwerkbasierte IDS dagegen analysieren die auf dem Netzwerk anfallenden Daten, üblicherweise mittels einer im promiscous-Modus arbeitenden Netzwerkkarte. Dabei ist es wichtig, das Netzwerkinterface an einer strategisch günstigen Stelle zu positionieren, beispielsweise direkt an der Schnittstelle zwischen internem und externem Netzwerk.
Monolithisch/Verteilt
Mit diesem Merkmal wird die Architektur des IDS differenziert. Beim monolithischen Ansatz besteht das IDS aus einer einzigen Einheit, die alle Überwachungsaufgaben übernimmt. Beim verteilten Ansatz hingegen befinden sich auf den zu überwachenden Rechnern Teileinheiten des Systems, die Daten sammeln und/oder auswerten, um sie dann an eine Zentraleinheit zu senden.
Real-Time/Batch Mode
Durch dieses Kriterium wird angegeben, ob das IDS einen Angriff schon während seiner Ausführung erkennen und signalisieren kann (real-time), oder ob die Erkennung eventuell erst zu einem späteren Zeitpunkt stattfinden kann (batch mode).
Anomalienerkennung/Mustererkennung
Dieses Unterscheidungsmerkmal bezieht sich auf die Methode, mit der das IDS einen Angriff erkennt. Bei der Anomalienerkennung wird nach Abweichungen vom normalen Verhalten des überprüften Computersystems gesucht, während bei der Mustererkennung die in einem Computersystem ablaufenden Aktivitäten mit im IDS gespeicherten bekannten Angriffsmustern verglichen werden.
2.3 Arbeitsweise eines IDS
In den nun folgenden Abschnitten werden Verfahrensweisen und Techniken vorgestellt, die in einem IDS zur Angriffserkennung eingesetzt werden.
2.3.1 Datenselektion
Auswahl der zu prüfenden Daten
Ein IDS untersucht die in einem Computersystem anfallenden Daten nach Spuren eines Angriffs. Grundsätzlich kann man diese Daten in zwei Kategorien einteilen: Netzwerkdaten und Systemdaten.
Netzwerkdaten umfassen alle auf dem Netz fließenden Datenströme. Eine 1998 für das EMERALD-Projekt [10] von SRI in Kalifornien durchgeführte Untersuchung ergab beispielsweise die folgende Unterteilung des durch ein Gateway fließenden TCP/IP-Netzverkehrs:
1. Blockierte Pakete:
- Diese werden nicht durch das Gateway gelassen, weil sie Filterregeln verletzen
2. Durchgelassene Pakete:
- Protokollspezifische Pakete
Zu einem durch den Paket-Header festgelegten Protokoll gehörige Pakete (z.B. UDP).
- Verkehr für nicht zugewiesene Ports.
Pakete, die an einen Port gesendet werden, dem kein Netzwerkdienst zugewiesen ist, und die nicht vom Gateway geblockt werden.
- Transportmanagement-Nachrichten
Pakete, die dem Aufbau, der Kontrolle, und der Beendung einer Verbindung dienen: (z.B. SYN, RESET, ACK).
- Adreßüberwachter Verkehr
Pakete, deren Zieladresse ein Host im internen Netzwerk ist, und deren Quelladresse eine vertrauenswürdige externe Adresse darstellt (Session zwischen Hosts).
- Anwendungsüberwachter Verkehr
Pakete, die an einen bestimmten Dienst oder eine bestimmte Anwendung gerichtet sind (Session zwischen Anwendungen).
Tabelle 5: Unterteilung des TCP/IP-Verkehrs
Systemdaten dagegen umfassen alle auf einem Host anfallenden Daten über dessen Aktivitäten. Diese Daten werden meist vom jeweiligen Betriebssystems erstellt und in entsprechenden Logdateien (Audit Files) abgelegt. Möglicher Inhalt einer solchen Datei sind z.B Informationen über:
- Dateioperationen:
Lese- und Schreibzugriffe, Dateien erstellen, löschen, ausführen, umbenennen,
Modifikation von Zugriffsrechten, Modifikation des Besitzers,
ID des modifizierenden Prozesses, Zeitstempel.
- Ausführung von Systemroutinen (privilegiert / unprivilegiert).
- Start und Beendigung von Prozessen.
- Login-/Logout-Vorgänge.
- Peripherieoperationen:
Z.b. Aktivitäten von Festplatte, Drucker, CD-Rom.
Tabelle 6: Systemaktivitäten
Des weiteren kann man die beiden vorgestellten Datenkategorien nach der Ebene unterscheiden, in der eine Aktivität abläuft: Bei den Netzwerkdaten bedeutet dies eine Unterteilung in Daten der OSI-Schichten 1-4 (Netzwerkpakete) und in Daten der OSI-Schichten 5-7 (Anwendungen wie z.B. Telnet und FTP). Im Falle der Systemdaten unterscheidet man nach der Rechten (privilegiert / unprivilegiert), die der ausführende Prozeß besitzt. Diese Unterteilung ist willkürlich und dient lediglich der logischen Strukturierung.
Wie erhält man aus diesen Daten nun Informationen über einen eventuell stattfindenden Angriff? Die Lösung ist, nach „verdächtigen“ Aktivitäten oder nach bestimmten Aktivitätsmustern ausschau zu halten. Nachfolgend eine unvollständige und ungeordnete Liste mit Beispielen:
- Häufige Versuche, auf geschützte Dateien zuzugreifen.
- Ungewöhnliche Login-Zeiten bzw. hohe Anzahl von gescheiterten Login-Versuchen.
- Ungewöhnliche Ressourcenmonopolisierung (Netzwerk, Prozessor) oder ungewöhnliche Verwendung von Peripheriegeräten.
- Auftauchen bestimmter Schlüsselwörter im vom Benutzer generierten Datenstrom.
- Benutzung von unüblichen Internet-Protokolleinstellungen (z.B. Paketgröße).
- Verwenden potentiell kritischer Anwendungen wie z.B. rlogin, telnet, ftp und su.
- Kritische Befehlskombinationen (z.B. Erlangung einer Root-Shell).
- Ein Benutzer führt auf einmal andere Programme aus bzw. verwendet andere Befehle als sonst.
Tabelle 7: "Verdächtige" Aktivitäten
Zwei Dinge werden hierbei deutlich: Um einen Angriff feststellen zu können, sollte man Erfahrung in Systemadministration besitzen, und man muß sich zwangsläufig irgendwann mit der Problematik des Datenschutzes auseinandersetzen. Dies sei jedoch nur nebenbei bemerkt.
Um ein gesamtheitliches Bild der gerade im überwachten Computersystem stattfindenden Aktivitäten erstellen zu können und auf Angriffe hin überprüfen zu können, sollte ein IDS mindestens folgende Informationen zur Verfügung haben:
a) Kommunikationsinformationen
- Zustand der jeweiligen Kommunikationsverbindungen
- Daten aus allen Kommunikationsschichten
b) Anwendungsinformationen
- Zugriffsrechte der laufenden Anwendungen (des laufende Prozesses)
- Aktivitäten der laufenden Anwendungen
Damit erhält man sowohl eine externe als auch eine interne Sicht auf die sicherheitsrelevanten Vorgänge eines Rechners. Das IDS kann so zum einen Kommunikationsabläufe und Kommunikationsinhalte, zum anderen auf dem Rechner ablaufende Befehle und deren Auswirkungen überwachen. Es reicht dabei nicht aus, die vorhandenen Informationen voneinander isoliert zu betrachten. Zum Beispiel sollten, um zeitlich verzögerte Angriffe zu erkennen, Informationen über zurückliegende Kommunikationsverbindungen oder in der Vergangenheit ausgeführte Befehle gleichsam in Betracht gezogen werden. Auch kann die Kombination verschiedener gleichzeitig eintreffender Informationen zu mehr Klarheit über die gerade ablaufenden Aktivitäten führen, als das bei der jeweils einzelnen Betrachtung der Informationen möglich wäre. Dies ist z.B. bei Angriffen der Fall, die mehrere Sicherheitslücken gleichzeitig ausnutzen, oder bei Angriffen, die aus einer Kombination von in sich selbst harmlosen Aktionen bestehen.
2.3.2 Datenanalyse
Nachdem nun die für das IDS notwendigen Daten beschrieben sind, gilt es, sich dem Prozeß der eigentlichen Angriffserkennung selbst zu widmen. Dabei wird zwischen zwei Methoden unterschieden [4]: Bei der statistischen Anomalienerkennung wird nach einer Abweichung vom „Normalverhalten“ eines Computersystems gesucht, während bei der Musterekennung überprüft wird, ob die festgestellten Aktivitäten mit einem vordefinierten Angriffsmuster übereinstimmen. Nachfolgend werden beide Analysemethoden erläutert.
Statistical Anomaly Detection
Diese Methode der Angriffserkennung hat zwei Voraussetzungen:
1. Definition eines „Normalverhaltens“
2. Definition von Messungen
Die Bestimmung des Normalverhaltens eines Computersystems läßt sich folgendermaßen lösen: Das IDS mißt in regelmäßigen Abständen die benötigten Systemparameter wie z.B. die Häufigkeit gescheiterter Logins oder die Anzahl der offenen Netzwerkverbindungen, und bildet dann einen jeweiligen Mittelwert. Die Abstände zwischen den Meßpunkten sollten dabei allerdings nicht zu groß sein. Eine andere Möglichkeit besteht im Setzen eines Erfahrungswertes durch den Benutzer. Allerdings besteht die Gefahr, daß ein solches System von einem Angreifer nach und nach dazu „trainiert“ wird, die Normalwerte so zu verändern, daß ein späterer Angriff nicht mehr auffällt. In diesem Falle kann das IDS Trendanalysen zur genaueren Differenzierung der Aktivitäten verwenden.
Mit der Definition von Messungen haben sich die Mitarbeiter des EMERALD-Projekts [10] bereits eingehend befaßt. Dabei wurden eine Reihe von Kriterien aufgestellt, die von einem IDS zur Analyse der ihm zur Verfügung stehenden Informationen verwendet werden können.
1. Kategorische Messungen
- Ziel/Quelladresse: Es werden in der Regel Zugriffe von bekannten Hosts erwartet.
- Ausgeführte Befehle: Angreifer verwenden meist unübliche Befehlskombinationen.
- Protokolle: Ungewöhnliche Verbindungsanforderungen können ein Hinweis auf einen Angriff sein.
- Fehlercodes beim Ausführen von Systemfunktionen: Sie können auf einen Angriffsversuch hinweisen.
- Fehlerhafte Dienstanforderungen oder mißgebildete Pakete: Auch sie sind oft ein Warnzeichen für einen Angriff.
2. Zeitkontinuierliche Messungen
- Anzahl der in einer bestimmten Zeitspanne registrierten Fehlermeldungen.
- Paketanzahl bzw. Anzahl KB, die über eine Leitung gehen.
- Vergleich von Zeitstempeln zwischen Ereignissen (z.B. Dauer einer Verbindung).
3. Intensitätsmessungen
- Plötzliche Veränderung des Datenvolumens im Vergleich zur Vorgeschichte (z.B. Anzahl verworfener Pakete).
- Drastische Veränderung der Anzahl von Verbindungsanforderungen.
4. Korrelationsmessungen:
- Veränderung der Messungen 1-3 durch bestimmte Ereignisse (z.B. Ausführen des ls- Befehls).
Tabelle 8: Statistische Messungen
Anhand der hier beschriebenen Messungen kann das IDS nun entscheiden, ob z.B. eine gerade ablaufende FTP-Session vom historischen Profil aller vorherigen FTP-Sessions abweicht und ob diese Abweichung auf einen Angriff hinweist oder nicht: FTP ist in der Regel auf bestimmte Dateien und Verzeichnisse beschränkt. Versuchte Zugriffe auf unerlaubte Dateien erscheinen als Häufung von Anomalien (Fehlermeldungen), die mit der zeitkontinuierlichen Messung erfaßt werden können. Ungültige Anforderungen, wie sie z.B. von Hackern zum Überlisten des FTP-Protokolls verwendet werden, würden zu Fehlern führen, die durch die kategorische Messung auffallen würden. Mit Hilfe der Intensitätsmessung könnte man z.B. ein sprunghaftes Ansteigen der über FTP versendeten Daten zu einer ungewöhnlichen Zeit (z.B. 4 Uhr Morgens) feststellen.
Eine detailliertere Ausführung über die statistischen Verfahren, die bei der vorgestellten Analysetechnik angewandt werden, findet sich in der Beschreibung von IDES [11], einem Vorgänger von EMERALD.
Pattern Matching
Bei dieser Methode der Angriffserkennung werden die momentan stattfindenden Aktivitäten des Computersystems mit im IDS gespeicherten Angriffssignaturen verglichen. Die Signatur eines Angriffs kann man definieren als die Gesamtheit der Aktivitäten und Ereignisse, die nötig sind, um den Angriff erfolgreich durchzuführen.
Das folgende Beispiel zeigt eine TCP-Verbindung zwischen Host 1.2.3.4 (Angreifer) und Host 4.3.2.1 (Opfer), während der eine SendMail-Attacke ausgeführt wird, mit der der Angreifer eine Kopie der UNIX-Paßwortdatei erhält.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1: Angriffssignatur
Ein solches Angriffsmuster läßt sich innerhalb eines IDS speichern. Falls die gerade stattfindenden Aktionen mit dem gespeicherten Muster übereinstimmen, so ist der Angriff erkannt. Das USTAT-System [12] verwendet dafür folgenden Ansatz: Ein Angriff wird als eine Sequenz von Ereignissen betrachtet, die zeitlich auseinander liegen können und nicht immer in der gleichen Reihenfolge stattfinden müssen. So können z.B. die Sequenzen ABCF und AAACBDEF den gleichen Angriff repräsentieren. Ein UNIX-Beispiel:
cp /bin/sh /usr/mail/spool/root
chmod 4755 /usr/spool/mail/root
touch x
mail root < x
Unter Benutzung von BSD mail 4.2 kann man auf diese Weise eine Root-Shell erhalten. Zunächst erstellt der Angreifer eine Kopie der Shell, die von jedem ausführbar ist und den Namen der Root-Mailbox besitzt. Dann setzt er die Setuid-Eigenschaft der gerade erstellten Datei, wodurch sie später unabhängig davon, von wem sie gestartet wird, mit den Rechten ihres Eigentümers ausgeführt wird. Schließlich verwendet der Angreifer die Eigenschaft des Mailprogramms, jede für Root bestimmte Mail an die Mailboxdatei (die präparierte Shell-Kopie) anzufügen und den Eigentümer dieser Datei auf Root zu setzen. Damit ist das Ziel des Angreifers erreicht. Es ist ersichtlich, daß die Reihenfolge der 2. und 3. Anweisung auch vertauscht werden könnte, oder das die Datei x mit mehreren Alternativbefehlen erstellt werden könnte. Dieses Problem wird effizient durch den Einsatz von Finite State Machinen (FSM) gelöst, wobei die einzelnen ablaufenden Systemaktivitäten bzw. Angriffsaktionen die Zustandsübergänge definieren. In jedem Zustand gelten bestimmte Fakten, die durch Systemroutinen-Aufrufe wie z.B. exists(Datei) oder owner(Datei) überprüft werden können. Als ein solcher Endlicher Automat formuliert, sieht das zuvor beschriebene Beispiel folgendermaßen aus:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2: Pattern Matching mit Endlichen Automaten
USTAT verwendet dabei zur genaueren Differenzierung der gerade ablaufenden Aktivitäten bzw. der Zustandsübergänge das folgendermaßen definierte Tripel [Subjekt, Aktion, Objekt]:
Subjekt = Benutzer-ID, effektive Benutzer-ID (bei Rechte-Eskalation)
Aktion = Aktionstyp (z.B. read, write, delete), Prozeß-ID, Zeitstempel
Objekt = Name, Zugriffsberechtigungen, Besitzer
Die Realisierung des Pattern Matchings mit Endlichen Automaten ist nur eine Möglichkeit von vielen und wird hier lediglich zur Veranschaulichung der Problematik dargestellt. Andere Techniken sind z.B. Expertensysteme, Neuronale Netze und Entscheidungsbäume [4].
Threshold Analysis
Dies ist eine weitere, allerdings recht einfache Technik der Angriffserkennung: Es wird die Häufigkeit bestimmter Ereignisse (z.B. Loginversuche) gezählt und bei Überschreitung eines Schwellenwertes wird ein Alarm ausgelöst.
2.3.3 IDS-Sprachen
Die Konfiguration der Angriffserkennung und Reaktion eines IDS, d.h. welche Angriffe wie erkannt werden und welche Reaktionen daraufhin ausgelöst werden, kann entweder hart kodiert werden oder mittels einer speziellen IDS-Sprache durchgeführt werden. Die letztere Alternative ist dabei wesentlich flexibler und transparenter. Zum Vergleich seien hier drei Beispiele von Intrusion Detection Sprachen aus der Praxis dargestellt:
N – CODE
Diese Sprache wird im Network Flight Recorder (NFR) [6] benutzt. Der NFR ist eigentlich ein Netzwerküberwachungswerkzeug, das aber auch zur Intrusion Detection eingesetzt werden kann. Der N-Code wird über einen eingebetteten YACC-Parser interpretiert und besitzt eigene Datentypen (z.B. ethmac für Ehternet MAC-Adressen). Nachfolgend ein Beispiel: Hierbei handelt es sich um die Erkennung einer Land-Attacke, bei der von einem Angreifer manipulierte IP-Pakete an einen Zielrechner gesendet werden. Die Absenderadresse und die Empfängeradresse der Pakete stimmen dabei mit der des Zielrechners überein. Der Effekt dieser Attacke ist, daß Windows95 wesentlich langsamer operiert, wenn der Hostrechner versucht, sich selbst zu antworten.
Abbildung in dieser Leseprobe nicht enthalten
INSPECT
Checkpoints Firewall-1 [7] verwendet INSPECT eigentlich, um Filterregeln zu definieren. Durch die Möglichkeit der Angabe einer Reaktion auf bestimmte empfangene Pakete läßt sich ansatzweise ein IDS-ähnliches Verhalten erreichen. INSPECT hat keine Sprachkonstrukte wie Schleifen oder If-Anweisungen, ist aber eine objektorientierte Skriptsprache. Das Skript wird dabei automatisch durch die mittels einer grafischen Oberfläche eingegebenen Security Policy (=Sicherheitsrichtlinie) der Firewall erzeugt. Der entstehende Quellcode wird anschließend compiliert und in die Firewall geladen.
Ein Beispiel: Um FTP-Zugriffe zu einer bestimten Tageszeit zu entdecken, wird zunächst mit der Anweisung „tcp, ftp, tod>20:00:00, tod<08:00:00“ ein Dienst namens Illegal_FTP definiert. Dieser schlägt Alarm, wenn FTP-Verbindungen innerhalb der angegebenen Zeiten stattfinden. Schließlich wird eine Regel in die Firewall-Regeldatenbank eingefügt:
[...]
-
-
-
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.