1、h t t p:/ww wj s j k x c o mD O I:/j s j k x 到稿日期:返修日期:基金项目:国家自然科学基金();国家重点研发计划(Y F B ,Y F B )T h i sw o r kw a s s u p p o r t e db y t h eN a t i o n a lN a t u r a l S c i e n c eF o u n d a t i o no fC h i n a()a n dN a t i o n a lK e yR e s e a r c ha n dD e v e l o p m e n tP r o g r a mo fC h
2、 i n a(Y F B ,Y F B )通信作者:张帅(w h u e d u c n)基于自适应遗传算法的微服务移动目标防御策略刘轩宇张帅霍树民商珂战略支援部队信息工程大学信息技术研究所郑州 (c o m)摘要微服务架构因具有灵活、可扩展等特性,能够有效地提高软件的敏捷性,成为目前云中应用交付最主流的方法.然而,微服务化拆分使得应用的攻击面呈爆炸式增长,给以“要地防御”为核心的移动目标防御策略设计带来了巨大的挑战.针对该问题,提出了一种基于自适应遗传算法(AG A)的微服务移动目标防御策略,即动态轮换策略(D R S).首先,基于微服务的特点,对攻击者的攻击路径进行分析;然后,提出微服务攻
3、击图模型来形式化各种攻击场景,并对移动目标防御策略的安全增益和防御回报率进行定量分析;最后使用AG A求解移动目标防御的最优安全配置,即微服务的最优动态轮换周期.实验表明D R S具有可扩展性,相比统一配置策略、D S E OM以及随机配置策略,其防御回报率分别提高了 ,和 .关键词:云计算;微服务;自适应遗传算法;移动目标防御中图法分类号T P M i c r o s e r v i c eM o v i n gT a r g e tD e f e n s eS t r a t e g yB a s e do nA d a p t i v eG e n e t i cA l g o r i
4、t h mL I UX u a n y u,Z HAN GS h u a i,HUOS h u m i na n dS HANGK eI n s t i t u t eo f I n f o r m a t i o nT e c h n o l o g y,P L AS t r a t e g i cS u p p o r tF o r c e I n f o r m a t i o nE n g i n e e r i n gU n i v e r s i t y,Z h e n g z h o u ,C h i n aA b s t r a c t M i c r o s e r v i
5、c ea r c h i t e c t u r ec a ne f f e c t i v e l y i m p r o v e t h ea g i l i t yo f s o f t w a r ed u e t o i t s f l e x i b l e,s c a l a b l ea n do t h e r c h a r a c t e r i s t i c s,a n dh a sb e c o m et h em o s tm a i n s t r e a m m e t h o do fa p p l i c a t i o nd e l i v e r yi
6、 nt h ec l o u d H o w e v e r,t h em i c r o s e r v i c es p l i t t i n gm a k e s t h ea t t a c ks u r f a c eo fa p p l i c a t i o n sg r o we x p l o s i v e l y,w h i c hb r i n g sg r e a tc h a l l e n g e st ot h ed e s i g no fm o b i l et a r g e td e f e n s es t r a t e g yw i t ht h
7、 e c o r eo f“s t r a t e g i cd e f e n s e”T os o l v e t h i sp r o b l e m,am i c r o s e r v i c em o v i n g t a r g e t d e f e n s e s t r a t e g yb a s e do na d a p t i v eg e n e t i ca l g o r i t h m(AG A),n a m e l yd y n a m i cr o t a t i o ns t r a t e g y(D R S),i sp r o p o s e d
8、 F i r s t l y,b a s e do nt h ec h a r a c t e r i s t i c so fm i c r o s e r v i c e,t h ea t t a c kp a t ho f a t t a c k e r s i sa n a l y z e d T h e n,am i c r o s e r v i c ea t t a c kg r a p hm o d e l i sp r o p o s e dt of o r m a l i z ev a r i o u sa t t a c ks c e n a r i o s,a n d
9、t h e s e c u r i t yg a i n s a n d r e t u r no f d e f e n s e(R o D)o fm o v i n g t a r g e t d e f e n s e s t r a t e g i e s a r e q u a n t i t a t i v e l ya n a l y z e d F i n a l l y,A GAi su s e dt os o l v e t h eo p t i m a l s e c u r i t yc o n f i g u r a t i o no fm o b i l e t a
10、 r g e t d e f e n s e,t h a t i s,t h eo p t i m a l d y n a m i c r o t a t i o nc y c l eo fm i c r o s e r v i c e s E x p e r i m e n t ss h o wt h a tD R S i ss c a l a b l e,a n dt h ed e f e n s er e t u r nr a t eo fD R Si n c r e a s e sb y ,a n d r e s p e c t i v e l yc o m p a r e dw i
11、t ht h eu n i f i e dc o n f i g u r a t i o ns t r a t e g y,D S E OMa n dr a n d o mc o n f i g u r a t i o ns t r a t e g y K e y w o r d s C l o u dc o m p u t i n g,M i c r o s e r v i c e,A d a p t i v eg e n e t i ca l g o r i t h m,M o v i n gt a r g e td e f e n s e引言云计算是一种分布式计算模式,被广泛用于整合计算
12、资源,使得全球网络连接大幅增加.为了能够有效地利用云资源并加速开发和交付过程,微服务架构应运而生.在基于微服务的云环境中,传统的单体式应用按照逻辑功能被解耦为一组执行单一功能的独立微服务,并且每个微服务都允许被独立开发、部署、扩展和版本控制,多个微服务之间通常使用HT T P或R P C协议相互调用形成服务链,以此向用户提供集成功能.另外,每个微服务都会根据并发请求动态调整其副本数量,这大大提高了软件的敏捷性和灵活性.由于微服务具有弹性、可扩展性、自动化、连续部署以及快速响应需求等特点,微服务体系架构在许多I T行业中得到了广泛应用,Am a z o n,N e t f l i x,T w i
13、 t t e r和U b e r等众多组织都使用微服务来交付它们的软件.各个微服务之间是松耦合的,因此微服务可以灵活更新.一天内微服务可能会更新几十甚至上百次,这样会导致云环境的复杂性大幅提高.同时,从单体式应用过渡到微服务架构,攻击面的数量激增,且微服务的攻击面不断发生变化,使得微服务攻击面难以管控.由于当前网络空间攻防双方具有不对等的特性,攻击者可以通过嗅探或扫描技术探测系统,寻找可以被其利用且能够最大限度提高攻击效益的安全漏洞并对其发起攻击,进而引发一些安全问题,如数据泄露、拒绝服务、越权访问等.移动目标防御(M o v i n gT a r g e tD e f e n s e,MT
14、D)作为一种主动防御技术,其通过构建更难察觉和预测的动态系统以及限制漏洞的暴露时间来实现主动防御,例如,改变或重组I P地址 、重排网 络拓 扑 、移动 或 迁移 计算 实例 等.MT D与传统防御技术最主要的不同是,传统防御技术被动响应攻击,而MT D主动转移攻击面.尽管MT D策略可以有效提高系统的安全性,但同时也会引入额外的开销,对服务质量造成影响.因此要考虑MT D策略对微服务的安全性与系统开销之间的平衡.与此同时,求解MT D策略配置本身就是一项困难的工作,加之应用在复杂的微服务场景中,使其变得更具挑战性,主要原因如下:()基于微服务的云场景规模大,每个应用都包含多个微服务,并且每个
15、微服务还有多个副本,因此微服务化会导致应用的攻击面数量骤增,为MT D策略设计带来巨大挑战.()微服务场景下攻击面难以管控,攻击者到攻击目标的路径多样化,因此需要较高强度的MT D策略来对云中的重要路径进行保护.针对以上问题,本文提出了一种基于自适应遗传算法(A d a p t i v eG e n e t i cA l g o r i t h m,A G A)的MT D策略,引入动态轮换策略(D y n a m i cR o t a t i o nS t r a t e g y,D R S)来保护云环境中的微服务,即在可接受的条件下,足够频繁地轮换微服务以避免攻击者的攻击.本文通过攻击图(A
16、 t t a c kG r a p h,AG)模型形式化模拟微服务的复杂攻击场景,并利用A GA求解微服务的动态轮换周期,以实现防御回报率与系统开销之间的平衡.另外,对微服务的动态轮换周期进行建模,根据AG中边的权重(漏洞利用难度)计算出攻击者到攻击目标的最短路径,然后对该路径上的所有微服务执行D R S.本文的主要贡献如下:()提出了动态轮换策略,能够在一定程度上抵御攻击者对特定微服务的攻击,并利用AG A求解动态轮换周期.()使用攻击图模型模拟微服务场景下的微服务拓扑结构,包括微服务之间的调用关系以及攻击者的攻击路径,并使用D i j k s t r a算法在攻击图中计算攻击者到攻击目标的
17、最短路径.()通过实验验证了所提方法的有效性和可扩展性,并与统一配置策略、D S E OM以及随机配置策略进行比较,防御回报率分别提高了 ,.相关工作近年来,受新冠肺炎的影响,云解决方案在教育、医疗、电子商务等众多行业中的应用越来越广泛.云计算不仅可以降低资源共享的成本,还可以随时为世界各地的用户不间断地提供服务,但同时也引发了许多安全威胁.目前,业内对微服务架构的防护问题进行了广泛的研究,已有技术手段大致可以分为两大类,一类是传统防御技术,另一类是主动防御技术.传统的防护策略主要使用防火墙、入侵检测等技术抵御攻击,然而这些静态的防御技术不足以应对微服务架构中的安全问题.主动防御技术则通过引入
18、动态性、异构性和冗余性等机制,可从参数、软件、平台等多个层面采取相应策略来实施防御,代表性的技术有MT D、拟态防御等.同时,这些机制的引入会对系统开销和服务连续性造成一 定 的 影 响.因 此,恰 当 分 析 建 模 威 胁 和 工 作 场景,选取恰当的防御 策 略并 进行 评估,是主 动防 御 发挥 最佳效果的关键.J i n等 提出了一种动态安全评估与优化的MT D策略,其引入中介中心性的概念来评估云环境中节点的重要性,并对关键节点实施MT D策略.虽然该策略能够有效地提高云环境的安全性,但文中并未给出关键节点的评判标准,这样可能会增加系统开销且达不到最优的防御效果.Z h a n g等
19、对文献 中提出的“要地”保护策略做出了改进,提出了一个基于D QN算法的MT D策略优化方案,该方案对云中所有的微服务都使用动态清洗的主动防御策略,通过调整微服务的动态清洗周期来优化整体的防御效率,并且该策略无需防御者调节参数就可以实现安全与开销的折中.B a r d a s等 提出了一个可以捕获云环境中服务依赖性的MT D平台,通过实时替换计算实例的最佳策略来最大限度地增大攻击者的攻击难度.Z e n g等 提出了一种动态异构调度方法,该方法基于MT D思想对动态异构式系统中的计算实例执行实时动态调度,可以在不影响正常服务的前提下阻断攻击者的攻击行为.C o n n e l l等 分析了重新
20、配置资源所需的时间及重新配置率与攻击者的成功概率之间的关系,并提出了一个用于评估MT D对重新配置资源的可用性和性能影响的定量分析模型.该模型允许防御者根据重新配置时间选择重新配置率和重新配置技术.M a l e k i等 提出了一个基于马尔可夫模型的MT D分析框架,该框架允许对广泛的MT D策略进行建模,并给出了攻击者的成功概率与所花费的时间/成本之间的关系,同时还展示了如何使用他们的方法分析MT D的组成.P e n g等 提出了一种基于概率部署的MT D策略,该策略考虑了攻击者对目标服务攻击面的累积影响,并基于云服务攻击面与攻击时间的关系,利用云服务的异构性与动态性使服务更具抵御攻击的
21、能力.实验证明了所提出的MT D策略在使用异构和动态攻击面保护云服务 方 面的 有效 性.H o n g等 提出使用分层攻击表示模型(H i e r a r c h i c a lA t t a c kR e p r e s e n t a t i o nM o d e l,HA RM)来分析和评估不同MT D策略的有效性 和 可 扩 展 性,并 使 用 重 要 性 度 量(I m p o r t a n c e M e a s u r e s,I M)来计算重要节点,同时在这些节点上部署MT D策略.A l a v i z a d e h等,提出了一种使用安全建模形式化来评估组合MT D技术
22、有效性的方法,该方法使用网络中心度量(N e t w o r kC e n t r a l i t yM e a s u r e s,N CM)计算云中的关键组件,并分别从系统风险和可靠性的角度评估其安全性.模型建立本节首先介绍云环境下的威胁模型,然后利用攻击图模型建模基 于 微 服 务 的 云 攻 击 场 景,并 结 合D R S分 析 其 安全性.威胁模型假设云平台和服务提供商是可信的且攻击者来自外部网络,攻击者的目的是获取系统上未经授权的权限或窃取用户刘轩宇,等:基于自适应遗传算法的微服务移动目标防御策略的隐私数据.图给出了一个基于微服务环境的攻击场景示例,对攻击目标、攻击过程及攻击能力
23、的描述如下.()攻击目标:云环境下所有运行的微服务都有可能成为攻击者的攻击目标.微服务是由服务代码及其依赖库组成的服务应用程序,本文假设其中有一些可以被攻击者利用的漏洞.()攻击过程:假设攻击者根据网络杀伤链理论 发起攻击.具体来说,攻击者首先执行各种侦察探测以识别攻击目标中的漏洞,当攻击者掌握了一个或多个攻击目标中的可利用漏洞,并且假设攻击者具有利用一个或多个攻击成功的已知漏洞的经验,针对这些漏洞选择攻击方法(如执行恶意代码或横向移动等),破坏攻击目标,实现对攻击目标的持续利用.()攻击能力:本文只关注应用程序自身的漏洞以及微服务之间的横向移动攻击.假设攻击者来自外部网络,并且只可以向对外开
24、放端口的公共服务发起攻击.若图中的服务A被攻击者成功利用后,攻击者可以继续对与服务A存在依赖关系的服务发起攻击,即服务C,以实现在服务间的横向移动.假设云环境中网络配置是根据网络隔离策略制定的,只有当微服务之间有依赖关系时,两个微服务间的网络才是可达的.图基于微服务环境的攻击场景示例F i g E x a m p l eo f a t t a c ks c e n a r i ob a s e do nm i c r o s e r v i c ee n v i r o n m e n t此外,攻击者的攻击能力也是受限制的,假设攻击者不知道微服务的配置细节,包括微服务的编排、微服务在云中的放置
25、以及微服务的副本数量.需要强调的是,本文假设攻击者的目标只有运行中的任务,而动态轮换过程不受攻击的影响.基于上述分析,解决云环境下微服务的安全问题是具有挑战性的.D R S原理基于上述威胁模型,本文结合MT D思想提出一种静态防御策略D R S,通过周期性轮换攻击者到攻击目标最短路径上所有微服务的方法,实现阻断攻击者渗透云环境获取重要数据或横向移动的攻击过程.假设防御者已知云中微服务的所有配置信息,包括副本数量、微服务之间的调用关系以及各项微服务的漏洞信息等,并且D R S在部署云中微服务之前就已经被提前求解.总体来说,首先根据微服务之间的拓扑关系,利用D i j k s t r a算法确定攻
26、击者到攻击目标的最短路径,然后使用AG A求解其上所有微服务的动态轮换周期,并在云中对相应微服务进行策略部署,最后在云中创建具有D R S的微服务.上述策略能够抵御一定程度的攻击.具体而言,若微服务的动态轮换周期小于攻击者所需的攻击时间,那么攻击者就无法完成攻击;同样地,若攻击者已经攻破了某个微服务,并试图发起横向移动攻击,那么引入D R S,定期更换云环境中的微服务,使被挟持的微服务恢复清洁状态,就可以使攻击者失去对微服务的控制.理论模型A G是一种常用于分析网络脆弱性的技术,其涵盖了攻防场景中的所有攻击事件.根据上述威胁模型,对A G做出如下定义.定义将A G表示为一个有向无环图G(N,E
27、).N为图中所有节点的集合,在微服务场景下可以形式化为全部的攻击目标,即Nns|sS,其中S表示所有微服务副本集合;ENN是图中所有边的集合,每条边都表示有序节点对(Na,Nb)之间的攻击路径,其中Na,NbN且ab.攻击路径表示在攻击者成功控制前驱节点的条件下,利用后继节点的漏洞发起攻击的行为.定义将节点被成功攻击的概率定义为A G中边的权重,该值与两个指标有关:节点中漏洞的利用难度E D以及节点的动态轮换周期T.漏洞利用难度表示通过至少一个漏洞破坏攻击目标的难度.为了评估节点漏洞利用难度,本文使用通用漏洞评分系统C V S S v 中定义的基础分数指标(B a s eS c o r eM
28、e t r i c s)中的可利用性指标(E x p l o i t a b i l i t y M e t r i c s,EM)和时间指标(T e m p o r a lM e t r i c s)中的利用代码成熟度(E x p l o i tC o d eM a t u r i t y,E CM)来量化节点中漏洞的利用难度,其中EM量化每个漏洞的可利用性,E CM计算漏洞被攻击的可能性.EM的计算式如式()所示:EM(A VA CP RU I)()其中,A V(A t t a c kV e c t o r)代表攻击向量,该指标反映了可能利用漏洞的环境;A C(A t t a c kC o
29、 m p l e x i t y)代表攻击复杂度,该指标描述了为了利用漏洞而必须存在的超出攻击者控制范围的条件;P R(P r i v i l e g e sR e q u i r e d)代表权限要求,该指标描述了攻击者在成功攻击脆弱组件前必须拥有的权限级别;U I(U s e r I n t e r a c t i o n)代表用户交互,该指标描述了攻击脆弱组件对除攻击者之外的用户参与的需求.另外,由于攻击者能力及偏好未知且每个攻击目标中都有多个可以被利用的漏洞,因此每个漏洞都有被攻击的可能性.将E CM作为EM的权重计算节点漏洞利用难度E D.E DV(E CMEM)VE CM()其中,
30、V表示节点中所有漏洞的集合.为了研究微服务被成功攻击的概率与动态轮换周期之间的关系,本文假设攻击者在时间充足的情况下能够获取攻击所需的信息并渗透系统获取未经授权的权限或窃取重要数据,因此动态轮换周期越长,攻击者成功的可能性就越大.本文使用指数函数来表示每个独立的微服务被攻击者成功破坏的概率与攻击时间的关系.具体公式如下:PA(t)e(tTs)eTs()其中,Ts表示攻击者达到最大成功概率所需的时间,该指标可以间接反映漏洞利用难度,因此使用TsF(E D)表示二者C o m p u t e rS c i e n c e计算机科学V o l ,N o ,S e p 的映射关系.在函数的初始阶段攻击
31、者以低速率收集漏洞信息,随着时间的推移,所积累的漏洞信息量以指数形式增加,致使攻击成功概率不断变大,并在Ts时刻达到最大值.定义在给定的AG中,攻击者Na t t到攻击目标Nt a r之间的最短路径为A P:Na t tNt a r,攻击难度可以表示为E D(a t t,t a r).A P上的所有节点即为本文要部署D R S的节点.安全分析假设微 服 务 环 境 中 有R个 微 服 务MM,M,MR,并且每个微服务都有相应的轮换周期TT,T,TR.在确定每个微服务的副本数后,就可以根据 节所述部署AG.基于定义,对于部署D R S的节点,假设每次执行轮换动作后攻击者都要重新启动攻击流程,这就
32、导致攻击者需要付出更大的代价来达到攻击目的.式()表示执行动态轮换后节点漏洞的利用难度,该公式也可以形式化地表示部署D R S后的攻击成本.E D VE DTi()其中,V表示节点中所有漏洞的集合,Ti为节点的动态轮转次数.由于无法判断攻击者的攻击目标,根据上述对攻击者能力的描述,假设攻击者会选择攻击成功率最大的路径对目标展开攻击,因此本文采用攻击者到攻击目标的最短路径作为评估D R S有效性的方法,同时本文也根据上述最短路径来确定部署D R S的节点.相应地,D R S所带来的安全增益也可以通过最短路径的攻击难度的增量 E D(a t t,t a r)来量化,即:E D(a t t,t a
33、r)A PE D E D()对于动态轮换周期,若设置太短,则会浪费云资源并影响微服务的服务质量(Q u a l i t yo fS e r v i c e,Q o S),若设置太长,微服务会频繁地受到攻击者的攻击.因此本文采用微服务的动态轮换频率作为D R S的开销指标C,计算式如下:CA PTi()为了最大化D R S的防御效率,本文将防御回报率(R e t u r no fD e f e n s e,R o D)定义为安全增益与系统开销的比值.同时通过最大化R o D求解最优动态轮换周期,该问题可表示为:m a x E D(a t t,t a r)Cs t TiT,Tm i nTiTm a
34、 x()基于A G A的安全配置算法AG A是一种基于生物进化理论和自然遗传机制演变的元启发式随机搜索算法,被广泛用于解决有约束或无约束的优化和安全问题 .其不同于传统GA,传统G A的交叉概率和变异概率都会设置为固定值,因此不论个体是否优良,都会以相同概率进行交叉和变异,这样就会导致一些问题的出现.()影响算法效率.对于优良个体,应该尽量减小交叉和变异概率,使其尽可能被保留下来;而对于劣质个体,应增大其交叉和变异概率,使其在进化过程中被淘汰.()不能很好地满足种群进化过程中的需求.实际上,在进化初期,种群需要较大的交叉和变异概率,使得算法能够快速找到最优解的范围并且避免陷入局部最优;而在进化
35、后期,种群需要较小的交叉和变异概率,使算法在找到全局最优解后能够快速收敛,缩短算法执行时间,提高算法效率.A G A针对上述问题对传统G A进行了改进,其可以在进化过程中根据适应度函数的值自适应调整交叉概率与变异概率,并在完整搜索空间中快速找到全局最优解.A GA旨在达到种群多样性与收敛性之间的平衡,防止A G陷入局部最优解.本文采用A G A解决式()所示的问题,当适应度陷入局部最优,即个体分布较为集中,种群多样性较低时,交叉概率和变异概率会相应增大;相反,当适应度离散,即个体分布较为分散,种群多样性较高时,交叉和变异概率会自动减小.下面将针对A GA中的一些概念和遗传算子进行详细介绍.A
36、G A中的一些概念种群是搜索空间中的一组可能解,即根据适应度函数选择出来的一组解;个体是种群中的每一个可行解;染色体是对每个可行解的编码,可以使用二进制编码、十进制编码或十六进制编码技术;基因表示染色体中的每一位编码,即每个可行解中的分量;适应度函数用来评估每个个体在种群中的适配程度.在本文中,种群为一组可能的微服务安全配置,个体为种群中对应的每条最短路径上微服务的安全配置,染色体表示对每条最短路径的安全配置进行编码.由于本文使用十进制编码,因此该值即为需要执行动态轮换的微服务的轮换周期的集合.基因表示最短路径上每个微服务的具体安全配置,适应度函数f()就是评估函数,即式().遗传算子遗传算子
37、可以分为选择算子、交叉算子和变异算子.下面将分别对这种算子进行介绍.选择算子选择算子是A GA中每个循环的开始,目的是根据概率从当前种群中选择个体,从而产生新一代种群.本文使用的选择技术是轮盘赌选择,其中个体被选中的概率与其适应度大小成正比,公式如下:Psf(xi)xiXf(xi)()其中,f(xi)是个体xi的适应度,xiXf(xi)表示种群的适应度.根据Ps画出选择轮盘,固定选择指针,转动轮盘随机选择个体,由于优质个体的适应度高,在轮盘中所占比例大,因此被选中的可能性很大.该方法可以大概率地将优质个体保留到下一代种群中,有利于A GA找到全局最优解.自适应交叉算子自适应交叉算子是A GA中
38、的一个重要步骤,为了增加种群的多样性,提高A G A的全局搜索能力,需要在种群中随机选择两个个体进行交叉操作,具体公式为:Pckfm a xf fm a xfa v g,f fa v gk,f fa v g()其中,个体以概率Pc进行交叉操作,fm a x为当前种群中的最大刘轩宇,等:基于自适应遗传算法的微服务移动目标防御策略适应度,f m a x(fa,fb)表示进行交叉操作的两个个体适应度的最大值,fa v g为种群的平均适应度,参数k,k均为,间的常数.因此,对高适应度的个体实施低交叉率,有利于保留优质基因;对适应度低的个体实施高交叉率,有利于淘汰劣质基因.自适应变异算子自适应变异算子在
39、A GA中与自适应交叉算子同样重要,其能够提高A GA的局部搜索能力.变异算子是针对某一个体,以一定的概率改变其分量,公式如下:Pmkfm a xffm a xfa v g,ffa v gk,ffa v g()其中,个体中的分量以Pm进行变异,f表示进行变异操作个体的适应度,fm a x与fa v g表示的含义与式()中相同,参数k,k均为,间的常数.因此,对高适应度的个体实施低变异率,有利于保留优质基因;对适应度低的个体实施高变异率,有利于淘汰劣质基因.AG A中的自适应交叉算子与自适应变异算子在个体层面和种群层面都能进行较好的自适应,但是对于种群中适应度最高的个体,其自适应交叉算子与自适应
40、变异算子的值均为,这就使得该个体会被保留到下一代种群中.结合选择算子,可能会导致该个体以指数形式在新种群中增长,这会引起A GA过早收敛或陷入局部最优,因此A G A为每个个体都引入一个突变概率Pm,本文将Pm设置为 .A GA算法的具体流程如算法所示.算法A GA的运行流程输入:种群规模p o p s i z e,迭代次数N G E N输出:微服务的最优安全配置随机生成微服务安全配置范围R p o p R,p o p s i z e/p o p为初始化集群/;i n db e s ts e l e c t B e s t(p o p)/从p o p中选择适应度最大的个体/;f o re p
41、i s o d e i nr a n g e(N G E N):s e l e c t p o pS e l e c t i o n(p o p,p o p s i z e)/s e l e c t p o p为新一代种群/;w h i l e l e n(n e x t o f f)!p o p s i z e/n e x t o f f为下一代种群/;o f f s s e l e c t p o p p o p()f o r_i n r a n g e()/将s e l e c t p o p根据适应度升序排列,并删除适应度最小的两个个体,生成子代种群/;r r a n d o m r
42、a n d o m();i f r Pc,t h e n i,iC r o s s o p e r a t e(o f f s)/从o f f s中随机选择两个个体进行交叉/;i f r Pm,t h e n iM u t a t i o n(i);iM u t a t i o n(i)/对交叉个体进行变异/;n e x t o f f i,i/将变异后的个体加入下一代种群/;e l s e n e x t o f f i,i/将交叉后的个体加入下一代种群/;e l s e n e x t o f f o f f s/将子代加入下一代中/;p o p n e x t o f f/更新当前种群/
43、;b e s t_i n dm a x(i n db e s t,s e l e c t b e s t(p o p)/选出适应度最高的个体/;E N D 获取最优个体,即微服务的最优安全配置.A G A最初会随机生成一个初始种群,即父代;计算适应度,然后经过选择、交叉、变异等遗传算子生成新种群,即子代,重复进化过程,直至选择出最合适的基因,并组合成最优秀的个体.实验与分析本章在实际环境下验证微服务动态轮换方法的有效性.实验环境与参数设置本文实验采用云编排平台K u b e r n e t e s搭建微服务云环境,包括台服务器,配置均为 核,GH z,G B内存,其中台为控制节点,台为计算节点
44、.在上述云平台上部署了一个由项微服务组成的w e b应用,微服务之间的关系如图所示,其漏洞的各项信息如表所列.需要说明的是,表中E CM的值是从E x p l o i tD a t a b a s e中获取的最新值,其上限为,数值越大表示被利用的可能性越大.本文参照文献 中对攻击者能力的假设,根据式()可知,在给定微服务攻击难度的情况下,微服务被成功攻击的概率会根据轮换周期的不同而发生改变.表微服务应用漏洞T a b l eM i c r o s e r v i c ea p p l i c a t i o nv u l n e r a b i l i t i e sM i c r o s e
45、 r v i c eA t t a c kT a r g e tC V EI DEME CME DAA p a c h eC V E C V E C V E C V E C V E C V E BM e m c a c h e dC V E C V E C V E CT o m c a tC V E C V E C V E C V E C V E DI m a g e M a g i c kC V E C V E C V E EM y s q lC V E C V E C V E 根据微服务应用类型,本文假设攻击者的攻击目标为M y s q l,目的是窃取M y s q l中的重要数据.在生成
46、A G时,对于 无 状 态 应 用A p a c h e,M e m c a c h e d,T o m c a t以 及I m a g e M a g i c k,其副 本 能 够 单 独 提 供 服 务;而 对 于 有 状 态 应 用M y s q l,其通过集群的方式对外提供服务.因此本文考虑了在AG中 以个 节 点 代 替 多 个M y s q l副 本 构 成 的M y s q l集群.在算法层面,将微服务的配置信息以数组的形式输入AG A中,其中数组维度代表微服务的数量,数组中的数据代表每项微服务的副本数,代码执行后输出每个微服务的最优动态轮换周期.为了模拟实际生产中的复杂环境,本
47、文考虑C o m p u t e rS c i e n c e计算机科学V o l ,N o ,S e p 了微服务规模较大的场景,通过改变AG A的输入,增加输入数据的维度即可模拟大规模微服务场景.同时,在其他关于微服务场景的一些研究中,如文献,等也使用少量微服务拓扑模拟复杂场景.然而,增加A G A的输入数据量会导致代码执行时间和复杂度增加,在 节会进行具体分析.为了防止AG A陷入局部最优解,本文设定参数kk,这使得适应度不超过种群平均适应度的个体必须进行交叉操作,从而提高AG A的全局搜索能力;同理,设定参数kk,利用适应度低于种群平均适应度的个体在搜索空间中寻找包含最优解的范围,因为
48、这种个体本就应该被打乱.本文使用D i j k s t r a算法计算最短路径,并对最短路径上的微服务进行动态轮换.实验分析为了验证D R S的性能和可扩展性,本文首先在实验场景下部署不同副本数量的微服务应用,然后在不改变微服务副本数量的前提下,逐渐增加AG A的迭代次数,并分别对防御回报率和时间开销进行量化和测量.图给出了D R S的防御回报率随微服务副本数和A G A迭代次数的变化趋势.从整体上看,D R S所产生的防御回报率随微服务副本数量的变化趋势大致相同,并且收敛后的防御回报率相等.如图(a)图(d)所示,在微服务副本数分别为 ,和 的情况下,D R S的防御回报率最后都收敛于 .对
49、于图中的每一幅子图,在微服务副本数量固定的条件下,对A G A分别进行了,和 次的迭代.实验结果表明:()微服务副本数量越大,A G A收敛到最优解的迭代次数就越多,例如,对比图(a)与图(b)可知,当 微 服 务 副 本 数 量 为 时,A G A分 别 在 次、次、次和 次时收敛,而当微服务 副本 为 时,AG A分别在 次、次、次和 次时收敛;()A G A的迭代次数越多,所得到的防御回报率就越大.如图(c)所示,当微服务副本数为 时,A GA在不同迭代次数下防御回报率的收敛值分别为 ,以及 .综合来看,A G A在收敛时间上表现良好,防御回报率在进化后期趋于稳定,基本都在迭代 次左右开
50、始收敛.(a)r e p l i c a s (b)r e p l i c a s (c)r e p l i c a s (d)r e p l i c a s 图D R S的防御回报率随微服务副本数和A GA迭代次数的变化F i g S e c u r i t yg a i no fD R Sv a r i e sw i t ht h en u m b e ro fm i c r o s e r v i c er e p l i c a sa n dA GAi t e r a t i o n s图给出了在不同微服务副本数量和迭代次数的条件下执行AG A的时间开销.图A GA在不同微服务副本数与