IDS-IPS

Détection d'intrusions


Un système de détection d'intrusions cherchera à différencier un flux normal d'une attaque.
Nous allons ici décrire les deux type d'approches existants pour la détection des intrusions : l'approche par scénarios et l'approche comportementale.

Approche par scénarios

Cette approche se base sur le principe que l'on a connaissance des techniques de l'assaillant.

Recherche de motifs (Pattern matching)

On aura dans ce cas une base de signatures, regroupant un grand nombre d'attaques. Chacun des paquets analysé sera comparé aux signatures, et dans le cas où une signature correspondra à ce paquet, il sera alors considéré comme frauduleux.

Avantages :
L'avantage de cette technique est la facilité de mise à jour : de nouvelles signatures sont régulièrement publiées sur internet.

Limites :
Une des limites est celle appelée « 0 day ». En effet, lorsq'une nouveau type d'attaque voit le jour, sa signature correspondante n'est pas publiée instatanément. Il faudra alors attendre plusieurs jours pour être en mesure de reconnaitre cette nouvelle attaque.
Une autre limite concerne la modification des signatures. En effet, si le pirate modifie légèrement son attaque, la signature correspondante ne permettra alors pas de détecter l'attaque. Par exemple, un pirate pourra prendre pour cible un port différent que celui décrit dans la signature d'une attaque.

Exemple :
- Recherche de « /cgi-bin/phf » : un pirate pourra tenter d'accéder à ce CGI (tentative d’exploit).
- Si les 8 premiers octets des données UDP sont « CE63D1D2 16E713CF », on détectera une tentative de connexion avec back orifice en utilisant le mot de passe par défaut.

Analyse de protocoles :

Cette méthode permettra de vérifier que les protocoles sont utilisés en conformité avec les normes.

Par exemple, la technique du « Ping of death » consiste à forger des paquets ICMP Echo Request ayant une longueur de données supérieure à la taille maximale. Ce paquet sera alors fragmenté en une multitude de paquets. Le destinataire doit réassembler ces paquets, et se crash souvent car ce type de réassemlage est souvent mal implémenté. Cette technique est maintenant ancienne et les firewalls ne laissent généralement pas passer ces paquets.

Analyse heuristique

L'analyse heuristique consiste à définir des valeurs seuil pour certaines caractéristiques.

Par exemple, si le nombre de sessions sur une machine dépasse un seuil défini, on détectera cela comme une intrusion.

Approche comportementale

On effectue dans cette méthde une détection d'intrusions en fonction du comportement passé de l’utilisateur. Exemple de métriques : charge CPU, volumes de données échangées, heures de connexion, répartition statistiques des protocoles utilisés, etc.
Cette approche consiste donc à dresser un profil de l'utilisateur. Pour faire cela, on aura une période d'apprentissage pendant laquelle le système enregistrera les actions courantes de l'utilisateur. On devinera facilement que cela comporte une faille : si un pirate est déjà présent lors de la phase d'apprentissage, ses actions seront considérées normales pour le système.
De plus, on pourra fixer des limites de fluctuation du profil de l'utilisateur. Ainsi, un pirate pour essayer d'influer sur le profil de l'utilisateur par de minimes variances, qui au bout d'un certain temps, auraont modifié le profil de l'utilisateur à souhait pour pouvoir mener l'attaque sans être détecté.

Approche probabiliste

On aura dans ce cas la représentation d’une utilisation courante d’une application ou d ’un protocole.
Par exemple, dans le cas d'une connexion sur le port 80 d'une machine, on aura une probabilité de 0,9 d'avoir un GET, ainsi qu'une probabilité de 0.8 que la réponse à ce GET soit un HTTP 200 OK.

Approche statistique

On cherchera là à quantifier des paramètres liés à l’utilisateur : utilisation processeurs, mémoire, nombre de connexions sortantes par jour, vitesse de frappe au clavier, sites les plus visités etc. Cette méthode présente des difficultés de mise en place. C'est une méthode utilisée dans le domaine de la recherche, et mis en oeuvre par des réseaux neuronaux et data mining.