ressi_2016

 

Avec le soutien de :

logo_bon_1.jpg logo_apsys.png
Apprentissage d'un modèle comportemental d'une application distribuée pour la détection d'intrusion
Mouna Hkimi  1@  
1 : CIDRE  (INRIA - SUPELEC)  -  Site web
INRIA, Universite de Rennes 1
Campus de Beaulieu, 263 Avenue Général Leclerc, 35042 Rennes -  France

Dans la littérature, de nombreux travaux ont pour objectif de modéliser le comportement normal d'une application à partir de traces d'exécution mais dans ces travaux le but est en général de vérifier si les comportements observés sont conformes ou pas aux specifications. Dans notre étude, le but est d'obtenir une modélisation des comportements sains (en l'absence d'attaquant) et d'utiliser ensuite ce modèle pour déterminer si un nouveau comportement est conforme ou pas. Par hypothèse, un comportement non prévu est considéré comme étant un comportement malveillant. Le mod- èle est construit durant une phase d'apprentissage au cours de laquelle l'application est exécutée à plusieurs reprises. A chaque exécution est collectée une trace qui est composée d'un fichier de log par processus. Le fichier identifie les événements de communication (envoi de message, réception de message) et les événements internes pertinents qui ont été produits séquentiellement sur ce site. Dans le cas d'une application répartie, l'ensemble des événements d'une trace constitue un ensemble partiellement ordonné par la relation "s'est produit avant" définie par Lamport. Pour chaque exécution, nous exploitons cette information pour construire un automate qui identifie toutes les séquences d'événements possibles qui sont compatibles avec l'ordre partiel observé. Ces automates sont ensuite fusionnés en un seul automate. Parallèlement, nous nous appuyons sur une deuxième technique pour modéliser le comportement observé par un ensemble de prédicats temporels (invariants temporels) sur l'ordre d'occurrence des événements produits par l'application distribuée. L'originalité de l'approche repose sur le fait que l'automate produit par apprentissage est ensuite compressé et généralisé (grâce à l'algorithme k-tail), introduisant ainsi des comportements non appris. Ces comportements peuvent être des comportements corrects ou incorrects. Les invariants préalablement calculés permettent, durant la phase de détection, de distinguer ces deux cas de figure. L'approche a été implémentée, et appliquée, d'une part à un exemple simple, permettant de mettre en évidence la corrélation entre une forte généralisation et un faible taux de faux positifs. D'autre part, le processus a été soumis à des tests de passage à l'échelle en réalisant la phase d'apprentissage sur des traces comportant un grand nombre d'événements. L'application choisie pour cela est un système de fichiers distribué nommé XtreemFS. Cette application réelle nous a permis d'analyser les temps de construction du modèle en fonction du nombre d'événements observés.


Personnes connectées : 1