réseaux CNN

adesso Blog

De nos jours, la classification du trafic réseau (NTC) est un outil essentiel pour classer le trafic dans des catégories représentant différents services de réseau. La catégorisation des services est fondamentale dans plusieurs domaines tels que la sécurité, la gestion et l'optimisation de la qualité de service.

Actuellement, l'utilisation de trafic crypté pour garantir la confidentialité et la sécurité des utilisateurs rend les NTC de plus en plus difficiles à analyser avec les méthodes traditionnelles. C'est pourquoi nous nous orientons vers une classification basée sur l'apprentissage automatique.

Ma thèse, actuellement en cours d'examen par l’IEEE GLOBECOM 2024, compare différents modèles basés sur les réseaux neuronaux convolutifs (CNN) et évalue la possibilité d’un compromis entre complexité et précision.

Scénario de référence

L'utilisation d'outils automatisés par les fournisseurs de services est devenue essentielle pour répondre aux besoins croissants et aux questions critiques des utilisateurs concernant leur expérience d'utilisation du réseau.

Par conséquent, le NTC est indispensable et utile à diverses fins, car il permet de classer le trafic dans des catégories de services.

Dans le domaine de la sécurité des réseaux, la différenciation des catégories au sein du trafic est fondamentale. En effet, il est par exemple possible de mettre en place des systèmes de détection d'intrusion, de logiciels malveillants ou des pare-feu grâce à la reconnaissance d'un trafic anormal. En outre, les résultats sont également utilisés dans la gestion et l'administration des réseaux, la gestion de la qualité de service et la surveillance des ressources par les fournisseurs d'accès à Internet (FAI).

Le NTC fonctionne en extrayant des informations statistiques et/ou comportementales du trafic, puis en utilisant ces informations dans des algorithmes de classification appropriés.

Le NTC utilise généralement trois approches de base, qui sont les suivantes :

  • Basée sur le port
  • Basée sur la charge utile
  • Basée sur l'apprentissage automatique (ML)

Les techniques basées sur les ports associent des services à des numéros de port enregistrés et classent le trafic en conséquence. L'utilisation de ports privés et dynamiques rend cette approche inutilisable.

L'approche basée sur les données utiles repose sur l'inspection des données utiles, comme les algorithmes d'inspection approfondie des paquets. Cependant, l'utilisation de trafic crypté rend cette analyse de plus en plus difficile. Par conséquent, en présence d'un trafic crypté invisible pour les utilisateurs tiers, les modèles utilisés dans ces approches sont inutiles, obsolètes et surtout inefficaces.

Pour résoudre ce problème, de nouvelles approches de classification ont été mises au point, notamment des approches basées sur la statique des flux, dans lesquelles les paquets sont regroupés en flux à partir desquels des informations statistiques sont extraites. Cela nous permet de tracer un schéma des classes de service auxquelles appartiennent les flux qui nous intéressent, sans passer par le contenu de la charge utile.

L'objectif du projet était d'analyser les performances des principales méthodes NTC existantes basées sur les réseaux neuronaux en convolution (CNN) et de mettre en place un modèle de classification basé sur les flux.

En partant d'un projet de référence qui fournit un ensemble de données contenant du trafic QUIC crypté, nous avons voulu créer une architecture pour des modèles ML supervisés basés sur CNN. Toutes les phases de conception d'un modèle d'apprentissage automatique ont été suivies, en commençant par l'analyse de l'ensemble de données et par le prétraitement afin de préparer les données et les critères nécessaires à la mise en œuvre de ces algorithmes à l'aide du langage de programmation Python et des bibliothèques utiles à ce scénario. Pour observer l'efficacité des modèles, des évaluations appropriées des résultats obtenus sont ensuite effectuées pour observer la performance finale et évaluer les particularités des modèles conçus.

Analyse et prétraitement

L'analyse de l'ensemble des données montre la présence de 5 classes différentes (Google Hangout Chat, Google Hangout VoIP, Google Play Music, Transfert de fichiers et YouTube).

Grâce au prétraitement, le trafic a été divisé en flux (suivant le quintuple IP source/destination, port source/destination, protocole) pour un total de 294062 flux. Les caractéristiques du flux ont ensuite été identifiés pour arriver à un total de 16 :

  • Longueur du paquet
  • Temps relatif écoulé depuis le premier paquet
  • Temps écoulé depuis le paquet précédent
  • Pourcentage de gros paquets dans un flux
  • Pourcentage de petits paquets dans un flux
  • Taille du débit
  • Durée du débit
  • et d'autres informations statistiques associées aux critères (écart-type, kurtosis (coefficient d’acuité), etc.).

Nous avons ensuite modifié le formatage de certaines classes et, surtout, géré les valeurs et réduit le nombre de flux à 231012. Ensuite, nous avons normalisé les données et utilisé un encodage pour les labels de l'ensemble de données.

Schéma NTC

En prenant le modèle de référence qui partait d'une combinaison de Random Forest et de CNN (qui à eux deux combinent des centaines de critères), nous avons choisi de nous concentrer sur la simplicité et d'utiliser uniquement CNN, qui, comme nous l’avons déjà mentionné plus haut, résulte sur un total de 16 critères pour la partie de traitement des données.

Au cours du projet, quelques architectures valables équivalentes à 4 ont été identifiées.

Elles sont basées sur CNN. Elles commencent par une architecture complexe et se simplifient progressivement. Les modèles ont un schéma général qui contient les couches essentielles d'un réseau neuronal à convolution : couches convolutives, couches de mise en commun, couches d'élimination, couches d'aplatissement et couches denses.

Les modèles diffèrent tous en termes de nombre de couches et de propriétés des différentes couches, mais certains choix architecturaux sont communs à tous les modèles :

  • La répartition de l'ensemble de données entre 80 % et 20 % pour la formation et le test
  • Les jeux de données d’entraînement sur 20 époques par lots de 32 échantillons
  • Optimiseur Adam
  • 10 Fold cross validation (Validation croisée)

Les paramètres d'évaluation utilisés pour comparer les modèles sont les suivants :

  • Précision pondérée
  • Précision
  • Rappel
  • Score F1

Après de nombreuses mises en œuvre de l'architecture NTC basée sur le CNN, et de nombreuses phases d’essais-erreurs, nous sommes parvenus à identifier les modèles les plus performants, résumés dans le tableau suivant :

Résultats

En ce qui concerne les résultats présentés dans le tableau, nous pouvons affirmer que les résultats moyens sont toujours stables et se présentent dans une fourchette comprise entre 89% et 91%.

Le modèle 4, qui présente les meilleures performances, est également l'un des plus simples, ce qui prouve que complexité n'est pas toujours synonyme de performances élevées.

Ces résultats d'environ 92 % sont inférieurs de 7 à 8 % aux modèles présentés dans la littérature. Il convient toutefois de noter que la simplicité de l'architecture était le principal objectif des modèles sélectionnés dans le cadre de ce projet. En effet, les résultats obtenus dans la littérature utilisent un très grand nombre de critères, qui se comptent par centaines, alors que nos modèles n'utilisent que 16 critères, ce qui démontre leur aptitude à être utilisés dans des scénarios en temps réel.

Conclusion

Au cours du projet, nous avons évalué les modèles CNN pour classer les services QUIC (trafic crypté) en utilisant une classification basée sur le flux. Les modèles proposés s'appuient sur des approches basées sur l'apprentissage automatique pour classer les services suivants : Google Hangout, VoIP, transfert de fichiers, Google Play Music et YouTube. Diverses architectures avec différents niveaux de complexité ont été envisagées et leur niveau de précision évalué.

Par rapport au schéma NTC de base, notre approche offre une précision globale inférieure avec un résultat d'environ 91 %, comparativement au modèle de base allant jusqu’à 99 % de précision. Cependant, notre modèle se distingue par sa simplicité, puisqu'il repose uniquement sur un CNN à une étape, alimenté par seulement 16 critères, alors que le modèle de référence combine Random Forest et CNN qui ensemble reposent sur des centaines de critères. Malgré des performances potentiellement plus faibles, notre approche offre une grande précision tout en privilégiant un faible niveau de complexité. Nos travaux futurs visent encore à améliorer la précision du modèle tout en conservant, voire en améliorant, son architecture à faible complexité.

En savoir plus sur le sujet

Photo Matteo Flumini

Auteur Matteo Flumini

Matteo Flumini travaille chez adesso en tant qu'ingénieur DevOps et réseau dans le LoB TEM. Il fait partie de l’équipe située dans la belle ville de Lugano.

Sauvegarder cette page. Supprimer cette page.