Tor作为匿名网络的代表,被誉为“暗网之王”,而TOR这个网络具有双面性。Tor通过保护通信双方的身份信息,能有效防止用户个人信息的泄露,成为一种新的网络访问方式。但同时,攻击者也看到了匿名网络所带来的匿名性,可以利用匿名网络发动网络攻击,逃避司法取证人员的追踪调查,因此匿名网络中的攻击溯源问题也近几年追踪溯源的热点。
其实关于匿名网络的追踪溯源,虽然有难度,但是近几年还是有长足的进步,追溯方法也在逐步增加。
陈周国、蒲石、祝世雄在《匿名网络追踪溯源》,将攻击溯源方法分为两类:匿名网络调制追踪和匿名网络渗透追踪。匿名网络调制追踪是指取证人员在匿名网络流量中添加流水印信息,通过检测流水印信息将不同的网络流量关联起来,从而识别网络流量的来源。
匿名网络渗透追踪是指取证人员控制部分匿名网络的节点,通过破坏或查看通过这些节点的流量,来识别网络流量的源头。
但是这两类方法需要取证人员掌握的资源有所不同,因此从取证人员的角度,可以将匿名网络中的攻击溯源方法分2种情况:
取证人员能够控制全部或部分匿名网络的节点的情况下。
①在这种情况下,《追踪洋葱包的高级标记方案与实现》中吴振强、杨波, 采用数据包标记方法来识别匿名流量。由于匿名网络 Tor 隐藏了数据发送端的IP地址,而且中间节点会剥去数据包的外层包头,因此该方法提出利用Tor 协议中网络层的32bit的GMT(包终止时间)字段,将其改造为5bit的距离和 19bit的IP地址 hash值。中间节点填入相应的信息,受害主机根据这些信息可以推算出数据流的来源。
②在《A new replay attack against anonymous communication networks》中针对Tor网络的追踪问题,利用了Tor 网络所采用的AES算法的计数器加密模式,需要计数器进行同步的特征,控制多个Tor 网络的节点,人为改变节点的计数器,导致后续节点解密失败,从而将节点间的通信流进行关联。
③在《A traceback attack on Freenet》中Guanyu Tian,等人研究了高延时匿名网络、匿名内容发布网络Freenet中的匿名追踪问题,指出可以利用网络中部分受控制的节点作为监控节点,通过监控节点所观察到的消息来推断内容请求者的真实主机,但该方法没有解决内容发布者的匿名追踪问题。 Young Hwan Lim等研究了BitTorrent 网络中初始种子的识别问题,给出一些识别特征。而《Is it an initial seeder?》研究了在种子初始传播阶段识别第一个上传者的规则。
(2)取证人员能够控制匿名网络的部分通信流量并能部署检测传感器
①在《discovery, blocking, and traceback of malicious traffic over Tor》和《Rate-based watermark traceback: a new approach》中,采用数据包发包速率来作为载频的方式嵌入水印。如用较高的发包速率表示二进制1,用较低的发包速率表示二进制0。该方法可以有效抵抗由于各种原因引起的数据包的网络时延、丢包、增加包、重打包等对水印检测准确率的影响。
②在《Network flow wartermarking attack on low-latency anonymous communication Systems》中针对采用发包流率作为载频,而在实际应用中发包流速不稳定的问题,提出了一种以时隙质心的载频方法。即将时间分为多个时间片,以数据包落在时间片中的位置为质心,当数据包数量足够多时,无论发包速率如何波动,时隙质心是稳定的。这样可以提高流水印的健壮性和隐秘性。
③《DSSS-based flow marking technique for invisible traceback》中将直序扩频机制 DSSS 应用到流水印中, 不是直接在流中嵌入特征码, 而是利用伪噪声码 PN 码进行扩频, 嵌入到数据流中, 提高了流水印的隐蔽性。但是在《On the secrecy of spread-spectrum flow watermarks》中对该方法的隐蔽性进行了充分实验验证, 指出该方法的隐蔽性需要进一步提高。
④《 Interval cen troid based flow watermarking technique for anonymous commu nication traceback》中综合利用时隙质心和PN码的方法提出一种新的流水印方法。作者指出长PN码可以提高水印检测的准确率,这一点在别的实验中得到了验证。
Xian Pan, Junwei Huang等人用基于DSSS的长PN码来嵌入水印,该方法能够阻止攻击者检测到流中可能存在水印信息,并且可以用于多个数据流嵌入水印的同时检测。而在《A double interval centroid-based watermark for network flow traceback》中则更进一步采用双重时隙质心和PN 码的方法,即将相邻时隙的质心联合进行考虑,可以更好的提高水印的隐蔽性。
⑤而《A new cell counter based attack against Tor》中则不直接针对时隙进行水印的嵌入,而是使用包数来表达嵌入的信号,即用连续的1个数据包代表“0”;用连续的3个数据包代表“1”。考虑到网络延时及缓冲队列造成的数据包合并、分离,提出了鲁棒的算法来提高检测率。这样,对于流持续时间较短的情况,仍然可以添加水印并能得到较好的检测效果。
《A new cell counter based attack against Tor》进一步指出,虽然Tor 匿名网络把应用层数据分割为固定大小的512字节(含头部信息,真正数据是 498个字节),但这一机制并不会导致网络层数据包分组也是固定大小。
利用这一现象,《Equal-sized cells mean equal sized packets in Tor?》中给出了一个新的嵌入水印的方法,即利用真正数据的498个字节代表“0”,2444个字节代表“1”。前者将被分割为1个数据包,而后者考虑到链路层的最大数据帧长度1500字节,将被分割为5个数据包。然后研究了数据包在网络层的分割、融合的各种情况,给出了水印检测算法。实验结果显示能够使用较少的数据包以较高的准确率检测到嵌入的水印信号。同时可以将类似的思想应用到另一匿名网络 Anonymizer 中,可以识别出访问网站的匿名客户端。但是以上方法都是针对单个数据流嵌入水印并进行检测的,如果同时存在多个数据流,在多个数据流中嵌入水印,将导致检测准确率急剧下降。
面对同时存在多个数据流现象,针对这一问题,有一种针对多个数据流嵌入水印的方法,即事先生成一个种子序列,对每个数据流随机选择不同的种子, 在数据流中不同的时隙段内嵌入水印。当进行检测的时候, 解码器尝试采用每一个可能的种子来检测水水印, 找出最匹配的值, 从而解码出嵌入的水印值。
对于为什么可以采用时隙特征来嵌入水印的理论原因,主要影响追踪效果的三个因素:报文长度、干扰数据流中数据包的数量、转发节点的数据包缓冲时间,并给出了在给定检测准确率的情况下,所嵌入水印的最小延迟时间的计算方法。
一般的方法采用在固定时间长度的数据包间隔中嵌入水印, 常用的水印检测方法效率较差, 需要大量的数据包才能获得较高的检测准确率。针对这一问题,可以基于 SPRT(Sequential Probability Ratio Test)检验方法, 创建三种不同的假设检验构造方法, 在达到同样检测准确率的情况下, 明显减少了所需的数据包数量。但是这一类方法仅适用于低延时匿名网络, 对于高延时匿名网络将导致所添加的流水印信息丢失。
结语:
未来网络安全事件,一定是以定向攻击为主的,而匿名网络则成为攻击者的保护伞。匿名网络的追踪溯源,有难度,但是并不是不可实现。尤其是以IP地址为基础的匿名网络,现在的IP代理识别技术基本可以实现识别用户是否使用Tor连接,这也降低了匿名网络追踪溯源的难度。随着国家对攻防演习的重视,未来对于匿名网络的追踪溯源能力也会越来越强,就让我们拭目以待吧。