Introduction
Imaginez que vous essayiez de compter toutes les voitures rouges passant sur une autoroute très fréquentée en temps réel. C'est stressant et sujet aux erreurs. Imaginez maintenant que vous enregistriez une vidéo de cette autoroute, que vous rentriez chez vous, et que vous puissiez mettre en pause, rembobiner et avancer rapidement pour compter les voitures avec précision.
Dans le monde de la cybersécurité et de l'informatique légale, les professionnels analysent rarement le trafic réseau en direct au fur et à mesure qu'il défile. Au lieu de cela, ils « enregistrent la vidéo ». Ils capturent le trafic brut et l'enregistrent dans un format standard appelé fichier PCAP (Packet Capture). Cette approche fournit un enregistrement permanent et inaltéré des événements réseau, permettant une analyse approfondie et sereine longtemps après qu'un incident s'est produit.
Cette mentalité d'archivage est essentielle car de nombreux événements de sécurité sont éphémères. Une connexion suspecte peut ne durer que quelques secondes. Une requête malveillante peut se produire une seule fois et ne jamais se répéter. Si vous n'avez pas préservé le trafic au moment où il a eu lieu, vous risquez de perdre la chance de reconstruire l'événement plus tard. Les fichiers PCAP jouent donc pour l'activité réseau le même rôle que les images disque et les archives de journaux pour d'autres types d'enquêtes médico-légales.
Dans ce laboratoire, vous apprendrez l'art essentiel de la gestion des fichiers PCAP à l'aide de tcpdump. Vous vous entraînerez à écrire silencieusement le trafic réseau en direct dans un fichier, à le relire dans votre terminal pour une révision hors ligne, à appliquer des filtres précis pour enquêter sur du trafic passé, et à extraire proprement des segments de preuves plus petits à partager avec d'autres.
Écrire le trafic dans un fichier PCAP
La première étape de l'analyse hors ligne consiste à enregistrer les données. Au lieu de laisser tcpdump encombrer votre écran avec du texte qui défile rapidement, vous pouvez lui demander d'écrire silencieusement tout le contenu directement dans un fichier de stockage. Cela s'effectue à l'aide de l'option -w (write).
Notez la différence d'objectif entre une capture d'écran et une capture PCAP. Lors de l'affichage dans le terminal, tcpdump résume déjà les paquets pour une lecture humaine. Lors de l'écriture dans un fichier PCAP, il préserve les données des paquets sous une forme que d'autres outils d'analyse pourront interpréter ultérieurement. C'est pourquoi l'écriture dans un fichier est généralement le meilleur choix lorsque vous pensez devoir réexaminer les preuves.
Lorsque vous utilisez l'option -w suivie d'un nom de fichier, tcpdump cesse complètement d'envoyer des données à votre écran. Il récupère les données brutes des paquets directement depuis l'interface réseau et les conditionne en toute sécurité au format PCAP standard.
Tout d'abord, assurons-nous que vous êtes dans votre répertoire de projet principal où il est sûr d'enregistrer des fichiers :
cd ~/project
Maintenant, il est temps de capturer. Pour éviter que le programme n'enregistre indéfiniment et ne sature votre disque dur, nous utiliserons l'option -c (count) pour lui dire de s'arrêter exactement après 50 paquets. Nous introduirons également l'option -i any, qui indique au programme de capturer le trafic circulant simultanément sur toutes les interfaces réseau disponibles.
Exécutez la commande suivante pour récupérer 50 paquets et les enregistrer dans un fichier nommé capture.pcap :
sudo tcpdump -i any -c 50 -w capture.pcap
Comme votre terminal basé sur navigateur génère constamment de petites quantités de trafic réseau en arrière-plan pour rester connecté, la capture se terminera probablement très rapidement. Vous verrez un bref résumé comme celui-ci :
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
50 packets captured
52 packets received by filter
0 packets dropped by kernel
Notez la différence cruciale ici : absolument aucun détail spécifique sur les paquets n'a été affiché. Toutes les données sensibles ont été discrètement stockées dans le fichier.
Vous pouvez vérifier que votre nouvel enregistrement existe et vérifier sa taille physique à l'aide de la commande standard de liste sous Linux :
ls -lh capture.pcap
Le fait de voir le fichier capture.pcap listé avec sa taille confirme que le trafic réseau brut a été enregistré avec succès et est prêt pour l'analyse.
Lire le trafic depuis un fichier PCAP
Maintenant que vous avez sécurisé vos preuves, vous avez besoin d'un moyen de les consulter. Ce processus est communément appelé analyse hors ligne.
L'analyse hors ligne présente un avantage pratique important : elle sépare la collecte de l'interprétation. Lors d'un incident en direct, les défenseurs ne savent souvent pas encore quels paquets sont importants. Leur première tâche est de préserver autant de preuves pertinentes que possible. Ce n'est qu'ensuite, une fois la situation stabilisée, qu'ils commencent le processus plus lent consistant à poser des questions ciblées sur les données enregistrées.
Pour ouvrir et lire un fichier PCAP, vous passez du mode écriture au mode lecture en utilisant l'option -r (read), suivie de votre nom de fichier. La beauté de cette commande est que tcpdump traitera le fichier enregistré exactement comme si les paquets circulaient sur le réseau en direct à cet instant.
Exécutez la commande suivante pour renvoyer les paquets de votre fichier capture.pcap nouvellement créé vers votre écran :
tcpdump -r capture.pcap
Remarque : La capture du trafic en direct nécessite un accès système approfondi, c'est pourquoi nous utilisons sudo. Cependant, la lecture d'un fichier normal dont vous êtes propriétaire ne le nécessite pas. Vous pouvez exécuter la commande de lecture en toute sécurité sans privilèges d'administrateur spéciaux.
Soudain, les 50 paquets que vous avez capturés silencieusement plus tôt s'afficheront sur votre terminal, semblant identiques à une capture en direct :
reading from file capture.pcap, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144
10:25:31.123456 IP 10.0.2.100.22 > 10.0.2.2.54321: Flags [P.], seq 1:100, ack 1, win 500, length 99
10:25:31.123500 IP 10.0.2.2.54321 > 10.0.2.100.22: Flags [.], ack 100, win 500, length 0
...
La lecture à partir d'un fichier statique est un immense soulagement pour un analyste. Comme les données sont figées dans le temps, vous pouvez exécuter la commande -r encore et encore, en prenant tout le temps nécessaire, sans jamais altérer la preuve originale.
Pour rationaliser votre analyse, vous pouvez combiner l'option -r avec d'autres options d'affichage. Par exemple, l'utilisation de l'option -n ordonne à tcpdump de ne pas traduire les adresses IP en noms d'hôtes. Cela évite à l'outil d'effectuer des recherches supplémentaires en arrière-plan, ce qui permet un affichage beaucoup plus rapide et une sortie beaucoup plus propre et technique :
tcpdump -n -r capture.pcap
Appliquer des filtres aux PCAP existants
L'enregistrement d'un grand volume de trafic entraîne souvent des fichiers massifs remplis de bavardages non pertinents. Lorsque vous effectuez une enquête, vous ne voulez presque jamais lire chaque ligne de paquet une par une.
C'est pourquoi une bonne collecte de preuves est généralement large, tandis qu'une bonne analyse des preuves est généralement étroite. Lors de la collecte, vous préférez souvent ne rien manquer. Lors de l'analyse, vous réduisez agressivement le champ d'action afin de vous concentrer sur les paquets qui répondent à votre question actuelle. L'utilisation de filtres sur un PCAP enregistré vous permet de faire les deux sans répéter la capture originale.
La véritable magie de tcpdump réside dans le fait que tous les puissants filtres BPF (Berkeley Packet Filters) que vous utilisez sur les réseaux en direct fonctionnent exactement de la même manière sur les fichiers enregistrés. tcpdump lira rapidement l'intégralité du fichier PCAP en arrière-plan, mais n'affichera que les paquets spécifiques qui correspondent au filtre que vous avez choisi.
Testons cela en filtrant votre fichier capture.pcap pour qu'il affiche exclusivement le trafic TCP, en ignorant tout le reste. Exécutez la commande suivante :
tcpdump -n -r capture.pcap tcp
La sortie sera sensiblement plus courte, n'affichant que les paquets identifiés comme appartenant au protocole TCP.
Vous pouvez être aussi précis que nécessaire. Par exemple, si vous suspectez un problème avec le service SSH (Secure Shell) (qui s'exécute intensivement en arrière-plan de votre environnement de terminal sur le port 22), vous pouvez appliquer rétroactivement un filtre de port.
Exécutez cette commande :
tcpdump -n -r capture.pcap port 22
La sortie sur votre écran présentera strictement les paquets dont la source ou la destination correspond au port 22 :
reading from file capture.pcap, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144
10:25:31.123456 IP 10.0.2.100.22 > 10.0.2.2.54321: Flags [P.], seq 1:100, ack 1, win 500, length 99
...
Cette capacité à appliquer des filtres après coup est sans doute la compétence la plus critique en informatique légale. Dans une crise réelle, les défenseurs déploieront un large filet et utiliseront -w pour enregistrer sans distinction tout ce qui se passe sur le réseau. Une fois la poussière retombée, ils utilisent -r et des filtres BPF complexes pour passer calmement au crible la montagne de preuves, localisant le moment exact où un attaquant a pénétré le système.
Extraire un trafic spécifique vers un nouveau PCAP
Parfois, vous découvrirez qu'un fichier de capture est tout simplement trop volumineux pour être facilement transféré vers un autre ordinateur, ou vous pourriez avoir besoin d'isoler quelques paquets hautement suspects pour les envoyer à une équipe de sécurité spécialisée.
Cette pratique est courante dans les enquêtes réelles car les preuves doivent souvent circuler entre les équipes. Un analyste de première ligne peut capturer un fichier énorme, puis n'en extraire que le trafic suspect pour les analystes en logiciels malveillants, les intervenants en cas d'incident ou les développeurs. Les PCAP plus petits et ciblés sont plus faciles à partager, plus rapides à inspecter et moins susceptibles d'exposer des données d'arrière-plan non pertinentes dont les autres équipes n'ont pas besoin.
En combinant brillamment les fonctions de lecture (-r), de filtrage et d'écriture (-w) dans une seule commande, vous pouvez isoler uniquement les paquets pertinents et les enregistrer de manière permanente dans un tout nouveau fichier PCAP hautement ciblé.
Agissons en tant qu'analystes légistes et extrayons uniquement les paquets TCP de notre fichier de preuves original capture.pcap. Nous dirigerons ces paquets spécifiques vers un nouveau fichier nommé tcp_only.pcap.
Exécutez la commande suivante :
tcpdump -r capture.pcap tcp -w tcp_only.pcap
Lorsque vous exécutez cette commande, votre terminal restera une fois de plus parfaitement silencieux. tcpdump lit le fichier original, applique silencieusement le filtre tcp et écrit en toute sécurité les paquets approuvés directement dans le nouveau fichier tcp_only.pcap sans rien afficher à l'écran.
Vous pouvez vérifier que votre nouveau fichier de preuves hautement spécifique a été créé avec succès en listant les fichiers :
ls -lh capture.pcap tcp_only.pcap
Vous verrez les deux fichiers côte à côte. Selon le trafic d'arrière-plan qui se produisait lors de votre capture initiale, tcp_only.pcap sera probablement un peu plus petit que le fichier maître capture.pcap, car il aura réussi à éliminer tout bruit non TCP non pertinent.
Pour garantir que votre nouveau fichier ne contient que les données souhaitées, vous pouvez simplement le relire :
tcpdump -n -r tcp_only.pcap
Cette technique d'extraction simple est extrêmement précieuse pour organiser des données chaotiques et partager en toute sécurité uniquement les éléments nécessaires d'une enquête.
Résumé
Félicitations ! Vous maîtrisez désormais les fondamentaux de la gestion des fichiers PCAP.
Dans ce laboratoire, vous avez appris à traiter le trafic réseau comme une preuve enregistrée. Vous vous êtes exercé à capturer en toute sécurité des événements réseau en direct dans un fichier de stockage à l'aide de l'option -w. Vous avez adopté une mentalité d'analyse hors ligne, en relisant les paquets enregistrés dans votre terminal à l'aide de l'option -r. Vous avez démontré comment appliquer rétroactivement des filtres BPF aux fichiers de capture existants pour éliminer rapidement le bruit, et enfin, vous avez appris à extraire des données très spécifiques dans un nouveau fichier PCAP pour une enquête concise et ciblée.
Ces techniques de gestion de fichiers constituent la procédure opérationnelle standard absolue pour l'informatique légale, la réponse aux incidents et le dépannage réseau avancé. Vous possédez désormais les compétences de base pour capturer et analyser correctement les flux de données invisibles qui alimentent le monde moderne.

