• Aucun résultat trouvé

DATA MINING ET DÉTECTION D’INTRUSION

3.6 Quelques Techniques de Datamining appliquées à la détection d’intrusiondétection d’intrusion

3.6.3 Les algorithmes génétiques

initialement proposés par Holland[181] en 1975 puis développés par David Goldberg, sont une technique itérative de recherche basée sur la théorie d’évolution darwinienne appliquée aux modèles mathématiques. Le principe des algorithmes génétiques est très simple. Étant donné un ensemble de N individus choisi à priori au hasard et constituant une population initiale. Chaque individu x, dit chromosome, représente une solution potentielle à un problème donné et est constitué d’une chaîne de gènes. Le nombre de valeurs possibles pour une gène est dit cardinalité du gène. L’algorithme génétique(voir Fig. 3.10) fait évoluer, progressivement, la po-pulation initiale, au cours de plusieurs générations, tout en maintenant sa taille constante, par l’application de trois opérateurs de base : opérateur de sélection, de croisement et de muta-tion dans le but d’améliorer globalement la performance des individus. A chaque généramuta-tion, la qualité de chaque individu est évaluée à l’aide d’une fonction positive f dite fonction d’adap-tation(fitness). Les individus les plus aptes(ayant une valeur d’adaptation élevée) ont plus de chance d’être choisis pour participer à l’élaboration de la génération future. La probabilité ps(i) qu’un chromosome i ; i = 1, · · · , T OP (Taille de la population) soit sélectionné pour faire partie de la prochaine génération sachant sa fitness f(i) est définie comme étant le rapport de sa fitness sur la somme des fitness associées aux individus de la population en cours ie :

ps(i) = T OPf(i)

P

k=1 f(k).

La façon la plus simple, pour faire la sélection, consiste à appliquer un opérateur de sélection stochastique pur. On construit, tout d’abord, un segment de longueur 1(voir Fig.3.11, puis on calcule la position de de l’individu i sur ce segment en calculant les probabilités de sélection

Figure 3.10 – Fonctionnement de l’algorithme génétique

cumulées[341] :

position(i) = Xi

k=1 ps(k).

Figure 3.11 – Représentation de l’opérateur de sélection stochastique universelle pour des probabilités de sélection proportionnelles à la fitness(TOP = 5). Les chiffres indiquées sous les

accolades représentes des zones de sélection de chacun des cinq individu[341].

Après quoi, en génère aléatoirement un nombre u ∈ [0, 1] qui sera reporté sur le segment. Si u ∈ [position(i − 1), position(i] alors l’individu i sera choisi. Les individu, ainsi sélectionnés, sont alors croisés deux à deux selon une probabilité pc dite probabilité de croisement qui est, en général, égale à 1. Le croisement consiste à choisir aléatoirement un((plusieurs) point(s) de césure sur le chromosome(père) puis, à permuter les portions de chromosomes de part et d’autre de ce(ces) point(s) de façon à créer de nouveaux individus(enfants). Le nombre d’individus parents à croisés et celui des enfants à engendrer doivent être choisi de façon à conserver la taille de la population constante. A titre d’exemple, concéderons le cas où deux parents P1 et

P1 = b1b2b3b4b5b6 et si on choisi comme point de croisement le quatrième gène on obtient alors

E1 = a1a2a3a4b5b6 et E2 = b1b2b3b4a5a6. Ce processus d’évolution imite les deux principaux mécanismes régissant l’évolution des êtres vivants :

— La sélection, qui favorise la reproduction et la survie des individus les plus performants. — le croisement qui permet le brassage, la re-combinaison et les variations des caractères

héréditaires des parents, pour former des descendants aux potentialités nouvelles. Quelques individus issus de l’application des opérateurs de sélection et de croisement subissent un opérateur de mutation qui a pour but de garantir l’exploitation de l’espace de solutions et va permettre de maintenir une certaine homogénéité dans la génération en cours évitant, ainsi, une convergence trop rapide vers un optimum local. La proportion moyenne des individus devront subir une mutation est définie par un taux de mutation qui peut être constant pour tout l’algorithme comme il peut être une variable qui peut dépendre du temps[318], du locus[143] ou de la diversité de la population[339]. Pour permettre à l’algorithme génétique de converger on diminue le taux de mutation et à fin de lui permettre de sortir d’un éventuel optimum local on applique un taux de mutation élevé.

Les algorithmes génétique ont été largement utilisés dans la détection d’intrusion. L’une des premières tentatives d’utiliser les algorithmes génétiques pour la détection d’intrusion remonte à 1995 quand Crodbie et Spaffonrd[88] ont présenté une méthodologie à base de multi-agents uti-lisant des programmes génétiques pour détecter des comportements malveillants dans le trafic réseau. Chaque agent surveille un paramètre du trafic réseau. Cette approche était concluante quand plusieurs petits agents autonomes sont utilisés mais comportait un problème de commu-nication entre agents de plus, si ces derniers ne sont pas correctement initialisés le processus d’apprentissage pourrait être trop long. Le schéma général de la détection d’intrusion à base d’algorithme génétique(Fig. 3.12) est globalement décrit comme suit[305] :

Dans une première étape, dite d’apprentissage, les données sur le trafic réseau sont collec-tées grâce aux différentes sondes du systèmes de détection. Puis un algorithme génétique est appliqué, en mode off-line, au données ainsi obtenues à fin d’extraire des règles de classifica-tion sous forme : if h condiclassifica-tion i alors h acclassifica-tion i[367]. La condiclassifica-tion décrit, habituellement, une correspondance entre la connexion réseau courante et un sous ensemble de règles stockées dans la base du système de détection. Le champ action fait référence à l’action prédéfinie dans la police de sécurité et qui peut être, par exemple, envoyer une alerte à l’intention de l’adminis-trateur, inscrire un message dans le fichier journal, suspendre la connexion... Par exemple une règle peut avoir la forme suivante : "if(sce_IP _add = 124.12.5.18dest_IP _add = 130.18.206.55dest_port_num = 21con_time = 10.1 seconds) then(stop the connection)" et peut être interprétée comme suit : s’il existe une connexion ayant 124.12.5.18 comme adresse IP de l’hôte source(sce_IP _add), 130.18.206.55 comme adresse de l’hôte destination(dest_IP _add), le port destination(dest_port_num) ayant la valeur 21 et le temps de connexion(con_time) est 10.1 secondes alors la connexion doit être stoppée car l’adresse IP 124.12.5.18 est portée dans la liste noirs du système de détection. De ce fait toute requête provenant de cette adresse est rejetée. En réalité, seul les règles qui correspondes au activités malveillantes sont générées et testées sur l’historique des connexions. Les règles générées constituent la base de règles et son utilisées, en mode temps-réel, pour analyser les nouvelles connexion à fin de détecter tout trafic suspect. Une méthodologie de l’application des algorithmes génétique à la détection d’intrusion est succinctement présentée dans [246].

Dans le cadre d’intégration des algorithmes génétiques dans la détection d’intrusion, GASSA-TA[280] se compte parmi les premières tentatives. En fait, GASSATA est un prototype construit autour d’un algorithme génétique pour la détection des abus d’utilisations. Il définie un vecteur

Figure 3.12 – Détection d’intrusion à base d’algorithme génétique

En conséquence la détection d’intrusion se ramène au problème de trouver le vecteur H qui maximise le produit W xH sujet aux contraintes (AExH)i ≤ Oi, où W est vecteur de n poids,

AE une matrice d’événements d’attaques et O est un vecteur à n dimensions représentant une données d’audit. Chaque individu de la population correspond à un vecteur particulier H. la fonction de fitness est définie par :

F itness =Xn

i=1 WixIi

où Ii représente un individu. Le système de détection se caractérise par un faible taux de fausse alarme est un taux de détection avoisinant 0.996. Cependant il n’est pas en mesure de localiser précisément une attaque, une intervention d’expert humain est requise pour analyser les données d’audit à fin d’ajuster la réponse. De son coté Chittur[81] à présenté un modèle de détection d’intrusion à base d’algorithme génétique ayant réaliser un taux de fausse alerte sensiblement bas. Pour déterminer la nature intrusive ou normale d’une instance de données d’audit, il utilisa une certaine formule Ci définie par :

Ci(x) = Xn

i=1

Rij × xj

est représente le nombre d’attributs. Une valeur seuil de Ci est prédéfinie, et chaque valeur dépassant ce seuil est classée comme attaque. La fonction de fitness utilisée est définie par :

F(δi) = α

Aβ

B

.

où δi fait référence à un individu, α est le nombre d’attaque correctement détectées, A est le nombre total d’attaques, β représente le nombre de faux positifs et B est le nombre de connections normales. La valeur de la fitness varie de −1 à 1. Un fort taux de détection α

A et un faible taux de faux positifs β

B induisent une forte valeur de la fonction de fitness pour un individu. Le principale problème de cet approche réside dans la sélection de valeur du seuil. Un seuil incorrecte peut facilement conduire à un taux très élevé de fausses alarmes dans la détection de nouvelles attaques. Lu et Traore[259] ont procédé à la génération des règle de classification à partir de l’historique du trafic réseau par le biais d’un programme génétique en utilisant la notion de support-confidence comme fonction de fitnes. Aussi ils ont utilisé des arbres d’analyse pour représenté leurs populations d’individus et non pas des chromosomes. Évalué avec l’ensemble de données de DARPA, ce modèle parvenait à détecter plusieurs intrusions et de nouvelles formes d’attaques également. Mais le taux de détection pour certaines attaques était très faible vue la nature aléatoires des paramètres de croisement et de mutation utilisés. Aussi d’un coté l’implémentation de ce modèle s’est avérée très difficile, vue l’utilisation de la programmation génétique et, d’un autre coté, son processus d’apprentissage nécessitait une grande masse de données et consommait beaucoup de temps.

En 2013, Moraveji et Al[290] proposèrent une approche de détection d’intrusion dans la-quelle trois attributs seulement parmi quarante et un on été choisies, par une analyse aux composantes principale implémenté sous MATLAB, pour décrire une connexion. chaque attri-buts ainsi sélectionné représente une gène du chromosome. Comme chaque gène (attribut) est représentée par un bit, un chromosome représentant un individu est codé sur trois bits. Le but étant de choisir le plus petit ensemble d’attributs décrivant une connexion tout en garantissant un taux de détection élevé. La fitness de chaque règle est évaluée comme suit :

F itness= a

Ab

B

— a : Nombre des attaques correctement détectées

— A : Nombre total des attaques dans la table d’apprentissage — b : Nombre de faux positifs

— B : Nombre total des connexions normales dans la table d’apprentissage.

Ce modèle se caractérise par un fort taux de détection et un faible taux de faux positifs et un temps de réponse très réduit et peut être appliqué au réseaux à trafic intense.

En 2012, Uppaluri et Al[392] avaient déjà utilisé les même attributs avec une fonction de fitness définie par

F itness = f(x)

f(sum)

avec f(x) est la fitness d’une l’entité x et f(sum) est le total des fitness de toutes les enti-tés, afin de construire un système de détection, à base d’algorithme génétique, pour détecter uniquement huit attaques. Il ont enregistré un taux de détection avoisinant les 83.65%. De leurs coté, Azween et Al[35] ont proposé une approche à trois phases. Dans la première, ils ont effectué une transformation des attributs à l’aide d’une analyse linéaire discriminante. Puis, un algorithme génétique a été appliqué pour sélectionner un sous ensemble optimal d’attribut.

Dans la troisième phase la technique du "SVM kernels" à été utilisée pour la classification(Fig. 3.13).

Figure 3.13 – Diagramme du système de détection proposé par Azween et Al.

Des revues et comparaisons des plus importantes approches de détection d’intrusion à base d’algorithmes génétiques peuvent être trouvées dans [123, 305, 205].