Analyse de paquets — Wireshark
Définition
L'analyse de paquets (packet analysis / packet sniffing) consiste à capturer le trafic réseau transitant sur une interface et à inspecter chaque trame, paquet et segment pour diagnostiquer des problèmes, analyser le comportement de protocoles ou détecter des anomalies de sécurité. Wireshark est l'outil open-source de référence, offrant une interface graphique puissante avec décodage de plus de 2 000 protocoles.
Contexte
Lorsque les outils classiques (ping, traceroute, show commands) ne suffisent pas à identifier la cause racine d'un problème, la capture de paquets fournit une vue exhaustive de ce qui se passe réellement sur le réseau. La certification CCST attend du candidat qu'il comprenne les principes de la capture et les bases de l'analyse protocolaire.
Détails techniques
Méthodes de capture
| Méthode | Description | Cas d'usage |
|---|---|---|
| Capture locale | Wireshark écoute directement sur l'interface du poste | Diagnostic du trafic d'un PC spécifique |
| Port mirroring (SPAN) | Le switch copie le trafic d'un port vers un port moniteur | Capturer le trafic d'un serveur sans agent |
| TAP réseau | Dispositif physique qui copie passivement les trames | Environnements de production sensibles |
| Capture à distance | tcpdump sur un équipement distant, fichier .pcap transféré |
Routeurs/serveurs Linux sans GUI |
Filtres Wireshark
Wireshark distingue deux types de filtres :
Filtres de capture (BPF — appliqués au moment de la capture, réduisent le volume) :
| Filtre | Effet |
|---|---|
host 10.1.0.50 |
Capture uniquement le trafic vers/depuis 10.1.0.50 |
port 443 |
Capture uniquement le trafic HTTPS |
net 192.168.1.0/24 |
Capture tout le trafic du sous-réseau |
tcp |
Capture uniquement les segments TCP |
Filtres d'affichage (appliqués après la capture, pour naviguer dans les données) :
| Filtre | Effet |
|---|---|
ip.addr == 10.1.0.50 |
Affiche le trafic vers/depuis 10.1.0.50 |
tcp.port == 80 |
Affiche le trafic HTTP |
dns |
Affiche uniquement les requêtes/réponses DNS |
tcp.flags.syn == 1 && tcp.flags.ack == 0 |
Affiche les SYN initiaux (nouvelles connexions) |
tcp.analysis.retransmission |
Affiche les retransmissions TCP |
http.request.method == "POST" |
Affiche les requêtes HTTP POST |
frame.time_delta > 1 |
Affiche les paquets avec un délai inter-paquet > 1 seconde |
Anatomie d'une capture — couches décodées
Wireshark affiche chaque paquet en couches :
Frame (Couche 1-2) : taille, horodatage, interface
└── Ethernet II : MAC source → MAC destination, EtherType
└── IPv4 : IP source → IP destination, TTL, protocole
└── TCP : Port source → Port destination, flags, Seq/Ack, Window
└── Application (HTTP, DNS, TLS…) : payload décodé
Fonctionnalités clés de Wireshark
| Fonctionnalité | Description |
|---|---|
| Follow TCP Stream | Reconstitue la conversation complète entre deux endpoints |
| IO Graphs | Graphique du débit dans le temps — identifie pic, chute, micro-coupure |
| Expert Info | Synthèse automatique des anomalies détectées (retransmissions, resets, erreurs) |
| Statistics → Conversations | Liste de toutes les conversations avec volume, durée, paquets |
| Statistics → Protocol Hierarchy | Répartition du trafic par protocole |
| Coloring rules | Code couleur automatique (rouge = erreur, noir = TCP reset, vert = HTTP) |
| Export Objects | Extraction de fichiers transférés (HTTP, SMB, FTP) |
Patterns courants à identifier
| Pattern | Symptôme dans Wireshark | Cause probable |
|---|---|---|
| TCP Retransmission | Mêmes données renvoyées après timeout | Perte de paquets (congestion, erreur physique) |
| TCP RST | Paquet avec flag RST | Application refuse la connexion, port fermé |
| TCP Zero Window | Window Size = 0 | Le récepteur ne peut plus absorber de données (surcharge) |
| TLS Handshake failure | Alert protocol après Client Hello | Certificat invalide, cipher suite incompatible |
| DNS timeout | Query sans Response | Serveur DNS injoignable |
| ARP storm | Flux massif de requêtes ARP | Boucle de commutation (spanning-tree failure) |
Précautions
- Confidentialité : les captures peuvent contenir des mots de passe en clair (HTTP, FTP, Telnet). Stocker et partager les
.pcapde manière sécurisée. - Performance : capturer sur un lien à haut débit sans filtre peut saturer le disque et le CPU. Toujours appliquer un filtre de capture.
- Légalité : capturer du trafic qui ne vous appartient pas peut être illégal. Obtenir les autorisations nécessaires.
Exemple concret
Scénario : un utilisateur signale que l'application web interne (10.1.0.80:443) est « très lente » depuis ce matin.
- Configuration SPAN : le port du serveur web est mirroré vers un poste Wireshark.
- Capture avec filtre BPF :
host 10.1.0.80 and port 443. - Analyse avec filtre d'affichage
tcp.analysis.retransmission→ nombreuses retransmissions (15 % des paquets). - IO Graph → le débit chute brutalement toutes les 10 secondes.
- Expert Info → « TCP Window Full » fréquent côté serveur.
- Diagnostic : le serveur web est surchargé (CPU à 98 %) et ne peut pas absorber le trafic entrant → fenêtre TCP à zéro → retransmissions massives.
- Résolution : redémarrage d'un processus fuyant sur le serveur → CPU retombe à 30 %, retransmissions disparaissent, temps de réponse normalisé.