• Aucun résultat trouvé

CHAPITRE 3 Architecture Proposée

3.3 Algorithmes de détection d’anomalies

3.3.4 N-grams de longueurs variées (VLN)

Contrairement aux modèles précédents qui caractérisent les n-grams de tailles fixes, ce modèle permet de détecter des séquences significatives de n Gram de longueurs différentes.

Cet algorithme est inspiré des travaux de Guofei et al. (2007). Dans leur approche, les auteurs construisent des séquences de différentes longueurs et un automate à état fini pour caractériser le comportement normal du système. Une nouvelle trace est comparée à l’automate déjà formé dans une phase d’apprentissage, pour savoir si elle est anormale afin de détecter et diagnostiquer les défaillances dans les systèmes distribués à grande échelle.

Cette approche est basée sur l’hypothèse que le fait d’ignorer les n-grams les moins fréquents n’affecte pas la validité du modèle. Par conséquent, elle consiste à surveiller seulement les n- grams les plus fréquents. Elle utilise un seuil α (de 0 à 1) pour contrôler la capacité de généralisation du modèle en filtrant les n-grams les moins fréquents.

Dans le travail de Guofei et al. (2007), le modèle normal est établi suivant deux étapes. La première étape consiste à construire des ensembles des n-grams valides de longueur , en commençant par = 1. Chaque n-gram de longueur ( + 1) est construit en fusionnant deux n-grams et , qui appartiennent à l’ensemble et dont le suffixe de

l’un est égal au préfixe de l’autre. Le n-gram résultant, , est dit n-gram valide si sa fréquence d’occurrence dans la trace est supérieure au produit du seuil α avec le minimum des fréquences des n-grams qui le constituent (équation 3.6).

> α. min( ( ), ( )) 0 < < 1 (3.6)

La complexité de cette étape est linéairement dépendante de la longueur des traces, mais elle est exponentielle en fonction du nombre de n-grams. Cependant, dans la pratique, cet algorithme pourrait converger rapidement, surtout avec un seuil α élevé.

La deuxième étape consiste à construire un automate à états finis. Cet automate est construit, en parcourant les traces normales et en remplaçant chaque n-gram unique, généré dans la première étape, par un état, en commençant par celui le plus long et le plus fréquent. Cependant, avec des petites valeurs de α, l’automate ne garde qu’un petit nombre de n-grams (que les n-grams les plus longs), surtout si α tends vers 0, on ne garde que n-grams de longueurs , où est le nombre de traces, c’est-à-dire chaque trace va représenter un n- gram. Pour éviter cet inconvénient, les auteurs ont créé une autre automate qui généralise l’automate précédent, mais avec une complexité de calcul exponentielle en fonction du nombre des n-grams et qui sera difficile de l’exécuter sur un appareil de ressources limitées. Pour réduire le coût de calcul et la taille du modèle, dans notre travail, nous reprenons seulement l’algorithme d’extraction de patterns de l’approche de Guofei et al. (2007) et l’appliquons pour détecter les malwares dans la plateforme Android.

Notre approche forme un modèle normal conformément à l’algorithme d’extraction des patterns pour générer un ensemble de courtes séquences d’appels système, en respectant la formule 3.6. La figure 3.4 illustre un exemple de création du modèle normal.

73

Figure 3.4 Modèle de N-grams de longueur varié

Au cours de la phase de détection, un modèle est construit de manière similaire, en générant différents ensembles de n Gram de longueurs différentes. Ce modèle est comparé au modèle normal en vérifiant certaines conditions :

• Si un n-gram ne se trouve pas dans le modèle de comportement normal et dans son ensemble , il est considéré anormal.

• Si le nombre des n-grams anormaux dans un même ensemble dépasse un certain seuil , on considère comme anormal.

• S’il existe un ensemble anormal alors la trace est considérée comme malicieuse.

Puisque chaque ensemble présente les plus fréquents n-grammes de taille , il est donc rare de trouver un n-gram étranger dans un ensemble avec ≫ .s’il existe alors il est fort possible que l’ensemble soit anormal. Cependant, nous pouvons trouver un n-gram étranger de plus petites tailles. Ainsi, lorsque la taille des n-grams augmente, le seuil diminue. En nous basant sur cette hypothèse, nous avons proposé un seuil dynamique pour chaque ensemble des n-grams de longueur , défini selon la formule 3.7.

= ( × ) 0 < < 1 (3.7)

Ce modèle présente l’avantage de pouvoir facilement surveiller de courtes séquences d’appels système de différentes longueurs (n-grams, > 2). Il peut également réduire la taille d’un ensemble de données tout en maintenant une efficacité de détection. De plus, si les limitations de ressources ne sont pas respectées, la génération et la mise à jour du modèle normal peuvent être effectués sur l’appareil.

Cependant, la mise à jour de sa base d’apprentissage est difficile à déployer. De plus, si le seuil α augmente, le modèle ne sera pas suffisamment général pour représenter le comportement normal, ce qui augmente la probabilité de fausses détections. Alors, pour diminuer le taux de fausses alertes, nous avons conçu une nouvelle version de VLN. La nouvelle version permet de créer un sous-modèle normal pour chaque trace d’appels système au lieu d’un modèle normal pour la totalité des traces. Le modèle normal global résultant est créé en fusionnant tous les sous-modèles (chaque ensemble du modèle résultant contient tous les k-grams de tous les sous-modèles).

Nous fournissons des détails supplémentaires concernant l’utilisation des ressources et la performance dans le chapitre 4, où nous appliquons le test à des études de cas empiriques.