Machine Learning contre DDoS

De Wiki Campus Cyber
Aller à :navigation, rechercher

Descriptif du use case[modifier | modifier le wikicode]

Nous parlons ici de la détection d’un type d’attaque qui consiste à augmenter le volume des requêtes entrantes sur un service donné (par exemple http) pour noyer celui-ci sous ces requêtes jusqu’à potentiellement le rendre inopérant.

De manière générale la problématique peut se résumer à effectuer de la classification de trafic réseau :

  • En volume
  • En « pattern » en fonction des provenances : collecte d’information, usage normal, attaque, anomalies


Pour lutter contre ces attaques, il s’agit ici d’une part de détecter l’augmentation du trafic (parfois difficile à distinguer des phénomènes dits de « flash crowd ») et, dans un second temps, de filtrer le trafic réseau pour bloquer les appels nocifs et laisser passer les bons appels (là encore, pas toujours possible de faire la distinction). Par ailleurs, un travail est à faire pour remonter de la cible vers les sources des requêtes afin de nettoyer les files d’attentes des dispositifs réseaux, surchargés aussi par les multiples requêtes de l’attaque.

Un des moyens d’augmenter le trafic est d’utiliser des réseaux de botnets en pilotant des objets connectés. Un certain nombre d’auteurs ont tenté avec un certain succès de qualifier/trouver des schémas reproductibles d’appels pour identifier les appels en provenance d’une liste de réseaux de botnet spécifiques.

L’objectif est donc de détecter et remédier aux attaques DDoS en utilisant des composantes d’apprentissage automatique entraînées sur des datasets de flux réseau divers et variés (y compris oscillant sur plusieurs couches réseaux - OSI, Open Systems Interconnection).

Ce use-case a été partiellement étendu à toute la gamme d’attaque autour des intrusions, notamment par manque de bases de données annotées.

Approche[modifier | modifier le wikicode]

Les techniques d’apprentissage automatique permettent de détecter les variations malveillantes de trafic réseau. Elles peuvent intervenir dans le filtrage automatique du trafic malveillant (mitigation) et assurer le maintien du trafic légitime. Elles permettent aux services distribués de rester disponibles. Elles interviennent pour contrer les attaques DDoS multi-niveaux (OSI) en automatisant et optimisant la chronologie des séquences de réponses par niveau OSI.

Les approches les plus courantes partent d’algorithmes non-supervisés en utilisant une base « propre » (trafic réseau validé comme n’ayant aucune attaque connue) :

  • Création d’un vecteur représentatif du trafic entrant
  • Utilisation d’un auto-encoder pour apprendre à reconstruire le trafic entrant
  • Utilisation de la distance de reconstruction sur d’autres trafics pour identifier des déviances par rapport au trafic normal


Autres algorithmes utilisés : random forest, régression linéaire multiple, K-means, clustering, filtrage, Graph2Vec pour l’embedding de graphes (Graph embedding) pour la représentation graphique d’attaques DDoS en temps réel. Multi-agents pour la mitigation.

Statut[modifier | modifier le wikicode]

Deux approches ont été implémentées et seront intégrées au sandbox (avec leurs données) afin de servir de base à des ateliers de travail.

  • Une première fournie par l’INRIA intégrant un « graph embedding » (à valider en fonction des dates de publication)
  • Une autre fournie par un article clairement documenté .

Données[modifier | modifier le wikicode]

Comme dans les autres cas d’usage, l'un des principaux problèmes dans ce domaine est la non-disponibilité d'un ensemble complet de données qui reflète :

  • Les scénarios modernes de trafic réseau,
  • La grande variété d'intrusions laissant de faibles traces
  • La complexité des informations du trafic réseau.


Usecase1.1.png
Liste de datasets extraits de l’article « A Survey on Machine Learning Techniques for Cyber Security in the Last Decade ».


Les ensembles de données de référence KDD98, KDDCUP99 et NSLKDD (https://www.unb.ca/cic/datasets/nsl.html) ont été générés il y a dix ans et ne sont plus représentatifs des attaques réseaux modernes.

Les Datasets de flux pour entraîner les différents modèles les plus récents sont : CIC-DoS, CICIDS2017, CSE-CIC-IDS2018, CIC DDoS2019, MIT Lincoln, FIFA98, DDoSTB, CAIDA

L’article fournit une liste de références intéressantes sur la base CIC-IDS 2018.

Catégories d'algorithmes utilisés[modifier | modifier le wikicode]

DDOS[modifier | modifier le wikicode]

  • Random Forest

Une première méthode efficace de détection d'attaque DDoS basée sur l'apprentissage automatique comprend deux étapes :

Etape 1 : L’extraction de caractéristiques

Durant l'étape d'extraction de caractéristiques, les caractéristiques du trafic d'attaque DDoS (présentes en grande proportion par rapport au trafic normal) sont extraites en comparant les paquets de données classés selon des règles.

Etape 2 : La détection de modèle

Durant l'étape de détection du modèle, les caractéristiques extraites sont utilisées comme caractéristiques d'entrée de l'apprentissage automatique, et un algorithme de type forêt aléatoire (Random Forest) est utilisé pour entraîner le modèle de détection d'attaque. Les résultats expérimentaux montrent que la méthode de détection d'attaque DDoS basée sur l'apprentissage automatique a un bon taux de détection pour les attaques DDoS actuelle (2020 – 2021).

  • MLR (Régression Linéaire Multiple)


Usecase1.2.png


Détection d’attaque DDoS s’appuyant sur un algorithme MLR (Multiple Linear Regression) Utilisation du dataset CICIDS 2017. Avec cette approche MLR, la précision de prédiction varie de 97,86% à 73,79% pour 16 attributs obtenus par la sélection de caractéristiques basée sur le gain d'information et le modèle MLR.

IDS[modifier | modifier le wikicode]

Les deux approches se basent sur des réseaux de neurones en mode auto-encodeur

Usecase1.3.png


La complexité est de trouver une représentation efficace du vecteur d’entrée. Ces approches peuvent donc fortement se complexifier en fonction du type de construction de ce vecteur d’entrée (encodage du trafic) et du type d’encodeur utilisé.

  • Encodage simple : trafic brut ou semi-travaillé
  • Encodage complexe : graph embedding
  • Auto-Encodeur simple : réseau de neurones avec une couche interne (diabolo)
  • Auto-encodeur plus complexe : architecture dédiée intégrant des couches et sorties spécifiques par problématique

Besoin en temps de calcul[modifier | modifier le wikicode]

L’entrainement des modèles prend de quelques heures à quelques jours en fonction de la complexité des encodages et des modèles. Par contre, une fois le détecteur intégré, la détection des DDoS se fait en temps réel, intégrée à un SIEM UEBA par exemple.

Cloud ou On Premise[modifier | modifier le wikicode]

Les deux sont techniquement possibles : Cloud et On Premise

Autres logiciels nécessaires : ETL, qualité, sécurité, crypto, anonymisation[modifier | modifier le wikicode]

Non

Mitre Att@ck[modifier | modifier le wikicode]

Detect, Isolate

Mitre Defend[modifier | modifier le wikicode]

  • Filtrage, Mitigation
  • Filter Network Traffic: Use network appliances to filter ingress or egress traffic and perform protocol-based filtering. Configure software on endpoints to filter network traffic.

https://attack.mitre.org/mitigations/M1037/ T1071, T1197, T1530, T1602, T1499, ….

Cyber Kill Chain[modifier | modifier le wikicode]

Peut être intégré à la détection en fonction de la confiance que l’on a dans le taux de faux positifs.