A fost lansată versiunea proiectului Mitmproxy 11, care dezvoltă un set de instrumente pentru interceptarea traficului în conexiuni stabilite prin HTTPS, având capacități de inspectare, modificare și reproducere a traficului. Principalul scop al Mitmproxy este organizarea monitorizării traficului în sistemele corporative și diagnosticarea problemelor, de exemplu, identificarea activității rețelei ascunse a aplicațiilor. Codul sursă al proiectului este scris în Python și este distribuit sub licența MIT.
Pentru analiza traficului HTTPS, Mitmproxy este plasat pe un nod de tranzit, unde interceptă cererile clientului și le retransmite ca cereri trimise de el către destinație. server. Cu serverul solicitat în timpul sesiunii clientului, Mitmproxy stabilește o conexiune HTTPS obișnuită, iar cu clientul, în numele serverului țintă, se stabilește o conexiune falsificată cu un certificat SSL generat pe loc pentru client. Traficul primit de la client este redirecționat către serverul țintă, iar răspunsurile primite sunt retransmise clientului.

Pentru redirecționarea traficului prin mitmproxy sunt suportate mai multe metode, cum ar fi specificarea adresei mitmproxy ca proxy HTTP în setările browserului, funcționarea ca proxy SOCKS5, utilizarea ca proxy invers în fața serverului HTTP și organizarea unei redirecționări transparente prin reguli de filtrare a pachetelor sau înglobarea rutării. Pentru ca certificatul falsificat utilizat în conexiunea cu clientul să nu genereze alerte din partea browserului referitoare la probleme de securitate, utilizatorului i se propune să instaleze certificatul rădăcină mitmproxy, lucru ce poate fi realizat fie manual, fie deschizând în browser un host special mitm.it.

Mitmproxy suportă HTTP/2, HTTP/3, Websockets, normalizarea ordinii pachetelor în flux, conectarea scripturilor de procesare pentru modificarea traficului în timp real, salvarea cererilor pentru o reproducere ulterioară, generarea. certificatelor TLS pentru sesiuni interceptate, curățarea antetelor privind timpul de modificare pentru a dezactiva caching-ul pe partea clientului, modul proxy invers (Reverse proxy) pentru a redirecționa traficul către server, listele de blocare pentru filtrarea anumitor cereri, redirecționarea selectivă a cererilor (inclusiv pentru livrarea fișierelor locale ca răspuns) și modificarea conținutului și antetelor pe baza expresiilor regulate. Pentru analiza traficului este oferită o utilitar de linie de comandă similar cu tcpdump, mitmdump și interfața web mitmweb.


Îmbunătățirea cheie în noua versiune este suportul complet pentru protocolul HTTP/3, care utilizează protocolul QUIC (Quick UDP Internet Connections) ca transport pentru HTTP/2 (QUIC este un overlay pe protocolul UDP, care suportă multiplexarea mai multor conexiuni și oferă metode de criptare echivalente TLS/SSL). În Mitmproxy pentru HTTP/3 se poate folosi atât interceptarea transparentă a traficului, cât și funcționarea ca proxy invers. Funcționarea în interceptarea HTTP/3 a fost testată în Firefox, Chrome și diverse versiuni de cURL.
Alte modificări notabile în noua ramură sunt legate de îmbunătățirea suportului DNS în contextul găzduirii în DNS a înregistrărilor pentru HTTPS și ECH (Encrypted Client Hello). În noua versiune a fost adăugat suportul pentru cererea de înregistrări DNS diferite de A/AAAA (de exemplu, în ECH informația despre cheia publică de criptare este transmisă în înregistrările DNS HTTPSSVC). A fost adăugat un mod de curățare a cheilor ECH din înregistrările HTTPS în DNS. Pentru a lucra cu DNS a fost realizat trecerea la biblioteca Hickory, scrisă în Rust și dezvoltată de proiectul Let’s Encrypt. A fost adăugat suport pentru DNS-over-TCP. A fost implementată o opțiune pentru dezactivarea procesării setărilor din /etc/hosts.
Sursa: opennet.ro
