Transformez votre flux de travail Wireshark avec Brim sous Linux
Wireshark est l'outil de référence pour l'analyse du trafic réseau. Toutefois, il peut devenir de plus en plus lent à mesure que la taille des captures de paquets augmente. Brim propose une solution efficace à ce problème, transformant votre manière d'utiliser Wireshark.
Wireshark : un outil puissant, mais...
Wireshark est un logiciel open source exceptionnel, utilisé par des amateurs et des professionnels du monde entier pour investiguer les problèmes réseau. Il capture les paquets de données transitant par les câbles ou l'air de votre réseau. Une fois le trafic capturé, Wireshark offre la possibilité de filtrer, rechercher, suivre les échanges entre les appareils du réseau, et bien plus.
Malgré ses qualités, Wireshark présente un inconvénient : les fichiers de capture de données réseau, aussi appelés traces réseau ou captures de paquets, peuvent rapidement devenir volumineux. Cela est d'autant plus vrai si le problème étudié est complexe, sporadique, ou si le réseau est grand et fortement sollicité.
Plus la capture de paquets (ou PCAP) est importante, plus Wireshark ralentit. L'ouverture et le chargement d'une trace volumineuse (plus d'1 Go) peuvent prendre un temps considérable, laissant penser que Wireshark a planté.
Travailler avec de tels fichiers est fastidieux. Chaque recherche ou modification de filtre nécessite d'attendre l'application des changements et la mise à jour de l'affichage, ce qui perturbe la concentration et freine la progression.
Brim est la solution à ces désagréments. Il fonctionne comme un préprocesseur interactif et une interface utilisateur pour Wireshark. Lorsque vous avez besoin du niveau de détail de Wireshark, Brim l'ouvre instantanément en ciblant précisément les paquets nécessaires.
Si vous effectuez fréquemment des captures et des analyses de paquets réseau, Brim révolutionnera votre manière de travailler.
Installation de Brim
Brim est un outil récent, il n'est donc pas encore intégré aux dépôts de logiciels des distributions Linux. Cependant, sur la page de téléchargement de Brim, vous trouverez des paquets DEB et RPM, facilitant son installation sur Ubuntu ou Fedora.
Si vous utilisez une autre distribution, vous pouvez télécharger le code source depuis GitHub et compiler l'application vous-même.
Brim utilise zq, un outil en ligne de commande pour les logs de Zeek, vous devrez donc également télécharger un fichier ZIP contenant les binaires zq.
Installation de Brim sur Ubuntu
Si vous êtes sous Ubuntu, téléchargez le paquet DEB et le fichier ZIP Linux zq. Double-cliquez sur le paquet DEB téléchargé pour ouvrir l'application "Logiciels Ubuntu". La licence de Brim est incorrectement indiquée comme "propriétaire" ; elle est en réalité sous licence BSD à 3 clauses.
Cliquez sur "Installer".
Une fois l'installation terminée, double-cliquez sur le fichier ZIP zq pour lancer le gestionnaire d'archives. Le ZIP contient un seul répertoire ; faites-le glisser depuis le gestionnaire vers un emplacement sur votre ordinateur, comme le répertoire "Téléchargements".
Nous créons ensuite un emplacement pour les binaires zq avec la commande suivante :
sudo mkdir /opt/zeek

Nous devons copier les binaires du répertoire extrait vers l'emplacement que nous venons de créer. Adaptez le chemin et le nom du répertoire extrait à votre situation dans la commande ci-dessous :
sudo cp Downloads/zq-v0.20.0.linux-amd64/* /opt/Zeek

Pour ajouter cet emplacement au PATH, nous allons modifier le fichier BASHRC :
sudo gedit .bashrc

L'éditeur gedit s'ouvre. Faites défiler jusqu'en bas du fichier et ajoutez cette ligne :
export PATH=$PATH:/opt/zeek

Enregistrez vos modifications et fermez l'éditeur.
Installation de Brim sur Fedora
Pour installer Brim sur Fedora, téléchargez le paquet RPM (au lieu du DEB) et suivez les mêmes étapes que celles décrites pour Ubuntu.
Il est intéressant de noter que lors de l'ouverture du fichier RPM sous Fedora, la licence est correctement identifiée comme open source, contrairement à Ubuntu où elle est présentée comme propriétaire.
Lancement de Brim
Cliquez sur "Afficher les applications" dans le dock ou appuyez sur Super + A. Tapez "brim" dans la barre de recherche, puis cliquez sur l'icône de Brim lorsqu'elle apparaît.

Brim se lance et affiche sa fenêtre principale. Vous pouvez cliquer sur "Choisir les fichiers" pour ouvrir un explorateur de fichiers ou glisser-déposer un fichier PCAP dans la zone entourée d'un rectangle rouge.

Brim utilise un affichage par onglets, vous permettant d'ouvrir plusieurs onglets simultanément. Pour ouvrir un nouvel onglet, cliquez sur le signe plus (+) en haut, puis sélectionnez un autre PCAP.
Principes de base de Brim
Brim charge et indexe le fichier sélectionné. L'indexation est l'une des raisons de la rapidité de Brim. La fenêtre principale affiche un histogramme des volumes de paquets au fil du temps et une liste des "flux" du réseau.

Un fichier PCAP contient un flux temporel ordonné de paquets réseau pour de nombreuses connexions. Les paquets de données pour différentes connexions sont entremêlés, car certaines connexions sont simultanées. Les paquets pour chaque "échange" sont donc mélangés à ceux d'autres échanges.
Wireshark affiche le flux de paquets réseau un par un, tandis que Brim utilise le concept de "flux". Un flux est un échange réseau complet (ou conversation) entre deux appareils. Chaque type de flux est catégorisé, coloré et étiqueté par type : "dns", "ssh", "https", "ssl", etc.
En faisant défiler l'affichage du résumé du flux vers la gauche ou la droite, d'autres colonnes sont visibles. Vous pouvez également ajuster la période pour afficher le sous-ensemble d'informations souhaité. Voici quelques méthodes pour afficher les données :
Cliquez sur une barre de l'histogramme pour zoomer sur l'activité réseau correspondante.
Cliquez et faites glisser pour sélectionner une plage de l'histogramme et zoomer. Brim affichera alors les données de la section mise en évidence.
Vous pouvez également spécifier des périodes précises dans les champs "Date" et "Heure".
Brim peut afficher deux volets latéraux : un à gauche et un à droite. Ceux-ci peuvent être masqués ou visibles. Le volet de gauche affiche l'historique de recherche et la liste des PCAP ouverts, appelés "espaces". Appuyez sur Ctrl + [ pour afficher ou masquer le volet gauche.

Le volet de droite contient des informations détaillées sur le flux mis en évidence. Appuyez sur Ctrl + ] pour afficher ou masquer le volet droit.

Cliquez sur "Conn" dans la liste "UID Correlation" pour ouvrir un schéma de connexion pour le flux en surbrillance.

Dans la fenêtre principale, vous pouvez également mettre en surbrillance un flux, puis cliquer sur l'icône Wireshark pour lancer Wireshark avec les paquets du flux mis en évidence.

Wireshark s'ouvre, affichant les paquets qui vous intéressent.

Filtrage dans Brim
La recherche et le filtrage dans Brim sont flexibles et complets. Si vous le souhaitez, vous pouvez créer un filtre syntaxiquement correct simplement en cliquant sur les champs du résumé, puis en sélectionnant des options dans un menu.
Par exemple, dans l'image ci-dessous, nous avons cliqué avec le bouton droit sur un champ "dns" et sélectionné "Filtre = Valeur" dans le menu contextuel.

Les actions suivantes ont lieu :
Le texte _path = "dns" est ajouté à la barre de recherche.
Ce filtre est appliqué au fichier PCAP, n'affichant que les flux DNS.
Le texte du filtre est également ajouté à l'historique de recherche dans le volet gauche.

Nous pouvons ajouter d'autres conditions à la recherche en utilisant la même méthode. Nous cliquons avec le bouton droit sur le champ d'adresse IP (contenant "192.168.1.26") dans la colonne "Id.orig_h", puis sélectionnons "Filtre = Valeur" dans le menu contextuel.
Cela ajoute la clause supplémentaire en tant que condition ET. L'affichage est maintenant filtré pour afficher les flux DNS provenant de cette adresse IP (192.168.1.26).

Le nouveau terme de filtre est ajouté à l'historique de recherche dans le volet gauche. Vous pouvez alterner entre les recherches en cliquant sur les éléments de la liste de l'historique.
L'adresse IP de destination de la plupart de nos données filtrées est 81.139.56.100. Pour voir quels flux DNS ont été envoyés vers d'autres adresses IP, nous cliquons avec le bouton droit sur "81.139.56.100" dans la colonne "Id_resp_h", puis nous sélectionnons "Filtre != Valeur" dans le menu contextuel.

Un seul flux DNS provenant de 192.168.1.26 n'a pas été envoyé à 81.139.56.100. Nous l'avons localisé sans avoir à saisir quoi que ce soit pour créer notre filtre.
Épinglage des clauses de filtrage
Lorsque nous cliquons avec le bouton droit sur un flux "HTTP" et sélectionnons "Filtre = Valeur" dans le menu contextuel, la fenêtre de résumé n'affiche que les flux HTTP. Nous pouvons ensuite cliquer sur l'icône "Épingler" à côté de la clause de filtre HTTP.

La clause HTTP est maintenant épinglée, et tous les autres filtres ou termes de recherche seront exécutés avec la clause HTTP ajoutée en premier.
Si nous saisissons "GET" dans la barre de recherche, la recherche sera limitée aux flux déjà filtrés par la clause épinglée. Vous pouvez épingler autant de clauses de filtre que nécessaire.

Pour rechercher des paquets POST dans les flux HTTP, effacez simplement la barre de recherche, saisissez "POST" puis appuyez sur Entrée.

Le défilement latéral révèle l'ID de l'hôte distant.

Tous les termes de recherche et de filtrage sont ajoutés à la liste "Historique". Pour réappliquer un filtre, cliquez simplement dessus.

Vous pouvez également rechercher un hôte distant par son nom.

Modification des termes de recherche
Si vous souhaitez rechercher un élément, mais que vous ne le voyez pas dans la liste, vous pouvez cliquer sur un flux existant et modifier le terme dans la barre de recherche.
Par exemple, nous savons qu'il y a au moins un flux SSH dans le fichier PCAP, car nous avons utilisé rsync pour envoyer des fichiers à un autre ordinateur, mais nous ne le voyons pas.
Nous allons donc cliquer avec le bouton droit sur un autre flux, sélectionner "Filtre = Valeur" dans le menu contextuel, puis modifier la barre de recherche pour afficher "ssh" au lieu de "dns".
Nous appuyons sur Entrée pour rechercher les flux SSH, et constatons qu'il n'y en a qu'un.

Appuyez sur Ctrl + ] pour ouvrir le volet droit, qui affiche les détails de ce flux. Si un fichier a été transféré pendant un flux, les hachages MD5, SHA1 et SHA256 apparaissent.
Cliquez avec le bouton droit sur l'un de ces hachages, puis sélectionnez "Recherche VirusTotal" dans le menu contextuel pour ouvrir votre navigateur sur le site VirusTotal et effectuer une vérification.
VirusTotal stocke les hachages de logiciels malveillants connus. Si vous avez un doute sur la sécurité d'un fichier, c'est un moyen simple de le vérifier, même si vous n'y avez plus accès.

Si le fichier est sûr, vous verrez l'écran ci-dessous.

Le complément parfait à Wireshark
Brim améliore l'efficacité et la facilité d'utilisation de Wireshark en vous permettant de travailler avec de très gros fichiers de capture de paquets. Essayez-le dès aujourd'hui !