匿名通信攻击技术:主动攻击、被动攻击、单端攻击、端到端攻击

版权声明:本文为博主原创,转载请注明出处。 https://blog.csdn.net/u011848397/article/details/88598881

本文仅为作者学习笔记,内容源自论文“匿名通信与暗网研究综述——罗军舟等”本身以及相关网络搜索

匿名通信攻击技术

匿名通信攻击可以分为

  • 针对网络流量的攻击:通常基于流量分析技术,即通过嗅探并分析网络通信流量的各自模式,以获取现有价值;
  • 针对节点的攻击:主要是匿名通信节点系统和协议存在漏洞的利用。

网络流量攻击

  • 被动攻击和主动攻击:根据攻击者对通信行为的干涉程度进行划分。攻击者可以被动监听或主动操纵目标流量。
  • 单端攻击和端到端攻击:根据威胁模型的不同进行划分,攻击者通过监控或控制发送方或/和接收方侧的相关设备。

被动攻击是指攻击者通过被动网络窃听、分析、抽取流量特征,在这个过程中并不会影响数据的正常传输,其优势在于隐蔽性强。主动攻击则是攻击则对数据通信过程本身施加干扰,例如对数据包进行修改、重放、丢弃或延迟等操作,从而达到更高效地进行流量特征分析和抽取的目的。

单端攻击是指仅占据发送端或接收端实施的攻击技术,执行单端攻击的攻击者需要监控通过发送端或接收端设备的流量,从而破坏用户的通信保密性和匿名性。单端被动攻击提取流量模式作为指纹,并基于此推断应用层的流量内容,例如用户访问的网站。单端主动攻击则可以主动将内容注入到流量中,或控制客户端的入口节点以迫使客户端直接向攻击者发送信好并暴露其真实IP地址。

端到端攻击是指同时占据同进入口和出口实施的攻击,可以采用被动或主动攻击方式来关联客户端和服务器之间的通信关系。攻击者通过在发送器和接收器两侧控制或监听设备(例如两端路由器,或Tor入口和出口节点),然后基于流量特征,比对嫌疑发送端发出的流量和嫌疑接收端收到的流量,以确认通信关系。

被动端到端流量分析

通过被动记录流量,并用统计方法来评估发送者的出站流量和接收者的入站流量之间的相似性。例如,攻击者可以简单地在发送其的输出链路上对几个时间间隔中输出的数据包数目进行计算,然后再接收器的输入链路上对时间间隔中到达的数据包数目进行计算,最后用距离函数来计算这2个链路在相关流量特征上的距离。

Selecting the Target
Recording the Traffic
Extracting the patterns
Calculating the Distance
Correlating the Traffic

由于端到端被动攻击仅需要监听流量,因此它的主要有点是具有较高的隐蔽性。然而,这种方案的准确利率低而误报率高。因此攻击者需要足够的时间来观察流量并发现发送方和接收方之间的流量模式相似性,以降低误报率。

根据攻击者能力的不同,可分为全局监听:例如监听整个自治域系统(autonomous systems,AS)或互联网交换中心(internet exchange,IX)内的信道;局部监听:例如向匿名通信网络注入节点,通过一定策略增加自身被选中的概率,从而在某个节点上实施攻击。

全局监听攻击,攻击者可以对独立的AS或IX或更大范围的匿名链路进行监控分析,从而实现通信关系确认。由于Tor现有的路由选择策略会尽可能使用一条链路穿越不同的国家,意味着即使是AS/IX级别的攻击者也不一定能同时监控出口和入口节点。

全局监听攻击的相关研究

  1. Edman等人证实了单个自治系统能够通过流量观察和关联来危险Tor暗网的安全性,评估了一些简单的AS感知路径选择算法的有效性,提出了一种路径感知路由选择算法,改善路由选择中位置的多样性。
  2. Akhoondi等人设计一种高效算法,用于判断Tor链路是否能被AS进行流量关联,并设计了新的Tor客户端LASTor——可避免建立能够被被AS流量关联的Tor链路。
  3. Murdoch等人验证了IX具有比AS更大的监控范围;验证了IX界别攻击,通过对真实的流量进行采样、提取报文发送率、报文长度等统计特征,实现了实体通信关系的确认。
  4. Johnson等人在仿真环境下实验,在同时控制具有高带宽的Tor节点以及IX的条件下,可以对80%的随机链路实现通信关系的确认。
  5. Nasr等人设计了一个流量关联系统DeepCorr,利用深度学习架构学习适用于Tor复杂网络的流量关联函数,可将Tor连接关联起来,准确度明显强于现有算法。

局部监听攻击,是指通过向网络中提供满足带宽、在线时间要求的恶意节点,使其成为匿名系统的一部分来实施攻击。而随着匿名网络的规模扩大,受限于攻击成本,攻击者无法提供足够的高带宽节点来获得更多的链路控制权,因此需要提高注入节点的被选中概率。

局部监听攻击的相关研究

  1. Bauer等人提出策略:通过上传虚假高带宽信息,以提高恶意节点被选中概率。
  2. Pappas等人利用恶意用户节点构建环形链路,恶意消耗链路中合法中继节点的资源,最终使其资源耗尽并拒绝服务,从而间接提高恶意节点被选中的概率。

主动端到端流量分析

基本思想是攻击者可以通过在发送端或接收端的目标流量中嵌入特殊信号,然后检测接收端或发送端侧的流量,以便识别信号并确认发送端和接受端之间的通信关系。这种类型的攻击也被称为基于流水印的攻击
在这里插入图片描述
对于流水印嵌入,攻击者可以利用不同网络层的多种特征来使用基于流水印的攻击方法。

网络层,攻击者可以利用如流量速率、包延迟间隔和包大小等特征来将信好嵌入到目标流量中(①-⑥)。此外,可利用随机化来抵御各种检测攻击,如多流攻击。攻击者还可以改变包大小来将信号嵌入到目标流中(⑦)。

  1. Yu等人提出一种水印嵌入方法,将不可见的直序扩频信号(direct sequence spread spectrum,DSSS)嵌入在流量中,以调制其流速率模式。最后,攻击者可以识别信号并破坏发送方和接收方之间的匿名性。
  2. 为了减少时延抖动,Wang等人提出一种攻击技术,可追踪互联网上的P2P匿名VoIP电话。在选定流的n个独立同分布的数据包中随机选择2r个数据包,分为r对,通过调整r对数据包的IPD(inter-packet delay)差值的平均值来嵌入追踪信息。该技术可追踪任何长度大于90s的P2P匿名VoIP电话。
  3. Wang等人研究了基于质心的包延迟间隔水印技术,通过调整时间间隔质心,可以将一系列二进制信号位嵌入流量中。
  4. Houmansadr等人利用非盲水印的思想调制报文间隔,并且使用扩频技术降低了先前技术中所用的时延,用少量的数据包就能保证流水印的鲁棒性和隐蔽性。
  5. 为了抵御多流攻击,Houmansadr等人还设计了SWIRL流水印机制,该方案是第一个可用于大规模流量分析的盲水印,可抵御多流攻击和Tor网络拥塞,并以不同模式标记每个流。SWIRL对于包丢失和网络抖动具有鲁棒性,且引入的延迟较小,因此隐蔽性较高。
  6. Rezaei等人提出了一种盲流水印识别系统TagIt,将水印信号调制成网络流的定时模式,即将数据包稍微延迟到只有水印识别方直到的隐蔽时间间隔,从而实现对第三方不可见。
  7. Ling等人提出了一种攻击方式,可以控制Web服务器并操纵响应HTTP数据包的大小,用特定包长度表示单个十六进制位,通过改变几个包长度,可以将消息编码到流量中,尽管包长度在单跳代理处被部分填充,但是攻击者仍然可以可以推断包长度,以便在接收端侧回复原始信号来确认发送端接收端之间的通信关系。另外,为了保证这种攻击的隐蔽性,攻击者需要保持原始包大小的分布和自相似性。为此,攻击者需要选择适当的包改变其大小。

协议层,水印攻击可以采用匿名通信系统的不同协议特征。例如

  1. Ling等人在可控OR节点上控制Tor信元发送规律,在出口节点处连发3个Tor信元代表信号1,1个Tor信元代表信号0,并通过分析信元在网络逐跳传输中可能出现的变化,设计信号恢复算法;在入口节点处对信号进行识别,可以在较短的时间内实现对Tor匿名流量通信关系的快速确认。
  2. Ling等人深入探讨了Tor的通信协议,发现Tor使用高级加密标准(AES-CTR)的计数器模式来解密和解密Tor信元。因此,每个Tor节点,包括链路中的Tor客户端,维持本地计数器以使计数器值彼此同步,以便正确地加密或解密Tor信元。该攻击利用多跳路径中的计数器同步机制特征,并且干扰沿着该路径的某节点处的计数器值,会导致Tor信元的加密/解密失败。通过这种方式,攻击者可快速确认链路的源地址和目的地址之间的通信关系。

应用层,攻击者可以在服务器端将特殊内容注入到目标网络响应流量中,以强制客户端生成特殊流量模式作为信号。然后,攻击者可以在客户端观察到该信号并确认发送方和接收方之间的通信关系。

  1. Ramsbrock等人在应用层改变数据包长度,通过在数据包填充字符来嵌入信号。
  2. Wang等人提出一种攻击方案,一旦攻击者发现通过其出口节点的目标响应流量,则可以注入空图像的恶意网络连接,使得客户都侧浏览器下载这些连接产生特定的流量模式。若攻击者在入口节点处检测到期望的流量模式,便可确认发送者和接受者之间的通信关系。
  3. Chakravarty等人在Web服务器端加入代码让用户下载一个较大且不易被察觉的文件,然后根据统计相关性在收集到的众多入口NetFlow流量记录中找到服务此流量特征的入口节点,从而确认通信关系。此类攻击还可在用户的返回流量中注入JavaScript代码,以触发用户端浏览器产生特定的信号量。

被动单端流量分析

也成为网站指纹(website fingerprinting,WF)攻击,思路是监控目标和匿名代理之间的流量,并通过将预期流量模式与预先手机的网站指纹进行对比来识别实际访问网络。

基本工作流程包含离线训练在线分类2个阶段:

离线训练阶段,首先,攻击者需要选择多个感兴趣的网站,并设置被攻击者的环境以模仿其浏览活动过程。然后,攻击者将逐一浏览网站并收集相应数据。此外,需要对收集的数据进行预处理以便去除噪声。例如因为网站上的广告链接是动态的,网站指纹攻击的准确性将收到影响。因此需要通过使用使用一些预处理的策略,对此类噪声进行过滤。接下来,攻击者从预处理的流量中提取合适的特征来表示通常隐藏在流量中真实有效的模式。目前已被验证的有效特征包含:包长度分布、流量、总时间、流量方向、包长度顺序、上行/下行字节、突发流量字节长度等。最后,攻击者选择合适的分类器,利用采集到的样本数据来生成分类规则。该类攻击中常用的分类器包括多项式朴素贝叶斯分类器支持向量机决策树等。

在线分类阶段,攻击者利用相同的预处理方法去除噪声,然后根据训练好的分类模型对流量进行特征匹配和识别。
在这里插入图片描述
发展过程

  1. Hintz最先提出了Web站点指纹攻击的概念,并来理论上证明了指纹攻击的可行性和有效性,但该攻击方案仅适用于HTTP1.0协议。
  2. Liberatore等人在前人工作的基础上,仅使用报文长度分布为特征,并首次将机器学习领域的朴素贝叶斯分类器应用于试问识别,大大提高了单跳匿名代理上指纹攻击的成功率。但该方案依赖于上下行流量中报文的长度,并不适用于对报文进行定长封装处理的多跳匿名通信系统(如Tor)。
  3. Lu等人指出数据包长度顺序信息,可用于增强网站指纹识别。
  4. Panchenko等人综合多种流量特征,包括特定长度报文出现次数、总传输量、上下行报文数据量及所占比例等,并使用支持向量机对指纹进行分类,将多跳匿名代理上的识别率从3%提升至55%。
  5. Cai等人使用最佳字符串编辑距离(optiomal string alignment distance,OSAD)替换支持向量机的核心函数衡量指纹相似性,在Tor上取得较好攻击效果。
  6. 在此基础上,Wang等人将特征集扩大,调整不同特征权重,使K邻近作为分类器,降低了计算成本,攻击效果进一步提升。
  7. Hayes等人提出了一种基于随机决策森林的网站指纹识别技术,该技术比以前的工作更大规模的评估了在标准网页以及Tor隐藏服务上的攻击性能。结果表明性能得到很大提升。
  8. Panchenko等人提出了一种新颖的网站指纹攻击,利用具有代表性的数据集探索了互联网规模的网站指纹实际限制,并研究了攻击者可能遵循的不同策略的实际成功概率。
  9. Nasr等人将压缩感知技术应用于网站指纹识别,实验结果表明该技术能够保留最优的可压缩网络流量特征,在获得较好识别结果同时降低了攻击开销。
  10. Rimmer等人提出了一种自动化的特征提取方法,并应用深度学习 技术自动地对Tor流量进行去匿名化,达到较高的攻击准确率。
  11. Zhuo等人提出了一种基于隐马尔科夫模型的网站建模方法,实验结果表明该方法可以在closed world 环境下高效识别网页和网站。

然而,Web站点指纹攻击的实施依赖于一系列假设,例如用户浏览器关闭了缓存功能、用户浏览网页过程中较少出现背景流量等,消除这些假设对于方法的实用性具有重要意义。

此外还有部分针对Freenet的攻击技术:通过观测邻居节点流量特征判断其是否为文件请求的发起者,从而实现去匿名化攻击。

  1. Levine等人利用请求发起者的HTL默认初始值为18的特征以及相应的混淆机制,通过主动部署节点记录,从其邻居节点接收到的HTL值等于18或17的请求,并利用朴素贝叶斯的方法判断邻居节点是否为请求的发起者。实验结果表明该方法的误报率仅为2%。

主动单端流量分析

目前的主动单端攻击主要在2处位置实施:

  1. 在出口节点与应用服务器间的为止加密链路上注入恶意代码。
  2. 控制用户的入口节点或链路并执行主动Web站点指纹攻击。

恶意代码注入是指在服务器端主动的将恶意代码插入到用户浏览中,以便代码到达被攻击主机并执行。如果流量端到端进行加密,攻击者可以实施中间人攻击,绕过匿名通信系统的客户端并直接建立直达恶意服务器的链接。为此,攻击者需要控制代理和远程服务之间的未加密链接。例如,在Tor网络中,攻击者可以控制Tor出口节点并任意地注入或修改非加密流量的内容。在控制了非加密连接后,攻击者可以将各种专家实例注入到连接中,包括Flash,Javascript,ActiveX控件和Java。一旦这些软件在浏览器中执行,他们将绕过流量器中的本地代理,直接创建到指定远程服务器的连接,这将会暴露客户端的真实IP地址。为了防止遇到主动的单端攻击,用户应禁用插件,以避免恶意代码在浏览器中的执行,或者用户可以在客户端部署透明代理,以确保所有流量都被引导到通信系统中。

在被动的Web指纹攻击中,攻击者仅监听链路,并不会对流量进行主动调制。由于Tor等匿名通信系统的定长分主机制和HTTP持久连接、流水线等技术的影响,Web页面不同对象的数据在返回流量中出现重叠难以区分,导致指纹攻击的正确率无法进一步提升。如果可以采取某些方法使不同对象的返回流量区分开,则可以更好的为不同Web站点建立指纹。

  1. He等人首次提出并针对Tor系统进行了主动Web站点指纹攻击,通过对Tor流量进行观察确定用户开始发送请求报文的位置,然后主动延迟用户发出的请求报文,使前一个请求对象的响应数据有足够时间完成传输,从而达到分离不同对象流量的目的。然而该攻击会造成报文重传,隐蔽性较差,并且延迟操作的颗粒度较粗,未对上行流量中存在的大量匿名协议控制报文进行识别。
  2. 针对上述问题,Yang等人进而设计了Tor流量控制报文和Web请求报文识别算法。通过主动延迟HTTP请求报文,实现不同web对象响应数据的分离,达到了较好的Web站点识别效果。
  3. 针对Freenet,Baumeister等人利用Freenet邻居节点更新机制实施了一种路由表插入(routing tabel insertion,RTI)攻击,将恶意节点插入到目标节点的路由表中,并通过模拟实验验证了该攻击的有效性。
  4. Tian等人基于RTI攻击提出了一种追踪文件下载节点的攻击,根据多个检测节点收到的请求信息,推断该请求的发起节点。

其他攻击技术

节点攻击时对匿名网络中目标主机发起的针对性攻击,通过利用协议设计缺陷,始目标节点系统服务失效或暴露目标主机的隐私信息。

在Tor网络中,攻击者可以利用Tor设计方面的不足来瘫痪任何一台中继节点,发现网络中的隐藏服务以及对用户进行去匿名化攻击。当前对Tor网络影响最大的节点攻击方法是Sniper攻击,该攻击方法有Jansen等人在2014年提出。

Sniper攻击是一种针对Tor中继节点的拒绝服务攻击,可以用来瘫痪任意Tor中继节点,攻击成本非常低,但破坏性很强。Tor设计的拥塞控制算法并不能避免网络拥塞,而实实现了端到端的流量控制。利用该缺陷,攻击者可以杀死目标节点中的Tor进程,从而使其服务失效。

此外,I2P网络中也存在类似的协议漏洞。Egger等人提出一种I2P节点上传并查询在身节点信息的漏洞,可以对I2P用户进行去匿名化攻击。I2P节点使用DatabaseStore消息将自己的RouterInfo等直接上传到与其逻辑距离近的恶意Floodfill节点上,并通过其探测隧道发送DatabaseLookup消息查询自身的RouterInfo等信息。因此在隧道有效时间内,恶意的Floodfill节点可以关联节点信息和探测隧道信息。当节点使用探测隧道向共谋(?)的Floodfill节点查询隐藏服务LeaseSet信息时,便可以关联节点和其访问的隐藏服务,从而完成对I2P节点的去匿名化攻击。

猜你喜欢

转载自blog.csdn.net/u011848397/article/details/88598881