一种基于动态防御的服务功能链安全保障机制*
2020-12-02古英汉
古英汉 伊 鹏
(1.91977部队 北京 100036)(2.国家数字交换系统工程技术研究中心 郑州 450002)
1 引言
在云数据中心环境下,越来越多的网络服务依赖功能软件[1]。网络运营者和网络管理者需要将更多精力投入到保证网络功能的可靠运营上[2]。在虚拟服务功能链提供服务的过程中,服务链由于本身的串联结构特性而易受网络攻击威胁,进而导致服务性能下降。另外,用户隐私信息在服务部署中面临泄露等不确定风险[3]。在现有研究中[4],没有针对服务链设计有效的安全保障机制,对安全性的定性与定量度量没有清晰的标准[5]。
本节中我们基于动态防御技术概念[6],提出网络功能服务链攻击面的概念来对服务链所处安全环境以及受攻击状况进行度量,而后利用博弈论分析安全性与可用性,设计最优安全风险规避方案。我们将服务链作为一个防御系统进行研究,将服务链攻击面的概念形式化,使其作为服务链系统安全性的指示器。攻击面越大,表明服务链系统所处安全风险越大,越容易受到入侵和攻击。最后,基于攻击面的量化指标,提出减小系统面安全风险的攻击面转移机制以及基于合作博弈的安全规避方法。
2 服务链攻击面
2.1 攻击面概念
根据目前网络安全实践经验[7~8],很多攻击发生于从运行环境向服务链系统发送数据。同样地,许多其他类型的攻击由服务链系统向运行环境发送数据。在这两种类型的攻击中,攻击者利用通道连接服务链系统、服务链系统调用、向服务链系统发送数据项或从服务链系统接收数据项(攻击路径1)。攻击者也可以通过写入一个服务链系统将要读取的文件向该服务链系统发送数据(攻击路径2)。攻击者还可以通过使用共享的持久性数据项间接地从服务链系统接收数据(攻击路径3)。可以归纳出这样的规律,即攻击者利用服务链系统在环境中的方法、通道和数据项来攻击服务链系统。因此我们将服务链系统资源表示为方法、通道和数据的集合,从而以服务链系统资源定义服务链攻击面,图1为攻击面转换示意图。
图1 攻击面转换示意图
2.2 服务链攻击面度量指标
2.2.1 服务链攻击面度量概念
在云数据中心环境中,不是所有的资源都属于服务链攻击面,且不同的环境资源对服务链攻击面具体度量的贡献不尽相同。为了度量服务链系统的攻击面,我们需要识别与服务链系统攻击面相关的环境资源,并确定每种资源对服务链系统攻击面的贡献大小。如果攻击者能够利用一个资源对服务链系统进行攻击,那么该资源就属于攻击面的一部分。首先建立一个包含引入端和送出端的架构来识别这些与攻击面具有相关性的资源。资源对服务链攻击面度量的贡献由资源被用于攻击的可能性决定。然后引入相对威胁值的概念来估算环境资源对服务链攻击面度量的贡献大小。一个服务链系统攻击面度量需要考虑环境资源在方法、通道和数据三个维度的总贡献。度量的大小反映攻击者可能对服务链系统造成的破坏程度以及攻击者发动攻击所付出的努力成本。
需要说明的是,系统的攻击面度量并不直接代表系统的代码质量,因此攻击面度量越大并不能说明系统漏洞越多,而具有很少漏洞也不能说明系统攻击面度量小。实际上,较大的攻击面反映的是攻击者更有可能利用服务链系统中的漏洞以较少的努力成本对系统造成更大破坏。
2.2.2 引入端
服务链系统的代码库包含方法的集合。一个方法接收参数作为输入并返回结果作为输出。我们定义一个从系统环境中接收数据项的系统方法为这个系统的引入端。比如,一个功能或者一个读取配置文件的方法中接收输入的方法是一个引入端。一个服务链系统s的一个方法m在满足一下几点之一时成为这个系统的引入端:1)如果功能或系统s环境中的一个系统调用m并传递数据项d作为输入给m;2)m从持久性数据项中读取数据;3)m调用系统s环境中的一个系统API并接受作为结果返回的数据项。
2.2.3 送出端
定义一个发送数据项到系统环境中的方法为服务链系统的送出端。一个服务链系统s的方法m在满足下列条件之一时是送出端:1)一个功能或系统s环境中有系统调用m并接受作为结果从m中返回的数据项;2)m写一个持久性文件;3)m调用系统s环境中某个系统的API并传输数据项作为输入给API。
2.2.4 定量度量指标
我们假设一个函数derm:方法→Q,每个方法映射到一个数值集合Q中的相对威胁值。同样,我们为每一个通道假定一个函数derc:通道→Q;每一个数据项假设一个函数derd:数据项→Q。我们通过为环境资源属性分配数值来计算相对威胁值。分配数值根据对属性的总排序以及对服务链系统及资源环境的评估来设置。数值是由管理者主观选择的,数值大小取决于服务链系统和它周围的环境。因此目前尚不能实现将数值分配的过程自动化,相关参数分析可以参考文献[9]。潜在破坏性越高,方法的数目越多。同时,努力成本越低,方法数目越多。因此通过方法m的相对威胁值derm(m)可以决定m潜在数目。对于给出的两种方法m1和m2,如果derm1(m1)>derm2(m2),那么m1比m2出现在更多的攻击中。同样,对于一个通道c(或数据d)相应结果也成立。
我们按照方法、通道和数据三个维度量化服务链系统的攻击面度量,并分别评估各项维度对攻击面的总贡献。
我们根据以下三个步骤定量服务链系统的攻击面。
Step 1给定一个服务链系统s和其资源环境E(s),我们确定一个引入端和送出端集合ME(s),一个通道集合CE(s),以及不可行数据项集合IE(s)。
Step 2我们评估每个方法m∈ME(s)的相对威胁值derm(m),每个通道c∈CE(s)的相对威胁值derc(c)以及每个数据项d∈IE(s)的相对威胁值derd(d)ep3s的攻击面度量是
3 攻击面的转移
3.1 转移攻击面的方法
防御者可以使用三种不同的方案来修改攻击面,其中有两种方法涉及对攻击面的转移。
第一种方案,防御者能通过禁用或修改系统的特性(情况A)来转移攻击面或减少攻击面度量。
第二种方案中,防御者能够通过启用新的特性并禁止旧的特性来转移攻击面。禁止一些特性从攻击面移除一些资源从而转移攻击面。在这个过程中,攻击面度量可能是减少(情况B),保持不变(情况C),或者增加(情况D)。
第三种方案中,防御者可能通过开启新特性来修改攻击面。新特性会使攻击面关联新的资源,从而增加攻击面度量。不过,在这个过程中原来的攻击面依然存在,且现在和过去面临相同的攻击威胁(情况E),因而攻击面并没有转移。防御者也能够通过增加现有环境资源的相对威胁值而不用转移攻击面来增加攻击面度量。
从系统保护的角度看,对防御者而言,以上五种情况优劣排序如下:A>B>C>D>E。情况A好于情况B,因为情况B使某些攻击面具有了新的资源,使系统面临新的攻击风险。情况D虽然增加了攻击面度量,但当度量值增加量很低且攻击面转移程度很大时情况D也具有很强吸引力。
3.2 权衡安全性和可用性
防御者不可能一直具有转移和减少攻击面的能力。因此,防御者需要在增加攻击面度量的代价下引入新的特性或者修改现有特性来给用户或功能提供所需的服务。由于修改攻击面可能涉及服务链中具体功能节点,而一个功能节点可能处于不同服务链的交叉处,这样一条服务链系统攻击面转移可能会影响其他服务链。因此防御者必须在安全与可用性之间做出权衡。按照这个思路,本节讨论利用博弈论方法来确定修改和转移攻击面的最优方案。
4 云数据中心环境下的服务链攻击面转移博弈建模
4.1 建立攻击面转移模型
不同服务链可能部署在同一个物理平台上,攻击面的通道、方法和数据项等资源的变更可能对多条服务链产生影响,多个服务链系统实际面临相同的安全环境,需要保证同一资源环境的安全性。本节将对共生在同一资源环境中的多服务链系统的安全优化问题归纳为合作博弈问题[10~11],进而确定满足最大环境安全性的最优方案。
服务链攻击面的合作博弈问题,就是部署在相同资源环境中的不同服务链系统达成协议,共享安全利益,共同降低安全风险。在本节所讨论的问题中,单个服务链系统虽然能够单方面减少攻击面,但同时可能会使资源环境中其他系统攻击面增加,资源环境面临的总的安全风险并没有降低,而资源环境的安全将直接影响其中服务链系统的安全。
将所有可以提供功能的资源集合用CP={CP1,CP2,...,CPp}(p∈{1,2,...,P}) 表 示 ,拥有有效资源的物理平台编号为{m1,...,mi,...,mM},mi表示一个有效物理平台,1≤i≤M,M是资源环境中存在的物理平台数量。每个物理平台mi上剩余资源用资源向量表示。将服务链系统1,2,...,U提交的攻击面变换任务从1到τ进行编号,每个任务对应一个虚拟功能类型。整个资源环境中攻击面转换策略可以用表示,其中表示物理平台mi上分配给任务τ的资源数量。
4.2 优化资源目标
由于云数据中心环境下服务链所处环境复杂,用户需求多样,本节考虑在设计攻击面转移时基于两点优化目标考虑。第一是从服务功能链服务性能指标,第二是安全性指标。本节中,安全性指标主要由攻击面度量来衡量,考虑方法、通道和数据项三个因素。服务链性能指标主要由响应时间、开销、系统有效性、可靠性和可信度,其中有效性、可靠性、可信度值越大表示服务性能指标越好,响应时间和开销越大则表示服务性能指标越差。需要说明的是,此处的可信度意义在于表征安全对服务的重要性,并不是攻击面所描述的系统自身安全性。
服务性能指标用向量 {Q1,Q2,...,Q5} 表示,其中每项指标在[0,1]区间内。我们赋予每项指标一个权重值,对应向量表示为{w1,w2,...,w5},具体值由网络管理者与服务对象指定。我们将服务性能指标用向量{Q1,Q2,...,Q5} 归一化处理后得到{q1,q2,...,q5},继而得到服务性能指标公式:
由于资源环境中的物理平台的计算和存储能力已知,我们定义平台计算能力为PA(mi),则响应时间为
对于服务链系统和用户而言,响应时间越小,服务性能指标越好。归一化响应时间为
对于成本开销问题,网络管理者为资源进行定价,用PF表示,开销公式为
成本开销可以分为两部分。第一部分开销值域范围为[0,marku],在该范围内成本开销的服务性能参数设定为1。第二部分开销值域范围为[marku,Q2],在该范围内成本开销越大服务性能越低。归一化处理后的成本开销q2表示如下:
关于可靠性、有效性和可信度问题,其中可信度主要衡量提供服务链系统的网络提供者的信誉度,有效性和可靠性则主要衡量处理任务单元的物理平台。本节选择使用基于历史评价的分析方法对这三项指标进行量化。基于历史评价的方法根据使用过目标物理平台和服务功能资源的用户的评价数据,将三项指标分别划为五个等级,对应[0,1]范围内五个量化值。
5 基于博弈的攻击面资源调度方法和仿真
5.1 服务链安全资源调度
由合作博弈的前提条件可知,资源环境中所有服务链的共同目标是最大化安全和服务性能指标收益。此时,网络管理者分析服务链系统请求,确定资源环境范围,明确环境中的利益相关方,决策出稳定的服务链博弈参与方案。博弈目标是从各参与方可用资源中,选取最优资源利用方案以转移目标服务链的攻击面,同时考虑整个环境的安全性和服务性能指标,使得这两个指标最大化。
服务链攻击面转移博弈模型可以表示为一个五元组{CP,TL,Req,A,Utility} 。
CP是环境中的各资源系统{CP1,CP2,...,CPp}。
TL是博弈的参与者,即提交资源请求的服务链系统{1,2,...,u,...,U}。
Req是资源请求矩阵。
A={Au|u=1,2,...,U}是博弈参与者的备选策略。
Utility是全局收益函数,计算博弈总体利益。
对于一个稳定的服务链博弈集合,某个资源调度决策时刻有Γ个任务,每个任务所需虚拟功能类型资源向量为,每个物理平台mi上初始总资源向量为是物理平台m上k类型资i源的使用率,平台上平均资源使用率为。
由于服务链攻击面转移及资源调度问题被建模成合作博弈问题,因此收益函数只考虑所有博弈参与方总的收益。收益函数包含安全性指标和服务性能指标。
其中β为均衡系数(β>1),MΓ表示创建虚拟功能所占用物理平台数量。
算法步骤如下:
Step 1优化算法的初始化。对于参与攻击面改变的虚拟功能(其相关方法、通道和数据项参与变化)及其对应物理平台,计算收益值Utility,然后按收益值高低进行排序。所有的物理平台初始标记为非启用的状态。
Step 2用谈心算法求解该优化问题。假设τ-1个虚拟功能已经参与攻击面转移,处于最优变化方案,第τ个虚拟功能最佳变换方案是找到一个具有足够资源的对应物理平台,且保证收益最大。
Step 3开始时使用满足最优条件的物理平台。通过几轮创建后,第τ个最优物理平台上资源可能不够创建第τ个虚拟功能变换。此时物理平台需要决定是否删除平台上已有资源。被删除的资源按照攻击面大小进行先后排序,攻击面大的优先排除,知道物理平台拥有足够资源。
Step 4是否对作为服务链的虚拟功能的攻击面进行资源变换取决于相关资源的使用率和受攻击率,二者值超过服务链相关参数均值则考虑变换。
Step 5如果变换后,删除了部分平台资源,建立了新的虚拟功能τ,若平台安全性指标高于变换前,则继续变换。
Step 6如果不变换,这虚拟功能τ按照收益值排序选择次优的物理平台,判断是否需要进行攻击面资源变换,依次后推直到虚拟功能在某一物理平台上激活运行。
5.2 仿真测试验证
本节中利用开源网络安全仿真器NeSSi2[12]对本节提出方法进行测试。NeSSi2支持TCP/IP原型协议下构建的复杂应用场景。为了方便测试,本节对攻击者的攻击模型进行简化。假设当服务链某节点被攻击者攻陷后,攻击者立即准备攻击下一个服务链节点。当攻击者攻陷最终目标结点或者若干节点目标时判定攻击者成功进行了一次完整攻击。如果攻击者在攻击过程中,被攻陷的节点恢复运行,则判定攻击者本轮攻击失效。
图2 攻击图示意图
如图2攻击图示意图表示攻击者攻击路线与成功概率。在仿真中,考虑消息延迟等因素,攻击时间间隔参数设置为102。实验中模拟了1000次针对服务链的攻击。本节测试和记录了在攻击过程中动态防御系统的归一化开销和响应时间,以及不同防御状态下服务链受攻击概率和攻击者完整攻击次数。
图3 不同防御状态下受攻击率对比
图3不同防御状态下受攻击率对比展示了防御系统开启和关闭状态下服务链受攻击率对比值。实验中对服务链进行了多次攻击,结果稳定。数据结果显示在动态防御系统开启情况下恶意攻击率降低了38%以上,说明了攻击面转移规避方案的有效性。
图4 不同防御状态下攻击者完整攻击次数对比
图4不同防御状态下攻击者完整攻击次数对比展示了防御系统开启和关闭状态下攻击者完整攻击次数对比值。动态防御系统开启情况下完整攻击次数降低了61%以上。在攻击过程中防御系统不停地改变服务链的攻击面和网络特征,对攻击者的攻击造成很大障碍。
图5 动态防御系统时空开销
图5动态防御系统时空开销显示了防御系统在持续攻击下运行的开销和响应时间。随着攻击的持续,系统时空开销呈现出上升趋势。在理想的情况下,系统长时间运行时开销应趋于稳定值。经过1000次攻击,系统的开销并没有稳定,原因可能是服务链所处环境中资源有限,在攻击面资源转移过程中由于资源限制影响攻击面转移效率,增加了系统时空开销。
6 结语
本章中我们基于移动目标防御技术概念,提出网络功能服务链攻击面的概念来对服务链所处安全环境以及受攻击状况进行度量,而后利用博弈论分析安全性与可用性,设计最优安全风险规避方案。我们将服务链作为一个系统进行研究。首先将服务链攻击面的概念形式化,使其作为服务链系统安全性的指示器。攻击面越大,表明服务链系统所处安全风险越大,越容易受到入侵和攻击。为此,我们基于攻击面的量化指标,提出减小攻击面安全风险转移机制以及基于博弈论的安全规避方法。实验表明,本文提出方法能有效降低服务链受攻击率,提高其抗风险能力。