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]