Marylandi Ülikooli teadlased projekti osana üritas luua automatiseerida sisule juurdepääsu tsenseerimiseks kasutatavate meetodite tuvastamist. Süvapaketikontrolli (DPI) süsteemide võimalike haavatavuste käsitsi loetlemine on üsna keeruline ja aeganõudev protsess, kuid Geneva püüdis seda kasutada DPI funktsioonide hindamiseks, rakendusvigade tuvastamiseks ja optimaalse strateegia väljatöötamiseks kliendipoolse blokeerimise möödahiilimiseks. Projekti kood Pythoni keeles.
DPI blokeerimiseks kasutatavatel seadmetel on oma , mis võimaldab teil peita juurdepääsu keelatud ressursile või vältida blokeerimist. Näiteks kõige lihtsamal juhul, kui blokeerimise korraldamisel asendatakse see näiva vastusega (mida kasutab passiivne DPI), piisab sellest kliendi poolel. DPI saadetud näiv vastus. Aktiivse DPI kasutamisel saate proovida varjata blokeeritud saidile juurdepääsu, muutes veidi HTTP-päringu parameetreid (näiteks lisades pärast "GET" tühiku), jagades TLS-ühenduse läbirääkimisandmed mitmeks paketiks või teostades TCB Teardown ja TCB Desync rünnakuid. Need rünnakud hõlmavad kliendi poolt algselt andmete või RST/ACK lippudega näivpaketi saatmist. Sihtmasin seda paketti vastu ei võta, kuid DPI tuvastab selle, teeb selle põhjal otsuse ega analüüsi järgmist paketti koos tegeliku päringuga (näiteks saate näivas esimeses paketis määrata erineva SNI ja selle paketi sihtmasina eest peitmiseks saate määrata madala TTL-i, samuti vale kontrollsumma, lipud või TCP järjekorranumbri).
Genfi Töötava DPI möödaviigumeetodi väljatöötamine, kasutades nelja peamist võrgupaketi manipuleerimise primitiivi: eemaldamine, päise muutmine, dubleerimine ja fragmenteerimine. Optimaalse strateegia valimiseks kasutatakse geneetilist algoritmi, mis simuleerib loodusliku valikuga sarnaseid protsesse erinevate paketmanipulatsiooni valikute juhuslike kombinatsioonide kaudu. Lõpuks kombineeritakse primitiivid "tegevuspuuks", mis määratleb DPI möödaviigu algoritmi.
Genevat on edukalt testitud Hiinas, Indias ja Kasahstanis kasutatavate tsensuurimeetodite möödahiilimiseks. Geneva abil tuvastati ka mitu varem tundmatut haavatavust. Geneva on aga efektiivne ainult DPI-põhise blokeerimise vastu; see on kasutu IP-aadressipõhise blokeerimise vastu ja VPN on vajalik. Katsete ajal On mitukümmend tüüpilist DPI möödaviigu strateegiat, mida saab kohe testida ilma täielikku analüüsi tegemata, näiteks:
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 SILUMINE:[MOOTOR] Mootor loodud strateegiaga \/ (ID bm3kdw3r) pordile 80
2020-01-24 20:54:41 DEBUG:[MOOTOR] IpTablesi reeglite seadistamine
2020-01-24 20:54:41 SILUMISSÜSTEEM:[MOOTOR] iptables -A OUTPUT -p tcp --sport 80 -j NFQUEUE --järjekorra-number 1
2020-01-24 20:54:41 DEBUG:[MOOTOR] iptables -A INPUT -p tcp --dport 80 -j NFQUEUE --järjekorra-number 2
2020-01-24 20:54:41 SILUMISSÜSTEEM:[MOOTOR] iptables -A OUTPUT -p udp --sport 80 -j NFQUEUE --järjekorra-number 1
2020-01-24 20:54:41 SILUMISSÜSTEEM:[MOOTOR] iptables -A INPUT -p udp --dport 80 -j NFQUEUE --järjekorra-number 2
Allikas: opennet.ru
