Post on 12-Apr-2017
Haltet den (Daten-) Dieb!
Echtzeiterkennung von Anomalien in Computernetzwerken mit maschinellen Lernverfahren
Julian Keppel Offenburg, 08.03.2017
Student an der Hochschule Karlsruhe
Themen: Spark, Stream Processing, Machine Learning
Betreuer: Prof. Dr. Christian Zirpins
2
Julian Keppel
› Erkennung ungewöhnlicher Netzwerkaktivitäten
› Signaturbasierte Systeme wie SNORT
› Neue Angriffsmuster, für die noch keine Signaturen vorliegen? à Machine Learning
3
EinführungAnwendungsfall Intrusion Detection
{"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
Einführung
6
KonzeptFeature-Extraktion: Categorials
…,tcp,……,udp,……,udp,……,icmp,……,udp,……,tcp,…
String-Indexing
…,1.0,……,0.0,……,0.0,……,2.0,……,0.0,……,1.0,…
…,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,…
One-Hot-Encoding
7
KonzeptFeature-Extraktion: Verschiedene Skalierungen
…,421,4,……,2021,8,……,768,16,……,3122,10,……,139,2,…
…,2845,10,…
Standard-Scaling
…,0.328,0.805,……,1.574,1.611,……,0.598,3.222,……,2.431,2.013,……,0.108,0.403,……,2.215,2.013,…
8
KonzeptAnsätze für Anomaly Detection
9
PrototypArchitektur
Storage
Alarme
Trace Trace
Trainingsdaten
Modell
Modell
› 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
PrototypSpark, Streaming & MLlib
11
PrototypSpark Pipeline-Konzept
String-Indexing
One-Hot-Encoding
Standard-Scaling
k-means Clustering
Modell
12
PrototypEchtzeiterkennung mit Spark Streaming
Modell
{"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
}
cluster: 16, distance: 13.72
distance > 12.0 ?
Alarm!
{"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
EvaluationBeispiele für Anomalien Punkt-
anomalie
14
EvaluationBeispiele für Anomalien
{"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
}
Kollektive Anomalie
› 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-Learning?
› 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 k-means in Spark
17
Online- vs. Offline-LearningVersuchsaufbau
Training Test
Online-Modell
Update 1 Update 2 Update n…
Vorhersagen
Receiver Operating CharacteristicSchwellwert- & Gütebestimmung
18
19
Online- vs. Offline-LearningEvaluation mit synthetischen Daten
0,991
0,4
0,5
0,6
0,7
0,8
0,9
1
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
AUC
Zeitpunkt
Grenze Online-Modell Offline-Modell
› 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
Online- vs. Offline-Learning
› Evaluation mit Fachabteilung: Bei geeigneter Feature-Auswahl 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
Abschluss
› Andere Clusteringverfahren und Distanzmetriken?
› Gelabelte Trainingsdaten eröffnen neue Möglichkeiten (supervised Learning)
› Updatezeiten Offline- vs. Online-Modell?
22
Ausblick
Vielen Dank
Julian Keppel
inovex GmbH
Ludwig-Erhard-Allee 6
76131 Karlsruhe
julian.keppel@inovex.de