maschinelle lernverfahren zur anomalie-erkennung aus...

56
April 2018 September 2018 Erstgutachter: Prof. Dr. Sebastian Abeck Zweitgutachter: Prof. Dr. Bernhard Neumair Betreuender Mitarbeiter: Michael Schneider Cooperation & Management (C&M, Prof. Abeck) Institut für Telematik, Fakultät für Informatik www.cm.tm.kit.edu KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft Masterarbeit Patrick Glück Maschinelle Lernverfahren zur Anomalie-Erkennung aus Aufzeichnungsdaten von Web- Anwendungen

Upload: others

Post on 10-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

April 2018 – September 2018

Erstgutachter: Prof. Dr. Sebastian Abeck

Zweitgutachter: Prof. Dr. Bernhard Neumair

Betreuender Mitarbeiter: Michael Schneider

Cooperation & Management (C&M, Prof. Abeck)

Institut für Telematik, Fakultät für Informatik

www.cm.tm.kit.edu

KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Masterarbeit

Patrick Glück

Maschinelle Lernverfahren zur Anomalie-Erkennung aus Aufzeichnungsdaten von Web-Anwendungen

Page 2: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung
Page 3: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Ehrenwörtliche Erklärung iii

Ehrenwörtliche Erklärung

Ich erkläre hiermit, die vorliegende Arbeit selbstständig verfasst und keine anderen als die an-

gegebenen Quellen und Hilfsmittel verwendet zu haben.

Karlsruhe, den 30. September 2018

Patrick Glück

Page 4: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung
Page 5: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Inhaltsverzeichnis v

Inhaltsverzeichnis

1 Einleitung 1

1.1 Einführung in das Themengebiet .......................................................................................... 1

1.1.1 Projektszenario ....................................................................................................... 2

1.1.2 C&M-Software-Entwicklung ................................................................................. 3

1.2 Behandelte Fragestellungen in dieser Arbeit ......................................................................... 4

1.3 Demonstrator und dessen Komponenten ............................................................................... 4

1.3.1 Allgemeine Beschreibung der Demonstrator-Komponenten ................................. 5

1.3.2 Feature-Beschreibung der wichtigsten Komponenten ........................................... 6

1.4 Gliederung der Arbeit ............................................................................................................ 8

2 Grundlagen 11

2.1 Account Misuse ................................................................................................................... 11

2.2 Anomalien ........................................................................................................................... 11

2.2.1 Was sind Anomalien? .......................................................................................... 11

2.2.2 Arten von Anomalien ........................................................................................... 11

2.2.3 Anomalie-Erkennung ........................................................................................... 12

2.3 Intrusion Detection (Systeme) ............................................................................................. 12

2.3.1 Ausprägungen von Intrusion Detection Systemen ............................................... 13

2.4 Maschinenlernen ................................................................................................................. 14

2.4.1 Arten von Maschinenlernen ................................................................................. 14

2.4.2 Prozess des Maschinenlernens ............................................................................. 15

2.5 Aufzeichnungsdaten ............................................................................................................ 15

2.5.1 Log-Formate ......................................................................................................... 15

2.5.2 Vorverarbeitung ................................................................................................... 16

2.5.3 Feature-Extraktion / -Selektion ............................................................................ 16

2.6 Application Programming Interfaces .................................................................................. 16

2.6.1 OpenAPI Spezifikation & Swagger ..................................................................... 17

2.7 Microservice(-Architektur) ................................................................................................. 17

2.8 Python.................................................................................................................................. 17

2.8.1 Flask & Flask-RESTful ........................................................................................ 17

2.8.2 Flasgger ................................................................................................................ 18

2.8.3 Nameko ................................................................................................................ 18

2.9 RabbitMQ ............................................................................................................................ 20

2.10 Elasticsearch ........................................................................................................................ 20

2.11 Wahrscheinlichkeitsdichte-Verteilung ................................................................................ 20

Page 6: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

3 Stand der Technik / Forschung 23

3.1 Architektur des Kooperationspartners und Integrationsansatz der Anomalie-Erkennung.. 23

3.1.1 Aufbau der Technologie-Umgebung ................................................................... 23

3.1.2 Integrationsansatz für die Anomalie-Erkennung ................................................. 25

3.2 Betrachtete Verfahren ......................................................................................................... 27

3.2.1 Bag of Words-Ansatz .......................................................................................... 27

3.2.2 NNIDS ................................................................................................................. 28

3.2.3 Anomalie Erkennung von Nutzerverhalten zur Datenbank-

sicherheitsüberprüfung basierend auf OCSVM .................................................................. 28

4 Prozessmodell für die Anomalie-Erkennung 29

4.1 Erläuterung des Einsatzumfelds ......................................................................................... 29

4.2 Definition der Artefakte ...................................................................................................... 29

4.3 Schnittstellen-Kommunikation ........................................................................................... 29

4.4 Orchestrierung der Komponenten....................................................................................... 29

5 Komponenten des Erkennungsprozesses 31

5.1 Erzeugung von Nutzermodellen ......................................................................................... 31

5.1.1 Notwendigkeit ..................................................................................................... 31

5.1.2 Aufbau der Verhaltensmodelle ............................................................................ 31

5.1.3 Anomalien ........................................................................................................... 33

5.1.4 Aufbau und Funktionsweise des Generators ....................................................... 33

5.1.5 Umwandlung in einen Microservice ................................................................... 34

5.2 Verarbeitung der Aufzeichnungsdaten ............................................................................... 34

5.2.1 Daten-Bereinigung .............................................................................................. 34

5.2.2 Aggregation in IP/User-Packete .......................................................................... 34

5.2.3 Erzeugung von Sitzungen .................................................................................... 34

5.3 Anwendung des maschinellen Lernverfahren .................................................................... 34

5.3.1 Erklärung des Verfahren...................................................................................... 34

5.3.2 Umsetzung in diesem Umfeld ............................................................................. 34

5.4 Visualisierung ..................................................................................................................... 34

6 Einsatz in der Betriebsumgebung 35

6.1 Aufbau der Testumgebung ................................................................................................. 35

6.2 Umsetzung der Erweiterungen ........................................................................................... 35

6.3 Betrieb der Lösung ............................................................................................................. 35

6.4 Evaluation der Ergebnisse .................................................................................................. 35

6.5 Inbetriebnahme beim Kooperationspartner ........................................................................ 35

Page 7: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Inhaltsverzeichnis vii

7 Projektteam-Arbeiten 37

7.1 Zusammensetzung des Projektteams ................................................................................... 37

7.2 Zu bearbeitendes Themengebiet .......................................................................................... 37

7.2.1 Aufgabenstellungen .............................................................................................. 38

7.2.2 Zielsetzungen ....................................................................................................... 38

7.3 Einarbeitung des Projektteams ............................................................................................ 39

7.4 Bearbeitung der Aufgabenstellungen .................................................................................. 39

7.5 Ergebnisse der Projektteam-Arbeit ..................................................................................... 40

7.6 Evaluation der Zusammenarbeit .......................................................................................... 40

8 Zusammenfassung und Ausblick 41

Anhänge XLIII

A Beiträge zu WASA-Kurseinheiten ................................................................................ XLIII

B Literaturanalysen ............................................................................................................ XLV

C Literatur ........................................................................................................................ XLVII

Page 8: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung
Page 9: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Einleitung 1

1 Einleitung

Dieses erste Kapitel gewährt zunächst einen groben einführenden Einblick in die behandelte

Thematik. Hierbei wird zuerst motiviert, weshalb die Anomalie-Erkennung aus Aufzeichnungs-

daten von Web-Anwendungen mit Hilfe von maschinellen Lernverfahren interessant und wün-

schenswert ist. Anschließend folgen eine Beschreibung des Projektszenarios, auf welchem diese

Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung eines Software-

Systems bei C&M unter Verwendung von Behavior-Driven Development und Domain-Driven

Design. Aufbauend auf der zuvor beschriebenen Thematik werden die Fragestellungen, die für

die Umsetzung des in der Arbeit beschriebenen Projekts relevant sind, erläutert. Aus den Frage-

stellungen lässt sich anschließend die dabei entstehende Demonstrator-Anwendung ableiten und

beschreiben. Dieser Demonstrator ist für die Umsetzung und Visualisierung der Verarbeitung

der Aufzeichnungsdaten sowie der betrachteten Lernverfahren zuständig. Den Abschluss dieses

ersten Kapitels bildet ein Überblick über die folgenden Kapitel und die dadurch entstehende

Struktur dieser Arbeit.

1.1 Einführung in das Themengebiet

Durch die fortschreitende Digitalisierung und die damit einhergehende Auslagerung von Ver-

waltungs- und Anwendungsprozessen in Web-Applikationen gewinnt der Schutz dieser Soft-

ware-Systeme immer mehr an Bedeutung. Hierbei ist der Schutz nicht nur für den Nutzer, des-

sen Informationen und Nutzungsverhalten erhoben werden, relevant. Auch Organisationen, die

diese Web-Anwendungen anbieten, müssen Maßnahmen für die Sicherheit ihrer Nutzer umset-

zen. Das Vertrauen der Nutzer ist eines der wichtigsten Güter für diese Organisationen und da-

her müssen die Daten und Konten bestmöglich vor Missbrauch und Kompromittierung ge-

schützt werden. [MV-AMD]

Um Anwendungen oder Netzwerke und deren Bestandteile vor Kompromittierung zu schützen,

entwickelten sich über die letzten Jahrzehnte hinweg sogenannte Intrusion Detection Systeme

oder kurz IDS. Erste Schritte in Richtung eines Intrusion Detection Systems machte James An-

derson von der National Security Agency in seiner Arbeit. Zu Beginn dienten Intrusion Detec-

tion Systeme, als Werkzeug für Administratoren, um Logs besser prüfen zu können. Über die

Jahre hinweg war es nötig diese Systeme und deren Fähigkeiten weiterzuentwickeln, um den

sich wandelnden Anforderungen anzupassen. Heutzutage ist die Verwendung solcher Intrusion

Detection Systeme in nahezu jeder größeren Organisation zu finden. Hauptunterscheidungs-

Merkmal von IDS ist die unterschiedliche Methodik. Unterscheiden lässt sich hier hauptsächlich

die Verwendung von Missbrauchs-Erkennung und Anomalie-Erkennung. Es existieren noch

weitere Methodiken, welche allerdings eher selten verwendet werden. Eine genauere Erläute-

rung zu IDS und deren Ausprägungen wird im Grundlagen-Kapitel gegeben.

Bei der Nutzung einer jeden Web-Anwendung werden auf einem Server Aufzeichnungsdaten,

sogenannte Log-Dateien, erstellt. Diese Dateien beinhalten jegliche Aktionen und Zugriffe, die

ein Nutzer tätigt. Access-Logs dokumentieren beispielsweise die IP-Adresse, den Zeitstempel

und die Ressource, auf die zugegriffen wurde. Die Aufzeichnungsdaten enthalten jedoch weitere

Details mit denen letztendlich über einen gewissen Zeitraum ein Verhaltensprofil des Nutzers

gebildet werden kann.

Page 10: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

2 Einleitung

Anhand dieses Verhaltens können mit verschiedenen Technologien Anomalien und eventuell

eine Kompromittierung des Nutzerkontos festgestellt werden. Beispielsweise würde bei einem

Benutzerkonto, welches ausschließlich von einem Gerät an einem festen Ort verwendet wird,

ein Login von einem unüblichen Ort als Anomalie im Nutzerverhalten erkannt werden.

Allerdings sind die Zusammenhänge zwischen "echtem" und "böswilligem" Nutzerverhalten

nicht immer trivial und einfach erkennbar, sondern erfordern die Bildung eines Netzes aus Ab-

hängigkeiten zwischen einer Vielzahl von Variablen, sodass ein Einsatz von Technologien die

über einfache "wenn-dann-oder"-Logik hinausgehen, notwendig ist.

Um nun Anomalien in einem Datenstrom von Aufzeichnungsdaten zu erkennen, erfolgt im

Rahmen dieser Arbeit in Zusammenarbeit mit einem Projektteam die Entwicklung einer De-

monstrator-Web-Anwendung, die ein Intrusion Detection System modellieren soll. Mit dieser

im Folgenden Demonstrator genannten Anwendung, soll die Möglichkeit geboten werden, einen

aus realen Aufzeichnungsdaten generierten Datenstrom mit verschiedenen Maschinenlern-

Verfahren auf Anomalien zu untersuchen und sich anschließend die erzielten Ergebnisse über-

sichtlich und kompakt anzeigen lassen zu können.

1.1.1 Projektszenario

Dieses Projekt wird in Zusammenarbeit mit der Firma iC-Consult GmbH aus Stuttgart durchge-

führt. iC-Consult ist ein Dienstleister für Identitäts- und Zugangsmanagement-Dienste und stellt

beispielsweise Authentifizierungs- und Autorisierungslösungen für Firmen wie Daimler und

Porsche. Dadurch wird es den Mitarbeitern dieser Firmen ermöglicht sich mit einem zentralen

Nutzerkonto bei verschiedenen Diensten und Webanwendungen anzumelden und die vereinbar-

ten Rechte für die derzeitige Anwendung zu erhalten. Der Aufbau dieser Beziehung wird in

Abbildung 1 dargestellt.

Abbildung 1: Aufbau der IAM-Struktur zwischen bspw. iC-Consult und einer Firma die deren

Dienste in Anspruch nimmt

Hierdurch wecken diese Konten allerdings auch das Interesse von Angreifern. Vor allem Kon-

ten von Personen mit Zugriff auf höhere Rechteebenen fallen ins Auge von Angreifern. Um

schnellstmöglich auf kompromittierte oder unter Angriff befindliche Nutzerkonten reagieren zu

können, möchte iC-Consult im Rahmen dieses Projekts die eigens erzeugten Aufzeichnungsda-

ten auf Anomalien im Benutzerverhalten mittels maschinellem Lernen untersuchen. Ein Bei-

spiel für diesen Anwendungsfall ist Kompromittierung und Verwendung eines Kontos durch

einen Angreifer von innerhalb oder außerhalb, mit anschließendem auffälligem Nutzungsverhal-

Page 11: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Einleitung 3

ten, wie das Ändern von Passwort, E-Mail und anderen persönlichen Daten. Ein Verhalten das

nur in seltenen Fällen von einem Nutzer innerhalb einer Sitzung durchgeführt wird.

1.1.2 C&M-Software-Entwicklung

Der Software-Entwicklungsprozess der Forschungsgruppe basiert auf einer agilen Vorgehens-

weise, die sich auf das Modellieren des gewünschten Verhalten (Behavior-Driven) und der rele-

vanten Domäne (Domain-Driven) fokussiert. Durch den Verhaltens-basierten Entwicklungsan-

satz erhält man einzelne sogenannte Features, welche später dem konkreten Entwicklungszyklus

den Ablauf vorgeben. Hierbei wird das Projektteam in Front- und Backend-Teams aufgeteilt. In

Abbildung 2 wird der Entwicklungsprozess von C&M in einer vereinfachten Form dargestellt.

Schritt 1 – Ziele und Features der Software

Grundsätzlich wird ein Feature nach dem anderen implementiert. Bevor allerdings mit der Im-

plementierung der Features begonnen werden kann, müssen die Ziele und Fähigkeiten der zu

entwickelnden Software definiert werden. Hierfür beschreibt man Geschäftsziele, welche den

Nutzen des Systems beschreiben, sowie die Funktionalität, um diese Geschäftsziele zu errei-

chen.

Abbildung 2: Vereinfachte Darstellung des C&M-Entwicklungsprozess [CM-AD]

Im nächsten Zwischenschritt leitet man aus der zuvor gewonnenen ersten Beschreibung die

Features ab, welche später implementiert werden. Sollte bereits ein Modell der relevanten Do-

mäne existieren, so muss dieses bei der Spezifizierung der Features mit einbezogen werden.

Schritt 2 – Initiales Domänenmodell

Nachdem die notwendigen Features festgelegt wurden, wird ein initiales Domänenmodell er-

stellt. Dieses Modell beschreibt die Domäne, in der das System agiert und das benötigte Domä-

nenwissen für jedes Feature.

Schritt 3 – Implementierung Domänenmodell und Feature

In diesem Schritt beginnt der eigentliche Zyklus der Software-Entwicklung. Hier wird mit der

Implementierung des Domänenmodells und des ersten Features sowie der relevanten Architek-

tur und zugehörigen Interfaces begonnen.

Schritt 4 – Testen

Page 12: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

4 Einleitung

Nachdem die Implementierung des Domänenmodells und des ersten Features abgeschlossen

wurde, kann der entstandene Code mit Unit-Tests auf Fehler und Bugs untersucht werden. Zu-

sätzlich ist es notwendig, dass das Feature auch auf benutzerorientierter Ebene getestet wird, um

eine einwandfreie Funktionsweise sicherzustellen. Die folgenden zwei Schritte werden nur

durchgeführt, insofern noch weitere Features zur Implementierung vorhanden sind.

Schritt 5 – Spezifikation nächstes Feature

Nachdem das vorherige Feature vollständig implementiert und erfolgreich getestet wurde, muss

anhand der Priorität das nächste zu entwickelnde Feature gewählt und spezifiziert werden.

Schritt 6 – Anpassung Domänenmodell

Bevor das im vorherigen Schritt gewählte Feature implementiert werden kann, ist eine Anpas-

sung bzw. Erweiterung des Domänenmodells um die Informationen des Features notwendig.

Anschließend kann der Entwicklungszyklus, beginnend mit Schritt 3, erneut durchgeführt wer-

den, bis schlussendlich alle Features implementiert wurden. [CM-AD]

1.2 Behandelte Fragestellungen in dieser Arbeit

Im Rahmen dieser Arbeit soll wie im zuvor beschriebenen Szenario ein modellhaftes Intrusion

Detection System unter Verwendung von Anomalie-Erkennung mit Maschinenlern-Verfahren

konzipiert und umgesetzt werden. Hierfür müssen verschiedene Fragestellungen rund um die

Verarbeitung von Aufzeichnungsdaten, der Verwendung von verschiedenen Lernverfahren,

sowie das Zusammenspiel dieser Teil-Komponenten beantwortet werden. Einige dieser Frage-

stellungen werden nachfolgend aufgelistet.

1. Welche Daten werden betrachtet und wie werden sie verarbeitet?

a. Welche Arten von Aufzeichnungsdaten sind vorhanden?

b. Wie sind die Aufzeichnungsdaten strukturiert?

c. Welchen Daten werden für die Anomalie-Erkennung benötigt bzw. verwendet?

d. Wie müssen die Aufzeichnungsdaten für die Verwendung mit Maschinenlern-Verfahren

verarbeitet werden?

2. Welche Maschinenlernverfahren werden betrachtet?

a. Welche Verfahren eignen sich für die Anomalie-Erkennung?

b. Wie funktionieren die jeweiligen Verfahren?

c. Gibt es spezielle Anforderungen oder Randbedingungen?

3. Eigenschaften der gewünschten Erkennungs-Ergebnisse

d. Für jeden Nutzer oder über die Gesamtheit?

e. Welche Eigenschaften zur Erkennung?

1.3 Demonstrator und dessen Komponenten

Wie im einleitenden Text bereits erwähnt, soll im Rahmen dieser Arbeit ein modellhaftes Intru-

sion Detection System in Form einer Demonstrator-Web-Anwendung entwickelt werden. Die

Page 13: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Einleitung 5

Möglichkeiten, die dieser Demonstrator besitzen soll, werden nachfolgend in textueller sowie in

Form von Gherkin-Features näher beschrieben.

Abbildung 3: Mock-Up des Demonstrator-Interfaces

Abbildung 3 gibt bereits einen Ausblick auf das Interface des Demonstrators. Hierbei gibt es

Menü-Punkte für die Generierung und Anzeige der Nutzer-Verhaltens-Modelle sowie für die

Durchführung und Anzeige von Analysen auf Anomalien sowie eine Informations-Rubrik mit

Erklärungen zum Ablauf und der Funktionsweise der Lernverfahren.

1.3.1 Allgemeine Beschreibung der Demonstrator-Komponenten

Der Gesamtprozess, den der Demonstrator anbieten soll, wird in Abbildung 4 beispielhaft dar-

gestellt. Aus diesem lassen sich die einzelnen Teilprozesse ableiten und in einzelne Komponen-

ten abgrenzen. Das Zusammenspiel dieser Teilkomponenten wird in Kapitel 4 im Detail erklärt,

bevor die einzelnen Komponenten in den darauffolgenden Kapiteln einzeln in Unter-

Komponenten zerlegt und näher beleuchtet werden.

Komponente 1: Nutzerverhalten-Modell-Generator

Im ersten Schritt wird zunächst der Datenstrom von Aufzeichnungsdaten vorbereitet. Hierfür

werden mit Daten aus der Industrie Aufzeichnungsdaten-Modelle erzeugt. Bestandteil dieser

Modelle sind speziell generierte Aufzeichnungsdaten für modelhafte Benutzer. Hierbei wird

beispielsweise parametrisiert, inwiefern die Aktionen verteilt sind, wie hoch der Anteil von

Anomalien ist sowie die Größe der Zeitspanne und die Anzahl von Einträgen pro Zeiteinheit.

Diese Modelle dienen anschließend als Input für die Transformation in ein Format, welches von

den Maschinenlern-Verfahren im nächsten Schritt aufgenommen und verarbeitet werden kann.

Komponente 2: Nutzerverhalten-Vorverarbeitung

Um eine Anomalie-Analyse auf den generierten Modellen durchführen zu können, ist es not-

wendig, die erzeugten Logs von unnötigen Features und Zeichen zu befreien, Größe der Logs zu

minimieren (z.B. Entfernung von Leerzeichen, etc.) und abschließend spezifische Anpassungen

für die Lernverfahren durchzuführen (z.B. Umwandeln von Text-Werten in numerische Werte,

etc.).

Komponente 3: Nutzerverhalten-Anomalie-Analyse

Page 14: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

6 Einleitung

Nach der Generierung und Transformation der Log-Daten, können diese auf Anomalien unter-

sucht werden. Dafür werden die Log-Daten mit Hilfe von mehreren Lernverfahren analysiert.

Die verwendeten Lernverfahren, sowie deren Funktionsweise werden in Kapitel 6 beschrieben.

Abbildung 4: Mockup des entstehenden Prozesses

Komponente 4: Analyse-Ergebnis-Anzeige

Abschließend findet die Anzeige der Ergebnisse der Anomalie-Analyse im Demonstrator statt,

sodass die Resultate der verschiedenen Lernverfahren verglichen werden können.

1.3.2 Feature-Beschreibung der wichtigsten Komponenten

In diesem Abschnitt wird eine Beschreibung der wichtigsten Funktionalitäten der Demonstrator-

Anwendung in Form von Gherkin-Features geliefert. Anhand dieser Features findet die Imple-

mentierung sowie das Testen innerhalb des Projektteams statt.

Feature 1 beschreibt das Durchführen einer auf Anomalie-Erkennung basierenden IDS Simula-

tion mit Nutzerverhaltens-Modell. Hierbei unterscheidet man innerhalb des Features zwischen

verschiedenen Szenarien. Das erste Szenario beschreibt den Anwendungsfall, dass Parameter

für die Maschinenlern-Verfahren gesetzt wurden und bereits ein Nutzerverhaltens-Modell exis-

tiert, auf dem das System die Simulation ausführen kann. Somit wählt der Nutzer das Modell,

sowie die zu verwendeten Lernverfahren aus. Anschließend führt das System die Analyse durch

und zeigt deren Ergebnisse an. Im darauffolgenden Szenario existiert kein Modell auf dem eine

Simulation durchgeführt werden könnte, somit bietet das System dem Benutzer die Möglichkeit,

ein Modell zu generieren, auf welchem es anschließend die Simulation durchführt. Möchte der

Nutzer eine Analyse durchführen ohne eigene Parameter für die Lernverfahren gesetzt zu haben,

so weist das System ihn im letzten Szenario darauf hin und bietet die Möglichkeit an, eigene

Parameter einzugeben oder bereits vorhandene Standard-Parameter zu verwenden.

Page 15: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Einleitung 7

In Feature 2 wird das Verhalten des Systems bei der Verwaltung von Nutzerverhaltens-

Modellen beschrieben. Dabei muss zwischen verschiedenen Fällen für die Erstellung, Bearbei-

tung, Löschung von eigenen Modellen sowie dem Kopieren und Abwandeln von Modellen an-

derer Nutzer unterschieden werden.

Feature 1: Durchführung einer IDS-Simulation

Im Szenario, bei dem ein Benutzer ein Nutzerverhaltens-Modell erzeugen möchte, bietet das

System diesem Benutzer eine Eingabemaske für die Parameter und Meta-Daten des zu erzeu-

genden Modells an. Nach der Eingabe dieser Informationen generiert das System das spezifi-

zierte Modell, insofern kein identisches Modell existiert.

Möchte der Nutzer ein bereits existierendes Modell bearbeiten, wird davon ausgegangen, dass

der Benutzer bereits mindestens ein eigenes Modell erzeugt hat. Das System bietet ihm in die-

sem Fall eine Eingabemaske mit den Parametern, die bearbeitet werden können und passt an-

schließend das Modell mit den eingegebenen Parametern an.

Ähnlich ist es im Fall des Löschens eines existierenden Modells. Auch hier liegt die Annahme

vor, dass der aktuelle Benutzer bereits eigene Verhaltens-Modelle erzeugt hat. Wählt er nun ein

Modell zur Löschung aus, so fragt das System nach einer Bestätigung, bevor es das Modell im

Anschluss löscht.

Im letzten Szenario möchte ein Benutzer ein Modell, eines anderen Nutzers, an seine Bedürfnis-

se anpassen und vom System erzeugen lassen. Hierfür wird angenommen, dass andere Nutzer

bereits mindestens ein Modell erzeugt haben, welches der Nutzer auswählt. Anschließend wird

dem Nutzer eine Eingabemaske präsentiert, in welcher er die Parameter, die er abändern möchte

eingeben kann. Das System erzeugt schließlich ein neues Modell mit den gegebenen Parametern

für den aktuellen Nutzer.

Diese beiden Features sollen nur einen groben Überblick über die Haupt-Funktionen des De-

monstrators geben. Eine nähere Beschreibung der Funktionsweise der einzelnen Komponenten

der Demonstrator-Anwendung findet sich in Kapitel ?.

1. Feature: Run an anomaly IDS simulation on a user behavior model 2. As a (model) IDS operator 3. I want to detect deviations from normal user behavior in access logs 4. So that potential misuses can be detected and treated accordingly 5. 6. Scenario: Run IDS simulation on already generated user behavior data 7. Given I have already generated model user behavior data 8. And I have already set the parameters for the machine learning techniques 9. When I run a simulation on a user behavior data model 10. And select some machine learning techniques 11. Then the system shows me the results for these techniques 12. And gives a summary of the differences between them 13. 14. Scenario: Run IDS simulation with no pre-generated user behavior data 15. Given there is are no pre-generated user behavior models 16. And the parameters for the machine learning techniques are set 17. When I want to run a simulation on a user behavior data model 18. Then the system tells me that there are no models available 19. And gives me the option to generate a new user behavior model 20. And runs the simulation on that model 21. 22. Scenario: Run IDS simulation without custom parameters for the ML techniques 23. Given there are no parameters set for the ML techniques 24. When I want to run a simulation on a user behavior data model 25. Then the system tells me that there are no parameters set for the ML techniques 26. And gives me the option to enter custom parameters or use a set of default parameters

Page 16: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

8 Einleitung

Feature 2: Verwaltung von Nutzerverhaltens-Modellen

1.4 Gliederung der Arbeit

In diesem Kapitel wird der Aufbau der weiteren Arbeit in Form der Kapitelstruktur aufgezeigt.

Zusätzlich wird eine kurze Beschreibung des Inhalts der jeweiligen Kapitel gegeben.

Kapitel 1: EINLEITUNG

Das einleitende Kapitel motiviert, weshalb Anomalie-Erkennung in Aufzeichnungsdaten mit

Hilfe von maschinellen Lernverfahren interessant und nützlich ist. Weiterhin wird ein kurzer

Einstieg in die Thematik rund um Intrusion Detection Systeme, Anomalie-Erkennung, Auf-

zeichnungsdaten, sowie Maschinen-Lernverfahren geliefert. Zusätzlich wird die Vorgehenswei-

se von C&M bei der Softwareentwicklung und der entstehende Demonstrator kurz beschrieben.

Kapitel 2: GRUNDLAGEN

Dieses Kapitel beinhaltet Informationen, die zum grundlegenden Verständnis der Inhalte der

Arbeit erforderlich sind. Hierzu zählen die Einführung in Intrusion Detection Systeme und die

verschiedenen Ausprägungen, die diese annehmen können. Weiterhin muss ein Grundverständ-

nis über Anomalien, maschinelle Lernverfahren, sowie deren Arten und Funktionsweise ge-

schaffen werden.

Kapitel 3: STAND DER TECHNIK

Im dritten Kapitel findet sich ein Überblick über die aktuell und in näherer Vergangenheit ver-

wendeten Verfahren zur Anomalie-Erkennung, sowie zur Analyse und Verarbeitung von Auf-

zeichnungsdaten.

Kapitel 4: PROZESSMODELL FÜR DIE ANOMALIE-ERKENNUNG (+)

27. Feature: Manage user behavior models 28. As a (model) IDS operator 29. I want to create, edit and delete user behavior models with different properties 30. So that I can run simulations on these models 31. 32. Scenario: Create model user behavior data 33. Given I have entered the user behavior data section of the application 34. When I want to create user behavior data model 35. Then the system gives me the possibility to enter the parameters for the model 36. And afterwards generates the model if there is not already an identical model 37. 38. Scenario: Edit model user behavior data 39. Given I have created model user data before 40. When I want to edit one of my user behavior models 41. Then the system shows me a form with the changeable parameters of the model 42. And changes the model accordingly to the new parameters 43. 44. Scenario: Delete model user behavior data 45. Given I have created model user data before 46. When I want to delete one of my user behavior models 47. Then the system gives me a prompt whether I want to delete the model or not 48. And afterwards deletes the model from the application 49. 50. Scenario: Copy model user behavior data of another user 51. Given other users have already created model user data 52. And I have chosen an existing user behavior model of another user 53. When I want to copy the properties of that model 54. Then the system gives me the possibility change parameters for the model 55. And afterwards generates the model with the given parameters

Page 17: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Einleitung 9

In diesem ersten Inhaltskapitel wird das Prozessmodell für die Anomalie-Erkennung bei Auf-

zeichnungsdaten mit Hilfe von maschinellen Lernverfahren beschrieben. Dabei handelt es sich

um das Zusammenspiel der zuvor beschriebenen Komponenten im Hintergrund der Demonstra-

tor-Anwendung. Hierzu zählt die Generierung von Verhaltens-Modellen mit Hilfe von echten

Aufzeichnungsdaten, die Vorbereitung dieser Aufzeichnungsdaten für die Verwendung mit

Lernverfahren, sowie die eigentliche Anwendung der Lernverfahren.

Kapitel 5: KOMPONENTEN DES ERKENNUNGSPROZESS (+)

Kapitel 6: EINSATZ IN DER BETRIEBSUMGEBUNG (+)

Kapitel 7: PROJEKTTEAM-ARBEITEN

Kapitel 8: ZUSAMMENFASSUNG UND AUSBLICK

Page 18: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

10 Einleitung

Page 19: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Grundlagen 11

2 Grundlagen

Im folgenden Kapitel werden relevante Techniken, Konzepte und Technologien, die für das

weitere Verständnis dieser Arbeit notwendig sind, vertieft. Beginnend mit einer Beschreibung

von Account-Missbrauch, der die Motivation für die Thematik dieser Arbeit darstellt, werden

anschließend Anomalien definiert und erläutert. Darauffolgend wird ein Einblick in Intrusion

Detection Systeme gegeben, bevor weitere relevante Konzepte beschrieben werden können.

Technologien, die in diesem Zusammenhang beschrieben werden müssen, sind Maschinenlern-

verfahren und deren mögliche Arten. Abschließend werden der generelle Aufbau von Aufzeich-

nungsdaten von Web-Anwendungen sowie deren Verarbeitung und Transformation näher erläu-

tert.

2.1 Account Misuse

2.2 Anomalien

Da Anomalien im Großteil der Grundlagen eine gewisse Relevanz haben, wird mit der Be-

griffsbildung dieser begonnen. Weiterhin existieren verschiedene Arten von Anomalien, die im

Anschluss an die Definition erläutert und an Beispielen verdeutlicht werden. Abschließend wird

auf die Erkennung von Anomalien und die damit verbundenen Techniken eingegangen.

2.2.1 Was sind Anomalien?

In Bezug auf Anomalien existieren mehrere plausible Definitionen. Beispielsweise beschreibt

[GD+09] eine Anomalie, eher aus technischer Sicht, als ein Ereignis, welches auffällig im Kon-

text der Sicherheit ist. [CB+09] geht mehr in die mathematische Richtung und erklärt eine

Anomalie als ein Muster, welches von einem festgelegten normalen Verhalten abweicht. Als

konkretes Beispiel wird hierbei angenommen, dass man zwei Mengen 𝑋1 und 𝑋2 innerhalb der

Daten hat, in denen sich die Datenpunkte im Normalfall befinden. Existieren nun zwei Punkte

𝑦1 und 𝑦2, die fernab der beiden Mengen liegen, so können diese beiden Punkte als Anomalien

angesehen werden. Dies wird in Abbildung ? dargestellt. Allgemein lässt sich eine Anomalie als

etwas beschreiben, das von der gestellten Erwartung in einem gewissen Maße abweicht.

2.2.2 Arten von Anomalien

Es existieren verschiedene Arten von Anomalien, die unterschieden werden können. Hauptsäch-

lich differenziert man zwischen den drei Arten von Punkt-Anomalien, Kontext-Anomalien und

Kollektiv-Anomalien. Diese werden im Folgenden näher erläutert.

Punkt-Anomalien

Eine Punkt-Anomalie ist ein einzelner Punkt in der Datenmenge, der sich vom Rest der Daten

abhebt. In Abbildung 5 zeigt das Diagramm oben links eine Punkt-Anomalie, die man am Bei-

spiel von Kreditkarten-Einkäufen beschreiben kann. Hierbei bilden die schwarzen Punkte auf

der linken Seite des Diagramms die normalen Einkäufe in einem gewissen Betrags-Bereich.

Einkäufe, die sich in diesem Bereich befinden oder sehr nahe zu diesem sind, werden als normal

angesehen. Ein Einkauf mit einem Wert, der nicht unmittelbar in der Nähe des „Normalbe-

reichs“ liegt (roter Punkt im Diagramm) wird als Anomalie angesehen [Zw14].

Page 20: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

12 Grundlagen

Kontext-Anomalien

Bei Kontext-Anomalien handelt es sich um Datenpunkte, die sich zwar in einem gewissen ak-

zeptablen Intervall befinden, allerdings im Kontext der Datenreihe einen unnatürlichen Wert

besitzen. Ein passendes Beispiel hierfür ist, der Verlauf einer Temperatur-Kurve über ein gan-

zes Jahr. Diese ist beispielhaft in Abbildung 5 (Abbildung muss noch angepasst werden) darge-

stellt. Es ist normal, dass im Winter die Kurve nach unten geht. Würde die Kurve jedoch im

Sommer einen Sprung in die Minusgrade machen, so wäre dies eine Anomalie innerhalb dieser

Datenreihe [Zw14].

Kollektiv-Anomalien

Kollektiv-Anomalien sind vergleichbar mit Kontext-Anomalien, allerdings bestehen diese aus

einer Serie von Datenpunkten mit einem abnormalen Wert [Zw14]. Eine grafische Repräsenta-

tion einer kollektiven Anomalie findet sich in der unteren Hälfte von Abbildung 5. Ein Beispiel

für eine solche Anomalie könnte man evtl. in einem Elektrokardiogramm finden.

Abbildung 5: Beispiele für die verschiedenen Anomalie-Arten (links oben: Punkt-Anomalie, rechts

oben: Kontext-Anomalie, unten: Kollektiv-Anomalie)

2.2.3 Anomalie-Erkennung

Unter Anomalie-Erkennung versteht man die aktive Suche und Überwachung von Systemen auf

Anomalien jeglicher Art. Anomalien sind hierbei ein hilfreiches Mittel in einer Vielzahl von

Anwendungsbereichen. Beispielsweise werden Anomalie-Erkennung häufig zur Feststellung

von Kreditkarten-Betrug oder bei Einbrüchen in Computer-Systeme verwendet. Letzteres Bei-

spiel findet in dieser Arbeit Anwendung, wobei Anomalien zur Erkennung der Kompromittie-

rung von Nutzer-Konten verwendet werden, anstatt direkt Einbrüche in ein System zu erkennen.

2.3 Intrusion Detection (Systeme)

Bevor Intrusion Detection und die zugehörigen Intrusion Detection Systeme beschrieben und

deren Ausprägungen erläutert werden können, muss zu Beginn erst der Hauptbestandteil dieses

Bereichs, die Eindringung (engl. Intrusion), definiert werden.

Definition Intrusion

Eine Intrusion liegt immer dann vor, wenn ein Angreifer versucht unautorisierten Zugriff auf

ein System oder eine Ressource zu erhalten oder er unautorisiert Daten manipulieren oder lö-

schen möchte. Allgemein kann eine Eindringung als jede Aktion deklariert werden, die ver-

Page 21: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Grundlagen 13

sucht, die Integrität, Vertraulichkeit oder Verfügbarkeit einer Ressource zu beeinträchtigen

[MG+02].

Da nun bekannt ist, was unter einer Intrusion verstanden wird, können die Erkennung solcher

Intrusions, die Intrusion Detection und die zugehörigen Systeme beschrieben werden.

Definition Intrusion Detection

Unter Intrusion Detection wird der Prozess des Überwachens eines Systems oder Netzwerks,

sowie der zugehörigen Objekte, auf Anzeichen eines Eindringens, verstanden [LL+13].

Für die Umsetzung dieser Intrusion Detection sind spezielle Systeme, sogenannte Intrusion De-

tection Systeme, entwickelt worden. Diese stehen indirekt mit Intrusion Prevention Systemen

(kurz IPS) oder auch Intrusion Detection and Prevention Systemen zusammen. Während IDS

nur für die Erkennung und das Melden von Intrusions zuständig sind, versuchen IPS, welche ein

IDS beinhalten, Intrusions zu erkennen und anschließend aktiv diesen entgegenzuwirken

[LL+13].

2.3.1 Ausprägungen von Intrusion Detection Systemen

Im Folgenden werden die verschiedenen Ausprägungsformen von Intrusion Detection Systemen

erläutert und ihre Stärken und Schwächen hervorgehoben. Hierbei gibt es verschiedene Ausprä-

gungsmöglichkeiten bei der Erkennungs-Methodik, der Herangehensweise für die jeweilige

Methodik, sowie bei der Technologie, die auf Eindringungen untersucht wird.

Methodik

Bei der verwendeten Methodik von Intrusion Detection Systemen unterscheidet man hauptsäch-

lich zwischen zwei Formen. Die Wissens-basierte Erkennung, auch Signatur-basierte Erken-

nung oder Missbrauchs-Erkennung genannt, vergleicht aufgezeichnete Ereignisse mit Mustern

oder Zeichenketten die einen bekannten Angriff oder eine bekannte Bedrohung beschreiben.

Dies ermöglicht eine einfache und effektive Erkennung von bereits bekannten Angriffsmustern.

Durch das Vergleichen mit bereits bekannten Bedrohungen ist es allerdings nur schwer möglich

unbekannte Angriffe oder Varianten dieser zu erkennen. Zusätzlich entsteht ein hoher Aufwand

durch das aktuell Halten der Muster und Signaturen [LL+13].

Anomalie-basierte Erkennung versucht zwischen normalem und davon abweichendem Verhal-

ten zu unterscheiden, um Angriffe aufzudecken. Hierzu überwacht das System beispielsweise

Aktivitäten oder Netzwerk-Verbindungen von Hosts oder Nutzern über einen gewissen Zeit-

raum für die Bildung eines Profils, welches das normale Verhalten beschreibt. Anschließend

werden aufgezeichnete Events mit dem beobachteten Profil abgeglichen und bei einer Abwei-

chung ein Alarm ausgegeben [LL+13].

Vorgehensweisen

• Statistisch-basiert

• Muster-basiert

• Regel-basiert

• Zustands-basiert

• Heuristik-basiert

Technologie

Page 22: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

14 Grundlagen

Bei der zu überwachenden Technologie innerhalb eines Intrusion Detection Systems, kann man

zwischen verschiedenen Möglichkeiten wählen. Nachfolgend findet sich eine Auflistung und

Erläuterung der wichtigsten Ausprägungen.

• Host-basierte Intrusion Detection

• Network-basierte Intrusion Detection

• Mixed Intrusion Detection

• Distributed Intrusion Detection

2.4 Maschinenlernen

Unter maschinellem Lernen oder auch Maschinenlernen versteht man den Vorgang der Ent-

wicklung von Systemen, die eine Simulation des menschlichen Lernprozesses anstreben. Das

bedeutet, dass diese Systeme versuchen, sich automatisch selbst in der ihnen zugeteilten Aufga-

be zu verbessern. Hierfür werden die Ergebnisse und Erfahrungen vorheriger Durchläufe ver-

wendet. Zusätzlich dient diese Art von Verfahren zur Lösung einer Vielzahl von Problemen.

Dazu zählen die automatische Extraktion von bekannten oder auch unbekannten Strukturen

sowie Clustering, Klassifikation, Regression und Dimensionsreduktion. Maschinelles Lernen ist

in einer Vielzahl von Anwendungsgebieten einsatzfähig. Hierzu gehören beispielsweise Sprach-

erkennung, Verarbeitung von natürlicher Sprache, Steuerung von Robotern oder autonome

Fahrzeuge.

2.4.1 Arten von Maschinenlernen

Innerhalb des Maschinenlernens lassen sich grundsätzlich zwei Arten unterscheiden. Durch

verschiedene Vorgehensweisen sind beide Bereiche für unterschiedliche Anwendungsgebiete

anwendbar.

Überwachtes Lernen

Bei überwachten Lernverfahren existiert eine Trainings-Phase vor der eigentlichen Anwendung

des Verfahrens auf das Problem. Hierbei wird dem System ein Trainingsdatensatz übergeben,

welcher Beispiel-Inputs und die dazugehörigen Labels, also die gewünschten Outputs zu den

Beispielen, enthält. Dadurch soll das System Regeln, auch Model genannt, ermitteln. Mit die-

sem Model können später die Inputs auf die Outputs abgebildet werden. Weiterhin existieren

drei Unterkategorien des überwachten Lernens. Bei Teilüberwachtem Lernen arbeitet das Sys-

tem mit einer unvollständigen Label-Menge in der Trainingsphase [Mi08]. Eine weitere Unter-

art des überwachten Lernens ist das bestärkende Lernen. Hier wird dem System anstelle von

Outputs zu den Trainingsdaten entweder Belohnung oder Bestrafung für die Einordnung der

Inputs gegeben. Anschließend führt das System eine Anpassung durch, welche davon abhängig

ist, ob es belohnt oder bestraft wurde. Die letzte Form von überwachtem Lernen wird aktives

Lernen genannt. In dieser Unterkategorie kann das System mit einem gewissen Budget einen

Teil der Labels erfragen und muss für die Wahl der Labels den Erwartungswert maximieren.

Unüberwachtes Lernen

Anders als bei überwachtem Lernen bekommen unüberwachte Lernverfahren in der Trainings-

phase nur die Input-Beispiele ohne die zugehörigen Labels. Das bedeutet, dass das System al-

leine mit einer Feedback-Funktion arbeiten muss um eine unbekannte Struktur in den Daten zu

erkennen und diese in eine gewünschte Aufteilung von Untermengen sortiert.

Page 23: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Grundlagen 15

2.4.2 Prozess des Maschinenlernens

2.5 Aufzeichnungsdaten

Aufzeichnungsdaten (engl. Logs), sind automatisch generierte Protokoll-Dateien die von nahezu

jeder Anwendung, die mit einem Computersystem in Verbindung steht, erzeugt werden. Beim

sogenannten Logging protokollieren Anwendungen bzw. Systeme verschiedene Events. Diese

können beispielsweise Fehler, Nachrichten oder sonstige Geschehnisse sein, die für die Nach-

vollziehbarkeit und Analyse von Problemen aufgezeichnet werden.

2.5.1 Log-Formate

Es existieren verschiedene Log-Formate die für Logging-Aktivitäten verwendet werden können.

Im Folgenden wird eine Auflistung von häufig verwendeten Formaten und eine Beschreibung

deren Aufbau gegeben.

NCSA Common Log Format

Das NCSA Common Log Format ist ein standardisiertes Textformat, welches häufig von Webs-

ervern verwendet wird um eingehende Anfragen zu protokollieren. Abbildung 6 zeigt den

schematischen Aufbau dieses Formats.

Abbildung 6: Schematischer Aufbau des NCSA Common Log Format

• IP – Adresse des anfragenden Clients, z.B.: 152.241.141.023

• identd – Identität des Clients nach Identification Protocol, z.B.: "stfranks"

• uid – Benutzername der von HTTP-Authentifizierung festgestellt wird, z.B.: "frank"

• timestamp – Zeitstempel bei dem die Anfrage beim Server eingegangen ist, z.B.:

[10/Oct/2000:13:55:36 -0700]

• request – Anfrage des Clients bestehend aus HTTP-Methode, der angefragten Res-

source und dem Protokoll, z.B.: "GET /apache_pb.gif HTTP/1.0"

• status – Statuscode mit dem der Server geantwortet hat, z.B.: 200

• bytes – Größe des Objekts, welches vom Server an den Client gesendet, gemessen in

Bytes, z.B.: 2623

Combined Log Format

Das Combined Log Format ist beinahe identisch zum Common Log Format, mit der Erweite-

rung um zwei weitere Felder. Der Aufbau dieses Formats wird in Abbildung 7 dargestellt.

Abbildung 7: Schematischer Aufbau des Combined Log Format

• referer – URL der Webseite, die die Ressource beinhaltet, z.B.:

"http://www.example.com/start.html"

Page 24: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

16 Grundlagen

• user-agent – Identifikations-Merkmale die vom Client an den Server übermittelt wer-

den, z.B.: "Mozilla/4.08 [en] (Win98; I ;Nav)"

2.5.2 Vorverarbeitung

2.5.3 Feature-Extraktion / -Selektion

2.6 Application Programming Interfaces

Application Programming Interfaces, heutzutage besser bekannt als APIs, sind Schnittstellen

zwischen Software-Komponenten die für die Bereitstellung des Zugriffs auf Dienste oder Da-

ten-Güter verantwortlich sind. Dabei beschreiben diese Schnittstellen die notwendige Kommu-

nikation, um mit dieser zu interagieren. APIs sind beliebt für die Orchestrierung von komplexen

Software-Prozessen, sodass die Abläufe im Hintergrund dem Nutzer verborgen bleiben. Die

Verwendung von APIs für den Zugriff auf Dienste bzw. Daten soll dabei so einfach wie mög-

lich gestaltet sein, sodass eine Nutzung ohne jegliche Kenntnis des Codes der Komponente

möglich ist. Bei der öffentlichen Bereitstellung von APIs werden sogenannte Service Level

Agreements, kurz SLAs, eingesetzt. Eine SLA legt die Randbedingungen für die Benutzung

einer API fest. Diese beinhalten beispielsweise Punkte wie die Verfügbarkeit der API und die

Preise für die Nutzung (evtl. pro Aufruf oder Datenvolumen-abhängig).

Die am weitesten verbreiteten und bekanntesten APIs heute sind die über das HTTP-Protokoll

kommunizierenden sogenannten Web-APIs. Oft auch einfach nur als REST-APIs bezeichnet, da

die Verwendung von SOAP-basierten Architekturen, zugunsten des steigenden Einsatzes von

REST-basierten APIs, abnimmt.

APIs existieren aber auch in anderen Anwendungsbereichen, wie zum Beispiel in Betriebssys-

temen oder innerhalb von Microservice-Anwendungen zwischen einzelnen Komponenten über

beispielsweise Remote Procedure Calls, also dem Aufruf eines entfernen Prozess. Eine Be-

schreibung der, auch in dieser Arbeit angewendeten, Microservice-Architektur wird in Ab-

schnitt 2.7 geliefert.

Ein modellhaftes Beispiel für die Anwendung einer API wird in Abbildung 8 dargestellt. Hier

interagiert der Nutzer mit einer lokalen Anwendung auf seinem Computer. Beim Aufruf einer

Funktion, beispielsweise dem Kauf eines Produkts, wird im Hintergrund die Ausführung dieser

Funktion in Teilschritte unterteilt. In diesem Beispiel könnte ein API-Aufruf die Überprüfung

der vom Benutzer eingegebenen Kreditkarte darstellen. Ein weiterer Aufruf speichert den getä-

tigten Kauf in der Datenbank des Verkäufers über eine API. So lässt sich ein komplexer Prozess

durch die Verwendung von APIs aufbauen.

Abbildung 8: Beispiel für den Einsatz von APIs

Page 25: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Grundlagen 17

2.6.1 OpenAPI Spezifikation & Swagger

OpenAPI definiert einen Standard für die Spezifizierung von RESTful Web APIs. Mit Hilfe

dieser Spezifizierung können die bereitgestellten Schnittstellen beschrieben werden. Dies dient

zur einfachen und verständlichen Darstellung der API für Entwickler und Personen, die mit

dieser API interagieren müssen, ohne dass diese den Code des Service bzw. der Anwendung

betrachten müssen. Die entstehende API-Spezifikation kann dabei entweder in YAML- oder

JSON-Format abgebildet werden.

Entstanden ist die OpenAPI-Spezifikation aus der vorherigen Swagger 2.0 Specification. Diese

wurde von der Software-Firma SmartBear als Teil der Entstehung der OpenAPI Initiative im

Jahr 2015 gespendet und anschließend in OpenAPI Specification, kurz OAS, umbenannt.

SmartBear stellt mit Swagger eine Sammlung von Werkzeugen zur einfachen Erstellung von

API-Spezifikationen nach dem OpenAPI-Standard zur Verfügung. Zu diesen Werkzeugen gehö-

ren unter anderem die Swagger UI zur kompakten und verständlichen Veranschaulichung von

API-Schnittstellen sowie dem Swagger Editor zur komfortablen Erzeugung von OpenAPI-

konformen Schnittstellen-Beschreibungen mit gleichzeitiger Visualisierung durch Swagger UI.

2.7 Microservice(-Architektur)

Das Gegenteil von monolithischen Systemen sind Microservices. Diese kleinen, eigenständigen

Dienste erbringen jeweils eine Funktionalität. Eine vollständige Anwendung erhält man durch

die Zusammenarbeit dieser unabhängigen Dienste.

Eigenschaften die einen guten Microservice auszeichnen sind lose Kopplung und hohe Kohäsi-

on. Lose Kopplung sorgt dafür, dass Änderungen an einzelnen Microservices keine Auswirkung

auf andere Dienste hat, die Ausrollung vereinfacht und die Anzahl der Aufrufe zwischen Diens-

ten verringert wird. Hohe Kohäsion vereint zusammenhängende Funktionalität in einen Dienst,

sodass eine Änderung dieser Funktionalität durch die Anpassung eines einzigen Dienstes mög-

lich ist.

Die Kommunikation zwischen Microservices lässt sich in zwei Arten einteilen. Mit Anfra-

ge/Antwort-Technologien können Dienste bereitgestellte Funktionalität über die angebotenen

Schnittstellen gegenseitig aufrufen und die Ergebnisse zurückgeben. Beispiele für beliebte

Technologien die dieses Konzept nutzen sind Remote Procedure Calls und REST.

2.8 Python

2.8.1 Flask & Flask-RESTful

Bei Flask handelt es sich um ein kompaktes Framework für Python, welches auf Technologien

wie Werkzeug und Jinja2 basiert. Dadurch lassen sich einfach minimalistische Web-

Anwendungen mit Hilfe des bereits integrierten Entwicklungsserver und Debugger erzeugen.

Durch Jinja2-Templates und das damit verbundene Routing-Konzept werden RESTful-

Schnittstellen nachgeahmt.

Mit der auf Flask basierenden Erweiterung Flask-RESTful ist es möglich, Swagger-definierte

API-Schnittstellen innerhalb des Programmcodes zu definieren. Ein Beispiel für eine solche

Schnittstelle wird in Abbildung ? dargestellt.

Page 26: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

18 Grundlagen

Die minimalistische Natur von Flask zur Bereitstellung eines ausführbaren Produkts und die

Integration von Swagger-APIs durch die Erweiterung Flask-RESTful bilden in Kombination

eine exzellente Grundlage für kompakte Microservices.

2.8.2 Flasgger

Mit Flask und der darauf basierenden Erweiterung Flask-RESTful lassen sich in kurzer Zeit

minimalistische APIs und Microservices erzeugen. Zur Vereinfachung der Verwendung der

angebotenen Schnittstellen dieser Komponenten kann eine weitere Flask-Erweiterung namens

Flasgger genutzt werden. Flasgger ermöglicht die Verwendung von Swagger- bzw. OpenAPI-

Spezifikation, um anschließend eine Swagger UI-Ansicht bereitzustellen, mit der die Dokumen-

tation der verfügbaren Schnittstellen verständlich visualisiert und Möglichkeit zur Interaktion

angeboten werden.

Swagger- bzw. OpenAPI-Spezifikationen können dabei in verschiedenen Formen verwendet

werden. Es bestehen beispielsweise die Möglichkeiten eine YAML-Datei einzubinden und die

Spezifikation aus dieser Datei zu extrahieren, die Spezifikation aus einem JSON-Objekt zu ent-

nehmen oder die Schnittstellen direkt im Code selbst zu spezifizieren. Anschließend kann mit

der URL http://localhost:5000/apidocs die Swagger UI angezeigt und durch die Schnittstellen-

Spezifikationen navigiert werden. Ein Beispiel für eine solche Spezifikation und die zugehörige

Swagger UI-Ansicht veranschaulicht Abbildung ?.

2.9 Nameko

Das auf Python basierende Framework Nameko, benannt nach einer beliebten japanischen Pilz-

Art namens Pholiota nameko, die in kleinen Kolonien von einzelnen Pilzen wächst, dient der

Definition und Ausführung von leichtgewichtigen Microservices. Nameko gibt Entwicklern die

Möglichkeit sich auf die Anwendungslogik zu konzentrieren und fördert die Testbarkeit der

Services.

1. from nameko.rpc import rpc 2. class GreetingService: 3.

4. name = "greeting_service" 5.

6. @rpc 7. def hello(self, name): 8. return "Hello, {}!".format(name)

Code-Schnipsel 1: Definition eines minimalistischen Microservice mit Nameko in helloworld.py

In Code-Schnipsel 1 wird ein einfacher „Hello, World!“-Microservice dargestellt, der über eine

Remote Procedure Call-Schnittstelle mit einem Parameter angesprochen werden kann. Für die

Ausführung von Nameko Microservices wird eine aktive Instanz des RabbitMQ-Server benö-

tigt. RabbitMQ ist ein Open Source Message Broker und wird im folgenden Abschnitt beschrie-

ben. Um einen Nameko Microservice zu starten, führt man im vorliegenden Beispiel den Befehl

nameko run helloworld aus, woraufhin der Service seine Funktion aufnimmt und über die

konfigurierte Adresse und den zugehörigen Port verfügbar ist. Standardmäßig werden die Ser-

vices zu Entwicklungszwecken lokal ausgeführt (localhost) und lauschen auf Port 8000 für ein-

gehende Anfragen. Die Kommunikation über Remote Procedure Calls

Page 27: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Grundlagen 19

Nameko stellt nicht nur Schnittstellen über Remote Procedure Calls bereit, sondern bietet noch

eine Reihe von anderen Kommunikations-Technologien an. Zu diesen Technologien gehören

die ereignisbasierte Kommunikation, auch bekannt als Publish/Subscriber-Muster, die http-

basierte Kommunikation mittels den bekannten Anfrage-Methoden (GET, POST, PUT,

DELETE) sowie die Definition von zeitbasierten Eintrittspunkten in die zugehörige Methode,

bei der diese nach einem festgelegten Intervall von Sekunden periodisch auf allen Instanzen des

Service ausgeführt wird.

1. class EventService: 2. 3. name = "event_service" 4. 5. dispatch = EventDispatcher() 6. 7. @rpc 8. def dispatching_method(self, payload): 9. self.dispatch("test_event", payload) 10. 11. class ListeningService: 12. 13. name = "listener_service" 14. 15. @event_handler("event_service", "test_event") 16. def handle_event(self, payload): 17. print("Received event with message:", payload)

Code-Schnipsel 2: Definition zweier Services, die das Publish/Subscribe-Muster darstellen

Code-Schnipsel 2 zeigt ein Beispiel für die Umsetzung des ereignisgesteuerten Pub-

lish/Subscribe-Musters. Hier abonniert der listener_service die Events der Kategorie

test_event. Sendet der event_service nun ein solches Event, dann wird die handle_event-

Funktion des listener_service ausgelöst.

1. class TimerService: 2.

3. name ="timer_service" 4.

5. @timer(interval=1) 6. def ping(self): 7. print("pong")

Code-Schnipsel 3: Definition eines zeitbasierten Service

Ein Exemplar eines zeitbasierten Service zeigt Code-Schnipsel 3. Dieser Service führt die ping-

Methode in einem sekündlichen Intervall periodisch aus. Schlussendlich wird in ein http-

basierter Microservice abgebildet. Dieser Service stellt Endpunkte für eine GET- und eine

POST-Operation auf der URL http://localhost:8000/ zur Verfügung.

1. class HttpService: 2. 3. name = "http_service" 4. 5. @http('GET', '/get/<int:value>') 6. def get_method(self, request, value): 7. return json.dumps({'value': value}) 8. 9. @http('POST', '/post') 10. def do_post(self, request): 11. return u"received: {}".format(request.get_data(as_text=True))

Code-Schnipsel 4: Definition eines http-basierten Service

Page 28: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

20 Grundlagen

Diese Art der Kommunikation zwischen Services findet auch Anwendung in dieser Arbeit und

wird bei der Umsetzung der Komponenten für den Betriebseinsatz in Kapitel 35 genauer be-

schrieben.

2.10 RabbitMQ

RabbitMQ ist ein Open Source Message Broker. Dieser ist, wie die Bezeichnung andeutet, ein

Vermittler von Nachrichten. Beispielsweise verteilen Nameko Microservices ihre Nachrichten

über einen RabbitMQ-Server untereinander. Dabei setzt RabbitMQ hauptsächlich das Advanced

Message Queuing Protocol, kurz AMQP, ein. Es können jedoch noch weitere Protokolle, wie

das Streaming Text Oriented Messaging Protocol (STOMP) oder das Message Queuing Tele-

metry Transport-Protokoll (MQTT), über Plugins eingesetzt werden.

Abbildung 9: Schematischer Ablauf des Message Queuing

Für die Umsetzung der Nachrichten-Vermittlung bei RabbitMQ mit AMQP kommt das Konzept

der Message Queues zum Einsatz. Ein Beispiel für den Ablauf dieses Konzeptes wird in Abbil-

dung 9 veranschaulicht. Hierbei existieren Producer und Consumer. Producer senden Nachrich-

ten an die zuvor festgelegt Message Queue. Consumer, die Nachrichten einer spezifischen

Queue erhalten möchten, müssen eine Callback-Funktion für diese Queue beim Server registrie-

ren. Wird nun eine neue Nachricht in die Queue geschrieben, so wird diese an die Callback-

Funktionen der Consumer gesendet.

Für die Kommunikation mit RabbitMQ-Servern existiert für nahezu jede gängige Programmier-

sprache ein RabbitMQ-Client.

2.11 Elasticsearch

Elasticsearch ist die zentrale Anwendung der Produktpalette der Firma Elastic. Elastic selbst

betitelt Elasticsearch als das Herz des Elastic-Anwendungsstapels, weswegen es auch als zentra-

ler Datenspeicher für jegliche Art von Daten dient. Zusätzlich zur Speicherung der Daten bietet

Elasticsearch eine auf REST basierende Such- und Analyse-Engine zur Bewältigung einer stei-

genden Anzahl von Anwendungsfällen. Mit der X-Pack-Erweiterung lassen sich eine Vielzahl

von zusätzlichen Features in Elasticsearch einfügen. Zu diesen Features gehören beispielsweise

Alerts, Reports, Graphen oder die Umstellung auf Anfragen mit SQL-Syntax.

Wie für RabbitMQ existiert auch für die Interaktion mit Elasticsearch, für fast jede moderne

Programmiersprache, eine Bibliothek zur Einbindung der Elasticsearch-Funktionalität. Zusätz-

lich kann sie auch über REST-Schnittstellen genutzt werden.

2.12 Wahrscheinlichkeitsdichte-Verteilung

Page 29: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Grundlagen 21

Page 30: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

22 Grundlagen

Page 31: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Stand der Technik / Forschung 23

3 Stand der Technik / Forschung

Dieses Kapitel bietet eine Übersicht über den Architekturaufbau beim Kooperationspartner iC

Consult sowie die allgemeine Vorgehensweise in den Schwerpunktthemen dieses Projekts.

Hierzu zählen unter anderem die Vorverarbeitung der Aufzeichnungsdaten und die Anwendung

von maschinellen Lernverfahren zur Identifikation von Anomalien im Verhalten von Nutzern.

Zunächst werden die Betriebsumgebung und die damit verbundenen Technologien des Koope-

rationspartners und ein erster abstrakter Ansatz zur Integration der entwickelten Lösung be-

schrieben. Anschließend werden jeweils die Umsetzung sowie die erzielten Ergebnisse betrach-

teter Forschungsprojekte in diesen Themenbereichen erläutert und in einer analytischen Diskus-

sion die Anwendbarkeit der zuvor beschriebenen Verfahren auf den Kontext dieses Projekts

überprüft.

3.1 Architektur des Kooperationspartners und Integrationsan-satz der Anomalie-Erkennung

Wie bereits in der Einleitung erwähnt handelt es sich bei der Firma iC-Consult GmbH um einen

Dienstleister für Identity- and Accessmanagement-Lösungen, welcher zusätzlich auch API-

Lösungen anbietet. Der generelle Aufbau der IAM-Architektur zwischen Nutzern, Web-

Anwendungen und iC-Consult als Mittelsmann dazwischen wurde bereits in der Einleitung grob

umschrieben. An dieser Stelle soll zusätzlich die interne Struktur von iC-Consult näher betrach-

tet und ein eventueller Ansatzpunkt für die Integration der in diesem Projekt entstehenden Lö-

sung identifiziert und beschrieben werden.

3.1.1 Aufbau der Technologie-Umgebung

Im Folgenden wird zunächst der Aufbau und die verwendeten Technologien der CIAM-

Komponente der Firma iC-Consult näher beschrieben. Dieser Aufbau wird in Abbildung ?

schematisch dargestellt. Die CIAM-Komponente setzt sich zunächst einmal aus dem IAM-

Portal und dem dahinter befindlichen Webserver zusammen. Das IAM-Portal ist dafür zustän-

dig, den Firmenkunden von iC-Consult ein zentrales Anmeldungssystem für ihre Dienste zur

Verfügung zu stellen. Hier können sich die Benutzer mittels einer Web-Oberfläche in ihrem

Browser mit ihren Zugangsdaten anmelden und anschließend auf die ihnen verfügbaren Dienste

zugreifen.

Abbildung 10: Beispiel für zufällige Aufzeichnungsdaten mit der verwendeten Struktur

Um dies zu realisieren muss im Hintergrund eine Überprüfung dieser Zugangsdaten und eine

Abfrage der vereinbarten Zugangsrechte vorgenommen werden. Weiterhin findet eine Auf-

zeichnung der Zugriffe von allen Nutzern durch den Webserver, der diese Komponente betreibt,

statt. Diese Zugriffe werden in Form von Logs für Analyse- und Kontrollzwecke erhoben. Die

Page 32: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

24 Stand der Technik / Forschung

derzeitige Struktur dieser Log-Dateien wird in Abbildung 10 verdeutlicht und setzt sich wie

folgt zusammen:

• Zeitstempel an dem der Zugriff erfolgt

• Anfrage-ID die einem Zugriff einen eindeutigen Identifier zuordnet

• IP-Adresse von der der Zugriff durchgeführt wurde

• Status-Code der Antwort (http-Statuscode, z.B.: 200)

• Bisher nicht verwendeter interner Status-Code

• User-ID, die einem Nutzer einen eindeutigen zufälligen Identifier zuordnet

• Einer Aktion die im Zuge des Zugriffs erfolgt (z.B.: Login, Logout, Passwort-

Änderung)

• JSON-Objekt, welches Freitext zur Aktion enthält (z.B.: Ob Aktion erfolgreich

war)

Weiterhin lassen sich in diesen Aufzeichnungsdaten verschiedene Aktionen, die ein Nutzer

durchführen kann, unterscheiden. Wie in Abbildung 10 ersichtlich, existieren Aktionen wie

„LOGIN“, welche offensichtlich den Login eines Nutzers am System darstellt, sowie „PW-

CHANGE“, die eine Passwort-Änderung eines Benutzers signalisiert. Neben diesen beiden Ak-

tionen existieren noch Weitere, die ebenfalls interessant für das Verhalten eines Nutzers sind.

Diese Aktionen werden in Tabelle 1 mit ihrer jeweiligen Bedeutung aufgelistet.

Der Aufbau dieser Log-Dateien und die enthaltenen Aktionen nehmen eine wichtige Rolle bei

der Generator- und Vorverarbeitungskomponente ein. Diese Komponenten und die Verwendung

der Log-Struktur werden in Kapitel 5 beschrieben.

Anhand dieser Log-Dateien soll versucht werden, Anomalien im Verhalten von Nutzern der

CIAM-Komponente zu finden und als Alarm, etwa per E-Mail oder per Push-Nachricht, zu

melden. Nachdem die im Rahmen dieser Arbeit entwickelten Verfahren zur Anomalie-

Erkennung auf selbstgenerierten Beispiel-Aufzeichnungsdaten angewendet wurden, sollen diese

bei Beispieldaten von iC Consult und schlussendlich in der realen Betriebsumgebung Anwen-

dung finden. Für die Anwendung in der Betriebsumgebung wird nachfolgend ein grober Ansatz

für die Integration beschrieben.

Aktion Beschreibung

LOGIN Signalisiert einen Login eines Nutzers am System

LOGOUT Signalisiert einen Logout eines Nutzers vom System

PW-CHANGE Signalisiert eine Passwort-Änderung eines Nutzers im System

EMAIL-CHANGE Signalisiert eine Änderung der E-Mail eines Nutzers im System

REGISTRATION Signalisiert eine Registrierung eines neuen Nutzers am System

PROFILE Signalisiert den Aufruf eines Profils durch einen Nutzer

MOBILE Signalisiert eine Verwendung eines Mobilgeräts eines Nutzers

Tabelle 1: Auflistung einer Teilmenge der in den Aufzeichnungsdaten enthaltenen Aktionen

Page 33: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Stand der Technik / Forschung 25

3.1.2 Integrationsansatz für die Anomalie-Erkennung

Für die Inbetriebnahme der zu entwickelnden Lösung in der realen Betriebsumgebung müssen

eventuell Anpassungen bzw. Erweiterungen vorgenommen und eventuell sogar neue Schnitt-

stellen geschaffen werden. Ein Vorschlag für eine theoretische Integration der Anomalie-

Erkennungskomponente geht aus dem Aufbau des im Rahmen der Projektarbeit entstandenen

Demonstrators aus Abbildung ? hervor. Der dadurch entstehende Architekturaufbau wird in

Abbildung 11 visualisiert und im Folgenden erläutert. Die dabei beschriebenen Komponenten

agieren jeweils als selbstständige Microservices. Dies ermöglicht den einfachen Austausch von

existierenden Services sowie die Ergänzung von neuen Services. Somit lassen sich neue Ano-

malie-Erkennungskomponenten einfach hinzufügen und testen.

Um nicht nur ein initiales Wahrscheinlichkeits-Modell für die Erkennung von Anomalien eines

jeden Nutzers zu haben und dieses permanent zu verwenden, ist eine Art von Modell-

Verwaltung notwendig. Diese Verwaltung berechnet das Modell eines Nutzers in einem gewis-

sen Rahmen (vergangene Zeit oder getätigte Aktionen) neu und vergisst dadurch veraltetes Ver-

halten und bezieht neues Verhalten in das Modell mit ein. Zusätzlich wird hierfür eine Daten-

bank benötigt, in der das aktuelle Modell jedes Nutzers abgelegt werden kann. Für die typischen

CRUD-Funktionen (Create, Read, Update, Delete) zur Interaktionen mit den Modellen benötigt

die Modell-Verwaltung eine Schnittstelle, die sie den anderen Komponenten bereitstellt.

Dadurch können die anderen Komponenten neue Modelle abspeichern oder Modelle für die

Anomalie-Erkennung anfordern.

Als Hauptbestandteil des geplanten Vorgehens muss auch die Anomalie-Erkennung in die Be-

triebsumgebung eingebracht werden. Hierfür soll die Anomalie-Erkennungskomponente eine

Schnittstelle bereitstellen, mit der die Analysen durchgeführt werden können. Benötigte Daten

dafür sind beispielsweise das Modell des Nutzers sowie die zu überprüfende Verhaltenshistorie.

Zusätzlich sollen die erkannten potenziellen Anomalien in einer Datenbank abgelegt und für

spätere Inspektion durch einen System-Admin, in einem Web-Interface zusammengefasst wer-

den.

Für die Darstellung der Anomalien und die Benachrichtigung von relevanten Personen beim

Auftreten einer Anomalie ist jeweils eine eigene Komponente notwendig. Für die Darstellung

ist ein minimalistisches Web-Interface, welches über eine zentrale Komponente auf die Daten-

bank mit den Anomalien zugreift, ausreichend. Für die Benachrichtigung können E-Mails oder

Push-Nachrichten verwendet werden. Für die Verwendung dieser Funktionalität muss diese

Komponente eine Schnittstelle bereitstellen, sodass bei einer potenziellen Anomalie eine Mel-

dung gesendet werden kann.

Für das Zusammenspiel all dieser Teil-Komponenten ist eine Controller-Komponente, die den

Ablauf koordiniert, notwendig. Dieser Controller veranlasst beispielsweise Updates der Nut-

zermodelle über die Schnittstelle der Modell-Verwaltung, startet eine Anomalie-Analyse durch

Ansprechen der Schnittstelle der Anomalie-Erkennung, gibt eine Benachrichtigung an eingetra-

gene Personen über die Schnittstelle des Benachrichtigungsservice heraus oder stellt dem Web-

Interface die in der Datenbank abgelegten Anomalien zur Verfügung.

Page 34: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

26 Stand der Technik / Forschung

Abbildung 11: Schematischer Entwurf des Integrationsansatzes

Zur Verdeutlichung des geplanten Einsatzszenarios wird im Folgenden ein exemplarischer

Durchlauf des theoretischen Ablaufs anhand von Abbildung 12 erläutert. Hierbei unterscheidet

man zwischen zwei Fällen. Im ersten Fall findet der Einsatz mittels einer initialen Inbetrieb-

nahme dieses modellhaften Intrusion Detection System statt. Der zweite Fall beschreibt den

Normalbetrieb des Modell-IDS.

Initiale Inbetriebnahme der Komponente

Bei der initialen Inbetriebnahme der entwickelten Lösung müssen zunächst die Aufzeichnungs-

daten eines bestimmten Zeitrahmens erfragt werden. Anschließend findet eine Identifizierung

der vorhandenen Nutzer in diesen Logs statt. Existieren genügend Verhaltensdaten für die je-

weiligen Benutzer, so wird ein initiales Modell zur Klassifizierung einer Verhaltenshistorie

berechnet und in einer Datenbank ablegt. Anschließend kann mit dem Normalbetrieb fortgefah-

ren werden.

Abbildung 12: Theoretischer Ablauf der entwickelten Lösung

Page 35: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Stand der Technik / Forschung 27

Normalbetrieb der Komponente

Im Normalbetrieb arbeitet die Komponente in einer zyklischen Vorgehensweise. Hierbei prüft

die potenzielle Controller-Komponente im ersten Schritt periodisch, ob neue Log-Einträge auf

dem CIAM-Webserver vorhanden sind. Im nächsten Schritt sortiert der Controller diese Auf-

zeichnungsdaten nach Nutzern und prüft, ob die vorhandenen Einträge für eine Anomalie-

Erkennung ausreichen. Für die Benutzer deren Aktivität in diesem Log enthalten ist und für die

genügend Log-Einträge existieren muss zunächst eine Überprüfung stattfinden, ob bereits ein

Modell zur Klassifizierung des Verhaltens dieses Nutzers existiert. Hierzu sendet der Controller

eine Anfrage and einen Endpunkt der für einen User-Identifier zurückliefert, ob ein Modell un-

ter diesem Nutzer bereits existiert. Im Fall, dass kein Modell vorhanden sein sollte wird zu-

nächst ein initiales Modell für diesen Nutzer berechnet und in der Datenbank abgelegt. Bei ei-

nem bereits existenten Modell erfragt der Controller dieses für den nächsten Schritt. Hier findet

nun die Anomalie-Erkennung für jeden identifizierten Nutzer statt. Dafür ruft der Controller die

Anomalie-Erkennungskomponente mit einem Nutzer-Modell und der Verhaltenshistorie die

untersucht werden soll auf. Sobald die Anomalie-Erkennung beendet ist, kann die Anomalie-

Erkennung durch den Controller bei einer potenziellen Anomalie eine Benachrichtigung ver-

schicken lassen und/oder einen Eintrag im Web-Interface vornehmen.

Die Realisierung der Lösung in einer Testumgebung, die weitestgehend der Betriebsumgebung

von iC Consult ähneln soll, wird detailliert in Kapitel 6 beschrieben. Zusätzlich findet dort auch

eine Beschreibung der Voraussetzungen und verwendeten Technologien statt.

3.1.3 Zukünftige Entwicklung

Transfer von Logs in ein Elasticsearch-Cluster

3.2 Betrachtete Verfahren

In diesem Abschnitt sollen die im Rahmen dieser Arbeit untersuchten maschinellen Lernverfah-

ren zur Anomalie-Erkennung grob vorgestellt werden. Ergänzend dazu wird eine mögliche An-

wendung auf den vorliegenden Anwendungsfall erläutert. In einer anschließenden Diskussion

wird das gewählte Verfahren herausgestellt.

Durch die Unbekanntheit der Anomalien, die in den Daten erwartet werden und das Vorhanden-

sein von nicht-markierten Log-Daten wurde der Bereich der zu verwendeten Verfahren auf un-

überwachte Maschinenlernverfahren beschränkt.

3.2.1 Bag of Words-Ansatz

Beim Bag of Words-Ansatz handelt es sich um ein beliebtes Verfahren in der Verarbeitung von

natürlicher Sprache. Er wird häufig zum Trainieren eines Klassifizierers, beispielsweise zur

Unterscheidung zwischen legitimen und spambehafteten E-Mails, eingesetzt.

Funktionsweise

Zentraler Bestandteil des Ansatzes ist, wie der Name schon sagt, der sogenannte Bag of Words.

Ein Bag of Words, kurz BoW, ist bei der Anwendung auf natürliche Sprache eine Histogramm-

ähnliche Repräsentation eines Textes.

Beispiel: „John likes to watch movies. Mary likes movies too.”

Page 36: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

28 Stand der Technik / Forschung

Der zum Beispiel gehörende BoW sieht wie folgt aus:

[1, 2, 1, 1, 2, 1, 1]

Hierbei entspricht der Wert des ersten Index, also „1“, der Häufigkeit des Wortes „John“, der

Wert des zweiten Index „2“ der des Wortes „likes“ und so weiter. Im Falle von mehreren Zei-

chenketten kann es sein, dass ein Wort nicht in jeder Zeichenkette enthalten ist, wodurch ein

Index auch den Wert 0 haben kann. Die Reihenfolge der Indexe zu den Wörtern entsteht durch

die Reihenfolge des Auftretens der einzelnen Wörter in den Zeichenketten.

Wie bereits erwähnt wird dieser Ansatz häufig als Grundlage für die Erkennung von spambehaf-

teten E-Mails eingesetzt. Spam-Mails sind hierbei nichts anderes als eine Anomalie. Eine Ab-

weichung von den E-Mails, die ein Nutzer normalerweise erwartet. In Kombination mit bei-

spielsweise einem Bayesian-Klassifizierer kann anhand zweier Bags of Words, einer für Wörter,

die in legitimen E-Mails vorhanden sind und einem Bag für Wörter, die in Spam-Mails vor-

kommen, eine Wahrscheinlichkeit berechnet werden, mit der ein Text einer E-Mail entweder in

den Spam-Bag oder in den Bag der legitimen Mails eingeordnet wird.

Eine ähnliche Vorgehensweise beschreiben [KF+05] in ihrer Forschungsarbeit zu Anomalie-

Erkennung mittels eines sogenannten Bag of System Calls und lernenden Klassifizierern. Hier-

bei findet die Erzeugung der Bags durch die Aufzeichnung der Häufigkeit von verschiedenen

Systemaufrufen statt. Anschließend werden mittels k-Means Clustering mit einem k-Wert von

zwei, also ein Cluster für normale Datenpunkte und einem Cluster für Anomalien, die Bags

versucht in normal und anomal zu unterscheiden.

Applikation

Eine weitere ähnliche Vorgehensweise beschreibt [?] in seinem Artikel zu unüberwachter Ano-

malie-Erkennung mittels des Bag of Words-Modells. Dieser Ansatz sieht je Bag eine Berech-

nung der durchschnittlichen Distanz zu jedem anderen verfügbaren Bag vor. Anschließend fin-

det eine Schätzung einer Wahrscheinlichkeitsverteilung durch einen bestimmten Algorithmus

(hier: EM-Algorithmus) statt. Mit dieser Verteilung und einem festzulegenden Sensitivitäts-

Faktor wird ein Threshold berechnet, mit dem später festgestellt werden kann, ob es sich bei

einem Bag um eine Anomalie oder Normalität handelt. Um einen Wert zu erhalten, der mit dem

Threshold verglichen werden kann, berechnet man für einen neuen Bag die durchschnittliche

Distanz und verwendet diese als Eingabe für die Funktion der Wahrscheinlichkeitsverteilung.

Der resultierende Wert dient zum Vergleich mit dem Threshold. Für die Anwendung auf den

vorliegenden Anwendungsfall verwendet man anstatt Bag of Words dann Bag of Actions, wel-

che das Histogramm von Aktionen eines Nutzers abbilden. Diese Bag of Actions können an-

schließend mit der weiteren Vorgehensweise genutzt werden.

3.2.2 NNIDS

3.2.3 Anomalie Erkennung von Nutzerverhalten zur Datenbank-sicherheitsüberprüfung basierend auf OCSVM

Page 37: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Prozessmodell für die Anomalie-Erkennung 29

4 Prozessmodell für die Anomalie-Erkennung

In diesem Kapitel soll nun der Gesamtprozess der für die Anomalie-Erkennung durchlaufen

wird genauer betrachtet werden. Aus diesem Prozessmodell lassen sich zusammen mit dem

C&M-Entwicklungsprozess die notwendigen Services deren Schnittstellen und die dabei entste-

henden Artefakte bei der Umsetzung für den Produktiv-Einsatz identifizieren. Bevor die Be-

schreibung und Veranschaulichung der einzelnen Teile, die den Gesamtprozesses formen, statt-

finden kann, muss zunächst der angestrebte Prozessablauf näher beleuchtet werden. Nachdem

der gewünschte Ablauf bekannt ist, können die Vision und die Geschäftsziele, zur Verdeutli-

chung des erwarteten Mehrwerts, erläutert werden. Anschließend folgt eine Beschreibung der

Fähigkeiten und Features, die das entstehende Intrusion Detection System zur Realisierung der

Vision und der Geschäftsziele benötigt. Anschließend können die einzelnen Komponenten, die

eigenständige Microservices darstellen, identifiziert und eingegrenzt werden. Für die Kommu-

nikation zwischen den einzelnen Komponenten werden Schnittstellen benötigt. Diese sollen im

Anschluss an die Identifizierung der notwendigen Services beschrieben werden. Bei der Kom-

munikation über diese Schnittstellen ist eine Übertragung von Daten in Form von Artefakten

unvermeidbar. Diese Artefakte lassen sich auch grob aus den Features herauslesen und werden

nach den Schnittstellen erläutert. Im letzten Abschnitt dieses Kapitels wird das Big Picture des

Gesamtprozesses anhand einer Context Map betrachtet.

4.1 Angestrebter Prozess

4.2 Einsatzumfelds und Zielsetzung

4.3 Fähigkeiten und Features

4.4 Identifizierung der notwendigen Komponenten

4.5 Schnittstellen-Kommunikation

4.6 Definition der Artefakte

4.7 Orchestrierung der Komponenten

Page 38: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

30 Prozessmodell für die Anomalie-Erkennung

Abbildung 13: Visualisierung des Prozessmodells für die Anomalie-Erkennung

Page 39: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Komponenten des Erkennungsprozesses 31

5 Komponenten des Erkennungsprozesses

Im vorherigen Kapitel wurde bereits das Zusammenspiel der einzelnen Komponenten darge-

stellt. Hierbei wurden die Komponenten als Blackboxes betrachtet. In diesem Kapitel findet nun

die Erläuterung des Aufbaus und der Funktionsweise der einzelnen Komponenten, die für die

Realisierung der Erkennung von Anomalien in Aufzeichnungsdaten benötigt werden, statt. Zu

diesen Komponenten gehören der Verhaltensmodell-Generator, die Vorverarbeitung als Teil des

Lernverfahrensprozesses, die maschinellen Lernverfahren zur Anomalie-Erkennung sowie die

Visualisierung von Steuerung und Ergebnissen in Form einer Demonstrator-Anwendung.

5.1 Erzeugung von Nutzermodellen

Die Generator-Komponente zur Erzeugung von Nutzermodellen ist lediglich innerhalb dieses

Projekts ein Teil des Prozesses. Bei einem potenziellen Produktiv-Einsatz der Ergebnisse dieser

Arbeit ist ein Austausch des Generators durch eine Anbindung an eine potenzielle Log-

Datenbank notwendig. Der Generator dient der Erzeugung von modellhaftem Verhalten von

fiktiven Nutzern. Mit diesen Modellen soll eine Untersuchung der Komponenten der Vorverar-

beitung und der Anomalie-Erkennung auf korrekte Funktionsweise stattfinden. Vor der Be-

schreibung des Aufbaus der Modelle und des Generators muss zunächst die Notwendigkeit für

diese Komponente erläutert werden.

5.1.1 Notwendigkeit

Die Erzeugung dieses modellhaften Verhalten ist notwendig, da für die Durchführung der Ano-

malie-Erkennung zwar Aufzeichnungsdaten der Firma iC Consult zur Verwendung vorhanden

sind, jedoch ist nicht bekannt, ob in diesen Daten bereits Anomalien vorhanden sind oder nicht.

Zusätzlich enthalten diese Aufzeichnungsdaten personenbezogene Informationen der Kunden

des Unternehmens. Diese Informationen dürfen aus Datenschutzgründen die Hardware von iC-

Consult nicht ohne vorherige Anonymisierung verlassen. Weiterhin ist es für Testzwecke in

dieser Arbeit notwendig, ausreichend Daten für einzelne Nutzer zu haben. Für den späteren

Testlauf der Gesamt-Komponente sind Daten über einen Zeitraum von mehreren Wochen wün-

schenswert. Um jedoch dem Konzept der Datensparsamkeit zu folgen, wurden daher so wenig

wie möglich Daten des Unternehmens angefordert und primär selbstgenerierte Aufzeichnungs-

daten, bis die entwickelte Architektur einsatzbereit ist, verwendet. Der Generator ermöglicht

zudem die Einbettung von eigens definierten Anomalien. Da nicht genau bekannt ist, wie Ano-

malien in diesem Anwendungsumfeld aussehen, ist es zu Testzwecken notwendig, Verhalten zu

erzeugen, dass als abnormal angesehen werden könnte. Diese selbstdefinierten Anomalien kön-

nen mit dem Generator in ein Verhaltensmodell eingefügt werden, um diese anschließend in

einem Testdurchlauf mit den Anomalie-Erkennungskomponenten erkennen zu lassen. Eine Be-

schreibung dieser Anomalie-Prototypen befindet sich in Abschnitt 5.1.3.

5.1.2 Aufbau der Verhaltensmodelle

Beschreiben lassen sich die durch den Generator erzeugten Benutzermodelle mit einer kleinen

Anzahl von ausgewählten Parametern, die das Verhaltensmodell bilden und den daraus gene-

rierten Log-Dateien. Die Parameter gibt der Nutzer zu Beginn der Verwendung des Generators

ein. Die exakte Verwendung der im Folgenden erläuterten Parameter wird im nächsten Ab-

Page 40: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

32 Komponenten des Erkennungsprozesses

schnitt ausführlich dargestellt. Ein Beispiel für ein Verhaltensmodell eines fiktiven Nutzers wird

in Tabelle 2 dargestellt

Parameter Beispielwert

Anzahl Logs / Anzahl Tage 3

Aktionen 20

Verteilung der Aktionen [0.7, 0.2, 0.1]

Anomalie-Typen [1, 0, 1]

Tabelle 2: Beispielwerte für ein Verhaltensmodell

Der erste Parameter des Verhaltensmodells, der für die Generierung von Logs eines Benutzer-

modells benötigt wird, ist die Anzahl von Log-Dateien, in denen Aktionen des fiktiven Nutzers

vorhanden seien sollen. Da Logs üblicherweise für einen spezifischen Tag erstellt werden, ist

dieser Parameter gleichbedeutend mit der Anzahl von Tagen, an denen der fiktive Nutzer aktiv

war.

Einer der wesentlichen Parameter des Nutzerverhaltens ist die Anzahl der Aktionen, also der

Log-Einträge, die der potenzielle Benutzer pro Tag bzw. pro Log-Datei durchführt. Nutzer von

Web-Anwendungen und dem zugehörigen Login-Portal führen nicht jeden Tag die exakt selbe

Anzahl von Aktionen durch. Um dies in die Modelle einzubringen und dadurch eine gewisse

Dynamik zu erzeugen, besteht die Möglichkeit durch Konfigurations-Variablen des Generators

ein Intervall für eine zufällige Abweichung bei der Anzahl der durchgeführten Aktionen pro

Tag zu definieren.

Ein weiterer Parameter bzw. Array von Parametern für die Beschreibung des Verhaltens eines

Benutzers ist die Verteilung der durchgeführten Aktionen. (+Ausschnitt der verfügbaren Aktio-

nen) Diese Aktionen können beispielsweise Logins, Logouts, Passwort-Änderungen oder eine

Änderung der E-Mail sein. Ein Teil der verfügbaren Aktionen wurde bereits in Tabelle 1 aufge-

listet. Um diese im zu erzeugenden Verhalten abbilden zu können, muss angegeben werden, wie

hoch der Anteil der am Tag durchgeführten Aktionen von welcher Art sind. Angenommen es

existieren die Aktionstypen Login, Passwort-Änderung sowie E-Mail-Änderung und der fiktive

Nutzer tätigt zwanzig Aktionen an einem Tag, dann hätte man mit einem Array von [0.7, 0.2,

0.1] vierzehn Logins, vier Passwort-Änderungen und zwei E-Mail-Änderungen. Die Summe der

Verteilungs-Werte muss offensichtlich eins sein.

Der nächste Parameter ist zuständig für die Einbettung von Anomalien im Verhalten des fikti-

ven Nutzers und ist daher optional, sodass eine Erzeugung von Anomalie-freien Benutzermo-

dellen ebenfalls möglich ist. Dieser letzte Parameter gibt durch ein Array an, von welcher Art

und mit welcher Häufigkeit Anomalien in das Verhaltensmodell des fiktiven Nutzers eingefügt

werden sollen. Ein Array mit den Werten [1, 0, 1] bedeutet, dass eine Anomalie von Typ 1 und

eine Anomalie von Typ 3, in Summe zwei Anomalien, in das Verhalten des fiktiven Benutzers

eingefügt werden.

Anhand dieser Parameter lässt sich ein grundlegendes Verhalten definieren, welches der Gene-

rator im nächsten Schritt zur Erzeugung der Aufzeichnungsdaten des Benutzermodells verwen-

det.

Page 41: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Komponenten des Erkennungsprozesses 33

5.1.3 Anomalien

Bruteforce-Angriff

Angreifer mit Zugriff auf E-Mail – Passwort-Rücksetzung, Passwort-Änderung und E-

Mail-Änderung

Viele Passwort-Änderungen an einem Tag

5.1.4 Aufbau und Funktionsweise des Generators

Im Folgenden wird zunächst der Aufbau des Generators beschrieben, bevor die Funktionsweise

an einem beispielhaften Ablauf erläutert wird.

Aufbau

Der Generator verwendet eine Model View Controller-Architektur (kurz: MVC) und soll für

den Einsatz in der Demonstrator-Anwendung sowie in der praktischen Testumgebung in einen

Microservice ausgelagert werden. Durch die Verwendung einer MVC-Architektur und deren

Ähnlichkeit zu einer Microservice-basierten Anwendung ist es möglich, die Funktionalität des

Generators einfach in einen Microservice umzuwandeln. Diese Umwandlung wird in Abschnitt

5.1.5 beschrieben. Eine vereinfachte Visualisierung des Aufbaus des Generators ist in Abbil-

dung ? zu sehen.

Durch die MVC-Architektur befinden sich die Interaktionsansicht für den Anwender, die Steue-

rung der Abläufe und die Daten bzw. Prozesse dieser Komponente in getrennten Ebenen. Die

Koordination erfolgt hierbei durch die Controller-Schicht, welche Eingaben des Anwenders

durch die View-Schicht interpretiert und damit die Verarbeitung der Daten in der Model-

Schicht in Gang setzt.

In der Controller-Schicht existiert der sogenannte maincontroller, der den Ablauf des Genera-

tors steuert. Beispielsweise lässt er die Generatoren der Model-Schicht Daten erzeugen oder

delegiert Eingabe-Abfragen an die Kommandozeilen-Ansicht. Die Model-Schicht besteht aus

zwei Generatoren zur Erzeugung von fiktiven Nutzern und deren Aufzeichnungsdaten. Der Ge-

nerator mit der Bezeichnung usergenerator ist für die Konstruktion der Nutzer und deren Ver-

haltensmodell zuständig. Der zweite Generator namens datagenerator verwendet die vom user-

generator erzeugten Objekte für die Generierung der Logs. Weiterhin existieren zwei Arten von

Datenobjekten namens Behavior und Action zur Beschreibung eines Nutzers. Hierbei beinhalten

Behavior-Objekte die im vorherigen Abschnitt beschriebenen Parameter des Verhaltensmodells

und die Action-Objekte definieren die bereits erläuterten Aktionen die ein Nutzer durchführen

kann.

Funktionsweise

Da der Generator zunächst Einsatz beim Testen des verwendeten Maschinenlernverfahren fin-

det, wird der Ablauf anhand des Kommandozeilen-Interface, welches die Parameter per Eingabe

vom Anwender erfragt und einige Informationen zu den erzeugten Logs ausgibt, beschrieben.

Nach dem Start der Komponente veranlasst der Controller die Eingabe der benötigten Parameter

durch den Nutzer. Hierzu fragt die Kommandozeilen-Ansicht die Parameter einzeln ab. In die-

sem Beispiel wird angenommen, dass der Anwender folgende Daten bereitgestellt hat:

• Anzahl Tage von Aufzeichnungsdaten: 3

• Einträge pro Tag: 20

Page 42: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

34 Komponenten des Erkennungsprozesses

• Verteilung der Operationen: [0.7, 0.2, 0.1]

• Anomalien: [1, 0, 0]

Anschließend übergibt die Kommandozeilen-Ansicht die eingegebenen Parameter an den Con-

troller. Im nächsten Schritt kann der Controller nun die Routine zur Erzeugung der Aufzeich-

nungsdaten auslösen. Hier finden nun die Generatoren und Datenobjekte des Modells ihre An-

wendung. Zunächst veranlasst der Controller die Erzeugung eines initialen Benutzermodells mit

einer zufälligen IP-Adresse und einer User-ID. Diese ID ist ein Hashwert aus der zufällig er-

zeugten IP-Adresse. Zusätzlich findet die Erstellung des Verhaltensmodells bzw. des Behavior-

Objekts mit den eingegebenen Parametern des Anwenders statt. Dieses User-Objekt wird im

Anschluss an den datagenerator übergeben, welcher anhand dessen die Aufzeichnungsdaten

generiert und diese an den Controller zurückliefert. Abschließend lässt der Controller ausge-

wählte Informationen zu den erzeugten Daten über die Kommandozeile ausgeben.

5.1.5 Umwandlung in einen Microservice

5.2 Verarbeitung der Aufzeichnungsdaten

5.2.1 Daten-Bereinigung

5.2.2 Aggregation in IP/User-Packete

5.2.3 Erzeugung von Sitzungen

5.3 Anwendung des maschinellen Lernverfahren

5.3.1 Erklärung des Verfahren

5.3.2 Umsetzung in diesem Umfeld

5.4 Visualisierung

Page 43: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Einsatz in der Betriebsumgebung 35

6 Einsatz in der Betriebsumgebung

Wie bereits in Kapitel 4 erläutert, soll die entwickelte Komponente zur Anomalie-Erkennung in

der Produktivumgebung des Kooperationspartner iC-Consult eingesetzt werden. Der Abschluss

der technischen Umsetzung beinhaltet deswegen eine Erweiterung des zuvor entwickelten De-

monstrators um die dafür notwendigen Konzepte. Diese Konzepte wurden schon in der Be-

schreibung des Integrationsansatzes in Kapitel 3 angedeutet und sollen in diesem Kapitel näher

betrachtet, umgesetzt und in einer weitestgehend ähnlichen Umgebung, wie der bei iC-Consult,

eingesetzt werden.

6.1 Aufbau der Testumgebung

6.2 Umsetzung der Erweiterungen

6.3 Betrieb der Lösung

6.4 Evaluation der Ergebnisse

6.5 Inbetriebnahme beim Kooperationspartner

Page 44: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

36 Einsatz in der Betriebsumgebung

Page 45: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Projektteam-Arbeiten 37

7 Projektteam-Arbeiten

Abschlussarbeiten in der C&M-Forschungsgruppe finden häufig in Zusammenhang mit einem

Projekt statt. Teil dieses Projekts ist die Zusammenarbeit mit einem Team aus Praktikums- bzw.

Seminararbeitern bei C&M. Diese sind während ihrer Beschäftigung bei C&M einem solchen

Projektteam zugeordnet und erbringen zusätzlich zu ihrer eigenen Ausarbeitung hilfreiche Bei-

träge, die für das übergeordnete Projekt relevant sind.

Im Rahmen der Zusammenarbeit zwischen den Studierenden und dem Abschlussarbeiter, nimmt

dieser, zusätzlich zu den Mitarbeitern der Forschungsgruppe, eine anleitende und betreuende

Rolle ein. In diesem Kapitel soll nun die Zusammenarbeit mit dem Projektteam beschrieben

werden. Hierfür wird zunächst die Struktur erläutert und die Beteiligten des Teams vorgestellt.

Anschließend muss die zu bearbeitende Thematik, der Bezug zur vorliegenden Abschlussarbeit,

die Aufgaben der Projektarbeit sowie das Ziel der mitwirkenden Studierenden beschrieben wer-

den. Danach kann die Erläuterung der Einarbeitungs- und der Bearbeitungsphase des Projekt-

teams stattfinden. Bevor der Abschluss dieses Kapitels eine Bewertung der Zusammenarbeit mit

den Beteiligten des Teams liefert, werden die erreichten Ergebnisse der Projektteam-Arbeit

dargestellt.

7.1 Zusammensetzung des Projektteams

Das zugehörige Projektteam dieser Arbeit, getauft auf den Namen Log_iCC, besteht insgesamt

aus drei Mitwirkenden. Dabei sind zwei der Beteiligten, Tobias Röddiger und Jan-Philip

Quirmbach, Master-Studenten der Informatik-Richtung. Diese müssen im Rahmen ihres Studi-

ums eine gewisse Anzahl von ECTS verpflichtend in Praktika erbringen. Zusammen bringen sie

bereits Erfahrungen im den Bereichen der Webanwendungs-Entwicklung und des Maschinen-

lernens mit, was im Rahmen der Projektarbeit sehr hilfreich ist. Der dritte Mitwirkende in die-

sem Projektteam und gleichzeitig auch Betreuer der Praktikanten ist der Verfasser der vorlie-

genden Arbeit. Zur Abstimmung der anliegenden Aufgaben und Richtungsweisung der Umset-

zung werden wöchentliche Treffen des Projektteams, geleitet durch den Verfasser dieser Arbeit,

abgehalten

7.2 Zu bearbeitendes Themengebiet

Die von den Projektteam-Teilnehmern zu bearbeitende Thematik setzt sich zusammen aus ei-

nem theoretischen und einem praktischen Teil, wobei die Teilnehmer mit den Bereichen des

Maschinenlernens und der Entwicklung von Software unter Anwendung des BDD/DDD-

Entwicklungsprozess von C&M in Berührung kommen sollen. Hierbei liegt der Fokus auf der

Zusammenarbeit und Entwicklung im Team, aber auch auf der Forderung von Eigeninitiative

durch die geschickte Aufteilung und Bearbeitung der anfallenden Aufgaben. Zusätzlich üben

sich die Team-Mitglieder im wissenschaftlichen Schreiben durch die Anfertigung einer Ausar-

beitung zur Dokumentation der inhaltlichen Konzepte, der verwendeten Technologien, der

durchgeführten Arbeit und den Ergebnissen.

Der zur späteren praktischen Aufgabenstellung des Teams zugehörige Bereich dieser Arbeit ist

der in der Einleitung bereits beschriebene Demonstrator in Form einer Web-Anwendung.

Page 46: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

38 Projektteam-Arbeiten

7.2.1 Aufgabenstellungen

Wie bereits einleitend erwähnt setzt sich die Aufgabenstellung an die Projektteam-Teilnehmer

aus einer theoretischen sowie einer praktischen Aufgabenstellung zusammen. Die theoretische

Aufgabenstellung für beide Mitwirkenden ist die Analyse von jeweils zwei wissenschaftlichen

Papers, die verschiedene Verfahren zur Anomalie-Erkennung beschreiben. Diese Publikationen

sollen dahingehend analysiert werden, ob eine Kompatibilität mit dem in dieser Arbeit vorlie-

genden Anwendungsfall existiert. Falls eine Kompatibilität möglich ist, soll eine grobe Be-

schreibung der notwendigen Abwandlung der beschriebenen Verfahren zur Anwendung im

vorliegenden Kontext geliefert werden. Diese Teilaufgabe wurde notwendig, da zu diesem Zeit-

punkt der verfolgte Ansatz (Bag of Actions) noch unbekannt war. Die Ergebnisse dieser Unter-

suchung finden sich auch teilweise in Kapitel 3 wieder.

Nach der Identifizierung und Festlegung auf das Bag of Actions-Verfahren sowie der grundle-

genden Implementierung dessen, kann die Bearbeitung des praktischen Teils stattfinden. Die

praktische Aufgabenstellung ist die Umsetzung der Demonstrator-Webanwendung unter Appli-

kation des C&M-Entwicklungsprozess. Dies beinhaltet die Ansteuerung der bereits vorhande-

nen Komponenten der Log-Generierung, der Anomalie-Erkennung nach dem Bag of Actions-

Ansatz sowie dem Gateway zum Aufruf der beiden zuvor genannten Funktionalitäten.

7.2.2 Zielsetzungen

Das Ziel der Untersuchung von verschiedenen Verfahren zur Anomalie-Erkennung durch die

Projektteam-Teilnehmer ist die Identifikation von Vorgehen, die in diesem Anwendungsumfeld

angewendet werden können. Diese zusätzlichen Ansätze können eventuell nach der vollständi-

gen Umsetzung des geplanten Prozessmodells als optionale Module implementiert oder in wei-

terführenden Arbeiten als Erweiterung der entwickelten Grundlage umgesetzt und evaluiert

werden.

Das angestrebte Ergebnis bei der Umsetzung der Demonstrator-Anwendung ist eine moderne

und intuitive Web-Oberfläche zur Steuerung einer Teilmenge der in Kapitel 5 beschriebenen

Komponenten. Dadurch soll es Nutzern dieses Demonstrators möglich sein Nutzermodelle, also

das Verhaltensmodell eines Nutzers und die dazugehörigen Aufzeichnungsdaten, zu erzeugen

und anschließend eine Anomalie-Erkennung auf diesen Daten durchführen zu können. Weiter-

hin ist die Realisierung der Demonstrator-Anwendung mit Hilfe des bei C&M etablierten agilen

Entwicklungsprozesses durchzuführen. Hierbei wird Behavior-Driven Development und das

von Evans beschriebene Domain-Driven Design praktiziert. Aus diesem Prozess sollen die zu-

gehörigen Artefakte wie beispielsweise Vision, Geschäftsziele, Features, Context Map und Re-

lation View hervorgehen, um anschließend eine Auflistung der notwendigen Funktionalität und

einen Ablaufplan für die Implementierung zu erhalten. Der Architektur-Aufbau der sich für die

Entwicklung nach der BDD/DDD-Vorgehensweise anbietet und auch für die Umsetzung des

Demonstrators angestrebt wird, ist die Aufteilung in Microservices (Kapitel 2.9). Der grobe

Aufbau wird in Abbildung ? dargestellt. Die Verknüpfung der Dienste durch APIs ist elementa-

rer Bestandteil einer Microservice-Architektur. Die für die Realisierung des Demonstrators

notwendigen APIs sollen dabei ausreichend dokumentiert werden sodass eine Erweiterung und

Interaktion mit diesen mit geringstmöglichen Aufwand möglich ist. Weiterhin ist die Verwen-

dung von Python als Programmiersprache und Flask als Framework für die Web-Oberfläche

vorgesehen.

Page 47: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Projektteam-Arbeiten 39

7.3 Einarbeitung des Projektteams

Für die Orientierung in den relevanten Themenbereichen des Projekts, also der Entwicklung von

Anwendungen nach dem C&M-Entwicklungsprozess, dem maschinellen Lernen und den

Frameworks zur Umsetzung der gestellten Aufgabenstellungen sowie der grundlegenden Kon-

zepte dieser Arbeit, ist eine Einarbeitung in diese Thematiken notwendig. Diese Einarbeitungs-

phase teilt sich hierbei in zwei Teile auf.

Im ersten Schritt sollen sich die Projektteam-Teilnehmer intensiver mit dem BDD/DDD-

basierten Entwicklungsprozess auseinandersetzen und diesen in ihrer eigenen Ausarbeitung

zusammenfassend beschreiben. Für die Konzepte dieser Vorgehensweise von C&M finden die

Studierenden ausreichend Literatur in den Folien der zum Praktikum gehörenden Vorlesung

WASA2. Dort wird die Vorgehensweise Schritt für Schritt anhand von Beispielen beschrieben.

Nach der Einarbeitung in den Entwicklungsprozess wird dieser anhand eines praktischen Bei-

spiels, der Spring Boot Demo, verdeutlicht. Hier veranschaulicht eine Beispiel-Anwendung in

Form einer ToDo-Liste, die mit dem C&M-Entwicklungsprozess angefertigt wurde, die zuvor

erlernten Konzepte. Die Erfahrungen aus diesem Workshop sollen ebenfalls in der jeweiligen

Ausarbeitung festgehalten werden.

Anschließend beginnen die Teilnehmer mit der Einarbeitung in die Grundlagen dieser Arbeit

und den fundamentalen Konzepten des maschinellen Lernens sodass die Analyse der zugeteilten

Paper der Anomalie-Erkennung stattfinden kann. Hierfür bekommt jeder Studierende jeweils

zwei Paper zugeordnet. Nach der Analyse der Publikationen und der Einigung auf ein Verfahren

mit dem Verfasser dieser Arbeit kann die Einarbeitung in die zu verwendenden Frameworks

stattfinden. Da im Voraus bereits bekannt war, dass die Studierenden an Front- und Backend

arbeiten möchten, konnten sie sich bei der Einarbeitung in Python und Flask gegenseitig unter-

stützen. Im Anschluss an diese finale Einarbeitungsphase kann mit der Bearbeitung der Haupt-

aufgabe des Praktikums, der Realisierung des Demonstrators, begonnen werden.

7.4 Bearbeitung der praktischen Aufgabenstellung

Im Folgenden soll die strukturierte Vorgehensweise des Projektteams bei der Umsetzung der

praktischen Aufgabenstellung beschrieben werden. Den hierbei verfolgten Prozess veranschau-

licht ?. Der Demonstrator dient in dieser Arbeit als Fundament für die später entstehende Integ-

rationsarchitektur und operiert durch die manuelle Bedienung in einer anderen Domäne als die

zu integrierende Lösung. Dadurch wird die Aufgabe, der Erstellung der Artefakte aus dem

C&M-Entwicklungsprozess, an die Studierenden übertragen. Für die Erstellung der Features

standen allerdings die exemplarischen Features aus der Einleitung als Orientierungshilfe zur

Verfügung.

Bevor mit der eigentlichen Durchführung der Implementierung begonnen wird, muss eine Auf-

teilung der Funktionen stattfinden. Da beide Studierende im Front- und Backend-Bereich arbei-

ten möchten bietet sich eine Zuweisung jeweils eines Features an einen Studierenden an.

Dadurch ist es möglich, dass beide Beteiligten die ersten Schritte des Entwicklungsprozesses,

also Beschreibung von Vision, Geschäftszielen und Fähigkeiten, gemeinsam durchführen kön-

nen. Anschließend extrahiert jeder Mitwirkende ein Feature, verfeinert dieses und implementiert

die zugehörige Logik in der Demonstrator-Anwendung. Parallel zum Entwurf der ersten Arte-

fakte des Entwicklungsprozesses durch die Projektteam-Teilnehmer werden die Komponenten

für die Hauptfunktionalität des Demonstrators, die Anomalie-Erkennung und der Log-

Page 48: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

40 Projektteam-Arbeiten

Generator, vom Betreuer entworfen, umgesetzt und dem Projektteam zur Integration zur Verfü-

gung gestellt.

Bei der Umsetzung der Features werden den Studierenden keinerlei Vorgaben zur Arbeitsweise

gemacht und weitestgehend freie Hand gewährt. Lediglich bei den wöchentlichen Treffen gibt

es richtungsweisende Hinweise sofern nötig.

7.5 Ergebnisse der Projektteam-Arbeit

In diesem Abschnitt sollen lediglich die Ergebnisse des praktischen Aufgabenteils vorgestellt

werden. Die Ergebnisse der Paper-Analyse werden soweit wie möglich in die untersuchten Ver-

fahren in Kapitel 3 integriert.

Durch die, parallel zum Praktikum stattfindende, WASA2-Vorlesung sind bereits Grundlagen

zur Anwendung von BDD und DDD vorhanden. Dadurch und die eigenständige Vertiefung

dieser Konzepte können die Projektteam-Teilnehmer schnell relevante Features identifizieren

und ausarbeiten. Die dabei entstandenen Features sind in Abbildung ? zu sehen.

Mit dem vorgegebenen Framework Flask und dessen geringen Einarbeitungsaufwand ist es den

Studierenden möglich, in Kombination mit dem HTML-Framework Bootstrap, in kurzer Zeit

ein anschauliches Grundgerüst des Demonstrators zu entwickeln. Durch weiteren Input des Be-

treuers bezüglich der notwendigen Funktionalität aus den Features implementieren die Projekt-

team-Teilnehmer die erwartete Funktionalität zu voller Zufriedenheit und bringen sogar eigene

sinnvolle Ideen für weitere Features in den Entwicklungsprozess mit ein.

Das Gesamtergebnis des Projektes ist eine moderne und einfach zu bedienende Web-Oberfläche

zur Erstellung von Verhaltensmodellen und Durchführung der Anomalie-Erkennung mit den

erzeugten Modellen. Zusätzlich existiert eine gut lesbare und verständliche API-Dokumentation

durch die Verwendung von Swagger UI. Die Oberflächen der Hauptfunktionalitäten werden in

den Abbildungen ? & ? dargestellt.

7.6 Evaluation der Zusammenarbeit

Die Kooperation mit den Projektteam-Teilnehmern war sehr angenehm und produktiv. Man

verstand sich von Anfang an sehr gut und konnte dadurch einen konstruktiven Diskussions- und

Feedbackaustausch abhalten.

Durch die Erfahrung in den relevanten Bereichen konnten die Studierenden sogar sinnvolle

Beiträge für die vorliegende Arbeit beisteuern. Anregungen und Versuche optionale Features

umzusetzen, die den zeitlichen Umfang des Praktikums überschritten hätten, wurden durch den

Betreuer in ihrem Ausmaß eingegrenzt.

Im Rahmen der wöchentlichen Treffen waren die Studierenden stets pünktlich anwesend und

nahmen aktiv an diesen Teil. In der praktischen Phase zeigten die Projektteam-Teilnehmer

durch die Freiheiten in der Umsetzung ein hohes Maß von Selbstorganisation und Eigeninitiati-

ve sodass aufgekommene Fragestellungen zuerst untereinander kommuniziert wurden, bevor

der Betreuer hinzugezogen wurde.

Page 49: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Zusammenfassung und Ausblick 41

8 Zusammenfassung und Ausblick

Zusammenfassung:

Ausblick:

- Verschiedene andere Lernverfahren (unüberwacht) ausprobieren

- Arbeiten mit Referenzmodellen von Nutzerarten

- Deployment und Evaluation des Einsatz in der Produktiv-Umgebung

Page 50: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

42 Zusammenfassung und Ausblick

Page 51: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Anhänge XLIII

Anhänge

A Beiträge zu WASA-Kurseinheiten

Hinweis: Im PDF-Dokument der finalen Ausarbeitung sind nach dieser Seite die im Rahmen der

Bachelor-/Masterarbeit erstellten (und zuvor in PDF umgewandelten) WASA-Kurseinheiten-

Seiten einzufügen. Die Reihenfolge ergibt sich aus der nachfolgenden Zusammenfassung.

Zu den folgenden bestehenden WASA-Kurseinheiten wurden Beiträge geleistet:

WASA COURSE TITLE

Kurze Erklärung der inhaltlichen Beiträge und ggf. eine Angabe, wie diese zu den bestehenden

Inhalten stehen (z.B. Ergänzung, Ersatz).

WASA COURSE TITLE

Optional

Es wurden die folgenden Kursinhalte erstellt, die keiner bestehenden WASA-Kurseinheit zuge-

ordnet werden können: ...

Page 52: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

XLIV Anhänge

Page 53: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Anhänge XLV

B Literaturanalysen

Angabe der Literaturanalyse zu den wichtigsten Dokumenten, die in der Diplomarbeit referen-

ziert wurden. Die analysierten Dokumente sind gemäß ihrer Relevanz zu ordnen. Die Literatur-

analysen zu den drei ersten Dokumenten gehen verstärkt in die Bewertung der Diplomarbeit ein.

Titel der analysierten Publikation

[AB0x] Vorname Name: Titel der analysierten Publikation, weitere Angaben.

Inhalte

Was sind die zentralen Inhalte (Themen, interessante Aussagen, Botschaften, Fragestellungen),

die in der Arbeit (d.h., in der analysierten Literatur) behandelt werden?

(I1)

(I2)

(I3)

Defizite

Welche Defizite bestehender Arbeiten und Lösungen werden als Motivation der eigenen Lösun-

gen genannt?

(D1)

(D2)

(D3)

Prämissen

Welche Einschränkungen und Vorgaben werden hinsichtlich der eigenen Lösungen gemacht?

(P1)

(P2)

(P3)

Lösungen

Was sind die eigenen Lösungen?

(L1)

(L2)

(L3)

Nachweise

Welche Nachweise (Evidence) werden hinsichtlich der Tragfähigkeit der eigenen Lösungen

geliefert?

(N1)

(N2)

(N3)

Page 54: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

XLVI Anhänge

Offene Fragen

Welche Fragen sind noch ungelöst geblieben bzw. stellen sich dem Leser?

(O1)

(O2)

(O3)

Sonstiges

Punkte, die in keine der oben genannten Kategorien passen

Page 55: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

Anhänge XLVII

C Literatur

[MV-AMD] Muralikrishna Venugopal: ACCOUNT MISUSE DETECTION, 2017.

[CM-AD] Cooperation & Management: C&M-APPLICATION-DEVELOPMENT,

Karlsruher Institut für Technologie (KIT), C&M (Prof. Abeck). C&M-

Teamserver > Mitglieder > 2-1.WASA.

[CM-CMT]

Cooperation & Management: C&M-TEAMARBEIT, Karlsruher Institut

für Technologie (KIT), C&M (Prof. Abeck). C&M-Teamserver > Mitglie-

der > 1-1.Teamarbeit.

[MG+02]

Mukkamala, S., Janoski, G. and Sung, A., 2002. Intrusion detection using

neural networks and support vector machines. In Neural Networks, 2002.

IJCNN'02. Proceedings of the 2002 International Joint Conference

on (Vol. 2, pp. 1702-1707). IEEE.

[LL+13]

Liao, H.J., Lin, C.H.R., Lin, Y.C. and Tung, K.Y., 2013. Intrusion detec-

tion system: A comprehensive review. Journal of Network and Computer

Applications, 36(1), pp.16-24.

[GD+09] Garcia-Teodoro, P., Diaz-Verdejo, J., Maciá-Fernández, G. and Vázquez,

E., 2009. Anomaly-based network intrusion detection: Techniques, sys-

tems and challenges. computers & security, 28(1-2), pp.18-28.

[Zw14] Zwietasch, T., 2014. Detecting anomalies in system log files using ma-

chine learning techniques (bachelor’s thesis).

[CB+09] Chandola, V., Banerjee, A. and Kumar, V., 2009. Anomaly detection: A

survey. ACM computing surveys (CSUR), 41(3), p.15.

[Ay10] Ayodele, T.O., 2010. Machine learning overview. In New Advances in

Machine Learning. InTech.

[CM+83] Carbonell, J.G., Michalski, R.S. and Mitchell, T.M., 1983. An overview of

machine learning. In Machine Learning, Volume I (pp. 3-23).

[Ki15] Kicanaoglu, B., 2015. Unsupervised Anomaly Detection in Unstructured

Log-Data for Root-Cause-Analysis.

[Mi08] Mikut, R., 2008. Data Mining in der Medizin und Medizintechnik (Vol.

22). KIT Scientific Publishing.

[SrM] Srihari, S.N., Machine Learning Overview. Letzter Zugriff: 30.04.18,

15.10 Uhr

[KF+05] Kang, D.K., Fuller, D. and Honavar, V., 2005, June. Learning classifiers

for misuse and anomaly detection using a bag of system calls representa-

tion. In Information Assurance Workshop, 2005. IAW'05. Proceedings

from the Sixth Annual IEEE SMC (pp. 118-125). IEEE.

[BR18] Rocha, B., 2018 Flasgger: Easy Swagger UI for your Flask API (Flasgger

Github-Dokumentation), https://github.com/rochacbruno/flasgger. [Letzter

Zugriff: 30.06.2018]

Page 56: Maschinelle Lernverfahren zur Anomalie-Erkennung aus ...cm.tm.kit.edu/img/content/ma_glueck_wip.pdf · Arbeit aufbaut sowie eine Erläuterung zur Vorgehensweise für die Entwicklung

XLVIII Anhänge

[BC+18] Burke, K., Conroy, K., Horn, R., Stratton, F. and Binet, G., 2018, Flask-

RESTful Documentation, https://flask-restful.readthedocs.io/en/latest.

[Letzter Zugriff: 30.06.2018]

[Ro18] Ronacher, A., 2018, Flask – web development, one drop at a time,

http://flask.pocoo.org/. [Letzter Zugriff: 30.06.2018]

[AD-CLF] Apache Documentation: Common Log Format,

https://httpd.apache.org/docs/1.3/logs.html#common. [Letzter Zugriff:

30.06.2018]

[AD-CBLF] Apache Documentation: Combined Log Format,

https://httpd.apache.org/docs/1.3/logs.html#combined. [Letzter Zugriff:

30.06.2018]

[SB-SED] SmartBeart, Swagger Editor, https://swagger.io/tools/swagger-editor/.

[Letzter Zugriff: 30.06.2018]

[SB-SUI] SmartBear, Swagger UI, https://swagger.io/tools/swagger-ui/. [Letzter

Zugriff: 30.06.2018]

[WP-API] Wikipedia, Application Programming Interface,

https://en.wikipedia.org/wiki/Application_programming_interface. [Letz-

ter Zugriff: 01.07.2018]

[De17] De, B., 2017, API Management : An Architects Guide to Developing and

Managing APIs for Your Organization. Apress Berkeley.

[BS16] Borys, J. and Szotten, D., 2016, Nameko

http://nameko.readthedocs.io/en/stable/. [Letzter Zugriff: 09.07.2018]

[PS-RMQ-INT] Pivotal Software, RabbitMQ Introduction,

https://www.rabbitmq.com/tutorials/tutorial-one-python.html. [Letzter

Zugriff: 10.07.2018]

[PS-RMQ] Pivotal Software, RabbitMQ Homepage, https://www.rabbitmq.com/.

[Letzter Zugriff: 10.07.2018]

[EL-ES] Elastic, Elasticsearch product page, 2018,

https://www.elastic.co/products/elasticsearch. [Letzter Zugriff:

10.07.2018]

[EL-XP] Elastic, X-Pack product page, 2018, https://www.elastic.co/products/x-

pack. [Letzter Zugriff: 10.07.2018]