Tutvustame Mitmproxy 11 projekti väljalaske, mis arendab tööriistu HTTPS-ühenduste kaudu liikluse pealtkuulamiseks, inspektsiooni, muutmise ja liikluse taasesitamiseks. Peamine eesmärk Mitmproxy on korraldada liikluse jälgimist ettevõtte süsteemides ning diagnostika probleemide, nagu rakenduste varjatud võrgutegevuse tuvastamine. Projekti lähtekood on kirjutatud Pythonis ja jagatakse MIT-litsentsi alusel.
HTTPS-liikluse analüüsimiseks paigaldatakse Mitmproxy üleminekuse sõlme, kus see pealtkuulab kliendi päringud ja edastab need oma poolt saadetavatele päringutele sihtmärgile serverile. Kliendiseansi käigus seab Mitmproxy tavalise HTTPS-ühenduse nõutud serveriga, samas kui kliendi ja sihiserveri nimel luuakse valeühendus vale SSL-sertifikaadiga, mis genereeritakse kliendi jaoks reaalajas. Kliendilt saadud liiklus suunatakse sihiserverisse ja saadud vastused edastatakse tagasi kliendile.

Traffici edastamiseks mitmproxy kaudu on toetatud mitmeid meetodeid, nagu brauseri seadetes HTTP-proksi aadressina mitmproxy määramine, SOCKS5-proksina töötamine, pöördpoksi rollis HTTP-serveri ette seadmine ja läbipaistva edastamise korraldamine paketifiltri reeglite või marsruutimise ümardamise kaudu. Et klientidega ühenduse loomisel kasutatav vale sertifikaat ei põhjustaks brauseri poolt teateid ühenduse turvaprobleemide kohta, soovitatakse kasutaja süsteemi installida mitmproxy juurs sertifikaat, mida saab teha nii käsitsi kui ka avanedes brauseris spetsiaalne host mitm.it.

Mitmproxy toetab HTTP/2, HTTP/3, Websockets'i, pakettide järjestuse normaliseerimist voos, skriptide töötlejatena ühendamist, et kohapeal liiklust muuta, päringute salvestamist edasiseks korduste jaoks, genereerimist. TLS-sertifikaadid kliendi küljel vahemälu keelamiseks, modifitseerimise aja päiste puhastamine, tagasiprosessimise režiim (Reverse proxy) liikluse suunamiseks serverisse, blokeerimisloendid teatud päringute filtreerimiseks, valikuline päringute ümbersuunamine (sealhulgas kohalike failide vastamise võimalus), sisu ja päiste muutmine regulaaravalduste põhjal. Liikluse analüüsimiseks pakutakse sarnast tcpdump'i käsurea tööriista mitmdump ja veebivahendit mitmweb.


Uue versiooni peamine täiustus on täieulatuslik tugi HTTP/3 protokollile, kus kasutatakse protokolli QUIC (Quick UDP Internet Connections) HTTP/2 transpordiks (QUIC on UDP protokolli pealispind, mis toetab mitme ühenduse mitmekordset edastamist ja pakub meetodeid krüpteerimiseks, mis on ekvivalent TLS/SSL-ile). Mitmprotectionis saab HTTP/3 puhul kasutada nii läbipaistvat liikluse pealtkuulamist kui ka tööd tagasiprosessorina. HTTP/3 pealtkuulamist on testitud Firefoxis, Chromes ja erinevates cURL versioonides.
Uued märkimisväärsed muudatused uues harus on seotud DNS-i toe parandamisega seoses DNS-kirjete paigutamisega HTTPS-i ja ECH (Encrypted Client Hello) konteksti. Uues versioonis on lisatud tugi DNS-kirjete päringutele, mis ei ole A/AAAA (näiteks ECH puhul edastatakse krüpteerimise avaliku võti DNS-kirjadesse HTTPSSVC). Lisatud on ECH võtmete puhastamise režiim HTTPS-kirjadest DNS-is. DNS-iga töötamiseks on ülemineku sooritatud Rusti maakeeles kirjutatud Hickory teegile, mille arendab Let’s Encrypt projekt. Lisatud on tugi DNS-over-TCP. Tehtud on valik seadete töötlemise keelamiseks /etc/hosts failist.
Allikas: opennet.ru
