• Aucun résultat trouvé

CHAPITRE V L’APPROCHE PROPOSEE POUR LA DETECTION

V.5 PSEUDO CODE DE L ’ ALGORITHME

Le système proposé intègre les concepts de base du système de détection d’intrusions LYSIS basé sur les systèmes immunitaires artificiels proposé par Hofmeyr [35,36] qui a amélioré l’algorithme de la sélection négative par l’ajout des propriétés immunitaires supplémentaires pour lui permettre de s’adapter aux changements de l’environnement. Ainsi, l’utilisation de l’algorithme des cellules dendritiques proposé par Greensmith et son groupe [56].

Dans ce pseudo code (figure 5.3) , on suppose que détectable_mature (élément) et

détectable_mémoire(élément) sont des fonctions prédéfinies qui retournent la valeur vraie si

l’élément en paramètre est détectable par la population des détecteurs matures ou bien par la population des détecteurs mémoires respectivement. L’ensemble d’antigènes qui sera contrôlé par la population des détecteurs mémoires est un ensemble de chaînes binaires de longueurs 36, et qui sera présenté dans les sections suivantes.

Début

// Initialisation des paramètres Nombre de génération = n ;

Période de tolérance = T ; Seuil d’activation = A ; Durée de vie = L ;

taille_population non mémoire = M ;

Génération de la population des détecteurs immatures initiaux dont l’âge des détecteurs est initialisé à zéro ;

N = 1 ;

// Répéter cette boucle un nombre de génération

Tant que (N <= Nombre de génération) Faire Début

Représentation de P éléments par les cellules dendritiques accompagnés avec leur information de contexte ;

Pour chaque (élément présenté) Faire Début

Si (contexte (élément) = “dangereux”) Alors

Début

//Vérifier si l’élément n’est pas détectable par la population des détecteurs mémoires ;

Si (détectable_mémoire (élément)) Alors

Supprimer cette protéine de la population des éléments présentés par les cellules dendritiques ;

Sinon

//Vérifier s’il est détectable par la population des détecteurs matures ;

Si (détectable_mature (élément)) Alors Début

Le détecteur correspondant deviendra un détecteur mémoire ;

Supprimer cette protéine de la population des éléments présentés par les cellules dendritiques ;

Fin Sinon

Garder cette protéine pour une nouvelle vérification avec de nouveaux détecteurs ;

Fin si Fin si

Fin

Sinon /* contexte (élément) = ” non dangereux” */ Début

//Vérifier si l’élément est détectable par la population des détecteurs mémoires Si (détectable_mémoire (élément))) Alors

Supprimer le détecteur mémoire correspondant ; Fin

Fin si

Figure 5.3 : Pseudo code de l’algorithme

// Contrôler l’ensemble d’antigènes par la population des détecteurs mémoires Pour chaque (détecteur mémoire) Faire

Début

Vérifier si le détecteur mémoire détecte un élément dangereux ; Vérifier si le détecteur mémoire détecte un élément non dangereux ;

Si (l’antigène est détecté) Alors Supprimer l’antigène détecté de l’ensemble d’antigène ;

Fin pour chaque

// Contrôler l’ensemble d’antigènes par la population des détecteurs matures

Pour chaque (détecteur mature) Faire

Début

Si le détecteur mature détecte un élément de non soi alors augmenter le nombre de

correspondances du détecteur ;

// Génération de nouveaux détecteurs mémoires

Si le nombre de correspondances du détecteur est supérieur au Seuil d’activation alors ce détecteur mature devient un détecteur mémoire ;

Si l’âge du détecteur mature dépasse la Durée de vie alors supprimer ce détecteur mature ;

Fin pour chaque

// Contrôler l’ensemble d’antigènes de soi par la population des détecteurs immatures Pour chaque (détecteur immature) Faire

Début

Vérifier si le détecteur immature détecte un antigène de soi ; Supprimer le détecteur immature qui détecte l’antigène de soi ; // Génération de nouveaux détecteurs matures

Si ce détecteur immature dépasse la Période de tolérance alors ce détecteur immature devient un détecteur mature ;

Fin pour chaque

// Génération de nouveaux détecteurs immatures

Si ((taille (population cellule mature) + taille (population cellule immature)) < taille_population non mémoire) Alors

Répéter Début

Générer des nouveaux détecteurs immatures ;

Ajouter ces détecteurs à la population des détecteurs immatures ; Fin

Jusqu’à ((taille (population cellule mature) + taille (population cellule immature)) < taille_population non mémoire)

// Augmenter les paramètres

N = N +1 ;

Augmenter l’âge des détecteurs immatures ; Augmenter l’âge des détecteurs matures ; Fin tant que

Le pseudo code de l’algorithme présenté au dessus est décrit de la manière suivante :

A chaque génération, les cellules dendritiques présentent un ensemble d’élément de taille prédéfinie choisi aléatoirement à partir de l’ensemble d’antigènes. En fonction du contexte de l’élément présenté un nombre d’opération sera établi afin de permettre à la population des détecteurs mémoires la détection des éléments intrusifs. Si le contexte de l’élément est dangereux alors l’algorithme vérifie si cet élément est détectable par la population des détecteurs mémoires et par conséquence seulement cette protéine sera supprimée de l’ensemble d’éléments présenté. Mais, si l’élément dangereux n’est pas détectable par la population des détecteurs mémoires alors l’algorithme vérifie s’il y’a un détecteur qui peut détecter cet élément dans la population des détecteurs matures. Si tel détecteur existe alors il sera ajouté à la population des détecteurs mémoires et la protéine correspondante sera éventuellement supprimée de l’ensemble des éléments présentés. Cependant, s’il n’existe aucun détecteur mature qui permet l’identification de cette protéine alors elle sera sauvegardée pour une nouvelle recherche dans les générations suivantes. Dans le cas où l’élément présenté est un élément non dangereux alors l’algorithme vérifie s’il est détectable par la population des détecteurs mémoires afin de supprimer le détecteur correspondant. Pendant la phase de contrôle effectuée par la population des détecteurs mémoires, chaque élément détecté est considéré comme une intrusion. En plus, deux vérifications sur la nature de détection seront établies et qui seront utilisées par la suite pour vérifier les performances de l’algorithme, qui sont :

Ø Vérifier si l’élément détecté est un élément dangereux afin de compter le taux de détection des éléments dangereux pour définir le taux de détection vrai positif.

Ø Vérifier si l’élément détecté est un élément non dangereux afin de recenser le taux d’erreurs effectué par l’algorithme pour définir le taux de détection vrai négatif. Les éléments de l’ensemble d’antigènes restant qui ne sont pas détectés par la population des détecteurs mémoires seront utilisés dans la phase de contrôle effectuée par la population des détecteurs matures dont le but principal est la génération de nouveaux détecteurs mémoires capables de détecter ces éléments dans le futur. Ainsi, les éléments de l’ensemble de soi seront exploités pour générer des nouveaux détecteurs immatures. Pour éclaircir ces différentes étapes de l’algorithme, la section suivante sera consacrée à présenter d’une manière détaillée les différents mécanismes utilisés ainsi le processus de génération des différentes populations des détecteurs.

Documents relatifs