Fotolia
Comment utiliser Wireshark pour analyser le trafic réseau
Wireshark est un outil essentiel pour les administrateurs réseau et les équipes responsables de la sécurité informatiques. Cet article explique comment s’en servir.
En matière de sécurité, les outils qui nous offrent la meilleure visibilité sont souvent les plus puissants et les plus utiles. Wireshark est l'un des principaux outils permettant d'obtenir une visibilité au niveau du réseau. Il a été et reste l'un des outils les plus puissants de la boîte à outils des analystes en sécurité réseau, même si ceux-ci ne sont pas les seuls professionnels à tirer profit de Wireshark.
L’équipe responsable des opérations de sécurité, les architectes de sécurité et les intervenants en cas d'incident qui savent utiliser Wireshark peuvent en tirer un avantage considérable et décisif.
Qu'est-ce que Wireshark ?
Wireshark est un analyseur de protocole réseau, parfois appelé analyseur de paquets, conçu pour fournir une visibilité sur le trafic réseau survenant sur un réseau ou entre des machines. Il nous permet d'examiner le trafic réseau, ethernet filaire comme wifi, et de l'étudier en détail, à différents niveaux, depuis les informations de connexion jusqu'aux bits constituant un paquet en particulier, en séparant les données utiles contenues dans les paquets. Wireshark nous permet également de visualiser les informations à plusieurs niveaux de la pile réseau, afin d'isoler, d'identifier et de déboguer les connexions réseau depuis les couches les plus basses de l’infrastructure jusqu'à l’application.
Wireshark a de nombreuses utilités :
- Déboguer les défaillances de connectivité et résoudre les problèmes dans le cadre d’une administration réseau.
- Enquêter sur les incidents de sécurité survenus en examinant les outils, techniques et procédures utilisés par un attaquant.
- Examiner en profondeur les communications dans le cadre d’une recherche des menaces.
- Aider à affiner les contrôles et les réglages d’outils comme les systèmes de détection d'intrusion (IDS) ou les pare-feu d'applications web.
- Écouter les communications, rechercher des données sensibles en cours d’échange ou obtenir des informations sur l'environnement réseau dans le cadre d’une simulation d’attaque visant à tester la sécurité du réseau.
Certes, de nos jours, le trafic réseau est de plus en plus chiffré. Cependant, de nombreuses informations pertinentes sont encore accessibles. Il en va ainsi de la transmission du trafic - l'adressage, le routage et de nombreux autres éléments permettant d'acheminer les paquets du point A au point B – qui reste accessible. En l’occurrence, le trafic réseau est délibérément structuré en couches. Les modèles Open Systems Interconnection et TCP/IP se composent respectivement de sept ou quatre couches distinctes, qui peuvent être visualisées et étudiées séparément. Même quand les niveaux supérieurs sont chiffrés, les niveaux inférieurs fournissent toujours des indices, notamment sur les problèmes de sécurité.
Gardez à l'esprit qu’il est difficile, du point de vue d'un attaquant, de rendre son activité invisible à quelqu'un qui la recherche activement. La flexibilité et la profondeur d'inspection offertes par Wireshark permettent d'analyser les événements de sécurité et de résoudre les problèmes liés aux dispositifs de sécurité réseau avec autant d'efficacité aujourd'hui qu'auparavant. C'est l'une des principales raisons pour lesquelles Wireshark a été et continue d'être l'un des outils les plus utilisés et les plus fiables. Par ailleurs, Wireshark étant Open source, soit à la fois gratuit et libre d’utilisation, vous pouvez vous le procurer et commencer à l'utiliser dès aujourd'hui.
Utilisez Wireshark de manière responsable
Attention : Wireshark est un outil important pour les professionnels de la cybersécurité lorsqu'il est utilisé de manière éthique et légale. Cependant, les acteurs malveillants utilisent également Wireshark pour causer des dommages ou pour mener des activités illégales et contraires à l'éthique. Il vous incombe de l'utiliser de manière éthique et responsable. Ne vous en servez pas tant que vous n'êtes pas certain que l'utilisation que vous comptez en faire est légale. Prenez les mesures nécessaires pour vous assurer que vous respectez les directives éthiques. Cela implique notamment de respecter la loi et les politiques de votre entreprise.
Dans de nombreuses entreprises, une politique qui définit les droits des utilisateurs sur le réseau est en vigueur. Elle précise les conditions dans lesquelles la surveillance du trafic réseau est acceptable et encadre l'analyse ainsi que la conservation des échantillons de trafic réseau. Si la politique exige une autorisation, qu’il s’agisse des droits d’accès techniques ou de la signature des équipes de direction, obtenez-la.
Installation et première utilisation de Wireshark
Commencez par télécharger les packages d'installation pour Windows, macOS ou Linux. Sur la plupart des plateformes, Wireshark dépend d'une bibliothèque de capture de paquets correspondante. Les utilisateurs de Windows sont invités à installer WinPcap s'il n'est pas déjà présent sur le système. Sous Linux et autres Unix, et en supposant que vous utilisiez un gestionnaire de paquets moderne, l’installation de libpcap est automatique.
Une fois installé, lancez Wireshark. L'une des premières choses que vous voyez est un écran affichant les différentes interfaces réseau du système, ainsi qu'un graphique indiquant l'activité réseau sur chaque interface réseau. Notez que, dans le contexte Linux en particulier, la capture de paquets de bas niveau nécessite généralement un accès root. Par conséquent, il peut vous être demandé d'élever les permissions à root sous Linux.
La capture d'écran suivante montre plusieurs interfaces réseau. Beaucoup sont des interfaces câblées et internes qui n'ont aucune activité, comme l'indiquent les lignes plates. L'interface réseau supérieure, une interface wifi, montre une activité, comme l'indique la ligne ondulée.
Double-cliquez sur l'interface réseau qui se connecte au réseau que vous souhaitez capturer. Wireshark ouvre une fenêtre pour afficher les paquets transmis sur le réseau. Wireshark offre de nombreuses options pour gérer les filtres d'affichage.
Dans le volet supérieur, illustré dans la capture d'écran ci-dessous, Wireshark affiche les informations provenant des en-têtes de chaque paquet, y compris, par défaut, un index temporel indiquant le temps écoulé entre le début de la capture et le moment où le paquet a été analysé. Vous pouvez ajuster le format de l'heure et enregistrer les données du minuteur avec la capture afin de récupérer l'heure réelle à laquelle un paquet analysé a été envoyé.
Les adresses IP source et destination du paquet, le protocole utilisé, la longueur du paquet et des informations sur le paquet sont également affichés. Vous pouvez approfondir votre recherche et obtenir plus d'informations en cliquant sur une ligne pour afficher les détails du paquet en question.
Le volet central contient des détails approfondis sur le paquet sélectionné dans le cadre supérieur. Sélectionnez les icônes > affichées à gauche pour afficher différents niveaux de détail sur chaque couche d'informations contenue dans le paquet. Voici, par exemple, l'en-tête Ethernet d'un paquet individuel.
Cet en-tête nous indique les adresses MAC source et destination, ainsi que l'identité du protocole suivant dans la pile : IPv6. Nous pouvons ensuite examiner l'en-tête IPv6.
Nous trouvons ici les adresses IP source et destination, ainsi que des informations spécifiques à l'IP. À l'instar des couches d'un oignon, nous pouvons naviguer vers le haut et vers le bas de la pile en observant les informations détaillées relatives à chaque couche. De même, nous pouvons naviguer dans les protocoles qui se chevauchent. L'image ci-dessus représente l'IPv6 ; celle ci-dessous une vue de l'IPv4.
Nous pouvons également consulter des informations sur les protocoles de niveau supérieur, tels que TCP.
Cet en-tête comprend des informations sur les ports TCP source et destination, les indicateurs définis sur le paquet et d'autres détails utiles pour le dépannage.
Le volet inférieur est un affichage hexadécimal qui montre le contenu numérique du paquet lui-même. La mise en surbrillance de l'une des données affiche les détails du protocole dans le volet central, comme le montre la capture d'écran ci-dessous.
Une fonctionnalité utile de Wireshark est qu'il vous aide à trouver les informations les plus pertinentes dans les différents protocoles que vous examinez à l'aide de l'outil. Par exemple, la capture d'écran suivante illustre le scénario, moins courant de nos jours, de l'accès à un site HTTP uniquement ; dans ce cas neverssl.com. On y voit les informations brutes sur le trafic au niveau de l'application.
Modifier les options de capture
Bien qu'il soit simple d'effectuer une capture basique de paquets dans Wireshark, l'outil permet aux utilisateurs de modifier plusieurs options afin d'ajuster leur capture. Vous pouvez accéder à ces options en cliquant sur l'icône Capture Options en forme d'engrenage dans la barre d'outils, comme illustré ci-dessous.
Cliquez sur ce bouton pour ouvrir la fenêtre Capture Interfaces, qui comporte trois onglets. L'onglet Input vous permet de modifier les interfaces Wireshark et d'activer le mode promiscuous. Ce mode permet à l'interface de capturer le trafic réseau qui n'est pas spécifiquement destiné à votre système de capture.
L'onglet Output (Sortie) contrôle l'emplacement où Wireshark stocke les paquets qu'il capture. Vous pouvez stocker automatiquement les paquets capturés dans un fichier et modifier le format de ce fichier, ou vous pouvez créer un fichier en fonction de la quantité de données capturées ou du temps écoulé.
L'onglet Options propose différents choix pour l'affichage des paquets et des options pour les noms MAC et DNS, ainsi que pour limiter la taille des captures de paquets. Certaines de ces options peuvent contribuer à améliorer les performances de Wireshark. Par exemple, vous pouvez ajuster les paramètres pour éviter les problèmes de nom, car ceux-ci ralentissent votre système de capture et génèrent de nombreuses requêtes de nom. Les limites de temps et de taille peuvent également imposer des restrictions sur les captures sans surveillance.
Interpréter et analyser le contenu des paquets
La fonctionnalité d'analyse la plus utile de Wireshark est sans doute celle des filtres, qui aident véritablement à retrouver une aiguille dans une botte de foin. Il est pratiquement impossible d'obtenir les bonnes données sans les filtres appropriés sur un réseau, même de taille moyenne, sans parler d'un réseau très fréquenté ou de grande taille.
Comment configurer un filtre d'affichage Wireshark ? Wireshark dispose de plusieurs types de filtres. Vous pouvez trier les données capturées à l'aide d'un filtre d'affichage. Comme son nom l'indique, ce filtre limite ce qui s'affiche à l'écran. Cette petite zone d'édition d'apparence anodine est sans doute le contrôle le plus puissant de tout l'outil. Le but d'un filtre d'affichage est de faciliter l'analyse.
Vous pouvez spécifier ce que vous souhaitez voir, ni plus ni moins. Le filtre le plus simple consiste à limiter le ou les protocoles affichés. Par exemple, en saisissant « tls » dans la barre de filtre, vous limitez les résultats au seul trafic TLS.
Les filtres peuvent être beaucoup plus complexes que cela. L'exemple ci-dessous limite l'affichage aux résultats où le port TCP est 443 et le numéro de séquence TCP est 499.
Les résultats du filtre sont présentés ci-dessous.
La configuration d'un filtre relève quelque peu de l'art. Wireshark tente de vous aider à trouver ce que vous recherchez en vous suggérant comment compléter votre expression de filtre. Par exemple, si vous tapez « ip » dans la barre de filtre, Wireshark préremplit les propriétés ou sous-éléments possibles de l'IP qui pourraient être pertinents. De même, si vous tapez « tcp », Wireshark préremplit les sous-éléments du TCP.
Le contrôle du filtre d'affichage change en fonction de la validité de la requête. Dans les exemples ci-dessus, la couleur d'arrière-plan de la zone de filtre est passée du blanc (vide) au vert une fois le filtre défini. Le vert signifie que le filtre est syntaxiquement correct. Si vous spécifiez quelque chose que Wireshark ne peut pas interpréter, l'arrière-plan devient rouge, comme le montre ce filtre délibérément absurde. Cela signifie que le filtre demandé est syntaxiquement invalide ou que l'outil ne peut pas analyser la requête.
La fonctionnalité de changement de couleur de la boîte de filtre est particulièrement importante, car les filtres peuvent devenir complexes en fonction de ce que vous recherchez. On voit souvent des filtres créés à l'aide d'une syntaxe concise de type C, où les expressions ne sont pas obligatoires. Pour créer des filtres, vous pouvez utiliser des opérations logiques, telles que AND (&&), OR (||), NOT (!) et même XOR (^^). Vous pouvez effectuer des comparaisons, comme égal à (==), différent de (!=), supérieur à (>), supérieur ou égal à (>=), etc.
Si de nombreux administrateurs préfèrent utiliser la syntaxe de type C pour des raisons de précision, de concision et de clarté, une syntaxe alternative de type anglais est disponible, similaire aux instructions conditionnelles dans bash, avec ne indiquant « non égal », eq indiquant « égal », le indiquant « inférieur ou égal », etc.
Considérez le filtre ci-dessous qui utilise ne (non égal) dans une syntaxe de type anglais.
Notez également que, dans cet exemple, la couleur d'arrière-plan est passée au jaune. Cela signifie que le filtre est fonctionnel, mais que Wireshark nous avertit qu'il est ambigu d'une certaine manière et qu'il pourrait donc ne pas fonctionner comme prévu. Examinez attentivement les filtres jaunes et modifiez-les si nécessaire. Parfois, cela signifie que vous avez l'intention de faire ce que vous avez spécifié, mais cela peut aussi indiquer une faute de frappe ou un autre problème syntaxique.
Comment configurer un filtre de capture Wireshark ? Un filtre de capture limite ce que l'outil capture au départ. C’est utile lorsque vous souhaitez limiter la taille des données capturées au trafic spécifique qui vous intéresse. C’est particulièrement utile pour les captures de longue durée d'un trafic spécifique, sur une période prolongée.
Pour y accéder, sélectionnez Filtres de capture (Capture Filters) dans le menu Capture.
Alors qu'un filtre d'affichage a pour objectif de faciliter l'analyse (et est donc polyvalent et flexible), un filtre de capture a un objectif différent. Son objectif est de limiter l'espace de stockage utilisé pour enregistrer les captures. La syntaxe et le niveau de complexité ne sont donc pas les mêmes. Les filtres de capture utilisent une syntaxe différente, beaucoup plus légère que celle utilisée pour définir les filtres d'affichage.
Il est utile de connaître la différence entre les filtres d'affichage et les filtres de capture. Vous pouvez accomplir beaucoup de choses en maîtrisant parfaitement l'un ou l'autre, mais savoir quand et comment les utiliser est essentiel pour maîtriser l'outil Wireshark et constitue un énorme avantage à long terme.
