关于近期多个Tor漏洞的分析解读

  • A+
所属分类:安全文章

Aodzip@海特实验室

近期,Dr. Neal Krawetz在博客上(https://www.hackerfactor.com)发布了多篇关于Tor操作系统识别和连接阻断问题的博文。

Dr. Neal Krawetz在两篇博文中提到的若干安全问题可以总结如下:

  1. FireFox TorBrowser会被JavaScript探测到操作系统的类别

  2. Tor连接所使用的TLS证书易被网络审查设备所识别进而阻断

  3. Tor连接所使用的obfs4混淆算法易被网络审查设备所识别进而阻断

  4. Tor连接所使用的meek方式易被网络审查设备所识别进而阻断

FireFox TorBrowser会被JavaScript探测到操作系统的类别

在该安全问题中,作者将其描述为:"不同的操作系统具有不同的浏览器滚动条宽度,攻击者可以构造一个包含JavaScript的页面来诱骗用户访问,从而获取浏览器滚动条的宽度,进一步来判断浏览当前页面的操作系统类型。"。

在原文中,作者提到很多人对此不以为然,但是作者举证HackerOne平台接收了此漏洞并奖励了他100美金作为对重要性的支撑依据。并且提出,Tor组织只是将此问题提交给了上有的Firefox之后,便将此问题标记为已修复。但是经作者测试,此问题在最新的TorBrowser中仍存在。

Tor连接所使用的TLS证书易被网络审查设备所识别进而阻断

一个典型的TLS连接会以如下的方式进行

  1. 客户端进行一个典型的TCP三次握手请求

  2. 服务端发送一个SYN-ACK

  3. 客户端发送ACK来完成这个三次握手请求

  4. 客户端发送TLS Client-Hello请求,这是客户端所发出的第一个包含有效数据的封包

  5. 服务端相应一个TLS Server-Hello并且包含了由服务端第一次启动的是和生成的随机证书

这个服务器的证书小到可以在一个封包内发送完毕,而且总会有如下的格式

  • 自签名。一般来说TLS证书会有一个信任链,而Tor总是只包含一个证书

  • 特定的顺序。Tor总会以一个特定的顺序发送证书内容

  • 只有一个签发者。只包含一个通用名称字段,该字段总是以"www."开头,以".com"结尾,中间填充了8~20个字节的随机字母。并且较之正常的TLS证书,Tor的证书C、ST、O字段总是空的。

  • 只有一个主题。只包含一个通用名称字段,该字段总是以"www."开头,以".net"结尾,中间填充了8~20个字节的随机字母。并且较之正常的TLS证书,Tor的证书C、ST、O字段总是空的。

基于以上的信息,作者提出了一个识别Tor网桥节点的指纹模型

{{[2],#,{1.2.840.113549.1.1.#,NULL},{{{2.5.4.3,"www.X.com"}}},{"#Z","#Z"},{{{2.5.4.3,"www.X.net"}}},{{1.2.840.113549.1.1.1,NULL},D}},{1.2.840.113549.1.1.#,NULL},D}

其中

  • "X" 是一个符合Base32编码规则的8~20个字节长度的字符串

  • "D" 是可变数据

  • "#" 是一个或多个数字

  • 其他的字符必须保证相同的顺序

作者在文中指出,在2017年的测试中,这个指纹保持了100%的精准度,没有误报或者漏报的情况。

Tor连接所使用的obfs4混淆算法易被网络审查设备所识别进而阻断

作者把这个安全问题命名为Buring Bridge,意指“燃烧断桥”。该名字形象的阐述了这是一个用于阻断Tor用户与Tor网桥进行连接的方式。

Tor使用obfs4作为标准化的网桥混合协议,这意味着任何人一旦找到了如何识别和阻止obfs4协议的方法,就可以让用户几乎不可能连接到Tor网桥,作者认为,Tor将所有的鸡蛋都放在了一个篮子里。

作者提出了如下的方式来识别obfs4连接

  • 未知的协议: obfs4是一种木马协议(这里的木马引申为伪装含义),它经常运行于TCP 22或者TCP 443端口上,尽管它根本不运行与之相关的协议。比如说,如果一个运行在443端口上的服务,它缺少了一些运行HTTPS的必要头部,那就可以认为这是一个木马协议因为它根本就没有运行HTTPS协议。还有部分obfs4服务器并不使用标准端口,那么直接认为它可能是一个obfs4服务器并进行下一步的检查。

  • TCP PSH: PSH是TCP连接中的一个标志位,它代表"暂停"的含义,当接收方收到检测到此类标志,它将会立刻将buffer传递给应用程序而不管是否达到TCP开始传输时所约定的长度。一般来讲,正常的网络服务不会出现大量的PSH标志位,因为这不符合一般的业务逻辑。但是在obfs4-proxy中,每次客户端向服务器传输的最后一个包必定包含PSH标志。可以通过这个方式来排除上一步中非obfs4的协议。

  • 半双工连接: TCP本质上是一种全双工协议,绝大多数服务都会利用这一特性,而obfs4在握手和洋葱路由初始化过程中,TCP工作在一种半双工的模式下,在上面提到的PSH标志位被置位之前,数据只会沿着一个方向传输。作者指出,满足上述三个特征的流量,就已经排除了绝大部分的TCP业务流量,剩下的只可能是obfs4

  • 数据传输的长度: 当obfs4第一次开始连接的时候,它只会交换特定长度范围的数据。作者称Fortinet的工作人员对此做过测试,第一个报文的长度必然在141~8192字节,第二个响应报文必然在109~8160字节之间,而后的所有数据报文必然在21~8192字节的范围。

  • 并发连接: 作者指出,依据上述的方式一定可以排除掉正常的业务,但是仍存在10%的漏报率,如果想快速的识别出被漏报的obfs4连接,可以利用Tor的并发连接特性,也就是会同时连接多个网桥,当识别出某个客户端正在连接Tor网桥,则立刻对该客户端包含了PSH标记的所有TCP连接进行检查,如果发现其内容看起来全部都像随机内容的话,那么可以认为这个TCP连接也是一个obfs4连接,从而减少漏报率。

"Tor项目过多的注重其加密性,内容机密性看起来是无可置疑的。但是对于网络流量特征分析方面,开发人员似乎没有特别重视。",作者表示,"我无需探究加密的内容是什么,就可以精准有效的识别出整个OBFS系列的传输协议,最后加以阻断"。

Tor连接所使用的meek方式易被网络审查设备所识别进而阻断

作者指出,目前唯一存活的Meek网桥为位于Microsoft Azure云中,由于阻止连接Microsoft网络的代价过大,该网桥被广泛使用在一些封锁较为严重的地区。虽然它建立TLS连接非常迅速,但是庞大的连接量导致一个问题,它的网络响应速度特别慢。基于这个特征,作者指出:"由于该网桥和ajax.microsoft.com使用了相同的TLS证书,而真实微软的系统应该是在TLS建立成功后可以迅速响应客户端,而这个Tor节点则会在较长的时间之后才响应"。作者认为,基于该特征,可以有效的识别一个连接是在请求真正的微软服务器还是用于连接Tor网络。

译者观点

Tor网络被用来实现匿名的互联网连接已经有足够长的历史,本次披漏的漏洞中并没有针对Tor客户端的入侵式威胁,也不能对已成功建立的Tor连接进行解密或者追踪溯源。作者主要阐述了Tor的连接是易于识别和阻断的,可能会被某些个人或阻止用于阻止Tor的用户正常连接到网络。对于作者来说,不能访问到Tor网络是违背了Tor组织建设匿名开放互联网初衷的,并且Tor组织似乎没有特别大的动力去修复它,便以0day的名称来标记这些漏洞。对于这些漏洞会对行业所带来的真正的影响,读者可自行斟酌。


HatLab知识星球


关于近期多个Tor漏洞的分析解读


关于我们

关于近期多个Tor漏洞的分析解读

人才招聘

一、物联网安全研究员(硬件安全方向)

工作地点:

1.杭州;

岗位职责:
1.嵌入式方向的安全漏洞挖掘;
2.嵌入式系统硬件软件设计与研发。
任职要求:
1.熟练使用C语言,可规范使用指针,结构体,联合体;
2.熟练使用Linux操作系统,理解Makefile原理并可编写Makefile文件;
3.了解数字电路原理,具有较扎实的计算机系统结构知识,理解操作系统原理;
4.了解WEB或PWN方向的漏洞挖掘过程,会使用相关工具如Zap、IDA等,会自行编写漏洞利用工具。
加分项:
1.具有网络安全公司实习经验;
2.具有网络安全赛事经验;
3.有设计电路板原理图和四层PCB布局经验;
4.熟练焊接0402,0201,QFN,BGA等元器件封装;
5.有AVR,ARM,MIPS,Xtensa等内核的MCU/SoC开发经验;
6.向知名平台提交过物联网方向的漏洞报告。


二、物联网安全研究员(固件安全方向)

工作地点:

1.杭州;

岗位职责:
1. 物联网通用协议、组件、操作系统漏洞挖掘与漏洞复现;
2. 物联网设备漏洞挖掘与漏洞复现;
3. 参与创新物联网安全研究项目;
任职要求:
1.具有二进制漏洞挖掘经验,熟悉ARM、MIPS等其他架构的漏洞利用技巧;
2.熟练掌握gdb、IDA等工具的使用;
3.具有一定的硬件基础和动手能力,掌握常见的嵌入式设备固件提取及解包的方法;
4.至少掌握一门编程语言,如C/C++/Perl/Python/PHP/Go/Java等。
加分项:
1.具有知名物联网设备/网络设备漏洞挖掘成果证明;
2.参加CTF比赛并获奖;
3.参与GeekPWN、HackPWN等智能设备破解大赛并取得成绩。


三、物联网安全研究员(无线电安全方向)

工作地点:

1.杭州;

岗位职责:
1. 无线通信协议的通用漏洞挖掘;
2. 无线通信应用系统的漏洞挖掘,如智能设备等。
任职要求:
1. 掌握无线通信基本原理及数字信号处理理论,熟悉各种调制解调算法,信道编码算法等;
2. 熟悉C/C++、MatLab、Python等编程语言;
3. 熟悉至少一种常见无线通信协议及其安全问题,如Wi-Fi、Bluetooth、Zigbee、4/5G等;
4. 熟练掌握SDR外设和GNURadio等工具的使用。
加分项:
1. 具有信息安全公司实习经验;
2. 有嵌入式固件逆向分析经验;
3. 参加CTF比赛并获奖;
4. 有智能设备的破解经验;
5. 通信工程、信息安全专业。



感兴趣的小伙伴请联系姜女士,或将简历及应聘职位投送至下方邮箱。(请注明来源“研究院公众号”)

联系人:姜女士
邮箱:[email protected]
手机;15167179002,微信同号

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: