Istraživači sa Sveučilišta Maryland u okviru projekta poduzeli su pokušaj stvaranja za automatizaciju definiranja metoda korištenih za cenzuriranje pristupa sadržaju. Ručno pokušavanje pretraživanja mogućih propusta sustava dubinske inspekcije paketa (DPI) dovoljno je težak i dugotrajan proces, a u Genevi su pokušali koristiti za procjenu značajki DPI, otkrivanje grešaka u implementaciji i razvijanje optimalne strategije za zaobilaženje blokade s klijentske strane. Kod projekta napisan je u programskom jeziku Python.
Oprema koja se koristi za blokiranje DPI ima vlastite , što omogućuje skrivanje pristupa zabranjenim resursima ili izbjegavanje blokade. Na primjer, u najjednostavnijem slučaju, kada se organizira blokada putem zamjene lažnog odgovora (koriste pasivni DPI), dovoljno je s klijentske strane lažni odgovor koji je poslao DPI. U slučaju korištenja aktivnog DPI-a, može se pokušati sakriti samu činjenicu pristupa blokiranoj web stranici, malo modificirajući HTTP zahtjev (na primjer, dodajući dodatni razmak nakon “GET”), razdvajajući podatke o usklađivanju TLS veze na nekoliko paketa ili izvršavajući napade TCB Teardown i TCB Desync. Suština spomenutih napada je u slanju od strane klijenta najprije lažnog paketa s podacima ili RST/ACK zastavicama, koji neće primiti ciljani host, ali će uhvatiti DPI, donijeti odluku na temelju toga i neće analizirati paket s pravim zahtjevom koji slijedi (na primjer, u lažnom prvom paketu može biti naveden drugi SNI, a kako bi se sakrio taj paket od ciljanog hosta, može se postaviti nizak TTL, kao i neispravna kontrolna suma, zastavice ili TCP broj sekvence).
Ženeva razviti funkcionalnu metodu zaobilaženja DPI-ja koristeći četiri osnovna primalna sredstva za manipulaciju mrežnim paketima - odbacivanje, izmjenu zaglavlja, dupliciranje i fragmentaciju. Za odabir optimalne strategije koristi se genetski algoritam koji simulira procese slične prirodnoj selekciji, kroz slučajno kombiniranje različitih varijacija manipulacija paketima. Na kraju, primalna sredstva kombiniraju se u 'stablo akcija', koje određuje algoritam za zaobilaženje DPI-ja.
Rad Geneva uspješno je testiran za zaobilaženje metoda cenzure koji se primjenjuju u Kini, Indiji i Kazahstanu, uključujući otkrivanje nekoliko novih propusta za koje prije nije bilo poznato. Međutim, Geneva je učinkovit samo za zaobilaženje blokada temeljenih na DPI, dok je kod blokiranja prema IP adresama beskoristan i bez VPN-a nije moguće zaobići. nekoliko desetaka tipičnih strategija zaobilaženja DPI-a koje se mogu testirati odmah bez provođenja potpune analize, na primjer:
python3 engine.py —server-port 80 —strategy «[TCP:flags:PA]-duplicate(tamper{TCP:dataofs:replace:10} tamper{TCP:chksum:corrupt},),)-|» —log debug
2020-01-24 20:54:41 DEBUG:[ENGINE] Motor stvoren s strategijom \/ (ID bm3kdw3r) za port 80
2020-01-24 20:54:41 DEBUG:[ENGINE] Konfiguriranje iptables pravila
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A OUTPUT -p tcp —sport 80 -j NFQUEUE —queue-num 1
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A INPUT -p tcp —dport 80 -j NFQUEUE —queue-num 2
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A OUTPUT -p udp —sport 80 -j NFQUEUE —queue-num 1
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A INPUT -p udp —dport 80 -j NFQUEUE —queue-num 2
Izvor: opennet.ru
