计算机应用   2017, Vol. 37 Issue (11): 3304-3310  DOI: 10.11772/j.issn.1001-9081.2017.11.3304
0

引用本文 

顾泽宇, 张兴明, 林森杰. 基于安全策略的负载感知动态调度机制[J]. 计算机应用, 2017, 37(11): 3304-3310.DOI: 10.11772/j.issn.1001-9081.2017.11.3304.
GU Zeyu, ZHANG Xingming, LIN Senjie. Load-aware dynamic scheduling mechanism based on security strategies[J]. Journal of Computer Applications, 2017, 37(11): 3304-3310. DOI: 10.11772/j.issn.1001-9081.2017.11.3304.

基金项目

国家自然科学基金资助项目(61572520,61521003);上海市科研计划项目(14DZ1104800)

通信作者

顾泽宇, E-mail:guzeyu2012@163.com

作者简介

顾泽宇(1993-), 男, 辽宁沈阳人, 硕士研究生, 主要研究方向:网络安全、网络主动防御;
张兴明(1963-), 男, 河南新乡人, 教授, 博士, 主要研究方向:交换及拟态技术、拟态安全;
林森杰(1992-), 男, 广东汕头人, 硕士研究生, 主要研究方向:拟态安全

文章历史

收稿日期:2017-05-16
修回日期:2017-06-30
基于安全策略的负载感知动态调度机制
顾泽宇, 张兴明, 林森杰    
国家数字交换系统工程技术研究中心, 郑州 450002
摘要: 针对软件定义网络(SDN)网络控制器流规则篡改攻击等单点脆弱性威胁,传统安全解决方案如备份、容错机制等存在被动防御缺陷,无法从根本上解决控制层安全问题。结合目前移动目标防御、网络空间拟态防御等主动防御技术研究现状,提出一种基于异构冗余结构的动态安全调度机制。建立控制器执行体与调度体调度模型,根据系统攻击异常、异构度等指标,以安全性为原则设计动态调度策略;同时考虑系统负载因素,通过设计调度算法LA-SSA将调度问题转化为动态双目标优化问题,以实现优化的调度方案。仿真结果表明,对比静态结构,动态调度机制在累积异常值、输出安全率等指标上有明显优势,说明安全调度机制中的动态性与多样性能够显著提高系统抵御攻击能力,LA-SSA机制负载方差较安全优先调度更平稳,在实现安全调度的同时避免了负载失衡问题,验证了安全调度机制的有效性。
关键词: 单点脆弱性    主动防御技术    动态调度机制    安全策略    负载感知    
Load-aware dynamic scheduling mechanism based on security strategies
GU Zeyu, ZHANG Xingming, LIN Senjie     
National Digital Switching System Engineering & Technological R & D Center, Zhengzhou Henan 450002, China
Abstract: Concerning the flow rule tampering attacks and other single point vulnerability threats towards Software Defined Network (SDN) controller, traditional security solutions such as backup and fault-tolerant mechanisms which are based on passive defense defects, cannot fundamentally solve the control layer security issues. Combined with the current moving target defense and cyberspace mimic defense, a dynamic security scheduling mechanism based on heterogeneous redundant structure was proposed. A controller scheduling model was established in which the dynamic scheduling strategy was designed based on security principle combined with attack exception and heterogeneity. By considering the system load, the scheduling problem was transformed into a dynamic two-objective optimization problem by LA-SSA (Load-Aware Security Scheduling Algorithm) to achieve an optimal scheduling scheme. Simulation results show that compared with static structure, the dynamic scheduling mechanism has obvious advantages in cumulative number of exceptions and output safety rate, and the dynamic and diversity in the security scheduling mechanism can significantly improve the system's ability to resist attacks.The load variance of LA-SSA is more stable than that of safety priority scheduling, and the security imbalance is avoided, and the effectiveness of the security scheduling mechanism is verified.
Key words: single point vulnerability    active defense technology    dynamic scheduling mechanism    security strategy    load-awareness    
0 引言

近年来,网络安全受到越来越多的重视。一方面,传统网络安全手段,像防火墙、网络入侵检测系统(Network Intrusion Detection System, NIDS)等,多基于已知的攻击行为建立特征库进行匹配,以阻止或检测当前正在发生的恶意攻击或未授权行为。对于未知恶意代码、0-day攻击、系统陷门等攻击方式,传统方法尚不能进行有效防御。另一方面,网络安全领域中的攻击与防御是极其不对称的。攻击者能够以较少的资源开销对目标系统进行探测、提权以及控制等攻击行为,相反,防御方为弥补系统不安全因素需要付出昂贵的代价。同时,基于现有开发模式下的软件、操作系统以及驱动程序等无法完全避免设计缺陷或者漏洞的存在,为攻击者提供了必要的攻击条件。综上,网络安全形势不容乐观。

为彻底改变这一被动的网络安全局面,国内外安全领域的相关研究者提出诸多主动防御新思路,其中在国外的相关研究中具有代表性的是美国提出的移动目标防御(Moving Target Defense, MTD)思想。MTD通过随机化、多样性等技术,动态地改变系统的相关属性以达到增加攻击复杂度的目的,这些属性包括系统平台参数、网络配置、运行时环境、软件和数据等。国内学者提出网络拟态防御(Cyber Mimic Defense, CMD)思想,认为网络攻击事件的本质在于系统漏洞、缺陷的存在必然性以及系统的静态与确定性为攻击者的探测与利用创造了条件,针对未知病毒、漏洞等不确定威胁,基于动态异构冗余原理以及“去协同化”的多模裁决与动态重构机制,可以非线性地提高攻击者攻击难度[3]

本文受软件定义网络(Software Defined Network, SDN)中控制器威胁模型[4-5]启发,在针对控制器的网络攻击中,攻击者通过控制网络操作系统实现对控制网域内网络数据流的恶意操纵,如典型的流规则篡改攻击,攻击者通过控制控制器产生非法的流规则,将网络数据流按指定路线通行,从而绕过安全设备的检测,这种攻击将造成极其严重的后果。在现有针对控制层安全的相关研究中,文献[5]提出应通过备份、多样性、自清洗与动态互连等技术提高控制层安全性能。传统方案如入侵检测、安全与控制分离思想[6]以及备份机制[7-8]仅仅考虑系统良性故障,对恶意的流行为以及洪泛攻击、拒绝服务(Denial of Service, DoS)攻击有效,但无法解决控制器被恶意控制的问题;基于入侵容忍[9]与容错的多控制器架构[10-12]能够通过冗余属性检测恶意节点,大幅提高安全性,但其本质仍为静态结构;而其他控制器动态分配机制的相关研究[10-11]未考虑安全问题。目前,相关研究[15-16]将移动目标防御思想应用于SDN控制器安全防御中:文献[15]利用控制器对当前网络状态进行抽象,通过适配引擎以规律的时间间隔进行随机网络调整,并获取实时数据评估攻击行为;文献[16]针对MT6D(Moving Target IPv6 Defense)[17]无法应用于单端可跳变数据链路的问题,提出一种基于主机的防御方式以抵御针对SDN控制器的恶意侦测行为。基于MTD的解决方案多针对攻击者的信息嗅探行为,即攻击链的第一阶段[17],无法有效防御节点受控后的恶意行为,系统属性动态性多依赖于跳变图案,在系统性能、扩展性等方面仍存在诸多局限。文献[18-19]结合拟态防御思想,提出一种异构冗余控制器架构模型,引入调度层实现决策表决与调度机制,大幅提高数据输出可靠性,同时证实了动态因素的引入非线性地增加了攻击者攻击难度。实际上,现阶段对安全架构的研究集中于从系统工程角度出发,而通过有效的策略实现动态系统的优化部署能够更大限度地提高系统目标性能。本文在现有安全机制研究的基础上,基于控制器动态异构冗余架构[18],提出基于安全性能的动态调度模型,通过系统安全阈值与异构度确定多种动态调度策略,并在考虑系统计算性能即负载因素的情况下,将调度问题转化为动态优化问题,并给出适应性调度算法LA-SSA(Load-Aware Security Scheduling Algorithm)实现调度体选择,在优化系统安全系数的动态过程中避免负载失衡的影响。最后,对包括LA-SSA在内的多种调度策略性能进行了仿真评估与对比分析。通过综合多因素的安全调度机制是一种新的尝试,为网络主动防御技术研究提供了新的数学模型与解决思路。

1 系统架构模型

与文献[18]类似,本文基于拟态防御思想, 即动态异构冗余(Dynamic Heterogeneous Redundancy, DHR)模型[3],其本质为多控制器架构类型,多个控制器服务器实现对一个交换机客户端协同控制,其中,系统整体框架如图 1所示(虚连接线为调度连接)。系统关键模块包括以下几个部分:

图 1 系统架构模型 Figure 1 System architecture model

控制层  控制层基于异构冗余结构,即针对一个确定的交换机客户端,存在多个控制器执行体进行协同控制,执行体间存在不同级别的异构度。

服务代理中间件  实现交换机数据请求的同步分发,将来自冗余控制器的处理结果进行表决后输出至交换机。代理中间件同时实现执行体安全检测,触发调度功能。

拟态调度器  调度器完成执行体与调度体的调度。根据服务代理反馈信息执行调度算法,实现执行体集元素的重选择,其实现机制如图 2

图 2 拟态DHR实现机制 Figure 2 DHR implementation mechanism of CMD

本文架构模型中,异构冗余执行体的协同控制与一致性表决确保少数节点被控制情况下的系统输出正确性,即攻击者通过攻击实现网络行为控制,如流规则篡改攻击,需要控制执行体集群中的大多数节点,即被控制节点数η≥(N+1)/2,N为执行体集规模,而异构属性降低了节点间存在相同脆弱点的概率,减少了协同攻击可能性,而异常节点将会被检测。通过调度机制提供安全防御中系统动态性与多样性,以进一步增加攻击者攻击难度。然而,不同的调度策略所带来的安全增益不同;同时,考虑实际应用场景,最大化安全性能的调度并不是没有限制的,在调度过程中需要考虑的一个最重要的因素即系统的计算性能,在本模型中基于安全性单因素可能造成调度体过于集中,从而导致负载过大。调度算法的设计在于感知系统性能因素下实现优化的安全调度。

2 威胁模型

威胁模型的建立依赖于网络应用环境、攻击类型等多种因素。对于本文而言,针对SDN控制层的威胁模型具备针对网络安全大多数研究的普遍性,控制器与交换机间的工作模式在一定程度上可以看作服务器与客户端模式,OpenFlow交换机作为客户端向控制器提交数据请求,控制器又作为服务端将数据处理结果下发给交换机;同时对于控制器而言同样存在针对其资源与功能的攻击类型。另一方面,相对传统网络攻击而言,这种威胁模型存在一定的特殊性,考虑工作模式的差异,控制器与交换机间的数据通信不能完全等价于传统C/S模式。

模型假设  威胁模型针对由0-day威胁以及未知病毒、系统漏洞、后门等引发的功能型攻击,即攻击造成系统输出错误、系统异常或者按照攻击者意图对输出数据的恶意更改等,如典型的流规则篡改攻击(图 3所示);处于正常工作状态的控制器(这里指输出结果正常)并非绝对安全,即存在一定的概率处于攻击者控制之下;导致控制器输出异常的因素中不考虑非攻击因素,如环境等原因导致的系统崩溃;不考虑资源耗尽型攻击,如DoS、分布式拒绝服务(Distributed Denial of Service, DDoS)等。

图 3 流规则篡改攻击 Figure 3 Flow rule tampering attack

基于以上假设,定义本文所针对的威胁模型为:SDN中,攻击者通过攻击OpenFlow控制器系统实现对某一个或多个控制器的控制,攻击者实现攻击成功之后能够进行恶意的修改操作,即对控制器输出结果进行任意修改或使其不产生数据输出;对于多控制器架构模型而言,攻击者能够通过进一步的渗透实现同一控制器集间的攻击感染,直观地讲,异构度较低的系统间实现攻击感染的可能性更高。

3 安全模型建立与调度算法

本章针对威胁模型分析影响安全调度机制中的几个关键因素,建立调度问题优化模型,最后给出负载感知安全调度算法LA-SSA及其复杂度分析。

3.1 安全调度问题分析

结合上文威胁模型,本节给出安全调度模型中几个关键问题分析。

定义1  执行体集。CeS={Ce1, Ce2, …, Cem}。对于一个客户端即OpenFlow交换机S,由多个功能相同但存在存在异构性的执行体Cei所构成的集合。针对一个OpenFlow交换机Si而言其执行体集元素具有完全相同的网络状态与控制视图。执行体集CeS输出经过多数判决得到一致性表决结果,客户端即OpenFlow交换机Si所接收的输出响应为执行体集CeS判决后的输出。

定义2  调度体集。CsS={Cs1, Cs2, …, Csn}。对于一个客户端即OpenFlow交换机S,存在可供动态调度的控制器空间。类似于备份控制器选择策略,调度体空间规模的确定取决于OpenFlow交换机安全需求Se

通过提高异构度以增加攻击者的攻击难度是网络安全防御的一种重要手段,在多控制器架构中,定义系统异构度的方式包括多个层面,如硬件架构层、操作系统层、编程语言层等。考虑SDN控制层安全威胁模型,对于控制权限型攻击者,目标系统的可利用攻击面依赖于攻击代码与其核心代码层匹配度以及系统层存储空间的访问方式。系统内核代码相似度是描述不同操作系统类型异构程度的一种异构指标量化参数,通过MOSS(Measures Of Software Similarity)工具计算以下几种基于Linux的不同操作系统内核代码相似度[20]可以得到相似值矩阵M:

$ \begin{align} &\mathit{\boldsymbol{M}}\{CentOS, Fedora, Debian, Gentoo, FreeBSD\}= \\ &\left[\begin{matrix} 1.0&0.6645&0.8067&0.6973&0.0368 \\ 0.6645&1.0&0.5928&0.8658&0.0324 \\ 0.8067&0.5928&1.0&0.6202&0.0385 \\ 0.6973&0.8658&0.6202&1.0&0.0330 \\ 0.0368&0.0324&0.0385&0.0330&1.0 \\ \end{matrix} \right] \\ \end{align} $

因此,采用相似度参数δ描述系统间异构程度,那么系统异构程度越大,δ值越小,且δ∈(0, 1]。

定义3  攻击概率模型。根据网络攻击模式不同,可以将攻击者分为静态攻击者(static attacker)与适应型攻击者(adaptive attacker)。静态攻击者无记忆能力,针对目标的每次攻击成功概率相同;适应型攻击者存在记忆能力,能够对相同或相近的目标实施快速攻击。为便于分析,本模型不考虑适应型攻击者类型。直观地讲,异构冗余模型中异构程度越大的系统其相应攻击成功概率越低。本文通过常用的凹形指数函数描述攻击者攻击概率密度函数[22],即:

$ v({{C}_{ei}}, t)=\lambda\ \exp (-\lambda t) $ (1)

攻击者攻击执行时间越长,其成功概率越大,那么攻击成功概率为:

$ p(v({{C}_{ei}}, t))=\int{v({{C}_{ei}}, t)}\text{d}t $ (2)

由凹函数性质,攻击成功概率随时间增长趋近于1。

对于一个执行体集而言,在前文所描述的威胁模型下,由于各个执行体间功能等价但存在一定的异构度δ,攻击者针对有限的系统资源(攻击面)进行网络攻击,势必造成针对不同执行体间攻击成功概率的差异性。这种差异一定程度上取决于执行体间的异构度,而通过攻击成功概率或者单纯地将执行体异构度作为评判一个执行体,即OpenFlow控制器安全性能的标准是片面、非量化的。基于前文中威胁模型的假设,考虑在执行体集工作过程中,客户端接收的响应结果取决但不完全取决于单个执行体输出结果,那么在一次数据请求的处理过程中,网络攻击所造成的某个或多个执行体输出异常能够被拟态判决感知,因此针对执行体即OpenFlow控制器Cei而言,其在当前时间段τ、执行体集CeS中的输出异常次数反映了控制器Cei在执行体集中当前的安全系数。因此,本文考虑离散时间模型下,执行体集中针对某一执行体的攻击是随机的,即认为初始时刻攻击者选择的攻击目标是随机的,且满足各执行体间发生被攻击事件相互独立,任意时刻发生被攻击成功事件的概率很小,为p(v(Cei, t)),而在动态的调度过程中,当前时刻执行体被攻击成功的概率与调度体异构度有关,直观地讲,异构度越大,被攻击成功的概率越小。同时每一个执行体在确定的时间间隔内所遭受的攻击(产生输出异常)次数是可确定的。综上,本文定义当前时间执行体i因攻击而产生系统异常累积次数为:

$ E{{(t)}_{i}}=\theta p(v({{C}_{ei}}, t))\tau \delta $ (3)

其中:θ为折扣因子,τ为当前时刻t的时间间隔。一旦攻击者针对某一执行体的攻击成功,那么该执行体所产生的异常次数随时间线性增长。本文定义执行体集安全系数模型为:对于集合CeSi中的任意元素Cei,当前时间段τCei的安全系数为:

$ \zeta {{(t)}_{i}}=\exp (-\alpha {E}'{{(t)}_{i}}) $ (4)

其中:α为折扣因子,即执行体异常次数没有变化时其安全系数为1,且安全系数随异常累积次数增长速率非线性负相关。

3.2 调度策略

调度策略包括执行体集与调度体集间的相互调度,即调入策略与调出策略:

对于执行体集C中的任意执行体c,通过其安全系数判断是否满足调度条件。当单个执行体安全系数超出既定阈值γ时,即满足调度条件,执行调出策略,将其移出执行体集,即:

$ C_{\rm{out}}^{i}=\arg E{{(t)}_{i}}\ge \gamma $ (5)

另一方面,在实际网络场景中考虑攻击感染的情况下,当执行体集中各执行体间异构度较低(如系统初始化的一段时间内)时,存在多个执行体被攻击控制的可能,为保证系统输出的正确性,需要对多个满足调出条件的执行体执行调出策略。

调入策略的执行紧接在调出策略之后,通过选择调度体集中的元素调入执行体集。对于被调出的执行体Cei,调入执行体需要考虑以下几种策略选择条件:

1) 异构度。基于威胁模型假设,执行体安全系数的降低归因于攻击者的攻击与控制,那么执行调入策略时,考虑尽可能地提高调入执行体与调出执行体间异构度以最大化攻击者攻击难度,即:

$ C_{\rm{in-h}}^{j}=\underset{j}{\mathop{\arg \max }}\, \delta (C_{\rm{in-h}}^{j}, C_{\rm{out}}^{i}) $ (6)

其中:in-h表示基于异构度因素的调入策略。结合动态异构冗余(Dynamical Heterogeneous Redundancy, DHR)的安全思想,基于异构的调度策略目的在于通过系统调度对攻击者呈现系统的不确定性,以提高整体安全度。根据威胁模型以及多控制器安全架构,针对一个服务客户端即OpenFlow交换机所对应控制器集的安全性能度量依赖于该控制器集整体的安全性,通过执行体异常度刻画当前执行体集安全系数为:

$ \zeta ({{C}_{e}}S, t)=\frac{1}{m}\sum\limits_{i\in {{C}_{e}}S}{\zeta {{(t)}_{i}}} $ (7)

2) 负载因素。基于当前多控制器架构模型与网域拓扑,一个确定的交换机对其执行体集所产生的处理负载是等量的,而负载失衡的一个重要原因产生于调度策略造成的交换机迁移,使得单个控制器控制较多的交换机而引起数据处理负载过重。为避免异构度原则调度所导致的控制器集负载失衡严重的问题,根据当前负载低者优先原则对调度体集中控制器形成调度优先权排序,即:

$ C_{\rm{in-l}}^{j}=\underset{j}{\mathop{\arg \min }}\, load\left( {{C}_{s}}{{S}_{i}} \right) $ (8)

其中:in-l表示基于负载因素的调入策略; load为衡量调度体集的负载因素,抽象为输入一个调度体集,输出集合中元素负载值。考虑负载因素的调度策略目的在于尽可能地避免基于安全调度或其他情形下交换机迁移造成单个控制器负载过重影响,以达到调度体集负载均衡,其目标函数可以通过当前时间段内调度体集负载方差描述,即:

$ l({{C}_{s}}S, t)=\frac{1}{n}\sum\limits_{j\in {{C}_{s}}S}{{{(l{{(t)}_{j}}-\overline{l(t)})}^{2}}} $ (9)

对于当前执行体集及调度体集,根据以上调度策略对两个集合中的元素进行调度,实现考虑控制器负载均衡下的安全性能最大化。调度问题可以描述为目标函数为安全性能与负载均衡的动态双目标优化问题,安全性能指标依赖于对执行体集中执行体的安全系数的评估,即:

$ \begin{gathered} \;\;\;\;\;\left\{ \begin{gathered} \max \zeta ({C_e}S, t) \hfill \\ \min l({C_s}S, t) \hfill \\ \end{gathered} \right. \hfill \\ {\rm{s}}{\rm{.t}}{\rm{.}}\;(3)(4)(7)(8)(9) \hfill \\ \end{gathered} $ (10)
3.3 调度算法

本节介绍负载感知安全调度算法LA-SSA。算法LA-SSA Ⅰ中,首先根据异常次数统计对执行体集元素进行排序(第1)行),排序方式为降序;选择一场次数超出系统安全阈值的执行体元素作为当前时间调出元素;然后针对当前调出执行体元素,计算调度体集中元素相对该调出执行体异构度(第4)行);执行算法Ⅱ(第7)行);输出结果确定调入的调度体元素,执行调入策略。至此整个调度算法结束。

算法Ⅰ LA-SSA Ⅰ。

Begin:

Input:执行体集CeS, E(t)i, 调度体集CsS;

Output: δi & load(t)i to LA-SSA Ⅱ;

1) Perform sorting according to ↓E(t)i and calculate ranks;

2) while (E(t)iγ)

3)   for i=1: |CsS|

4)       calculate δi & load(t)i;

5)   endfor

6) endwhile

7) perform LA-SSA Ⅱ and update

8) end

算法LA-SSA Ⅱ是基于非支配排序算法(Non-dominated sorting algorithm)的一种双目标优化算法。算法的主要流程为在当前时间t,首先对调度体集合个体进行预排序(第1)行),排序按照δ升序排序,当该值相同时按照负载函数升序排序,预排序结果列入解集构造集(第2)行);每次采取前向比较的方式进行非支配前沿分层,即每次迭代时,如果当前个体优于前一个个体,则将其列入当前非支配前沿(第12)行);否则列入被支配集(第10)行),直到执行个体数达到调度体集合规模;算法输出为非支配前沿集,即优化后的目标调度体。

算法Ⅱ LA-SSA Ⅱ。

Begin:

Input:调度体集CsS, N(|CsS|), δi, load(t)i, Fi=∅(输出方案前沿集);

1)    Perform non-dominate sorting and calculate ranks

2)    L=presort (CsS);

3)    i=1;

4)    count=0;

5)    while (count < N)

6)       Fi={L[0]};           /*首个体列入非支配集*/

7)       Q=∅;                    /*暂存被支配个体*/

8)       for j=1:L.size( )

9)          if (L[pre]$ \prec $L[j])

10)           Q=QL[j];

11)         else {

12)           Fi=FiL[j];

13)           count=count+1;

14)         endif

15)   endfor

16)   i=i+1;

17)   L=Q;

18) endwhile

19) return Fi

20) end

3.4 算法复杂度分析

假设控制器执行体集规模为M,调度体集规模为N,下面进行算法时间复杂度分析。

LA-SSA Ⅰ首先执行执行体集异常统计排序,采用快速排序的时间复杂度为O(M log M);针对调度体集的异构度与负载统计计算时间复杂度均为O(M);LA-SSA Ⅱ基于双目标非支配排序算法(BNSA),其时间复杂度为排序复杂度,即O(N log N);由于执行体集与调度体集规模取决于交换机客户端安全需求与网络拓扑,两者大小关系不能确定。综上,调度算法时间复杂度为O(N log N), N=max(M, N)。

另一方面,算法Ⅰ执行排序的空间复杂度不超过O(M),对于算法Ⅱ,其空间复杂度为O(N)。因此,调度算法空间复杂度为O(N), N=max(M, N)。

4 仿真分析 4.1 仿真建立

由于相关领域文献较少,本文仿真方案参考文献[21],为实现系统异构性,采用5种不同操作系统类型的主机作为控制器异构调度资源池,分别为CentOS、Debian、Fedora、FreeBSD和Gentoo,其异构参数在本文第3章已经说明,且不同类型系统在控制器执行体集与调度体集间随机分布。仿真过程基于蒙特卡洛模拟(Monte Carlo Simulation)方法,运行平台为NetLogo模型工具与Matlab R2014a。

为了突出说明不同调度策略对安全性能的影响,本文结合传统解决方案,对以下5种策略进行仿真评估,并分析比较。

1) 单控制器(Single Controller, SC)。传统单控制器模型、备份机制,不存在调度机制。数据请求的处理与输出均由一个控制器决定。

2) 静态异构冗余结构(Static Structure, SS)。多控制器架构,包括入侵容忍[9]、拜占庭容错(Byzantine Fault Tolerance, BFT)机制[10-11]等。在结构上,控制器集群中各控制器间存在一定异构度(BFT容错机制不存在异构度),包括控制器类型、编程语言、操作系统以及硬件结构等,在本仿真中仅考虑操作系统类型即内核层异构性。在数据处理方式上,类似但不同于简单的备份与BFT机制,数据请求的处理由控制集群中所有控制器同步执行,输出结果存在判决机制,取多数一致性输出作为系统输出。控制器集群不存在调度机制,即为确定、静态属性。

3) 随机调度(基于时间)算法(Time-Random Scheduling Algorithm, TRSA)。控制器架构类型为动态异构冗余模型,与SS模型的不同之处在于本策略中执行体集群存在动态调度机制。调度策略为基于时间的随机调度,即固定的时间间隔执行调出策略与调入策略,并随机选择目标个体,不考虑异构度与负载因素。

4) 安全优先调度算法(Security Priority Scheduling Algorithm, SPSA)。控制器架构类型为动态异构冗余模型,调度策略基于执行体安全因素,即调出策略根据执行体集中系统异常参数阈值确定,调入策略仅考虑调度体与调出执行间异构度,不考虑调度体集群负载均衡因素,为最大安全调度策略。

5) 算法调度(LA-SSA)。控制器架构类型为动态异构冗余模型,调度策略为本文算法所描述的调度机制,即考虑调度体集群负载因素的安全调度策略。

仿真过程中的详细参数设置如表 1所示,其中执行体集群规模为N=5,调度策略安全阈值均为γ=5,单次执行时间长度为80个通信处理周期,数据统计结果均为100次MC模拟平均值。考虑实际网络场景中控制器节点与交换机客户端节点比例约为0.2时控制安全性能较优[23],在分析负载因素时设置控制器所连接交换机客户端初始值均为25。

表 1 参数设置 Table 1 Parameter settings
4.2 结果分析

针对以上5种安全解决方案及调度策略,本文从攻击异常统计、安全系数、负载均衡性能以及系统安全可靠性方面进行分析对比。基于前文威胁模型与调度模型,攻击异常度量通过执行体运行时间内所发生的系统异常次数衡量。具体仿真结果如下。

仿真过程首先选择三种典型安全控制器解决方案:SS、TRSA与SPSA。通过统计执行体运行时间内平均累积异常值CNE(Comulative Number of Exceptions)可以发现,如图 4所示,无调度机制的静态结构累积异常值体现了静态攻击者对目标系统攻击曲线,曲线增长速率刻画攻击者对当前系统的攻击能力,在初始的一段时间内攻击所致系统累积异常值增长缓慢,但后期随时间呈近似线性增长。

图 4 多种安全策略下累积异常值对比 Figure 4 Comparison of CNE under different security strategies

图 4说明静态多控制器架构如入侵容忍、BFT容错等机制能够在其容忍范围内对恶意行为有效抑制,但随着攻击的持续,这种防御能力逐步下降;而存在调度机制的动态系统中,累积异常值曲线多次经历缓慢增长阶段,但其累积异常值均远低于无调度静态方案。相比基于时间随机调度机制,安全优先调度策略能够将累积异常值维持在更低的增长率,原因在于后者每次调度策略选择系统异构度最大调度体,系统差异造成一定时间内攻击者攻击成功概率的下降;同时基于阈值的调度策略相比时间随机调度需要更少的调度次数。

安全优先调度SPSA与算法调度LA-SSA均为基于攻击异常阈值γ的安全调度机制,不同之处在于算法调度为负载感知的优化的调度策略,其调度过程并不一定保证安全最大化。通过图 4(b)所示数据结果证实了这一区别,LA-SSA调度模式下,执行体集累积异常值增长略高于安全优先调度,但这一结果并非确定。仍存在少数情况下两者增长率相同或出现相反的结果,然而最终的异常值峰值均出现在LA-SSA方案。对比图 4(a),LA-SSA调度机制在降低累积异常值上同样优于静态方案,相比SPSA而言,前者对于控制累积异常值增长率即攻击者攻击能力存在不确定性,无法保证安全性最优的调度策略,但总体而言稳定在较低的水平。

接着针对系统输出可靠性对执行体集安全率进行对比分析,评估方案包括传统单控制器模型SC、静态无调度模型SS与动态调度模型SPSA机制,数据结果如图 5所示。根据系统架构模型部分说明,系统安全率体现系统整体输出数据的可靠性。其中,单控制器架构模型,包括备份机制由于其执行体仅有一个,无法实现执行体受控所导致的恶意流行为检测,致使系统安全率被动地随攻击过程逐步降低,一旦系统被攻击成功其系统安全率降为0;而在冗余控制器方案中,多模判决机制使得存在少数执行体被攻击成功的情况下仍能保证输出的正确性。分析图 5可以看出,从整体上系统安全率均随时间呈下降趋势,这与攻击者攻击概率模型是吻合的;冗余控制器结构SS与SPSA安全可靠性明显优于单控制器结构,其中,静态冗余结构SS在初始的一段时间内缓解了系统安全率下降速率,但最终仍接近单控制器模型的较低水平。而在动态系统中,系统安全率曲线随调度策略的执行呈现阶段性的跳跃性,不会出现静态系统中较低的值域。

图 5 多种安全策略系统安全率对比 Figure 5 Comparison of security rate under different strategies

本文对调度过程中系统的一个重要的非安全因素——负载性能进行了仿真分析,如图 6所示,安全调度过程对系统负载产生了非常重要的影响。本文选择安全优先调度SPSA与算法调度LA-SSA两种方案,并通过对其调度体集负载方差var(load)作为评估参数进行对比分析,结果表明在最大化安全性能SPSA机制运行中,var(load)随调度过程的进行逐渐升高且趋于不稳定,即负载失衡问题逐步严重;后者负载性能呈现不确定性,但总体而言其负载均衡性优于安全优先调度SPSA。

图 6 动态调度对负载性能影响对比 Figure 6 Comparison of load effect of dynamic scheduling mechanism

表 2给出不同机制安全属性差异,通过上述数据分析及对比可以得出:

表 2 不同解决方案安全属性对比 Table 2 Comparison of security attributes for different solutions

1) 单控制器模型以及备份机制无法实现错误执行体的检测; 相比单控制器模型,基于冗余结构与多数判决机制的控制器解决方案能够提高系统输出结果的安全可靠性。

2) 通过动态调度能够显著降低系统因攻击导致异常的次数,其根本原因在于,相比静态系统,动态调度机制增加了系统异构度,即引入多样性。对攻击者而言,其针对确定系统的探测、攻击过程被动态调度机制不断扰乱,从而降低了对整个系统的攻击成功概率。

3) 通过适应性地调度策略能够获得显著的安全增益。在本文中,安全优先调度策略所带来的安全收益最大,但相对静态系统而言,基于时间随机调度、安全优先调度以及算法调度均能提供较高的安全性。

4) 通过对非安全因素负载性能的分析,可以得出仅考虑安全的调度策略可能将引起负载失衡问题。实际上,安全防御手段通常具有双面性,安全性的提升往往意味着其他性能的下降。本文中的感知负载因素的安全调度机制LA-SSA,能够在考虑实际网络场景下,针对负载性能这一重要的非安全因素,实现优化的调度。

5 结语

针对网络安全领域被动防御的现状,本文基于目前国内外学者对于主动防御技术MTD、CMD等的研究,以SDN核心设备控制器安全威胁模型为启迪,建立控制器调度模型,并提出一种感知负载因素的安全调度算法LA-SSA,将调度问题转化为安全与负载的动态双目标优化问题,以实现优化的调度策略选择。

不同于从系统工程角度对安全架构的研究,本文首次探索分析冗余结构中不同的安全策略所带来的安全性能,通过对几种安全调度策略的评估分析可以得出,相比传统的静态防御机制,基于时间随机调度机制TRSA、安全优先调度SPSA以及算法调度LA-SSA机制均大幅降低攻击者攻击成功概率,说明主动防御技术中的动态性、多样性能够显著提高系统安全性,而这一过程依赖于适应性的调度策略选择;在考虑系统负载因素的情况下,安全优先调度将引起负载失衡问题,通过优化的调度算法LA-SSA实现了负载均衡条件下的动态调度,解决了安全与计算性能冲突问题。本文威胁与调度模型针对单个节点攻击的一般场景,而调度算法在多个节点同时攻击的情况同样适用。对于考虑较为复杂的适应型攻击者场景,将在下一步的工作中继续研究。

参考文献(References)
[1] OKHRAVI H, HOBSON T, BIGELOW D, et al. Finding focus in the blur of moving-target techniques[J]. IEEE Security & Privacy, 2014, 12(2): 16-26.
[2] XU J, GUO P, ZHAO M, et al. Comparing different moving target defense techniques[C]//Proceedings of the 1st ACM Workshop on Moving Target Defense. New York:ACM, 2014:97-107.
[3] 邬江兴. 网络空间拟态防御研究[J]. 信息安全学报, 2016, 1(4): 1-10. (WU J X. Research on cyber mimic defense[J]. Journal of Cyber Security, 2016, 1(4): 1-10. DOI:10.11959/j.issn.2909-109x.2016.00046)
[4] 王蒙蒙, 刘建伟, 陈杰, 等. 软件定义网络:安全模型、机制及研究进展[J]. 软件学报, 2016, 27(4): 969-992. (WANG M M, LIU J W, CHEN J, et al. Software defined networking:security model, threats and mechanism[J]. Journal of Software, 2016, 27(4): 969-992.)
[5] KREUTZ D, RAMOS F M V, VERISSIMO P. Towards secure and dependable software-defined networks[C]//Proceedings of the 2nd ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking. New York:ACM, 2013:55-60.
[6] 刘文懋, 裘晓峰, 陈鹏程, 等. 面向SDN环境的软件定义安全架构[J]. 计算机科学与探索, 2015, 9(1): 63-70. (LIU W M, QIU X F, CHEN P C, et al. SDN oriented software-defined security architecture[J]. Journal of Frontiers of Computer Science and Technology, 2015, 9(1): 63-70.)
[7] VAN RENESSE R, SCHNEIDER F B. Chain replication for supporting high throughput and availability[C]//Proceedings of the 6th Conference on Symposium on Opearting Systems Design & Implementation. Berkeley:USENIX Association, 2004:7.
[8] SPALLA E S, MAFIOLETTI D R, LIBERATO A B, et al. AR2C2:actively replicated controllers for SDN resilient control plane[C]//Proceedings of the 2016 IEEE/IFIP Network Operations and Management Symposium. Piscataway, NJ:IEEE, 2016:189-196.
[9] 黄亮, 姜帆, 荀浩, 等. 面向软件定义网络的入侵容忍控制器架构及实现[J]. 计算机应用, 2015, 35(12): 3429-3436. (HUANG L, JIANG F, XUN H, et al. Software-defined networking-oriented intrusion tolerance controller architecture and its implementation[J]. Journal of Computer Applications, 2015, 35(12): 3429-3436. DOI:10.11772/j.issn.1001-9081.2015.12.3429)
[10] 薛聪, 马存庆, 刘宗斌, 等. 一种安全SDN控制器架构设计[J]. 信息网络安全, 2014(9): 34-38. (XUE C, MA C Q, LIU Z B, et al. Design of secure SDN controller architecture[J]. Netinfo Security, 2014(9): 34-38.)
[11] ELDEFRAWY K, KACZMAREK T. Byzantine fault tolerant Software-Defined Networking (SDN) controllers[C]//Proceedings of the 2016 IEEE 40th Annual Computers Software and Applications Conference. Piscataway:IEEE, 2016:208-213.
[12] LI H, LI P, GUO S, et al. Byzantine-resilient secure software-defined networks with multiple controllers in cloud[J]. IEEE Transactions on Cloud Computing, 2015, 2(4): 436-447.
[13] DIXIT A, HAO F, MUKHERJEE S, et al. Towards an elastic distributed SDN controller[J]. ACM SIGCOMM Computer Communication Review, 2013, 43(4): 7-12. DOI:10.1145/2534169
[14] WANG T, LIU F, GUO J, et al. Dynamic SDN controller assignment in data center networks:stable matching with transfers[C]//Proceedings of the 35th Annual IEEE International Conference on Computer Communications. Piscataway, NJ:IEEE, 2016:1-9.
[15] KAMPANAKIS P, PERROS H, BEYENE T. SDN-based solutions for moving target defense network protection[C]//Proceedings of the 2014 IEEE 15th International Symposium on a World of Wireless, Mobile and Multimedia Networks. Piscataway, NJ:IEEE, 2014:1-6.
[16] MACFARLAND D C, SHUE C A. The SDN shuffle:creating a moving-target defense using host-based software-defined networking[C]//Proceedings of the 2nd ACM Workshop on Moving Target Defense. New York:ACM, 2015:37-41.
[17] DUNLOP M, GROAT S, URBANSKI W, et al. MT6D:a moving target IPv6 defense[C]//Proceedings of the 2011 Military Communications Conference. Piscataway:IEEE, 2011:1321-1326.
[18] QI C, WU J, HU H, et al. An intensive security architecture with multi-controller for SDN[C]//Proceedings of the 2016 IEEE Conference on Computer Communications Workshops. Piscataway, NJ:IEEE, 2016:401-402.
[19] QI C, WU J, HU H, et al. Dynamic-scheduling mechanism of controllers based on security policy in software-defined network[J]. Electronics Letters, 2016, 52(23): 1918-1920. DOI:10.1049/el.2016.2670
[20] WINTERROSE M L, CARTER K M, WAGNER N, et al. Adaptive attacker strategy development against moving target cyber defenses[EB/OL].[2017-05-01]. http://www.nealwagner.org/research/articles/1472_MITLincolnLabs_MSW2014.pdf.
[21] CARTER K M, RIORDAN J F, OKHRAVI H. A game theoretic approach to strategy determination for dynamic platform defenses[C]//Proceedings of the 1st ACM Workshop on Moving Target Defense. New York:ACM, 2014:21-30.
[22] 扈红超, 陈福才, 王禛鹏. 拟态防御DHR模型若干问题探讨和性能评估[J]. 信息安全学报, 2016, 1(4): 40-51. (HU H C, CHEN F C, WANG Z P. Performance evaluations on DHR for cyberspace mimic defense[J]. Journal of Cyber Security, 2016, 1(4): 40-51.)
[23] HU Y, WANG W, GONG X, et al. On reliability-optimized controller placement for software-defined networks[J]. Communications China, 2014, 11(2): 38-54. DOI:10.1109/CC.2014.6821736