摘要:在流量统计的过程中,结合相应的异常信息成分估计来实现相应的攻击检测,是该思路的主要特点。目前针对这一方法的研究尚处发展阶段,丁森林[4]等使用信息熵对若干现实攻击事件进行了分析,其结果证实了信息熵能够及时发现攻击点;张洁[5]等在信息熵检测方法基础上进一步提出了分级阈值的思路,并从一定程度上降低了DDoS攻击检测的误报率。
本文结合DNS64分布式拒绝服务攻击的具体攻击场景,提出了一种基于熵估计的异常流量检测技术,该技术采用了统计阈值而非固定阈值的攻击检测方式,并结合DNS64协议特点,有针对性地引入了相应的攻击特征分类机制,以解决当前基于固定阈值的熵估计攻击检测技术所普遍存在的误报率较高的问题。该文同时针对上述检测思路进行了实验验证。分析结果表明,上述技术能够在较大提升DNS64分布式拒绝服务攻击的检测率的同时,降低其检测误报率,从而具备良好的实际应用价值。
1 DNS64技术与熵估计方法简介
1.1 DNS64并存过渡技术
DNS64[6]是一种IPv4-IPv6过渡技术。其一般用来与IPv6/IPv4转换设备(如NAT64[7]设备等)协同工作,以保证IPv6-only主机可通过域名与IPv4-only的服务器建立通信。其中,NAT64通常用来实现TCP、UDP、ICMP协议下的IPv6与IPv4网络地址和协议报文的转换。而DNS64则主要是配合NAT64工作,用于在建立连接伊始,将DNSv4查询信息中的A记录(IPv4地址)合成到AAAA记录(IPv6地址)中,继而将合成后AAAA记录用户给IPv6侧用户。
DNS64与NAT64配合工作的协议流程如下图所示。
在上述跨协议域的交互过程中,不难发现,DNS64服务器极易成为分布式拒绝服务攻击的重点目标。这主要是因为,首先,由于该服务涉及到多次DNSv4、DNSv6请求的发起与组装返回,而这一过程是有状态的,如果针对该服务进行DDoS攻击的话,势必能够以更高的效率耗尽DNS64服务的处理能力及其状态保存相关的存储资源;其次,对于背后的双栈DNS服务器而言,遭受到DDoS攻击的DNS64服务器恰好成为了一个放大攻击流量的跳板,在遭受DDoS攻击的场合下,其势必也将导致背后的DNS服务也遭受到至少同等强度的拒绝服务攻击。
由此不能看出,DNS64作为一种被广泛应用的64过渡机制,其在应对DDoS攻击方面实际上存在着显著缺陷,其本身不仅容易受到攻击,而且在受到攻击的情况下,其还将连带波及到其他关键服务网元。因此,及时检测出针对DNS64服务器的攻击并采取相应的防护措施,对于保障其正常服务而言非常关键。
1.2 基于信息熵度量的攻击检测
信息熵的概念最先由信息论之父香农于1948年提出,作为一个衡量事件信息含量的基本度量,其认为所有的信息均不同程度的存在着冗余,而冗余的大小与信息中的符号出现概率相关,而在剔除信息中冗余信息之后所剩余的平均信息量则被定义为“信息熵”。信息熵这一概念被广泛地应用于描述随机事件出现的不确定性;如某系统中事件出现的越随机、越杂乱无章,则其含有的信息量就越大,其熵值也应越大。
假设存在某个随机事件X,则其发生时所包含的信息量应该是该事件发生时先验概率 P (X)的函数,于是可将事件 X所包含的自信息量I(X)(单位bit)以如下形式定义:
信息熵一般具有非负性,即其通常为正数;同时,其还具有对称性,其值并不会因为事件统计顺序变化而发生改变;同时其还具有确定性,即当某事件发生概率为1时,则信息熵取值必定为0;除此之外,其还具有最大离散熵属性,即当系统中所有离散事件发生的概率相等时,此时系统具有最大离散熵。
信息熵的上述性质,使得其非常适合用来作为分布式拒绝服务攻击检测的度量。其主要思路在于:为规避攻击检测,目前DNS分布式拒绝服务攻击大多通过采用大量的伪造源地址、针对大量不存在的域名发起DNS请求的方式来发起攻击,因此将直接导致在一定时间窗口内以不同源地址或不同请求域名作为随机事件的熵度量的显著增长,而这一熵度量则可作为判别分布式拒绝服务攻击是否发生的一个直觉依据。
2 基于熵估计的DNS64分布式拒绝服务攻击检测
2.1 针对攻击特征的信息熵计算
本文采用了一种基于等量数据包的统计方式来计算信息熵检测值,其算法描述如下:
1) 不妨设N为当前检测量,即,针对每N个DNS查询数据包进行1次信息熵计算,这N个DNS查询数据包被称为一个检测周期;
2) 考虑到DNS DDoS攻击方式的特点,我们选取将DNS数据包中的源地址与其查询域名的内容作为数据包的特征并加以提取;
3) 当采集的数据包数量累积达到N时,触发1次信息熵计算,其计算方法为:逐一针对特定的特征类别,对当前积累的N个数据包中的特征取值进行归类,并得到不同类别的特征取值出现的累积个数,然后计算出不同特征取值类别出现的概率。
4) 基于各个特征取值出现的概率,计算出针对该特征的信息熵值,并将该熵值保存下来作为后继检测的基本依据。
通过上述计算方式,不难发现,当分布式拒绝服务攻击发生时,来自随机源地址的DNS数量将急剧增长,而与其同时,其DNS请求解析的随机域名数量也将不断增长,因此在这种场合之下,针对源地址与请求解析域名这两个特征的信息熵值也将出现显著的增长,而这一趋势则可以作为判断当前是否存在DDoS攻击的直觉判别依据。
2.2 基于拟合残差的熵估计检测
值得指出的是,尽管我们可以在利用2.1节算法的同时,设定一个固定判决阈值,当信息熵高于该阈值时表示检测到攻击,但这种方式存在着其固有的局限性:当其阈值设置得过大时,系统的检测率将随之变低,而当其阈值设置得过小时,则误报率变高。
为解决这一问题,该文提出了一种基于统计拟合的方法来动态选取判决阈值。考虑连续统计M个检测周期的场合,在每一周期中针对某一特定的特征我们均可获得其所对应的信息熵h。为描述方便起见,以下我们暂时仅考虑单一特征的情况。
我们将M称为统计窗口,并且可针对该窗口下某特定特征的所有熵值进行从小到大排序,根据排序的结果,将排列次序为i的信息熵定义为hi。
针对熵值集合,可对其进行线性拟合,拟合结果表述如下:
2.3 基于特征加权的熵估计检测
在2.2中,我们仅考虑了单一特征统计的情况。事实上,在针对DNS64的实际DDoS攻击场合下,其各攻击特征的熵值变化趋势并不是一致的,比如,如前文所述,针对其攻击报文中源地址特征及请求域名的信息熵变化趋势是递增的,而针对其攻击报文的DNS请求类型这一特征的信息熵统计趋势却是递减的,这主要是因为攻击方为了加大对DNS64服务器的负载压力,反复向其发起同种类型的DNS Query报文的缘故。这一观察表明,与熵值异常程度ai类似的,不同类型特征的熵值变化趋势对于DDoS攻击评判也存在着相应的影响。
为综合考虑上述两方面因素,不妨设DDoS攻击特征集合为F={f1, f2, f3, …, fn},其中n为特征总量。对于第i个特征,可用Ii来表示其熵值是否显著增加,当其熵值显著提升时,Ii取值为1,否则为0;同时用Di来表示该特征的熵值是否显著降低,其取值含义与Ii类似。
我们同时定义权值ui表示当特征i的熵值显著提升时对DDoS攻击判决的影响权重,并且定义表示当特征i的熵值显著提升时,其对DDoS攻击判定的权重为vi。则有所有特征的熵值变化对DDoS攻击的评价度量V为:
3 实验与分析
为验证上述算法的有效性,该文采用了模拟DDoS攻击的方式,将该算法与采用固定阈值判定的检测算法效果进行了对比。具体实验环境为x86平台下的debian-sid Linux,整个验证实验采用了多台计算机(Intel Dual-Core 2.0Ghz,512M,攻击主机3台,DNS64服务器1台,普通服务器1台,终端机1台),所有主机均以100Mbps全双工互连。模拟DDoS攻击的软件采用DDOSIM[8]。
4 结论与下一步工作
本文针对DNS64分布式拒绝服务攻击的具体场景,提出了一种基于信息熵估计的异常流量检测技术,该技术采用了统计阈值而非固定阈值的攻击检测方式,并结合DNS64协议特点,针对性地引入了多攻击特征加权判别机制。实验与分析结果表明,上述方法能够针对渐增的DDoS攻击行为给予及时响应,同时在保障DDoS攻击检测率的同时,有效地降低其检测误报率,从而达到DNS64攻击识别与服务防护的目的。
下一步工作主要包括:将其分析思路应用在DNS64-NAT64协作场景之下,进一步分析NAT64、NAT-PT等关键v4/6并存过渡机制所面临的DDoS风险;以更细粒度分析攻击判决模型,探讨其算法参数的自适应优化取值方法;尝试采用统计学习方法改善信息熵攻击判决效率,进一步提升系统在正常访问流量下的容忍度。
* 稍后学术顾问联系您