Graphique de flux réseaux avec Wireshark
Sommaire
I. Wireshark : outil de capture réseaux
Lorsque l'on parle d'outils de capture et d'étude de flux réseaux, Wireshark est probablement l’outil le plus connu et le plus utilisé, il contient en effet un nombre impressionnant de fonctionnalités et sait traiter la plupart des protocoles réseaux d'aujourd'hui ou d'hier (voir tous). Aujourd'hui, nous allons aborder une fonction bien spécifique de Wireshark qui est le tracer de graphique à partir des captures réseaux. Nous essaierons de faire le tour des possibilités de cette fonction et de voir à quoi elle peut nous servir.
Pour suivre cet article, il faut que vous ayez déjà une installation de Wireshark opérationnelle et que vous ayez une capture réseau à disposition (faite en direct ou via l'importation d'un fichier .pcap). Pour information, je travaille pour ce tutoriel sur Wireshark 1.12.2.
II. IO Graph Wireshark
Une fois la capture faite, l'utilisation de la fonction de IO Graph est très simple. Il suffit d'aller dans le menu "Statistics" puis "IO Graph" :
Une nouvelle fenêtre va alors apparaître et le graphique de votre capture réseau va alors se dessiner (cela peut être instantané ou peut prendre quelques minutes selon la taille de votre capture et la puissance de votre poste) :
III. IO Graph, Filtres et paramètres des axes X,Y
A partir de cette première courbe, on va pouvoir effectuer différentes actions dans le but de montrer uniquement ce qui nous intéresse. On va en effet pouvoir faire varier les données de temps et de mesure, les couleurs des données et surtout appliquer des filtres pour "trier" nos informations. Cela est particulièrement utile dans des contextes où l'on cherche par exemple à évaluer la quantité de flux réseaux entre deux machines ou sur un protocole précis.
En bas à droite de la fenêtre, on pourra voir le paramétrage des axe X (Horizontal) et Y (Vertical) :
Dans "X Axis", on pourra gérer la précision d'affichage de nos données en modifiant l’intervalle entre les points formant la courbe affichée et le nombre de pixel entre chaque point par "tranche" (c'est à dire entre deux barres de marquage) :
On peut alors avoir un affichage extrêmement précis, comme c'est le cas ici, un intervalle entre deux points consécutif représente 0.001 seconde :
On pourra également retrouver un affichage en temps depuis le début de l'analyse ou alors afficher l'heure de la prise de capture en cochant/décochant "View as time of day".
Dans "Y Axis", on pourra gérer l'unité de l'axe vertical qui pourra être :
- Packets/ticks : en nombre de paquets
- Bytes/ticks : en octets
- Bits/ticks : en bits
- Advanced : permet d'effectuer des filtrages plus avancés
On pourra également gérer l'échelle. Cela permet en général sur un même graphique d'avoir une vue générale du graphique et également, si on le souhaite, une vue très précise sur des petites valeurs. Enfin, nous pourrons également gérer le lissage de façon plus ou moins forte :
On voit ici le lissage d'un même graph sur en M.avg 4 (gauche) et m.avg 32 (droite)
Il est aussi possible de représenter les données selon plusieurs formes, on va par exemple pouvoir dessiner une courbes, n'afficher que les points, afficher un histogramme... Voici les différents exemples de représentation des données :
- Line
- FBar
- Impulse
- Dot
On peut également selon les filtres (que nous allons voir juste après) mettre plusieurs représentations de graphique en même temps :
Gestion des filtres
Justement ! Passons à l'élément le plus intéressant : Les filtres
Les filtres sont une notion bien connue de ceux qui ont ne serait-ce que de toutes petites bases de Wireshark. Bien que leur syntaxe puissent être assez complexe (parfois), leur utilité est criante : réduire la montagne de paquets capturés par des filtres qui permettent de n'afficher que ce qui nous intéresse. Les filtres peuvent être utilisés dans les graphs de la même façon que dans l’utilisation "normale" de Wireshark. Voici par exemple le filtre que je vais utiliser si je souhaite avoir une courbe ne représentant que mon trafic HTTP :
Si je souhaite maintenant également voir la consommation sur du protocole DNS sur mon flux capturé, je rajoute simplement "DNS" qui est un filtre existant pré-configuré dans Wireshark, dans "Graph 3" :
Je vois alors qu'il n'y a pas assez de trafic DNS pour que celui-ci soit visible, je passe alors la ligne "Graph 3" en "Dot" qui rend les captures plus visibles et je réduis l'échelle de l'Axe Y (c'est l'occasion de revoir ce qui a été vu plus haut dans le tutoriel 😉 ). Vous avez alors la vue avec l'échelle "Auto" à gauche et la vue avec l'échelle plus petite à droite, on voit alors directement l'intérêt de pouvoir régler l'échelle à certains moment.
Revenons à nos filtres ! Admettons que je veuille maintenant savoir quel autre protocole UDP que DNS a été capturé, je peux certes faire une règle du type "!dns", mais on pourrait également très bien mettre la règle "!tcp" dans le "Graph 4", on verra alors ce qui est UDP DNS et ce qui est UDP autre chose et faire une comparaison. Le Graph 4 sera affiché en bleu sous la forme d'un "Line" :
Je vois alors instantanément que la quasi totalité de mes paquets UDP étaient du protocole DNS car chaque pique bleu est formé par un point vert, je peux également déterminer à tel instant (admettons à la seconde 20) combien le DNS a consommé de bande passante car j'ai réglé mon axe Y (verticale) sur "Byte/trick" (octets), en l’occurrence à la seconde 20, 2,5 ko (2500 octets).
Nous avons fait a peu près le tour de cette fonctionnalité très pratique de Wireshark ! Au travers différents exemples nous avons vu tout ce qui pouvait être réglé et paramétré pour faire nos graphiques bien que la seul véritable limite soit les nombreux contextes d'utilisation que l'on peut trouver à Wireshark, l'utilisation des filtres rend l'IO Graph utilisable pour tout ce qui peut être capturé dans Wireshark !
Bonjour,
J’ai vu passer ce lien dans mon flux LinkedIn et je découvre ce bon tuto sur Wireshark que j’utilise très régulièrement pour analyser du flux audio en ToIP. Je mets ce billets dans mes favoris et je me suis abonné au flux RSS pour ne pas rater les prochains articles. Merci pour le partage 😉
A bientôt.
Merci de votre passage, je suis sur que beaucoup de nos sujets vous intéresserons 😉
A bientôt ! 🙂
Merci pour ce tuto, très sympa ces petits graphs !
vraiment bien, merci pour l’article 🙂 on en veut bien un ou deux autres sur l’utilisation de wireshark 🙂
je met votre site dans mes favoris 🙂
bonne soirée
RM
Bonjour tout le monde, je suis étudiant en licence 2 Sécurité de l’information au Sénégal. J’ai un projet d’un mois sur l’administration du sniffer Wireshark et je serai très ravi que vous me donniez un coup de main.