Výskumníci z Univerzity v Marylande v rámci projektu sa pokúsili o vytvorenie pre automatizáciu určenia metód, ktoré sa používajú na cenzúrovanie prístupu k obsahu. Ručne sa snažiť prechádzať možné zraniteľnosti systémov hĺbkovej analýzy paketov (DPI) je dosť náročný a zdĺhavý proces, v Geneve sa pokúsili využiť na hodnotenie vlastností DPI, identifikáciu chýb v implementácii a vypracovanie optimálnej stratégie obchádzania blokovania na strane klienta. Kód projektu je napísaný v jazyku Python.
Zariadenia DPI používané na blokovanie majú svoje , ktoré umožňujú skryť prístup k zakázanému zdroju alebo sa vyhnúť blokovaniu. Napríklad v najjednoduchšom prípade pri organizovaní blokovania cez substitúciu falošnej odpovede (používané pasívnymi DPI) stačí na strane klienta falošnú odpoveď odoslanú DPI. V prípade aktívneho DPI sa môžete pokúsiť skryť samotný fakt prístupu na zakázanú stránku, trocha pozmeniť parametre HTTP požiadavky (napríklad pridaním ďalšieho medzery po „GET“), rozdelením na niekoľko paketov dátového súhlasovania TLS spojenia alebo vykonaním útokov TCB Teardown a TCB Desync. Podstata uvedených útokov spočíva v zaslaní falošného paketu s údajmi alebo flagmi RST/ACK klientom, ktorý nedostane cieľový hostiteľ, ale zachytí DPI, na jeho základe prijme rozhodnutie a nebude analyzovať nasledujúci paket s reálnou požiadavkou (napríklad v falošnom prvom pakete môže byť uvedené iné SNI a pre skrytie tohto paketu pred cieľovým hostiteľom môže byť nastavený nízky TTL, ako aj nesprávna kontrolná suma, flagy alebo číslo sekvencie TCP).
Ženeva vyvinúť funkčnú metódu obchádzania DPI, využívajúc štyri základné primitívy na manipuláciu so sieťovými paketmi — odmietanie, zmenu hlavičiek, duplikáciu a fragmentáciu. Na výber optimálnej stratégie sa používa genetický algoritmus, ktorý modeluje procesy podobné prirodzenému výberu, prostredníctvom náhodného kombinovania rôznych možností manipulácií s paketmi. Nakoniec sa primitívy kombinujú do „stromu akcií“, ktorý určuje algoritmus obchádzania DPI.
Práca Geneva bola úspešne otestovaná na obchádzanie cenzúrnych metód používaných v Číne, Indii a Kazachstane, pričom pomocou Geneva boli odhalené aj niektoré nové slabiny, o ktorých sa predtým nevedelo. Geneva je však efektívny iba na obchádzanie blokácií na základe DPI, pri blokovaní na základe IP adries je nepoužiteľný a bez VPN sa nezaobídete. Počas experimentov niekoľko desiatok typových stratégií obchádzania DPI, ktoré je možné okamžite testovať bez vykonania úplnej analýzy, napríklad:
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 vytvorený so strategickou \/ (ID bm3kdw3r) na port 80
2020-01-24 20:54:41 DEBUG:[ENGINE] Konfigurácia pravidiel iptables
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
Zdroj: opennet.ru
