httptap est un outil qui permet de voir facilement les requêtes HTTP et HTTPS effectuées par des programmes Linux
- Vous pouvez suivre les requêtes réseau d’une commande spécifique avec
httptap --
- Par exemple, si vous envoyez une requête vers une URL donnée avec la commande
curl, httptap affiche cette requête ainsi que la réponse
httptap ne nécessite pas les privilèges root et n’affecte pas l’ensemble du système
- Il fonctionne actuellement uniquement sous Linux, et son portage vers d’autres systèmes d’exploitation serait difficile
- Installation
- Démarrage rapide
- Vous pouvez envoyer une requête HTTP avec la commande
curl et vérifier la requête et la réponse avec httptap
- Si vous utilisez l’option
-L pour suivre les redirections, des requêtes HTTP supplémentaires sont émises
- Exemples avec Google Cloud et kubectl
- Vous pouvez suivre les requêtes HTTP générées lors de l’exécution de la commande
gcloud compute instances list pour lister les instances de calcul sur Google Cloud
- Vous pouvez suivre les requêtes HTTP générées lors de l’exécution de la commande
kubectl get all pour lister les ressources d’un cluster Kubernetes
- DNS-over-HTTP
- Vous pouvez effectuer des requêtes DNS-over-HTTP avec l’option
--doh-url de curl.
- Vous pouvez vérifier les requêtes et réponses DNS avec
httptap.
- Sortie HAR
- Les requêtes et réponses HTTP peuvent être exportées dans un fichier HAR.
- Le fichier HAR peut être visualisé avec différents outils.
- Fonctionnement
httptap utilise des espaces de noms réseau pour exécuter les commandes dans un environnement isolé
- Il crée un périphérique TUN pour suivre le trafic réseau et génère une autorité de certification temporaire afin de déchiffrer le trafic HTTPS
- Points à noter
- Le processus ne peut pas accepter de connexions réseau entrantes.
- Un droit d’accès à
/dev/net/tun est nécessaire.
- Toutes les requêtes ICMP echo sont renvoyées localement sans envoyer de paquets ICMP sur le réseau réel
2 commentaires
Il a été développé à la Monastic Academy, dans le Vermont, aux États-Unis. Nous pensons qu’un emploi du temps monastique, et plus généralement la pratique de la voie spirituelle bouddhiste, offrent des conditions idéales au développement technologique.
Avis sur Hacker News
La section "How it was made" du README est aussi intéressante que l’outil lui-même
http_proxypeuvent survenir, et le programme peut ignorer la variable/etc/resolv.conf, et je me demande s’il serait utile de monter aussi le répertoire/etc/ca-certificatespour utiliser le bundle CA temporairehttptap est un traceur HTTP à l’échelle du processus qui peut s’exécuter sans privilèges root
httptap <command>et permet de suivre les requêtes et réponses HTTP/HTTPS sur la sortie standardUn autre outil permettant d’analyser le trafic réseau sans privilèges root est l’association de Podman rootless et de Pasta
--network=pasta:--pcap,myfile.pcap, le trafic réseau est enregistré dans un fichier PCAPUtiliser un périphérique TUN est une idée élégante, et la section "How it was made" est l’une des meilleures README GitHub
Je vais l’utiliser immédiatement pour déboguer une configuration nginx
curl -vet j’inspecte manuellement la sortie, mais cet outil permet de repérer instantanément des boucles de redirection et autres problèmesJ’ai récemment ajouté une fonctionnalité similaire à mitmproxy, mais avec d’autres compromis
Une autre approche utilisant LD_PRELOAD peut échouer avec des ELF liés statiquement, par exemple des binaires golang
C’est une excellente utilisation de la pile TCP/IP en espace utilisateur de gVisor
Mitmproxy v11.1 peut aussi offrir une fonctionnalité similaire