Michael Meier

Intrusion Detection effektiv!

Modellierung und Analyse von Angriffsmustern

CD-ROM zum Buch

© Springer-Verlag Berlin Heidelberg 2007

Inhalt der CD-ROM

Diese CD-ROM enthält Vorabversionen von zwei im Buch genannten Werkzeugen. Dazu gehört das Intrusion-Detection-System SAM (Signature Analysis Module) sowie das Programm SEG (Snoopy-based EDL GUI) zur graphischen Erstellung und Veranschaulichung von Signaturen in der im Buch eingeführten Sprache EDL (Event Description Language). Aktuelle Versionen der Werkzeuge sind auf der Web-Seite http://www-seg.informatik.tu-cottbus.de erhältlich.

Für diese Werkzeuge exisitieren drei Anwendungsszenarien in der Signaturentwicklung:

  • der Signaturentwurf,
  • der Signaturtest und
  • die Statusanzeige der Signaturanalyse.

Die erforderliche Kommunikation zwischen SEG und SAM wurde mittels CORBA realisiert. Ein hierfür erforderlicher Namensdienst (CORBA Name Service) ist ebenfalls auf der CD-ROM enthalten. Dabei handelt es sich um den Namensdienst des unter der GNU General Public License verfügbaren omniORB (http://sourceforge.net/projects/omniorb/).

Im folgenden werden die drei genannten Anwendungsszenarien beschrieben und anhand von Beispielen veranschaulicht.

Installation

Die auf der CD-ROM enthaltenen Werkzeuge wurden auf einem PC mit dem Betriebssystem Windows XP Service Pack 2 getestet. Zur Installation der Programme, ist lediglich der gesamte Ordner "idstools" auf die Festplatte zu kopieren.

Danksagung

Mein herzlicher Dank für die Entwicklung und Bereitstellung der Werkzeuge SAM und SEG gilt Christian Rohr und Sebastian Schmerl.

Anwendungsszenarien in der Signaturentwicklung

In den folgenden Abschnitten werden die Anwendungsszenarien der Werkzeuge SAM und SEG für

  • den Signaturentwurf,
  • den Signaturtest und
  • die Statusanzeige der Signaturanalyse.
näher erläutert und demonstriert.

Inhalt

1 Signaturentwurf
1.1 Beispiele: Signaturentwurf
2 Signaturtest
2.1 Demo: Signaturtest
3 Statusanzeige
3.1 Demo: Statusanzeige

1 Signaturentwurf

Die Arbeitsoberfläche von SEG unterteilt sich in drei Bereiche (vgl. Abb. 1). Auf der linken Seite sind die Grundelemente der Sprache EDL (Plätze, Transitionen etc.) in einer Baumstruktur angeordnet. Diese können von dort per Drag & Drop auf dem rechten Bereich, dem eigentlichen Arbeitsblatt, zu einer Signaturbeschreibung angeordnet werden. Ebenfalls auf der linken Seite unterhalb der Grundelemente werden die einzelnen EDL-Events, die durch die geöffnete Signaturbeschreibung definiert werden, in einer Baumstruktur dargestellt. Durch einen Doppelklick auf eines dieser Events wird die entsprechende Signatur als eigenständiges Arbeitsblatt dargestellt. 

=

Abbildung 1: SEG Arbeitsoberfläche

Der Entwurf einer neuen Signatur beginnt mit dem Erstellen eines leeren Dokuments entweder über File – New... oder über das entsprechende Symbol in der Toolbar. Als erstes muss auf dem leeren Arbeitsblatt ein neues Event erzeugt werden. Das neue Event besitzt noch keinen Namen. Die Eigenschaften eines grafischen Grundelementes können per Doppelklick auf das Symbol erreicht werden. Nachdem der Name des neuen Events eingegeben wurde, erscheint dieser über dem Symbol und auf der linken Seite. Es können beliebig viele Events erzeugt werden.

Um das noch leere Event zu füllen, kann es durch Doppelklick auf den Eintrag in der Baumstruktur oder per Shift+Doppelklick auf das Symbol auf dem Arbeitsblatt geöffnet werden. Jetzt können die Grundelemente der Signatur per Drag & Drop auf dem Arbeitsblatt angeordnet und durch Kanten miteinander verbunden werden. Die Eigenschaften der einzelnen Elemente der Signatur müssen nun noch spezifiziert werden. Durch einen Doppelklick auf das jeweilige Symbol wird ein entsprechender Dialog geöffnet. Den Plätzen muss ein eindeutiger Name zugeordnet werden und eventuell vorhandene Features sind einzutragen. Einzelne Features müssen zeilenweise angegeben werden und der Syntax von EDL entsprechen. Bei den Eigenschaften der Transitionen (vgl. Abb. 2) ist ebenfalls darauf zu achten, dass die Syntax der Eintragungen der Event Description Language entspricht. Die neue Signatur kann jetzt im SEG eigenen Dateiformat über File – Save gesichert werden, wobei die Layoutinformationen erhalten bleiben. Signaturen können über File – Export – Export EDL auch in das EDL-Dateiformat exportiert werden, wobei die Layoutinformationen verloren gehen.

SEG Eigenschaftendialog für Transitionen

Abbildung 2: SEG Eigenschaftendialog für Transitionen

Vorhandene Signaturen im EDL-Dateiformat können über File – Import – Import EDL in SEG importiert werden, um diese zu verändern oder zu testen. Beim Import einer EDL-Signatur ist zu beachten, dass keinerlei Layoutinformationen vorliegen. Um dem Anwender dennoch eine brauchbare Darstellung der Signatur zu liefern, besitzt SEG eine Layoutkomponente. Nach dem Import wird automatisch ein Layoutdialog geöffnet, in dem der Anwender zwischen verschiedenen Layoutalgorithmen wählen kann. Als praktikabel haben sich die Algorithmen DOT und NEATO erwiesen.

1.1 Beispiele: Signaturentwurf

Als Beispiele für Signaturen, die mit SEG erstellt wurden, sind auf der CD-ROM im Unterverzeichnis testdata die Dateien loginattack.edlsig, pathattack.edlsig und linkattack.edlsig für die entsprechenden Signaturen enthalten sowie die Datei all.edlsig, die alle drei Signaturen enthält. Diese Dateien können nach dem Start von SEG (SnoopyVC.exe) über File – Open... in SEG verwendet werden. Außerdem liegen die Signaturen in den entsprechenden Dateien linkattack.desc, pathattack.desc, loginattack.desc und all.desc als EDL-Beschreibung ohne Layoutinformation vor. Diese Dateien können über File – Import – Import EDL importiert werden.

2 Signaturtest

Das Testen von Signaturen stellt ein weiteres Anwendungsszenario von SEG dar. Zu diesem Zweck ist in SEG ein entsprechender Debug-Modus integriert, der es dem Anwender erlaubt, Signaturen mit aufgezeichneten oder manuell erstellten Audit-Daten zu testen. Um diese Tests durchführen zu können, wurde eine Anbindung an das Signaturanalysemodul SAM integriert. SEG übergibt SAM die zu analysierenden Signaturen und Audit-Daten. SAM analysiert diese und meldet Informationen über Analysevorgänge bzw. -Fortschritt an SEG zurück. Die Kommunikation zwischen SEG und SAM wird dabei mittels CORBA realisiert.

Vor dem Beginn des Analyseprozesses muss zunächst der Name Service von CORBA und danach das Analysemodul SAM im Debug-Modus gestartet werden. Daraufhin kann in SEG die zu untersuchende Signatur geöffnet werden. Die zur Analyse verwendeten Audit-Daten werden ebenfalls in SEG über den Menüpunkt Debug – Load Audit Record geladen. Sie werden im oberen Bereich der Arbeitsoberfläche dargestellt (vgl. Abb. 3 oben) und können verändert werden, um die Reaktion der Signatur auf spezifische Audit-Ereignisse zu testen. Die modifizierten Audit-Records können mittels Debug – Save Audit Record gespeichert werden. Über den Menüpunkt Debug – Hide Columns ist es möglich, die Darstellung der Audit-Records zu beeinflussen. Im darauf folgenden Dialog können einzelne Daten der Audit-Records aus- bzw. eingeblendet werden. Die Initialisierung des Analysevorgangs erfolgt über Debug – Set Signature, wobei die geladene Signatur an SAM übertragen wird. Daraufhin kann der Signaturtest beginnen. Das ausgewählte Audit-Record kann per Debug – Step oder durch Drücken der Taste F6 zur Analyseeinheit übertragen und analysiert werden. Es besteht die Möglichkeit mehrere Audit-Records zu markieren und im Block zu übermitteln. Nach der Analyse der übertragenen Audit-Records wird das Endergebnis an SEG zurückgeben und durch entsprechende Token in der Signatur dargestellt (vgl. Abb. 3 unten).

Abbildung 3: SEG Signaturtest

Ändert sich die Tokenbelegung einer Signatur während eines Analyseschrittes, so wird in der Baumansicht das entsprechende Event rot hervorgehoben, um den Fortschritt dieser Signatur anzuzeigen. Entsteht bei der Analyse ein neues Token auf einem Platz, so wird dieser Platz rot eingefärbt. Wird ein Token von einem Platz gelöscht, so färbt sich dieser Platz grün. Ein Platz erscheint blau, wenn ein Token auf diesem Platz verändert wird. Eine Transition, die im aktuellen Analysedurchlauf geschaltet hat, wird gelb dargestellt (vgl. Abb. 3 unten). Die Gesamtanzahl der Token auf den Exit-, Escape- sowie Init- und Interior-Plätzen wird in der Top-Level Ansicht unter dem jeweiligen Event angezeigt (vgl. Abb. 3 mittig).

Die Wertebelegungen der Token auf den Plätzen können über den Eigenschaftendialog der Plätze (Doppel-Klick auf das Platzsymbol) abgefragt werden (vgl. Abb. 4). Im Reiter Token werden die aktuellen Token zeilenweise dargestellt. Es ist möglich, die Wertebelegung der Token zu ändern, neue Token hinzuzufügen oder Token zu löschen. Damit die veränderte Tokenbelegung bei der weiteren Analyse berücksichtigt wird, muss sie per Debug – Set Marking an das Analysemodul übertragen werden. Der Reiter New Token stellt die im letzten Analyseschritt hinzugekommenen Token und der Reiter Old Token die Tokenbelegung vor dem letzten Analyseschritt dar.

Abbildung 4: Tokenbelegung

Die durch die Analyse entstehenden Markierungen der Plätze mit Token können abgespeichert werden. Dazu existieren zwei Möglichkeiten. Zum Einen kann die aktuelle Markierung ohne die Signatur in einer Datei gespeichert werden (Status – Save Marking). Zum Anderen kann die aktuelle Tokenbelegung auch im SEG Dateiformat mit der Signatur zusammen gespeichert werden (Datei – Speichern). Das Laden einer gespeicherten Markierung über Status – Load Marking überschreibt die aktuelle Tokenbelegung in der aktuellen Signatur. Um die Analyse der Signatur mit dieser Markierung zu beginnen, muss nach der Übertragung der Signatur, die Tokenbelegung per Debug – Set Marking an SAM übertragen werden. Anschließend kann die Analyse wie beschrieben durchgeführt werden. Das Löschen der aktuellen Markierung kann per Status – Clear Marking erfolgen.

Sollte während eines Tests der CORBA Name Service oder SAM neu gestartet werden müssen, so kann die Kommunikation der Module in SEG Debug – ReInit Corba neu initialisiert werden.

2.1 Demo: Signaturtest

Zur Demonstration des Anwendungsszenarios können mit den auf der CD-ROM im Unterverzeichnis testdata enthaltenen Testdaten die folgenden Schritte durchgeführt werden. Dabei wird die Signatur für die Login-Attacke verwendet und die Test-Audit-Daten werden schrittweise analysiert.

  1. Starten des CORBA Name Service durch Ausführen von start_omninames.bat.
  2. Starten von SAM im Debug-Modus durch Aufruf von start_sam_debug.bat.
  3. Starten von SEG durch Aufruf von SnoopyVC.exe.
  4. Laden der Signaturbeschreibungsdatei loginattack.edlsig im Verzeichnis testdata in SEG über File – Open....
  5. Laden der Test-Audit-Daten-Datei AuditRecord.txt im Verzeichnis testdata in SEG über Debug – Load Audit Record.
  6. Übertragen der Signatur von SEG an SAM über Debug – Set Signature.
  7. Öffnen der Ansicht der Signatur für die Login-Attacke durch Klicken auf loginAttack in der Baumstruktur links unten auf der SEG-Arbeitsoberfläche.
  8. Starten der schrittweisen Analyse durch Drücken von F6.
  9. Durchführen weiterer Analyseschritte durch Drücken von F6.
  10. ...
  11. Beenden von SEG, CORBA Name Service und SAM durch Schließen der entsprechenden Fenster.

3 Statusanzeige der Signaturanalyse

Das Werkzeug SEG kann auch dazu verwendet werden, um den aktuellen Zustand des Intrusion-Detection-Systems SAM nach der Verarbeitung von Audit-Daten abzufragen und zu veranschaulichen. Voraussetzung dafür ist, dass der Name Service von CORBA gestartet ist und in SEG die von SAM analysierten Signaturen geladen wurden. Über den Menüpunkt Status – Get Marking kann der Analysezustand von SAM abgefragt und entsprechend als aktuelle Tokenbelegung in SEG dargestellt werden. Zu beachten ist dabei, dass der Analysezustand erst nach Beendigung des aktuellen Analysedurchlaufs des IDS an SEG übertragen wird, um konsistente Daten zu erhalten.

3.1 Demo: Statusanzeige

Zur Demonstration des Anwendungsszenarios können mit den auf der CD-ROM enthaltenen Testdaten die folgenden Schritte durchgeführt werden. Dabei werden alle Test-Signaturen verwendet und mit den Test-Audit-Daten durch SAM analysiert. Im Anschluss wird mit SEG der Analysezustand abgefragt und dargestellt.

  1. Starten des CORBA Name Service durch Ausführen von start_omninames.bat.
  2. Starten von SAM mit allen Testsignaturen und den Test-Audit-Daten. Dazu ist im Installationsverzeichnis auf der Kommandozeile  "sam.exe testdata\all.desc testdata\AuditRecord.txt" auszuführen. Während der Analyse werden von SAM verschiedene Ausgaben erzeugt und nach kurzer Zeit sind alle Test-Audit-Daten analysiert.
  3. Starten von SEG (SnoopyVC.exe) und Laden der Signaturbeschreibung. Dazu wird über File – Open... die Datei all.edlsig im Verzeichnis testdata geöffnet.
  4. Abfragen des Analysezustands über Status – Get Marking.
  5. Betrachten der Zustände/Markierungen der Signaturen.
  6. ...
  7. Beenden von SEG, CORBA Name Service und SAM durch Schließen der entsprechenden Fenster.