基于软件定义网络的DDoS攻击跨层协同检测方法转让专利

申请号 : CN201810038494.0

文献号 : CN108183917B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 韩彪苏金树王宝生孙志刚陈曙晖赵宝康陶静时向泉赵锋杨翔瑞王汉文

申请人 : 中国人民解放军国防科技大学

摘要 :

本发明公开了基于软件定义网络的DDoS攻击跨层协同检测方法,目的是提高对DDoS攻击的检测效率。技术方案是构建由数据层面和控制层面构成的基于SDN的DDoS攻击跨层协同检测架构,数据层面的SDN交换机上有数据通路、交换机代理、DDoS攻击感知模块、特征提取模块;控制层面的SDN控制器上有控制器代理、事件管理器、DDoS攻击分类模块、僵尸网络溯源模块。数据层面对数据流进行粗粒度检测得到DDoS攻击异常流量数据,控制层面对DDoS攻击异常流量数据进行细粒度检测。本发明通过数据层面与控制层面协同合作,解决了SDN南向接口压力大、SDN控制器负担过大的问题,既能检测出DDoS攻击类型,又能检测出可能接近僵尸网络的交换机集合,提高了DDoS攻击检测的速度和准确度。

权利要求 :

1.一种基于软件定义网络的DDoS攻击跨层协同检测方法,其特征在于包括以下步骤;

第一步,构建基于SDN即软件定义网络的DDoS攻击跨层协同检测架构,方法是:基于SDN的DDoS攻击跨层协同检测架构由数据层面和控制层面构成,控制层面通过南向接口与数据层面进行通信;数据层面由交换机构成,负责数据的传输;控制层面由SDN控制器构成,负责对数据层面中交换机的管理;

SDN交换机上安装有交换机代理,具有数据通路,还安装有DDoS攻击感知模块、特征提取模块;交换机中的硬件计数器对所有经过交换机数据通路的数据包和比特数进行计数;

SDN控制器上安装有控制器代理,还安装有事件管理器、DDoS攻击分类模块、僵尸网络溯源模块;

DDoS攻击感知模块与交换机代理、硬件计数器相连,DDoS攻击感知模块检测简称异常流的DDoS攻击异常流,将异常流ID发送给交换机代理;

交换机代理与DDoS攻击感知模块、特征提取模块、数据缓存、控制层面的控制器代理相连;交换机代理从DDoS攻击感知模块接收异常流ID,向数据通路发送异常流ID;数据通路将符合异常流ID的数据包作为异常流量数据包样本复制到数据缓存;交换机代理还从特征提取模块接收异常流量特征,从数据缓存获得异常流量数据包样本;交换机代理将异常流量数据包样本、异常流量特征、异常流ID、交换机ID打包成DDoS攻击异常流量数据,发送至控制层面的控制器代理;

特征提取模块与交换机代理、数据缓存相连;特征提取模块从数据缓存获得异常流量数据包样本,从异常流量数据包样本中提取异常流量特征,将提取的异常流量特征发送给交换机代理;

控制器代理与交换机代理、事件管理器相连,控制器代理从交换机代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量数据发送给事件管理器;

事件管理器与控制器代理、DDoS攻击分类模块、僵尸网络溯源模块相连,事件管理器从控制器代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量数据中的异常流量特征转发给DDoS攻击分类模块,将异常流量数据包样本、异常流ID、交换机ID转发给僵尸网络溯源模块;

DDoS攻击分类模块与事件管理器相连,该模块从事件管理器获得异常流量特征,进行DDoS攻击分类;

僵尸网络溯源模块与事件管理器相连,该模块从事件管理器获得异常流量数据包样本、异常流ID、交换机ID,进行僵尸网络溯源;

第二步,SDN数据层面对所有通过交换机的数据流进行粗粒度检测,方法为:

2.1SDN数据层面的DDoS攻击感知模块检测DDoS攻击异常流,简称异常流,得到异常流ID;方法为:

2.1.1DDoS攻击感知模块将4个最大长度为c的队列B、P、AByte、APkt初始化为空队列,其中B为总平均比特率队列、P为总平均包速率队列、AByte为比特率不对称性队列、APkt为包速率不对称性队列,c为正整数;令检测周期为T,T以秒为单位;

2.1.2记当前交换机系统时间为t,令第一时间变量tn-1=t;

2.1.3DDoS攻击感知模块读取计数器,获取计数器tn-1时刻的记录:tn-1时刻数据通路收到的比特数 tn-1时刻数据通路发出的比特数 tn-1时刻数据通路收到的数据包数tn-1时刻数据通路发出的数据包数

2.1.4令第二时间变量tn=tn-1+T,令变量m=1;

2.1.5DDoS攻击感知模块在tn时刻读取计数器,获取计数器tn时刻的记录:tn时刻数据通路收到的比特数 tn时刻数据通路发出的比特数 tn时刻数据通路收到的数据包数 tn时刻数据通路发出的数据包数

2.1.6DDoS攻击感知模块计算tn时刻数据通路收到与发出数据的比特率和包速率:tn时刻收到数据平均比特率

tn时刻发出数据平均比特率

tn时刻收到数据包平均速率

tn时刻发出数据包平均速率

2.1.7DDoS攻击感知模块计算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时刻的正常数据流特征的范围区间(Vil,Viu)进行预测:Vil为区间下限,表示正常数据流第i个特征的最小值;Viu为区间上限,表示正常数据流第i特征的最大值;

2.1.11在tn+1时刻DDoS攻击感知模块读取计数器,获取计数器tn+1时刻的记录,计算将这四个值组成矩阵V',V'大小为4×1;

2.1.12判断V'中元素vi是否在区间(Vil,Viu)外,即分别判断v1是否在区间(V1l,V1u)外,v2是否在区间 外,v3是否在区间 外,v4是否在区间 外,若vi都在区间(Vil,Viu)外,则判断tn+1时刻的数据流为异常流,得到异常流ID,结束;若vi中至少有一个在区间(Vil,Viu)内,则判断tn+1时刻未出现DDoS攻击异常流,令n=n+1,m=m+1,转步骤2.1.8;

2.2DDoS攻击感知模块将异常流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继续进行粗粒度检测;

控制层面执行第三步;

第三步,SDN控制层面对DDoS攻击异常流量数据进行细粒度检测,方法是:

3.1控制器代理将接收到的DDoS攻击异常流量数据发送给事件管理器;

3.2事件管理器从控制器代理接收DDoS攻击异常流量数据,将异常流量特征发送给DDoS攻击分类模块,将异常流量数据包样本、异常流ID、交换机ID发送给僵尸网络溯源模块;

3.3DDoS攻击分类模块从事件管理器接收异常流量特征,进行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。

2.如权利要求1所述的基于软件定义网络的DDoS攻击跨层协同检测方法,其特征在于所述异常流ID指该异常流的编号;所述交换机的ID为交换机的IP地址。

3.如权利要求1所述的基于软件定义网络的DDoS攻击跨层协同检测方法,其特征在于所述c满足10≤c≤20,所述T满足1秒≤T≤4秒。

4.如权利要求1所述的基于软件定义网络的DDoS攻击跨层协同检测方法,其特征在于

2.5步所述特征提取模块提取异常流量特征的方法是:若异常数据流量数据包样本是TCP数据包,则提取该TCP数据包中的七个特征:SYN flag置位的TCP数据包块、ACK flag置位的TCP数据包块、源IP地址的熵、目的IP地址的熵、源端口号的熵、目的端口号的熵、TCP序号的熵;若异常数据流量数据包样本是UDP数据包,则提取该UDP数据包中的五个特征:目标端口号≤1024的UDP数据包块、目标端口号≥1024的UDP数据包块、源IP地址的熵、目的IP地址的熵、UDP数据包长度的熵;若异常数据流量数据包样本是ICMP数据包,则提取该ICMP数据包中的四个特征:源IP地址的熵、目的IP地址的熵、TTL值的熵、全部ICMP数据包块。

5.如权利要求1所述的基于软件定义网络的DDoS攻击跨层协同检测方法,其特征在于

3.3步所述DDoS攻击分类模块进行DDoS攻击分类的方法是:将异常流量特征作为机器学习中基于自动编码器的分类器的输入进行DDoS攻击分类,得到DDoS攻击类型。

说明书 :

基于软件定义网络的DDoS攻击跨层协同检测方法

技术领域

[0001] 本发明涉及计算机网络安全领域,特别涉及一种基于SDN(Soft ware Defined Network,软件定义网络)的DDoS(Distributed Denial of Service,分布式拒绝服务)攻击跨层协同检测方法。

背景技术

[0002] 随着计算机网络技术的快速发展,网络攻击破坏行为也日益频繁,计算机网络安全形势日益严峻。其中,DDoS攻击是目前计算机网络中最受关注的安全问题之一。DDoS攻击通常是利用僵尸网络对受害者发送大量的服务请求,造成受害者资源大量消耗,从而无法及时响应合法用户的请求,甚至完全瘫痪。随着网络技术的发展,DDoS攻击流量的也在不断增大,使其越来越难以检测。
[0003] SDN(Soft Defined Network)即软件定义网络,是一种新型的网络架构。如图1所示,SDN架构由数据层面和控制层面构成,控制层面通过南向接口数据层面进行通信。数据层面由多个网络设备(SDN交换机、路由器)组成,网络设备负责数据的传输;控制层面包括SDN控制器,控制层面负责对数据层面中网络设备的管理。
[0004] 网络设备中的SDN交换机上安装有交换机代理,具有数据通路;交换机代理对SDN交换机进行管理,对SDN交换机中的数据通路进行控制,SDN交换机上的硬件计数器对所有经过该交换机数据通路的数据包和比特数进行记录。
[0005] SDN控制器上安装有控制器代理、DDOS攻击检测软件;控制器代理对SDN控制器进行管理,SDN控制器向下通过南向接口与数据层面的交换机进行通讯。
[0006] 随着SDN的发展,越来越多的研究开始着眼于利用SDN从网络全局出发来进行DDoS攻击检测。
[0007] 目前基于SDN的DDoS攻击检测方法主要是以控制层面为中心,由SDN控制器上的DDoS攻击检测软件完成,主要步骤如下:
[0008] 1)数据层面的交换机中的交换机代理周期性地不断从数据通路收集报文或各类统计信息,将收集的报文或各类统计信息上传至控制层面的SDN控制器,作为SDN控制器的待检测数据;
[0009] 2)控制层面从交换机接收待检测数据,由DDoS攻击检测软件对待检测数据进行检测,判断是否受到DDoS攻击,形成检测结果,将检测结果发送给控制器代理;控制器代理将检测结果反馈给数据层面的交换机。
[0010] 然而,现有的基于SDN的DDOS攻击检测方法存在着如下技术问题:
[0011] 1)控制层面的SDN控制器需要不断从数据层面的交换机获取待检测数据进行攻击检测,这就导致了SDN南向接口压力和检测延迟的增大;
[0012] 2)目前基于SDN的DDOS攻击检测以控制层面为核心,数据层面过于简化导致所有检测工作均需在控制平面完成,数据层面与控制层面智能协作的优势未得到很好地应用,导致控制层面的SDN控制器工作负载过重导致拥塞,而数据层面资源则有所浪费。
[0013] 鉴于此,如何提供一种基于软件定义网络的DDoS攻击跨层协同检测方法,充分利用控制层面与数据层面各自优势进行协同合作,减少SDN南向接口压力和SDN控制器负担过大,有效提高对DDoS攻击检测的效率成为本领域研究人员亟待解决的问题。

发明内容

[0014] 本发明提出一种基于软件定义网络的DDoS攻击跨层协同检测方法,充分利用控制层面与数据层面各自优势进行协同合作,解决DDoS检测过程导致SDN南向接口压力大、SDN控制器负担过大的问题,有效提高对DDoS攻击的检测效率。
[0015] 本发明的技术方案是:
[0016] 第一步,构建基于SDN的DDoS攻击跨层协同检测架构,方法是:
[0017] 基于SDN的DDoS攻击跨层协同检测架构由数据层面和控制层面构成,控制层面通过南向接口与数据层面进行通信。数据层面由交换机构成,负责数据的传输;控制层面由SDN控制器构成,负责对数据层面中交换机的管理。
[0018] SDN交换机上安装有交换机代理,具有数据通路,还安装有DDoS攻击感知模块、特征提取模块。交换机中的硬件计数器对所有经过交换机数据通路的数据包和比特数进行计数。
[0019] SDN控制器上安装有控制器代理,还安装有事件管理器、DDoS攻击分类模块、僵尸网络溯源模块。
[0020] DDoS攻击感知模块与交换机代理、硬件计数器相连,DDoS攻击感知模块从硬件计数器获取一段时间经过SDN交换机数据通路的数据包和比特数,计算这段时间数据流的包速率和比特率,计算并记录这段时间的数据流量特征(包括数据流流量大小的特征与流量不对称性的特征,称为历史数据流量特征)。根据历史数据流量特征,判断当前(即上述一段时间过后的所有需要判定数据流量特征是否正常的时间)数据流量特征是否在正常范围内,若不在则判断当前数据流为DDoS攻击异常流(简称异常流)。若当前数据流为异常流,DDoS攻击感知模块将异常流ID(即数据流的编号)发送给交换机代理。
[0021] 交换机代理与DDoS攻击感知模块、特征提取模块、数据缓存(交换机中的缓存器)、控制层面的控制器代理相连。交换机代理从DDoS攻击感知模块接收异常流ID,并向数据通路发送异常流ID。数据通路将符合异常流ID的数据包作为异常流量数据包样本复制到数据缓存。交换机代理还从特征提取模块接收异常流量特征,从数据缓存获得异常流量数据包样本。交换机代理将异常流量数据包样本、异常流量特征、异常流ID、交换机ID打包成DDoS攻击异常流量数据,发送至控制层面的控制器代理。
[0022] 特征提取模块与交换机代理、数据缓存相连。特征提取模块从数据缓存获得异常流量数据包样本,从异常流量数据包样本中提取异常流量特征,将提取的异常流量特征发送给交换机代理。
[0023] 控制器代理与交换机代理、事件管理器相连,控制器代理从交换机代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量数据发送给事件管理器。
[0024] 事件管理器与控制器代理、DDoS攻击分类模块、僵尸网络溯源模块相连,事件管理器从控制器代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量数据中的异常流量特征转发给DDoS攻击分类模块,将异常流量数据包样本、异常流ID、交换机ID转发给僵尸网络溯源模块。
[0025] DDoS攻击分类模块与事件管理器相连,该模块从事件管理器获得异常流量特征,利用机器学习方法进行DDoS攻击分类。
[0026] 僵尸网络溯源模块与事件管理器相连,该模块从事件管理器获得异常流量数据包样本、异常数据流ID、交换机ID,进行僵尸网络溯源。
[0027] 第二步,数据层面对所有通过交换机的数据流进行粗粒度检测,方法为:
[0028] 2.1数据层面的DDoS攻击感知模块检测异常流,方法为:
[0029] 2.1.1 DDoS攻击感知模块将4个最大长度为c的队列B、P、AByte、APkt初始化为空队列。其中B为总平均比特率队列(含数据通路收到和发出的比特数)、P为总平均包速率队列(含数据通路收到和发出的数据包)、AByte为比特率不对称性队列、APkt为包速率不对称性队列,c为正整数,优选值为10≤c≤20;令检测周期为T,T以秒为单位,满足1秒≤T≤4秒。
[0030] 2.1.2记当前交换机系统时间为t,令第一时间变量tn-1=t;
[0031] 2.1.3 DDoS攻击感知模块读取计数器,获取计数器tn-1时刻的记录:tn-1时刻数据通路收到的比特数 tn-1时刻数据通路发出的比特数 tn-1时刻数据通路收到的数据包数 tn-1时刻数据通路发出的数据包数
[0032] 2.1.4令第二时间变量tn=tn-1+T,令变量m=1;
[0033] 2.1.5 DDoS攻击感知模块在tn时刻读取计数器,获取计数器tn时刻的记录:tn时刻数据通路收到的比特数 tn时刻数据通路发出的比特数 tn时刻数据通路收到的数据包数 tn时刻数据通路发出的数据包数
[0034] 2.1.6 DDoS攻击感知模块计算tn时刻数据通路收到与发出数据的比特率和包速率:
[0035] tn时刻收到数据平均比特率
[0036] tn时刻发出数据平均比特率
[0037] tn时刻收到数据包平均速率
[0038] tn时刻发出数据包平均速率
[0039] 2.1.7 DDoS攻击感知模块计算tn时刻数据流特征:
[0040] tn时刻总的平均比特率
[0041] tn时刻总的平均包速率
[0042] tn时刻比特率不对称性
[0043] tn时刻包速率不对称性
[0044] 其中 和 对应数据流的流量大小特征; 和 对应数据流的流量不对称性特征。
[0045] 2.1.8若m≤c,将 分别加入到队列B、P、AByte、APkt队尾,令nByte Pkt
=n+1,m=m+1,转步骤2.1.6;若m>c,分别从B、P、A 、A 中丢弃一个最早加入的元素,然后将 分别加入到队列B、P、AByte、APkt的队尾;将更新后的4个队列组
成矩阵V,V大小为4×c,V中每一行为一个队列,转2.1.9。
[0046] 2.1.9对V计算加权平均值 和标准差σi;
[0047] 对V每一行求加权平均值,得到加权平均值 用 (1≤i≤4)表示,分别表示队列B、P、AByte、APkt的加权平均值。 vir表示vi中第r项,r为正整数且1≤r≤c,Wir为vir的权值,
[0048] 对V每一行求标准差,得到标准差σ1、σ2、σ3、σ4,用σi(i=1,2,3,4)表示,分别表示队列B、P、AByte、APkt的标准差(参见2005年清华大学出版社《应用统计学》,李时,第一章,第17页)。
[0049] 2.1.10令tn+1=tn+T,为第三时间变量,利用 与σi对tn+1=tn+T时刻的正常数据流特征的范围区间(Vil,Viu)进行预测:
[0050]
[0051]
[0052] Vil为区间下限,表示正常数据流第i个特征的最小值;Viu为区间上限,表示正常数据流第i特征的最大值。
[0053] 2.1.11在tn+1时刻DDoS攻击感知模块读取计数器,获取计数器tn+1时刻的记录,计算 将以上四个值组成矩阵V',V'大小为4×1。V'中元素用vi表示,分别对应
[0054] 2.1.12对于V'中每个元素,判断vi是否在区间(Vil,Viu)外,即分别判断v1是否在区间(V1l,V1u)外,v2是否在区间( )外,v3是否在区间( )外,v4是否在区间()外。若vi都在区间(Vil,Viu)外,则判断tn+1时刻的数据流为异常流,得到异常流ID,转步骤2.2;若vi中至少有一个在区间(Vil,Viu)内,则判断tn+1时刻未出现DDoS攻击异常流,令n=n+1,m=m+1,转步骤2.1.8;
[0055] 2.2攻击感知模块将异常流ID发送给交换机代理;
[0056] 2.3交换机代理从DDoS攻击感知模块接收异常流ID,向数据通路发送异常流ID;
[0057] 2.4数据通路将符合异常流ID的数据包作为异常流量数据包样本复制到交换机的数据缓存;
[0058] 2.5特征提取模块从数据缓存获得异常流量数据包样本,从中提取异常流量特征,方法是:若异常数据流量数据包样本是TCP(Transmission Control Protocol)数据包,则提取该TCP数据包中的七个特征:SYN(Synchronous)flag置位的TCP数据包块、ACK(Acknowledgement)flag置位的TCP数据包块、源IP地址的熵、目的IP地址的熵、源端口号的熵、目的端口号的熵、TCP序号的熵,转步骤2.6;若异常数据流量数据包样本是UDP(User Datagram Protocol)数据包,则提取该UDP数据包中的五个特征:目标端口号≤1024的UDP数据包块、目标端口号≥1024的UDP数据包块、源IP地址的熵、目的IP地址的熵、UDP数据包长度的熵,转步骤2.6;若异常数据流量数据包样本是ICMP(Internet Control Message Protocol)数据包,则提取该ICMP数据包中的四个特征:源IP地址的熵、目的IP地址的熵、TTL值的熵、全部ICMP数据包块,转步骤2.6;
[0059] 2.6特征提取模块并向交换机代理发送异常流量特征。
[0060] 2.7交换机代理从数据缓存读取异常流量数据包样本,并从特征提取模块接收异常数据流量特征。
[0061] 2.8交换机代理将异常流量数据包样本、异常数据流量特征、异常流ID、交换机ID打包为DDoS攻击异常流量数据,将DDoS攻击异常流量数据发送给控制层面上的控制器代理。
[0062] 2.9数据层面和控制层面并行进行以下工作:数据层面转2.1.8继续进行粗粒度检测;控制层面执行第三步。
[0063] 第三步,控制层面对DDoS攻击异常流量数据进行细粒度检测,方法是:
[0064] 3.1控制器代理将接收到的DDoS攻击异常流量数据发送给事件管理器。
[0065] 3.2事件管理器从控制器代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量特征发送给DDoS攻击分类模块,将异常流量数据包样本、异常数据流ID、交换机ID发送给僵尸网络溯源模块。
[0066] 3.3 DDoS攻击分类模块从事件管理器接收异常数据流量特征,将异常数据流量特征作为机器学习中基于自动编码器的分类器(参见文献“Quamar Niyaz*,Weiqing Sun,Ahmad Y Javaid,A Deep Learning Based DDoS Detection System in Software-Defined Networking(SDN),arXiv preprint arxiv:1611.07400,2016年”,译为:一种在软件定义网络中基于深度学习的DDoS检测系统,arXiv preprint arxiv:1611.07400是论文检索号,基于自动编码器的分类器见该文献第三章第2节第4到6页)的输入进行DDoS攻击分类,得到DDoS攻击类型。
[0067] 3.4僵尸网络溯源模块从事件管理器接收异常流量数据包样本、异常流ID、交换机ID,进行僵尸网络溯源,具体方法如下:
[0068] 3.4.1定义集合A为所有检测到DDoS攻击的交换机,A={a1,a2,...aj,...,aq},q为数据层面所有检测到DDoS攻击的交换机的个数,为正整数,aj(j为正整数,j≤q)表示一个检测到DDoS攻击的交换机的ID(一般为交换机的IP地址);
[0069] 3.4.2定义集合S为SDN控制器控制的所有SDN交换机,S={s1,s2,...sk,...,sp},p为SDN控制器控制的所有SDN交换机的个数,为正整数,sk(k为正整数,k≤p)表示一个SDN控制器所控制的SDN交换机的ID;
[0070] 3.4.3定义集合C为最接近僵尸网络的交换机集合,初始化C为空集。
[0071] 3.4.4判定A是否为空,若A为空,转步骤3.4.5;
[0072] 若A不为空,从A中取一个元素aj,找到aj的上一跳交换机sk,
[0073] 若sk∈A,则从集合A中去掉aj,返回步骤3.4.4;
[0074] 若 则aj是所寻找的目标交换机,将aj加入集合C,返回步骤3.4.4;
[0075] 3.4.5得到A的一个子集C 集合C中所有交换机的上一跳均不在A中,并且C中交换机为最接近僵尸网络的交换机(即到达僵尸网络的跳数最少的交换机)。经过上述方法,定位得到了最接近僵尸网络的交换机集合C,C中元素为最接近僵尸网络的交换机ID。
[0076] 采用本发明可以达到以下技术效果:
[0077] 1.本发明通过数据层面与控制层面协同合作方式,在数据层面监测DDoS攻击异常流量并进行特征提取,完成粗粒度检测;然后利用控制层面的计算资源DDoS攻击进行分类与僵尸网络溯源,完成细粒度检测,既能检测出DDoS攻击类型,又能检测出可能接近僵尸网络的交换机集合C,且有效提高了DDoS攻击检测的速度和准确度;
[0078] 2.与现有的基于SDN的DDoS攻击检测技术相比,本发明不要求数据层面频繁向控制层面上传数据流,减小了SDN南向接口的压力和SDN控制器负担,解决了现有技术不能高效利用SDN架构灵活性,造成SDN南向接口压力太大,SDN控制器负担过重的问题。

附图说明

[0079] 图1为背景技术中基于SDN的检测架构示意图;
[0080] 图2为本发明的总体流程图;
[0081] 图3为本发明第一步构建的基于SDN的DDoS攻击跨层协同检测架构逻辑结构图;
[0082] 图4为步骤2.5所述异常流量特征的结构图。

具体实施方式

[0083] 图2为本发明的总体流程图;本发明包括以下步骤:
[0084] 第一步,构建基于SDN的DDoS攻击跨层协同检测架构,如图3所示,基于SDN的DDoS攻击跨层协同检测架构由数据层面和控制层面构成,控制层面通过南向接口与数据层面进行通信。数据层面由交换机构成,负责数据的传输;控制层面由SDN控制器构成,负责对数据层面中交换机的管理。
[0085] SDN交换机上安装有交换机代理,具有数据通路,还安装有DDoS攻击感知模块、特征提取模块。交换机中的硬件计数器对所有经过交换机数据通路的数据包和比特数进行计数。
[0086] SDN控制器上安装有控制器代理,还安装有事件管理器、DDoS攻击分类模块、僵尸网络溯源模块。
[0087] DDoS攻击感知模块与交换机代理、硬件计数器相连,DDoS攻击感知模块从硬件计数器获取一段时间经过SDN交换机数据通路的数据包和比特数,计算这段时间数据流的包速率和比特率,计算并记录这段时间的数据流量特征(包括数据流流量大小的特征与流量不对称性的特征,称为历史数据流量特征)。根据历史数据流量特征,判断当前(即上述一段时间过后的所有需要判定数据流量特征是否正常的时间)数据流量特征是否在正常范围内,若不在则判断当前数据流为DDoS攻击异常流(简称异常流)。若当前数据流为异常流,DDoS攻击感知模块将异常流ID(即数据流的编号)发送给交换机代理。
[0088] 交换机代理与DDoS攻击感知模块、特征提取模块、数据缓存(交换机中的缓存器)、控制层面的控制器代理相连。交换机代理从DDoS攻击感知模块接收异常流ID,并向数据通路发送异常流ID。数据通路将符合异常流ID的数据包作为异常流量数据包样本复制到数据缓存。交换机代理还从特征提取模块接收异常流量特征,从数据缓存获得异常流量数据包样本。交换机代理将异常流量数据包样本、异常流量特征、异常流ID、交换机ID打包成DDoS攻击异常流量数据,发送至控制层面的控制器代理。
[0089] 特征提取模块与交换机代理、数据缓存相连。特征提取模块从数据缓存获得异常流量数据包样本,从异常流量数据包样本中提取异常流量特征,将提取的异常流量特征发送给交换机代理。
[0090] 控制器代理与交换机代理、事件管理器相连,控制器代理从交换机代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量数据发送给事件管理器。
[0091] 事件管理器与控制器代理、DDoS攻击分类模块、僵尸网络溯源模块相连,事件管理器从控制器代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量数据中的异常流量特征转发给DDoS攻击分类模块,将异常流量数据包样本、异常流ID、交换机ID转发给僵尸网络溯源模块。
[0092] DDoS攻击分类模块与事件管理器相连,该模块从事件管理器获得异常流量特征,利用机器学习方法进行DDoS攻击分类。
[0093] 僵尸网络溯源模块与事件管理器相连,该模块从事件管理器获得异常流量数据包样本、异常数据流ID、交换机ID,进行僵尸网络溯源。
[0094] 第二步,数据层面对所有通过交换机的数据流进行粗粒度检测,方法为:
[0095] 2.1数据层面的DDoS攻击感知模块检测异常流,方法为:
[0096] 2.1.1DDoS攻击感知模块将4个最大长度为c的队列B、P、AByte、APkt初始化为空队列。其中B为总平均比特率队列(含数据通路收到和发出的比特数)、P为总平均包速率队列(含数据通路收到和发出的数据包)、AByte为比特率不对称性队列、APkt为包速率不对称性队列,c为正整数,优选值为10≤c≤20;令检测周期为T,T以秒为单位,满足1秒≤T≤4秒。
[0097] 2.1.2记当前交换机系统时间为t,令第一时间变量tn-1=t;
[0098] 2.1.3 DDoS攻击感知模块读取计数器,获取计数器tn-1时刻的记录:tn-1时刻数据通路收到的比特数 tn-1时刻数据通路发出的比特数 tn-1时刻数据通路收到的数据包数 tn-1时刻数据通路发出的数据包数
[0099] 2.1.4令第二时间变量tn=tn-1+T,令变量m=1;
[0100] 2.1.5 DDoS攻击感知模块在tn时刻读取计数器,获取计数器tn时刻的记录:tn时刻数据通路收到的比特数 tn时刻数据通路发出的比特数 tn时刻数据通路收到的数据包数 tn时刻数据通路发出的数据包数
[0101] 2.1.6 DDoS攻击感知模块计算tn时刻数据通路收到与发出数据的比特率和包速率:
[0102] tn时刻收到数据平均比特率
[0103] tn时刻发出数据平均比特率
[0104] tn时刻收到数据包平均速率
[0105] tn时刻发出数据包平均速率
[0106] 2.1.7 DDoS攻击感知模块计算tn时刻数据流特征:
[0107] tn时刻总的平均比特率
[0108] tn时刻总的平均包速率
[0109] tn时刻比特率不对称性
[0110] tn时刻包速率不对称性
[0111] 其中 和 对应数据流的流量大小特征; 和 对应数据流的流量不对称性特征。
[0112] 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。
[0113] 2.1.9对V计算加权平均值 和标准差σi;
[0114] 对V每一行求加权平均值,得到加权平均值 用 (1≤i≤4)表示,分别表示队列B、P、AByte、APkt的加权平均值。 表示vi
中第r项,r为正整数且1≤r≤c,Wir为vir的权值,
[0115] 对V每一行求标准差,得到标准差σ1、σ2、σ3、σ4,用σi(i=1,2,3,4)表示,分别表示队Byte Pkt列B、P、A 、A 的标准差(参见2005年清华大学出版社《应用统计学》,李时,第一章,第17页)。
[0116] 2.1.10令tn+1=tn+T,为第三时间变量,利用 与σi对tn+1=tn+T时刻的正常数据流特征的范围区间(Vil,Viu)进行预测:
[0117]
[0118]
[0119] Vil为区间下限,表示正常数据流第i个特征的最小值;Viu为区间上限,表示正常数据流第i特征的最大值。
[0120] 2.1.11在tn+1时刻DDoS攻击感知模块读取计数器,获取计数器tn+1时刻的记录,计算 将以上四个值组成矩阵V',V'大小为4×1。V'中元素用vi表示,分别对应
[0121] 2.1.12对于V'中每个元素,判断vi是否在区间(Vil,Viu)外,即分别判断v1是否在区l u间(V1 ,V1)外,v2是否在区间( )外,v3是否在区间( )外,v4是否在区间(
l u
)外。若vi都在区间(Vi ,Vi)外,则判断tn+1时刻出现了异常流,得到异常流ID,转步骤2.2;若vi中至少有一个在区间(Vil,Viu)内,则判断tn+1时刻未出现DDoS攻击异常流,令n=n+1,m=m+1,转步骤2.1.8;
[0122] 2.2攻击感知模块将异常流ID发送给交换机代理;
[0123] 2.3交换机代理从DDoS攻击感知模块接收异常流ID,向数据通路发送异常流ID;
[0124] 2.4数据通路将符合异常流ID的数据包作为异常流量数据包样本复制到交换机的数据缓存;
[0125] 2.5特征提取模块从数据缓存获得异常流量数据包样本,从中提取异常流量特征,方法是:
[0126] 如图4所示,若异常数据流量数据包样本是TCP数据包,则提取该TCP数据包中的七个特征:SYN flag置位的TCP数据包块、ACK flag置位的TCP数据包块、源IP地址的熵、目的IP地址的熵、源端口号的熵、目的端口号的熵、TCP序号的熵,转步骤2.6;若异常数据流量数据包样本是UDP数据包,则提取该UDP数据包中的五个特征:目标端口号≤1024的UDP数据包块、目标端口号≥1024的UDP数据包块、源IP地址的熵、目的IP地址的熵、UDP数据包长度的熵,转步骤2.6;若异常数据流量数据包样本是ICMP数据包,则提取该ICMP数据包中的四个特征:源IP地址的熵、目的IP地址的熵、TTL值的熵、全部ICMP数据包块,转步骤2.6;
[0127] 2.6特征提取模块并向交换机代理发送异常流量特征。
[0128] 2.7交换机代理从数据缓存读取异常流量数据包样本,并从特征提取模块接收异常数据流量特征。
[0129] 2.8交换机代理将异常流量数据包样本、异常数据流量特征、异常流ID、交换机ID打包为DDoS攻击异常流量数据,将DDoS攻击异常流量数据发送给控制层面上的控制器代理。
[0130] 2.9数据层面和控制层面并行进行以下工作:数据层面转2.1.8继续进行粗粒度检测;控制层面执行第三步。
[0131] 第三步,控制层面对DDoS攻击异常流量数据进行细粒度检测,方法是:
[0132] 3.1控制器代理将接收到的DDoS攻击异常流量数据发送给事件管理器。
[0133] 3.2事件管理器从控制器代理接收DDoS攻击异常流量数据,将DDoS攻击异常流量特征发送给DDoS攻击分类模块,将异常流量数据包样本、异常数据流ID、交换机ID发送给僵尸网络溯源模块。
[0134] 3.3 DDoS攻击分类模块从事件管理器接收异常数据流量特征,将异常数据流量特征作为机器学习中基于自动编码器的分类器的输入进行DDoS攻击分类,得到DDoS攻击类型。
[0135] 3.4僵尸网络溯源模块从事件管理器接收异常流量数据包样本、异常流ID、交换机ID,进行僵尸网络溯源,具体方法如下:
[0136] 3.4.1定义集合A为所有检测到DDoS攻击的交换机,A={a1,a2,...aj,...,aq},q为数据层面所有检测到DDoS攻击的交换机的个数,为正整数,aj(j为正整数,j≤q)表示一个检测到DDoS攻击的交换机的ID;
[0137] 3.4.2定义集合S为SDN控制器控制的所有SDN交换机,S={s1,s2,...sk,...,sp},p为SDN控制器控制的所有SDN交换机的个数,为正整数,sk(k为正整数,k≤p)表示一个SDN控制器所控制的SDN交换机的ID;
[0138] 3.4.3定义集合C为最接近僵尸网络的交换机集合,初始化C为空集。
[0139] 3.4.4判定A是否为空,若A为空,转步骤3.4.5;
[0140] 若A不为空,从A中取一个元素aj,找到aj的上一跳交换机sk,
[0141] 若sk∈A,则从集合A中去掉aj,返回步骤3.4.4;
[0142] 若 则aj是所寻找的目标交换机,将aj加入集合C,返回步骤3.4.4;
[0143] 3.4.5得到A的一个子集C 集合C中所有交换机的上一跳均不在A中,并且C中交换机为最接近僵尸网络的交换机。经过上述方法,定位得到了最接近僵尸网络的交换机集合C。