9.3. IDS basé sur le réseau

Les systèmes de détection d'intrusions basés sur le réseau fonctionnent différemment des IDS basés sur l'hôte. La philosophie de conception d'un IDS basé sur le réseau est de scanner les paquets réseau au niveau de l'hôte ou du routeur, analysant les informations de paquets et enregistrant tous les paquets suspects dans un fichier journal spécial avec des informations détaillées. Selon ces paquets suspects, un IDS basé sur le réseau peut scanner sa propre base de données de signatures d'attaques réseau connues et assigner un niveau de sévérité pour chaque paquet. Si les niveaux de sévérité sont assez élevés, un message électronique d'avertissement ou un appel de pager est envoyé aux membres de l'équipe de sécurité afin qu'ils puissent étudier plus en profondeur la nature de l'anomalie.

Les IDS basés sur le réseau sont devenus populaires avec l'internet grandissant en taille et trafic. Les IDS qui peuvent scanner les quantités volumineuses d'activités réseau et marquer avec succès les transmissions suspectes, sont accueillis dans le domaine de la sécurité. Les protocoles TCP/IP n'étant peu sûrs de nature, il est devenu impératif de développer des scanneurs, des renifleurs et d'autres outils d'analyse de réseau et de détection pour éviter les brèches de sécurité provenant d'activités réseau malveillantes comme :

La plupart des IDS basés sur le réseau nécessitent que le périphérique réseau du système hôte soit en mode promiscuous, qui permet au périphérique de capturer tous les paquets passés sur le réseau. Le mode promiscuous peut être configuré grâce à la commande ifconfig, comme par exemple :

ifconfig eth0 promisc

L'exécution de ifconfig sans options révèle que eth0 est maintenant en mode promiscuous (PROMISC).

eth0      Link encap:Ethernet  HWaddr 00:00:D0:0D:00:01  
          inet addr:192.168.1.50  Bcast:192.168.1.255  Mask:255.255.252.0
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:6222015 errors:0 dropped:0 overruns:138 frame:0
          TX packets:5370458 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:2505498554 (2389.4 Mb)  TX bytes:1521375170 (1450.8 Mb)
          Interrupt:9 Base address:0xec80 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:21621 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21621 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1070918 (1.0 Mb)  TX bytes:1070918 (1.0 Mb)

À l'aide d'un outil tel que tcpdump (inclus dans Red Hat Enterprise Linux), nous pouvons voir les grandes quantités de trafic traversant un réseau :

tcpdump: listening on eth0
02:05:53.702142 pinky.example.com.ha-cluster > \
 heavenly.example.com.860:  udp 92 (DF)
02:05:53.702294 heavenly.example.com.860 > \
 pinky.example.com.ha-cluster:  udp 32 (DF)
02:05:53.702360 pinky.example.com.55828 > dns1.example.com.domain: \
 PTR? 192.35.168.192.in-addr.arpa. (45) (DF)
02:05:53.702706 ns1.example.com.domain > pinky.example.com.55828: \
 6077 NXDomain* 0/1/0 (103) (DF)
02:05:53.886395 shadowman.example.com.netbios-ns > \
 172.16.59.255.netbios-ns: NBT UDP PACKET(137): QUERY; BROADCAST
02:05:54.103355 802.1d config c000.00:05:74:8c:a1:2b.8043 root \
 0001.00:d0:01:23:a5:2b pathcost 3004 age 1 max 20 hello 2 fdelay 15 
02:05:54.636436 konsole.example.com.netbios-ns > 172.16.59.255.netbios-ns:\
 NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
02:05:56.323715 pinky.example.com.1013 > heavenly.example.com.860:\
 udp 56 (DF)
02:05:56.323882 heavenly.example.com.860 > pinky.example.com.1013:\
 udp 28 (DF)

Remarquez que les paquets qui ne sont pas destinés à votre machine (pinky.example.com) sont quand même analysés et enregistrés par tcpdump.

9.3.1. Snort

Alors que tcpdump est un outil d'analyse utile, il n'est pas considéré comme un véritable IDS parce qu'il n'analyse et ne marque pas les paquets contre des anomalies. tcpdump affiche toutes les informations de paquets à l'écran ou les écrit dans un fichier journal sans aucune analyse. Un vrai IDS analyse les paquets, marque les transmissions de paquets malveillantes potentielles et les stocke dans un journal formaté.

Snort est un IDS conçu pour être détaillé et précis lorsqu'il enregistre avec succès les activités réseau malveillantes et prévient les administrateurs lors de brèches potentielles. Snort utilise la bibliothèque libcap standard et tcpdump en tant qu'infrastructure de journalisation de paquets.

La caractéristique la plus prisée de Snort, en plus de sa fonctionnalité, est son sous-système flexible de signatures d'attaques. Snort possède une base de données d'attaques constamment mise à jour qui peut être ajoutée et mise à jour via l'internet. Les utilisateurs peuvent créer des signatures basées sur de nouvelles attaques réseau et les soumettre aux listes de diffusion de signatures Snort (situées à l'adresse suivante http://www.snort.org/lists.html), afin que tous les utilisateurs Snort puissent en bénéficier. Cette éthique de communauté de partager a amené Snort à devenir l'un des IDS basés sur le réseau les plus robustes et mis à jour disponibles.

NoteRemarque
 

Snort n'est pas inclus dans Red Hat Enterprise Linux et n'est pas supporté. Il a été inclus dans ce document en tant que référence pour les utilisateurs intéressés.

Pour de plus amples informations sur l'utilisation de Snort, veuillez consulter le site Web à l'adresse suivante : http://www.snort.org/.