2.1 两点假设
实现本方法需满足两个基本假设:
假设一:假设存在一种可以检测到大流量DDoS攻击发生的方法。该方法:可识别当前攻击的类型;有可能发现此次攻击的一些特征。
假设二:假设存在一种过滤攻击的方法。该方法可以过滤指定特征的所有流量。
DDoS发生时,例如发生TCP Flood攻击:检测方法发现攻击的同时指出此次攻击的类型为TCP Flood,即传输层通讯协议为TCP;如果有可能则尽量去发现此次攻击的一些其他特征,如,攻击数据包的大小、某些标志位的值是固定的等。过滤方法在检测结果基础上, 过滤掉所有满足条件的TCP数据即可,这样的过滤是一种“严格过滤”。“严格过滤”过滤掉所有疑似流量,保证受害系统上其他类型服务的正常运行,遭攻击的服务会暂时受到影响,受影响程度由检测方法提供的攻击特征准确程度决定。
2.2 建立合法用户访问列表
被“严格过滤”掉的数据由攻击数据和合法数据两部分组成,二者比例与过滤的准确程度、合法用户当前访问量、攻击强度都有关。一次成功大流量DDoS攻击的目的是湮没目标,因此,可假设攻击成功时攻击数据量是远远超过合法数据量的,从而合法数据可以被看作是整个数据集合中的离群点,这就是ODM方法的思路来源。此处谈到的离群挖掘算法可以是任选,选择标准是保证挖掘的准确度。另外有两个问题需要进一步说明:
挖掘结果的利用:理论上讲,挖掘结果是离群于集合中大部分数据的点集,即合法数据点集。事实上挖掘结果由合法数据、被误判为合法的攻击数据两部分组成,合法数据点越多,误判点越少挖掘效果就越好,所以挖掘结果又称为准合法数据。在攻击发生期间,分批处理不断被过滤掉的数据,每次挖掘结果作为建立白名单的依据,白名单成员不断增多。挖掘结果中最有意义的信息是源IP,无论使用标准ACL或扩展ACL它都是必要的。其他信息可以根据具体需求进行扩展。
挖掘误差的影响:准合法数据与合法数据的差别即挖掘误差对防御效果是有影响的。挖掘误差会导致赋予某些非法用户合法的身份,允许这些非法用户继续攻击且不会再受阻挡。然而这种影响并不严重,这是因为大流量DDoS攻击使用IP Spoofing技术,同一IP被再次使用的概率很低。假设攻击者使用完全随机IP地址,以IPv4地址格式为例,同一IP地址再次被使用的概率p=1/(2554-不可用IP)≈0。即使攻击者有一个备选IP库被用来伪冒IP,或是使用某一子网内的随机IP,概率p仍会很小,否则攻击效果会因伪造源太少而大打折扣。
2.3 实验研究
数据集:UCLA的固定发包速率1.9M/秒的攻击数据,背景数据选择TRACE1[25]。MIT数据选取Lincoln Laboratory Scenario (DD0S) 2.0.2[26]。
实验步骤:图3是处理攻击的流程图,实验依照该步骤进行。检测方法使用基于IP流特性的DDoS检测[27]。严格过滤使用可以设置过滤规则的普通防火墙。然后在被过滤掉的数据集合上执行离群挖掘算法(本实验选择Nested loop算法[28])。最后综合对比分析进入系统之前的数据集、被过滤掉的数据集、离群挖掘的结果,得出结论。如图3,I为原始试验数据集(UCLA或MIT数据集),S0为检测后产生的攻击特征向量(攻击类型、数据包大小范围等),D是被过滤掉的数据集,O为挖掘出的离群点集。
实验结果分析:依照Nested Loop算法, D中的每10000条记录作为一组执行一次挖掘,算法中最近邻个数k取5,要找到的离群点个数n取200。实验结果如表2、3所示。实验结果表明,挖掘出的合法用户数与实际存在于每个10000条记录中合法用户数的比值都在65%以上,最高达91%,从这个角度看ODM方法发现合法用户的能力是可接受的。值得我们注意的是Udp_D3和Udp_D4上的挖掘结果,实际分别存在204和232个合法用户,我们设定的n值为200,这样即使挖掘方法百分百的挖掘到200个合法用户也会导致部分合法用户被遗漏,因此n的取值应该适当。从误判角度看,被误判为合法数据的攻击数据占每个10000条记录的百分比最高为Tcp_D4中的(200-71)/10000=1.29%。
(责任编辑:adminadmin2008)