基于增强学习的自适应动态防御机制
2019-02-15顾泽宇张兴明
顾泽宇,张兴明,魏 帅
(国家数字交换系统工程技术研究中心,郑州 450002)
1 引 言
动态防御技术改变了网络安全中防御方被动性、静态性的局面,大大增加了攻击者的攻击难度;同时,主动防御机制能够显著改善传统防御手段针对未知威胁的防护能力[1,2].然而,任何的防御措施均存在或多或少对系统资源以及性能的影响,特别是在动态防御中,其防御特征越强烈,导致的性能损耗越明显.例如在移动目标防御中,动态平台技术[3,4]和端信息跳变技术[5]均通过动态地执行防御变换达到扰乱攻击进程的目的,这种跳变必将造成正在运行的系统性能的下降.另一方面,网络设备所受到的攻击类型是不确定的,高级持续威胁能够在长时间多方位对目标系统进行渗透、潜伏与控制,且在不同的时间段对系统表现出来的攻击特征是不一样的[6].因此,平衡防御安全性与性能问题是动态防御技术中的一个新的挑战.
针对不断变换的攻击类型,防御方一方面需要根据不同强度的攻击类型适应性地选择合适的、有针对性的防御方案,另一方面也要根据自身系统的安全性与性能需求,使得防御策略更具灵活性.在目前的研究中,有研究者通过使用进化算法实现自动地控制决策以达到安全与性能的平衡[7].现有的对于动态防御的研究基本上都是通过周期性地执行防御动作来提高防御能力[8,9].文献[10]提出在移动目标防御中对于如何选择合适的时间进行跳变的研究尚不成熟,并将此定义为动态时间问题.文献[11]从理论与实验方面分析了移动目标防御中的时间问题,并给出了针对DDoS与旁路攻击的防御时间确定算法.在针对SDN控制器威胁的主动防御技术中,文献[12]结合国内拟态防御研究理论[13],通过动态地调度控制器执行体以构造动态多样性冗余的防御属性,并验证了这种防御的有效性,然而在这些现有的研究中,对于控制器的调度同样存在性能与安全性的冲突问题.
针对以上问题,本文基于上述SDN控制器安全研究现状,提出一种基于增强学习算法的自适应动态防御机制,以动态、适应性地解决控制器动态调度过程中的安全性与性能平衡问题.面对未知的攻击类型,自适应防御机制能够根据攻击强度以及不断地反馈学习确定合适的防御策略.本文主要工作有:
1)分析了控制器调度过程中的安全与性能问题,并给出相关定义,建立攻防过程收益模型;
2)给出基于增强学习的自适应防御算法,利用基于异构冗余控制器判决反馈信息,构建自适应防御决策框架;
3)利用网络攻击数据集,分析了多种偏向类型的防御者所采取的防御策略的差异,为下一步对于自适应防御技术提供参考.
2 动态防御模型与问题提出
2.1 拟态防御机理简介
拟态防御结合主动防御技术中的冗余、异构以及动态属性,实现防御系统对攻击者所呈现的不确定性与动态性,同时通过判决反馈机制对冗余执行体输出数据流进行裁决,提高系统可靠性与防御鲁棒性.冗余异构的防御系统架构实现了所防护系统内生的安全性能,在SDN控制器的拟态防御方案中[12],通过多个控制器执行体构建拟态冗余架构,各个执行体间存在不同层级的异构性,然而这种静态冗余异构框架仍不能有效抵御有经验的攻击类型,例如高级持续威胁APT.通过动态地对控制器执行体实现不同层级、不同目标的调度,例如对控制器应用程序的调度以实现应用多样性、对操作系统及硬件架构的调度以实现动态平台防御、对端口信息及协议的动态切换以实现动态网络信息等.以上,通过动态性与多样性的多属性结合能够非线性地增加攻击者成功突破防御系统的难度,进而达到防御安全性[13].
控制器动态调度策略有多种实现方案,例如随机时间与随机目标调度、最大化异构性调度以及基于反馈调度等.相关研究[14]已经验证了不同调度策略下存在着不同的安全收益,然而现有的调度方案要么仅从防御角度追求动态性或者多样性的主动属性,要么受制于攻击对执行体所呈现的攻击后果即被动地调度,对于高级持续威胁类型的攻击者,通过利用各个执行体上的漏洞实现恶意代码注入,仍然可以通过潜伏多个执行体直到实现多个执行体的协同控制,或者通过频繁地造成攻击数据实现防御误报或过度防御,降低防御收益.
2.2 动态调度防御效益与性能平衡问题
首先,动态地防御动作必定产生一定的防御代价,因此针对主动防御中的性能与安全冲突问题是一项非常重要的工作,然而目前的相关研究[15]尚不全面.防御者必须在可以接受的防御代价上动态地、自适应地采取调度时间策略实现安全增益.其次,基于拟态防御的安全框架能够通过多模执行体判决反馈实现攻击的发现、动态地防御调整,并保证系统的功能可用性,进而达到防御鲁棒性.针对控制器功能来说,其绝大部分输出都是正确的,也就是说攻击者劫持控制器执行体的情况可能占少数,那么这种动态防御就存在防御效益上的优化空间;从防御者的角度讲,如果在避免拟态判决失效的情况下,动态调度策略阻止了攻击者劫持更多个执行体的情况发生,那么这种调度策略更有防御价值.同样地,针对高级持续威胁、动态攻击者[16]控持控制器执行体之后可能会进行潜伏、控制以掌握更多的攻击资源,而基于被动防御的安全策略无法实现有效防御,那么在这种情况下采取动态调度措施可以实现较大的防御效益,减少不必要的防御代价,这种调度的决策可以通过反馈学习产生.
3 攻防场景与模型建立
本章介绍基于SDN环境下的拟态防御控制器执行体攻击与防御场景,形式化攻防场景中的策略定义与安全性能评价.
本文所研究的攻防策略场景针对SDN网络控制器,攻击者为可以利用控制器程序、软硬件及操作系统漏洞特别是0day漏洞等发动的高级持续威胁,其目标为渗透控制器执行体,攻击手段为利用0day漏洞控制多个控制器执行体,直到完成逃逸拟态防御达到攻击效果,从而控制整个网络流行为.本文假设控制器受到攻击为攻击者控制执行体,攻击过程中可能不会改变某一执行体的功能性输出,但攻击事件的最终目的为改变一个或多个执行体的输出,且假设不存在控制器执行体自身或环境原因导致的系统故障.另外,0day漏洞的利用通常不是单独作用的,往往是多个漏洞的协同作用,各个击破,逐渐深入,最终实现控制[17].拟态防御中的动态性策略问题主要体现在控制器的调度策略,即如何选择合适的时间执行防御动作以最大化防御收益.
3.1 安全性与性能定义
为更好的提高主动防御中动态调度策略所产生的防御效益,本节针对SDN控制器调度问题定义防御系统的安全性与防御性能衡量标准.我们通过利用攻防过程中攻击者与防御者双方参与过程事件的数量定义安全性,即为一段时间内被防御动作避免或移除的攻击事件数量Φpre在攻击者发动的所有攻击事件Φtot中所占的比例,那么防御安全性可以表示为
(1)
防御效率的衡量体现为有效防御Ψeff在所有防御事件Ψtot中所占的比例,即
(2)
从提升安全性的角度来说,防御动作即控制器调度越多,防御系统的安全性越高;然而事实上,某一次防御动作可能是不必要的,即该防御动作的执行与否对安全性没有任何影响.防御效率从一定程度上可以体现为防御动作对攻击事件的命中率.
我们定义系统性能来解决动态防御过程中安全与系统性能的平衡问题,根据SDN控制器拟态防御解决方案的描述,虽然整个系统的功能性输出性能取决于所有执行体的数据处理能力以及判决过程,然而由于拟态防御为安全内生性架构,防御动作必将对系统性能造成影响.那么防御性能通过在一段离散的时间T内所有防御动作Ψtot所占的比例体现,即
(3)
3.2 调度过程中的收益度量
在针对SDN控制器拟态防御中的控制器执行体调度问题中,我们研究的主要问题为防御策略的收益与防御代价的平衡问题.根据前文所述,定义收益B为防御者通过策略采取相应的防御动作所产生的防御收益(认为每次防御动作均存在防御收益),定义C为防御者通过策略采取相应的防御动作所产生的防御代价,定义R为防御者在防御策略执行过程中的回报函数,那么以上三者的关系可以表示为:
R=B-C
(4)
在动态调度的过程中,防御者通过最大化回报函数来确定调度的策略问题;然而,面对高级持续攻击者,这种优化方案所面临的情况是动态的、不确定的,需要通过调度过程中的不同状态进行不断地更新,这是本文模型所需要解决的关键问题.
4 基于增强学习的防御决策机制
为提高目标系统在特定领域的动态与自适应能力,特别是在网络安全领域,针对日新月异的网络攻击模式,防御系统在对未知威胁的检测、识别与防御中逐渐地应用了机器学习机制,例如基于机器学习的入侵检测系统[18].这种学习机制能够使得防御者在面临攻击渗透的情况下自动地、有针对性地选择对策;增强学习[19]够根据智能体动作的回报与惩罚信息进行学习以获得优化的动作策略的技术,其不依赖与环境的先验知识,以及能够在线学习的特点,使得它能够较好地应用于计算机网络系统对未知威胁的防御场景中.
本模型使用Q-learning作为动态调度的学习算法,其目标为通过一系列的动作过程寻找一个最优的策略以满足状态与动作的映射.Q-learning算法包括状态集、动作集以及一个收益的迭代函数.结合控制器调度场景对算法的主要要素进行定义:
其中,si={(ai-1,ri-1),(ai-2,ri-2),(ai-3,ri-3)}
一是以内部控制为契机,强化预算绩效控制。建立相互制衡的内部管理机制,对于重大资金支出、预算内的重大项目申报和执行,要实行单位管理层集体研究和决策制度。将预算控制植入经济活动的每一个环节,保障经济事项依法依规。完善相关制度建设,强化预算刚性,严格预算调整审批程序,各单位未经批准不得自行调整资金使用范围、预算额度和开支标准。
定义2.动作空间.防御动作为当前时间进行执行体调度或者不执行防御动作,即动作空间
A={excute,pass}
关于防御动作,本模型主要针对控制器执行体中各层级的调度动态性问题,那么防御动作为当前状态下是否进行执行单元的调度;对于调度体的选择问题,我们已在前一阶段的研究[12]分析,除了调度体异构度之外的其他选择标准问题,不在本文的研究范围之内.
Q-learning算法通过收益反馈函数Q对未来的动作策略进行不断地迭代优化.其函数值代表了采取防御动作后的收益,初始值可任意设定,迭代更新公式如下,
Qk+1(st,at)=Qk(st,at)+α[R+γmaxQk(st+1,b)-Qk(st,at)]
(5)
其中,k为当前迭代过程,st和at分别为t时间所对应的状态和动作,b为最大化收益的最优动作,α为学习速率,γ为折扣因子.直观地讲,γ值越小说明越偏重当前的收益,越大说明偏重未来收益,而α体现了收益值迭代更新的速率.
在本模型的控制器执行体调度场景中,由于面临的攻击类型与攻击位置都是未知的,防御者通过动作、收益与惩罚信息不断反馈学习,以不断优化动态调度策略,自适应地调整安全性与防御代价、性能的平衡度.在基于Q-learning算法的动态防御过程中,我们定义一个惩罚值P作为防御者在当前状态下采取不执行防御动作而导致受到攻击的代价,例如上一步防御者选择pass动作,而接下来的结果为执行体被判决为受到攻击事件,那么说明该策略下的动态防御在当前一段时间内的安全性较低,需要更频繁地执行防御动作.因此在这种情况下,回报函数公式(4)可以被改写为
Rt=Bt-(Pt+Ct)
(6)
在增强学习算法中,如果完全脱离环境的因素,仅考虑迭代反馈的信息,算法很有可能陷入局部最优解.类似地在本模型中,由于攻击事件本来就具有高度随机性,那么最优的动态防御策略需要不断随着攻击事件变换特征,而忽略部分基于学习所掌握的规律,这就给予学习算法更多的随机性,对环境有更高的探索能力.ε贪婪是在增强学习中智能体选择动作的常用模式,我们在本算法中使用这种相似的突变机制来决定防御者的动作选择方式,在决策时,防御者以概率ε(0≤ε≤1)选择一个非优化的动作进行随机探索,以概率(1-ε)选择反馈学习到的优化动作.初始时,ε被设置为一个统一的非零值,然后其随着迭代的进行均匀地减少,直到最后步骤减少至0.当ε值越大时,算法在初始时随机性更大,也就有更大的环境探索能力,而随着其值的减小逐渐稳定于最优策略.
4.1 自适应防御算法
结合前文所述给出自适应防御策略算法.首先,根据当前判决反馈信息进行选择:如果判决反馈信息表明存在控制器执行体受攻击,那么立即对该执行体执行防御动作,即进行调度;否则,进入基于Q-learning的自适应防御策略生成算法.在后一阶段算法中,根据ε贪婪模式选择动作,更新反馈函数与回报函数,代入下一次迭代.在执行防御动作的情况中,若执行体受到攻击,那么对相应执行体进行调度;在自适应阶段,对执行体中的单元实施均匀分布的随机调度,调度体的选择同样为均匀随机调入.一方面,算法保证了控制器执行体集合的安全鲁棒性,虽然存在较少量执行体受攻击的情况,但是由于冗余结构以及判决机制,并不影响整体系统输出的可靠性;另一方面,自适应防御阶段根据不断地更新学习反馈,适应性地调整防御策略,解决了安全性与防御代价的平衡问题.
输入:初始化α和γ,判决反馈信息(执行体受攻击情况)
输出:动态防御策略(最优防御动作策略)
1.初始化状态信息
2.if(判决反馈信息为受攻击)
3. 执行防御动作
4.else
5. 产生一个随机突变因子λ∈(0,1)
6. if(ε<λ)
7. 随机选择防御动作的执行或者不执行,即随机决定是否进行调度
8. else
9. 根据反馈函数Q迭代结果选择防御动作是否执行,即当前最优动作
10. 更新回报函数Rt以及反馈函数Q
11. 进行下一个决策过程
4.2 自适应防御机制框架
基于拟态防御的SDN控制器自适应动态调度机制框架如图1所示,其中灰色框内表示基于Q-learning的防御决策机制.根据前文所提到的,基于拟态防御的SDN控制器架构通过判决模块完成控制器冗余执行体输出数据的判决并输出判决后的结果,同时检测执行体是否受到攻击;防御决策模块完成执行体动态调度防御功能,具体的动态策略受增强学习机制监
图1 自适应防御框架Fig.1 Adaptive defense framework
督;增强学习机制接收来自判决模块的反馈信息,若存在攻击事件,那么算法传递正反馈强化信息,防御决策模块需要加强防御动作;反之,则当前防御策略存在对性能的优化空间.
5 仿真实验
5.1 仿真建立
本节通过仿真实验分析前文所述的自适应防御机制性能.实验平台主机配置为Intel®CoreTMi7-7700HQ CPU 3.6GHz, 16GB RAM,仿真工具为Mathemetica平台.
攻击者参数:本文采用第三方提供的广域网攻击数据集[20]样本.该攻击数据样本包含多种网络攻击类型包括扫描嗅探、远程注入、僵尸网络DoS等,数据内容包括地址信息、协议、工具信息以及时间戳等,由于数据集涵盖较多的攻击种类,概率分布较为复杂,我们选择其中由Blackenergy发起的高级持续攻击数据作为分析样本.关于数据集中攻击间隔的累积分布函数如图2,超过80%的攻击间隔在5000s以内.攻击间隔体现了针对一个攻击目标的连续两次攻击成功的时间间隔,自适应防御算法通过不断地学习,最终将防御间隔趋向于攻击间隔.我们选择攻击事件间隔的平均值作为攻击间隔信息,通过分析其攻击频率评估分析本模型防御机制的性能.
防御者参数:防御代价:控制器动态防御对性能的影响主要体现在调度所造成的时延,且控制器执行体不同层级的调度所需的时间不同.为便于分析,仿真过程统一认为一次执行单元调度时延为200ms.通过定义防御惩罚值P衡量因未防御到攻击事件所造成的损失,且P值与被攻击的控制器执行体数量呈正相关.
图2 攻击间隔累积分布函数Fig.2 Cumulative distribution function of attack interval
学习速率与折扣因子:为探索合适的增强学习参数,使得算法更适应于攻击场景,以防御安全性Sec作为探索的目标值,对多组数据进行对比,如图3.其中,当α=0.2,γ=0.4时,所获得的Sec平均值处于最大水平,即以此作为后续仿真过程中的算法参数.
图3 学习速率与折扣因子对Sec的影响Fig.3 Effect of learning rate and discount factor on Sec
仿真过程每次选择攻击数据集中不同时间段样本,并通过设置重置安全收益时间窗口以更精确地评估防御策略对不同攻击环境的自适应能力.为突出体现动态防御性能的影响, 认为攻击数据集中的每次攻击事件发生在当前各个控制器执行体上的概率相同,对于防御性能的影响与执行防御的执行体数量呈正相关.在每次仿真步骤中,认为防御动作的执行优先级高于攻击事件,即算法对当前控制器执行体执行防御动作,同时该执行体受到攻击事件,那么认为该防御动作为有效防御动作,攻击被动态防御移除.
5.2 结果分析
我们选择Blackenergy攻击数据集中的1500次攻击事件数据作为仿真中的攻击样本,其中最大攻击间隔为13882.7s,最小攻击间隔为1450s,选择1000s作为仿真过程中的离散时间单位,每次仿真过程防御重置窗口大小设为120个离散时间单位,其中的攻防历程均为数据集中的连续事件.
为更好地对比攻防过程中安全性与性能对防御系统的影响,本节对自适应防御机制中的安全收益R、防御代价C以及攻击惩罚P量化为不同等级,以区分不同偏向的防御系统所获得的各方面收益.量化值分为高、中、低三个等级,分别对应80、50、20,定义防御者偏向类型分为Security、Performance和Def-perf三种.各类型防御者对应量化值如表1所示,其中,Security型防御者追求安全性的最大化,选择较高的安全收益值和攻击惩罚值;相反,Performance型防御者则关注系统性能,其防御收益所占比重较低,Def-perf型防御者追求防御效率,选择较高的攻击惩罚值;为便于对比,三种防御者均选择适中的防御代价值.
表1 不同偏向防御者量化值Table 1 Quantitative values of different biased defenders
面对攻击数据集中的攻击事件,三种不同偏向的防御者采取不同的防御策略,图4反映了攻防历程中三种防御者所采取的防御动作间隔平均值.通过分析图4数据可以发现,Security型防御者平均防御间隔一直处于低于其他任意一种类型的水平,即其采取的是频繁执行防御动作的策略类型;而Performance型防御者恰恰相反,其执行的防御间隔增加趋势显著,并趋近于最大攻击间隔;Def-perf型防御者在防御间隔表现介于以上两者之间,但变化趋势尚不明显,具有动态性.
图4 攻防历程中的防御间隔变化Fig.4 Change of defense interval in offensive and defensive process
关于攻击历程的防御间隔数据并不能完全体现自适应机制对防御的适应性以及对安全性与性能的平衡关系.图5数据反映了三种类型的防御者在前文所定义的安全性与防御效率方面的表现.可以直观地看出,相比于Performance型防御者,Security型防御者和Def-perf型防御者的安全性能平均值
图5 Eff与Sec平均值Fig.5 Average of Eff and Sec
明显较高;在防御效率方面,上述两者同样优于Performance型防御者,但Def-perf型防御者具有最高的防御效率平均值.另外,由于样本规模限制,每次数据取自12次仿真结果的均值,同时防御收益在每次初始时刻均重置,得到的数据存在一定偏离均值的标准误差.
进一步地分析图4和图5,可以看出Performance型防御者由于仅考虑系统性能而采取较大防御间隔的策略,导致在安全性上损失较重,受到攻击成功的次数明显多于其他两者;Security型防御者则着重关注防御收益,采取较为频繁的、无指导的动态防御策略,获得的安全收益明显,但未考虑防御代价造成防御命中率较低;Def-perf型防御者权衡考虑了防御收益及防御代价,在安全性及防御效率上表现较优,说明其对攻击事件的针对能力较强,能够适应性地执行防御动作,以减少攻击惩罚.
图6 不同策略的Perf对比Fig.6 Comparison of Perf in deferent strategies
接下来,我们选择Def-perf型防御策略分析式(3)所定义的Perf性能.为突出比较性能优势性,选择Security型策略、随机时间策略以及攻击平均间隔策略三种防御策略进行对比分析.图6反映了不同防御策略下Perf值随仿真时间变化关系,与上述分析类似,Security型策略采取几种策略中最短的防御时间间隔,导致其性能方面一直处于较低水平;average策略与random策略相应的关系曲线较为接近,而不同的是前者采用了固定间隔的防御策略,Perf相对稳定;Def-perf型防御策略随时间推进逐步趋于性能的较大值,然而数据的局限性在于未能表现出对攻击事件的针对性.
以上数据表明,对于回报函数Rt=Bt-(Pt+Ct),不同的量化取值代表了不同类型的防御者在防御过程中的不同偏向,同时也决定了自适应防御算法不断学习的导向.防御者采取动态防御策略是的关键参数决定了对于安全与性能的平衡问题,本文提出的基于增强学习的自适应防御机制能够在无监督环境下实现对未知攻击事件的适应性防御.
6 总 结
自适应地选择防御策略能够提高动态防御系统的灵活性,有效解决安全性于性能的平衡问题.本文针对SDN控制器调度防御模型,提出一种基于增强学习的自适应防御策略确定机制,适应性地选择防御动作执行的时间,以解决面对未知攻击类型时防御方如何根据自身安全性与性能选择防御措施的问题,为针对智能化动态防御研究提供了参考.在本文模型中,安全收益以及防御代价的量化是提高自适应防御性能的重要因素,而参数越多,对于防御收益函数的量化更加精确,本文对于参数量化的程度尚不够细致,例如防御代价与防御收益的关系.另外,文中尚未讨论对于控制器执行单元不同层级的调度,以实现更细粒度的动态多样性.上述问题是下一步研究工作的一个方向.