Scapy est une bibliothèque Python qui permet de fabriquer, d’envoyer, de capturer et de décoder des paquets réseau, couche par couche et champ par champ. Elle a été écrite en 2003 par Philippe Biondi, chercheur en sécurité, et elle est aujourd’hui maintenue par l’équipe SecDev avec une communauté de contributeurs réunie sur le dépôt GitHub secdev/scapy. Le code est publié sous licence libre GPL v2. D’après la page PyPI du projet, la version 2.8.0 est sortie le 2 octobre 2026 et réclame Python 3.7 au minimum.
À quoi sert Scapy
Pour comprendre l’intérêt de Scapy, il faut se rappeler qu’un outil réseau classique a un rôle fixé à l’avance. Ping envoie une requête ICMP, Nmap cherche des ports ouverts. Scapy, lui, ne décide rien à votre place. Il met à disposition des classes Python qui représentent les protocoles, Ethernet, IP, TCP, UDP, DNS, ARP et des centaines d’autres, et l’on assemble un paquet en empilant ces couches avec l’opérateur de division. Chaque champ a une valeur par défaut raisonnable que l’on peut remplacer, ce qui permet de produire en une ligne un paquet parfaitement valide ou, au contraire, volontairement malformé.
La documentation résume la philosophie du projet par une formule : Scapy décode, il n’interprète pas. Quand une réponse arrive, la bibliothèque la restitue intégralement, décodée, et laisse l’utilisateur tirer ses propres conclusions au lieu de lui afficher un verdict du type « port filtré ». Cette approche explique pourquoi les auteurs le présentent comme un remplaçant de hping, d’arping ou d’arpspoof, et d’une bonne partie de Nmap et de tcpdump. Il lit et écrit aussi les fichiers pcap, ce qui en fait un complément naturel de Wireshark.
Dans la même catégorie de notre logithèque, Ostinato et Masscan répondent à des besoins différents. Ostinato est un générateur de trafic graphique pensé pour produire des flux à haut débit avec des gabarits de paquets. Masscan est un scanner de ports spécialisé, écrit en C, conçu pour balayer des plages d’adresses immenses le plus vite possible. Scapy se situe ailleurs : il privilégie la souplesse et l’exactitude à la vitesse, et s’adresse à celui qui veut examiner un échange précis ou écrire un test sur mesure.
On s’en sert pour vérifier qu’un pare-feu applique bien ses règles, pour reproduire un bug de pile réseau, pour écrire un petit fuzzer, ou pour enseigner le fonctionnement de TCP en observant chaque segment. La version 2.8.0 a élargi le champ d’action avec des protocoles automobiles comme SAE J1939 et UDS, des modules Bluetooth, DICOM, PTP ou encore le protocole classique de MySQL, selon les notes de version publiées sur GitHub.
Pour qui ?
Scapy s’adresse d’abord aux professionnels de la sécurité offensive et défensive, aux administrateurs réseau qui veulent diagnostiquer un comportement étrange, aux développeurs de protocoles et aux enseignants. Une seule condition est réellement nécessaire : être à l’aise avec Python, puisque le langage sert à la fois d’interface et de langage de script.
Ses limites sont tout aussi claires. Écrit en Python, Scapy n’est pas conçu pour saturer un lien ou balayer des millions d’adresses : pour ces tâches, Ostinato ou Masscan seront bien plus efficaces. L’envoi et la capture de paquets bruts exigent des droits administrateur sur toutes les plateformes. Enfin, l’outil n’est pas un analyseur graphique ; pour explorer une grosse capture, Wireshark reste le bon réflexe.
Télécharger Scapy sans risque
La version officielle est publiée sur l’index Python PyPI, et la commande pip install scapy suffit sous Linux et macOS. Le site scapy.net renvoie vers le dépôt GitHub secdev/scapy, où l’on trouve le code source et les archives de chaque version. Debian et Ubuntu proposent aussi le paquet python3-scapy, et OpenBSD le paquet python-scapy, d’après la documentation d’installation. Sous Windows, il faut d’abord installer le pilote de capture Npcap, puis Scapy par pip ; la documentation précise que WinPcap fonctionne encore mais n’est plus pris en charge.
Scapy est entièrement gratuit et ne possède ni édition payante ni version professionnelle. Comme il s’agit d’un paquet Python, la principale menace est le paquet homonyme ou presque homonyme déposé sur PyPI par un inconnu : vérifiez que vous installez bien le projet dont l’auteur affiché est Philippe Biondi et dont la page d’accueil pointe vers scapy.net. Un installateur exécutable pour Windows proposé par un site de téléchargement tiers n’a aucune raison d’exister et doit être évité.
Questions fréquentes
Scapy est-il gratuit ?
Oui. Scapy est un logiciel libre distribué sous licence GPL v2, sans version payante ni fonctions bloquées. La documentation, elle, est publiée sous licence Creative Commons BY-NC-SA 2.5, ce qui n’a aucune incidence sur l’utilisation du logiciel.
Faut-il être administrateur pour utiliser Scapy ?
Pour envoyer des paquets bruts ou écouter une interface, oui, sous Linux, macOS comme Windows, car le système réserve ces opérations aux comptes privilégiés. Lire un fichier pcap existant ou construire des paquets sans les émettre fonctionne en revanche avec un compte ordinaire.
Scapy fonctionne-t-il sous Windows ?
Oui, à condition d’installer au préalable le pilote Npcap, indispensable pour accéder à la carte réseau. La documentation conseille de désactiver le mode de compatibilité WinPcap lors de l’installation de Npcap, puis d’installer Scapy avec pip et de le lancer depuis l’invite de commandes.