L`utilisation d`un réseau de neurones pour optimiser la gestion d`un

Transcription

L`utilisation d`un réseau de neurones pour optimiser la gestion d`un
L’utilisation d’un réseau de neurones pour
optimiser la gestion d’un firewall
Réza Assadi et Karim Khattar
École Polytechnique de Montréal
Le 1 mai 2002
Résumé
Les réseaux de neurones sont utilisés dans différents domaines pour leurs capacités
variées et leur performance. Dans cet article on parlera de leurs aptitudes à faire du « load
balancing » lors de la gestion de différents paquets à l’entrée d’un firewall. Dans les deux
premières parties on donnera un aperçu historique des réseaux de neurones ainsi que des
firewalls. Une simulation de la gestion des paquets sera faites suivant une variété de
règles fantaisiste pour contrôler le flot des paquets. Une étude sur l’optimisation du
chemin qu’un paquet emprunte pour traverse un firewall afin de minimiser le temps de
traitement sera mise en évidence. Elle sera suivit d’un exposé sur les résultats obtenus
lors des simulations, afin de discuter de la validité de notre hypothèse. Enfin pour finir,
une étude sur d’autres hypothèses, qui pourrait complémenter notre hypothèse, sont
faites.
Mots-clés : Réseau de neurones, Load Balancing, Firewall
Introduction
Réseaux de neurones, intelligence artificielle, machines intelligentes, de nos jours ces
mots sont devenus de plus en plus courants et familiers. Mais qu’est ce qu’un réseau de
neurones ? Une définition scientifique d’un réseau de neurones serait: Une entité formée
d’une structure d’éléments en parallèle et densément reliés. Cette entité a une capacité
intrinsèque de mémoriser de l’information et surtout de nous permettre de la réutiliser au
besoin.
C’est en 1943 que les réseaux de neurones tel que nous les connaissons, ont
officiellement vu le jour, dans un article écrit par McCulloch et Pitts. Mais c’est
principalement dans les deux dernières décennies que les réseau de neurones ont évolué
et que beaucoup d’études et d’argent leurs ont été consacrés.
Plus qu’une simple machines à calculer, un réseau de neurones est un outil qui s’avère
souvent très puissant et très utile dans différents domaines : reconnaissance de formes,
classification, prédictions,…
Dans le présent article, nous verrons comment les réseaux de neurones peuvent être
utilisé dans le monde des télécommunications dans le but d’optimiser le transport et la
gestion de paquets TCP/IP.
.
1
Problématique
Dans les années 60 l’armée étasunienne développe ARPANET, l’ancêtre de l’internet.
Les années 70 voit apparaître le protocole TCP/IP, tandis que la fin des années 80 voit
l’Europe inventé le « World Wide Web » (WWW). Quelques années plus tard le monde
entier se connecte à l’internet, l’information devient accessible, l’ère de l’internet, de
l’information prend son envole.
Mais avec l’accès facile à l’information le problème de sécurité informatique devient de
plus en plus une réalité dans le secteur privé. L’apparition de Hackers, Crackers, Phreaks
et Cyberpunks rend la tache difficile. Pour contrer à leurs « attaques », c’est a dire leur
accès illégale à l’information, l’industrie à du mettre au point des techniques, autant au
niveau du logiciel qu’au niveau du matériel informatique, de « défense ». Une de ces
techniques est le garde-barrière, mieux connu sous son nom anglais “firewall”, une suite
de règles qui contrôle l’autorisation d’accès d’un usager externe au système qu’il protége.
Or, avec l’avancement des télécommunications et la croissance continuelle de la charge
sur le réseau internet, et donc sur les firewalls, qui devient de plus en plus important, la
technologie sera bientôt incapable de gérer les vitesses qui lui seront imposer. C’est pour
quoi il faut optimiser le passage de l’information à travers ceux-ci, la seule protection
qu’un réseau possède contre toutes intrusions frauduleuse.
Lorsque l’information arrive au firewall il est sous forme de paquet TCP/IP et se sont les
entête de ces derniers que le firewall fait passé à travers ses règles. C’est alors sur ce
passage qu’on doit optimiser, et c’est ici qu’on utilisera un réseau de neurones. Ce réseau servira
à faire ce qu’on appel du « Load Balancing ». Le but ultime étant de minimiser le temps
qu’un paquet passe dans le firewall en s’assurant que ceux-ci sont envoyer a des règles
non occuper et à celle qui on le plus de chance de la sortir du firewall.
Plusieurs structures de réseaux étaient à notre disposition, après avoir procédé à l’analyse
de notre problème, et avoir subdivisé les caractéristiques en sous problèmes, on a opté
pour la topologie étudiée dans cette article.
Explication
Lorsqu’un paquet arrive on veut essayer de lui faire passer le moins de temps possible
dans le firewall. Il serait, donc, utile d’avoir un ou plusieurs réseaux neuronaux qui
seraient capable de faire une analyse de la suite binaire contenu dans l’entête de chaque
paquet afin d’avoir une idée quand a la probabilité qu’un paquet soit accepté ou rejeté par
tel ou tel règle. Afin d’exemple, supposons que la sortie d’un réseau signifie que le
paquet X semble avoir de grande chance d’être rejeté par le règle # i, alors il est
préférable d’envoyé, en premier, ce paquet X à la règle # i.
Cependant la probabilité qu’un certain paquet soit rejeté ou accepté par une certaine règle
n’est pas le seul critère à étudier afin de donner un bon cheminement aux paquets. En
effet il existe d’autres points importants tel que l’occupation de chacune des règles et le
2
nombre de paquets en attente dans le tampon, ces derniers points apportent de
l’information concernant l’état du système. Comme dans l’exemple donné plus haut, si on
a un paquet X qui à de grande chance d’être rejeté par la règle #i mais que cette dernière
ainsi que son tampon sont pleins ; alors il faudrait envoyer à une règle qui est moins
occupée.
Un dernier critère, de grande importance à prendre en considération, lors de l’assignation
d’une règle à un paquet est de s’assurer qu’un paquet ne passe pas deux fois par une
même règle.
Dans notre cas, nous ferons une étude sur un paquet de 8bits. Mais ce cas particulier
pourrait être généralisé à plusieurs bits. Le tableau ci-après nous donne les règles a faire
valider/rejeter par notre firewall avant d’accepter/rejeter un paquet. De plus chacune de
ses règles à un temps moyen de traitement.
2 cycles
Règle 1
ABC
000
001
010
011
100
101
110
111
Vitesse d'exécution par règle
3 cylces
1 cycle
3 cylces
Règle 2
Règle 3
Règle 4
DEF
ADG
CFH
000
000
000
001
001
001
010
010
010
011
011
011
100
100
100
101
101
101
110
110
110
111
111
111
2 cycles
Règle 5
BE
00
01
10
11
Tableau 1. Règles utilisées pour la vérification du réseau.
NOTE1: Les cases ombragées représente les cas ou la règle accepte le
paquet.
NOTE2: Le paquet arrive sous la forme suivante (A B C D E F G H).
Étant donné les règles que nous avons défini il est possible grâce à certain algorithme (ex
Algorithme de Bellman) de définir des cheminements optimaux. Ces cheminements ne
tiennent évidemment pas compte de l’état du système, mais seulement de la séquence
binaire elle-même et du temps moyen d’analyse de chacune des règles. Dans notre cas
nous avons obtenu deux cheminements différents :
CheminOpt1 Æ 6 – 4 – 5 – 3 – 2
CheminOpt2 Æ 5 – 3 – 6 – 4 – 2
NOTE :
Nous encoderons CheminOpt1 par +1 CheminOpt2 par -1.
On a assigné une certaine adresse (codé sur 3 bits) à chacune des règles. Le but de notre
réseau qui va faire de « load balancing » est donc de trouver la séquence optimale de
règles à suivre par un paquet afin d’être analysé le plus vite possible. Cette séquence
devra dépendre du paquet étudier, de l’état du système aussi bien que des paquets qui
suivent.
3
Si par exemple au paquet #i le réseau assigne la séquence suivante 3-5-2-4-6 alors c’est
par la 3ième règle que le paquet #i devrait être d’abord valider ensuite par la 5ième , et ainsi
de suite jusqu`a la 6ième.
Nos principaux critères étant énuméré nous allons maintenant expliquer la topologie
choisie.
Dans la figure-1 on voit la forme générale de notre réseau. Les réseaux (#1, #2) sont
semblables et représenté à la figure-2
Chacun des experts est un MLP à deux couches (Entrée /Sortie). La couche d’entrée, est
formée de deux neurones tandis que celle de sortie est formée d’un seul neurone. Chacun
des neurones d’entrée ayant un nombre d’entrées égale au nombre de bits qui doit être
analysés par le réseau. La sortie de chacun des experts (+1/-1) donne un estimé de la
probabilité que le paquet soit accepté ou rejeté par la règle en question. (-1 signifie une
grande probabilité de rejet, et +1 un grande probabilité d’acceptation.
Finalement le réseau#4 est un MLP à 3 couches (25 20 15).
Réseau #1
Réseau #2
Expert #1
Réseau
#4
Expert #2
Perceptron
Entrée #3
Expert #5
Figure-1
Figure-2 : Réseaux # 1,2et3
Ce réseau a le rôle du « load balancing ». Les entrées représentent, codé sur un bit, le
cheminement du paquet présent et du futur. Les deux cheminements possibles
(CheminOpt1 et CheminOpt2) sont générés respectivement par les réseaux #1 et #2 de la
figure 1. L’autre entrée, cheminement du dernier paquet a être sortie du réseau, est codé
sur 15 bits (3 bits/règle*5règle=15 bits).
Simulation
Dans le but de pouvoir confirmer ou infirmer notre hypothèse, on a dû avoir recours à des
simulations.
Pour commencer on du créer et entraîner nos différents experts. Cette ne fut pas très
ardue; en effet on a utilisé le tableau 1 afin de générer des vecteurs d’entraînement à nos
différents experts. Par exemple pour l’expert #1 qui simule la règle 1 voici deux vecteurs
d’entraînement possible :
Entrée=011 Æ Sortie=1
Entrée=010 Æ Sortie=0
4
Ces différents experts ont bien performés lors des tests et ont donc une bonne capacité de
généralisation.
Le perceptron que l’on voit à la figure-2 a pour seul rôle d’associer CheminOpt1ou
CheminOpt2 aux différentes entrées. Cette association ce fait en respectant les résultats
obtenus par l’algorithme de recherche de l’arbre optimale (i.e : L’algorithme qui a
générer CheminOpt1 et CheminOpt2).
L’entraînement du MLP a nécessité beaucoup de travail. En effet, étant donné notre
hypothèse, afin de pouvoir créer des vecteurs d’entraînement pour ce réseau on doit avoir
le cheminement optimal d’un paquet étant donné le paquet qui l’a précédé et celui qui va
le suivre. Afin de pouvoir obtenir ces différents cheminements on a codé un algorithme
qui prends en considération les 5 différentes règles ainsi qu’un tampon dont la taille
permet d’emmagasiner deux paquets et qui génère le cheminement optimal d’un paquet
étant donné le paquet qui le suit et celui qui le précède. Ceci fait, c’est le choix de la
structure du MLP qui restait à faire. Un algorithme qui permet de tester le résultat du
MLP nous a permis, après plusieurs tentatives, de pouvoir opter pour celui-ci.
Résultats 1 =
12
12
Résultats 3 =
0 12
0 12
Résultats 2 =
18.0000
18.0000
17.0000
16.0000
16.0000
17.0000
17.0000
18.0000
0.0400
0.0200
0.0200
0.0200
0.0200
0.0200
0.0400
0.0200
18.0400
18.0200
17.0200
16.0200
16.0200
17.0200
17.0400
18.0200
13.0000
13.0000
13.0000
13.0000
0
0
14.0000
15.0000
16.0000
14.0000
16.0000
15.0000
18.0000
15.0000
16.0000
16.0000
0
0
13.0000
0.0100 13.0100
0.0900 13.0900
0.1000 13.1000
0.0200 13.0200
0
0
0
0
0.0100 14.0100
0.0100 15.0100
0.0100 16.0100
0.0100 14.0100
0.0100 16.0100
0.0100 15.0100
0.0100 18.0100
0.0100 15.0100
0.0100 16.0100
0.0100 16.0100
0
0
0
0
0.0100 13.0100
Tableau 2. Résultats des simulations
NOTE : La première colone représente le nombre de cycle le paquet a du passé dans la
machine, la deuxieme colone represente le temps que le paquet à passé dans la machine et
finalement la troisieme est la somme des deux premieres.
5
Discussion
Le résultat 1 représente les performances lorsqu’on envoie, tout seul, un des deux
chemins optimal dans la machine. Le résultat 2 représente celles qui sont obtenu lorsque
trois paquets sont envoyés sans optimisation. Finalement, le troisième est obtenu lorsque
trois paquets sont envoyés dans la machine après optimisation. On remarque bien que le
résultat 3 est beaucoup plus rapide que le résultat 2, tant au niveau des cycles qu’au
niveau des temps. Ceci, montre bien l’amélioration que le réseau de neurones a pu
amener à l’exécution des paquets. On peut également remarquer que le résultat 1
représente une borne inférieure à l’exécution des paquets, puisqu’il est le résultat du
meilleur chemin à travers la machine tout seul.
Il est aussi à remarquer l’effet de l’information supplémentaire apporté par les paquets
« passé » et « future » ont un effet marqué sur la performance du trajet utilisé par le
parquet. De ceci on peut extrapoler l’hypothèse que la performance de la gestion des
paquets est directement liée à l’information que le réseau a à sa disposition au moment de
la prise de décision sur le trajet que doit emprunter le paquet.
Conclusion
Nous avons émis l’hypothèse qu’un réseau de neurones a la capacité d’optimiser
la gestion de paquets TCP/IP, or dans cet article les simulations ont été faites avec des
paquets relativement petits (1 octet), cependant la capacité modulaire de notre réseau
permet la parallélisation afin d’accommoder des longueurs quelconques de paquets. Cette
particularité permet également d’augmenter la performance de la gestion des paquets lors
de l’ajout de paquets à priori (« passé ») et à posteriori (« futur ») dans la prise de
décision. Déjà, l’ajout d’un seul paquet à priori emmène beaucoup d’information, car
celui-ci renferme également de l’information sur sont priori et ainsi de suite, ceci
implique alors qu’un seul paquet à priori amène de l’information sur l’historique des
paquets.
La plus grande lacune de notre topologie est l’absence d’un apprentissage
continue en temps réel. En effet, une rétropropagation de l’état du système en tout temps
serait très bénéfique à la prise de décision du réseau. Cependant, une telle architecture
rendrait l’apprentissage très difficile et pourrait ralentir le système, ou encore le rendre
instable. Mais, avec les développements toujours plus rapide en microélectronique, un
système avec rétropropagation pourrait un jour être une solutions concevable.
Références
[1] Haykin, S., NEURAL NETWORKS A comprehensive foundation, second edition, Prentice
Hall, 1999
[2] Gauvin, J-J., Leçons de programmation mathématiques, Éd. École Poly. 1994
6

Documents pareils