一种SDN网络的DoS攻击分布式检测与防御方法与流程

文档序号:16062959发布日期:2018-11-24 12:22阅读:199来源:国知局

本发明属于网络安全领域,特别涉及一种分布式的dos攻击防御技术。

背景技术

在软件定义网络(softwaredefinednetwork,sdn)中,存在一种特有的拒绝服务攻击(denialofservice,dos)形式,叫做数据层到控制层的饱和攻击,攻击者通过向交换机发送大量的无法匹配流表的报文,使得交换机发送大量packet_in信息给控制器,占用宽带资源,增加控制器的处理负担和交换机中无用的流表项,导致正常的服务请求无法及时被响应,达到消耗控制面资源与数据面资源的目的。考虑到在sdn网络中控制器的重要性,一旦控制器遭遇dos攻击会影响整个sdn网络的正常运行,因此sdn网络需要具备对dos针对控制器的攻击特别的关注与处理功能。

目前针对dos对控制面资源消耗问题主要的解决思路为三种。一是采取更好的算法和策略,提高控制器的处理效率;二是控制sdn交换机进行异常流量转移,在连接sdn控制器的多条链路之间进行负载均衡,避免数据面到控制面的流量拥塞;三是在数据平面和控制平面之间加入一个缓存区,收集异常流量,控制异常流量到达控制器的速率。这三种思路都有一个共同的特点,就是最终依然需要控制器来处理所有的异常流量,对于控制器来说,实质上并没有减少工作量,dos对于控制器的资源消耗量依然很大。

因此,针对sdn中的dos攻击,提出既可以有效的进行异常检测并对异常报文进行处理、又可以更大程度的减轻控制器工作负担的防御机制有非常重要的意义。



技术实现要素:

为解决上述技术问题,本发明提出一种sdn网络的dos攻击分布式检测与防御方法,通过在sdn网络中选取一些特殊的节点作为分布式辅助处理节点,然后通过交换机连接选出来的这些网络的剩余计算资源来处理异常的流量,达到为控制器减负的目的。

本发明采用的技术方案为:一种sdn网络的dos攻击分布式检测与防御方法,包括:

s1、通过异常流量检测,得到疑似被攻击节点;

s2、在普通节点中选取分布式处理节点;

s3、步骤s2选取的分布式处理节点对疑似被攻击节点的异常流量进行处理。

进一步地,步骤s1具体包括以下分步骤:

s11、控制器对与其直连的链路上的packet_in报文的速率进行监控;

s12、当packet_in报文速率大于第一阈值时,控制器下发指令到相应的节点,节点进行异常流检测,得到疑似被攻击节点。

更进一步地,节点进行异常流检测具体为:

a1节点利用自身计数器收集每个流进入端口的n个时间间隔内的流特征;

a2、收到异常检测的命令后,对目标ip地址的熵值进行计算;

a3、若熵值小于第二阈值,则判定为异常流,继续执行下一跳;否则判定当前节点为疑似被攻击节点。

更进一步地,第二阈值计算式为:

其中,hi(x)表示第i个时间间隔内的计算得到的目标ip地址的熵值,λi表示第i个时间间隔目标ip地址的熵值对应的权值,且

进一步地,步骤s2具体为:首先对各普通节点代价进行计算;然后根据计算出的各普通节点代价以及各普通节点覆盖的节点集选取分布式处理节点。

更进一步地,根据普通节点的计算时间代价、通信代价以及计算资源代价来计算该普通节点代价。

更进一步地,计算时间代价的计算式为:

其中,βi表示第i个普通节点的计算速率,degi表示第i个普通节点的度数。

更进一步地,通信代价计算式为:

其中,rij表示普通节点i与相邻的普通节点j之间链路的传输速率,rm表示普通节点i经过链路lm的传输速率,k表示普通节点i到控制器的最短路径长度。

更进一步地,计算资源代价的计算式为:

li=lave+αdegi

其中,lave表示普通节点i正常情况下的平均负载量,α为常数。

进一步地,步骤s3具体包括以下分步骤:

s31、报文重定向,每个检测到的疑似被攻击节点将所有发送到自己的流量交给对应的s2步骤中选出的分布式处理节点;

s32、流量清洗,在分布式处理节点进行攻击流量的识别和清洗,最终将判定正常的报文交给控制器进行处理。

本发明的有益效果:本发明的一种sdn网络的dos攻击分布式检测与防御方法,采用逐跳的异常流量追溯方法,得到异常流量;采用分布式处理节点选取算法从普通节点中选取分布式处理节点,每个检测到的疑似被攻击节点将所有发送到自己的所有流量交给自己所在处理范围的分布式处理节点;处理节点进行攻击流量的识别和清洗,最终将判定正常的报文交给的控制器进行处理,减轻控制器的工作量;本发明的方法既可以有效的进行异常检测并对异常报文进行处理、又可以更大程度的减轻控制器工作负担。

附图说明

图1为本发明实施例提供的sdn网络的dos攻击分布式检测与防御机制示意图;

图2为本发明实施例提供的异常流量检测流程图;

图3为本发明实施例提供的节点代价计算流程图;

图4为本发明实施例提供的负载和计算资源代价之间的关系曲线;

图5为本发明实施例提供的分布式处理节点选取算法流程图;

图6为本发明实施例提供的报文重定向示意图;

图7为本发明实施例提供的逐跳异常检测示意图。

具体实施方式

为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。

由于sdn网络中的sdn交换机只关注流量转发功能,其转发策略由sdn控制器决策,故sdn交换机的处理能力往往是比较弱的。为了实现dos攻击检测与防御机制的分布式、下沉处理,设定每个sdn交换机连接有一个具备异常流量处理能力的终端。本发明中所提到的“节点”,就代表sdn交换机及对应终端的组合。

传统sdn网络的dos攻击检测与防御机制都是由控制器进行异常流量的处理工作,这种方式会增加控制器的处理负担,导致控制器过载。本发明的方法可以通过交换机所连接网络的剩余计算资源来处理异常的流量,达到为控制器减负的目的。如图1所示为sdn网络的dos攻击分布式检测与防御机制示意图,其中交换机b、d及其所连接的主机和网络为处理节点,交换机a、c为发出异常流量的交换机。

本发明的技术方案为:一种sdn网络的dos攻击分布式检测与防御方法,包括:

s1、通过异常流量检测,得到异常流量;

s2、在普通节点中选取分布式处理节点;

s3、步骤s2选取的分布式处理节点对疑似攻击节点的报文进行处理。

如图2所示,步骤s1的异常检测包括以下两部分:

a、控制器对与它直连的链路上的packet_in报文的速率进行监控,当packet_in报文速率大于第一阈值时,控制器下发指令到相应的交换机,进行交换机的逐跳异常流追溯。第一阈值可以根据与控制器相连链路的带宽确定,为了防止带宽资源被异常流量耗尽,可以设定vth=αb,其中b为链路带宽,α为一个常数,由控制器根据网络状态确定,并且要保证0<α<1。

b、异常流量的检测拟采取熵值检测的方法。熵值是在封闭体系中对无序和随机的计量单位。随机程度越高,熵值越高,随机程度越低,熵值越低。选择熵值检测的原因是在交换机进行异常检测无法使用太过复杂的算法,选定的检测方式一定要是既复杂度小,又可以有效检测出异常。而利用熵值的检测方法是一种轻量级的检测方法,同时也是dos攻击比较常使用的检测方法,符合以上条件。

在发生dos攻击时,大量攻击报文攻击某几个主机,会导致目的ip地址的熵值骤减,我们利用这个特性来对异常流量进行检测。

首先,交换机利用自身计数器收集每个流量进入端口的n个时间间隔内的流量特征,在收到异常检测的指令后,根据h(x)=-p(x)logp(x)公式算出目的ip地址的熵值。

因为不同节点的网络环境不同,将计算结果与第二阈值进行比较,若计算出的ip地址的熵值小于第二阈值,即hi(dstip)<hth(dstip),则判定流异常;接着通知下一跳交换机进行异常流检测,直到计算出的ip地址的熵值大于或等于第二阈值,则将当前执行异常流判断的这个交换机判定为异常流量发出的交换机。

第二阈值的计算方式为λi表示第i个时间间隔的熵值对应的权值,这个权值由交换机决定,同时需要满足

步骤s2通过节点代价的计算,选出分布式处理节点,对异常流进行处理,减轻控制器的工作量。

如图3所示,节点代价计算主要包括三个部分:计算时间代价,通信代价,计算资源代价;各自计算过程如下

计算时间代价:计算时间代价表示处理节点在处理异常报文时的时间代价。要计算时间代价与两个参数有关,一个是处理节点的计算速率,另一个是处理节点所需要处理的节点量,在本实施例中用节点度数表示。假设节点i的计算速率为βi,度数为degi,则其计算时间代价

通信代价:通信代价包括从处理节点到控制器的通信代价以及从普通节点到控制器的通信代价。对于从处理节点到控制器的通信代价,我们可以使用处理节点发送单位报文到控制器的时间来衡量,假设对于节点i,其到控制器的最短路[i,c]长度为k,经过链路l1,l2,…lk的传输速率分别为r1,r2,…rk,则时间代价为

对于从普通节点到处理节点的代价,可以使用所有相邻节点发送报文时间的最大值来衡量,也就是与节点相连的链路传输速率的最小值。假设节点i与相邻的节点j之间链路的传输速率为rij,则时间代价为

总的通信代价为

计算资源代价:与节点的计算负载有关,节点的计算负载越大,则计算资源代价也就越高。假设当节点达到其最大负载时的计算资源代价为cproh,当节点处于零负载时,节点的计算资源代价为cprol。假设节点i最大的负载为lmaxi,若选择节点i为处理节点,则其负载与节点i本身的计算负载和需要处理的异常报文量有关,则可以得到节点i的负载为

li=lave+αdegi

其中,lave表示节点i正常情况下的平均负载量,αdegi表示处理异常报文的负载量,α是一个常数。

负载对计算资源代价的影响是一个发展变化的过程,而逻辑斯蒂曲线预测对象在其发展过程中呈现出的与生物类似的发展变化过程。因此本实施例用逻辑斯蒂曲线对负载和计算资源代价之间的关系进行描述。其关系曲线如图4所示。

其基本方程式为:

在这个问题中,k=cproh,假设在满负载时,代价为近似cproh的值cproh-ε,其中ε为一个任意小的值;当负载为0时,代价为cprol+ε。这样就可以得到计算资源代价的表达式为

其中,

从而得到节点i的代价:

如图5所示,在计算得到每一个节点的代价基础上,通过节点选取算法来选出最合适的分布式处理节点。

假设n={n1,n2,…nm},其中对于每一个节点i,wi=[αi1,αi2,…αim]t,其中可以得到优化模型为

这是一个0-1整数规划,是一种np难问题,我们可以使用近似算法对它进行求解。可以将这个问题看作是一个线性规划进行求解。

求解线性规划问题:

对得到的解做二次处理,对于0≤ni≤0.5,判定ni=0,即节点i为普通节点。对于0.5≤ni≤1,判定ni=1,即节点i为处理节点。这样可以得到一个2倍近似解。

通过分布式处理节点算法选出分布式处理节点后,进行报文重定向,报文重定向是指每个检测到的疑似被攻击节点将所有发送到自己的所有流量交给自己所在处理范围的分布式处理节点。分布式处理节点接收疑似被攻击节点的流量,并进行流量清洗,流量清洗是指在处理节点进行攻击流量的识别和清洗,最终将判定正常的报文交给的控制器进行处理。

报文重定向示意图如图6所示,图6中a为选定的辅助处理节点,b和c为发出异常流量的交换机,白色填充箭头指向为一般情况下报文的流向,黑色填充箭头指向为发生攻击后报文重定向的报文流向

疑似攻击节点回溯示意图如图7所示,其中x表示检测出异常的端口,黑色填充箭头指向表示回溯方向。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1