Liens conseillés

Approche par scénario - 1

L’approche par scénario (misuse detection) consiste à détecter une intrusion en fonction du comportement actuel de l’utilisateur, indépendamment de ses actions passées. La terminologie « approche par scénario » vient du fait que l’on s’appuie sur la connaissance des techniques utilisées par les attaquants pour déduire des scénarios typiques.
La plupart des méthodes utilisées s’appuient sur la notion de signature d’attaque. Le terme signature est ambigu car il est souvent assimilé uniquement à des techniques de recherche de motifs dans des paquets (pattern matching) alors qu’il est bien plus générique que cela. De manière générale, une signature désigne un ensemble de caractéristiques permettant d’identifier une activité intrusive : il peut s’agir d’une chaîne alphanumérique, d’une taille de paquet inhabituelle, d’une trame formatée de manière suspecte, etc.

1- Recherche de motif (pattern matching)

Le pattern matching est sans doute la méthode la plus connue et la plus facile à comprendre. Elle se base sur la recherche de motifs caractéristiques d’une attaque au sein d’un flux de données, ce motif étant représenté par une chaîne alphanumérique.

Avantages de cette méthode :

Inconvénients de cette méthode :

2- Analyse des protocoles

On a souvent tendance à opposer l’analyse de protocoles au pattern matching alors qu’il s’agit d’une méthode complémentaire.

Cette technique analyse les flux selon deux axes :

La détection peut être faite en utilisant des techniques à base de pattern matching (pour détecter l’exploitation de valeurs interdites dans certains champs ou pour contrôler la longueur de certains champs) ou de règles d’analyse implémentées dans une préprocesseur spécifique à chaque protocole (contrôle du nombre d’arguments passés en paramètres par exemple).
Supposons qu’un pirate souhaite exploiter un buffer overflow au sein d'un serveur FTP en se connectant en tant qu'utilisateur anonyme avec un mot de passe de 500 caractères. Un moteur d'analyse protocolaire classifiera ceci comme événement suspect lié au protocole FTP avec une probabilité relativement bonne (à moins que l'on soit paranoïaque et que notre politique de sécurité impose des mots de passe très longs).

Il faut être toutefois prudent quand on associe les termes analyse de protocoles et conformité aux RFC. Certains IDS sont capables de détecter le buffer overflow et prétendent utiliser des techniques d'analyse protocolaire sans pour autant implémenter des vérifications de conformité aux RFC décrivant le protocole FTP.

Avantages de cette méthode :

Inconvénients de cette méthode :

Comparaison entre analyse de protocoles et pattern matching

Pour bien comprendre la différence entre analyse de protocoles et pattern matching, on peut utiliser l'analogie suivante:

Pour illustrer ce qui précède, examinons de plus près l'implémentation de méthodes de pattern matching et d'analyse protocolaire dans le cas de la détection du ver Slammer.
Une signature basée sur une méthode de pattern matching figure ci-dessous (il s'agit d'une règle utilisée par Snort):

alert udp $EXTERNAL_NET any -> $HOME_NET 1434 (\
msg : « W32.SQLEXP.Worm propagation »; \
content : « |68 2E 64 6C 68 65 6C 33 32 68 6B 65 72 6E| »; \
content : « |04 »; offset : 0; depth : 1;)

Si on observe l'implémentation de RealSecure, qui utilise essentiellement des méthodes d'analyse protocolaire, la règle prend la forme suivante :

SQL_SSRP_StackBo is
(
udp.dst = 1434
ssrp.type = 4
ssrp.name.length > 97
)
where ssrp.type is first-byte of packet
where ssrp.name is nul-terminated string starting at second byte

Les deux méthodes commencent d'abord par analyser les flux à destination du port UDP 1434. Dans les deux cas, la première vérification consiste à s'assurer que le premeir octet de données est « 04 ». Les similarités s'arrêtent ici : alors que la règle Snort recherche une chaîne spédcifique (mentionnée après le champ content), la règle de RealSecure teste plutôt une condition anormale décrite dans la signature.
RealSecure peut ainsi détecter une anomalie liée à des flux SQL sans connaître au préalable l'existence de l'att            que Slammer. Il sera en revanche incapable de donner à l'analyste des informations plus précises qui pourraient l'aider à établir un diagnostic. C'est la raison pour laquelle ISS a développé une seconde signature Slammer après que l'attaque fut rendue publique afin de fournir plus d'informations aux exploitants :

SQL_SSRP_SlammerWorm is
(
SQL_SSRP_StackBo
Pattern-search[offset = 97] = DCC9B042EB0E010101010101
)

D'un autre côté, Snort n'était pas capable de détecter l'attaque Slammer avant qu'elle ne soit découverte, la signature correspondant n'existant pas encore. En revanche, Snort fut capable après la mise à jour d'identifier et de communiquer de manière précise la nature de l'attaque de l'analyste.

REMARQUE

Le fait de disposer au préalable de la signature appropriée pour détecter une attaque est un faux problème. L'attaque Slammer en est une bonne illustration : le ver Slammer exploite une vulnérabilité de la base MS-SQL que microsoft avait identifiée et corrigée plus de 6 mois auparavant! Cela signifie que si l'administrateur du réseau n'a pas eu le temps d'appliquer le correctif dans ce laps de 6 mois, il est probable qu'il n'ait pas les ressources nécessaires pour gérer l'intrusion « en temps réel ». La mise à jour de la base de signature de l'IDS a posteriori ne pose donc pas de problèmes dans ce cas tant que l'éditeur est suffisamment réactif pour fournir la signature manquante. Et si on se base toujours sur l'exemple de Slammer, l'utilisateur a du procéder à une mise à jour des bases de signature de l'IDS après l'attaque, aussi bien avec des produits utilisant majoritairement l'analyse protocolaire (RealSecure) que ceux implémentant de préférence la comparaison de chaînes (Snort).