孙志勇,季新生,游 伟,李英乐
(国家数字交换系统工程技术研究中心,郑州 450002)
第五代移动通信系统(5G)需要适应增强移动宽带、海量机器类通信和超高可靠低时延通信三大应用场景,而不同应用场景在移动性、计费、安全、策略控制、延时和可靠性等方面具有差异化的要求,需要不同类型的网络服务。为此,5G网络引入网络功能虚拟化(Network Function Virtualization,NFV)[1]技术,通过在通用IT硬件平台上部署虚拟网络功能(Virtual Network Function,VNF)的方式,实现网元功能和专属硬件平台的解耦,并以网络切片[2]的形式向不同应用场景的用户提供灵活、多样的定制化服务。网络切片技术通过共用底层物理资源,能够达到资源灵活调度、资源利用率提升、网络服务按需部署的目的,但是虚拟节点共享物理资源也带来了一些安全问题,如攻击者通过侧信道攻击(Side-Channel Attack,SCA)[3-4]、虚拟节点溢出攻击(Virtual Node Escape Attack,VNEA)[5]等方式窃取用户隐私信息。
目前,针对虚拟化环境下节点信息泄露问题的研究主要分为两类。第1类方法对物理服务器的软硬件进行修改[6]。文献[7]提出一种Stopwatch架构来预防侧信道攻击,其主要解决I/O接口受攻击的问题。文献[8-9]通过对操作系统层进行修改和分区加密,以抵御侧信道攻击。文献[10]通过在物理主机中设置能隐藏程序运行时间的管理程序来抵御侧信道攻击,该方法主要预防特定类型的信息窃取攻击,难以应对多种类型或未知类型的攻击。第2类方法对虚拟机进行动态迁移,这种方法能够抵御不同类型的因共享物理资源导致的攻击。文献[11-13]利用移动目标防御[14]的思想对同一物理节点上的虚拟机进行动态迁移,通过限制共存时间来保证目标虚拟机不被恶意主机窃取隐私信息,从而增加了侧信道攻击的难度。与第1类方法相比,第2类方法不需要修改物理服务器的软硬件,但虚拟机的动态迁移受制于迁移算法、迁移开销和网络环境,并且虚拟机动态迁移过程存在迁移失败的风险。文献[15]设计了一个简单的攻击实验,证明在虚拟化环境下虚拟机进行动态迁移的过程容易受到网络攻击。文献[16]指出虚拟机在迁移过程中会削弱或抵消迁出节点虚拟机入侵防御系统和入侵检测系统的作用。文献[17]介绍了在虚拟机迁移时攻击者针对系统控制平面、数据平面和迁移控制模块的非法攻击手段、过程以及后果。文献[18]指出了内部人员利用虚拟机迁移的相关漏洞获取用户数据的可能性。
现有虚拟机迁移方法大多忽略了迁移本身带来的风险,尤其在移动核心网中的高可靠通信场景下,频繁迁移引起的安全问题不容忽视。本文对迁移频率过快的虚拟节点采用冗余跳变的工作机制,以解决虚拟节点的信息泄露问题。在此基础上,建立虚拟机迁移频率计算模型并提出一种基于冗余跳变的虚拟机迁移方法,以抵御信息窃取攻击并最小化迁移资源开销。
基于虚拟化技术的网络切片部署过程可抽象为服务功能链(Service Function Chain,SFC)的映射过程[19-20],其中,实现网络服务的一组网络功能集合被称为SFC[21]。服务提供商将SFC动态实例化至通用的底层物理设施网络上以向用户提供服务[22]。SFC映射过程及网络结构组成如下:
1)底层物理网络。底层物理网络由通用的硬件设备平台组成,用一个赋权无向图Gs=(Ns,Ls)表示,其中,Ns表示物理服务器的集合,Ls表示物理链路的集合。对于每一个物理服务器u∈Ns,都有一个可用的CPU计算处理能力,其值大小用C(u)表示。同样,对于每个物理链路(u,v)∈Ls,都有一个可用的物理带宽资源,用B(u,v)表示。
2)服务功能链。在虚拟化云环境中实现网络服务需要一组有序的网络功能VNF组成SFC,采用赋权有向图Gv=(Nv,Lv)表示SFC中全部VNF节点及其关系的逻辑视图,其中,Nv表示VNF的逻辑节点集合,Lv表示逻辑链路集合。
3)SFC映射。系统的资源管理和编排模块根据SFC的请求信息和底层物理资源状况,完成映射f:Gv→Gs,根据映射过程中的指标需求设置约束条件和目标函数,然后设计相应的虚拟映射算法,求解并找到满足映射需求的VNF和虚拟链路对应的最优位置[23]。
图1 服务功能链共享物理资源示例
Fig.1 Example of shared physical resources of service function chain
攻击者利用运行在同一物理节点上的虚拟机,可以发动攻击窃取用户信息,其中,主要攻击类型是侧信道攻击和虚拟节点溢出攻击。将图1中的物理节点B、D放大,分别示例2种攻击过程。侧信道攻击过程如图2(a)所示:1)目标节点b对共用的CPU cache、内存总线等物理节点资源发生作用;2)恶意虚拟节点e通过共用的物理节点资源对虚拟节点b进行探测;3)根据探测结果完成1 bit信息的隐蔽传输,然后不断重复上述过程。虚拟节点溢出攻击过程如图2(b)所示:1)目标节点f上运行的自定义协议存在漏洞,恶意用户向其发送特定报文;2)目标节点f崩溃退出,向管理程序发送事件消息,进而触发漏洞或注入恶意代码;3)管理程序被控制,从而泄露其他虚拟节点的信息。
图2 2种虚拟节点信息泄露过程示例
Fig.2 Example of information disclosure process of 2 kinds of virtual nodes
在虚拟节点信息被攻击者窃取的过程中,主要存在如表1所示的3个安全影响因素[24]。
表1 虚拟节点安全影响因素
因此,为了避免攻击者发动侧信道攻击并成功窃取用户隐私信息,系统需要满足式(1)。
SΓε≤I
(1)
其中,I表示信息被攻击者成功窃取所需的最小信息量。
随着服务功能链中虚拟机数量的增多,部分虚拟机的CPU资源和隐私信息承载量较大,迁移需要达到较高频率才能有效抵御信息窃取攻击。但是,对所有虚拟机不断迁移会带来开销过大和算法收敛时间过长的问题,这不仅增大了网络资源消耗,同时迁移失败概率和迁移安全风险也会加大。在移动通信网络中,需要对用户隐私进行保护,但同时应该保证移动通信网络的高可靠性要求。本文考虑迁移本身的安全风险,提出一种基于冗余跳变的虚拟机迁移方法。在现有迁移方法的基础上,以承载隐私信息量和虚拟机CPU资源大小作为评判标准,将虚拟机可能泄露信息的速率进行排序,根据用户需求按等级分类处理,从而缩短虚拟机迁移算法的收敛时间并降低迁移开销。
以承载隐私信息量和虚拟机CPU资源大小作为评判标准,将虚拟机可能泄露信息的速率进行排序并根据用户需求按等级分类处理。将虚拟机隐私信息泄露速率定义为:
D=kIC
(2)
其中,k为常数,I为虚拟机承载的隐私信息量,C为虚拟机调用的CPU资源。根据D的大小对不同虚拟机采用不同的迁移频率,虚拟机的迁移周期为:
(3)
对于共享物理基础设施资源的虚拟机,为避免用户隐私信息泄露,在达到限制的共存时间后即进行迁移,参数D越大,迁移的周期越短,迁移频率也越高,网络中可能存在一部分虚拟机的参数D过大,需要迁移的周期很短,但迁移频率过高会给网络带来较高的安全风险。对于这部分虚拟机,如图3中的b节点,本文在映射阶段先将其冗余备份为节点b′,在网络部署完成后,相同功能的节点以迁移周期T进行交替跳变工作,既避免了因共存时间过长引起的隐私泄露问题,也解决了虚拟机频繁迁移带来的开销和风险。在图3中,箭头上的数字表示链路带宽资源值。
图3 节点冗余备份示例
本节基于上述服务功能链部署网络模型,对虚拟机设计具体的映射约束条件和映射目标约束,对虚拟机迁移设置具体的迁移条件和迁移目标约束,并提出可在计算机上实现的虚拟机映射算法。
2.1.1 备份映射模型
虚拟机映射即将服务功能链部署到物理底层网络以提供网络服务的过程,此过程需要考虑3个因素:采用冗余跳变工作方式的虚拟机的冗余备份,映射过程需满足底层物理节点和链路资源约束,映射的目标函数。变量说明如下:
约束条件如下:
1)虚拟节点映射约束:
(4)
(5)
(6)
式(4)表示SFC中一个虚拟节点只能被映射至一个物理节点;式(5)表示一个SFC中的不同虚拟节点不能被映射至一个物理节点;式(6)表示一个物理节点上承载的所有虚拟节点的CPU资源需求之和不能大于该物理节点的CPU资源。
2)虚拟链路映射约束:
∀(u,v)∈Ls
(7)
(8)
(9)
在满足上述SFC资源请求的条件下,目标函数为映射成本最小,具体如下:
(10)
其中,δt和φB分别表示虚拟机和虚拟链路的单位资源映射开销。SFC映射成本主要有虚拟节点映射的资源开销和虚拟链路映射的物理链路带宽资源开销两部分。
2.1.2 备份映射算法
本文基于冗余跳变的虚拟机映射算法描述如下:
算法1基于冗余跳变的虚拟机映射算法
输出虚拟节点映射方案f:Gv→Gs
5.continue
6.end if
9.end if
10.end for
13.for each(u,v)∈Lsdo
18.end if
19.end for
20.end for
在映射过程中,将隐私信息泄露速率D较大的虚拟节点优先映射到物理资源大的物理节点上,以提高节点的映射成功率,该过程利用贪婪算法实现。为使映射资源开销最小,在对虚拟链路进行映射时本文采用最短路径算法选择目标物理链路。
2.2.1 虚拟机迁移模型
工作在同一个物理主机上的虚拟机在达到共存时间阈值后需要迁移至另一个物理服务器工作,迁移过程中主要考虑3个因素:虚拟机的共存时间是否超过阈值,迁移过程中底层物理节点和链路的资源约束,迁移的目标函数。变量说明如下:
(11)
其中,t=λε,λ∈[1,Γ],ε为最小时间间隔。
在对虚拟机进行迁移时,在虚拟节点之间共存时间约束下,本文以最小化迁移资源开销作为目标函数。迁移开销为迁移过程中虚拟节点和虚拟链路的迁移开销总和:
(12)
其中,δ为虚拟节点单位资源迁移开销,φ为虚拟链路单位资源迁移开销。式(12)的第1项是虚拟节点迁移的资源开销,第2项是虚拟链路迁移的资源开销。
2.2.2 虚拟机迁移算法
本文基于冗余跳变的虚拟机迁移算法描述如下:
算法2基于冗余跳变的虚拟机迁移算法
输出虚拟机迁移方案M:Gv1→Gs
5.end if
6.end if
9.将所有满足迁移条件的物理节点放入集合N中
10.for(i=0;i≤length(N); i++)do
11.if migrate_node(N[i])==true&migrate_links(N[i])==true then//物理节点、物理链路是否满足资源//需求
//迁移到产生最小开销的物理节点上
13.end if
14.end for
15.end if
16.end for
在对服务功能链迁移的过程中,首先遍历所有已映射的虚拟节点,检查虚拟机在物理主机已工作时间是否超过该虚拟节点的共存时间约束值T,超过时标记该节点时间共存值为1,否则为0。对所有节点检查完后,在满足资源需求的条件下将时间共存值为1的虚拟机迁移至开销最小的物理节点上。
本文实验在Inter(R)Core(TM)i7-8750 CPU 2.2 GHz、8 GB RAM的计算机上进行,利用GT-IMT工具生成服务功能链和物理网络拓扑,使用Matlab软件编程实现服务功能链映射算法和迁移算法,最后分析仿真结果。
底层网络物理主机设为15个,物理链路为24条。物理网络中的节点计算资源(300≤C≤500)、链路的带宽资源(150≤B≤350)为固定值。每条SFC中虚拟节点数目服从[4,6]的整数随机均匀分布。SFC平均每10个单位时间发送一次映射请求,SFC的生命周期服从参数为40的指数分布。虚拟节点的计算资源需求服从[40,140]区间的均匀分布,带宽资源需求服从[20,120]区间的均匀分布,迁移节点的平均共存时间阈值设为10个单位时间。
将本文基于冗余跳变的虚拟机迁移方法与文献[12]提出的一般虚拟机迁移方法作对比,本文方法记为Backup,一般虚拟机迁移方法记为General。由上文可知,本文方法中所有虚拟机与现有一般动态迁移方法中所有虚拟机具有相同的共存时间约束,即与一般动态迁移方法相比,本文方法可取得相同的信息安全防护效果。下文在虚拟机映射和迁移的资源开销、映射成功率、迁移算法收敛时间和迁移失效率等5个方面进行仿真,并对比分析仿真结果。
1)虚拟机映射资源开销。如图4所示,相比一般迁移方法,本文20%冗余跳变的方法(指选取迁移频率前20%的虚拟节点进行冗余备份)映射平均资源消耗增加了21.81%,10%冗余跳变的方法(指选取迁移频率前10%的虚拟节点进行冗余备份)映射平均资源消耗增加了10.91%。本文方法对部分频繁迁移的节点采取冗余跳变的工作方式,且冗余备份节点的映射增加了虚拟机映射资源的开销。
图4 服务功能链映射开销对比
2)虚拟机迁移资源开销。如图5所示,相比一般迁移方法,本文20%冗余跳变的方法迁移平均资源消耗减少了25.27%,10%冗余跳变的方法迁移平均资源消耗减少了12.63%,原因是进行跳变工作的虚拟节点不需要再寻找物理节点进行迁移,降低了虚拟机迁移开销。
图5 服务功能链迁移资源开销
3)映射成功率。图6显示了不同迁移方式下服务功能链映射成功率随时间的变化情况。从图6可以看出,相比一般迁移映射方法,本文10%冗余跳变的方法备份成功率平均降低4.22%,20%冗余跳变的方法平均降低9.73%。由于基于冗余跳变的迁移方法有较多备份节点需要映射,因此映射成功率较低。
图6 服务功能链映射成功率
4)迁移算法收敛时间。图7所示为一般迁移方法和20%冗余跳变方法的迁移算法收敛时间对比,从图7可以看出,20%冗余跳变方法的迁移算法收敛时间比一般迁移方法平均减少了24.79%。由于冗余跳变方法部分节点不需要迁移算法进行节点的迁移,因此本文方法可明显减少迁移算法的收敛时间。在实际网络中,因为频繁迁移需要跳变工作的虚拟机占比较小,所以不会对网络映射资源开销、迁移资源开销、映射成功率以及迁移算法收敛时间产生太大影响。
图7 迁移算法收敛时间
5)迁移成功率。在仿真中设SFC所有节点、30%冗余备份节点、20%冗余备份节点和10%冗余备份节点的平均节点迁移成功率分别为99.9%、98.0%、99.0%、99.5%,其中,迁移失败包括迁移过程失败和迁移过程中系统被攻击成功2种情况。仿真结果如图8所示,从图8可以看出,在100个单位时间内,服务功能链采用一般迁移方法、10%节点冗余跳变方法、20%节点冗余跳变方法、30%节点冗余跳变方法的迁移成功率分别为65.53%、80.20%、88.68%、93.24%;在200个单位时间内,各方法服务功能链迁移成功率分别为42.94%、64.32%、78.64%、86.93%。因此,可得出如下结论:对迁移高风险虚拟机进行跳变工作,迁移失效概率将显著降低。在实际网络中,虚拟机迁移失败风险主要由少部分的高风险虚拟机引发,由实验结果可知,本文方法可明显降低网络中虚拟机迁移失败的概率。
图8 服务功能链迁移成功率
核心网引入虚拟化技术使得未来电信设备不再使用专用硬件设备,而是通过软件下发到统一的硬件上实现网络功能,这种方式能够提高资源利用率,但虚拟节点共享物理资源也带来了信息泄露的安全隐患。本文考虑主动防御技术的动态迁移方法中迁移本身存在的安全风险,提出一种基于冗余跳变的虚拟机迁移方法。通过建立虚拟机隐私信息泄露速率计算模型,得到各虚拟机的迁移周期。根据用户需求和网络环境选择不同比例的虚拟机进行冗余备份映射,采取冗余跳变的工作方式解决虚拟机之间共存时间过长带来的信息泄露问题,剩余虚拟机则在达到共存时间阈值后进行动态迁移。实验结果表明,该方法虽然增加了映射开销并降低了映射成功率,但减少了迁移资源开销和迁移算法收敛时间,并且在满足SFC服务性能要求的同时显著降低了网络中虚拟机迁移失败的概率。但是,如果频繁迁移的虚拟机占比较大,本文方法将存在资源开销较大的问题,因此,下一步将研究一种兼顾资源开销与网络安全性的防护方法。