Vortrag downloaden

Werbung
Haltet den (Daten-) Dieb!
Echtzeiterkennung von Anomalien in
Computernetzwerken mit maschinellen Lernverfahren
Julian Keppel
Offenburg, 08.03.2017
Julian Keppel
Student an der Hochschule Karlsruhe
Themen: Spark, Stream Processing, Machine
Learning
Betreuer: Prof. Dr. Christian Zirpins
2
Einführung
Anwendungsfall Intrusion Detection
› Erkennung ungewöhnlicher Netzwerkaktivitäten
› Signaturbasierte Systeme wie SNORT
› Neue Angriffsmuster, für die noch keine Signaturen
vorliegen? à Machine Learning
3
Einführung
{
"port_src": 46812,
"ip_src": "0.0.16.120",
"ip_dst": "0.0.112.252",
"tcp_flags": "30",
"port_dst": 80,
"ip_proto": "tcp",
"timestamp_end": "2016-12-07 09:22:17.0",
"tos": 0,
"timestamp_start": "2016-12-07 09:22:17.0",
"packets": 7,
"bytes": 869
}
4
Einführung
› In der Praxis fehlen häufig Labels
› Unsupervised Algorithmen wie Clustering schaffen
Abhilfe
› Einfach und weit verbreitet: k-means
5
Konzept
Feature-Extraktion: Categorials
…,tcp,…
…,udp,…
…,udp,…
…,icmp,…
…,udp,…
…,tcp,…
StringIndexing
…,1.0,…
…,0.0,…
…,0.0,…
…,2.0,…
…,0.0,…
…,1.0,…
One-HotEncoding
…,0.0,1.0,0.0,…
…,1.0,0.0,0.0,…
…,1.0,0.0,0.0,…
…,0.0,0.0,1.0,…
…,1.0,0.0,0.0,…
…,0.0,1.0,0.0,…
6
Konzept
Feature-Extraktion: Verschiedene Skalierungen
…,421,4,…
…,2021,8,…
…,768,16,…
…,3122,10,…
…,139,2,…
…,2845,10,…
StandardScaling
…,0.328,0.805,…
…,1.574,1.611,…
…,0.598,3.222,…
…,2.431,2.013,…
…,0.108,0.403,…
…,2.215,2.013,…
7
Konzept
Ansätze für Anomaly Detection
8
Prototyp
Architektur
Trace
Trace
Alarme
Modell
Modell
Trainingsdaten
Storage
9
Prototyp
Spark, Streaming & MLlib
› Spark bietet breite Auswahl an Bibliotheken
› Einheitliche API für Batch- und Stream-Processing
› Dataframe/Dataset-API (SQL)
› Machine Learning-Workflows
› Alles nötige aus einer Hand
› Model Selection
› Feature-Engineering und Vorverarbeitung
› Echtzeiterkennung
10
Prototyp
Spark Pipeline-Konzept
StringIndexing
One-HotEncoding
StandardScaling
k-means
Clustering
Modell
11
Prototyp
Echtzeiterkennung mit Spark Streaming
{
"port_src": 0,
"ip_src": "0.0.16.120",
"ip_dst": "0.0.112.252",
"tcp_flags": "0",
"port_dst": 0,
"ip_proto": "ipv6-crypt",
"tos": 0,
"packets": 130599,
"bytes": 103103700
Modell
cluster: 16, distance: 13.72
distance > 12.0 ?
}
Alarm!
12
Evaluation
Beispiele für Anomalien
Punktanomalie
{
"port_src": 0,
"port_dst": 0,
"ip_src": "0.0.159.234",
"ip_dst": "0.0.23.180",
"ip_proto": "ipv6-crypt",
"tos": 0,
"packets": 130599,
"bytes": 103103700,
"timestamp_start": "2017-01-03 16:15:11.0",
"timestamp_end": "2017-01-03 16:15:21.0",
"tcp_flags": 0
}
13
Evaluation
Beispiele für Anomalien
Kollektive
Anomalie
{
"port_src": 53,
"port_dst": 37095,
"ip_src": "0.0.83.30",
"ip_dst": "0.0.159.234",
"ip_proto": "udp",
"tos": 0,
"packets": 1,
"bytes": 698,
"timestamp_start": "2017-01-08 05:16:19.0",
"timestamp_end": "2017-01-08 05:16:19.0",
"tcp_flags": 0
}
14
Online-Learning?
› Klassischerweise werden Modelle einmalig trainiert
(Offline)
› Bei Bedarf periodisch neues Training des Modells
› Manchmal kontinuierliche Anpassung des Modells an die
Gegebenheiten wünschenswert (Online)
› Online-Implementierung für k-means in Spark
15
Online k-means in Spark
› Clusterzentren werden für jeden Micro-Batch
aktualisiert
› „Vergesslichkeit“ des Modells konfigurierbar
› Vorteil: Adaption von sich ändernden Gegebenheiten
› Nachteil: Auch Adaption etwaiger Anomalien?
16
Online- vs. Offline-Learning
Versuchsaufbau
Training
Update 1
Update 2
…
Update n
Test
OnlineModell
Vorhersagen
17
Receiver Operating Characteristic
Schwellwert- & Gütebestimmung
18
Online- vs. Offline-Learning
Evaluation mit synthetischen Daten
0,991
1
0,9
AUC
0,8
0,7
0,6
0,5
0,4
0
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95 100
Zeitpunkt
Grenze
Online-Modell
Offline-Modell
19
Online- vs. Offline-Learning
› Sinkende Performance: Es zeigt sich deutlich die
Adaption des Modells
› Ohne weitere Logik zu wenig Kontrolle über das
Verhalten des Modells
› Für Intrusion Detection: Empfehlung tendenziell zu
Offline-Modell
20
Abschluss
› Evaluation mit Fachabteilung: Bei geeigneter FeatureAuswahl korrekte Mustererkennung
› Skalierbare Echtzeiterkennung durch Apache Spark
› Als sinnvolle Ergänzung zu regelbasiertem System
› Online-Learning nur bei gezielten Updates (Adaption von
Angriffen vermeiden)
21
Ausblick
› Andere Clusteringverfahren und Distanzmetriken?
› Gelabelte Trainingsdaten eröffnen neue Möglichkeiten
(supervised Learning)
› Updatezeiten Offline- vs. Online-Modell?
22
Vielen Dank
Julian Keppel
inovex GmbH
Ludwig-Erhard-Allee 6
76131 Karlsruhe
[email protected]
Herunterladen