12 analyseurs de paquets réseau pour les administrateurs système et les analystes de la sécurité
Votre infrastructure réseau est cruciale pour le bon déroulement de vos activités commerciales. Il est donc essentiel de surveiller attentivement ce qui s'y passe.
Le monde des entreprises numériques a connu des transformations considérables. Des simples scripts CGI en Perl, nous sommes passés à des déploiements entièrement automatisés en clusters sur Kubernetes et d'autres plateformes d'orchestration. (Désolé pour le jargon technique, mais c'est la réalité actuelle!).
Cependant, il est intéressant de noter que les principes fondamentaux restent inchangés depuis les années 1970.
Nous avons affaire à des abstractions empilées les unes sur les autres, reposant sur une infrastructure câblée physique qui constitue le réseau. (Bien sûr, il existe des réseaux virtuels, mais vous comprenez l'idée). Si l'on veut approfondir, on peut segmenter le réseau en couches selon le modèle OSI. Cependant, nous utilisons toujours les protocoles TCP/IP, les pings, les routeurs, tous ayant un seul objectif : le transfert de paquets de données.
Qu'est-ce qu'un paquet réseau?
Qu'il s'agisse de chatter, de regarder des vidéos, de jouer à des jeux, de naviguer ou de faire des achats en ligne, tout se résume à un échange de paquets de données entre deux ordinateurs (ou réseaux). Un "paquet" représente la plus petite unité d'information qui transite sur un réseau. Il existe des règles bien établies pour leur création et leur validation. (C'est un sujet complexe que nous n'aborderons pas ici, mais vous pouvez explorer ceci si vous le souhaitez).
En termes simples, chaque paquet est un maillon de la chaîne, transmis correctement à la source et vérifié à destination. Même si un seul paquet est manquant ou désordonné, le processus est suspendu jusqu'à ce que tous les paquets soient reçus dans le bon ordre. Ils sont ensuite réassemblés pour former les données originales (comme une image).
Maintenant que nous comprenons ce qu'est un réseau, il est temps d'examiner le rôle d'un analyseur de réseau : c'est un outil qui vous permet d'examiner chaque paquet individuellement.
Mais pourquoi vouloir le faire ? C'est ce que nous allons explorer ensuite.
Pourquoi analyser les paquets?
Les paquets sont les éléments de base du flux de données réseau, tout comme les atomes sont les éléments constitutifs de la matière (je sais que ce ne sont pas des particules fondamentales, mais l'analogie est pertinente). Or, lorsqu'on analyse des matières ou des gaz, on ne s'intéresse pas au comportement d'un seul atome. Alors, pourquoi s'intéresser à un seul paquet réseau? Qu'apprendrait-on que nous ne sachions déjà?
Il est difficile de convaincre de l'importance de l'analyse au niveau des paquets tant qu'on n'a pas rencontré de problèmes concrets. Je vais essayer de vous éclairer sur ce point.
L'analyse des paquets implique de plonger au cœur du système pour comprendre un problème. On y a recours généralement lorsque toutes les autres méthodes ont échoué. Cela englobe souvent des situations difficiles, telles que :
- Perte inexpliquée de données confidentielles, sans signe apparent d'intrusion
- Diagnostic d'applications lentes malgré l'absence de preuve concrète
- Vérification de l'intégrité de votre ordinateur/réseau
- Confirmation ou réfutation d'une utilisation non autorisée de votre réseau WiFi
- Détermination de la cause d'un goulot d'étranglement serveur, même en cas de faible trafic
L'analyse des paquets apporte des preuves tangibles. Si vous savez comment réaliser une telle analyse et que vous disposez d'une capture d'écran, vous pouvez éviter d'être faussement accusé d'un piratage ou d'être désigné comme un développeur ou administrateur réseau incompétent.
Pour illustrer cela, voici un témoignage tiré d'un blog (que vous pouvez retrouver ici) :
"Une application essentielle pour mon entreprise rencontrait des problèmes de performance et plantait chez nos clients. Il s'agissait d'une application de cotation boursière utilisée dans les salles des marchés des entreprises financières du monde entier. Si vous aviez un 401(k) autour de l'an 2000, il est probable que cette application l'ait pris en compte. J'ai effectué une analyse similaire à celle que vous avez décrite, en examinant en particulier le comportement de TCP. J'ai découvert que le problème résidait dans l'implémentation de TCP du fournisseur du système d'exploitation. Le bug était que, lorsque la pile d'envoi passait en contrôle de congestion, elle ne récupérait jamais, ce qui se traduisait par une fenêtre d'envoi ridiculement petite, parfois seulement quelques multiples de MSS."
"Il a fallu beaucoup d'efforts pour convaincre les responsables de comptes et les développeurs du fournisseur du système d'exploitation qui ne comprenaient ni le problème, ni mon explication, ni le fait que le problème *ne pouvait pas* être dans l'application, car l'application ne se souciait pas des mécanismes TCP. C'était un dialogue de sourds. Je devais tout réexpliquer à chaque appel. Finalement, j'ai réussi à avoir une discussion fructueuse avec un technicien qui avait mis en place les extensions RFC1323 dans la pile ! Le lendemain, j'avais un correctif pour le système d'exploitation et le produit fonctionnait à nouveau parfaitement."
Le développeur a expliqué que le bug était dû au fait que les ACK entrants *avec charge utile* étaient incorrectement classés comme DUPACK lorsque la pile était en mode contrôle de congestion.
"Ce problème ne se produirait pas avec des applications semi-duplex comme HTTP, mais l'application que je gérais envoyait des données de manière bidirectionnelle sur le socket en continu."
"À l'époque, ma direction ne me soutenait pas beaucoup (mon chef m'a même crié dessus parce que je voulais "toujours utiliser un renifleur" pour résoudre les problèmes), et personne d'autre que moi n'envisageait l'implémentation TCP du fournisseur du système d'exploitation comme étant à l'origine du problème. Le fait d'avoir obtenu ce correctif du fournisseur du système d'exploitation par moi-même a rendu cette victoire particulièrement gratifiante, cela m'a donné une grande liberté pour mener mes propres investigations et m'a permis d'aborder des problèmes encore plus complexes."
En résumé, cette personne rencontrait des problèmes de performance imputés à son application. La direction, sans surprise, ne l'aidait pas. Seule une analyse approfondie des paquets a pu démontrer que le problème ne venait pas de l'application, mais de la manière dont le système d'exploitation gérait le protocole réseau !
La solution n'a pas été apportée par une mise à jour de l'application, mais par un correctif du système d'exploitation lui-même. 😮
Imaginez la situation si l'analyse au niveau des paquets n'avait pas été réalisée. Cette personne aurait probablement perdu son emploi. Si cela ne vous convainc pas de l'importance de l'analyse de paquets, je ne sais pas ce qui pourrait le faire. 🙂
Maintenant que vous avez compris que l'analyse de paquets est un atout puissant, voici une bonne nouvelle : ce n'est pas si compliqué !
Grâce à des outils d'analyse de paquets puissants mais faciles à utiliser, extraire des informations de l'analyse au niveau des paquets peut être aussi simple que de lire un tableau de bord de ventes. Bien sûr, il faut une connaissance de base du fonctionnement d'un réseau, mais il n'y a rien de sorcier, ni de logique complexe à maîtriser. C'est surtout du bon sens.
Si vous commencez à lire la documentation de ces outils tout en les utilisant sur votre réseau, vous deviendrez rapidement un expert. 😀
Wireshark
Wireshark est un projet ancien (démarré en 1998) et une référence dans l'analyse réseau approfondie. Il est impressionnant qu'il s'agisse d'une organisation gérée par des bénévoles, soutenue par de généreux sponsors. Wireshark est un logiciel open source (le code peut être consulté ici) et organise même une conférence dédiée !

Wireshark propose de nombreuses fonctionnalités, parmi lesquelles :
- Prise en charge de centaines de protocoles réseau.
- Interopérabilité avec de nombreux formats de fichiers (tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (compressé et non compressé), Sniffer® Pro et NetXray®, etc.).
- Fonctionne sur toutes les plateformes (Linux, Windows, macOS, Solaris, FreeBSD, etc.).
- Lecture de données en direct depuis Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, etc.
- Décompression gzip à la volée.
- Nombreux protocoles de déchiffrement pris en charge (WPA/WPA2, SNMPv3, etc.)
- Analyse VoIP approfondie
- Règles de coloration pour une analyse visuelle plus rapide
Si vous souhaitez maîtriser Wireshark, vous trouverez un excellent cours en ligne ici.
Vous cherchez un équivalent de Wireshark pour votre terminal ? Essayez Termshark.
tcpdump
Si vous êtes un adepte de la ligne de commande, tcpdump est fait pour vous.
Il s'agit d'un utilitaire Linux emblématique (comme curl) qui reste pertinent. De nombreux outils plus "sophistiqués" s'en inspirent. Certes, il n'y a pas d'interface graphique, mais l'outil compense largement cela.
L'installation peut être fastidieuse. Bien que tcpdump soit inclus dans la plupart des distributions Linux, il est possible que vous ayez à le compiler à partir du code source.

Les commandes tcpdump sont simples et concises, visant à résoudre des problèmes spécifiques, par exemple :
- Afficher toutes les interfaces disponibles
- Capturer le trafic d'une seule interface
- Enregistrer les paquets capturés dans un fichier
- Capturer uniquement les paquets en erreur
Si vos besoins sont basiques et que vous avez besoin d'une analyse rapide, tcpdump peut être une excellente option (surtout s'il est déjà installé sur votre système). Consultez cet article pour des exemples de commandes tcpdump en temps réel.
Tproxy
Tproxy est un outil en ligne de commande simple et open source pour proxifier des connexions TCP sur le réseau. Écrit en Go, il est disponible sous forme de binaire pour toutes les plateformes Linux et macOS modernes.

Son principal cas d'utilisation est la proxification des connexions HTTP et l'inspection des requêtes et réponses HTTP. Il peut aussi être utilisé pour proxifier d'autres protocoles comme SOCKS ou TCP. Il peut également servir à proxifier les connexions TCP entre deux hôtes, ou pour analyser le trafic sur une connexion en direct. Il est utile pour le débogage et le test d'applications qui utilisent TCP comme protocole de transport, ainsi que pour la création de services proxy TCP.
Il a été conçu pour fournir une interface facile à utiliser à l'utilitaire tcpdump, permettant aux utilisateurs de proxifier les connexions TCP et d'effectuer d'autres analyses de réseau avancées sans avoir besoin de comprendre le protocole TCP sous-jacent.

Il agit comme un proxy TCP, vous permettant de vous connecter à des services et applications distants comme si vous étiez sur la machine locale. Il permet de créer des services TCP personnalisés sur des hôtes distants, similaires à un proxy TCP inverse, ce qui offre divers avantages en termes de sécurité, de dépannage et de performance pour les applications qui utilisent TCP.
Voici quelques autres utilisations de Tproxy:
- Il est utile pour déboguer et optimiser les connexions TCP.
- Il est également utile pour comprendre le fonctionnement d'autres programmes proxy, comme Burp Suite et ZAP.
- Il peut être utilisé pour proxifier les connexions TCP entre deux hôtes, ou entre un hôte et un service TCP distant, comme une base de données ou un service Web.
- Surveiller les connexions MySQL et gRPC, et vérifier la fiabilité de la connexion (taux de retransmission et RTT).
La plupart des utilisateurs trouveront que Tproxy simplifie leur travail et permet des analyses de réseau complexes et l'analyse d'applications Web sans modifier l'application ou le réseau lui-même. L'outil est disponible sur GitHub.
NetworkMiner
Se présentant comme un outil d'analyse de réseau forensique (NFAT), NetworkMiner est un excellent analyseur de paquets. Cet outil open source analyse passivement les réseaux et fournit une interface graphique performante permettant d'afficher les images et les fichiers transférés.

Mais ce n'est pas tout. NetworkMiner propose également les fonctionnalités suivantes :
- Prise en charge IPv6
- Analyse des fichiers PCAP
- Extraction des certificats X.509 du trafic chiffré SSL
- Pcap sur IP
- Fonctionne avec divers types de trafic tels que FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3, etc.
- Identification du système d'exploitation
- Géolocalisation IP
- Prise en charge des scripts en ligne de commande
Certaines de ces fonctionnalités sont disponibles uniquement dans la version commerciale.
Fiddler
Contrairement aux autres "renifleurs" de réseau passifs, Fiddler agit comme un intermédiaire entre votre appareil et le monde extérieur, nécessitant une configuration particulière. (Est-ce la raison de son nom "Fiddler" qui veut dire "bricoleur" en anglais? 😉 ) .
C'est un outil gratuit et personnalisable (avec FiddlerScript), avec une longue histoire. Si votre objectif est d'analyser le trafic HTTP/HTTPS avec efficacité, Fiddler est un excellent choix.

Fiddler permet de nombreuses actions, surtout si vous souhaitez adopter un profil de hacker :
- Manipulation de session : ouvrez les en-têtes HTTP et les données de session, et modifiez-les à votre guise.
- Tests de sécurité : simulez des attaques de type "man-in-the-middle" et déchiffrez le trafic HTTPS.
- Tests de performance : analysez les temps de chargement des pages (ou de réponse d'API) et identifiez les goulots d'étranglement.
Si vous vous sentez perdu, la documentation est très utile.
WinDump
Si vous appréciez la simplicité de tcpdump et que vous souhaitez l'utiliser sur vos systèmes Windows, essayez WinDump. Une fois installé, vous pouvez l'exécuter en ligne de commande en tapant "tcpdump", tout comme sur les systèmes Linux.
Notez qu'il n'y a pas d'installation proprement dite ; WinDump est un exécutable qui peut être lancé directement, à condition que vous ayez une implémentation de la librairie Pcap (npcap est recommandée car winpcap n'est plus développé).
BruteShark
BruteShark est un outil d'analyse médico-légale de réseau (NFAT) puissant, permettant de traiter et d'inspecter le trafic réseau (fichiers PCAP) ou de le capturer directement depuis les interfaces réseau.
Il propose la reconstruction de sessions TCP, la création de cartes réseau, l'extraction de hachages de mots de passe cryptés, la conversion de hachages au format Hashcat pour effectuer des attaques par force brute hors ligne.
L'objectif principal de ce projet est d'aider les administrateurs réseau et les chercheurs en sécurité à analyser le trafic réseau et à identifier les points faibles.
Il existe deux versions de BruteShark : une application avec une interface graphique pour Windows et un outil en ligne de commande pour Linux et Windows. Certains éléments de la solution peuvent être utilisés indépendamment pour analyser le trafic sur les machines Windows et Linux.

BruteShark peut également effectuer diverses opérations telles que l'extraction de requêtes DNS, la segmentation de fichiers, l'extraction d'appels VoIP (SIP, RTP), la création d'un schéma de réseau pour les utilisateurs et les nœuds, l'extraction de hachages d'authentification pour Hashcat (NTLM, HTTP-Digest, CRAM-MD5, Kerberos, etc.), et la récupération et le décodage des mots de passe et noms d'utilisateur.
Tous les éléments sont développés avec .Net Standard et .Net Core, pour une compatibilité multiplateforme et une modernité accrue. Cette solution propose une architecture en trois couches (PL, BLL et DAL).
Grâce à DAL (Data Access Layer), le projet lit les fichiers bruts de PCAP en utilisant des pilotes comme WinPcap, libpcap et des librairies wrapper comme SharpPcap. Le BLL (Business Logic Layer) est chargé d'analyser les informations réseau (TCP, paquet, etc.), et le PL utilise un projet transversal qui référence les couches BLL et DAL.
OmniPeek
Pour les grands réseaux avec des volumes de données considérables transitant chaque seconde, les outils courants peuvent s'avérer inefficaces. Si vous êtes confronté à cette problématique, OmniPeek peut être une solution pertinente.
Il s'agit d'un outil d'analyse et de performance conçu pour l'analyse réseau, particulièrement adapté aux besoins combinant des fonctionnalités bas niveau et des tableaux de bord complets.

Capsa
Si votre environnement est exclusivement Windows, Capsa est également un concurrent sérieux. Il existe en trois versions : gratuite, standard et entreprise, chacune avec des fonctionnalités différentes.

Même la version gratuite prend en charge plus de 300 protocoles et des fonctions intéressantes comme les alertes (déclenchées lorsque certaines conditions sont réunies). La version standard va plus loin, avec plus de 1000 protocoles pris en charge et la possibilité d'analyser les conversations et de reconstruire les flux de paquets.
En résumé, c'est une option intéressante pour les utilisateurs de Windows.
EtherApe
Si vous recherchez de puissantes visualisations et l'open source, EtherApe est un excellent choix. Bien que les binaires précompilés soient disponibles pour quelques distributions Linux, le code source est accessible (sur SourceForge et GitHub), vous pouvez donc le compiler vous-même.

Voici ce qui fait d'EtherApe un outil intéressant :
- Surveillance multi-nœuds avec un code couleur.
- Prise en charge de nombreux formats de paquets tels que ETH_II, 802.2, 803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN, etc. (en fait, beaucoup plus).
- Lecture de données en direct depuis le réseau ou à partir d'un fichier tcpdump.
- Prise en charge de la résolution de nom standard
- Les dernières versions utilisent GTK3 pour l'interface graphique, ce qui offre une expérience utilisateur plus agréable.
CommView
Si vous utilisez exclusivement Windows et que vous appréciez la commodité d'une assistance prioritaire, CommView est recommandé. C'est un puissant analyseur de trafic réseau avec des fonctionnalités avancées intégrées, telles que l'analyse VoIP ou le suivi à distance.

Sa capacité à exporter des données dans des formats utilisés par divers outils, tels que Sniffer®, EtherPeek™, AiroPeek™, Observer®, NetMon, Wireshark/Tcpdump et Wireshark/pcapng, et même de simples dump hexadécimaux est particulièrement impressionnante.
WiFi Explorer
Le dernier outil de la liste est WiFi Explorer, qui propose une version gratuite pour Windows et une version standard pour Windows et macOS. Si l'analyse du réseau WiFi est votre besoin principal (ce qui est courant de nos jours), Wifi Explorer vous simplifiera la tâche.
C'est un outil élégant et riche en fonctionnalités pour analyser votre réseau.

Mention honorable : je ne peux pas conclure cet article sans mentionner un analyseur de réseau exclusif à macOS que j'ai découvert : Little Snitch. Il intègre un pare-feu, ce qui vous offre un contrôle immédiat sur l'ensemble du trafic (cela peut sembler fastidieux, mais c'est un avantage important à long terme).
Que faire ensuite?
Vous devriez également explorer ces logiciels de surveillance de réseau pour une meilleure visibilité de l'infrastructure. Si vous envisagez une carrière dans le domaine du réseau et de la sécurité, n'hésitez pas à consulter les meilleurs cours en ligne disponibles.