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) (英语).