谢 娜,谭文安,2,曹 彦,3,赵 璐
(1.南京航空航天大学计算机科学与技术学院,南京 211106;2.上海第二工业大学计算机与信息工程学院,上海 201209;3.许昌学院 信息工程学院,河南 许昌 461000)
随着计算机技术的发展,物联网终端和移动智能终端的数量激增,如智能手表、平板电脑、智能手机等,移动终端正在从简单的通话工具转变成综合信息处理平台。由于移动终端自身资源及计算能力的有限性,其在处理计算密集型应用时面临着计算能力不足的问题。移动云计算可将移动设备中的计算任务卸载到云端,由云中心集中进行处理,为那些资源受限的移动设备提供计算支持[1-2]。然而这种计算模式也存在一定局限性:一方面,终端设备产生的海量数据对网络传输造成了很大压力;另一方面,云服务器与移动设备间远距离造成较长的传输时延,无法满足电子医疗、无人驾驶等低时延移动应用要求。
为了解决上述问题,移动边缘计算作为移动云计算的互补泛型被提出。与移动云计算不同,服务器部署在靠近移动用户的位置,移动用户通过将计算任务卸载到边缘服务器上或周边空闲移动终端中,以满足快速交互响应的需求[3-4]。尽管任务卸载为移动用户提供了低延时的任务处理方式,但由于提供计算资源的移动终端身份具有复杂性和动态性,这对被卸载任务的安全性提出了新的挑战[5-7]。移动终端获取任务后具有任务的控制权,有可能滥用该资源,违背任务发布者的安全需求。现有解决这一问题的方法多是通过信任评估机制对移动终端的信任度进行评价,选取信任度较高的移动终端作为目的设备进行任务卸载[8-9]。信任评价因素主要包括其他交互设备对移动终端的信任评价、移动终端成功完成任务的比率等[10-11],但这些评估机制并没有关注移动终端自身可能存在的恶意行为。一方面,高信任度节点仍有可能发起内部攻击,滥用设备上的资源;另一方面,任务发布者也并不知道卸载出去的任务是如何被滥用的。因此,对于高安全领域的任务卸载,需要对被卸载的任务进行实时跟踪,及时发现滥用行为才能从根本上保证任务卸载的安全性。
为提高任务卸载的安全性,本文构造支持安全性分析的任务卸载流程,提出一个边缘服务器管辖范围内的上下文信息模型,实现对卸载任务的实时跟踪。在此基础上,构建面向移动边缘计算的多级安全信息流模型,通过对设备、服务和数据赋予一定的安全等级,约束服务流、数据流和服务执行过程。此外,基于MINLER 等提出的形式化模型偶图[12]描述移动边缘计算的上下文信息,利用偶图反应规则建模任务卸载过程,构造标注迁移边的标号变迁系统,实现对卸载任务的跟踪。
任务卸载的安全性问题得到了研究者的广泛关注,目前的研究大多集中在信任度评估方法上。文献[13]针对混合云场景中私有云需要将部分任务卸载到公有云时的安全性问题,提出了基于贝叶斯网络的信任模型,并给出了评估算法以实现私有云对公有云中服务声誉的评估。文献[14]在移动云计算中提出了一种任务卸载的信任度评估方法,基于移动用户对边缘服务器的打分结果对边缘服务器的声誉进行计算,为其他移动用户的任务卸载提供参考。以上工作针对的是混合云或者移动云计算场景。在移动边缘计算环境中,文献[8]基于改进的哈希函数构建了一个信任模型用于评估移动终端之间的可信关系。文献[9]介绍并提出了一个信任感知的任务卸载策略,首先基于机器学习分类方法对移动终端进行身份可信性和行为可信性评估,然后基于该信任评估结果,选取降低时延或能耗的终端为卸载目标节点。文献[15]针对移动边缘计算,提出了三层信任评估框架,边缘服务器对进入其管辖范围内的节点进行身份信任、能力信任和行为信任的评估,同时还提出了信任评估模型,该模型根据上下文环境不断更新移动终端的信任评估结果。以上工作都是通过信任评估机制决定任务卸载目标,并不关注恶意行为本身,无法应对高信任度节点发起的内部攻击。
目前,已有工作采用形式化方法分析云计算环境中的信息流安全性。文献[16]提出了一种服务组合安全隐私信息流静态分析方法,构建了服务信誉度、隐私数据使用目的及保留期限的格模型,利用隐私工作流网建模服务组合流程,分析服务执行过程中用户隐私的非法泄露问题。文献[17]面向云计算中的SaaS 层,提出了IFCaaS 分析框架,将信息流控制作为SaaS 层应用程序的安全验证手段。文献[18]针对联邦云场景,利用有色Petri 网在不同云之间的流动建模服务和数据以及访问控制的读写操作,以避免恶意节点发起的内部攻击。以上工作均是针对云计算环境,未考虑移动终端及服务的动态性,因此不适用于移动边缘计算场景。
从安全保障机制、服务动态性和移动动态性三个方面对相关工作进行对比分析,如表1 所示,其中:√表示支持;×表示不支持。
表1 不同研究方法的比较Table 1 Comparison of different research methods
移动边缘计算中的任务卸载是指移动用户将自身设备上产生的计算密集型或延迟敏感型任务迁移到边缘服务器或者周边空闲移动设备上执行。支持安全性分析的任务卸载流程如图1 所示。
图1 支持安全性分析的任务卸载流程Fig.1 Task offloading procedure with security analysis
1)上下文信息感知:移动边缘服务器获取其管辖范围内移动设备的位置、任务代码和数据的存储位置、移动设备中剩余的计算资源等信息。
2)节点发现:移动终端通过询问移动边缘服务器获取其邻近区域内可用的计算资源,这些资源包括边缘服务器上的资源和周边移动终端上的空闲资源。
3)任务分割:移动终端对需要处理的任务进行分割,在分割过程中尽量保持程序功能的完整性,便于后续进行卸载。
4)卸载决策:根据可用的计算资源和任务分割结果,选取任务卸载策略。
5)任务传输:将需要卸载的任务,包括任务代码和任务的数据输入,依据卸载策略传输到目的设备。在此过程中移动设备存储状态改变,因此,更新上下文信息模型。
6)执行计算:目的设备通过启动虚拟机机制,对卸载到该设备中的任务进行计算。
7)结果回传:目的设备将计算结果回传给任务的发布者。
8)任务删除:目的设备将卸载的代码以及计算结果删除。
通过对以上过程进行分析可知,为保证被卸载任务的安全性,需要考虑三个方面:一是卸载的安全性,即要保证任务代码(后面将其称为服务)和数据被卸载到安全的目的设备中;二是执行的安全性,即卸载数据在目的设备中被正确执行,如卸载数据不能被低等级服务执行;三是删除的安全性,即计算结果回传后或任务执行中断后目的设备要删除与任务相关的信息。
为了实现安全的任务卸载,本文提出任务卸载的安全性分析框架,具体流程如图2 所示。首先利用偶图建立上下文环境信息模型,描述当前环境下设备位置、服务和数据存储位置、服务-数据输入关系、实体安全等级等信息;其次基于偶图反应规则建模任务卸载过程,包括任务迁移、服务执行、结果回传及任务删除;然后建立以偶图模型为初始状态点,任务卸载过程中标注迁移边的标号变迁系统;最后通过模型检测技术验证卸载安全、服务执行安全以及删除安全的可满足性。
图2 任务卸载安全性分析框架Fig.2 Security analysis framework of task offloading
为约束服务和数据被卸载的过程及服务执行的过程,本文构建了多级别的安全信息流模型。
定义1面向移动边缘计算的多级安全信息流模型具体定义如下:
1)D={di|i∈N},表示边缘服务器和愿意贡献设备资源的移动终端集合。
2)S={si|i∈N},表示服务(任务)集合。
3)Ο={οi|i∈N},表示数据集合。
4)A={ai|i∈N},其中ai表示边缘服务器di可以提供计算能力的区域范围。
5)Lsec={ℓsec,≤sec},为安全等级的格模型。
6)γ:D∪S∪Ο→Lsec,表示设备、服务和数据的安全等级。设备的安全等级为设备的信任度的等级,服务和数据的安全等级为被卸载代码和数据的隐私敏感度。
7)loc1:S∪Ο→D,表示服务和数据所处的位置。
8)loc2:D→A,表示设备所处的区域。
9)I:Ο→S,表示数据Ο是服务S的输入数据。
10)服务流和数据流的安全约束:r(loc(s))≥r(s),r(loc(ο))≥r(ο),表示服务和数据只能部署在比它们安全等级高或者相等的设备上。
为便于讨论,设ℓsec={N,L,M,H,TH}。当ℓsec表示设备的信任度时,N、L、M、H、TH 分别表示不信任、低信任度、中信任度、高信任度和完全信任;当ℓsec表示服务和数据的隐私敏感度时,N、L、M、H、TH分别表示无隐私、低隐私敏感度、中隐私敏感度、高隐私敏感度和最高敏感度。
偶图是由图灵奖获得者MINLER 等于2001 年提出的一种基于图形的形式化理论工具,其融合了Pi 演算和环境演算的优势,旨在强调计算(物理的和信息的)位置和连接[19]。本节利用偶图能够直观表达位置信息和连接信息的特点,建模任务卸载过程,分析卸载过程中的安全性。
偶图由位置图(place graph)和连接图(link graph)组成。位置图用于表示各个节点之间的嵌套关系和位置信息。如图3 中节点ν1位于节点ν0内,节点ν0位于区域R0内,地点1位于节点ν0内,地点0位于节点ν2内。地点(site)是一类特殊的节点,用于抽象表示模型中暂时不关心的信息。在节点上可以定义端口(port),用黑色的圆点表示。控制(control)用于表达对一类节点的描述,相同控制的节点具有相同的端口数。连接图表示节点之间的连接关系,节点通过端口连接。连接边分为开放边和封闭边,外部名y0、y1、y2和内部名x0都为开放边,e0、e1都为封闭边。
图3 偶图Fig.3 Bigraph
偶图能够比较直观地描述建模对象的位置信息和连接信息,具体定义如下:
定义2(偶图)偶图F=(VF,ΕF,ctrlF,prntF,linkF):<m,X>→<n,Y>是由位置图FP与连接图FL组成的五元组。
1)位置图FP=(VF,ctrlF,prntF):m→n。其中:m为地点数;n为区域数;VF为节点集合;ctrlF为节点到控制的映射,ctrlF:VF→K;prntF为节点间嵌套关系,prntF:m⊎VF→VF⊎n。
2)连接图FL=(VF,ΕF,ctrlF,linkF):X→Y。其中:X为内部名;Y为外部名;VF为节点集合;ΕF为连接边集合;ctrlF为节点到控制的映射;linkF为边的连接关系,linkF:X⊎PF→ΕF⊎Y,PF为节点端口集合。
在动态结构方面,偶图通过反应规则(R,R′)对系统进行重构,反应规则中R称为反应物,R′称为生成物。如果反应物和偶图或者偶图部分匹配时,将偶图中与反应物匹配的部分替换成生成物,从而实现状态更新。
偶图的图形表示具有直观性的特点,但是不利于系统的理解和处理,因此,MINER 等提出利用代数系统来描述偶图模型。相对于图形化的表示,代数系统便于系统的构建、演化和推导。偶图的项语言描述如表2 所示。
表2 偶图项语言描述Table 2 Description of term language in bigraph
移动边缘计算中上下文环境信息包括设备位置、服务和数据的位置、服务和数据的输入关系以及实体的安全等级。设备中剩余的计算资源并不影响任务卸载的安全性,因此,模型中并不考虑该信息的表达。上下文环境到偶图的转换规则如下所示:
其中:设备、服务、区域以及安全等级都映射为节点;服务和数据处于哪个设备,设备处于哪个边缘服务器的区域范围都映射为节点之间的嵌套关系;设备、服务以及数据所拥有的安全等级、数据和服务之间的输入关系都映射为连接关系。
例1假设边缘服务器Server 的上下文环境信息如下:
相对应的偶图模型如图4 所示。
图4 上下文偶图模型Fig.4 Bigraph model of context information
图4 对应的项语言描述为:
任务卸载的过程包括服务和数据的迁移、服务的执行、结果回传和任务删除4 个步骤,每一步都会导致服务和数据所处的状态发生改变,系统需要建模这些状态变化实现对服务和数据的跟踪,以监测目的设备是否滥用服务和数据。图5~图8 给出了服务和数据的迁移、服务的执行、结果回传以及任务删除的偶图反应规则的图形表示。
图5 服务和数据迁移Fig.5 Service and data migration
图6 服务执行Fig.6 Service execution
图7 结果回传Fig.7 Result return
图8 任务删除Fig.8 Task deletion
1)服务和数据迁移:移动终端D1 将服务S1 和服务输入数据Ο1 卸载到移动终端D2 上,表示为Migrate(Ο1,S1,D1,D2),其中4 个参数依次为卸载的数据、卸载的服务、任务发布的设备和任务接收的设备(目的设备)。Ο1 节点和S1 节点从D1 节点迁移至D2 节点内。
2)服务执行:移动终端D2 上执行服务S1,输入数据Ο1,输出数据Ο1*,表示为Execute(Ο1,S1,D2)。3 个参数依次表示为输入数据、执行的服务和任务所在的设备。Ο1 节点变为Ο1*节点并嵌套在S1 节点内。
3)结果回传:移动终端D2 将输出数据Ο1*回传给任务发布终端D1,表示为Return(Ο1*,D2,D1)。3 个参数分别表示回传的计算结果、提供计算资源的设备和发布任务的设备。Ο1*节点同时也嵌套在D1 节点内。
4)任务删除:移动终端D2 将计算结果回传后,删除相关的数据和服务,表示为Delete(Ο1*,S1,D2)。3 个参数分别表示删除的数据、删除的服务和执行删除任务的设备。Ο1*和S1 节点在D2 中被删除。
当反应规则集中的反应物与上下文偶图模型匹配或者部分匹配时,生成物替换反应物,得到新的偶图模型。对于一个上下文偶图模型,匹配的反应规则可能包含多条,因此,最终可得到一个以反应规则作为迁移边的标号变迁系统。在该标号变迁系统中,每一个状态都应满足卸载安全和服务执行安全要求,计算回传后的下一个状态应满足删除安全要求。
假设当前在边缘服务器Server 的服务区域内,有移动终端D1、D2、D3、D4,服务器和移动终端对应的安全等级分别为TH、TH、L、M、N。移动终端D1是任务的发布者,任务的执行流程如图9 所示。服务S1~S4 对应的安全等级分别是L、L、M、H,数据Ο1~Ο5 对应的安全等级分别为L、L、L、M、H。
图9 任务执行流程Fig.9 Task execution process
任务和数据可在任务发布终端D1 中被执行,也可卸载到边缘服务器Server 中,除此之外,也可卸载到移动终端中,设D1~D4 都可提供一定的计算资源。根据服务流和数据流的安全约束,服务S1、S2和数据Ο1~Ο3 可被卸载到D2、D3 移动终端中,服务S3 和数据Ο4~Ο6 可被卸载到移动终端D3 中,服务S4 的安全等级为H,因此,任务只能在移动终端D1或Server 中执行,具体如表3、表4 所示,其中,符号“√”表示服务或数据可以被卸载至该设备上。
表3 服务的安全等级和可卸载的设备Table 3 Security level of services and offloading devices
表4 数据的安全等级和可卸载的设备Table 4 Security level of data and offloading devices
目前,针对偶图和偶图反应系统已有很多工具支持,如DBtk 工具[20]、BigRed[21]原型编辑器、BigraphER工具[22]、BigMC[23]工具。其中,由哥本哈根技术大学的PERRΟNE 等开发的BigMC 工具,其语言描述与偶图和偶图反应系统的项语言描述比较相近,易于理解。BigMC 可以将衍化过程生成dot 脚本,使用XDΟT、graphviz 等软件进行图形化的表达。本文采用BigMC工具验证是否满足卸载过程安全需求。
当D1 卸载服务S1 和输入数据Ο1 时,初始上下文环境偶图模型为:
由表3、表4 可 知,任务还 可卸载 到D2、D3 和Server 中执行。执行该卸载任务,对应的标号变迁系统如图10 所示,安全的上下文环境模型包括12 个(除灰色的状态和相应的迁移边)。
图10 任务卸载的标号变迁系统Fig.10 Labeled transition system of task offloading
终态的上下文环境偶图模型为:
最终,数据Ο2 返回给任务发布者D1。
D1 在任务卸载后就失去了对任务的控制权,内部攻击者就可滥用该资源。假设D2 为恶意节点,将数据Ο1 和服务S1 卸载到移动终端D4 中,此时上下文环境模型进入状态i,该状态违反服务流和数据流的安全约束,数据和服务被卸载到了低安全等级的设备中,检测该违反状态的时间为0.000 2 s。D2 作为恶意节点,假设其在执行服务S1 时,将输出数据Ο2 的安全等级降为N并发送给D4,此时上下文环境模型进入状态j,该状态违反服务执行的安全约束,检测该违反状态的时间为0.000 14 s。假设D2 将输出数据Ο2 回传后,仍保留Ο2 的副本,此时上下文环境模型进入状态k,该状态违反删除的安全性,检测该违反状态的时间为0.000 16 s。
同样地,如图11 所示:在任务S2 和S3 的卸载过程中,安全的上下文环境偶图模型有108 个,建模时间为0.074 275 s;在任务S4 的卸载过程中,安全的上下文环境偶图模型有6 个,建模时间为0.000 9 s。
图11 任务卸载状态数和建模时间Fig.11 Number of states and modeling time for task offloading
假设初始场景中,所有的服务安全等级都高于数据的安全等级,设备的安全等级都低于服务和数据的安全等级,即服务和数据可被卸载到周边任意的设备上执行。基于该假设下所构建的标号变迁系统中的节点数和迁移边数最多。表5、表6 给出了这种“最坏”假设下(即构建的标号变迁系统最复杂),运行时间和内存消耗随着设备数、服务数量和数据数量的变化。
表5 不同终端数量下的运行时间和内存消耗Table 5 Running time and memory consumption under different terminals numbers
表6 不同服务和输入数据量下的运行时间和内存消耗Table 6 Running time and memory consumption under different services and input data
对于一个服务,其输入数据数量、输出数据数量应该都为个位数,假设每个服务的输入数据个数为2,输出数据个数为1。表5 给出了服务数量和输入数据量分别为10 和20,而移动终端节点数量变化时运行时间和内存消耗的变化情况。可以看出,随着移动终端节点数量变化,运行时间和内存消耗都呈现指数增长,这是因为服务和数据可以被卸载到任意的移动终端节点中,在标号变迁系统中每个状态点所能构建的迁移边数最多。表6 给出了终端节点数量为10 而服务数量和输入数据量变化时运行时间和内存消耗的变化情况。可以看出,随着服务数量和输入数据量的增加,运行时间和内存的消耗呈现线性增长,这是因为服务是按照顺序执行的,服务和输入数据量的增多引起所构建的标号变迁系统深度增高。
由上述案例和性能分析可知,通过对上下文环境信息以及卸载行为的建模,能够跟踪恶意行为的发生并在较短时间内给予反馈。一方面,系统能够及时制止风险的扩散;另一方面,任务发布者也能够了解卸载任务是如何被滥用的。因此,本文所提方可为高安全任务的卸载提供有效支撑。
本文提出一种基于偶图的安全信息流建模与分析方法,以解决移动边缘计算任务卸载过程中终端节点发起内部攻击恶意行为的安全问题。该方法通过赋予移动边缘环境下终端节点、服务和数据相应的安全等级来约束任务卸载过程,形成多级安全信息流模型,同时引入偶图构建任务卸载过程的形式化模型,验证服务和数据迁移、服务执行、结果回传、任务删除过程中的安全性。案例分析和性能评估结果表明,本文方法能够针对恶意行为在较短时间和可接受的内存消耗下给予系统反馈。后续研究将从安全性分析角度出发,进一步结合时延、能耗等因素,在保证任务卸载安全性的同时优化任务卸载性能。