Diagnostic réseau et analyse des paquets  | NPMD | NETWALKER

Filtrer les paquets avec un sniffer

Filtrer les paquets avec un sniffer

Filtrer les paquets avec un sniffer

Filtrer les paquets avec un sniffer est une technique essentielle : Les filtres sont des outils très puissants qui permettent aux sniffers réseau d’être plus efficace.

Un filtre simple permettra d’isoler des paquets en fonction de multiples critères, mais une combinaison de filtres permet de réaliser des tâches bien plus complexes. Les filtres utilisés en combinaison avec les Triggers* d’OmniPeek permettent une analyse plus ciblée.

Par exemple, un client avait constaté qu’une grande part du trafic sur son réseau était du FTP. L’administrateur du réseau avait besoin de lancer la capture au démarrage de la session FTP depuis un poste spécifique. Une fois la capture lancée, il souhaitait capturer tout le trafic FTP échangé par ce poste et stopper la capture à la fin de la transaction FTP.

La problématique est ici que le poste client utilise 2 ports réseau : port 21 pour la gestion et le contrôle de la connexion et le port 20 pour les données.

En plus, pour disposer de l’ensemble de la session FTP, il faut surveiller pour intercepter un paquet TCP SYN provenant du poste depuis le port 21 qui initie l’échange.

Il faut ensuite capturer tout le trafic FTP Control (port 21) et FTP Data (port 20).

Enfin, il faut stopper la capture lors l’un ou l’autre du poste client ou du poste serveur transmet un TCP FIN ou RST sur le port 21.

Au final cette tâche demande la construction de 3 filtres dont 2 seront utilisés comme trigger.

Filtrer les paquets avec un sniffer

 

Note : Cette technique prise en exemple, ne fonctionne qu’avec des sessions FTP en mode Actif. Dans les transaction FTP Actives, le poste client initie la connexion depuis le port 21, et le serveur initie le transfert des données sur le port 20. Lorsqu’il s’agit de FTP passif, le client initie les 2 connexions et les données ne sont pas transmises sur le port 20 mais sur un port éphémère aléatoire qu’il est impossible de deviner. Il n’est donc pas possible d’utiliser la technique décrite ici pour des transfert utilisant le mode FTP Passif.

 

Détecter le début de la transaction

Pour cela il faut créer un filtre de détection du paquet TCP SYN depuis le poste client vers le port 21 du serveur. Dans cet exemple, le poste client utilise l’adresse IP 10.10.10.100.

Le filtre va prendre en compte l’adresse TCP/IP (10.10.10.100), le port IP (21) et une valeur spécifique dans le paquet lorsque le flag TCP SYN est à 1. Le filtre sur l’adresse TCP/IP doit spécifier que le paquet est émis par le poste client (Address 1 to 2)

Identifier le paquet TCP SYN du FTP

Note : l’offset indiqué ne concerne que les paquets Ethernet type II. La valeur doit être ajustée pour les réseau sans fil.

Ce filtre servira de Trigger de début de capture : lorsque le poste dont l’adresse IP 10.10.10.100 enverra un paquet TCP SYN sur le port 21 … la capture des paquets commencera.

 

Capturer les données de la transaction FTP

Le second filtre doit capturer les données provenant de l’adresse TCP/IP 10.10.10.100 et utilisant les ports 20 ou 21. Cette fois-ci nous mettrons “Both” dans le sens des échanges liées à l’adresse IP.

Filtrer les paquets échangés avec le poste sur les ports 20 et 21

 

Détecter la fin de transaction pour stopper la capture

Le troisième filtre permettra de stopper la capture des paquets. Il est similaire au premier, mais la condition doit être soit un flag TCP FIN soit un flag TCP RST. Nous devons donc utiliser la condition logique ‘ou’ (OR). Les 2 flags utilisent un offset de 47 pour les paquets ethernet.

  • La première condition cherche le flag FIN et utilise un masque et une valeur qui sont 0x01.
  • La seconde cherche le flag RTS (reset) et utilise la valeur 0x04.

Nous utiliserons à nouveau “Both” dans le sens des échanges liées à l’adresse IP.

Détecter la fin de la transaction FTP avec l'apparition des flags RTS ou SYN FIN

Utiliser les filtres et les triggers pour capturer les données

La suite est simple, puisqu’il s’agit de configurer une capture avec

  • comme trigger de démarrage le filtre 1,
  • comme filtre de capture le filtre 2,
  • comme trigger de fin le filtre 3.

De la sorte OmniPeek commencera à capturer des paquets lorsque la sessions FTP sera initialisée depuis le poste client, capturera l’ensemble des paquets de la transaction et stoppera la capture des données à la fin de l’échange.

Si vous souhaitez capturer toutes les sessions FTP du poste, n’oubliez pas de cocher “Repeat” (Répéter) quand vous configurez le trigger de démarrage la capture.

Comme vous l’avez vu, les filtres permettrent au sniffer OmniPeek de réaliser des captures chirurgicales qui en plus d’économiser votre espace de stockage vous permettrons de vous concentrer sur vos données cibles.

Avec un peu de pratique vous allez pouvoir mettre en oeuvre des filtres de plus en plus puissants pour simplifier votre travail …

 

Cet billet est librement inspiré de l’article : “Two (or More) Filters Are Better Than One” de l’éditeur.

Le Sniffer OmniPeek est distribué en France par NetWalker. Plus d’informations sur OmniPeek ici.

Ce billet s’applique également à la sonde Savvius Insight de monitoring du traffic internet

Tarifs et achat en ligne : OmniPeek Professionnal, OmniPeek Enterprise, Savvius Insight


  • un trigger est une condition de démarrage ou de fin d’une capture de paquets. Ce peut être par exemple une date et une heure ou un filtre préalablement défini.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

%d blogueurs aiment cette page :