一种针对交火攻击的多网络地址跳变安全防御方法与流程

文档序号:20764544发布日期:2020-05-15 18:42阅读:202来源:国知局
一种针对交火攻击的多网络地址跳变安全防御方法与流程

本发明属于信息安全领域,尤其涉及一种针对交火攻击的多网络地址跳变安全防御方法。



背景技术:

交火攻击(crossfireattack)是一种复杂的分布式拒绝服务攻击(distributeddenial-of-service,ddos)武器,能够有效切断目标服务器区域与终端主机之间的数据连接,如可破坏美国53%的互联网连接。在攻击中,僵尸网络首先通过发送具备不同生存时间(time-to-live,ttl)的网络控制报文协议(internetcontrolmessageprotocol,icmp)数据包,来探测转发到目标区域路由器级别的路径。然后,由攻击方进一步从探测到的路径中根据如下两条原则选择公用路由,以形成一个持久路由(persistentroute,pr)的集合:(1)每个pr的输出节点与目标主机之间是非邻接的,这使得僵尸网络难以在目标区域中有效被识别出来;(2)pr具有在僵尸节点和目标节点之间转发数据流的高密度特性,以确保泛洪时能够有效造成网络拥塞。与此同时,在转发到目标节点的每个pr下游,由攻击者准备一个相应的诱饵节点。最后,僵尸网络向诱饵节点发送具备有效网络地址、低速率的泛洪流量,耗尽pr的带宽。该种类型的攻击目前难以被防火墙或入侵检测系统所检测到。

现有工作解决该类攻击主要从如下两个方面进行:(1)基于移动目标防御(mtd)的方法将受拥塞的pr分流到新的备选路径上,同时将检测出来的僵尸节点从正常的主机中分离出来;(2)基于阻塞的方法将检测出来的泛洪数据流或僵尸节点从网络中过滤掉。上述方法均需要僵尸节点级的异常流量检测,然而存在如下限制:(1)linux上的traceroute程序或windows上tracert程序等所发送的icmp探测数据包存在很强的规律性,然而这些探测数据包能够以更为复杂的方式发送,如可使得数据包的ttl值随机化,以绕过防御系统的检测,这是由于它们与正常的icmp数据包具有很强的相似性;(2)泛洪检测可被发送极低数据流量、随机发送间隔的僵尸节点所绕过,这是由于难以在大规模的网络中采用高频率的采样。

软件定义网络(software-definednetworking,sdn)是一种广泛使用的集中式网络范例,它将交换机的控制逻辑分离到控制器的软件中。在单域的sdn环境下,控制面是由一个或多个openflow控制器构成,每个控制器控制其所属的一个或多个openflow交换机。在该架构下,sdn能够灵活地改变数据包的报头字段值,并通过openflow(of)协议在数据平面交换机上无缝配置底层openflow交换机的数据平面转发规则,实现灵活可编程的路由控制。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种针对交火攻击的多网络地址跳变安全防御方法。

本发明的目的是通过以下技术方案来实现的:一种针对交火攻击的多网络地址跳变安全防御方法,包括以下步骤:

(1)通过控制器向交换机发送查询消息;所述查询消息为获取第i条数据平面链路li上接收到的数据包数量数值和转发到该链路上的数据包数量数值

(2)通过步骤(1)中获取的数值和数值的动态变化来判断数据平面链路li的拥塞等级κ(li),包括以下子步骤:

(2.1)计算时间刻度t与链路li的在途数据包数量之间的相关性系数h1(t),计算方法如下:

其中,τs为采样平滑时间,t′为位于时刻t-τs和时刻t之间的时刻,函数corrcoef(a,b)表示矢量a和矢量b之间的相关性系数矩阵;

(2.2)计算时间刻度t与链路li连接的出口交换机上接收数据包数量之间的相关性系数h2(t),计算方法如下:

(2.3)基于步骤(2.1)~(2.2)得到的相关性系数h1(t)和h2(t),计算拥塞等级κ(li):

其中,corrcoef1,2为之间的相关性系数,为相关性系数矩阵平滑时间,右下角标“1,2”表示取矩阵中第1行第2列的元素值;

(3)根据步骤(2)得到的拥塞等级κ(li),生成数据平面中拥塞链路的状态集合其中ei为链路li的被攻击次数;并将状态集合划分为被攻击次数少于ηmin次的拥塞链路的集合中除θ外剩余链路的集合

(4)对于集合θ中的每条链路li,针对需要受到保护的诱饵节点、目标节点或之前创建的变体,在链路li的上游路由路径中创建新变体,该新变体配置随机化的地址;在数据面端到端的通信中,每个变体以透明代理的方式工作,并采用如下两类方式阻止僵尸网络基于网络控制报文协议的持久路由发现过程:

(4.1)阻止来自于目标节点到主机节点的网络控制报文协议回应消息;

(4.2)代替目标节点或诱饵节点向主机节点回应网络控制报文协议请求消息;

(5)对集合λ中的每条链路li,当链路li无备选路径时,通过配置交换机,对主机发送到诱饵节点的数据流量进行压制,使得主机到诱饵节点的流量与主机到目标节点之间的流量实现均衡,避免目标节点出现拥塞,同时更新相关变体的网络地址为新的随机网络地址,使得交火攻击发起者无法攻击目标节点、失去攻击意义;

(6)对集合λ中的每条链路li,当链路li有备选路径时,通过最短路径算法计算出新的路径,该新路径排除受到攻击的链路li;同时在受攻击的诱饵节点或目标节点的上游生成具备随机网络地址的新变体,并将之前的转发路径及其相应已创建的变体销毁,使得僵尸网络到诱饵节点的路由路径与到目标节点的路由路径无公用的持久路由,使得交火攻击的发起者无法攻击目标节点、失去攻击的意义;

(7)查询控制器中的路由表,找到集合中与受到攻击诱饵节点或目的节点相连接的主机及其路由,通知这些主机节点:诱饵节点或者目的节点的相关变体ip网络地址发生变化;主机收到新的ip网络地址后,以新的ip地址连接到诱饵节点或目的节点,从而缓解交火攻击的安全威胁。

进一步地,所述步骤(1)中,所述获取数值的查询消息类型为openflow协议中的ofpmp_port或ofpmp_port_stats;所述获取数值的查询消息类型为openflow协议中的ofpmp_group_stats。

进一步地,所述步骤(3)中,所述集合θ包括持久路由。

进一步地,所述步骤(4)中每个变体以透明代理的方式工作具体为基于控制器-交换机的控制协议配置数据面的转发策略:

(41)对主机发送到变体的数据包而言,该数据包的目的ip地址被替换为相应诱饵节点或目标节点的目的ip地址;

(42)对来自诱饵节点或目标节点的数据包而言,该数据包的源ip地址被替换为变体的源ip地址。

进一步地,所述转发策略通过openflow协议中的ofpat_set_field和ofpat_output指令实现。

进一步地,所述步骤(6)中,所述最短路径算法选自dijkstra算法、bellman-ford算法、a*search算法、floyd-warshall算法、johnson算法、viterbi算法。

进一步地,所述步骤(7)中,所述通知机制的实现方式为采用dnsupdate消息作为通知协议,每台终端运行一个守护进程实时更新dns域名解析结果。

本发明的有益效果是:本发明提出了一种基于openflow的多变体网络地址跳变系统(multi-variantsnetworkaddresshopping,mvnah)的安全防御方法,mvnah作为一个控制平面的服务在某个openflow控制器之上运行,并与底层的openflow交换机通过openflowv1.3及以上的协议进行交互。本发明可增加路由的多样性,降低网络中持久路由的可见性和可预测性,极大增加僵尸网络pr发现过程的不确定性,进而解决交火攻击的安全防御问题,减缓该类攻击对被攻击的网络所造成的拥塞,最终使得攻击者失去对攻击目标的兴趣。

附图说明

图1是mvnah部署示意图。

具体实施方式

为解决交火攻击的安全防御问题,本发明提出一种基于openflow的多变体网络地址跳变系统(multi-variantsnetworkaddresshopping,mvnah)的安全防御方法。该系统作为一个控制平面的服务在某个openflow控制器之上运行,并与底层的openflow交换机通过openflowv1.3及以上的协议进行交互。在运行过程中,mvnah检测和防御交火攻击的具体步骤如下:

步骤1:在当前时刻t,mvnah通过控制器通过向交换机发送相关的查询消息,获取关于每条数据平面链路(记作li)的如下两类数值:(1)该链路上所接收到数据包的数量数值具体查询消息类型包括且不限于openflow协议中的ofpmp_port或者ofpmp_port_stats;(2)转发到该链路上的数据包总数量数值控制器通过交换机发送查询消息而获取该数值,具体查询消息的类型包括且不限于openflow协议中的ofpmp_group_stats消息。上述两类数值的采样平滑时间记作τs,可由管理员自定义。

步骤2:mvnah通过上述两类数值的动态变化来判断数据平面中每条链路的拥塞等级,分析方法如下:(1)计算时间刻度t与链路当中在途数据包数量之间的相关性系数(h1(t),计算方法如公式1所示;(2)计算时间刻度t与li所连接的出口交换机上接收数据包数量之间的相关性系数(h2(t))。其中h1(t)和h2(t)的数值能够说明两个变量之间的线性关系。基于上述两个系数,拥塞等级κ(li)通过公式3进行计算,具体计算方法为:首先计算之间的相关性系数corrcoef1,2,然后计算该相关性系数与0的最大值。其中,为相关性系数矩阵平滑时间,可由管理员自定义;函数corrcoef(a,b)表示矢量a和矢量b之间的相关性系数矩阵,corrcoefx,y表示该矩阵中第x行第y列的元素值。

步骤3:根据步骤2所得到的κ(li),mvnah生成数据平面中拥塞链路的状态集合,记作其中li为链路标识、κi为链路li的拥塞等级、ei为链路li的,mvnah进一步将划分为两个集合,分别为:(1)即被攻击次数少于ηmin(该数值为η能力,由管理员设定)次的拥塞链路(含pr);(2)中排除γ之外剩余链路的集合,θ集合中每条链路li均处于僵尸网络对之前创建的变体再次发起攻击的情况。

步骤4:对于每条在θ中的链路li,针对需要受到保护的诱饵节点、目标节点或者之前已经创建过的变体,mvnah在li的上游路由路径中创建新的变体,该变体配置了随机化的地址。在数据面端到端的通信中,每个变体以透明代理的方式工作,并同时采用如下两类方式阻止僵尸网络基于icmp的持久路由发现过程:(1)阻止来自于目标节点到主机节点的icmp回应(reply)消息;(2)代替目标节点或诱饵节点向主机节点回应icmp请求(request)消息。该变体的实现方法完全基于控制器-交换机的控制协议,通过对数据面的配置来实现,无需对数据面的交换机进行任何功能性的修改,具体所需配置的转发策略如下:(1)对于每一个来自主机发送到变体的数据包而言,该数据包的目的ip地址被替换为相应诱饵节点或目标节点的目的ip地址;(2)对于每一个来自诱饵节点或目标节点的数据包而言,该数据包的源ip地址被替换为变体的源ip地址。上述转发策略的实现不限于使用openflow协议中的ofpat_set_field和ofpat_output指令来实现。

步骤5:对于每条在λ中的链路li,如链路li是关键路径(即无备选路径),mvnah通过配置交换机,对所有主机发送到诱饵节点的数据流量进行压制,使得所有主机到诱饵节点的流量与所有主机到目标节点之间的流量实现均衡,避免目标节点出现拥塞,同时更新变体的网络地址为新的随机网络地址,使得交火攻击发起者无法攻击目标节点、失去攻击意义。

步骤6:对于每条在λ中的链路li,如链路li有备选路径,则mvnah通过最短路径算法(不限于迪克斯特拉dijkstra算法、贝尔曼-福特bellman-ford算法、a星搜索a*search算法、floyd-warshall算法、johnson算法、维特比viterbi算法等已知最短路径算法)计算出新的路径,该路径应排除掉受到攻击的li;同时在受攻击的诱饵节点或目标节点的上游生成具备随机网络地址的新变体,并将之前的转发路径及其相应已创建的变体销毁,使得僵尸网络到诱饵节点的路由路径与到目标节点的路由路径无公用的持久路由,因而使得交火攻击的发起者无法攻击目标节点、失去攻击的意义。

步骤7:mvnah查询控制器中的路由表,找到中与受到攻击诱饵节点或者目的节点相连接的主机路由,通知这些主机节点诱饵节点或者目的节点的相关变体ip网络地址发生变化;主机在收到新的ip网络地址更新之后,以新的ip地址连接到诱饵节点或者目的节点,从而缓解交火攻击的安全威胁。上述通知机制的实现不限于如下方式:通知协议采用dns(domainnamesystem)update消息,每台终端运行一个守护进程实时更新dns域名解析结果。

实施例

如图1所示,本发明所提出的mvnah部署于某个sdn网络中,mvnah以一个服务或模块的方式在一个sdn控制器上运行,mvnah控制一个或多个sdn交换机,实现对sdn交换机链路状态的获取,以及对sdn交换机转发规则的配置;sdn交换机通过ip网络连接至目标服务器区域、诱饵节点/变体、僵尸网络节点以及主机。攻击场景假设如下:当主机访问目标服务器区域时,此时僵尸网络节点通过发送icmp数据包探测网络中存在的pr,假设该pr存在于“ip网络-3”中sdn交换机-1和sdn交换机-2时,僵尸网络节点选择图1中的诱饵节点作为泛洪对象,以此来导致sdn交换机和僵尸网络节点之间的pr出现拥塞,使得目标服务器区域和主机之间出现拥塞,产生攻击效果。

在受到上述攻击之后,运行于sdn控制器中的mvnah模块通过如下步骤消除攻击:

(1)本步骤对应发明内容中的第一步和第二步,mvnah以间隔方式、定时方式或实时探测方式,通过发送ofpmp_port或opfmp_port_stats以及ofpmp_group_stats获取mvnah所控制的全部或部分sdn交换机数据端口的统计数值依据公式3计算出交换机数据端口的拥塞等级。例如,在图1中,采样频率为1秒钟采样一次,当时,在t时刻,假设sdn交换机-1通过ip网络-3连接到sdn交换机-2的路由路径上0到5秒的λ(rx)和λ(tx))序列测得统计结果分别如下:<155,170,186,201,213,214>和<155,170,186,202,215,232>,τs=3s,τ(li)=10ms,则依据公式1和公式2分别计算在t=5时刻的相关性系数矩阵分别为:

h1(5)=corrcoef{[3,5],[1,2,18]}=[1,0.891;0.891,1]

h2(5)=corrcoef{[3,5],[15,12,1]}=[1,-0.9497;-0.9497,1]

以此类推,分别计算则κ(li)的计算方法如公式4所示。如图1所示,以此方式对sdn交换机-1和sdn交换机-2的所有数据平台链路的拥塞等级进行计算,从而分析出被攻击的链路pr。

κ(li)=max{0,-corrcoef1,2([0.866,1,0.891],[0,-0.9608,-0.9497])}(4)

=max{0,0.6518}=0.6518

(2)按照上个步骤计算出被攻击pr的κ(pr),mvnah生成拥塞链路的状态集合,即对于pr而言,可出现如下两种情况:情况一,如果epr<ηmin,则θ={pr},情况二,如果epr≥ηmin,则λ={pr},

(3)对于情况一而言,mvnah在pr的上游节点,即sdn交换机-1与pr相连接的端口上分别为诱饵节点或目标节点创建新的变体、配置随机化的地址(例如诱饵节点变体的ip为223.129.26.17、目标节点变体的ip为223.165.83.53),同时mvnah通过向sdn交换机-1发送ofpat_set_field和ofpat_output对变体创建的端口配置如下转发规则:首先,对于通过ip网络-2来自主机的数据包(该数据包的目标地址为变体的随机化地址),其变体的目的地址223.129.26.17或223.165.83.53会分别被替换为相应诱饵节点或目标节点的目的ip地址;其次,对于每个来自诱饵或目标节点的数据包而言,当该数据包的源地址分别被替换为223.129.26.17或223.165.83.53;然后,在sdn交换机-1上设置转发规则,以过滤掉来自目标节点到主机节点的icmp回应(reply)消息,并替换成为目标节点或诱饵节点向主机节点回应icmp请求(request)消息。从而实现变体的创建。

(4)对于情况二而言,如pr无备选路径(即sdn交换机-1到主机之间只有一条路径),mvnah通过配置sdn交换机-1,则选择sdn交换机-2对主机发送到诱饵节点的数据流量进行压制,使得目标节点与诱饵节点之间的进入流量实现均衡,避免目标节点出现拥塞;同时,在sdn交换机-1上更新变体的网络地址为新的随机地址(如227.112.178.70)。

(5)对于情况二而言,如pr有备选路径,则mvnah首先在网络拓扑中排除掉pr,通过最短路径算法计算出新的路径,使得新的路径不包含pr;同时,在诱饵节点或目标节点的上游,即sdn交换机-1上生成新的变体,并销毁原先创建的变体,使得僵尸网络到诱饵节点的路由路径与到目标节点的路由路径无公用的持久路径,使得pr无法被攻击。

(6)mvnah在控制器上查询路由表,找到中主机节点与攻击诱饵节点或者目的节点相连接,以dns(domainnamesystem)update消息的方式(不限于此),通知主机节点相关的诱饵节点或目标节点的相关变体ip发生了变化,主机重新以新的ip地址更新,此时主机重新恢复对于目标网络区域的正常访问,同时僵尸网络无法再次攻击目标区域。

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