Geneva (軟體)
Geneva是一款人工智慧工具及自由軟體,能利用審查器中的漏洞規避網際網路審查[1]。2019年11月,Geneva由馬里蘭大學的 Kevin Bock 等人和伯克利大學的蕭強在2019 ACM SIGSAC計算機和通信安全大會 (CCS 』19[2])上發布這款軟體。Geneva與其他突破網絡審查的方案不同,無需依賴比如 Tor、VPN等等位於審查國境外的支援,而僅僅運作於連接的一端(服務端或客戶端)[3][1]。其名稱來自 Genetic Evasion (遺傳學規避)的縮寫[4][5]。
首次發布 | 2019年11月 |
---|---|
原始碼庫 | |
程式語言 | Python |
作業系統 | Linux |
類型 | 突破網絡審查 自由軟體 |
許可協議 | |
網站 | censorship |
算法
Geneva 運行在客戶端或服務端,並接管作業系統的流量,在報文發出或接收前按照「策略」修改報文。由於深度包檢測系統作為中間盒,對特定封包的處理和目標主機有所不同,通過發送特製報文,其維持的TCP狀態可以和真正的TCP狀態「脫同步」(desync),從而使審查中間盒檢測不到真的TCP狀態,規避審查。
其以「策略DNA」命名修改方法。Geneva 的策略由一組 (tigger, 行为树)
構成。匹配到相應 trigger 的封包(比如所有設置有ACK flag的TCP包)會用相應的行為樹修改。Geneva 可以進化 trigger、行為樹的結構和特定 action 本身[2]。
下面是 trigger、action 和行為樹的結構。
策略DNA
trigger
Trigger 包含封包頭部的特定信息,當匹配時封包修改就會執行。
Trigger 由以下語法構成:
[PROTOCOL:FIELD:VALUE]
比如[TCP:flags:R]
會匹配所有帶有 RST flag 設置的 TCP 包。Geneva 需要精確的匹配,比如[TCP:flags:RA]
不會匹配到僅設置了 RST flag 的 TCP 包。
action
封包級的行為分為 4 類[2]:
duplicate(A1, A2)
生成副本,然後向原來的包執行 A1 行為組,然後向副本執行 A2 行為組。
fragment{protocol:offset:inOrder}(A1, A2)
在特定 offset 分片(IP 協議)或者分段(TCP 協議),然後向第一個碎片執行A1行為組,向第二個碎片執行A2行為組。可選地,按順序(inOrder)發送它們。
tamper{protocol:field:mode[:newValue]}(A1)
修改封包的特定 field 的特定值,然後向其執行A1行為樹。tamper 修改後會重新計算 checksum 或者 length,除非指令本來就要修改它們。
注意,如果設定的 field 在原包中本來就不存在,Geneva 會加入它們。tamper 有兩種模式:replace 和 corrupt 。
replace:newValue
將特定 field 的值設定為 newValue 。 corrupt
將特定 field 的值設定為相同 bitsize 的隨機值(每次行為都生成新的隨機值)。
drop
丟棄封包。
行為樹
Geneva 的 actions 以二元樹形式呈現:duplicate
和 fragment
都有 2 個子樹;tamper
有一個:drop
沒有子樹。每個匹配的封包從根部開始按照順序執行修改。[2]
一組 (trigger, action tree) 稱為森林,策略中可以混合許多森林。
出站和入站
Geneva 可以修改入站和出站的封包。因此某策略由兩個部分組成:分別包括 trigger 和 action tree 的兩個森林。總體來說表示是這樣: outbound-forest \/ inbound-forest
示例
[TCP:flags:S]-
duplicate(
tamper{TCP:flags:replace:SA}(
send),
send)-| \/
[TCP:flags:R]-drop-|
此策略有一個出站樹和一個入站樹。第一個(出站)先生成 SYN 包的兩個副本,然後將第一個副本的 TCP flag 替換為 SYN/ACK,第二個拷貝不變,然後發送。在入站樹,RST包會引發 action tree,將其丟棄。
進化
Geneva 通過進化(evolution)發現新策略,在許多世代(generation)中完成。每一世代都包含許多個體(individual)(即策略,包含入站和出站行為樹的森林),進化通常包括三步:[2]
- 變異(mutation)和交叉(crossover)
- 適應度(fitness)分析
- 對個體的選擇(selection)
變異
duplicate
變異改換子樹的順序 (i.e., duplicate(A1, A2) → duplicate(A2, A1)).
fragment
變異改變協議(IP分片或TCP分段)、碎片的順序或者 fragmentation index。
tamper
變異取決於其模式:replace
模式變異可以改變「修改為」的值,corrupt
模式的變異可以改變它填充的 field。每個模式可以互相變異為另一種。
drop
不支持變異。
交叉
和變異不同,它只隨機擾亂單個的策略或者行為樹。交叉是在兩個個體之間的生育(breeding)過程,從種群池中隨機選取2個體,然後發生以下之一。[2]
- 行為森林(action forest)中的所有樹隨機交換(swap)
- 每個森林中的一個隨機的樹互相交配(mate)
交配指,每個樹隨機選取一個行為,兩個行為所在的子樹互相交換。如果每個某個方向的行為森林僅有一個樹,則使用第二個機制。
實用
研究人員在介紹的 Geneva 的論文中聲稱其可以在中華人民共和國、印度和哈薩克斯坦的網際網路審查環境下工作[2]。
- Geneva 的另一次使用是為規避中華人民共和國的網際網路審查器—防火長城對加密伺服器名稱指示(ESNI)的封鎖[6],後者也是一種突破網絡審查的方案,其可以規避防火長城的深度包檢測[6]。2020年8月,研究人員在48小時的時間裡,從客戶端和伺服器端對Geneva進行了訓練。總共發現了6種策略來打敗對ESNI的封鎖機制。其中有4個可以在伺服器端使用,所有6個都可以在客戶端使用。[7]
參見
參考文獻
引用
- ^ 1.0 1.1 Kkevsterrr/geneva: automated censorship evasion for the client-side and server-side. GitHub. [2021-12-13]. (原始內容存檔於2021-12-12).
- ^ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 Kevin Bock; George Hughey; Xiao Qiang; Dave Levin. Geneva: Evolving Censorship Evasion Strategies (PDF). 2019 ACM SIGSAC Conference on Computer and Communications Security (CCS 』19). London, United Kingdom. 2019-11 [2021-12-13]. doi:10.1145/3319535.3363189. (原始內容存檔 (PDF)於2021-12-13) (美國英語).
- ^ Ben Dickson. New tool offers server-side censorship circumvention. The Daily Swig. 2020-09-16 [2022-01-18]. (原始內容存檔於2022-01-18).
- ^ Ians. New AI tool 'Geneva' helping evade internet censorship in India and China. 商業標準報. 2019-11-14 [2021-12-13]. (原始內容存檔於2019-11-15) (英語).
- ^ Cory Doctorow. Genetic Evasion: using genetic algorithms to beat state-level internet censorship. 波音波音. 2019-11-14 [2021-12-13]. (原始內容存檔於2021-04-17) (英語).
- ^ 6.0 6.1 Kevin Bock, iyouport, Anonymous, Louis-Henri Merino, David Fifield, Amir Houmansadr, Dave Levin. 揭示和规避中国对加密SNI(ESNI)的封锁. gfw.report. 2020-08-07 [2021-12-13]. (原始內容存檔於2021-12-04).
- ^ Zimo Chai; Amirhossein Ghafari; Amir Houmansadr. On the Importance of Encrypted-SNI (ESNI) to Censorship Circumvention (PDF). 9th USENIX Workshop on Free and Open Communications on the Internet (FOCI 19). Santa Clara, CA: USENIX Association. 2019-08-05 [2021-12-13]. (原始內容存檔 (PDF)於2021-12-02) (英語).
currently only 66 websites can be unblocked with the help of ESNI.
- ^ 调查伊朗最近部署的协议过滤器. Solidot. 2020-08-26 [2021-12-13]. (原始內容存檔於2021-12-13).
- ^ Kevin Bock; Yair Fax; Kyle Reese; Jasraj Singh; Dave Levin. Detecting and Evading Censorship-in-Depth: A Case Study of Iran’s Protocol Filter. 10th USENIX Workshop on Free and Open Communications on the Internet (FOCI 20). 2020-08 [2021-12-13]. (原始內容存檔於2021-08-22) (英語).
- ^ 探索审查 HTTPS 流量的备用“黑盒”. Solidot. 2021-10-01 [2021-12-13]. (原始內容存檔於2021-10-07).
- ^ Kevin Bock; Gabriel Naval; Kyle Reese; Dave Levin. Even Censors Have a Backup: Examining China’s Double HTTPS Censorship Middleboxes (PDF). ACM SIGCOMM 2021 Workshop on Free and Open Communications on the Internet (FOCI’21). 2021-08-21 [2021-12-13]. doi:10.1145/3473604.3474559. (原始內容存檔 (PDF)於2021-10-02) (英語).
- ^ 用于反射放大攻击的武器化网络中间件. Solidot. 2021-08-28 [2021-12-14]. (原始內容存檔於2022-08-28).
- ^ Kevin Bock; Abdulrahman Alaraj; Yair Fax; Kyle Hurley; Eric Wustrow; Dave Levin. Weaponizing Middleboxes for TCP Reflected Amplification. 30th USENIX Security Symposium (USENIX Security 21). USENIX Association. 2021-08 [2021-12-14]. (原始內容存檔於2023-01-12) (英語).
來源
- Thor Benson. "Biologically inspired" A.I can beat the world's strictest internet censors. inverse.com. 2019-11-18 [2022-01-18]. (原始內容存檔於2022-01-18) (英語).
- New artificial intelligence system automatically evolves to evade internet censorship. ScienceDaily. 2019-11-13 [2022-01-18]. (原始內容存檔於2022-04-23) (英語).