近年来,网络安全事件层出不穷,各种网络攻击给国家、社会和个人带来了严重的危害,如分布式拒绝服务攻击(DDoS)、基于僵尸网络(Botnet)的高级可持续攻击(APT)、利用远程控制木马的信息窃取等。在这些攻击方法中,攻击者会向目标主机,也就是受害主机,发送特定的攻击数据包。

从受害主机的角度来看,能够观察到这些攻击数据包,如果能追踪这些攻击数据包的来源,定位攻击者的真正位置,受害主机不但可以采用应对措施,如在合适的位置过滤攻击数据包,而且可以对攻击者采取法律手段。因此在网络取证领域,网络攻击溯源一直是一个重要的追踪方式。

一、什么是网络攻击溯源

在网络空间中,网络攻击源追踪是指当检测到网络攻击事件发生后,能够追踪定位真正的攻击者的主机,以帮助司法人员对攻击者采取法律手段。近二十年,研究人员对网络攻击源追踪技术进行了大量研究。

更具象化的来说网络攻击源追踪是指,在网络空间中,安全人员在检测到攻击行为发生的情况下,如何追踪定位攻击者的主机?虽然从司法取证的角度,更希望能识别出攻击者本人,以便于对嫌疑人采取法律手段,但这需要将网络空间中的“主机”与现实物理空间中的“人”进行关联。所以网络空间中,如何识别出攻击者直接使用的主机才是最重要的。

二、五种常见掩盖真实IP的网络攻击追踪问题

由于攻击者可以采用不同的形式来隐藏自身真实的IP地址,如虚假IP地址或跳板的方式,那么可以将攻击源追踪问题分为下面5个问题:虚假IP溯源、僵尸网络溯源、匿名网络溯源、跳板溯源、局域网溯源,由此对这五种问题进行追踪溯源。

1.虚假IP溯源:取证人员检测到的攻击数据包中,其源IP地址是伪造的。例如,典型的SYN Flood攻击。

在这种网络攻击中,攻击者将攻击数据包中的源IP地址替换为伪造的IP地址,受害主机收到数据包后,将响应数据包发送给伪造的IP地址主机,这些主机可能存在也可能不存在。这样在受害主机端,无法得到攻击主机的IP地址。

除此之外, 还有一种特殊的“反射攻击”, 如Smurf 攻击、DNS放大攻击等在这种攻击中,攻击者将攻击数据包中的源IP地址替换为受害者的IP地址,将攻击数据包发送给反射主机,反射主机收到数据包后,响应数据包将发送给受害主机。从受害主机端观察,只能判断这些数据包来自反射主机,无法知道真正攻击者的IP地址。

2.僵尸网络溯源:攻击者利用僵尸网络发动攻击,取证人员检测到攻击数据包中,其源IP地址来自于Botnet中的bot主机,在这种情况下如何追踪定位攻击者的主机?

在这种攻击中,攻击者利用C&C型或P2P型Botnet,先发送控制指令, bot主机接收到控制指令后,向设定的攻击目标发动攻击。在受害主机端,可以看到攻击数据包来自 bot主机,而无法识别出真正的Botmaster。

3.匿名网络溯源:攻击者利用匿名网络,如“Tor”,发动攻击,取证人员检测到攻击数据包中,其源IP地址来自于匿名网络,在这种情况下如何追踪定位攻击者的主机?Tor 网络就是匿名网络典型的攻击场。

在这种攻击中,攻击者的攻击数据包通过匿名网络进行转发,在受害主机端,只能观察到攻击数据包来自于出口路由器,而不能发现真正的攻击者。

4.跳板溯源:攻击者利用多个“跳板主机”,即通过控制多个主机转发攻击数据包,取证人员检测到攻击数据包,其源IP地址是最后一跳“跳板主机”的IP地址,前一段时间西北工业大学被NAS攻击中,就运用了54台跳板来隐藏真正的IP地址。

在这种攻击中,攻击者事先控制多个跳板主机,利用跳板转发攻击数据包。在受害主机端,只能看到攻击数据包来自于最后一跳的主机,而不能识别出真正的攻击者。很显然,跳板路径越长,越难追踪攻击者。

5.局域网络溯源:攻击者位于私有网络内,其攻击数据包中的源IP地址经过了网关的VAT(Network Address Transform)地址转换。

在这种攻击中,由于攻击者的IP地址是私有IP地址,在受害主机端只能看到NAT网关的IP地址。在大型私有网络内,特别是无线局域网中,寻找定位攻击者并不是一件简单的事情。

在实际的网络攻击事件中, 可能并不严格遵守上述各种攻击场景, 但大致可以归为上述某个或某几个问题。

三、虚假IP地址攻击溯源

当攻击数据包中的源IP地址是伪造的时,如何找到发送攻击数据包的真实IP地址?这一问题也被称为IP追踪(IPTraceback)。对该问题, 需要按照不同背景、情况,不同分类方法来实施溯源方法。

1.背景:取证人员可以控制骨干网络上的全部或大部分路由器,并且可以修改路由软件。

取证人员可以在事先给骨干网络的路由器增加新的功能,在不影响正常路由的情况下修改标准的IP协议,以帮助发现真实的IP地址。

基于这一条件的方法主要有概率包标记算法、确定包标记算法、ICMP标记算法等。同时还有一些组合方法,例如采用数据包标记和数据包记录的混合方法;综合了 ICMP 和 PPM 算法, 路由器对于 IP 数据包以一定概率进行标记, 并且同时把IP地址填入ICMP包中等等。

2.背景:取证人员可以控制骨干网络上的路由器,但不能修改路由软件。

根据此种情况,取证人员可以事先观察记录流经骨干网络路由器的IP数据包,但不能改变标准的路由协议。

主要思路是,在路由器上记录所有流经的数据包,当攻击发生时,受害主机向其上游路由器进行查询,路由器比对所记录的数据包,可以构造出该数据包所经过的路径。该方法优点是可以回溯单个数据包,但缺点是需要考虑路由器存储空间受限的问题。

所以针对此种情况,Alex C.Snoeren、Craig Partridge等人在《Single-packet IP traceback》设计了一个追踪系统SPIE,不是让路由器记录整个数据包,而是利用bloom filter记录数据包的摘要,大大减少了所需的存储空间。然后通过查询每个路由器上的数据包摘要,可以重构出攻击路径。

还可以根据部分路由器进行数据包记录的情况, 并且对于多个攻击源问题, 该方法只需要追踪属于多个攻击源的数据包就可以识别出多个攻击源。

在《Session based logging (SBL) for IP-traceback on network forensics》中提出一种基于Session的数据包记录方法, 即只记录TCP数据流中的连接建立请求SYN数据包和连接终止 FIN 数据包, 忽略掉流中间的数据包, 从而大大减少所需的存储空间。

在《Passive IP traceback: disclosing the locations of IP spoofers from path backscatter》中针对跨自治域的追踪问题,可以利用路由器的IP包记录方法, 结合链路层的MAC地址来识别虚假IP地址, 实现了一个原型系统。

由于在这种情况下不能改变现有路由结构, 另外一个思路是在现有路由结构上建立一个覆盖网络(Overlay Network), 通过新设计的覆盖网络来实现数据包跟踪。

3.背景:取证人员不能控制骨干网络上的路由器,但可以在网络上部署监控器。

这种情况下,取证人员只能在网络合适的位置部署监控器收集数据包,这里的网络不是指骨干网络,而是指终端网络。

在大流量数据包情况下,由于网络阻塞等各种原因,路由器会有一定几率产生目标不可达的ICMP报文,由于攻击数据包的源IP地址是虚假的,一般是随机产生的,这些ICMP报文会被发往这些虚假的IP地址,其中包含路由器的IP地址以及原数据包的源和目的IP地址。

因此部署在网络上的监控器会收到这些ICMP报文,根据发送这些ICMP报文的路由器,可以构造出这些数据包的攻击路径。Robert Stone和Centertrack在《an IP overlay network for tracking DoS floods》提出了,利用NetworkTelescope 项目(能够覆盖1/256的IPv4地址)收集的数据,结合骨干网的拓扑结构,可以在一定程度上发现攻击源。

但是溯源追踪的方法要求攻击数据包的流量比较大,并且在攻击正在进行的时候实施,一旦攻击结束,这种方法就无法找到真实的IP地址。

4.背景:取证人员既不能控制骨干路由器, 也不能部署监控器, 但知道骨干网络拓扑结构。

在取证人员只知道骨干网络的拓扑结构, 没有权限控制骨干网中的路由器, 也没有条件部署遍及全网的监控器的情况下,我们可以采取以下几种追踪溯源的方法。

Hal Burch和Bill Cheswick在《Tracing anonymous packets to their

approximate source》提出了一种链路测试的方法。在大流量数据包的情况下,从被攻击目标出发,由近及远,依次对被攻击目标的上游路由器进行UDP泛洪。若某条链路上存在攻击流量,由于泛洪流量的存在,将导致攻击流量丢包。根据这一现象,即可以判断出某条链路上是否存在攻击流量,从而构造出攻击路径。

不过该方法只能对单个攻击流量进行检测,若同时存在多个攻击流量,则很难区分不同的攻击流量。这种方法同样要求攻击数据包流量较大,并且一旦攻击结束,方法也就失效了。另外,这种方法本身就是一种 DoS攻击,会影响正常的数据流量。

也可以采取一种基于蚁群的算法, 即受害主机发出一些蚁群, 这些蚁群根据链路中负载的程度来选择路径, 链路负载越 大说明越可能是攻击流量, 因此蚁群选择该路径的概率越大。当所有蚁群达到所监控网络边缘时, 根据 蚁群所走过的路径, 则可以构造出最有可能的攻击路径。

5.背景:取证人员既不能控制骨干路由器、不能部署监控器, 也不知道拓扑结构。

如果取证人员不掌握任何资源, 在这一条件下似乎不可能追踪到真实的IP地址。但可以采取某种方法, 获得骨干网络的拓扑结构, 从而将问题转化为拓扑结构的情况,。如Dawn Xiaodong Song,和Adrian Perrig在《 Advanced and authenticated

marking schemes for IP traceback》就是利用了traceroute 获取网络拓扑结构。

所以对于一般虚假IP溯源问题的解决,可以根据情况的不同采用不同的检测方法进行追溯。不过现如今网络攻击环境、攻击手法复杂且技术不断升级,我们也需要升级我们的检测方法,提高网络攻击溯源的技术水平,这样才能更好地保护我们的网络安全。