Verkehrsanalyse mit mitmproxy: Ein vollständiger Leitfaden für Debugging und Sicherheit
Dieser Artikel untersucht das Tool Mytemproxy zur Analyse des HTTP/HTTPS-Datenverkehrs und seine Anwendungen in den Bereichen Sicherheit und Debugging.

Verkehrsanalyse mit mitmproxy: Ein vollständiger Leitfaden für Debugging und Sicherheit

In diesem Artikel stellen wir Ihnen das Tool mitmproxy vor, mit dem Sie HTTP/HTTPS-Datenverkehr analysieren und debuggen können. Von der Installation und Einrichtung über Sicherheitstipps bis hin zu praktischen Anwendungsbeispielen – dieser Leitfaden hilft Ihnen, Ihren Datenverkehr effektiv zu verwalten.
0 Aktien
0
0
0
0

 

Einführung

mitmproxy ist ein leistungsstarkes und flexibles Werkzeug zum Untersuchen, Manipulieren und Analysieren des Datenverkehrs. HTTP/HTTPS In Entwicklungsumgebungen wird es zum Sicherheitstesten und Debuggen von mobilen und Webanwendungen verwendet. Diese Anleitung bietet eine schrittweise Implementierung, praktische Beispiele und gängige Konfigurationen (einschließlich transparenter ProxySicherheitstipps und Skalierungsmethoden werden besprochen.

Dieser Artikel richtet sich an Website-Administratoren, Entwickler, DevOps- und Sicherheitsteams und enthält Beispiele und ausführbare Linux-Befehle.

 

Warum sollte man den Datenverkehr mit mitmproxy analysieren?

mitmproxy Möglichkeit, TLS-verschlüsselte Anfragen und Antworten durch die Installation eines lokalen Zertifikats anzuzeigen (MITM CA) auf dem Client; diese Funktion eignet sich hervorragend zum Debuggen von APIs, zum Analysieren des Anwendungsverhaltens, für Sicherheitstests und zum Aufzeichnen/Wiedergeben von Datenverkehr.

Das Set enthält Werkzeuge mitmproxy (Interaktiv), mitmdump (für Skripte und Backend) und mitmweb (Weboberfläche).

Python-Skripte können Filterung, Protokollierung und Nutzlastmodifikation automatisieren. Dieses Tool ist Docker, systemd, iptables/nftables Es ist kompatibel und kann verwendet werden als explizit Oder transparenter Proxy Es ist.

 

Praktische Anwendungsfälle

 

API- und mobiles Debugging

Um JSON-Probleme, CORS-Fehler oder Probleme mit der OAuth-Authentifizierung zu beheben, können Sie mitmproxy zwischen Mobilgerät und Server platzieren und die Anfragen/Antworten beobachten.

Einfache Methode: Konfigurieren Sie den Client auf die IP-Adresse des mitmproxy-Servers (Standardport). 8080) und installieren Sie das CA-Zertifikat auf dem Gerät.

 

Penetrationstests und Sicherheitsbewertung (unter Einhaltung der rechtlichen Grundsätze)

Für Penetrationstests ermöglicht mitmproxy logische Angriffe, Token-Leak-Prüfungen und TLS-Analysen. Halten Sie immer einen schriftlichen Vertrag und eine schriftliche Genehmigung bereit. Und vermeiden Sie es, sensible Daten ohne Einwilligung zu sammeln.

 

Verkehrsaufzeichnung und -wiedergabe

Um Fehler zu reproduzieren oder einen Lasttest durchzuführen, können Sie den erfassten Datenverkehr mit dem Server-Replay Spielen Sie, um das Server- oder Clientverhalten neu zu bewerten.

 

Installation und Werkzeuge

 

Grundlegende Installation unter Debian/Ubuntu

Installation mit pip (empfohlen für die neueste Version):

pip3 install mitmproxy

Installation aus einem Paket (einfach, aber älter):

sudo apt update
sudo apt install mitmproxy

 

Schnelle Ausführung

Drei Hauptwerkzeuge:

  • mitmproxy — Interaktive Konsolenschnittstelle

  • mitmdump — Geeignet für die Aufzeichnung von Skripten und Backends

  • mitmweb — Webinterface mit grafischer Benutzeroberfläche

Ausführungsbeispiel:

mitmweb --listen-port 8080 --showhost

 

Ausführung in Docker

docker run --rm -p 8080:8080 -p 8081:8081 -v $(pwd)/certs:/home/mitmproxy/.mitmproxy mitmproxy/mitmproxy mitmweb --web-host 0.0.0.0

 

Einrichtung als expliziter Proxy (Clientkonfiguration)

Allgemeine Schritte:

  1. Führen Sie mitmproxy aus:

    mitmproxy --listen-port 8080
  2. Generieren und Installieren eines CA-Zertifikats:

    Nach dem Ausführen von mitmproxy ist die CA in ~/.mitmproxy/ wird platziert (Datei mitmproxy-ca-cert.pem).

    Im Client-Browser oder Betriebssystem können Sie das Zertifikat wie folgt anzeigen: Vertrauen Installieren (Windows: MMC > Zertifikate; macOS: Schlüsselbund; Android: Einstellungen > Sicherheit > Aus Speicher installieren).

 

Transparenter Proxy-Modus (keine manuelle Client-Konfiguration)

Für Umgebungen, in denen Proxy-Einstellungen nicht auf dem Client konfiguriert werden können (z. B. bei IoT-Geräten oder internen Netzwerken), verwenden Sie die transparent Dieser Modus erfordert eine Datenverkehrsweiterleitung mit iptables/nftables/TPROXY Und es verfügt über aktiviertes IP-Forwarding im Kernel.

 

IP-Weiterleitung aktivieren

sudo sysctl -w net.ipv4.ip_forward=1

 

iptables-Beispiel zur Umleitung von HTTP/HTTPS auf Port 8080

Leiten Sie die TCP-Ports 80 und 443 auf Port 8080 auf demselben Rechner weiter (für lokalen Datenverkehr):

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8080

 

mitmproxy im transparenten Modus ausführen

mitmproxy --mode transparent --listen-port 8080

Hinweis: Für HTTPS-Datenverkehr im transparenten Modus muss eine Zertifizierungsstelle auf den Clients installiert sein. Für eine skalierbare Implementierung am Netzwerkrand verwenden Sie TPROXY + nftables Dient dazu, die ursprüngliche IP-Adresse des Clients zu erhalten.

 

Datenströme aufzeichnen, speichern und konvertieren

 

Aufzeichnung mit mitmdump

mitmdump -w flows.mitm

 

Lesen der aufgezeichneten Datei

mitmproxy -r flows.mitm

 

Konvertierung in HAR/pcap

mitmproxy/mitmdump verfügen über Exportfunktionen (mitmweb bietet eine Export-HAR-Option).

Für pcap können Sie gleichzeitig tcpdump ausführen und anschließend Wireshark mit pcap analysieren:

sudo tcpdump -i eth0 -w capture.pcap port 80 or port 443

Wenn Sie TLS in Wireshark analysieren müssen und die Kontrolle über den Browser haben, können Sie Folgendes tun: SSLKEYLOGFILE Aktivieren Sie diese Option, um clientseitige Schlüssel zu generieren und an Wireshark zu übergeben.

 

Skripte und Add-ons

mitmproxy lässt sich in Python integrieren und ermöglicht die Entwicklung von Plugins. Das folgende Beispiel zeigt das Protokollieren und Bearbeiten des JSON-Antworttextes.

from mitmproxy import http
import json

def response(flow: http.HTTPFlow):
    if "api.example.com" in flow.request.pretty_host():
        # log URL
        print(flow.request.url)
        # modify JSON response
        if "application/json" in flow.response.headers.get("content-type", ""):
            data = json.loads(flow.response.get_text())
            data["injected"] = True
            flow.response.set_text(json.dumps(data))

Führe das Add-on aus:

mitmdump -s modify_response.py

 

Filter und Flow-Suche

Nützliche Beispiele für Filter:

  • Nur Anfragen an eine bestimmte Domain anzeigen: ~d example.com

  • Nur Antworten mit 5xx-Fehlern anzeigen: ~s 500-599

Beispiel für die Ausführung von mitmproxy mit folgenden Einstellungen:

mitmproxy --set stream_large_bodies=2m --showhost

 

TLS-Analyse und technische Details

mitmproxy kann TLS-ClientHalloVerschlüsselungssuiten und SNI und bei der Abnahme der Fingerabdrücke mitwirken.

Für eine vollständige Analyse von TLS in Entwicklungsumgebungen installieren Sie die Zertifizierungsstelle und erfassen Sie die entsprechenden Daten. JA3 Oder UADetector Es funktioniert.

 

Skalierbarkeit und Leistung

mitmproxy Es basiert auf Python und muss auf geeigneter Hardware oder einem Cluster für hohe Arbeitslasten ausgeführt werden.

Für hohe Skalierbarkeit: Nutzen Sie dedizierte Server oder Cloud-Instanzen mit starker Netzwerkanbindung, z. B. einen Cloud-Server mit 10-Gbit/s-Anschlüssen.

In Produktionsumgebungen, die Angriffsresistenz erfordern, sollten Antivirenserver eingesetzt werden.DDoS und Load Balancer. Unser Unternehmen arbeitet mit Mehr als 85 Standorte weltweit Es bietet die Möglichkeit, an Randpunkten eingesetzt zu werden, was nützlich ist, um die Latenz beim Handel und bei Spielen zu reduzieren.

 

Betriebssicherheit und Datenschutz

Netzwerkanalysen dürfen nur mit ausdrücklicher Genehmigung durchgeführt werden. Das Aufzeichnen von Datenverkehr ohne rechtliche Einwilligung ist eine Straftat.

Speichern Sie den privaten CA-Schlüssel auf Hardware oder in einem Schlüsselmanager und beschränken Sie den Zugriff.

Protokolldateien können sensible Daten (Tokens, Cookies) enthalten; legen Sie eine Aufbewahrungsrichtlinie fest und verschlüsseln Sie diese.

Für sensible Bereiche (Zahlungen, Karten) gelten folgende Regeln: PCI/DSS und MITM-Tools nur in der Testphase verwenden.

Bei Verwendung für Handels- oder Spieleanalysen sollten Sie einen dedizierten Trading-VPS oder Gaming-VPS mit entsprechender Service-Level-Vereinbarung (SLA) und DDoS-Schutz nutzen.

 

Praktische Beispiele: Mobilgeräte, API und Wiedergabe

 

Mobile App-Debugging

  1. Führen Sie mitmproxy auf Ihrem Laptop aus:

    mitmweb --listen-host 0.0.0.0 --listen-port 8080
  2. Verbinden Sie den Laptop mit demselben WLAN-Netzwerk; IP-Adresse zum Beispiel. 192.168.1.10.

  3. Stellen Sie in den WLAN-Einstellungen Ihres Telefons den Proxy auf „Manuell“ und geben Sie die IP-Adresse ein. 192.168.1.10 und Hafen 8080 Leg es hin.

  4. Installieren Sie das mitmproxy-Zertifikat auf dem Telefon.

  5. Datenverkehr auf mitmweb anzeigen und filtern.

 

API-Datenverkehr zu Testzwecken aufzeichnen und wiedergeben

Aufnahme:

mitmdump -w api_flows.mitm

Übertragen:

mitmdump --server-replay api_flows.mitm --server-replay-nopop

 

Integration mit anderen Tools (Wireshark, Burp, CI)

Verwenden Sie tcpdump, um pcap-Dateien aufzuzeichnen und diese in Wireshark zu analysieren.

Mitmproxy kann als Traffic-Vorprozessor für Burp oder jeden anderen Analysator verwendet werden.

Im CI/CD-Prozess ist es hilfreich, Verkehrsbeispiele mit mitmdump zu erfassen und diese während der Integrationsphasen abzuspielen, um reale Bedingungen zu simulieren.

 

Optimale Konfigurationen je nach Anwendung

Für den Handel: Latenzarmer VPS, Server in Börsennähe, Netzwerk mit BGP und geeignetem CDN. Nutzen Sie einen dedizierten Trading-VPS, um mitmproxy im Testmodus und ein separates Logging-Tool auszuführen, damit die Handelsausführung nicht beeinträchtigt wird.

Für das Spiel: Gaming-VPS mit niedrigem Ping. Hinweis: Nur mitmproxy. TCP/HTTP unterstützt; zur Analyse von UDP benötigen Sie andere Tools wie z. B. tcpreplay/Wireshark Und tun/tap Verwenden.

Für KI/Rendering: mitmproxy eignet sich gut zum Debuggen von Modell-APIs; für rechenintensive Netzwerkprozesse sollte ein Grafikserver (GPU Cloud) verwendet und mitmproxy auf einem separaten Rechenserver platziert werden.

 

Vor jeder Analyse muss die schriftliche Genehmigung des Dienstinhabers oder Nutzers eingeholt werden.

Daten wie Karteninformationen, Passwörter und Token sollten sicher aufbewahrt und nach Gebrauch gelöscht werden.

Für den Produktivbetrieb sollten geschützte Server und eine Anti-DDoS-Lösung eingesetzt werden, um Missbrauch zu verhindern.

 

Schlussfolgerung und praktische Empfehlungen

Mitmproxy bietet eine flexible Lösung zur Verkehrsanalyse für Debugging, Sicherheitstests und die Analyse des Datenverkehrs. Dank einfacher Installation, Python-Skriptfähigkeit und Aufzeichnungs-/Wiedergabefunktionen ist es besonders nützlich in der Entwicklung, Qualitätssicherung und bestimmten Sicherheitsszenarien.

Für die Produktion und Analyse im großen Maßstab sollten Server mit einem starken Netzwerk, DDoS-Schutz und Einsatzorten in der Nähe der Nutzer verwendet werden.

 

Häufig gestellte Fragen

Das könnte Ihnen auch gefallen