8 Punkte von GN⁺ 2025-02-04 | 2 Kommentare | Auf WhatsApp teilen
  • httptap ist ein Tool, mit dem sich HTTP- und HTTPS-Anfragen von Linux-Programmen leicht einsehen lassen
    • Mit httptap -- lassen sich die Netzwerkanfragen eines bestimmten Befehls nachverfolgen
  • Wenn man zum Beispiel mit dem Befehl curl eine Anfrage an eine bestimmte URL sendet, gibt httptap die entsprechende Anfrage und Antwort aus
    • httptap benötigt keine Root-Rechte und wirkt sich nicht systemweit aus
    • Aktuell funktioniert es nur unter Linux; eine Portierung auf andere Betriebssysteme ist schwierig
  • Installation
  • Schnellstart
    • Mit dem Befehl curl kann man HTTP-Anfragen senden und mit httptap Anfrage und Antwort prüfen
    • Wird mit der Option -L Redirects gefolgt, entstehen zusätzliche HTTP-Anfragen
  • Beispiele mit Google Cloud und kubectl
    • Mit dem Befehl gcloud compute instances list lassen sich die HTTP-Anfragen nachverfolgen, die beim Auflisten von Compute-Instanzen in Google Cloud entstehen
    • Mit dem Befehl kubectl get all lassen sich die HTTP-Anfragen nachverfolgen, die beim Auflisten von Ressourcen in einem Kubernetes-Cluster entstehen
  • DNS-over-HTTP
    • Mit der Option --doh-url von curl lassen sich DNS-over-HTTP-Anfragen ausführen
    • Mit httptap können DNS-Anfragen und -Antworten eingesehen werden
  • HAR-Ausgabe
    • HTTP-Anfragen und -Antworten lassen sich in eine HAR-Datei dumpen
    • HAR-Dateien können mit verschiedenen Viewern visualisiert werden
  • Funktionsweise
    • httptap verwendet Netzwerk-Namespaces, um Befehle in einer isolierten Umgebung auszuführen
    • Es erstellt ein TUN-Device, um den Netzwerkverkehr zu verfolgen, und erzeugt eine temporäre Zertifizierungsstelle, um HTTPS-Traffic zu entschlüsseln
  • Hinweise
    • Prozesse können keine eingehenden Netzwerkverbindungen annehmen
    • Es werden Zugriffsrechte auf /dev/net/tun benötigt
    • Alle ICMP-Echo-Requests werden lokal beantwortet, ohne ICMP-Pakete an das echte Netzwerk zu senden

2 Kommentare

 
halfenif 2025-02-06

Es wurde an der Monastic Academy in Vermont in den USA entwickelt. Wir glauben, dass ein klösterlicher Tagesablauf und allgemeiner die Praxis des buddhistischen spirituellen Pfads ideale Bedingungen für technologische Entwicklung bieten.

Beim Testen habe ich auf GitHub nachgesehen. Klostertraining? Man bekommt fast den Eindruck, als hätten die Beteiligten es im Rahmen spiritueller Vervollkommnung entwickelt.

 
GN⁺ 2025-02-04
Hacker-News-Kommentare
  • Der Abschnitt "How it was made" in der README ist fast so interessant wie das Tool selbst

    • Die Softwareentwicklung erfolgte durch gemeinschaftliches Leben und Meditationspraxis
    • Die Idee, Prozesse in einem isolierten Netzwerk-Namespace auszuführen, ist genial
    • Der HTTPS-Teil ist interessant; dabei werden Umgebungsvariablen gesetzt, die Programme anweisen, das CA-Bundle in einem temporären Verzeichnis zu verwenden
    • Es könnten ähnliche Probleme wie bei http_proxy auftreten, und Programme könnten die Variable ignorieren
    • Es wird ein Overlay-Dateisystem auf /etc/resolv.conf gemountet; ich frage mich, ob es helfen würde, das Verzeichnis /etc/ca-certificates ebenfalls mit einem temporären CA-Bundle zu mounten
  • httptap ist ein HTTP-Tracer auf Prozessebene, der ohne Root-Rechte ausgeführt werden kann

    • Mit httptap <command> gestartet, lassen sich HTTP/HTTPS-Anfragen und -Antworten auf der Standardausgabe mitverfolgen
    • Der Befehl läuft in einem isolierten Netzwerk-Namespace und verwendet seinen eigenen TCP/IP-Stack
    • Es ist kein HTTP-Proxy, und der Befehl muss nicht für die Nutzung eines HTTP-Proxys konfiguriert werden
    • TLS-Datenverkehr wird durch die Echtzeit-Erzeugung einer CA entschlüsselt
    • Es werden weder iptables-Regeln installiert noch systemweite Änderungen vorgenommen
  • Ein weiteres Tool zur Analyse von Netzwerkverkehr ohne Root-Rechte ist rootless Podman mit Pasta

    • Mit der Option --network=pasta:--pcap,myfile.pcap wird der Netzwerkverkehr in eine PCAP-Datei geschrieben
    • Es wurde ein einfaches Beispiel erstellt, um die aufgezeichnete PCAP-Datei mit tshark zu analysieren
  • Die Verwendung eines TUN-Geräts ist eine clevere Idee, und der Abschnitt "How it was made" gehört zu den besten GitHub-READMEs überhaupt

    • Es wird an einem Tool namens Subtrace gearbeitet, das ein- und ausgehende Anfragen automatisch abfangen kann
    • Mit Seccomp BPF werden Systemaufrufe wie socket, connect, recv und accept abgefangen, und alle TCP-Verbindungen werden über Subtrace geproxyt
    • HTTP-Anfragen werden aus TCP-Streams geparst und dem Nutzer im Network-Tab der Chrome DevTools angezeigt
  • Ich werde das sofort zum Debuggen von nginx-Konfigurationen verwenden

    • Derzeit prüfe ich die Ausgabe noch manuell mit curl -v, aber mit diesem Tool lassen sich Redirect-Loops und Ähnliches sofort erkennen
  • Ich habe kürzlich eine ähnliche Funktion in mitmproxy gebaut, aber mit anderen Trade-offs

    • Root-Rechte sind erforderlich, und eine automatische Zertifikatsinstallation gibt es noch nicht
    • Dafür muss die App nicht in einem dedizierten Namespace ausgeführt werden, sodass sich bereits laufende Prozesse erfassen lassen
  • Ein anderer Ansatz mit LD_PRELOAD kann bei statisch gelinkten ELFs scheitern, zum Beispiel bei Golang-Binaries

  • Eine großartige Nutzung des TCP/IP-Stacks im Userspace von gVisor

  • Mitmproxy v11.1 kann ebenfalls etwas Ähnliches leisten