Présentation
Le filtrage vous permet de vous concentrer sur les ensembles de données exacts que vous souhaitez lire. Comme vous l'avez vu, Wireshark collecte tout par défaut. Cela peut entraver les données spécifiques que vous recherchez. Wireshark fournit deux outils de filtrage puissants pour cibler les données exactes dont vous avez besoin de manière simple et indolore.
Wireshark peut filtrer les paquets de deux manières. Il peut filtrer et ne collecter que certains paquets, ou les résultats des paquets peuvent être filtrés après leur collecte. Bien sûr, ceux-ci peuvent être utilisés conjointement les uns avec les autres, et leur utilité respective dépend de la nature et de la quantité de données collectées.
Expressions booléennes et opérateurs de comparaison
Wireshark a beaucoup de filtres intégrés qui fonctionnent très bien. Commencez à taper dans l'un des champs de filtre et vous les verrez se compléter automatiquement. La plupart correspondent aux distinctions les plus courantes qu'un utilisateur ferait entre les paquets. Filtrer uniquement les requêtes HTTP serait un bon exemple.
Pour tout le reste, Wireshark utilise des expressions booléennes et/ou des opérateurs de comparaison. Si vous avez déjà fait n'importe quel type de programmation, vous devriez être familier avec les expressions booléennes. Ce sont des expressions qui utilisent « et », « ou » et « non » pour vérifier la véracité d'une déclaration ou d'une expression. Les opérateurs de comparaison sont beaucoup plus simples. Ils déterminent simplement si deux choses ou plus sont égales, supérieures ou inférieures l'une à l'autre.
Filtrer la capture
Avant de plonger dans les filtres de capture personnalisés, jetez un œil à ceux que Wireshark a déjà intégrés. Cliquez sur l'onglet "Capturer" dans le menu supérieur et allez dans "Options". Sous les interfaces disponibles se trouve la ligne où vous pouvez écrire vos filtres de capture. Directement à sa gauche se trouve un bouton intitulé "Filtre de capture". Cliquez dessus et vous verrez une nouvelle boîte de dialogue avec une liste de filtres de capture prédéfinis. Regardez autour de vous et voyez ce qui s'y trouve.
Au bas de cette boîte, il y a un petit formulaire pour créer et enregistrer de nouveaux filtres de capture. Appuyez sur le bouton "Nouveau" à gauche. Il créera un nouveau filtre de capture rempli de données de remplissage. Pour enregistrer le nouveau filtre, remplacez simplement le remplissage par le nom et l'expression réels que vous souhaitez, puis cliquez sur "Ok". Le filtre sera enregistré et appliqué. À l'aide de cet outil, vous pouvez écrire et enregistrer plusieurs filtres différents et les préparer à être réutilisés à l'avenir.
Capture a sa propre syntaxe pour le filtrage. Pour comparaison, il omet et égale le symbole et utilise >
et pour plus et moins que. Pour les booléens, il s'appuie sur les mots "et", "ou" et "non".
Si, par exemple, vous vouliez seulement écouter le trafic sur le port 80, vous pourriez utiliser et des expressions comme celle-ci :port 80
. Si vous vouliez uniquement écouter sur le port 80 à partir d'une adresse IP spécifique, vous l'ajouteriez. port 80 and host 192.168.1.20
Comme vous pouvez le voir, les filtres de capture ont des mots-clés spécifiques. Ces mots-clés sont utilisés pour dire à Wireshark comment surveiller les paquets et lesquels regarder. Par exemple, host
est utilisé pour regarder tout le trafic d'une adresse IP. src
est utilisé pour examiner le trafic provenant de cette adresse IP. dst
en revanche, ne surveille que le trafic entrant vers une adresse IP. Pour surveiller le trafic sur un ensemble d'adresses IP ou un réseau, utilisez net
.
Filtrer les résultats
La barre de menu inférieure de votre mise en page est celle dédiée au filtrage des résultats. Ce filtre ne modifie pas les données collectées par Wireshark, il vous permet simplement de les trier plus facilement. Il y a un champ de texte pour entrer une nouvelle expression de filtre avec une flèche déroulante pour revoir les filtres précédemment entrés. À côté de cela se trouve un bouton marqué "Expression" et quelques autres pour effacer et enregistrer votre expression actuelle.
Cliquez sur le bouton « Expression ». Vous verrez une petite fenêtre avec plusieurs cases contenant des options. À gauche se trouve la plus grande boîte avec une énorme liste d'éléments, chacun avec des sous-listes supplémentaires réduites. Ce sont tous les différents protocoles, champs et informations que vous pouvez filtrer. Il n'y a aucun moyen de tout parcourir, alors la meilleure chose à faire est de regarder autour de vous. Vous devriez remarquer certaines options familières telles que HTTP, SSL et TCP.
Les sous-listes contiennent les différentes parties et méthodes sur lesquelles vous pouvez filtrer. C'est là que vous trouverez les méthodes de filtrage des requêtes HTTP par GET et POST.
Vous pouvez également voir une liste d'opérateurs dans les cases du milieu. En sélectionnant des éléments dans chaque colonne, vous pouvez utiliser cette fenêtre pour créer des filtres sans mémoriser chaque élément sur lequel Wireshark peut filtrer.
Pour filtrer les résultats, les opérateurs de comparaison utilisent un ensemble spécifique de symboles. ==
détermine si deux choses sont égales. >
détermine si une chose est supérieure à une autre, <
trouve si quelque chose est moins. >=
et <=
sont respectivement supérieurs ou égaux à et inférieurs ou égaux à. Ils peuvent être utilisés pour déterminer si les paquets contiennent les bonnes valeurs ou filtrer par taille. Un exemple d'utilisation de ==
pour filtrer uniquement les requêtes HTTP GET comme ceci :http.request.method == "GET"
.
Les opérateurs booléens peuvent enchaîner des expressions plus petites pour évaluer en fonction de plusieurs conditions. Au lieu de mots comme avec capture, ils utilisent trois symboles de base pour ce faire. &&
signifie "et". Lorsqu'elles sont utilisées, les deux instructions de part et d'autre de &&
doit être vrai pour que Wireshark filtre ces packages. ||
signifie « ou ». Avec ||
tant que l'une ou l'autre des expressions est vraie, elle sera filtrée. Si vous cherchiez toutes les requêtes GET et POST, vous pourriez utiliser ||
comme ceci :(http.request.method == "GET") || (http.request.method == "POST")
. !
est l'opérateur "non". Il recherchera tout sauf ce qui est spécifié. Par exemple, !http
vous donnera tout sauf les requêtes HTTP.
Réflexions finales
Filtrage Wireshark vous permet vraiment de surveiller efficacement votre trafic réseau. Il faut un certain temps pour se familiariser avec les options disponibles et s'habituer aux expressions puissantes que vous pouvez créer avec des filtres. Une fois cela fait, cependant, vous pourrez rapidement collecter et trouver exactement les données réseau que vous recherchez sans avoir à parcourir de longues listes de paquets ou à faire beaucoup de travail.