<  Retour au portail Polytechnique Montréal

Machine Learning for Anomaly Detection in Kernel Traces

Quentin Fournier

Thèse de doctorat (2022)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (6MB)
Afficher le résumé
Cacher le résumé

Résumé

En raison de l’étendue actuelle des systèmes informatiques, il existe un réel besoin de détecter efficacement toute déviation de leur comportement attendu. En effet, les interactions complexes entre le matériel et les logiciels entraînent souvent des comportements nouveaux et inattendus, y compris des comportements courants tels que des mises à jour logicielles, de nouveaux utilisateurs et des requêtes rares, mais aussi des anomalies telles que de mauvaises configurations, des latences, des intrusions, et des bogues. Le traçage est une approche légère et efficace pour enregistrer le comportement des systèmes informatiques au moment de l’exécution en collectant des événements de bas niveau générés chaque fois qu’une instruction spécifique appelée point de trace est exécutée. En particulier, cette thèse étudie un sous-ensemble d’événements générés par le noyau Linux appelés appels système. Les appels système comprennent un nom et plusieurs arguments tels qu’un horodatage et un identifiant de processus, et correspondent à des requêtes d’applications s’exécutant dans l’espace utilisateur vers le noyau afin d’accéder à des ressources telles que la mémoire ou le réseau. Le principal avantage des appels système est qu’ils exposent le comportement de l’ensemble du système sans avoir à modifier le code source, car le noyau Linux a déjà été instrumenté avec des points de trace. De nos jours, de nombreux chercheurs considèrent les appels système comme la source d’informations la plus détaillée et la plus précise pour analyser les systèmes informatiques. La première contribution de cette thèse est une méthode pour extraire le comportement interne des requêtes Web et une chaîne de traitement pour détecter les problèmes de performances qui permet également d’identifier leur cause. Tout d’abord, des informations de bas niveau sont collectées en traçant les espaces utilisateur et noyau du serveur Web. Ensuite, le chemin critique de chaque requête est calculé à partir duquel des attributs de plus haut niveau appelés états d’exécution sont extraits. Les valeurs aberrantes sont détectées et regroupées sur la base de ces caractéristiques, et le comportement de chaque groupe de valeurs aberrantes est analysé séparément. Les expériences réalisées ont révélé que ce pipeline est capable de détecter les requêtes Web lentes et de fournir des informations sur leurs causes. Notamment, un véritable problème de conflit de cache PHP a été découvert en utilisant l’approche proposée.

Abstract

Due to the current extent of computer systems, there is a genuine need to effectively and efficiently detect deviations from their expected behavior. Indeed, complex interactions between hardware and software often result in novel and unexpected behaviors, including common behaviors such as software updates, new users, and rare queries, as well as anomalies such as misconfigurations, latency, intrusions, and bugs. Tracing is a lightweight approach to recording the behavior of computer systems at runtime by collecting low-level events generated whenever a specific instruction called tracepoint is executed. This research focuses mainly on a subset of events generated by the Linux kernel called system calls. System calls comprise a name and multiple arguments, such as a timestamp and a process id, and correspond to requests from applications running in the userspace to the kernel in order to access resources such as memory or network. The main benefit of system calls is that they expose the behavior of the whole system without having to modify the source code, as the Linux kernel has already been instrumented with tracepoints. Nowadays, many researchers consider system calls to be the most fine-grained and accurate source of information to investigate computer systems. The first contribution of this thesis introduces a method to extract the internal behavior of web requests and a pipeline to detect performance issues that also provide insights into their root cause. First, low-level and fine-grained information is collected by tracing the user and kernel spaces of the web server. Then, the critical path of each request is computed from which higher-level features called execution states are extracted. Outliers are detected and clustered based on these handcrafted features, and the behavior of each group of outliers is analyzed separately. Experiments revealed that this pipeline is able to detect slow web requests and provide additional insights into their true root causes. Notably, a real PHPcache contention issue was discovered using our proposed approach.

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Daniel Aloise
URL de PolyPublie: https://publications.polymtl.ca/10708/
Université/École: Polytechnique Montréal
Date du dépôt: 24 mars 2023 11:46
Dernière modification: 08 avr. 2024 10:15
Citer en APA 7: Fournier, Q. (2022). Machine Learning for Anomaly Detection in Kernel Traces [Thèse de doctorat, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/10708/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document