一种被动的Tor网络去匿名化方法

目前针对Tor的攻击检测方法都是采用主动攻击,本文将介绍一种被动攻击的去匿名化方法。

图片 1.png

一、当前Tor网络检测方法

当前对Tor网络的攻击检测一般有以下几种方法:

1.控制出口节点,篡改未加密流量。网站如果没有使用HTTPS协议则出口节点可以看到并篡改明文信息。

2.指纹攻击。Tor网络的数据加密阻止了节点查看用户在线活动,但是控制入口节点后仍可以根据流量的包长度和时序特征分析推断用户正在访问什么网站。

3.端到端的关联。攻击者需要至少运行一个入口节点和一个出口节点,利用入口节点的身份识别能力和出口节点的信息识别能力相关联分析出某用户正在访问某网站。

4.收集网桥地址。在一些限制使用Tor上网的地方用户会使用私有的网桥跳转到Tor网络中,这些网桥不被公开所以没法限制。攻击者也可以通过运行一个中继节点专门收集不是公共入口节点的网桥地址。

以上方法都属于主动探测,攻击者需要控制少数节点获取流量信息,第一,少数节点难以被Tor客户端随机选中,第二,Tor项目对所有Tor节点通过在线情况进行投票标识flag(包括Stable、Valid、Exit、BadExit、Valid、Fast等),只有稳定节点被选取的机会大。为了掌握更多的流量信息,一些攻击者实施Sybils攻击,即控制更多的Tor节点,这对资源有限制。因此对Tor网络的主动攻击还是很困难的,以下介绍一种被动的Tor网络检测方法,主要针对服务器端的去匿名化。

二、被动检测介绍

被动检测与主动检测最主要的区别是:不依赖于Tor网络的任何协议缺陷,只需要作为一个用户正常访问暗网网站就可以,也不需要在一个封闭的网络里搭建试验性网站做验证。只需要(1)访问网站,根据网站的一些配置问题或证书信息或网页内容等泄露的IP地址或域名进行提取。(2)然后根据提取的信息进行访问验证。

三、被动检测方法

1.需要提取的泄露信息有:

(1)互联网终端信息(DNS domains、IP address)

(2)特殊字符串(Google Analytics ID、page title等)

(3)HTTPS证书信息

2.具体思路:

图片 2.png

图1 Tor网络被动去匿名化思路

(1)收集暗网URL及它的响应信息(头信息、网页HTML内容等),为提取泄露信息做准备。“Deepweb links”、“The Hidden Wiki”等暗网网站会提供一些URL列表。

(2)收集3类泄露信息作为提取内容。在响应信息里查找互联网终端信息和网站特殊字符串,以及查找HTTPS证书信息。

终端信息包括DNS domains,URLs,email domains,IP address等。这些信息如果在暗网网页或访问错误页面中出现,则可能与运行暗网的服务器有关,即同一服务器上运行多个服务(暗网和互联网网站),这种相关性可以通过互联网地址暴露暗网地址。但以下信息不作为提取内容:(a)URLs里包含暗网地址,因为不能暴露出本来的暗网地址,但可以把它收集到数据库做进一步分析;(b)Domians包含在Alexa域名列表里的,因为比较流行的域名不会在同一个服务器上运行另一个暗网网站或者就是公开运行的(如Facebook);(c)IP地址在同一个网页出现多次(5次以上),可能是跳转地址。

特殊字符串包括Google Analytics ID,Google AdSense ID,Bitcoin wallets,page title等。Google Analytics ID可作为网页的唯一标识,Google AdSense ID可作为网站发布商的唯一标识,Bitcoin wallets地址可作为暗网用户账户的唯一标识。特殊的page title也可以作为网页唯一标识,排除在超过10个暗网都出现过的标题以及具有公共性的标题(如错误提示页面标题)。字符串越特殊被提取的信息越有效,如果在暗网网页中查找到的这些信息同样也嵌入了互联网网站,则很大可能这两个网站运行在同一服务器上,就提取这些出现过暗网特殊字符的互联网网站的域名作为备用信息。

收集证书信息,为了方便管理一个Web服务器可能运行的多个网站使用相同的证书,或者现在使用的证书是用于之前网站的配置。提取信息包括:(a)证书中的CN(the Subject’s Common Name)和SAN(the Subject’s Alternatice Name)里包含的IP地址或其他多域名信息;(b)DER格式证书的SHA1哈希值或证书的公钥,将这些值在证书库工具(如Sonar)中查找是否有相同信息的证书的网站。将这些网站的IP地址或域名提取出来作为备用信息。

最后将提取的备用信息(IP地址或域名)与对应的暗网地址组成键值对(<onion_address, Internet_endpoint>)做进一步验证。

(3)验证。首先如果键值对中是域名则转换为IP地址,然后将所有暗网地址与提取出的IP地址分别发送HTTP请求(更改不同的请求信息,如HOST绑定),根据HTTP响应信息和body信息比较两个网站的“距离”进而验证是否有地址泄露。

四、注意事项

同一个服务器上同时运行着暗网和互联网网站,在相互切换或连接时,可能会有一些配置错误或内容展示错误,很容易泄露暗网地址。因此管理员在配置匿名网站时需注意:

1.使用一个专用的Web服务器,而不是通过创建一个虚拟机来托管服务,也不要在暗网网站服务器上运行多个其他网站。

2.配置暗网服务时,使Web服务器只绑定到localhost,这样除了通过Tor网络可以访问服务,在互联网上直接访问泄露的IP地址是访问不到的。

3.现场审计,管理员在发布网站之前要手动检查网页中是否包括互联网IP地址或域名或容易被识别的身份信息。

4.合理利用证书,避免CN或SAN中包含其他DNS或IP,使证书只用于当前暗网服务。

5.避免在Tor中继节点上托管暗网服务。Tor节点的正常运行时序、IP地址等信息都是公开的,可以一一验证。

 

参考文献

[1] https://software.imdea.org/~juanca/papers/caronte_ccs15.pdf

[2] https://www.cs.princeton.edu/~rensafi/papers/sybilhunting-sec16.pdf

[3] https://www.torproject.org/docs/tor-hidden-service.html.en

[4] https://www.symantec.com/content/zh/cn/enterprise/white_papers/WhitePaper_Multiuse_SSL_Cert_SC.pdf

发表评论

电子邮件地址不会被公开。 必填项已用*标注