赵 陇,王志勃,章万静
(1.江苏省电子产品装备与制造中心,江苏 淮安 223003;2.淮安信息职业技术学院,江苏 淮安 223003)
针对物联网设备的DDoS攻击是一种新型的网络攻击,越来越多的攻击目标是广播系统、金融系统以及全球性的基于互联网的服务。由于物联网设备的小型化,它们很容易受到攻击,同时,这些攻击会伪造物联网设备的源IP[1]。打印机、扫描仪、基于IP的闭路电视系统、无线路由器、IP摄像头等,这些都是一个智能家居网络的主要组成部分,简单服务发现协议(SSDP)被许多物联网设备所使用[2],而很多针对物联网设备的DDoS攻击正是利用SSDP漏洞发起的,特别是SSDP放大攻击很难应对,因此,物联网设备IP追踪技术非常重要[3-4]。
当前,DDoS攻击领域的源IP追踪技术有很多,文中提出了一种新的检测源伪造IP的方法。该方法旨在同时保护多个目标免受DDoS攻击[5]。通过建立一个参考表,存储网络中正常的TTL跳数,通过和异常流量的跳数比较,可以快速检测出伪造IP[6]。
对进入DDoS安全区正常流量的可靠TCP数据包进行检测的示意图见图1。从这些TCP数据包中,检测出源操作系统(OS)签名和TTL跳数,并将这些用于网络参考表中。当发生DDoS攻击时,DDoS安全区检测来自攻击流量的TCP数据包,比较有关操作系统和跳数信息,并进行统计分析以确定是否是伪造的,当发现伪造IP,就可以迅速阻止相关的IP流量。
图1 伪造IP检测示意
IP包每经过一个路由器,TTL值都减1,由源TTL值减去目标TTL值,就可以得到总跳数。所以应对各种操作系统和通信协议进行分析,收集其初始TTL值,计算出总跳数[7]。表1列出了各种操作系统的初始TTL值。
表1 操作系统的初始TTL值
为了创建参考表,必须从DDoS安全区的流量中检测源操作系统类型。这可以从TCP/IP分组收集的OS签名信息来检测。OS签名信息可以从TCP-SYN、TCP-SYN/ACK或TCP-RST数据包中获得[8]。
以下内容显示了从TCP-SYN数据包中截取的信息,用以检测OS签名和TTL跳数[9]。
·Initial packet size:16 bits
·Initial TTL:8 bits
·Windows size:16 bits
·MSS(maximum segment size):8 bits
·“DF(do not fragment)” flag:1 bit
·“SackOS” flag:1 bit
·“nop” flag:1 bit
CAIDA是一家提供互联网数据共享服务的机构,参考其提供的Traceroute网关因特网跳数统计数据,就可以估计出全球范围内的正常跳数。TTL值随着TCP数据包发送到目的地而减小,并且正常的因特网路径信息也可用于检测异常跳数[10-11]。
如图2所示,正常Internet路径中的最大跳数平均不超过30跳[12]。因此,当目的端的TTL值为114,初始TTL值必定在114+30以内。例如,初始TTL值为128,目的TTL值为114,报文的总跳数就为128-114=14。然后将扣除的跳数与参考表进行比较,如果偏离了相关网络平均跳数的容限范围,那么这个报文就被证实为伪造的。
图2 基于路由网关的Internet跳数统计
为了准确确定TTL值,必须要知道IP分组的操作系统,并且利用参考表来检查操作系统信息。该技术将IP带宽中的平均跳数与跳数参考表进行比较,从是否偏离了平均值来判断该流量是否为伪造的。此时,需收集非欺骗IP跳数信息来创建参考表。在单一的网络中,网络结构不易改变,从AS边界路由器到终端设备的跳数似乎呈现一种正态分布。因此,在一定规模的网络中对构成的IP样本群进行统计预测是有可能的,网络分类标准将它们分类为IP所属的B类、C类和AS网络。DDOS安全区与相关网络之间的距离表示为网络组的平均跳数和平均标准偏差。
(1)
(2)
提取非伪造的IP以建立参考表,并识别具有正常TCP连接的SYN分组。从收集的分组中提取操作系统信息,并从TTL中提取跳数以构建最终参考表。为了确保完整性,只提取了通过三次握手完成的TCP连接。开源Bro[13]分析工具用于检测TCP会话,并且使用TCP会话的历史信息用于验证TCP会话是否正常进行。
图3 使用P0f的OS指纹识别
图4 IP网络到C类的转换
AS是由一个或多个网络运营商运营的一组IP网络,具有单一且明确定义的外部路由策略。外部路由协议用于在自治系统之间交换路由信息。如果网络连接到具有不同路由策略的多个AS时,则需要创建AS。仅当AS与公共Internet上的其他自治系统交换路由信息时,才需要公共AS号。AS号是分配给网络的因特网上的固有编号,使用相同的路由策略,其中C类网络最小分配单元为256(28)。C类分类方法所建参考表受限于参考表过大,可以将它归类为B类,以减小参考表,但随之带来的问题就是信息精度的降低。
APNIC在亚太地区分配IP和AS号,AS号一般由ISP运营。使用单个AS号分类的优点是它被分类为独立组成网络的最小单元,尽管它比C类网络更大,但是因为它具有独立的网络路由策略,所以其信息精度更高。
检测伪造IP的步骤如下:
步骤1:构造一个表,存储从CAIDA得到的正常跳数Ts;
步骤2:检查来自正常流量的TCP-SYN数据包的OS签名;
步骤3:从TCP-SYN数据包中获取最终的TTL跳数(Tf);
步骤4:从TCP-SYN数据包中推断初始TTL跳数(Ti);
步骤5:计算跳数:Hc=Ti-Tf;
步骤6:比较Hc和Ts。如果Hc大于Ts,那么它必然是伪造IP地址;
步骤7:如果IP地址是伪造的,则该分组必定被系统阻塞。
为了建立参考表,从DDoS安全区收集了针对WEB服务的10次攻击共1 490个日志文件,分析其10 TB的数据。表2显示了从DDoS安全区收集的DDoS攻击流量中的非欺骗IP的结果。在总共10个攻击案例中,在删除重复的IP之后,共提取了849 391个非欺骗IP。这个值约占分配给中国的大约3.3亿个IP的0.25%。
表2 从DDoS攻击案例中提取的非欺骗IP
C类参考表应尽可能多地表示网络带宽。10 TB流量日志的10个攻击案例中,检测到的非欺骗IP仅占分配给中国IP总量的0.25%。当使用B类和C类对网络进行分类时,也会有局限性,可以使用AS网络单元的分类技术进行测试以弥补这种缺点。
从收集的IP中提取和分类AS信息,以检查分配给中国的AS数量,来验证AS分类参考表的合理性。APNIC分配给中国的IP数量大约3.3亿,AS数量大约13万[15]。通过AS对来自DDoS安全区日志中的84万个非欺骗IP进行的分析显示,它们大约分属于11万个AS网络。
分析伪造IP工具分为三种状态:欺骗,非欺骗和未知。未知状态是当源IP难以区分时的状态;非欺骗状态是处于跳数参考表允许范围内的状态,这被认为是非欺骗IP;欺骗状态是指它偏离了跳数参考表允许范围,这被认为是欺骗IP。图5显示了使用参考表对WEB服务攻击案例检测的结果,在WEB攻击的案例1中,发现IP欺骗率约为总流量的2%,这些IP在源端即被伪造,1%无法识别,其余97%未涉及欺骗。
图5 针对WEB服务的伪造IP检测结果
如图6所示,攻击案例的跳数平均距离遵循正态分布,而大多数情况落在97%以内,这与参考表值的平均跳数±5跳有关。
图6 基于AS的伪造IP检测结果
在这个实验中,发现大约900 000个DDoS攻击的案件中有18 000个案例在源端被伪造,大约占2%。1%的案例(90 000个),无法识别是否伪造,其余97%未涉及欺骗IP。通过使用跳数和参考表在检测之后过滤IP,可以快速检测出DDoS攻击并减轻DDoS攻击。
文中提出了使用DDoS安全区快速检测伪造IP的方法。为了对提出的方案进行验证,收集并分析了来自10次攻击的DDoS日志。检查DDoS安全区的正常源IP平均跳数来构建参考表,并在DDoS攻击的情况下,从TTL提取跳数并与参考表进行比较以验证其真伪。通过实验证明了所提出方案对检测伪造IP的有效性。