1 Approches explicites (CRIL) DADDI, tâche 2
Motivations Détection des attaques "rares" - "nouvelles" Classées " Normal " Réseaux bayésiens Approche hybride Arbres de décisions possibilistes Détection en temps réel (réagir avec le trafic en cours). Perspective de détection anticipée. Outil de Formatage
3 Partie I Approche hybride : comportementale + signature
Point de départ La majorité des erreurs de détection sont des faux négatifs (attaques classées normales) Gérer différemment les prédictions pour traiter les Vrais/faux négatifs Vrais/faux positifs
Principe dune approche hybride Traitement des vrais/faux positifs la classe prédite par les deux classificateurs nest pas la classe normale une simple agrégation pour déterminer la catégorie dattaque
Module comportemental Vrai négatif ? Classe =Normal Oui Approche comportementale Schéma général de traitement des vrais/faux négatifs Connexion déclarée normale Non Traitement des fausses alertes et identification des catégories dattaques Fausse alerte ? Identification de la catégorie dattaque du faux négatif Catégorie dattaques Normal Connaissances expertes
Distinction entre vrais/faux négatifs 1ère étape: approche comportementale Modélisation des connexions normales dans les données dapprentissage Élaboration dune mesure de similarité pour juger le degré de normalité dune connexion (similarité avec le modèle des connexions normales) Vérifier si les connexions reconnues anormales ne constituent-elles pas des fausses alertes
Modélisation des connexions normales Les attributs numériques sont modélisés par deux grandeurs : la moyenne et lécart type. Les attributs logiques sont modélisés par les fréquences respectives des valeurs 0 et 1. Les attributs symboliques sont modélisés par la fréquence de chaque valeur.
Mesure de distance locale dune connexion avec le modèle des connexions normales Si lattribut a i est continu: plus a i sécarte de la moyenne, moins la connexion est normale Si a i est logique ou symbolique: moins la valeur de a i est fréquente, moins la connexion est normale. En particulier, toute nouvelle valeur donne une distance maximale (=1).
Mesure de distance globale dune connexion avec le modèle des connexions normales Décider si la connexion représentée par le vecteur dattributs a est normale ou anormale. Si Dist(a, référence) > α alors a est anormale ; Sinon a est normale ; Fin si Avec : Dist (a,référence) = g (Dist(a i, â i )) (i=0,40) g = moyenne pondérée (retenue dans lexpérimentation) g = max: une connexion est anormale dès quune nouvelle valeur apparaît (détection de nouvelles attaques)
Traitement des vrais/faux négatifs 2ème étape: introduction de connaissances expertes Traitement des fausses alertes: Une connexion déclarée anormale est-elle réellement une attaque? Une connexion anormale doit au moins manifester les propriétés caractéristiques de lune des catégories dattaques (DoS, Probe, R2L ou U2R) DoS? Connexions anormales (sorties du module comportemental) FN Oui Probe? Non Oui R2L ou U2R? Non Oui Catégorie normale Non FN Catégorisation des FN Catégorie dattaques
Traitement des fausses alertes Exemple: Les propriétés caractéristiques des attaques DoS sont : Une courte durée Grand nombre de connexions vers la même destination (count) et sollicitant le même service (srv_count) srv_count count duration σµσµσµσµσµ ProbeU2RR2LDoSNormal Si (count S duration ) et (srv_count < S srv_count ) alors La connexion na pas les propriétés caractéristiques des DoS Sinon La connexion a les propriétés caractéristiques des DoS
Résultats Amélioration sensible de la détection des attaques R2L (de 2,85 à 29.92%) et U2R (de 7,02 à 20.61%) Pas de perte de performance concernant les autres catégories (connexions normales, DoS et Probe) Les résultats dépendent des paramètres fixés dans l'approche comportementale Les résultats sont affectés par les incohérences dans KDD'99 Résultats complémentaires par rapport à ENSTB (tester sur la nouvelle base)
14 Partie II Arbres de décision possibilistes: traitement des connexions en ligne
Connexions complètes service http count telnet <=46 N >46 0 N >0 D Wrong_fragment domain-u SF REJ RSTO P flag P count >0 D 0 0 Wrong_fragment >0 NPN serviceflagcountw_f C telnetSF210? N P RSTR
Connexions incomplètes - en ligne servicecountflagWrong- fragment telnet2SF10 http7REJ48 domain-u15RSTO50 ………… Comment modéliser lincertitude ?
Connexions incomplètes - en ligne service count flag wrong_fragment http0>=0, <=461SF1>0 1 domain-u0>46 2 REJ0=01 telnet1RSTO1 RSTR 1
Arbres de décision possibilistes -- Différentes façons pour classer des connexions avec des attributs incertains/manquants en utilisant la théorie des possibilités. Plusieurs propositions: Méthode basée sur les opérateurs Min/max Méthode basée sur les opérateurs Min/leximax Méthode basée sur les opérateurs Leximin/leximax
service http count telnet <=46 N (P1) >46 0 N (P2) >0 D (P3) Wrong_fragment domain-u SF REJ P (P9) flag P (P4) count >46 D (P5) <=46 0 Wrong_fragment >0 N (P6) P (P7) N (P8) RSTR P (P10) 1 1 service count flag wrong_fragment http0>=0, <=461SF1>0 1 domain-u0>46 2 REJ0=01 telnet1RSTO1 RSTR 1 RSTO
service http count telnet <=46 N (P1) >46 0 N (P2) >0 D (P3) Wrong_fragment domain-u SF REJ RSTO P (P9) flag P (P4) count >46 D (P5) <=46 0 Wrong_fragment >0 N (P6) P (P7) N (P8) P5 = leximin P9 > leximin P10 > leximin P6 > leximin P1 = leximin P2 = leximin P3 = leximin P4 = leximin P7 = leximin P8 C={D,P} P=(P9, P10,P7) > leximin-leximax D=(P5,P3) 1 1 RSTR P (P10) 1 1 Donc la classe candidate est P
21 Partie III Formatage de trafic brut
Aucun logiciel libre de formatage n'est actuellement disponible! Formatage de trafic brut …… …… …… Trafic réseau brut (on-line ou off-line) Formatage Connexions Formatage 1.098,tcp,smtp,SF,1676,333,0,0,0,0,0,1, ,udp,private,SF,105,146,0,0,0,0, ,tcp,http,SF,298,321,0,0,0,0,0,1,... Détection Normal DoS Normal U2R Apprentissage Détection Normal DoS Normal U2R Apprentissage
Fonctionnalités de loutil de formatage Trafic brut Off-line On-line Enrichies Complètes Incomplètes Complètes Incomplètes Non enrichies Enrichies Non enrichies Enrichies Non enrichies Enrichies Non enrichies
Construction des connexions Types de connexions Connexion TCP: ensemble de paquets échangés entre IP Src/PortSrc et IP Dst/PortDst (handshake + transfert de données + déconnexion) Connexion UDP: Requête/Réponse ou bien flux continu IP Src/PortSrc et IP Dst/PortDst Connexion ICMP: Requête/Réponse ou paquet seul
Description de base d'une connexions Attributs de base Attributs de contenu Attributs temporels (intervalle = T secs) Attributs relatifs au trafic vers un hôte particulier (intervalles = N dernières connexions)
Description enrichie dune connexion Description enrichie=description de base + attributs supplémentaires Quelques attributs ajoutés: Port source Bad trafic Bad trafic : # de paquets forgés (ex. flags incorrects)... Direction (entrante, sortante, interne,...) Autres attributs sur T dernières secondes, N connexions......
Ethereal: Pourquoi? Ethereal: Analyseur de trafic réseau Outil très convivial (interface graphique...) Fonctionnalités de capture, analyse, filtrage... Outil Open Source ( Supporte un très grand nombre de protocoles (Ethereal supporte 754 protocoles) Existe pour OS Unix, Linux et Windows
Fonctionnalités de l'outil Input : trafic live: Ethernet, FDDI,... Trafic off-line: fichiers libpcap... Output: Fonctionnalité d'enregistrement dans des fichiers ASCII au format CSV... Statistiques de formatage
Fonctionnalités implémentées
Connexions finies non enrichies au format CSV Duration, protocol_type, service, flag, ,tcp,smtp,SF,1676,333,0,0,0,0,0,1, ,udp,private,SF,105,146,0,0,0,0, ,tcp,http,SF,298,321,0,0,0,0,0,1, ,udp,domain_u,SF,45,110,0,0,0,0...
Exemples de connexions finies enrichies ,0.027,outbound, , , tcp,1308,http,SF,175,1660, ,0,006,inbound, , ,53,udp,domain_u,SF,36,101, ,1.037,inside, , ,tcp,16 75,finger,SF,10,44, ,21.865,inside, , ,tcp,2 2067,telnet,SF,139,249,0,0,0,0,3,...
Connexions incomplètes Mêmes attributs que les connexions complètes sauf qu'on a l'état de la connexion lorsque sa durée atteint T secondes..(échantillonnage) => Permettre de suivre en fonction du temps l'évolution des attributs.. => L'apprentissage de l'évolution d'un attribut peut permettre sa prédiction (connaître sa valeur à l'avance)...ce qui permettra de faire de l'anticipation (anticiper la détection)...
Exemples de connexions enrichies incomplètes (T= 5 secs) ,0.011,inside, , ,tcp,http,SF,52,164,0,0,0,1, ,0.000,inside, , ,icmp,eco_i,SF,64,0, ,4.977,inside, , ,tcp,ftp,S1,58,222,0,0, ,4.977,inside, , ,tcp,telnet,S1,121,216,0,0,...
Exemples (2) de connexions incomplètes Même connexion à T=1 sec, T=2 sec... S1,87,511 T=1 :...,0.986,..,tcp,telnet,S1,87,51,0,0,0,0,0,0,0,1,... S1,93,1161 T=2 :...,1.614,...,tcp,telnet,S1,93,116,0,0,0,0,0,0,0,1,.. S1,108,1351 T=4 :...,3.824,...,tcp,telnet,S1,108,135,0,0,0,0,0,0,0,1,0, S1, T=15:...,14.804,...,tcp,telnet,S1,123,202,0,0,0,0,2,0, SF,139,2493 T=30:...,21.865,...,tcp,telnet,SF,139,249,0,0,0,0,3,...
Connexions en temps réel Mêmes attributs que les connexions complètes Echantillonnage temporel: Chaque µ secondes, fournir l'état des connections en cours ou apparues et terminées entre µ-1 et µ Echantillonnage événementiel: Fournir l'état d'une connexion lorsqu'un événement apparaît dans cette connexion (ex. changement du flag de la connexion,...) (fonctionnalité en cours dimplémentation)