Machine Learning for Application-Layer Intrusion Detection
Total Page:16
File Type:pdf, Size:1020Kb
82.37.17.216:63601 anomalous (IIS exploit) 62.166.241.60:12431 normal 190.72.84.114:10991 normal 66.84.150.186:41206 anomalous (Nimda worm) Machine Learning for Application-Layer Intrusion Detection Dissertation by Konrad Rieck Fraunhofer Institute FIRST & Berlin Institute of Technology Berlin, Germany 2009 Machine Learning for Application-Layer Intrusion Detection Konrad Rieck Von der Fakultät IV – Elektrotechnik und Informatik der Technischen Universität Berlin zur Erlangung des akademischen Grades Doktor der Naturwissenscha en (Dr. rer. nat.) genehmigte Dissertation Vorsitzender: Prof. Dr. Klaus Obermayer (Technische Universität Berlin) 1. Gutachter: Prof. Dr. Klaus-Robert Müller (Technische Universität Berlin) 2. Gutachter: Prof. Dr. John McHugh (Dalhousie University) 3. Gutachter: Pavel Laskov, Ph.D. (Universität Tübingen) Tag der wissenscha lichen Aussprache: 6. Juli 2009 Berlin, Deutschland 2009 D 83 To my parents and Astrid. Acknowledgements First of all, I would like to thank Prof. Dr. Klaus-Robert Müller who by his guidance and infectious optimism has considerably fostered my interest and work in machine learning for intrusion detection. Second, and maybe for most, I like to thank Pavel Laskov, Ph.D. who—as a colleague, mentor and friend—provided indispensable support and advice during the course of my research. ¿ird, I would like to thank Prof. Dr. John McHugh for refereeing this thesis and providing his expertise in the areas of computer security and intrusion detection. ¿is thesis would not have been possible without the help, spirit and humor of people in the great ReMIND team, namely Tammo Krüger, Christian Gehl, Marius Klo , Ulf Brefeld, Sebastian Mika, Christin Schäfer, Patrick Düssel, René Gerstenberger, Guido Schwenk and Cristian Grozea. Further notable support and companionship has been provided by my colleagues Sören Sonnenburg, Mikio Braun, Andreas Ziehe, Stefan Harmeling and Vojtěch Franc. Overall, I would like to deeply thank all people at the Intelligent Data Analysis Department of the Fraunhofer Institute FIRST and the Ma- chine Learning Group of the Berlin Institute of Technology (TU Berlin). Finally, I like to gratefully acknowledge funding from the German Federal Ministry of Education and Research under the projects MIND (FKZ 01-SC40A) and ReMIND (FKZ 01-IS07007A, http://www.mind-ids.org). Summary Misuse detection as employed in current network security products relies on the timely generation and distribution of so called attack signatures. While appropriate signatures are available for the majority of known attacks, misuse detection fails to protect from novel and unknown threats, such as zero-day exploits and worm outbreaks. ¿e in- creasing diversity and polymorphism of network attacks further obstruct modeling sig- natures, such that there is a high demand for alternative detection techniques. We address this problem by presenting a machine learning framework for automatic detection of unknown attacks in the application layer of network communication. ¿e framework rests on three contributions to learning-based intrusion detection: First, we propose a generic technique for embedding of network payloads in vector spaces such that numerical, sequential and syntactical features extracted from the payloads are ac- cessible to statistical and geometric analysis. Second, we apply the concept of kernel functions to network payload data, which enables ecient learning in high-dimensional vector spaces of structured features, such as tokens, q-grams and parse trees. ¿ird, we devise learning methods for geometric anomaly detection using kernel functions where normality of data is modeled using geometric concepts such as hyperspheres and neigh- borhoods. As a realization of the framework, we implement a standalone prototype called Sandy applicable to live network trac. ¿e framework is empirically evaluated using real HTTP and FTP network trac and over 100 attacks unknown to the applied learning methods. Our prototype Sandy signicantly outperforms the misuse detection system Snort and several state-of-the- art anomaly detection methods by identifying 80–97% unknown attacks with less than 0.002% false positives—a quality that, to the best of our knowledge, has not been attained in previous work on network intrusion detection. Experiments with evasion attacks and unclean training data demonstrate the robustness of our approach. Moreover, run-time experiments show the advantages of kernel functions. Although operating in a vector space with millions of dimensions, our prototype provides throughput rates between 26–60 Mbit/s on real network trac. ¿is performance renders our approach readily applicable for protection of medium-scale network services, such as enterprise Web ser- vices and applications. While the proposed framework does not generally eliminate the threat of network attacks, it considerably raises the bar for adversaries to get their attacks through network defenses. In combination with existing techniques such as signature-based systems, it strongly hardens today’s network protection against future threats. Zusammenfassung Aktuelle Sicherheitssysteme zur Erkennung von netzbasierten Angrien sind auf die rechtzeitige Erstellung von Erkennungsmustern (Signaturen) angewiesen. Für die Mehr- zahl der bekannten Angrie stehen solche Signaturen zur Verfügung; ein Schutz vor neuen Bedrohungen, wie Ausbrüchen von Computerwürmern und “Zero-Day Exploits”, ist mit dieser Technik jedoch nicht möglich. Die zunehmende Diversität und Polymor- phie von netzbasierten Angrien erschwert die Modellierung von Signaturen, so dass ein Bedarf an alternativen Techniken zur Angriserkennung besteht. In dieser Doktorarbeit werden neuartige Ansätze zur Erkennung von unbekannten und neuen Angrien in der Anwendungsschicht entwickelt. Grundlage der vorgestell- ten Methoden bilden moderne Konzepte des maschinellen Lernens. Zunächst werden Techniken zur Einbettung von Netzinhalten in Vektorräume konzipiert, die numeri- sche, sequentielle und syntaktische Merkmale für Methoden des maschinellen Lernens zugänglich machen. Um eine eziente Berechnung in diesen hochdimensionalen Vek- torräumen zu gewährleisten, werden Kernfunktionen für strukturierte Merkmale, wie Tokens, Q-gramme und Parsebäume, entwickelt. Schließlich werden kernbasierte Lern- verfahren zur Anomalieerkennung vorgestellt, die unbekannte und neue Angrie durch geometrische Strukturen wie Kugeln und Nachbarscha en von normalen Daten die- renzieren. Die entwickelten Konzepte zur Angriserkennung werden in einem Prototyp realisiert, der autark Angrie im Netzverkehr identiziert. In einer empirischen Evaluation werden die Erkennungs- und Laufzeitleistung der vorgestellten Verfahren mit realen HTTP- und FTP-Netzdaten und Angrien unter- sucht. Der entwickelte Prototyp übertri deutlich die Leistung des signaturbasierten Systems Snort und aktueller Anomalieerkennungsmethoden. Er identiziert 80–97% der unbekannten Angrie bei unter 0,002% falsch-positiven Alarmen – eine Qualität, die nicht in bisherigen Ansätzen zur netzbasierten Angriserkennung erreicht werden konnte. Experimente mit getarnten Angrien und verunreinigten Daten demonstrieren die Robustheit der Lerntechniken. Weiterhin ermöglicht der Einsatz von Kernfunktio- nen Durchsatzraten zwischen 26–60 Mbit/s, so dass ein Schutz von kleinen und mittel- großen Netzanwendungen möglich wird. Die aus dieser Arbeit resultierenden Verfahren können die Bedrohung durch An- grie aus dem Netz nicht grundsätzlich eliminieren, dennoch erschwert der Einsatz lernbasierter Erkennung erheblich das unbemerkte Durchführen von Angrien. In Kom- bination mit klassischen Sicherheitstechniken wie signaturbasierten Systemen kann so der Schutz von Netzwerken vor zukün igen Bedrohungen gestärkt werden. Contents 1 Introduction 1 1.1 Intrusion Detection ............................... 3 1.2 Machine Learning ................................ 5 1.3 ¿esis Contributions .............................. 8 1.4 ¿esis Organization ............................... 9 2 Feature Extraction at Application Layer 11 2.1 Network Layers ................................. 11 2.2 Feature Maps ................................... 14 2.3 Numerical Features for Payloads ........................ 14 2.4 Sequential Features for Payloads ........................ 16 2.5 Syntactical Features for Payloads ....................... 19 2.6 Related Work ................................... 24 3 From Network Features to Kernels 29 3.1 Kernel Functions ................................. 29 3.2 Kernels for Sequences .............................. 32 3.3 Kernels for Trees ................................. 40 3.4 Normalization of Kernels ............................ 49 3.5 Related Work ................................... 49 4 Learning for Intrusion Detection 53 4.1 Machine Learning and Intrusion Detection ................. 53 4.2 Anomaly Detection using Hyperspheres ................... 56 4.3 Anomaly Detection using Neighborhoods .................. 62 4.4 Retraining and Calibration ........................... 67 4.5 Visualization and Explainability ........................ 69 4.6 Related Work ................................... 75 5 Empirical Evaluation and Applications 79 5.1 Evaluation Data and Setup ........................... 80 5.2 Detection Performance ............................. 86 5.3 Comparison with State of the Art ....................... 90 5.4 Robustness and Mimicry ............................ 92 5.5 Run-time Performance ............................. 97 5.6 An Application Scenario