[发明专利]基于软件定义网络的DDoS攻击跨层协同防御方法有效

专利信息
申请号: 201810038542.6 申请日: 2018-01-16
公开(公告)号: CN107959690B 公开(公告)日: 2019-07-05
发明(设计)人: 韩彪;王汉文;杨翔瑞;孙志刚;王宝生;赵宝康;赵锋;虞万荣;原玉磊 申请(专利权)人: 中国人民解放军国防科技大学
主分类号: H04L29/06 分类号: H04L29/06
代理公司: 长沙中科启明知识产权代理事务所(普通合伙) 43226 代理人: 任合明
地址: 410003 湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于软件定义网络的DDoS攻击跨层协同防御方法,目的是解决南向接口与控制层面通信压力太大及SDN控制器计算压力太大的问题。技术方案是先构建由数据层面和控制层面构成的基于SDN的DDoS攻击跨层协同防御架构,数据层面对数据流进行粗粒度检测得到DDoS攻击异常流量数据,控制层面对DDoS攻击异常流量数据进行细粒度检测,得到最接近僵尸网络的交换机。控制层面的SDN控制器在最接近僵尸网络的交换机上部署DDoS防御策略,数据层面的SDN交换机采用DDoS防御策略进行DDoS防御。本发明通过数据层面与控制层面协同合作,充分利用了SDN可协同防御的优势,解决了SDN南向接口压力大、SDN控制器负担过大的问题,使得交换机能智能地自动进行防御。
搜索关键词: 基于 软件 定义 网络 ddos 攻击 协同 防御 方法
【主权项】:
1.一种基于软件定义网络的DDoS攻击跨层协同防御方法,其特征在于包括以下步骤:第一步,构建基于SDN即软件定义网络的DDoS攻击跨层协同防御架构,方法是:基于SDN的DDoS攻击跨层协同防御架构由数据层面和控制层面构成,控制层面通过南向接口与数据层面进行通信;数据层面由交换机构成,负责数据的传输;控制层面由SDN控制器构成,负责对数据层面中交换机的管理;数据层面的SDN交换机上除装有交换机代理,并有数据通路外,还装有DDoS攻击感知模块、特征提取模块、DDoS防御执行模块,交换机中的硬件计数器对所有经过交换机数据通路的数据包和比特数进行计数;控制层面的SDN控制器除装有控制器代理外,还装有事件管理器、DDoS攻击分类模块、僵尸网络溯源模块、DDoS防御策略库模块;DDoS攻击感知模块与交换机代理、硬件计数器相连,DDoS攻击感知模块检测简称异常流的DDoS攻击异常流,将异常流ID发送给交换机代理;特征提取模块与交换机代理、数据缓存相连,特征提取模块从数据缓存获得异常流量数据包样本,从异常流量数据包样本中提取异常流量特征,将提取的异常流量特征发送给交换机代理;交换机代理与DDoS攻击感知模块、特征提取模块、数据缓存、DDoS防御执行模块、控制层面的控制器代理相连;交换机代理从DDoS攻击感知模块接收异常流ID,向数据通路发送异常流ID;数据通路将符合异常流ID的数据包作为异常流量数据包样本复制到数据缓存;交换机代理还从特征提取模块接收异常流量特征,从数据缓存获得异常流量数据包样本;交换机代理将异常流量数据包样本、异常流量特征、异常流ID、交换机ID打包成DDoS攻击异常流量数据,发送至控制层面的控制器代理;此外,交换机代理还从控制器代理接收DDoS防御执行器源代码,将DDoS防御执行器源代码存储在数据缓存中,然后将DDoS防御执行器源代码在交换机的操作系统中编译为可执行DDoS防御执行器,交换机代理为可执行DDoS防御执行器分配一个DDoS防御执行器ID,同时将可执行DDoS防御执行器加入到DDoS防御执行模块中,且交换机代理从可执行DDoS防御执行器接收该可执行DDoS防御执行器处理的数据包类型,将此数据包类型发送到数据通路,数据通路根据收到的数据包类型将该类型数据包发送到DDoS防御执行模块;DDoS防御执行模块是一个DDoS防御执行器链,DDoS防御执行器链由N个DDoS防御执行器组成,N为正整数,交换机代理在交换机启动时初始化一个空的防御执行器链,将编译后得到的可执行DDoS防御执行器按时间顺序依次添加到防御执行器链的尾端,组成DDoS防御执行器链;DDoS防御执行模块从数据通路接收待处理的DDoS攻击数据包,对待处理的DDoS攻击数据包进行处理,向数据通路发送已处理的DDoS攻击数据包;控制器代理与交换机代理、事件管理器、DDoS防御策略库模块相连,控制器代理从交换机代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量数据发送给事件管理器;控制器代理还从DDoS防御策略库模块接收DDoS防御执行器源代码、最接近僵尸网络的交换机集合C,C中元素为最接近僵尸网络的交换机ID,C中有U个元素,U为正整数,找到与最接近僵尸网络的交换机ID匹配的交换机,命名为J1,...Jh,...,JU,1≤h≤U;控制器代理为每个与之相连的交换机分别维持一个DDoS防御执行器源代码发送记录表;DDoS防御执行器源代码发送记录表的每个表项只有一个域,为DDoS防御执行器源代码号,若表中有DDoS防御执行器源代码号,则表明该DDoS防御执行器源代码号所对应的DDoS防御执行器源代码已经被控制器代理发送过;控制器代理通过查询DDoS防御执行器源代码发送记录表判断是否向交换机J1,...Jh,...,JU中的交换机代理发送过DDoS防御执行器源代码,若未发送过,则向交换机J1,...Jh,...,JU中的交换机代理发送DDoS防御执行器源代码;事件管理器与控制器代理、DDoS攻击分类模块、僵尸网络溯源模块、DDoS防御策略库模块相连,事件管理器从控制器代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量数据中的异常流量特征转发给DDoS攻击分类模块,将异常流量数据包样本、异常流ID、交换机ID转发给僵尸网络溯源模块;事件管理器还从DDoS攻击分类模块接收DDoS攻击类型,从僵尸网络溯源模块接收最接近僵尸网络的交换机集合C,将DDoS攻击类型、最接近僵尸网络的交换机集合C发送给DDoS防御策略库模块;DDoS攻击分类模块与事件管理器相连,该模块从事件管理器获得异常流量特征,利用机器学习方法进行DDoS攻击分类,得到DDoS攻击类型,将DDoS攻击类型发送给事件管理器;僵尸网络溯源模块与事件管理器相连,该模块从事件管理器获得异常流量数据包样本、异常数据流ID、交换机ID,进行僵尸网络溯源,得到最接近僵尸网络的交换机集合C,僵尸网络溯源模块将集合C发送给事件管理器;DDoS防御策略库模块与事件管理器、控制器代理相连,DDoS防御策略库模块中有DDoS防御执行器源代码库,该模块从事件管理器接收DDoS攻击类型,根据DDoS攻击类型在DDoS防御执行器源代码库中选择与DDoS攻击类型匹配的DDoS防御执行器源代码,将与DDoS攻击类型匹配的DDoS防御执行器源代码发送给控制器代理;同时,DDoS防御策略库模块从事件管理器接收最接近僵尸网络的交换机集合C,向控制器代理发送最接近僵尸网络的交换机集合C;第二步,数据层面对所有通过交换机的数据流进行粗粒度检测,方法为:2.1 SDN数据层面的DDoS攻击感知模块检测DDoS攻击异常流,简称异常流,得到异常流ID;DDoS攻击感知模块检测异常流的方法为:2.1.1 DDoS攻击感知模块将4个最大长度为c的队列B、P、AByte、APkt初始化为空队列,其中B为总平均比特率队列、P为总平均包速率队列、AByte为比特率不对称性队列、APkt为包速率不对称性队列,c为正整数;令检测周期为T,T以秒为单位;2.1.2记当前交换机系统时间为t,令第一时间变量tn‑1=t;2.1.3 DDoS攻击感知模块读取计数器,获取计数器tn‑1时刻的记录:tn‑1时刻数据通路收到的比特数tn‑1时刻数据通路发出的比特数tn‑1时刻数据通路收到的数据包数tn‑1时刻数据通路发出的数据包数2.1.4令第二时间变量tn=tn‑1+T,令变量m=1;2.1.5 DDoS攻击感知模块在tn时刻读取计数器,获取计数器tn时刻的记录:tn时刻数据通路收到的比特数tn时刻数据通路发出的比特数tn时刻数据通路收到的数据包数tn时刻数据通路发出的数据包数2.1.6 DDoS攻击感知模块计算tn时刻数据通路收到与发出数据的比特率和包速率:tn时刻收到数据平均比特率tn时刻发出数据平均比特率tn时刻收到数据包平均速率tn时刻发出数据包平均速率2.1.7 DDoS攻击感知模块计算tn时刻数据流特征:tn时刻总的平均比特率tn时刻总的平均包速率tn时刻比特率不对称性tn时刻包速率不对称性其中对应数据流的流量大小特征;对应数据流的流量不对称性特征;2.1.8若m≤c,将分别加入到队列B、P、AByte、APkt队尾,令n=n+1,m=m+1,转步骤2.1.6;若m>c,分别从B、P、AByte、APkt中丢弃一个最早加入的元素,然后将分别加入到队列B、P、AByte、APkt的队尾;将更新后的4个队列组成矩阵V,V大小为4×c,V中每一行为一个队列,转2.1.9;2.1.9对V计算加权平均值和标准差σi:对V每一行求加权平均值,得到加权平均值表示,分别表示队列B、P、AByte、APkt的加权平均值,1≤i≤4,vir表示vi中第r项,r为正整数且1≤r≤c,Wir为vir的权值,对V每一行求标准差,得到标准差σ1、σ2、σ3、σ4,用σi表示,分别表示队列B、P、AByte、APkt的标准差;2.1.10令tn+1=tn+T,为第三时间变量,利用与σi对tn+1=tn+T时刻的正常数据流特征的范围区间进行预测:为区间下限,表示正常数据流第i个特征的最小值;为区间上限,表示正常数据流第i特征的最大值;2.1.11在tn+1时刻DDoS攻击感知模块读取计数器,获取计数器tn+1时刻的记录,计算将这四个值组成矩阵大小为4×1;2.1.12判断中元素是否在区间外,即分别判断是否在区间外,是否在区间外,是否在区间外,是否在区间外,若都在区间外,则判断tn+1时刻的数据流为异常流,得到异常流ID,结束;若中至少有一个在区间内,则判断tn+1时刻未出现DDoS攻击异常流量,令n=n+1,m=m+1,转步骤2.1.8;2.2攻击感知模块将异常流ID发送给交换机代理;2.3交换机代理从DDoS攻击感知模块接收异常流ID,向数据通路发送异常流ID;2.4数据通路将符合异常流ID的数据包作为异常流量数据包样本复制到交换机的数据缓存;2.5特征提取模块从数据缓存获得异常流量数据包样本,从中提取异常流量特征;2.6特征提取模块向交换机代理发送异常流量特征;2.7交换机代理从数据缓存读取异常流量数据包样本,并从特征提取模块接收异常数据流量特征;2.8交换机代理将异常流量数据包样本、异常数据流量特征、异常流ID、交换机ID打包为DDoS攻击异常流量数据,将DDoS攻击异常流量数据发送给控制层面上的控制器代理;2.9数据层面和控制层面并行进行以下工作:数据层面转2.1.8继续进行粗粒度检测,并在得到控制层面下发的DDoS防御执行器源代码后并行进行DDoS防御;控制层面执行第三步;第三步,控制层面对DDoS攻击异常流量数据进行细粒度检测,方法是:3.1控制器代理将接收到的DDoS攻击异常流量数据发送给事件管理器;3.2事件管理器从控制器代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量特征发送给DDoS攻击分类模块,将异常流量数据包样本、异常数据流ID、交换机ID发送给僵尸网络溯源模块;3.3 DDoS攻击分类模块从事件管理器接收异常数据流量特征,进行DDoS攻击分类,得到DDoS攻击类型;3.4僵尸网络溯源模块从事件管理器接收异常流量数据包样本、异常流ID、交换机ID,进行僵尸网络溯源,具体方法如下:3.4.1定义集合A为所有检测到DDoS攻击的交换机,A={a1,a2,...aj,...,aq},q为数据层面所有检测到DDoS攻击的交换机的个数,为正整数,aj表示一个检测到DDoS攻击的交换机的ID,j为正整数,j≤q;3.4.2定义集合S为SDN控制器控制的所有SDN交换机,S={s1,s2,...sk,...,sp},p为SDN控制器控制的所有SDN交换机的个数,为正整数,sk表示一个SDN控制器所控制的SDN交换机的ID,k为正整数,k≤p;3.4.3定义集合C为最接接近僵尸网络的交换机集合,初始化C为空集;3.4.4判定A是否为空,若A为空,转步骤3.4.5;若A不为空,从A中取一个元素aj,找到aj的上一跳交换机sk,若sk∈A,则从集合A中去掉aj,返回步骤3.4.4;若则aj是所寻找的目标交换机,将aj加入集合C,返回步骤3.4.4;3.4.5得到A的一个子集C,集合C中所有交换机的上一跳均不在A中,并且C中交换机为最接近僵尸网络的交换机即到达僵尸网络的跳数最少的交换机,C中元素为最接近僵尸网络的交换机ID;第四步,控制层面的SDN控制器在最接近僵尸网络的交换机上部署DDoS防御策略,方法是:4.1控制器代理将集合S中所有SDN交换机的DDoS防御执行器源代码发送记录表初始化为空,即将s1,s2,...sk,...,sp的DDoS防御执行器源代码发送记录表均初始化为空;4.2事件管理器从DDoS攻击分类模块接收DDoS攻击类型,从僵尸网络溯源模块接收集合C,得到最接近僵尸网络的交换机ID,将DDoS攻击类型、最接近僵尸网络的交换机ID发送给DDoS防御策略库模块;4.3 DDoS防御策略库模块从事件管理器接收DDoS攻击类型,在DDoS防御执行器源代码库中查找与DDoS攻击类型匹配的DDoS防御执行器源代码,向控制器代理发送与DDoS攻击类型匹配的DDoS防御执行器源代码;该模块还从事件管理器接收最接近僵尸网络的交换机ID,将最接近僵尸网络的交换机ID发送给控制器代理;4.4控制器代理从DDoS防御策略库模块接收DDoS防御执行器源代码E、最接近僵尸网络的交换机ID,根据最接近僵尸网络的交换机ID找到最接近僵尸网络的交换机,命名为J1,...Jh,...,JU,1≤h≤U,1≤U≤p;4.5控制器代理检查J1,...,Jh,...,JU的DDoS防御执行器源代码发送记录表,记为F1,...,Fh,...,FU,根据检查情况执行以下步骤,检查Fh的过程是:4.5.1若Fh为空,控制器代理在Fh中增加一个表项,填写E的DDoS防御执行器源代码号,转第五步;4.5.2若Fh不为空,则检查Fh中是否有E的DDoS防御执行器源代码号,若没有,控制器代理在Fh中增加一个表项,填写E的DDoS防御执行器源代码号,转步骤5.2;若Fh中有E的DDoS防御执行器源代码号,说明以前发送过E,转步骤5.5;第五步,数据层面的J1,...,JU并行进行DDoS防御,交换机Jh进行DDoS防御的过程是:5.1交换机Jh上的交换机代理初始化防御执行器链为空,初始化DDoS防御执行器链中可执行DDoS防御执行器的个数N为0;5.2交换机代理从控制器代理接收DDoS防御执行器源代码E,将E存储在数据缓存中;5.3交换机代理将收到的E在交换机的操作系统中编译为可执行的DDoS防御执行器E’;5.4交换机代理为可执行的DDoS防御执行器E’分配一个DDoS防御执行器ID,将E’添加到DDoS防御执行模块的D DoS防御执行器链的尾部,令N=N+1;5.5可执行的DDoS防御执行器E’向交换机代理发送自身所要处理的数据包类型;5.6交换机代理将E’所请求的数据包类型发送到数据通路,数据通路根据收到的数据包类型将该类型数据包,发送到DDoS防御执行模块;5.7 DDoS防御执行模块从数据通路接收待处理的DDoS攻击数据包进行处理,具体流程为:5.7.1令变量d=1,d表示DDoS防御执行中从链头到链尾第d个可执行DDoS防御执行器;5.7.2 DDoS防御执行器链接收待处理的DDoS攻击数据包,交给可执行DDoS防御执行器d;5.7.3可执行DDoS防御执行器d检查数据包的元数据,看元数据中的目的模块ID是否与DDoS防御执行器d的ID相匹配;5.7.4若元数据中的目的模块ID与DDoS防御执行器d匹配,转5.7.5;若元数据中的目的模块ID与DDoS防御执行器d的ID不匹配,判定d<N是否成立,若成立,可执行DDoS防御执行器d将此数据包发送到DDoS防御执行器d+1,令d=d+1,转步骤5.7.3;若d<N不成立,DDoS防御执行器d丢弃此数据包,转步骤5.7.6;5.7.5 DDoS防御执行器d修改此数据包元数据中的目的模块ID,根据修改后的元数据,数据通路不再对此数据包进行正常转发,而是进行可执行DDoS防御执行器d所指定的操作,转步骤5.7;5.7.6报错,结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201810038542.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top