3. Implémentation du
modèle de détection de trafic malveillant
Pour s'assurer qu'il était possible de bloquer des
paquets entrants et sortants, il nous fallait simuler un réseau d'objets
connectés. Mais nous ne disposons pas des objets spécifiques qui
ont servi aux laboratoires pour enregistrer les fichiers pcap et encore moins
des logiciels qui ont permis d'extraire les attributs.
Nous nous sommes donc servis des paquets que nous avions
déjà afin de les rejouer sur deux machines virtuelles
créées sur VirtualBox sur un système Ubuntu afin de
simuler un réseau d'objets connectés.
Sur une machine virtuelle considérée comme la
passerelle, était installé le code permettant de charger les
paquets en file d'attente et d'émettre des verdicts. Nous
précisons qu'il faut avoir des droits administrateurs et avoir
accès au kernel via un gestionnaire, quelque chose de très
difficile avec Windows. Pour chaque paquet qu'il recevait, il émettait
son verdict en se basant sur les prédictions du modèle.
Un premier test a été de ne créer que
deux machines virtuelles. Une passerelle et une machine dans un réseau
privé. Le but était de simplement pouvoir observer la
fonctionnalité de filtre sur la passerelle.
Le rôle de l'autre machine virtuelle était
très simple : permettre de simuler un trafic d'objets
connectés en rejouant les paquets contenus dans les fichiers pcap dont
nous disposions. Il se contentait d'envoyer ces paquets à la machine
virtuelle passerelle.
Ci-dessus vous pouvez voir les deux figures qui
présentent la configuration des deux machines virtuelles.
L'adresse IP utilisée est le 10.42.0.0 avec le masque
255.255.255.0.
![](Conception-de-filtre-dun-reseau-dobjets-connectes-par-apprentissage-profond58.png)
Figure 37 : Configuration des
interfaces du gateway
![](Conception-de-filtre-dun-reseau-dobjets-connectes-par-apprentissage-profond59.png)
Figure
38 : Configuration des interfaces d'une autre machine sur le réseau
interne
Nous avons mis les deux machines
virtuelles dans un réseau interne pour qu'ils puissent
communiquer mais sans internet!
Ensuite nous nous sommes servis des prédictions de
l'algorithme et du fichier pcap correspondant pour émettre un statut
(trafic bénin ou pas) pour pouvoir bloquer ou accepter les paquets
joués.
La figure ci-dessous nous montre ce qu'on pouvait observer sur
les deux machines.
![](Conception-de-filtre-dun-reseau-dobjets-connectes-par-apprentissage-profond60.png)
Figure 39 : envoie,
réception et détection des paquets malveillants
La figure ci-dessus nous montre les
paquets envoyés depuis une machine du réseau interne (la machine
sandra@sandra-virtualBox) et reçu sur la machine qui nous sert
de gateway (laroche@laroche-VirtualBox). En fonction des
prédictions, le paquet donc est refusé ou
accepté !
La passerelle est capable de refuser ou d'accepter un
paquet.
Un deuxième test a cette fois-ci consisté
à créer deux sous réseau. Un réseau privé
qui représente notre réseau domotique qu'on doit protéger,
un réseau public qui représente internet et notre passerelle qui
va filtrer le trafic, chacun représenté par une machine
virtuelle.
La passerelle est la limite entre ces deux réseaux.
Notre but est de filtrer les paquets d'un réseau vers un autre et donc
de constater sur une autre machine que les paquets ont bel et bien
été filtrés.
La configuration réseau est simple :
Tableau 8 : Configuration des
machines du réseau
|
Adresse
|
Réseau
|
Masque
|
Passerelle
|
Machine 1
|
10.42.1.2
|
Privé/interne
|
255.255.255.0
|
10.42.1.1
|
Machine 2
|
2.42.0.2
|
Public/internet
|
255.255.255.0
|
2.42.0.1
|
Machine 3
|
10.42.1.1
2.42.0.1
|
passerelle
|
255.255.255.0
|
/
|
![](Conception-de-filtre-dun-reseau-dobjets-connectes-par-apprentissage-profond61.png) ![](Conception-de-filtre-dun-reseau-dobjets-connectes-par-apprentissage-profond62.png)
Figure 40 : Configuration IP
des deux machines de 2 réseaux différents
Sur la figure ci-dessus, nous observons la
configuration de la machine externe machineun@machineun-VirtualBox
avec l'adresse 2.42.0.2 et celle de la machine interne
sandra@sandra-VirtualBox.
Ensuite nous avons configuré une machine comme
étant le routeur pour qu'il puisse effectuer le filtrage entre les deux
réseaux. Notre passerelle possède 2 cartes réseaux. Une
carte connectée au réseau interne et l'autre au réseau
externe. Nous avons configuré les deux cartes avec les adresses que vous
pouvez retrouver dans le tableau précédent. Dans les deux cas
nous avons des adresses statiques de classes A.
La figure ci-dessous montre notre configuration IP.
Ensuite nous avons configuré le routage sur notre
passerelle. Nous avons activé
« net.ipv4.ip_forward=1 » dans le fichier
/etc/sysctl.conf. Ensuite ajouter une règle de routage
« iptables -t nat -A POSTROUTING -o eth0 -j
MASQUERADE » pour activer le NAT sur l'interface
connecté au réseau externe eth0. Enfin nous avons
automatisé le montage de nos règles à l'activation de
notre interface eth0. A chaque fois que notre interface sera activée,
les règles iptables se réappliquerons. Nous enregistrons nos
règles iptables dans le fichier
/etc/iptables_rules.save. Ensuite dans le fichier
/etc/network/interfaces on ajoute la ligne
« post-up iptables-restore <
/etc/iptables_rules.save ». Et enfin nous avons
rechargé nos interfaces. Je précise que nous avons ajouté
notre passerelle comme route par défaut pour les 2 machines des 2
réseaux différents.
Nous pouvons observer sur les figures ci-dessus que de simples
ping d'un réseau à l'autre fonctionnent parfaitement.
![](Conception-de-filtre-dun-reseau-dobjets-connectes-par-apprentissage-profond63.png)
Figure 41 : Ping entre les 2
machines de 2 réseaux différents
Ensuite il s'agissait de faire fonctionner le filtre
c'est-à-dire envoyer juste quelques paquets.
Nous avons envoyé un lot de 20 paquets sur lesquels
juste 10 était malveillants et regarder de l'autre côté
nos deux paquets bénins reçus.
Donc nous avons pris un fichier pcap et envoyé juste 20
paquets. Utiliser les prédictions et s'assurer que la passerelle filtre
correctement. Ici le trafic est généré depuis le
réseau interne.
![](Conception-de-filtre-dun-reseau-dobjets-connectes-par-apprentissage-profond64.png)
Figure 42 : Envoi et
réception des paquets de part et d'autre du réseau
Sur la figure ci-dessus, La machine
sandra dans le réseau interne est l'émetteur. Il suffit
de regarder les détails du paquet envoyé au niveau des champs
src et dst. Et machineun est le destinataire des
paquets et renifle les paquets qu'il reçoit en ne filtrant et affichant
que ceux qui viennent de l'adresse 10.42.1.2. Nous l'avons fait pour
éviter d'afficher pleins de paquets de source divers,les paquets ARP,
les requêtes icmp, etc.
Nous pouvons observer que sur la machine
sandra-Virtual-Box, 20 paquets ont été envoyés et
de l'autre côté 9 paquets ont été
reçus ! C'est parce que la passerelle a bloqué les paquets
que le filtre a décidé comme étant malveillant.
![](Conception-de-filtre-dun-reseau-dobjets-connectes-par-apprentissage-profond65.png)
Figure 43 : Filtrage du
trafic
Cette figure nous montre les paquets
acceptés et rejetés par le filtre. Lorsqu'un paquet est
détecté comme étant malveillant, il est rejeté.
Nous avons aussi vérifié qu'on pouvait filtrer les
paquets provenant de l'extérieur.
![](Conception-de-filtre-dun-reseau-dobjets-connectes-par-apprentissage-profond66.png)
Figure 44 : la machine interne
renifle les paquets qu'elle reçoit
La machine sandra est cette
fois-ci le destinataire et renifle les paquets. Le même nombre de paquets
ont été envoyés avec le même nombre de paquets
malveillants et bénins. Les résultats sont les mêmes que
ceux obtenus lorsque machineun était le destinataire.
Ceci prouve qu'il est effectivement possible de filtrer le
trafic venant de l'extérieur et celui venant de l'intérieur.
|