Dans cet article
- Les filtres d’affichage Wireshark permettent d’isoler précisément les paquets suspects parmi des millions de trames capturées
- La syntaxe BPF des filtres de capture réduit le volume de données à analyser de 60 à 90 % selon le scénario
- L’analyse des flux TCP avec les statistiques de conversation identifie les anomalies de latence en moins de 2 minutes
- Les profils personnalisés Wireshark font gagner 30 minutes par session d’analyse aux professionnels réseau
- Le déchiffrement TLS intégré permet d’inspecter le trafic HTTPS avec une clé de session pré-master
- Les filtres combinés avec opérateurs logiques couvrent 95 % des cas d’investigation en cybersécurité
Sommaire
- Filtres de capture BPF : réduire le bruit dès l’acquisition
- Filtres d’affichage : syntaxe avancée et opérateurs
- Analyse des flux TCP et statistiques de conversation
- Déchiffrement TLS : inspecter le trafic HTTPS
- Profils personnalisés et colonnes sur mesure
- Détection d’anomalies et cas d’usage en sécurité
- Automatisation avec TShark et scripts en ligne de commande
- Bonnes pratiques et optimisation des performances
Quand j’ai commencé à enseigner l’analyse réseau en BTS SIO, mes étudiants ouvraient Wireshark, lançaient une capture et se retrouvaient submergés par des milliers de paquets incompréhensibles. La différence entre un débutant et un analyste efficace tient en un mot : les filtres. Maîtriser les filtres avancés de Wireshark transforme un outil intimidant en un véritable microscope réseau capable d’isoler exactement ce que vous cherchez.
Dans ce guide, je vous transmets les techniques que j’utilise quotidiennement pour diagnostiquer des problèmes réseau, analyser des incidents de sécurité et former la prochaine génération de techniciens. Que vous prépariez votre BTS SIO option SISR ou que vous soyez administrateur système en poste, ces compétences sont indispensables en 2026.
Filtres de capture BPF : réduire le bruit dès l’acquisition
Les filtres de capture utilisent la syntaxe Berkeley Packet Filter (BPF), héritée de tcpdump. Contrairement aux filtres d’affichage, ils agissent avant l’écriture des paquets sur le disque. C’est une distinction fondamentale : un filtre de capture mal configuré signifie des données perdues définitivement.
Voici les filtres de capture que j’utilise le plus fréquemment en contexte professionnel :
# Capturer uniquement le trafic HTTP et HTTPS
tcp port 80 or tcp port 443
# Isoler le trafic d'un hôte spécifique
host 192.168.1.50
# Capturer le DNS uniquement
udp port 53
# Exclure le trafic SSH (pratique en administration distante)
not tcp port 22
# Capturer un sous-réseau complet
net 10.0.0.0/24
# Combiner : trafic web d'un hôte précis
host 192.168.1.50 and (tcp port 80 or tcp port 443)
La syntaxe BPF accepte les opérateurs and, or et not, ainsi que les parenthèses pour grouper les conditions. Je recommande systématiquement d’utiliser un filtre de capture lors de sessions prolongées : sur un réseau d’entreprise à 1 Gbit/s, une capture non filtrée génère environ 450 Mo par minute, ce qui sature rapidement le stockage et ralentit l’analyse.
Un piège classique que je vois chez mes étudiants : confondre la syntaxe BPF avec celle des filtres d’affichage. Par exemple, ip.addr == 192.168.1.1 ne fonctionne pas en capture ; il faut écrire host 192.168.1.1. Cette confusion provoque des captures vides et beaucoup de frustration.

Filtres d’affichage : syntaxe avancée et opérateurs
Les filtres d’affichage sont la véritable puissance de Wireshark. Ils s’appliquent après la capture et permettent une granularité impressionnante. La syntaxe utilise le nom des protocoles et de leurs champs, avec des opérateurs de comparaison et des fonctions intégrées.
Opérateurs de base
# Égalité
ip.addr == 192.168.1.1
# Différent de
tcp.port != 443
# Supérieur / inférieur
frame.len > 1500
tcp.window_size < 1024
# Contient (recherche dans les données)
http.request.uri contains "login"
# Correspond à une expression régulière
http.host matches ".*\.example\.com"
Opérateurs logiques et combinaisons
# ET logique
ip.src == 10.0.0.5 && tcp.flags.syn == 1
# OU logique
dns.qry.name == "malware.com" || dns.qry.name == "evil.org"
# NON logique
!(arp || icmp)
# Combinaison complexe : requêtes HTTP POST vers un serveur précis
http.request.method == "POST" && ip.dst == 203.0.113.50
Fonctions avancées
Wireshark propose des fonctions de filtrage puissantes que peu d'analystes exploitent :
# Filtrer par plage d'adresses IP
ip.addr in {192.168.1.0/24 10.0.0.0/8}
# Rechercher des motifs dans le payload
tcp.payload contains 50:41:53:53 # Cherche "PASS" en hexadécimal
# Filtrer les paquets retransmis
tcp.analysis.retransmission
# Temps de réponse élevé
tcp.analysis.ack_rtt > 0.5
# Paquets avec erreurs de checksum
tcp.checksum.status == "Bad"
Je conseille à mes étudiants de mémoriser une dizaine de filtres fondamentaux et de les sauvegarder en boutons de filtre dans la barre d'outils. Wireshark permet de créer des boutons personnalisés via Édition > Préférences > Boutons de filtres, ce qui accélère considérablement le travail quotidien.
Analyse des flux TCP et statistiques de conversation
Au-delà du filtrage paquet par paquet, Wireshark excelle dans l'analyse des flux de données. La fonctionnalité "Follow TCP Stream" (clic droit > Suivre > Flux TCP) reconstitue une conversation complète entre deux hôtes, exactement comme si vous lisiez un échange en clair.
Les statistiques de conversation (menu Statistiques > Conversations) offrent une vue synthétique essentielle :
| Métrique | Utilité | Seuil d'alerte typique |
|---|---|---|
| Bytes A→B / B→A | Détecter l'exfiltration de données | Ratio > 10:1 suspect |
| Duration | Identifier les connexions persistantes | > 3600s pour HTTP classique |
| Packets | Repérer les scans de ports | > 1000 paquets SYN sans réponse |
| Bits/s | Mesurer la bande passante consommée | Selon la capacité du lien |
| TCP Retransmissions | Diagnostiquer la qualité réseau | > 2 % du total des paquets |
Pour les tests d'intrusion, l'analyse des conversations révèle rapidement les communications suspectes : un poste client qui envoie 500 Mo vers une adresse IP externe inconnue à 3h du matin mérite une investigation immédiate.
Le graphique d'entrée/sortie (Statistiques > Graphique E/S) permet de visualiser le débit dans le temps et de corréler les pics de trafic avec des événements réseau. Je l'utilise systématiquement pour identifier les moments précis où un problème de performance apparaît.
Déchiffrement TLS : inspecter le trafic HTTPS
Avec plus de 95 % du trafic web chiffré en TLS en 2026, la capacité à déchiffrer les flux HTTPS est devenue indispensable pour l'analyse réseau. Wireshark propose deux méthodes principales.
Méthode 1 : clé pré-master secret (SSLKEYLOGFILE)
Cette technique capture les clés de session générées par le navigateur. Elle fonctionne avec Chrome et Firefox :
# Sous Linux/macOS, définir la variable d'environnement
export SSLKEYLOGFILE=~/sslkeys.log
# Sous Windows (PowerShell)
$env:SSLKEYLOGFILE = "C:\Users\analyst\sslkeys.log"
# Puis lancer le navigateur depuis ce terminal
Dans Wireshark, configurez le chemin vers ce fichier dans Édition > Préférences > Protocols > TLS > (Pre)-Master-Secret log filename. Les flux TLS apparaissent alors en clair, avec les requêtes HTTP/2 décodées.

Méthode 2 : clé privée RSA (cas spécifiques)
Si vous disposez de la clé privée du serveur et que l'échange de clés n'utilise pas Diffie-Hellman éphémère (DHE/ECDHE), vous pouvez importer la clé RSA directement. Cette méthode est de plus en plus rare car les configurations modernes privilégient le Perfect Forward Secrecy.
En contexte de formation ou de sensibilisation au phishing, le déchiffrement TLS permet de montrer concrètement aux étudiants ce qu'un attaquant peut observer lorsqu'il effectue une attaque de type Man-in-the-Middle avec un certificat forgé.
Il est important de noter que selon la CNIL et ses recommandations sur la sécurité des données, toute interception de trafic chiffré doit respecter un cadre légal strict, même en environnement de test. La conformité RGPD impose de documenter ces pratiques.
Profils personnalisés et colonnes sur mesure
Les profils Wireshark sont des configurations complètes (colonnes, filtres, règles de coloration) que l'on peut activer en un clic. En tant que formatrice, je crée systématiquement des profils spécialisés pour chaque type d'analyse.
Créer un profil d'analyse HTTP
Voici les colonnes que je recommande pour un profil orienté web :
- Time (format relatif au premier paquet)
- Source et Destination (adresses IP)
- Protocol
- http.host (colonne personnalisée)
- http.request.method
- http.request.uri
- http.response.code
- tcp.analysis.ack_rtt (temps de réponse)
Pour ajouter une colonne personnalisée : clic droit sur l'en-tête des colonnes > Préférences de colonne > Ajouter. Sélectionnez le type "Custom" et entrez le nom du champ de filtre comme valeur.
Règles de coloration avancées
Les règles de coloration transforment la liste de paquets en un tableau de bord visuel. Je configure systématiquement :
# Rouge vif : erreurs TCP
tcp.analysis.flags && !tcp.analysis.window_update
# Orange : retransmissions
tcp.analysis.retransmission || tcp.analysis.fast_retransmission
# Jaune : latence élevée
tcp.analysis.ack_rtt > 0.200
# Vert clair : DNS
dns
# Bleu : trafic TLS
tls
Ces profils se partagent facilement entre collègues en copiant le dossier du profil depuis ~/.config/wireshark/profiles/ sous Linux ou %APPDATA%\Wireshark\profiles\ sous Windows.
Détection d'anomalies et cas d'usage en sécurité
L'analyse de trafic avec Wireshark est un pilier de la détection d'incidents de sécurité. Voici les patterns que j'enseigne à mes étudiants pour repérer les comportements malveillants.
Détection de scan de ports
# Identifier les SYN scans (Nmap -sS)
tcp.flags.syn == 1 && tcp.flags.ack == 0 && tcp.window_size <= 1024
# Repérer les connexions refusées en masse
tcp.flags.reset == 1 && frame.time_delta < 0.001
Exfiltration DNS
# Requêtes DNS anormalement longues (tunneling)
dns.qry.name.len > 50
# Requêtes DNS vers des TXT records (souvent utilisé pour l'exfiltration)
dns.qry.type == 16
Communication avec un C2 (Command & Control)
# Beaconing : connexions régulières vers la même IP
ip.dst == [IP_SUSPECTE] && tcp.flags.syn == 1
# HTTP avec User-Agent inhabituel
http.user_agent contains "Mozilla" && frame.len < 200
Selon le guide d'hygiène informatique de l'ANSSI, la surveillance du trafic réseau fait partie des mesures fondamentales de sécurité que toute organisation doit mettre en place. Wireshark constitue un outil accessible pour réaliser cette surveillance de manière ponctuelle.

Pour les étudiants qui se préparent à une carrière en cybersécurité, la maîtrise de Wireshark est un prérequis dans la majorité des parcours techniques et représente une compétence valorisée lors des entretiens.
Automatisation avec TShark et scripts en ligne de commande
TShark est la version en ligne de commande de Wireshark. Il utilise exactement les mêmes dissecteurs et filtres, ce qui en fait un outil parfait pour l'automatisation et l'analyse sur des serveurs sans interface graphique.
Commandes TShark essentielles
# Capture avec filtre BPF, sauvegarde en fichier pcap
tshark -i eth0 -f "tcp port 443" -w capture_https.pcap
# Lire un fichier avec filtre d'affichage
tshark -r capture.pcap -Y "http.request.method == POST"
# Extraire des champs spécifiques en CSV
tshark -r capture.pcap -Y "http.request" \
-T fields -e frame.time -e ip.src -e http.host -e http.request.uri \
-E separator=, -E quote=d > requetes_http.csv
# Statistiques de conversations
tshark -r capture.pcap -q -z conv,tcp
# Top 10 des domaines DNS les plus résolus
tshark -r capture.pcap -Y "dns.flags.response == 0" \
-T fields -e dns.qry.name | sort | uniq -c | sort -rn | head -10
Scripts d'analyse automatisée
Je partage avec mes étudiants ce script bash qui génère un rapport d'analyse rapide :
#!/bin/bash
# Rapport d'analyse réseau automatisé
FILE=$1
echo "=== Analyse de $FILE ==="
echo ""
echo "--- Statistiques générales ---"
tshark -r "$FILE" -q -z io,stat,1
echo ""
echo "--- Top 10 conversations TCP ---"
tshark -r "$FILE" -q -z conv,tcp | tail -12
echo ""
echo "--- Requêtes DNS suspectes (> 50 chars) ---"
tshark -r "$FILE" -Y "dns.qry.name.len > 50" \
-T fields -e ip.src -e dns.qry.name
echo ""
echo "--- Erreurs TCP ---"
tshark -r "$FILE" -Y "tcp.analysis.flags" -q -z io,stat,0
L'automatisation via TShark est particulièrement pertinente dans un contexte d'infrastructure cloud où les captures se font souvent à distance, sur des machines virtuelles sans environnement graphique. Pour les administrateurs système qui gèrent des parcs importants, cette approche scriptée permet de traiter des dizaines de captures en quelques secondes.
Sur un serveur Linux, vous pouvez lancer TShark en mode continu avec rotation des fichiers :
# Capture continue avec rotation toutes les 100 Mo, garde 10 fichiers
tshark -i eth0 -b filesize:102400 -b files:10 -w /var/captures/traffic.pcap
Bonnes pratiques et optimisation des performances
Après des années d'utilisation intensive, voici les pratiques qui font la différence entre une analyse efficace et une perte de temps.
Gestion des fichiers volumineux
Wireshark peut ralentir significativement au-delà de 500 Mo de capture. Pour contourner cette limitation :
- Utilisez
editcappour découper les fichiers :editcap -c 100000 gros_fichier.pcap segment.pcap - Filtrez avec TShark avant d'ouvrir dans l'interface graphique
- Désactivez la résolution de noms (Édition > Préférences > Name Resolution) pour accélérer le chargement
- Utilisez les Ring Buffers pour limiter la taille des captures en continu
Raccourcis clavier indispensables
| Raccourci | Action | Gain de temps estimé |
|---|---|---|
| Ctrl+Shift+P | Basculer entre profils | 15 secondes par changement |
| Ctrl+F | Recherche dans les paquets | Variable |
| Ctrl+G | Aller au paquet numéro X | 5 secondes |
| Ctrl+Shift+N | Paquet suivant dans la conversation | 10 secondes par navigation |
| Ctrl+Alt+Shift+T | Suivre le flux TCP | 20 secondes |
| Ctrl+Shift+D | Appliquer comme filtre (sélection) | 30 secondes de saisie |
Organisation du travail d'analyse
Pour les étudiants en formation BTS SIO ou poursuite d'études, je recommande une méthodologie structurée :
- Définir l'objectif : que cherchez-vous exactement ?
- Filtrer large puis affiner progressivement
- Documenter chaque découverte avec des commentaires (clic droit > Commentaire de paquet)
- Exporter les preuves : fichiers pcap filtrés, captures d'écran, rapports TShark
- Corréler avec d'autres sources (logs système, SIEM, alertes IDS)
La documentation de l'Wireshark User's Guide officiel reste la référence incontournable pour approfondir chaque fonctionnalité. Je recommande également de pratiquer régulièrement sur des captures publiques disponibles sur le wiki officiel Wireshark Sample Captures pour développer ses réflexes d'analyse.
Pour ceux qui travaillent dans un environnement de télétravail, Wireshark permet également de diagnostiquer les problèmes de VPN et de visioconférence en analysant la qualité des flux RTP et les handshakes TLS défaillants.
À retenir
- Utilisez toujours un filtre de capture BPF pour éviter de saturer le disque et faciliter l'analyse
- Mémorisez les 10 filtres d'affichage fondamentaux et sauvegardez-les en boutons dans la barre d'outils
- Configurez la variable SSLKEYLOGFILE pour déchiffrer le trafic HTTPS lors de vos analyses
- Créez des profils spécialisés (HTTP, DNS, sécurité) avec colonnes et colorations adaptées
- Automatisez les analyses répétitives avec TShark et des scripts bash pour gagner du temps
Questions fréquentes
Quelle est la différence entre un filtre de capture et un filtre d'affichage dans Wireshark ?
Le filtre de capture utilise la syntaxe BPF et s'applique au moment de l'acquisition des paquets : les paquets qui ne correspondent pas au filtre ne sont jamais enregistrés. Le filtre d'affichage s'applique après la capture sur les données déjà enregistrées, permettant de masquer ou montrer des paquets sans les supprimer. En résumé, le filtre de capture est irréversible tandis que le filtre d'affichage est modifiable à tout moment.
Comment déchiffrer le trafic HTTPS dans Wireshark sans la clé privée du serveur ?
La méthode recommandée consiste à utiliser la variable d'environnement SSLKEYLOGFILE. En la définissant avant de lancer votre navigateur (Chrome ou Firefox), celui-ci enregistre les clés de session TLS dans un fichier. Vous configurez ensuite ce fichier dans Wireshark via Édition > Préférences > Protocols > TLS. Cette méthode fonctionne même avec les échanges de clés Diffie-Hellman éphémères qui rendent l'utilisation de la clé privée RSA impossible.
Wireshark peut-il analyser le trafic sur un réseau WiFi chiffré en WPA2 ?
Oui, à condition de disposer de la clé PSK (mot de passe WiFi) et d'avoir capturé le handshake à 4 voies (EAPOL). Configurez la clé dans Édition > Préférences > Protocols > IEEE 802.11 > Decryption keys. Sans le handshake initial, Wireshark ne peut pas dériver les clés de session même avec le mot de passe correct. En mode monitor, vous capturez les trames brutes de tous les appareils du réseau.
Comment utiliser TShark pour automatiser l'analyse de trafic sur un serveur Linux ?
TShark s'installe via le paquet wireshark-cli sur la plupart des distributions. Lancez une capture avec tshark -i eth0 -f "filtre BPF" -w fichier.pcap, puis analysez avec tshark -r fichier.pcap -Y "filtre d'affichage" -T fields -e champ1 -e champ2. Vous pouvez intégrer ces commandes dans des scripts bash ou des tâches cron pour une surveillance continue. L'option -b permet la rotation automatique des fichiers de capture.
Quels filtres Wireshark utiliser pour détecter une attaque par scan de ports ?
Pour détecter un SYN scan classique, utilisez le filtre tcp.flags.syn == 1 && tcp.flags.ack == 0 puis vérifiez dans les statistiques de conversation si une même source envoie des SYN vers de nombreux ports différents. Le filtre tcp.flags.reset == 1 avec un delta temporel très faible entre les paquets confirme les ports fermés. Pour les scans plus discrets (NULL, FIN, XMAS), filtrez sur tcp.flags == 0x000, tcp.flags == 0x001 ou tcp.flags == 0x029 respectivement.
Wireshark ralentit avec de gros fichiers pcap, comment optimiser les performances ?
Plusieurs techniques améliorent les performances. Découpez les fichiers volumineux avec editcap -c 100000 pour créer des segments plus petits. Désactivez la résolution de noms dans les préférences. Pré-filtrez avec TShark en ligne de commande avant d'ouvrir dans l'interface graphique. Utilisez des profils avec moins de colonnes personnalisées actives. Enfin, sur les machines avec peu de RAM, limitez la capture avec des Ring Buffers pour ne conserver que les dernières minutes de trafic.
Formatrice IT indépendante depuis 2016, ancienne étudiante BTS SIO SLAM. 6 ans d'expérience en entreprise.