Predstavljen je izid projekta Mitmproxy 11, ki razvija orodja za prestrezanje prometa v HTTPS povezavah, z možnostmi pregleda, modifikacije in ponovnega predvajanja prometa. Glavna naloga Mitmproxy je organizacija sledenja prometu v podjetniških sistemih ter diagnostika težav, na primer, odkrivanje skrite omrežne aktivnosti aplikacij. Izvorne kode projekta so napisane v jeziku Python in so na voljo pod MIT licenco.
Za analizo HTTPS prometa Mitmproxy deluje na tranzitnem vozlišču, kjer prestreza zahteve stranke in jih preusmerja v lastne zahteve do cilja. strežniku. Med sejo stranke Mitmproxy vzpostavi običajno HTTPS povezavo s strežnikom, medtem ko za stranko vzpostavi namišljeno povezavo s ponarejenim SSL certifikatom, ki se generira v realnem času. Sprejeti promet od stranke se preusmeri na ciljni strežnik, odgovori pa se vrnejo stranki.

Za preusmeritev prometa prek mitmproxy se podpira več metod, kot so določitev naslova mitmproxy kot HTTP-proksija v nastavitvah brskalnika, delovanje kot SOCKS5-proksija, uporaba kot obratna proksija pred HTTP-strežnikom in organizacija prozornih preusmeritev z uporabo pravil za filtracijo paketov ali ovijanje usmerjanja. Da namišljeni certifikat, uporabljen pri povezavi s stranko, ne bi povzročal opozoril v brskalniku o težavah z varnostjo povezave, se uporabniku ponuja, da namesti korenski certifikat mitmproxy, kar lahko stori ročno ali tako, da v brskalniku odpre poseben naslov mitm.it.

Mitmproxy podpira HTTP/2, HTTP/3, Websockets, normalizacijo zaporedja paketov v toku, povezovanje skriptnih obdelovalcev za modifikacijo prometa v realnem času, shranjevanje zahtevkov za nadaljnje ponavljajoče se predvajanje, generiranje TLS-certifikatov za intercepted sessions, cleaning the modification time headers 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), modifying content and headers based on regular expressions. A command-line utility similar to tcpdump, mitmdump, and the web interface mitmweb are available for traffic analysis.


A key enhancement in the new version is full support for the HTTP/3 protocol, which employs the QUIC (Quick UDP Internet Connections) protocol as a transport for HTTP/2 (QUIC is built on top of UDP and supports multiplexing multiple connections while providing encryption methods equivalent to TLS/SSL). In Mitmproxy for HTTP/3, both transparent traffic interception and reverse proxy modes can be utilized. The interception of HTTP/3 traffic has been tested in Firefox, Chrome, and various versions of cURL.
Other notable changes in the new branch relate to improved DNS support regarding the placement of DNS records for HTTPS and ECH (Encrypted Client Hello). The new version adds support for DNS record queries other than A/AAAA (for instance, in ECH, the encryption public key information is transmitted in HTTPSSVC DNS records). An ECH key cleaning mode has been added for HTTPS records in DNS. The transition to the Hickory library, written in Rust and developed by the Let’s Encrypt project, has been made for DNS. Support for DNS-over-TCP has been implemented. An option to disable processing of settings from /etc/hosts has been realized.
Izvor: opennet.ru
