Mitmproxy 11-projektet er blevet lanceret, som udvikler værktøjer til at intercept trafik inden for forbindelser etableret via HTTPS, med funktioner til inspektion, modifikation og reproduktion af trafik. Hovedformålet med Mitmproxy er at organisere trafikovervågning i virksomhedssystemer og diagnosticere problemer, for eksempel at identificere skjult netværksaktivitet fra applikationer. Kildekoderne til projektet er skrevet i Python og distribueres under MIT-licensen.
For at analysere HTTPS-trafik placeres Mitmproxy på transitknuden, hvor den opfanger klientanmodninger og transmitterer dem som egne anmodninger til målet server. Under den ønskede klient-sessionet opretter Mitmproxy en normal HTTPS-forbindelse med serveren, mens der etableres en falsk forbindelse med klienten på vegne af målsserveren med et falsk SSL-certifikat, der genereres i realtid for klienten. Den trafik, der modtages fra klienten, omdirigeres til målsserveren, og de modtagne svar sendes tilbage til klienten.

Til at omdirigere trafik gennem mitmproxy understøttes flere metoder, såsom at angive mitmproxy-adressen som HTTP-proxy i browserindstillingerne, arbejde som SOCKS5-proxy, bruge det som en omvendt proxy foran HTTP-serveren og organisere transparent forwarding ved hjælp af pakkefilteringsregler eller ruteindsættelse. For at sikre, at det falske certifikat, der bruges ved forbindelsen med klienten, ikke medfører advarsler fra browseren om sikkerhedsproblemer, foreslås det at installere mitmproxy-rodcertifikatet på brugerens system, hvilket kan gøres manuelt eller ved at åbne en særlig vært i browseren, mitm.it.

Mitmproxy understøtter HTTP/2, HTTP/3, Websockets, normalisering af pakkefølge i strømmen, tilslutning af handler-scripts til at ændre trafik i realtid, gemme anmodninger til senere reproduktion, generering TLS-certifikater For intercepted sessions, header cleaning regarding modification time to disable client-side caching, reverse proxy mode for redirecting traffic to the server, blocklists for filtering specific requests, selective request redirection (including serving local files in response), and content and header modification based on regular expressions. For traffic analysis, a command line utility similar to tcpdump, mitmdump, and the web interface mitmweb are available.


A key improvement in the new version is the full support for the HTTP/3 protocol, which utilizes the QUIC (Quick UDP Internet Connections) protocol as a transport for HTTP/2 (QUIC is an overlay on top of the UDP protocol that supports multiplexing multiple connections and provides encryption methods equivalent to TLS/SSL). In Mitmproxy for HTTP/3, both transparent traffic interception and operation as a reverse proxy can be used. HTTP/3 interception has been tested in Firefox, Chrome, and various versions of cURL.
Other notable changes in the new release are related to improved DNS support in the context of hosting DNS records for HTTPS and ECH (Encrypted Client Hello). The new version adds support for DNS record requests other than A/AAAA (for example, in ECH, encryption public key information is transmitted in HTTPSSVC DNS records). An ECH key cleaning mode has been added from HTTPS records in DNS. For working with DNS, there has been a transition to the Hickory library, written in Rust and developed by the Let’s Encrypt project. DNS-over-TCP support has been added. An option to disable processing settings from /etc/hosts has been implemented.
Kilde: opennet.ru
