
技术摘要:
本发明公开了一种面向SDN的跨平面协作DDOS检测与防御方法与系统,该方法包括以下步骤:1)在数据平面进行流量监控;提取流量特征相关指标;2)捕获上述六个指标的变化,初步判断当前流是否为DDOS攻击造成的异常流量。3)数据平面的流量监控中检测到异常流,数据平面将发送 全部
背景技术:
DDOS是一种易发起,高破坏性的网络攻击行为。DDOS攻击者通过多个分布式攻击 源伪造海量虚拟IP地址对服务器发起访问式攻击,大量消耗服务器资源,导致受害服务器 崩溃而无法响应正常用户的服务请求。这种在互联网发展初期便存在的网络安全威胁,时 至今日仍然是互联网上最流行,效率最高的攻击方式。国内外针对DDOS攻击的主要防御方 法是实时的网络监控,当DDOS攻击发生时,启动攻击流量清洗设备屏蔽DDOS攻击源,从而避 免网络遭受DDOS攻击的侵害,达到安全防御的目的。 SDN(软件定义网络)作为一种新兴的网络模式引起了学界和工业界的极大兴趣。 在SDN中,控制平面和数据平面是解耦的,网络的状态在逻辑上是集中的,控制器被从底层 的网络设施中抽象出来。SDN的出现,大大提高了网络的可管理性、可扩展性、可控性和动态 性。然而,随着SDN应用的普及,SDN的安全性问题也成为SDN领域关键的研究课题之一。 现有的DDOS攻击检测机制大多都只有检测部分,缺少具体防御策略。每次攻击流 量到达控制器都会产生大量的南北接口负荷以及控制平面系统开销,且普遍存在着检测时 延长、检测精度低、误报率较高、对新型DDOS攻击检测能力较弱等诸多问题。
技术实现要素:
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种面向SDN的跨平 面协作DDOS检测与防御方法与系统。 本发明解决其技术问题所采用的技术方案是:一种面向SDN的跨平面协作DDOS检 测与防御方法,包括以下步骤: 1)在数据平面进行流量监控; 利用OpenFlow交换机中的计数器提取流量特征相关指标,包括:单位时间平均数 据分组量、单位时间平均字节数、对流所占比例、单流增长率、流平均持续时间和端口增长 率; 具体如下: 指标1:单位时间平均数据分组量(average packets per second at time Tn) 其中,Tn表示采集流量的第n个时间周期, 表示在Tn时间内的数据分组量; 指标2:单位时间平均字节数(average bytes per second at time Tn) 6 CN 111614627 A 说 明 书 2/15 页 其中, 表示在Tn时间内的流量的比特数。 指标3:对流所占比例(Percentage of pair-flow) 其中,flow_numsT表示在时间周期T内采集的流数量,T表示采集周期,nums_ single_flows表示每个周期T内采集到的流中单流的数量,nums_pair_flows表示每个周期 T内采集到的流中单流的数量。 指标4:单流增长率(growth rate of single flow) 指标5:流平均持续时间(average durations per flow) 其中,durationsi表示每条流表的持续时间。 指标6:端口增长率(growth rate of different port) 其中,nums_different_port表示每个周期T内采集到的流表中不同端口号的流数 量; 2)捕获上述六个指标的变化,如果六个指标下一个周期的实际值都落入预测范围 内,则判断当前流正常;否则,预测值与观测值之间的偏差代表了网络行为的变化,如果所 有六个指标偏差值都超出预设范围,初步判断当前流为DDOS攻击造成的异常流量。 3)数据平面的流量监控中检测到异常流,数据平面将发送报警消息通知控制平 面; 4)控制平面接收到报警消息后,将异常流状态存储在数据库中,触发事件通知基 于控制器的DDOS机器学习细粒度检测,对特定的异常流进行深度检测; 4.1)收到警报消息,控制平面从特定的异常流中缓冲数据包,并将其发送到控制 器并存储在数据库中; 4.2)进行细粒度分析; 在控制平面,利用聚类算法K-means结合提取的相关特征进行细粒度的检测;建立 7 CN 111614627 A 说 明 书 3/15 页 数据平面白名单库和黑名单库;所述提取的特征为每个数据包的五元组信息:目的地址、目 的端口、源地址、包大小、流的持续时间; 提取每个数据包的五元组信息(目的地址、目的端口、源地址、包大小、流的持续时 间),计算五元组的熵值; 其中,S是数据包的总数,N是不同IP地址或端口的数目,ni表示某IP地址出现的次 数;特征分布越集中,H(X)值越低。 另外,由于正常的突发大流量也会改变分组大小的熵,因此我们对分组大小熵进 行了如下改进,以区别于DDOS业务。 这里的imax是数据包大小级别,大多数数据包都包含在这些级别里。 使用上述特征组成的特征矩阵作为K-means的输入,进行聚类,聚类完成后,滤去 噪声,方法是去除稀疏的簇,根据统计中常用的规则,如果训练数据总共有n个点,则剔除那 些不足0.05n个点的簇; 对于每个簇,我们记录检验数据的中心C和半径r,C由所有点的平均值决定,半径r 由C与集群中任意点之间距离的最大值决定; 熵向量X计算X与所有簇中心Ci之间的欧式距离,并将结果记录为di;选择最小距离 dt=min{di},然后将样本X分配给相应的簇;将dt和聚类半径rt作比较,如果dt<rt,则样本X 被判定为正常数据,即此流量被判定为正常流量,我们保存这些流的源地址,以更新流表的 形式更新数据平面的白名单库;否则,样本被判定为异常数据,我们认为此流量为DDOS攻击 流量,同样保存这些源地址,经过防误判模块检验后,若确定没有被误判的正常业务流,更 新数据平面黑名单库。 5)修正细粒度检测模块建立的源IP黑名单和源IP白名单,若在一个设定的时间段 内相同源IP的业务流有间隔的出现两次或两次以上,判断这个源IP的流量是正常业务流 量,保存这个源IP并将其加入白名单。 一种面向SDN的跨平面协作DDOS检测与防御系统,包括: 初步筛查模块,用于根据数据平面进行流量监控,提取流量特征指标,并根据指标 的变化完成异常流量粗粒度的筛查;所述流量特征指标包括:单位时间平均数据分组量、单 位时间平均字节数、对流所占比例、单流增长率、流平均持续时间和端口增长率; 异常流量粗粒度的筛查具体如下:捕获上述六个指标的变化,如果六个指标下一 个周期的实际值都落入预测范围内,则判断当前流正常;否则,预测值与观测值之间的偏差 代表了网络行为的变化,如果所有六个指标偏差值都超出预设范围,初步判断当前流为 DDOS攻击造成的异常流量; 报警模块,用于根据初步筛查模块的筛查结果,进行报警,若数据平面的流量监控 中筛查检测到异常流,数据平面将发送报警消息通知控制平面; 细粒度检测模块,用于控制平面接收到报警消息后,将异常流状态存储在数据库 中,触发事件通知基于控制器的DDOS机器学习细粒度检测,对特定的异常流进行深度检测; 8 CN 111614627 A 说 明 书 4/15 页 并根据检测结果建立源IP黑名单和源IP白名单; 防误判模块,用于修正细粒度检测模块建立的源IP黑名单和源IP白名单,若在一 个设定的时间段内相同源IP的业务流有间隔的出现两次或两次以上,判断这个源IP的流量 是正常业务流量,保存这个源IP并将其加入白名单。 本发明产生的有益效果是: 1、提出了一种创新的基于SDN的跨平面协作DDOS攻击检测框架CPCS,通过数据平 面的粗粒度检测和控制平面的细粒度检测对异常流执行两级粒度过滤过程,大大提高了检 测性能,克服了控制器系统开销和南向接口通信负荷方面的挑战; 2、提出了一种适用于数据平面的轻量级流量监控算法,该算法利用OpenFlow交换 机计数器在控制平面细粒度DDOS攻击检测之前过滤异常流,CPCS相对原有的控制平面检测 方法性能大大提高,降低了检测延迟和控制器系统开销; 3、设计的系统是一个端到端系统,在检测出DDOS流量后立刻执行防御策略,并添 加了黑白名单机制,对于大型网络场景很有意义。 附图说明 下面将结合附图及实施例对本发明作进一步说明,附图中: 图1是本发明实施例的方法流程示意图; 图2是本发明实施例的数据平面流监控器工作流程示意图; 图3是本发明实施例的DDOS流量的不对称特征示意图; 图4是本发明实施例的控制面细粒度检测示意图; 图5是本发明实施例的防误判机制示意图; 图6是本发明实施例的实验平台结构图; 图7是本发明实施例的实验流程示意图; 图8是本发明实施例的DDOS攻击前后数据平面特征指标的变化情况示意图; 图9是本发明实施例的正常巨型业务流量下指标的特征变化情况示意图; 图10是本发明实施例的两种方法控制器需监控流数的变化示意图; 图11是本发明实施例的南向接口通信量示意图; 图12是本发明实施例的控制器CPU利用率示意图。