面向SDN的脆弱性扩散形式化建模与扩散因素分析

王 健1赵国生2赵中楠1李 可1

1(哈尔滨理工大学计算机科学与技术学院 哈尔滨 150080)2(哈尔滨师范大学计算机科学与信息工程学院 哈尔滨 150025)

SDN将传统网络控制面与转发面解耦,在实施集中化管控的同时引入诸多新的安全和管理问题.脆弱点类型在SDN各层及南北向接口存在差异性,且传播趋势不同.针对脆弱性在SDN层内及层间的扩散效果及抑制策略问题,提出了一种基于Bio-PEPA的SDN脆弱性扩散形式化模型.1)对Bio-PEPA基础语义进行讨论,阐明其适用于具有明显分层架构的SDN及具有动态性的脆弱性扩散过程;2)探讨SDN中各层存在的脆弱性问题,并对SDN中存在的脆弱性以层为单位进行建模,通过对SDN层内及层间脆弱性扩散过程构建形式化模型,进而分析SDN内脆弱性在水平(层内)及垂直(层间)2个维度内的扩散机理,从而更好地抑制脆弱性在SDN内的扩散;3)通过仿真实验得出可以通过降低连接转化率、提升检测转化率及修复转化率来有效抑制SDN的脆弱性扩散.

关键词软件定义网络;Bio-PEPA;形式化建模;脆弱性扩散;抑制策略

脆弱性是引发网络安全问题的重要因素,始终是网络安全领域研究的热点之一.随着人们对网络需求的日益提高,网络架构也在发生着重大变化.一种新型网络架构——软件定义网络(software defined networking, SDN)的出现[1],更好地满足了人们的需求.它采用控制和转发相分离的体系架构,使网络管理员可以通过软件实现任意的网络控制逻辑,而不需要对网络设备本身进行修改,具备极强的灵活性与开放性.在SDN的灵活性与开放性为网络管理员及用户带来便利的同时,也使网络引入了更大的安全风险及脆弱性.从控制器通过南向接口传播蠕虫病毒给底层交换机[2],由交换机对控制器发起DDoS攻击[3],应用层恶意非法用户篡改身份占用SDN带宽[4]等,都会造成SDN的瘫痪故障.因此,SDN的安全问题成为制约其普及应用的障碍.

目前,针对SDN脆弱性研究仍处于初级阶段.文献[5]基于SDN的可编程性提出了一种防火墙应用,该应用可以不借助任何硬件即可工作,解决了传统网络中不同防火墙间规则冲突等问题.文献[6]面向云计算,提出了一种入侵检测和控制器的联动机制相融合的入侵防御方法,该方法解决了传统的入侵防御系统由于串联在网络环境中且处理能力有限所造成的网络拥塞问题.文献[7-10]结合SDN集中控制与网络虚拟化的特性,利用SDN网络解决在传统网络中一直困扰网络管理者的DDos攻击问题.以上研究者的关注点在通过SDN解决某些在传统网络中不能妥善解决的问题,而没有关注到SDN自身的安全问题.文献[11]根据STRIDE威胁影响模型对SDN所面临的脆弱性问题及解决策略进行研究,但是并没有考虑到SDN内脆弱性的关系及扩散差异问题.文献[12]则研究SDN内交换机、控制器、通信信道等重要的网络元件所具有的脆弱性问题及解决对策,虽然该方法考虑到了SDN内各网络元件之间的差异性,但是并没有考虑脆弱性在SDN层内及层间的动态扩散问题.此外,一些研究者则从局部,比如以SDN架构某一层[13-16]或接口[17-18]为切入点来对SDN存在的脆弱性问题进行分析,还有一些研究者则从整体架构层面[19-22]对SDN存在的脆弱性问题进行分析.这些研究都是从局部或外部层面上对SDN面临的脆弱性问题及解决策略进行分析,并没有对脆弱性的产生及扩散的内部因素等展开深入研究,难以有效指导SDN的安全设计.文献[23]针对SDN流表更新一致性的问题及措施展开研究.文献[24]针对SDN开放性较高及安全问题出现概率较大的问题,对SDN的接入控制进行研究.上述研究面向SDN中的某一具体安全问题进行了探讨,但是这些研究结果因针对性较强,不能迁移到其他类型安全问题的分析,即上述研究并没有系统地分析安全性问题产生的内在原因或者说脆弱性扩散/传播的内在因素.

综上所述,研究者更多关注于基于SDN增强传统网络的安全性,虽然已有部分研究为引发SDN安全性问题的内因(脆弱性)及其预测抑制提供了重要的研究基础,但由于SDN分层架构、集中控制及开放灵活等特性而引入的脆弱性扩散分析仍具有一定局限性:1)已有研究仅面向SDN不同组件,已有安全模型仅针对某一类脆弱点引发的安全问题,各有其应用与限制范围,未突破面向SDN脆弱性分析的简单性和局限性;2)目前对于SDN脆弱性的分析,普遍基于三层两接口的SDN架构进行分类描述,但在实际SDN安全对抗中,往往是采用跨层模式,已有研究缺乏对SDN脆弱性及其扩散过程的完整描述与分析能力;3)虽然已有少量研究涉及SDN内脆弱性的关系及扩散差异性,但并没有考虑脆弱性在SDN层内及层间的动态扩散问题,对于脆弱性系统化地建模与动态扩散过程分析,尚无实际解决方案.

① 文内不再区分反应与动作,因“动作”为PEPA中的概念,“反应”为生化网络环境下与PEPA中动作相等价的概念,Bio-PEPA为PEPA基础上融合生化网络概念发展而来的新型形式化语言,因此在Bio-PEPA中二者等价,无区分的必要.

针对已有研究不足,本文借助形式化建模语言Bio-PEPA,对SDN脆弱性扩散问题以层为单位进行建模,通过SDN层内及层间脆弱性扩散的形式化模型,研究SDN内脆弱性在水平(层内)及垂直(层间)2个维度内的扩散本质,抑制脆弱性在SDN内的扩散.本文的主要贡献有5个方面:

1) 系统分析了SDN内不同组件及SDN各层/接口存在的脆弱性及内在安全交互问题;

2) 基于Bio-PEPA的层次化特性,构建SDN脆弱性扩散过程的形式化模型,提高了对SDN组件间逻辑关系及动态演化过程的描述能力;

3) 考虑了脆弱性在SDN架构层内及层间2个维度上的扩散机理,适合于SDN脆弱性扩散的特点,以此为基础系统地分析SDN脆弱性的扩散规律;

4) 借助Eclipse Bio-PEPA Plugin工具,分别采用ODEs和Gillespie’s Stochastic方法对SDN脆弱性模型进行分析,过程透明客观,验证其合理性;

5) 实现对SDN脆弱性的实时监控,进一步对扩散因素及趋势进行分析与预测,使面向SDN脆弱性的管理从被动变为主动,并制定有效的抑制策略,提升SDN安全性.

1Bio-PEPA基础语义

Bio-PEPA是为生化系统的建模和分析而开发的一种形式化语言.它主要包括描述物种行为的物种组件(S)和描述物种组件间交互的模型组件(P).2种组件描述为[25]:

S∷=(α,k)opS|S+S|C,

(1)

其中,op=↓ | ↑ |⊕|⊖|⊙;

P

(2)

在前缀(α,k)opS中,k表示在执行动作α时物种S的化学计量数;前缀组合“op”代表反应中物种S所起的作用,具体包括反应物(↓)、生成物(↑)、促进剂(⊕)、抑制剂(⊖)和通用修改(⊙);操作符“+”代表选择操作;C代表常量.操作符▷◁代表合作操作,G是合作过程中必须同步执行的动作集合,代表合作过程中所需要的全部动作必须同步;S(x)中的参数x,代表物种的初始数量.

此外,还需对Bio-PEPA中的位置(locaction)进行说明,位置构成了静态层次结构,适用于SDN这种具有明显层次结构的性能分析.符号S@L表示由组件S描述的物种位于位置L中.每个位置由“L:sunit,kind”表示.其中L是位置的名称,是唯一的;s表示大小;unit是与之相关的度量单位;kind代表种类.

为收集系统动态信息,Bio-PEPA用函数速率fa与动作α相关联.这个函数代表了关联反应的动力学规律,即反应速率.对于函数速率的定义,Bio-PEPA考虑具有简单运算的数学表达式和包含常数参数和分量的运算符,所有动力学法则都可按照这种方式进行定义.Bio-PEPA还包括一些预定义函数来表达最常用的动力学法则.因此,函数速率可以通过数学操作符(sk)和预定义函数(sk2)进行定义:

f_rate

(3)

sk∷=int|float|vachar|sk+sk|sk×sk|sk/sk|sk-
sk|sksk|exp(x)|log(sk)|sin(sk)|cos(sk),

(4)

sk2∷=fMA(sk)|fMM(sk,sk)|fH(sk,sk,int).

(5)

本文涉及的函数速率为mass-action类型,即f_rate∷=fMA(sk),该类型反应的反应速率仅与反应物浓度相关,即对于任意反应α,函数速率(即反应速率)fα∷=fMA(rα)=rα×反应物浓度,其中r为反应转化率参数.

Bio-PEPA可以通过多种方法进行求解,如随机模拟、连续时间Markov链(CTMC)和常微分方程(ODEs)的方式进行求解,同时Bio-PEPA语言有一整套自动处理Bio-PEPA模型的软件工具支持模型求解.求解Bio-PEPA主要是为了获得各组件的近似稳态概率,继续对系统做进一步的分析.所谓近似稳态概率是指模型稳定后,各种类组件的数量占所有组件总量的比例.本文用这个性能参数来评价SDN网络的脆弱性扩散结果.

2SDN脆弱性分析

SDN是一种集中控制的网络架构,其空间结构主要包括3个层次:基础设施层(infra-structure layer)、控制层(control layer)和应用层(application layer).该架构将传统网络设备的数据平面和控制平面分离,底层硬件的复杂度得到大大简化.主张通过集中式的控制器平台实现网络的控制,由于软件控制器的数量远远小于传统网络中网络设备的数量,配置和检查工作均被大大简化;另外,由于软件控制器一般由第三方实现,使得控制平面脱离了硬件厂商的限制,修改和添加新特性只需在软件控制器上修改或者添加应用即可,相比于传统网络简单很多.虽然SDN为网络引进了控制面和数据层分离,具有简化底层硬件实现、简化网络配置过程以及向上层应用提供网络全局视图等优点,但是,作为一个尚在起步阶段的体系结构,SDN在简化网络管理、缩短创新周期的同时,也引入了不可低估的安全威胁.

基础设施层位于SDN网络架构的最底层,由路由器、物理/虚拟交换机、接入点等网络设备组成.该层主要负责数据的处理、转发和状态收集,底层硬件的复杂度得到大大简化.该层设备是可访问的,通过南向接口,由控制器管理,对控制器下发的流规则完全信任.该层存在的主要脆弱性问题包括:恶意/虚假流规则注入、DDoS/DoS攻击、数据泄露、非法访问、身份假冒和交换机自身的配置缺陷等.此外,基础设施层还可能面临着由虚假控制器的无序控制指令导致的交换机流表混乱等威胁.

控制层包含一个特别的网络组件控制器,按照逻辑集中物理分散的原则进行分布.控制器实质上是一个软件平台,主要负责SDN网络内流规则的建立和终止.SDN控制器为底层网络提供可编程接口,其整体管理功能完全托付在SDN控制器,这有利于整个网络的集中管理.同样,这也成为SDN的致命弱点.当攻击者入侵控制器,将有能力控制整个网络,进而将给SDN带来难以估量的危害.控制层的典型脆弱性问题是集中式管控带来的控制器单点故障问题,如针对控制器的DoS/DDoS攻击及控制器在逻辑/物理上遭到破坏而导致的拒绝服务等故障.此外,控制层还面临非法访问、身份假冒、恶意/虚假流规则注入以及控制器自身的配置缺陷等脆弱性问题.

应用层负责提供一系列的服务和应用,例如入侵检测系统、入侵防护系统、深度包检测、负载均衡、安全监测、接入控制等Openflow应用程序、安全服务类应用程序、第三方应用程序.一些流规则还将由上述应用程序制定,并由控制器下发至相关的交换机和网络设备.目前,针对应用程序自身的安全型保护机制并不健全,由于基础设施层的各种交换机和网络设备对控制器下发的流规则完全信任,且不假思索的执行,一旦这些参与制定流规则的应用受到篡改和攻击,将给SDN带来难以预估的危害.因此,应用层面临的脆弱性主要包括:应用程序隐含的恶意代码、应用程序代码的恶意篡改、身份假冒、非法访问以及应用程序自身的配置缺陷等.

针对以上SDN三层结构,将SDN结构及各层包含的脆弱性问题总结如图1所示:

Fig. 1 SDN architecture and vulnerability analysis
图1 SDN架构及脆弱性分析

3SDN脆弱性扩散模型

3.1问题描述

脆弱状态是指一个已授权状态,且由该状态经过已授权的转移方式可以到达未授权状态,而脆弱性是指脆弱状态区别于非脆弱状态的特征,通常将这种具有脆弱性的组件称为脆弱点.造成系统脆弱性的原因具有多种类型,传统上主要包括操作系统的设计缺陷、软件bug等.此外,连接性、可疑用户输入、不合理信任关系、间谍或者恶意软件等因素也会引入额外的脆弱点.

根据SDN结构及对SDN脆弱性的分析,我们分别以层为单位,通过对底层网络设备、控制器、上层应用3种类型组件在垂直及水平2个维度内的运行变化,来分析脆弱性层内和层间的扩散情况.为了描述脆弱性扩散的过程,需要定义组件的运行状态,因此将SDN组件运行状态抽象为以下5种.

P:该状态表示节点具有潜在的脆弱性,在其他节点的作用下,可能被渗透而具有脆弱性.

U:该状态表示节点已经表现出脆弱性,但尚未被检测出.

D:该状态表示节点已经表现出脆弱性,且已经被检测出.

F:该状态表示节点中的脆弱性未得到及时处理,节点出现故障或失效.

M:该状态表示经减缓、修复等操作,节点脆弱性得到减缓.

其中,{U,D,F}归类为脆弱态集合,网络的脆弱性主要由这3种状态的组件数量影响,因此本文用脆弱态组件的稳态概率(即脆弱态组件占所有组件的比例)来衡量SDN脆弱性的扩散结果.

Bio-PEPA起初是针对生化网络建模提出的,SDN网络与生化网络有相似之处,它的静态分层等特性在研究SDN脆弱性的扩散建模中仍然很具适用性,但需要针对应用环境进行相应变换.在SDN网络中,依据Bio-PEPA定义的语法语义,可进行基本抽象:

1) 将SDN中的3个层(Layer)抽象为Bio-PEPA模型中的位置,设置如下:

location1:size=1,type=compartment;
location2:size=1,type=compartment;
location3:size=1,type=compartment.

2) 5种SDN组件状态对应于Bio-PEPA模型中的物种组件(S),P,U,D,F,M状态的节点,在Bio-PEPA模型中分别被称作潜在态组件、未检测态组件、检测态组件、故障态组件和修复态组件.

3) SDN网络中,任意2种组件之间的一种交互变化,对应于Bio-PEPA模型中的一种动作类型α,其动态性对应于Bio-PEPA模型中的函数速率fα.

SDN组件之间的交互变化可抽象为5个类型的反应,简述为连接反应、检测反应、异常反应、修复反应和缺陷反应,具体内容将在3.2,3.3节详述.

Connetion*={Connection1_i,Connection2_i,
Connection3_i,Connection1_i_j,
Connection2_i_j,Connection3_i_j};
Detection*={Detection_i};
Abnormity*={Abnormity1_i,Abnormity2_i};
Mitigation*={Mitigation1_i,Mitigation2_i};
Defect*={Defect_i}.

4) SDN脆弱性扩散模型由5种组件间的合作操作进行定义.

若模型内有U,D,F三种状态的脆弱点存在,且各反应转化率参数不为0,即会触发脆弱性扩散.连接反应转化率使得U,D,F状态下的脆弱点与P状态的脆弱点反应,使P状态组件表现出脆弱性,完成脆弱性由U,D,F向P的扩散.U,D组件由于异常反应转化率不为0,脆弱态会近一步演化为F状态.

3.2层内脆弱性扩散形式化模型

层内扩散是指同层内组件间脆弱性的扩散.例如,在基础设施层,攻击者可能会尝试将一些恶意的流规则插入到流表中,导致整个安全机制受到损害.此外,大量无用的流规则即流表洪泛攻击,也会引发基础设施层主机无法存贮正常的流规则,导致脆弱性在基础设施层内进行扩散.在控制层,多控制器协同工作时,若网络中存在延迟且得不到妥善处理时,就难以保证转发规则的一致性,进而造成网络面临环路或者冲突.同时,东西向接口的不安全性,使得一些脆弱性在控制器间进行通信时得以迅速扩散.在应用层,由于缺乏身份认证授权等管理,使得非法应用可以接入到网络中,可以避开安全规则的审计.此外,多个应用共享数据流,同时处理一个数据流的时候就会造成规则的冲突,导致脆弱性在应用层内进行扩散.

为便于描述,将基础设施层、控制层、应用层分别记为:Layer_1,Layer_2,Layer_3,即Layer_i∈ {Layer_1,Layer_2,Layer_3}.因此,基于Bio-PEPA定义的层内脆弱性扩散规则描述如下:

[horizon]

1)Connection1_i

U@Layer_i+P@Layer_i→U:P@Layer_i+U@Layer_i;

2)Conversion1_i

U:P@Layer_i→U@Layer_i;

3)Connection2_i

D@Layer_i+P@Layer_i→D:P@Layer_i+D@Layer_i;

4)Conversion2_i

D:P@Layer_i→U@Layer_i;

5)Connection3_i

F@Layer_i+P@Layer_i→F:P@Layer_i+F@Layer_i;

6)Conversion3_i

F:P@Layer_i→U@Layer_i;

7)Detection_i

U@Layer_i→D@Layer_i;

8)Abnormity1_i

U@Layer_i→F@Layer_i;

9)Abnormity2_i

D@Layer_i→F@Layer_i;

10)Mitigation1_i

D@Layer_i→M@Layer_i;

11)Mitigation2_i

F@Layer_i→M@Layer_i;

12)Defect_i

M@Layer_i→P@Layer_i.

上述规则中,Connection1_iConnection2_iConnection3_i描述在基础设施层中,当攻击者攻击基础设施层主机而进入网络,使主机感染脆弱性并表现为U@Layer_1,D@Layer_1或者F@Layer_1状态,进而假冒主机的身份向与之相连的交换机发送数据包,请求与具有潜在脆弱性的表现为P@Layer_1状态的另一主机进行通信,交换机查询自身的流表,并按照流表内的信息进行转发完成被攻击主机与P@Layer_1状态主机的通信,同时脆弱性也通过被攻击主机→交换机→P@Layer_1主机的连接完成了层内扩散过程,使P@Layer_1主机表现为U@Layer_1状态.在控制层中,存在多控制器协同工作的情况,控制器间通信信息对于协同工作十分重要.若一个控制器中引入脆弱性,在多控制器进行通信的过程中脆弱性会在控制层内进行扩散,使其他控制器表现为U@Layer_2.在应用层中,对于嵌套应用而言,外部应用与嵌套应用嵌套连接,共享权限、隐私等信息.当外部应用由于多种原因,被攻击者攻击,而具有脆弱性,脆弱性就会通过共享信息侵入嵌套应用,使嵌套应用表现为U@Layer_3,使脆弱性在应用层内扩散.但是,该扩散过程可能随时由于攻击停止、安全管理策略库的升级而终止.在Connection2_iConnection3_i中,基于脆弱性扩散的过程性与阶段性,D,F组件与P组件连接默认形成U组件,U组件可进一步经过Detection_iAbnormity1_i转换为D组件与F组件.

Detection_i描述在基础设施层,一些安全设备通过流量、IP异常检测等方法及时发现假冒、篡改等脆弱性的存在,组件脆弱性由U@Layer_1转变为D@Layer_1.在控制层,一些新型控制器可以对SDN中的不安全因素进行及时的检测与发现,如:FortNox中的冲突检测算法可以及时检测出由于流规则的不一致性引发的脆弱性问题.基于Netflow的入侵检测方法可以有效地检测到SDN脆弱性,使组件脆弱性由U@Layer_2转变为D@Layer_2.在应用层,一些SDN安全应用可以检测出部分安全问题,使组件脆弱性由U@Layer_3转变为D@Layer_3.

Abnormity1_iAbnormity2_i描述由于脆弱性的持续累积,部分组件出现故障,状态演变为F@Layer_i.

Mitigation1_iMitigation2_i描述由于被检测或演化出故障的组件被发现后,系统会通过打补丁、重配置错误信息,增加异常流规则过滤装置、对异常流规则进行修改、对非法流规则进行丢弃等方式对脆弱组件进行减缓或修复,使组件转变为M@Layer_i状态.

Defect_i描述由于修复操作的不彻底性,如协议自身的安全性、接口标准等不能完全修复因素的存在,导致部分被修复的组件内仍然存在脆弱性,因此,部分M@Layer_i组件仍会转化为P@Layer_i组件.

在层内脆弱性扩散模型中,设每种反应的转化率为rαα为层内扩散.用[P@Layer_i],[U@Layer_i],[D@Layer_i],[F@Layer_i]及[M@Layer_i]分别表示第i层中组件P,U,D,F,M的初始个数.由Bio-PEPA的Mass-Action语义规则,则函数速率分别满足:

fConnection1_i=rConnection1_i×[U@Layer_i
[P@Layer_i];
fConversion1_i=rConversion1_i×[U:P@Layer_i];
fConnection2_i=rConnection2_i×[D@Layer_i
[P@Layer_i];
fConversion2_i=rConversion2_i×[D:P@Layer_i];
fConnection3_i=rConnection3_i×[F@Layer_i
[P@Layer_i];
fConversion3_i=rConversion3_i×[F:P@Layer_i];
fDetection_i=rDetection_i×[U@Layer_i];
fAbnormity1_i=rAbnormity1_i×[U@Layer_i];
fAbnormity2_i=rAbnormity2_i×[D@Layer_i];
fMitigation1_i=rMitigation1_i×[D@Layer_i];
fMitigation2_i=rMitigation2_i×[F@Layer_i];
fDefect_i=rDefect_i×[M@Layer_i].

3.3层间脆弱性扩散形式化模型

脆弱性扩散也会发生在相邻2个垂直层之间,与层内扩散不同的是,层间扩散会将某层内的脆弱性通过南北向接口传播至相邻层的不同类型组件上.同理,基于Bio-PEPA定义的层间脆弱性扩散规则描述如下:

[vertical]

1)Connection1_i_j

P@Layer_i+U@Layer_j→U:P@Layer_i+U@Layer_j

2)Conversion1_i_j

U:P@Layer_i→U@Layer_i

3)Connection2_i_j

P@Layer_i+D@Layer_j→D:P@Layer_i+D@Layer_j

4)Conversion2_i_j

D:P@Layer_i→U@Layer_i

5)Connection3_i_j

P@Layer_i+F@Layer_j→F:P@Layer_i+F@Layer_j

6)Conversion3_i_j

F:P@Layer_i→U@Layer_i.

在vertical系列规则中,Layer_j表示与Layer_i相邻的层.因此,j∈{i+1,i-1}∩{1,2,3}.结合图2及SDN各层间脆弱性扩散原理,对SDN层间扩散规则vertical进行阐述.

Fig. 2 Vulnerability propagation between layers
图2 层间脆弱性扩散

1) 基础设施层→控制层

攻击者首先侵入SDN中的部分主机,使其表现为U@Layer_1,D@Layer_1或者F@Layer_1状态,并通过其向网络中输入恶意请求.如:大量伪造的无效网络流量请求(DoS攻击),从而触发SDN交换机的转发流规则请求操作,导致大量Packet-In流信息同时涌向P@Layer_2状态的控制器.使控制器服务能力达到上限,不能响应正常的流请求,使得控制器服务能力瘫痪,表现为U@Layer_2状态,使脆弱性由基础设施层通过Packet-In信息向控制层进行扩散.

2) 控制层→基础设施层

当攻击者侵入控制器并使其表现为U@Layer_2,D@Layer_2或者F@Layer_2状态时,控制器会产生一些携带脆弱性的非法流规则,并且通过Controller-to-switch信息下发到基础设施层的网络设备.由于基础设施层的网络设备对控制器下发的流规则完全信任,因此,基础设施层的部分设备表现为P@Layer_1状态.网络设备很容易因执行控制器下发的非法流规则而表现出脆弱性,使脆弱性从控制层通过Controller-to-switch信息传播至基础设施层.

3) 控制层→应用层

应用层的应用行为由来自控制器的事件或者外部输入所驱动.当与应用相连的控制器被攻击而表现为U@Layer_2,D@Layer_2或者F@Layer_2状态时,P@Layer_3状态的应用有可能由于控制器上传的非法事件而感染脆弱性,进而表现为U@Layer_3状态,脆弱性由控制层通过非法事件扩散到应用层.

4) 应用层→控制层

在应用层中,恶意的应用程序可以很容易地被开发,已授权的合法应用程序也可能被篡改,从而使某些应用表现为U@Layer_3,D@Layer_3或者F@Layer_3状态.当非法应用程序向控制层的控制器下发流表信息时,应用层的脆弱性就通过流规则与控制器相连,使控制器不能正常工作,将脆弱性由应用层通过非法流规则扩散至控制层.

在层间脆弱性扩散模型中,设每种反应的转化率参数分别为rConnection1_i_jrConnection2_i_jrConnection3_i_j.用[P@Layer_i],[U@Layer_j],[D@Layer_j],[F@Layer_j]分别表示第i层中组件P及第j层中组件U,D,F的初始个数.由Bio-PEPA的Mass-Action语义规则,则此时函数速率分别满足:

fConnection1_i_j=rConnection1_i_j×[P@Layer_i
[U@Layer_j];
fConversion1_i_j=rConversion1_i_j×[U:P@Layer_i];
fConnection2_i_j=rConnection2_i_j×
[P@Layer_i]×[D@Layer_j];
fConversion2_i_j=rConversion2_i_j×[D:P@Layer_i];
fConnection3_i_j=rConnection3_i_j×
[P@Layer_i]×[F@Layer_j];
fConversion3_i_j=rConversion3_i_j×[F:P@Layer_i].

3.4脆弱性扩散模型描述

本文将SDN网络以层为单位,分析了脆弱性在水平(层内)及垂直(层间)2个维度的扩散情况.综合以上层内及层间分析,可将SDN脆弱性扩散状态转移图概括为图3所示:

Fig. 3 State transition diagram of vulnerability propagation
图3 脆弱性扩散状态转移图

基于此,可用Bio-PEPA对状态转换即SDN脆弱性扩散过程进行形式化建模,部分关键描述如下:





U:P@Layer_i;




D:P@Layer_i;




F:P@Layer_i.

在模型组件表述中,组件后面标注的数字代表对应组件的初始数量.具体地,模型组件描述如下:















利用该模型可以对SDN内部各层、层间脆弱性及其在水平、垂直2个维度内的扩散过程进行描述和分析.需要说明的是,在节点有防护的情况下,可以通过增大检测反应转化率或者提高修复反应转化率来实现,进而降低脆弱性在网络中的扩散,表现为脆弱态组件数量减少.另一方面,由于内外条件变化等,脆弱性扩散后在SDN不同层内及层间对其他节点带来的影响具体表现不同,在模型中统一用脆弱态组件的数量进行衡量.

4仿真实验与分析

4.1模型分析

针对本文所构建的脆弱性扩散模型,我们分别对SDN架构中的3个层次进行了层内和层间脆弱性扩散行为的形式化建模与分析.为了进一步准确分析验证本文提出模型的合理性,本文选用Eclipse Bio-PEPA Plugin工具包,分别采用ODEs方法和Gillespie’s Stochastic方法进行测试.本实验设定脆弱性组件总数为一个常数,由3 000个个体组成,3个层内组件数量(P,U,D,F,M)的初始值分别为(1 000,0,0,0,0),(600,300,100,0,0),(1 000,0,0,0,0).观察时间取24个时间单位,模型的参数取值如表1所示,Gillespie’s Stochastic方法选取97个随机点.

Table1MainParameterValuesofModel
表1模型主要参数取值表

ParameterValueParameterValuerConnection1_i0.1rMitigation1_i0.2rConnection2_i0.3rMitigation2_i0.1rConnection3_i0.3rDefect_i0.1rDetection_i0.3rConnection1_i_j0.1rAbnormality1_i0.1rConnection2_i_j0.3rAbnornality2_i0.2rConnection3_i_j0.3

采用Gillespie’s Stochastic算法的脆弱性扩散随机仿真实验和脆弱性扩散的ODE仿真结果分别如图4和图5所示.对比2图可以发现,2种仿真方法脆弱性的扩散趋势及结果大致相同.从图3中可以看出,系统中P组件的数量在反应开始后迅速减少,U,D组件数量迅速上升.这是由于此时系统中P组件数量最多,浓度最大,此时Connection系列反应占主导,迅速消耗P组件,产生U,D,F三种组件.对应于实际SDN网络中脆弱性组件U,D与潜在脆弱性组件P在连接反应的作用下,使脆弱性在SDN网络内迅速扩散.此外,从图3中还可以看出,U@Layer_1,U@Layer_3从0开始增长,P@Layer_1,P@Layer_3从1 000开始下降,说明此时发生了层间脆弱性扩散现象.脆弱性由Layer_2层(控制层)的U@Layer_2,D@Layer_2,F@Layer_2组件向Layer_1层(基础设施层)、Layer_3层(应用层)进行扩散,部分P组件转化为U组件,进而在Layer_1层、Layer_3层内进行层内扩散.U组件数量在0~2个时间单位之间达到峰值并开始出现下降趋势,D组件数量仍在上升.说明此时U组件浓度达到最大,此时Detection反应占据主导,消耗U组件,生成D组件.对应于扩散模型中的Detection过程,脆弱性组件U被检测到脆弱态,进而表现为D状态.D组件数量在2~4个时间单位之间达到峰值并出现下降趋势,F组件数量在8~9个时间单位之间达到峰值并出现下降趋势,而M组件仍处在上升阶段.这是由于在这2个时间点,D,F组件浓度达到最大,Mitigation系列反应占据主导,消耗D,F组件,生成M组件.对应于扩散模型中的Mitigation过程,表现出脆弱性D,F的组件通过一系列修复手段,脆弱性得到缓解,转变为M状态.最终,P,U,D,F,M组件数量趋于稳定,达到一种扩散平衡态.因此,本文基于Bio-PEPA构建的SDN脆弱性扩散形式化模型可以正确反映SDN网络中的脆弱性扩散问题.

Fig. 4 Random simulation results for vulnerability propagation of SDN
图4 SDN脆弱性扩散随机仿真结果

Fig. 5 ODE simulation results for vulnerability propagation of SDN
图5 SDN脆弱性扩散ODE仿真结果

4.2扩散因素分析

通过对扩散机制的分析,本文着重研究连接转化率参数rConnection*、检测反应转化率参数rDetection*、修复反应转化率参数rMitigation*三个因素对SDN网络脆弱性扩散的影响.

1) 潜在态组件数量对脆弱性扩散的影响

Fig. 6 Changes of vulnerable components in SDN
图6 SDN内脆弱态组件变化情况

潜在态组件的存在为SDN内脆弱性的扩散提供了可能,脆弱态组件可通过连接反应,使潜在态组件感染脆弱性,使脆弱性在网络内快速扩散.因此,潜在态组件的数量是影响SDN网络内脆弱性扩散的一个重要因素.针对该因素对脆弱性扩散的影响,本部分实验采用改变基础设施层和应用层内潜在态组件数量的方式,以扩散平衡状态下脆弱态组件的稳态概率作为衡量指标进行实验.试验中基础设施层和应用层内潜在态组件数量分别为1 000,100,10,其他参数不变,运行时间为50个时间单位,SDN网络内脆弱态组件变化情况如图6所示.

此外,保持其他变量不变,使潜在态组件数量在0到1 000之间随机取7个值,计算扩散平衡状态下脆弱态组件的稳态概率,结果如表2所示.由表2可以看出,在SDN内随着基础设施层和应用层潜在态组件的减少,SDN脆弱性扩散平衡状态下脆弱态组件的稳态概率逐渐减小.这是由于潜在态组件数量减少,脆弱态组件不能或者更难寻找到感染的受体,因而脆弱性的扩散受到抑制.因此,可以通过减少潜在态组件的数量来抑制SDN网络内脆弱性的扩散.

Table2Steady-StateProbabilityofVulnerableComponents

表2脆弱态组件稳态概率

Number of PotentialVulnerable ComponentsSteady-StateProbability10000.5075358225000.4883514132500.459524551000.421011957500.400051301250.389101363100.378132346

2) 连接转化率对脆弱性扩散的影响

连接反应扩散方式是层内脆弱性扩散及层间脆弱性扩散的主要反应方式之一,主要由连接转化率参数rConnection*进行控制.层内连接转化率参数rConnection1_irConnection2_irConnection3_i表示层内处于U,D,F状态的组件对P状态组件状态转化的影响,层间连接转化率参数rConnection1_i_jrConnection2_i_jrConnection1_i_j则表示SDN某层内处于U,D,F状态的组件对直接相邻层内P状态组件状态转化的影响.为了分析连接转化率参数rConnection*对脆弱性扩散的影响,下面将以稳态概率作为评估指标,在整个SDN网络层面,考察连接转化率参数rConnection*取值水平对脆弱性扩散的影响.分别对层内及层间连接转化参数从0.1到1之间10等分均匀取值,整个网络范围内稳态概率变化如图7所示.

Fig. 7 The influence of connection conversion rate on SDN vulnerability
图7 连接转化率参数对SDN脆弱性的影响

从图7中可以看出,随着连接转化率参数逐渐增大,SDN网络的脆弱性稳态概率值逐渐增大.这是由于随着连接转化率参数的增大,层内及层间节点交互更为紧密,发生脆弱性传播的几率加大,导致在SDN网络达到平衡状态时,脆弱态组件数量增多.因此,可以得出连接转化率参数与脆弱性扩散速率正相关,因而为了抑制SDN网络内脆弱性的传播需降低连接转化率参数.

3) 检测转化率参数对脆弱性扩散的影响

检测反应可以及时发现SDN网络中存在的U状态组件将其转化成D状态组件,并进行修复等操作,因此检测反应转化率参数对脆弱性扩散有一定影响.本部分实验以检测参数取值0.3为基准,分别取基准值的1/3,1/2,1,2,3倍,即0.1,0.15,0.3,0.6,0.9进行对比试验,采用脆弱性稳态概率作为评估指标,衡量网络的脆弱状况.不同检测参数取值下,SDN网络内脆弱态集合内组件数量情况如图8所示,脆弱性稳态概率如图9所示.

Fig. 8 The influence of detection conversion rate on the number of components in the vulnerable state set
图8 检测转化率参数对脆弱态集合内组件数量的影响

Fig. 9 The influence of detection conversion rate on the steady-state probability of vulnerability
图9 检测转化率参数对脆弱性稳态概率的影响

结合两图可以看出,随着检测转化率参数的增大,脆弱态集合内组件数量和呈下降趋势.这是由于随着检测转化率参数的增大,更多的U状态组件可被检测出脆弱性进而转化为D状态组件,D状态组件又经Mitigation反应转变为M状态组件,也就是说组件状态经历了U→D→M的过程,进而迁移出脆弱态集合,使脆弱态集合内组件数量减少,使SDN脆弱性降低.因而,可以通过增大检测转化率参数来抑制脆弱性扩散.

4) 修复转化率参数对脆弱性扩散的影响

SDN网络内部,修复能力的存在可以有效地降低系统内D,F组件的数量,缓解网络的脆弱性.本部分实验以稳态概率作为SDN脆弱性的衡量指标,对修复转化率参数rMitigation1*rMitigation2*在[0,1]之间每0.1间隔随机取值,其他参数完全相同.通过对比实验,研究修复转化率参数对SDN网络内脆弱性扩散的影响,实验结果如图10所示:

Fig. 10 The influence of repairing conversion rate on SDN vulnerability
图10 修复转化率参数对SDN脆弱性的影响

从图10中可以看出,随着修复转化率参数的增大,稳态概率值逐渐变小,说明此时,网络内脆弱态集合内组件总数量逐渐变小,SDN网络脆弱性降低.同时,观察左右2个侧面图,我们可以发现rMitigation2*对网络脆弱性的扩散影响较大,即脆弱性在不同脆弱态组件间的扩散具有差异性.这是由于在脆弱性状态循环中,如图3所示,当rMitigation1*较小时,部分D状态组件还可以通过Mitigation2*系列反应转化为F状态组件,F状态组件经过Mitigation2*系列反应转变为M组件,从而迁出脆弱态集合;当rMitigation2*较小时,F状态组件没有其他反应途径进行状态转化,导致大量的F组件滞留在脆弱态集合中,无法转化为非脆弱态的组件,使网络脆弱性较高.因此,可以得出修复转化率参数与脆弱性扩散速率负相关,因而为了抑制SDN网络内脆弱性的传播需提高修复转化率参数,尤其是Mitigation2*转化率参数.

综合以上分析,可以看出本文构建的形式化模型对SDN脆弱性扩散状态间的逻辑关系及动态变化具有较强的描述能力,且与仿真分析结果基本相符,能够正确地反映出不同条件下SDN脆弱性的变化趋势.可以通过降低连接转化率,提升检测转化率及修复转化率等措施抑制SDN脆弱性的扩散.具体地,针对SDN存在的可能脆弱点,可以通过设计面向SDN的可靠控制器,制定授权认证及安全约束,扩展安全通信协议,采用连接迁移、流量迁移、执行触发、主动流规则检测与分析、拟态防御、应用隔离及弹性策略、容错机制、探测防御、安全加固等技术与防御方法,多维度提高 SDN安全性.

5

本文采用Bio-PEPA对SDN网络的脆弱性扩散问题进行了形式化建模,针对SDN具有明显分层的网络架构,分别就水平垂直2个维度内的脆弱性的扩散的本质问题进行了研究.本文对构建的Bio-PEPA形式化模型分别采用ODEs方法和Gillespie’s Stochastic方法进行了测试,实验结果基本相符,反映本文所构建SDN脆弱性模型的合理性.此外,本文还对影响SDN脆弱性扩散的因素进行了分析,通过仿真实验证明,潜在态组件数量、连接转化率参数、检测转化率参数、修复转化率参数都对SDN脆弱性的扩散具有影响,因此,本文对SDN网络的构建具有一定指导性意义.在下一步研究工作中,将面向SDN的可扩展性,对其脆弱性扩散模型展开深入研究.

参考文献

[1]Feamster N, Rexford J, Zegura E. The road to SDN: An intellectual history of programmable networks[J]. ACM SIGCOMM Computer Communication Review, 2014, 44(2): 87-98

[2]Kreutz D, Ramos F, Verissimo P. Towards secure and dependable software-defined networks[C] //Proc of ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking. New York: ACM, 2013: 55-60

[3]Porras P, Cheung S, Fong M, et al. Securing the software-defined network control layer[C] //Proc of the Annual Network and Distributed System Security Symposium. San Diego: Internet Society, 2015: 1-15

[4]Gao Shang, Li Zecheng, Xiao Bin, et al. Security threats in the data plane of software-defined networks[J]. IEEE Network, 2018, 32(4): 108-113

[5]Suh M, Park S H, Lee B, et al. Building firewall over the software-defined network controller[C] //Proc of the 16th Int Conf on Advanced Communication Technology. Piscataway, NJ: IEEE, 2014: 744-748

[6]Chi Yaping, Jiang Tingting, Dai Chuping, et al. Design and implementation of cloud platform intrusion prevention system based on software defined network[J]. Journal of Computer Applications, 2017, 37(6): 1625-1629 (in Chinese)

(池亚平, 姜停停, 戴楚屏, 等. 基于软件定义网络的云平台入侵防御方案设计与实现[J]. 计算机应用, 2017, 37(6): 1625-1629)

[7]Wang Xiulei, Chen Ming, Xing Changyou, et al. Software defined security networking mechanism against DDoS attacks[J]. Journal of Software, 2016, 27(12): 3104-3119 (in Chinese)

(王秀磊, 陈鸣, 邢长友, 等. 一种防御DDoS攻击的软件定义安全网络机制[J]. 软件学报, 2016, 27(12): 3104-3119)

[8]He Heng, Hu Yan, Zheng Lianghan, et al. Efficient DDoS attack detection and prevention scheme based on SDN in cloud environment[J]. Journal on Communications, 2018, 39(4): 139-151 (in Chinese)

(何亨, 胡艳, 郑良汉, 等. 云环境中基于 SDN的高效DDoS攻击检测与防御方案[J]. 通信学报, 2018, 39(4): 139-151)

[9]Lim S, Ha J, Kim H, et al. A SDN-oriented DDoS blocking scheme for botnet-based attacks[C] //Proc of the 6th Int Conf on Ubiquitous and Future Networks. Piscataway, NJ: IEEE, 2014: 63-68

[10]Wang Bing, Zheng Yao, Lou Wenjing, et al. DDoS attack protection in the era of cloud computing and software-defined networking[J]. Computer Networks, 2015, 81(C): 308-319

[11]Alsmadi I, Xu Dianxiang. Security of software defined networks: A survey[J]. Computers & Security, 2015, 53(C): 79-108

[12]Li Wenjuan, Meng Weizhi, Kwok L F. A survey on openflow-based software defined networks: Security challenges and countermeasures[J]. Journal of Network and Computer Applications, 2016, 68: 126-139

[13]Shin S, Gu Guofei. Attacking software-defined networks: A first feasibility study[C] //Proc of the 2nd ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking. New York: ACM, 2013:165-166

[14]Yang Yunfei. SDN flow table update method based on consistency of application layer policy conversion[D]. Nanjing: Nanjing University of Posts and Telecommunications, 2015 (in Chinese)

(杨云飞. 基于应用层策略转换一致性的SDN流表更新方法[D]. 南京: 南京邮电大学, 2015)

[15]Qin Kuangyu, Huang Chuanhe, Wang Caihua, et al. Balanced multiple controllers placement with latency and capacity bound in software-defined network[J]. Journal on Communications, 2016, 37(11): 90-103 (in Chinese)

(覃匡宇,黄传河,王才华, 等. SDN网络中受时延和容量限制的多控制器均衡部署[J]. 通信学报, 2016, 37(11): 90-103)

[16]Duan Jie, Gao Jiangming, Cheng Kefei, et al. Failure recovery algorithm based on flow type in SDN data plane[J]. Journal of Chongqing University of Posts and Telecommuni-cations, 2018, 30(1): 134-140 (in Chinese)

(段洁, 高江明, 程克非, 等. 基于流类型的SDN数据平面故障恢复算法[J]. 重庆邮电大学学报, 2018, 30(1): 134-140)

[17]Hu Fei, Hao Qi, Bao Ke. A survey on software-defined network and openflow: From concept to implementation[J]. IEEE Communications Surveys & Tutorials, 2014, 16(4): 2181-2206

[18]Oktian Y E, Lee S G, Lee H J, et al. Secure your northbound SDN API[C] //Proc of the 7th Int Conf on Ubiquitous and Future Networks. Piscataway, NJ: IEEE, 2015: 919-920

[19]Yeganeh S H, Tootoonchian A, Ganjali Y. On scalability of software-defined networking[J]. Communications Magazine, 2013, 51(2): 136-141

[20]Nunes B A A, Mendonca M, Nguyen X, et al. A survey of software-defined networking: Past, present, and future of programmable networks[J]. IEEE Communications Surveys & Tutorials, 2014, 16(3): 1617-1634

[21]Zhang Chaokun, Cui Yong, Tang Heyi, et al. State-of-the-art survey on software-defined networking (SDN)[J]. Journal of Software, 2015, 26(1): 62-81 (in Chinese)

(张朝昆, 崔勇, 唐翯祎, 等. 软件定义网络(SDN)研究进展[J]. 软件学报, 2015, 26(1): 62-81)

[22]Akhunzada A, Gani A, Anuar N B, et al. Secure and dependable software defined networks[J]. Journal of Network and Computer Applications, 2016, 61(C): 199-221

[23]Zhou Ye, Yang Xu, Li Yong, et al. Classification based consistent flow update scheme in software defined network[J]. Journal of Electronics & Information Technology, 2013, 35(7): 1746-1752 (in Chinese)

(周烨, 杨旭, 李勇, 等. 基于分类的软件定义网络流表更新一致性方案[J]. 电子与信息学报, 2013, 35(7): 1746-1752)

[24]Matias J, Garay J, Mendiola A, et al. FlowNAC: flow-based network access control[C] //Proc of the 3rd European Workshop on Software Defined Networks. Piscataway, NJ: IEEE, 2014: 79-84

[25]Ciocchetta F, Hillston J. Bio-PEPA: A framework for the modeling and analysis of biological systems[J]. Theoretical Computer Science, 2009, 410(33): 3065-3084

FormalModelingandFactorAnalysisforVulnerabilityPropagationOrientedtoSDN

Wang Jian1, Zhao Guosheng2, Zhao Zhongnan1, and Li Ke1

1(CollegeofComputerScienceandTechnology,HarbinUniversityofScienceandTechnology,Harbin150080)2(CollegeofComputerScienceandInformationEngineering,HarbinNormalUniversity,Harbin150025)

AbstractSoftware defined network (SDN) is one of the most popular network technologies nowadays. SDN decouples the traditional control plane from the forwarding plane, resulting in many new security and management issues while performing centralized control. Meanwhile, the types of vulnerabilities are diverse in each layer and north-south trending interfaces of SDN, and the spread trend is quite different. Aiming at the effect of vulnerability propagation in/between layers of SDN as well as its suppression strategy, a formal model of vulnerability propagation for SDN based on Bio-PEPA is proposed in this paper. First of all, the basic syntax of Bio-PEPA is discussed, and its applicability to SDN with obvious hierarchical structure and the vulnerability propagation process with dynamic characteristic is illustrated. Then, the vulnerabilities existing in each layer of SDN are explored and modeled in terms of layers. Besides, by constructing a formal model for the process of vulnerability propagation in/between layers of SDN, the mechanism of vulnerability propagation is analyzed in two levels, horizontal (in layers) and vertical (between layers). In this way, the vulnerability propagation of SDN can be better suppressed. Finally, the simulation results show that the vulnerability propagation of SDN can be effectively retained by reducing the connection conversion rate, improving the detection conversion rate and repairing conversion rate. Our works provide a reference for the law of vulnerability propagation of SDN, so as to improve the security of SDN.

Keywordssoftware defined network (SDN); Bio-PEPA; formal modeling; vulnerability propagation; suppression strategy

This work was supported by the National Natural Science Foundation of China (61403109, 61202458), the Specialized Research Fund for the Doctoral Program of Higher Education of China (20112303120007), the Natural Science Foundation of Heilongjiang Province (F2017021), the Scientific Research Fund of Heilongjiang Provincial Education Department (12541169), and the Specialized Research Fund for Scientific and Technological Innovation Talents of Harbin (2016RAQXJ036).

基金项目国家自然科学基金项目(61403109, 61202458);高等学校博士学科点专项科研基金项目(20112303120007);黑龙江省自然科学基金项目(F2017021);黑龙江省教育厅科研基金项目(12541169);哈尔滨市科技创新人才研究专项资金项目(2016RAQXJ036)

修回日期:2018-08-03

收稿日期2018-06-07;

中图法分类号TP393

(wangjianlydia@163.com)

WangJian, born in 1979. PhD, associate professor and master supervisor. Member of CCF. Her main research interests include SDN, survivability, cognitive network and crowd sensing.

ZhaoGuosheng, born in 1977. PhD, professor, and master supervisor. Senior member of CCF. His main research interests include survivability, SDN, and trusted computing. (zgswj@163.com)

ZhaoZhongnan, born in 1978. PhD, lecturer. Member of CCF. His main research interests include security situation awareness, and fault-tolerance (piconet@126.com).

LiKe, born in 1993. Master candidate. Student member of CCF. Her main research interests include security situation awareness and cognitive computing (1736819170@qq.com).