导读:边缘云计算主要适用于移动互联网、物联网和工业互联网等应用场景,具有海量接入、复杂异构和资源受限等特征。但是,在边缘云计算备受关注和快速发展的同时,它也面临了放置地点人员复杂、安全机制薄弱、硬件安全能力不足等新的安全问题。为此,本文从边缘云计算的概念提出,相关产业联盟、社区和标准组织的形成出发,重点围绕边缘云计算环境下的认证、容器安全隔离、可信硬件支持等技术研究进展进行综述,并讨论未来发展方向。

1、引言

随着云计算、物联网、人工智能、5G通信等新技术的快速发展,边缘计算的概念被提出,并受到学术界和工业界的广泛关注。

边缘计算是一种新型的计算模式,它将计算与存储资源部署在更贴近移动设备或传感器的网络边缘,能够极大地缓解网络带宽与数据中心的压力,增强服务的响应能力,并且能够保护隐私数据,减少敏感数据上传和在云端共享的风险。边缘计算技术的出现,将云计算的能力拓展至距离终端最近的边缘侧,实现云边端的统一管控,因此又产生了边缘云计算的概念。边缘云计算能够有效发挥5G技术的海量接入、低延迟、高带宽等优势,赋能智慧城市、智能制造、智慧家庭等价值场景,具有巨大的应用前景。

近年来,针对如何构建边缘云计算平台,人们已经开始了一些相关探索与实践。其中,卡内基梅隆大学研发的Cloudlet为移动计算用户提供“小云”服务,使用虚拟机来隔离不同应用的运行环境,将OpenStack扩展到边缘计算平台,使分散的小云可以通过标准的OpenStack API进行控制和管理。美国威斯康星大学研发的ParaDrop主要面向智能电网、车联网、无线传感执行网络等物联网应用场景,在物联网网关中植入单片机,使其具备通用计算能力,并使用容器技术来隔离不同应用的运行环境。网关上所有应用都由云端控制,并对外提供API,用户通过Web页面与应用进行交互,Web服务由云端提供,而传感器采集的原始数据则都存储在网关上,保护了用户的数据隐私。佐治亚理工学院研发的PCloud将本地、边缘以及云上的资源通过网络连接,并由特殊的虚拟化层STRATUS将资源虚拟化,构成资源池,PCloud将边缘资源与云资源有机结合,使二者相辅相成、优势互补。此外,AWS的Greengrass解决方案、电信领域正在推进的多接入边缘计算(MEC)服务、华为的IEC/IEF和阿里的LinkEdge等,都在开始加快边缘云服务的部署与应用。

但是,与云计算相比,边缘云计算主要面向移动计算、物联网和工业互联网应用,具有海量接入、复杂异构和资源受限等特征。因此,在边缘云服务模式备受关注和快速发展的同时,边缘计算平台也将面临许多新的安全威胁,包括边缘计算节点容易被伪造、边缘容器的安全隔离机制不足容易导致主机被攻击、边缘应用/微服务的安全防护机制薄弱和缺乏硬件安全支持能力,容易导致用户代码和数据被窃取或篡改等,这将大大制约边缘云计算服务模式的发展与应用。因此,边缘云及安全问题引起了国内外工业界和学术界的广泛关注。

鉴于此,本文将从国内外边缘计算及安全相关联盟、社区和标准组织,以及国内外边缘计算安全相关技术研究进展展开分析和调研,并讨论相关的技术挑战和未来展望。

2、边缘云计算安全相关工业联盟、开源社区和标准组织

2.1 国外相关组织

2014年,欧洲电信标准协会(ETSI)成立移动边缘计算(Mobile Edge Computing,MEC)规范工作组,推进移动边缘计算标准化工作。2016年,ETSI将边缘计算的概念扩展为多接入边缘计算(Multi-Access Edge Computing),将MEC从电信蜂窝网络扩展至其他无线接入网络(如WLAN)。2017年7月,ETSI发布了标准化应用程序接口(API),以支持边缘计算的互操作性。其中,推动MEC设备的监管、安全及计费问题是今后MEC方面的工作重点之一。

2015年,英特尔、华为、沃达丰与美国卡内基梅隆大学联合成立了开放边缘计算联盟(Open Edge Computing Initiative,OEC),微软、VMWare、诺基亚、NTT等相继加盟,主要致力于推动边缘计算生态系统发展,提供边缘计算关键参考架构、应用展示,建立真实的边缘计算测试和试验中心。同年,ARM、思科、戴尔、英特尔、微软和普林斯顿大学共同成立了开放雾联盟(Open Fog Consortium),旨在通过开发开放式架构,解决产业之间互操作性、可扩展性等,分享最佳实践,加快雾(Fog)计算和边缘计算技术的普及。

2017年4月,戴尔物联网解决方案部门的Jim White(Open Fog参考架构的设计者之一)开源EdgeX Foundry项目,成为Linux基金会下的硬件和操作系统无关的开源中立的边缘计算微服务框架,用于统一工业物联网边缘计算解决方案的生态系统,目前包括戴尔、VMWare、AMD、Ubuntu、Redis等企业成员70多家,其中安全服务作为框架设计的两个基础系统服务之一,并且当前的版本中已经提供了安全存储能力,能够保护EdgeX机密信息,如令牌、密码、证书等,以及API网关能力,限制对EdgeX REST资源的访问和控制操作。

2017年,全球性产业组织工业互联网联盟(IIC)成立Edge Computing TG,定义边缘计算参考架构。同年,国际电工委员会(IEC)发布了VEI(Vertical Edge Intelligence)白皮书,介绍了边缘计算对于制造业等垂直行业的重要价值。国际标准化组织ISO/IEC JTC1 SC41成立了边缘计算研究小组,以推动边缘计算标准化工作。同时,边缘计算也成为IEEEP2413物联网架构的重要内涵,其中推进边缘计算安全是边缘计算标准化工作的重点之一。

2.2 国内相关组织

2016年,中国科学院沈阳自动化研究所、中国信息通信研究院、华为技术有限公司、英特尔公司、ARM和软通动力信息技术(集团)有限公司联合倡议发起成立边缘计算产业联盟(Edge Computing Consortium,ECC)。2018年,在ECC《边缘计算参考架构3.0》给出的边缘计算的定义中提及安全与隐私是五大关键要素之一。2019年11月,ECC和工业互联网产业联盟(AII)联合发布首个《边缘计算安全白皮书》,首次系统地分析和描述了边缘计算的海量、异构、资源约束、实时性、分布式等五大需求特征给边缘计算安全带来的技术挑战,并从边缘云接入、边缘云服务器、边缘云管理等三个主要攻击维度,系统地分析和描述了边缘计算平台面临的十二大安全威胁。

2018年,中国电子技术标准化研究院和阿里云计算有限公司联合推出《边缘云计算技术及标准化白皮书》,定义了边缘云计算的概念、典型应用场景、技术特点、标准化需求以及标准化建议。2019年12月,双方又联合发布了中国开源云联盟标准《信息技术云计算边缘云计算通用技术要求》(COSCL 0004-2019)(2020年1月1日实施),其中边缘云安全能力覆盖边缘云基础设施安全、运行在边缘云上的应用安全、数据安全、边缘云平台安全等要求。

3、边缘云计算安全相关技术进展

3.1 边缘云计算环境下的身份认证

近年来,人们开始针对边缘云计算开展相关认证技术研究,目前主要研究的是边缘服务器与用户之间的双向认证技术,目的是防止接入恶意用户,或者防止接入到恶意的边缘服务器,同时考虑减少接入认证时的计算和通信开销;少数工作关注了云-边缘平台之间的认证和通信安全问题,主要考虑的是增加认证次数和通信过程中的数据安全性。

(1)边缘服务器与用户之间的认证技术

目前的研究方案主要聚焦在边缘服务器和用户(手机或移动设备)之间的双向认证方案研究,而且大多假定边缘服务器之间不会进行通信,边缘服务器只和云中心进行通信或者只和用户进行通信,这类方案主要解决两类安全问题,具体如下:

一是,针对用户(手机/移动设备)资源受限,以及无线通信(如WLAN)或电信网络容易被窃听等安全问题。由于移动手机用户从不同的服务提供商访问不同类型的移动云计算服务时,用户通常需要在每个服务提供商上注册不同的用户账户,并且需要维护相应的私钥或密码进行身份验证,导致用户接入移动云服务的认证过程过于繁琐。针对上述问题,国立台湾科技大学提出了一种基于身份加密系统(IBC)的隐私保护认证方案,该方案仅需要移动用户保存一个私钥,便可与不同服务提供商进行认证,前提是用户知道服务提供商的所有身份,反之亦然,减少了密钥管理开销。同时,该方案基于ECC椭圆曲线(而非RSA)运算进行密钥协商,除了注册阶段需要可信第三方参与之外,后续的认证阶段无需可信第三方参与,保证了通信安全,并减少了用户计算和通信的开销。

二是,针对边缘服务器容易遭受攻击、伪造等安全问题。由于边缘服务器可能部署在商场、机场、公园、停车场,甚至长途汽车等交通工具内部,这些场所用户的流量大(如:接入规模、移动性大),可能导致用户错误接入一个恶意的边缘服务器。针对上述问题,埃及哈勒旺大学提出了一种终端用户与雾服务器之间的双向认证方案Octopus,该方案只需要在用户注册时基于用户ID为其生成一个长期有效的主密钥(足够长),以及基于用户主密钥、雾(相当于边缘云)ID和雾服务器(相当于边缘服务器)ID计算得到用户验证密钥(存放在边缘服务器中),便可以与任何(包括新加入的)边缘服务器进行双向认证,抵抗恶意边缘服务器攻击。同时,由于该方案的认证过程主要基于Hash运算和对称加密运算,大大减少了认证计算的开销。

(2)云-边缘服务器之间的认证技术

除了边缘服务器与用户之间的双向认证技术研究之外,还有一些研究工作关注了云-边缘服务器之间的认证和通信安全问题,这类方案主要解决两类安全问题,具体如下:

一是,针对云-边缘仅一次性认证的安全问题。由于边缘服务器无法像传统云服务器一样能随时进行管理与更改,仅仅在其初始化阶段认证一次,这种做法无法应对后续可能出现的安全风险。针对上述问题,英特尔应用可信计算TPM模块增强运行在边缘服务器上的容器基础设施的安全性,并远程证实/验证容器基础设施的可信性。此外,中南民族大学提出了一种基于电磁辐射(与实体行为相关的硬件指纹)的持续边缘主机身份认证技术,主要利用支持向量机分类器,对边缘主机的电磁辐射硬件指纹进行识别,从而实现身份的持续认证。

二是,针对云-边缘消息通信安全被忽略的问题。正如云安全联盟(CSA)所强调的那样,开发高效的云到边缘系统的一个有价值的方法是基于即时消息通信解决方案,但是在当前的云-边计算环境中,基于即时消息协议的消息中间件(Message Oriented Middleware,MOM)提供了良好的性能,却忽略了安全性需求。针对上述问题,意大利墨西拿大学提出了一种安全管理方法,目的是按照CSA准则,改进这种云到边缘系统即时消息通信过程的安全性,以实现数据保密性、完整性、真实性和不可抵赖性所涉及的问题。

3.2 边缘云计算环境下的容器安全隔离

近年来,人们开始针对边缘容器安全隔离技术开展研究,大多采用的是基于底层系统的容器安全增强、容器的权限限制的方法来实现容器隔离,主要目的是防止由于同一主机上的多个容器共享内核,黑客更容易通过容器攻破底层宿主机(边缘服务器)的安全问题;同时,在相关技术的研究过程中还需要有效保证容器的兼容性和可用性。

(1)基于底层系统的容器安全增强技术

一些研究工作关注如何通过底层操作系统安全能力,或者增加新的底层功能,或者减少内核/容器镜像来实现对容器的安全隔离,这类方案主要解决两类安全问题,具体如下:

一是,针对底层系统对容器的安全保障不足问题。意大利贝尔加莫大学提出了对Dockerfile的扩展技术,为运行在Docker镜像中的进程提供Linux系统层支持的特定SELinux安全策略,限制容器中进程的权限。但是这种方法与原有的容器生态不兼容,限制了其使用范围。谷歌公司专门开发了gVisor,一个使用Golang这种内存安全的语言编写的用户空间内核,它实现了Linux系统调用的很大一部分,当容器中的应用调用系统调用时,它会拦截并且在用户空间提供相应的服务。通过这种方式,容器中的应用不能直接调用宿主机提供的系统调用,降低了宿主机被攻击的风险。但是当容器中的应用需要调用大量的系统调用时,这种方案会大大降低应用的性能。

二是,针对底层系统及容器的镜像过大的安全问题。美国威斯康星大学提出使用动态和静态分析来标识用于运行特定应用程序的最少资源集的方法-Cimplifier,从而大大减少了应用程序容器镜像的大小。苏黎世IBM研究院通过删除或阻止未使用的内核代码段的执行来有效地减少攻击面,但是这种方法的实施难度比较大,而且不能保证所有可能会被用到的代码段都被保留。Nabla容器实现了容器之间的强隔离,只允许容器执行7个系统调用,但是它有很多限制,例如不允许动态加载库、不允许用于与其他进程共享内存的mmap等,可用性差。

(2)基于程序分析的容器权限限制技术

除了通过底层系统来限制容器权限的安全隔离技术研究之外,还有许多研究工作关注了容器可访问系统调用/特权最小集的程序分析技术上,从而限制容器恶意利用不必要的系统调用/特权对宿主机(边缘服务器)造成威胁,这类方案主要解决两类安全问题,具体如下:

一是,针对容器可访问系统调用过多的安全问题。自2016年1.10版本,Docker支持了seccomp机制,以限制运行在Docker容器中的应用能够访问的系统调用,降低了宿主机的攻击面。但是对于特定的容器来说,Docker默认允许的系统调用仍旧很多(总共有300多个系统调用,默认仅禁用44个)。为了解决此问题,中科院信工所提出了一种应用容器的分阶段执行来区分容器运行的必要和不必要的系统调用方法SPEAKER,从容器的运行过程中删除部分只在容器的启动阶段使用的系统调用。知名开源工具DockerSlim通过创建临时容器,跟踪用户在临时容器中的操作,得到容器在运行时需要的系统调用。但是上述方法都不能保证容器运行时需要的所有系统调用都动态跟踪得到,可能导致容器运行时出错。北京大学研究人员提出了一种将动态分析和静态分析结合的方法,通过动态分析获得容器启动时所需系统调用及运行时所需访问的可执行文件,再静态分析可执行文件需要访问的系统调用,得到特定容器应用运行时需要的系统调用,减少攻击面的同时保证了容器不出错,可用性更强。

二是,针对容器拥有的特权过大的安全问题。为了增强容器的安全性,大多数容器采用了Linux内核提供的权能机制(Capability机制)来约束容器内部进程的能力。通过Capability机制,超级用户的特权被划分为38个不同的权能(Capability),每种权能代表了某些被允许的特权行为,例如拥有权能CAP_NET_ADMIN,表示拥有了执行与网络相关操作的特权。自2018年1.18版本,默认情况下,由Docker创建的容器通常拥有14种权能(默认禁用了23个,共37个权能)。但是对于特定的容器来说,Docker默认拥有的特权仍旧有一部分是不必要的。为了解决此问题,韩国科学技术院(KAIST)通过使用strace跟踪进程执行时所需的系统调用,然后把这些系统调用映射到相应的权能,进而得到容器在运行时所需要的最小权能集,限制容器内部进程运行时的特权,减少特权过大带来的安全风险。

3.3 边缘云计算环境下的可信硬件支持

由于可信硬件提供的安全隔离运行环境能够增强边缘服务器的安全保障能力,人们近年来开始关注边缘服务器的可信硬件支持技术研究。一方面,能够有效解决边缘服务器上的软件系统远程维护和更新困难、缺陷容易被黑客利用问题;另一方面,能够保障可信硬件支持环境下,在边缘服务器上部署云原生应用可能存在的兼容性和性能开销大的问题。

(1)可信硬件能力支持及性能优化技术

一些研究工作关注在边缘服务器端集成可信硬件的可行性评估,以及如何优化可信硬件支持下的上下文切换、内存页替换、内存加解密性能,这类方案主要解决两类安全问题,具体如下:一是,针对边缘服务器缺乏硬件安全能力支持的问题。美国韦恩州立大学对TEE可信硬件集成到边缘计算节点的可行性进行了系统性的评估:

· 在Intel Fog Node边缘服务器(8核Intel XeonE3-1275处理器和32GB DDR4内存)上进行了集成Intel SGX能力的测试,其中上下文切换时间为2~3微秒、敏感数据计算时间为6.7微秒、总体时间开销下降0.48%。

· 在ARM Juno Board(ARM V8)上进行了集成ARM TrustZone能力的测试,其中上下文切换时间为0.2微秒、敏感数据计算时间为9.67微秒、总体时间开销下降0.13%。

· 在带AMD EPYC-7251处理器的机器上进行了集成AMD内存加密能力的测试,其中上下文切换时间为3.09微秒、敏感数据计算时间约0微秒、总体时间开销下降4.14%。结论是,TEE集成后给边缘服务器节点带来的计算性能开销都比较低,具有可行性。

二是,针对可信硬件支持带来的计算性能开销的问题。针对可信硬件支持下安全区代码与非安全区代码交互/上下文切换可能产生较大性能开销的问题,英特尔提出了一种通过交互/上下文切换时的异步调用机制进行优化。SGX的EPC内存目前一共仅有128MB(其中只有96MB是可用的),可用内存空间很小,可能会带来计算过程中频繁的内存页面替换问题,产生较大的性能开销。针对该问题,佐治亚理工学院研究人员提出了一种减小EPC页面元信息占用空间的方法STANlite进行了优化。针对内存加密开销大的问题,英国LSDS研究组提出了一种尽量对内存数据采用连续访问的数据结构、避免采用随机访问的数据结构设计的方法进行了优化。

(2)基于可信硬件的应用支持技术

除了可信硬件能力支持及性能优化技术研究之外,还有许多研究工作关注了如何开发TEE可信硬件环境下的应用支持技术,从而保证云原生应用在支持TEE的边缘服务器上的快速部署与应用问题,这类方案主要解决两类安全问题,具体如下:

一是,针对应用的兼容性问题。为了支持云原生应用的部署与应用,研究人员在TEE可信执行环境内设置操作系统库或者标准函数库来支持TEE内应用程序的执行,从而实现兼容性。例如:微软公司提出的Haven,是在TEE中实现一个Drawbridge操作系统库,从而能够在TEE中直接运行未修改的Windows应用程序。纽约州立大学石溪分校提出的Graphene,是在TEE中部署一个操作系统库,从而能够支持在TEE上快速部署未修改的Linux应用程序。英国LSDS研究组提出的SCONE,则是在TEE中配置了标准C函数库的修改版本,从而能够支持重新编译的Linux应用程序。

二是,针对敏感代码的合理划分问题。支持应用兼容性方案将所有代码或大多数代码放在安全区中,会导致可信计算基(TCB)很大,而TCB越大,带来的安全性问题也越大。为此,研究人员开始研究如何将原生的应用程序划分为敏感和非敏感部分,仅将较小的敏感代码部分放入安全区,从而通过减少TCB来降低安全风险。例如,英国帝国理工学院提出了一种基于C语言的SGX应用程序源码划分框架Glamdring,主要通过开发人员对应用程序中安全敏感数据的注释,采用程序分析方法,分析找出与安全敏感数据安全性有关的代码和数据。瑞士洛桑联邦理工学院提出的SecuredRoutines,是一种将可信执行代码编写集成到编程语言中的方法,它通过扩展Go语言,以允许程序员在TEE内调用敏感操作、使用开销小的通道通信,以及允许编译器自动提取安全代码和数据。

4、边缘云计算安全技术挑战与展望

在边缘云计算安全研究领域,人们已经在边缘云计算的认证技术、容器安全隔离技术、可信硬件支持技术方面开展了一些相关研究工作。但是,上述研究工作存在一定的局限性,有待进一步的研究、探索和实践。

(1)云-边缘服务器之间的动态认证方案。目前主要研究的是边缘服务器与用户之间的双向认证方案,极少数工作关注了云-边之间的认证和通信安全问题。仅由云对边缘计算节点初始化/注册时的一次性认证或指纹认证,无法应对边缘计算节点后续状态动态变化带来的风险,将危及用户数据的安全与隐私。此外,用户与伪造/恶意的边缘节点直接进行频繁的身份验证,可能会造成大量用户浪费不必要的认证开销,甚至造成拒绝服务。所以,未来将重点开展云对边缘服务的动态认证方案研究。

(2)边缘容器权限的动态最小化方法。目前主要研究的是如何通过底层系统安全增强、镜像裁剪、容器系统调用/特权限制的方法来实现容器的安全隔离。对于底层系统安全增强的方案,容易带来兼容性差的问题;对于镜像裁剪的方案,可以有效解决轻量级和安全攻击面减小的问题,但是依然会存在兼容性不足的情况;对于容器应用可访问的系统调用或特权进行限制的方法适应性强,但是需要提前对所有应用容器进行程序分析,无法实现动态控制。所以,未来将重点开展容器权限的动态最小化方法研究。

(3)边缘应用TEE敏感代码的生成技术。目前主要研究的是如何对云原生应用在边缘服务器TEE环境下的代码兼容性和代码的合理划分问题,包括TEE敏感代码依赖的函数库/系统库支持技术保证兼容性,以及通过基于程序分析的TEE代码划分、编程语言扩展和编译器修改等方法支持TEE应用的开发,但是需要的学习成本高、容易出错、代码的安全性验证困难。所以,未来将重点开展TEE应用代码自动生成与安全性验证技术研究。

5、结论

本文从边缘云计算的概念提出,相关产业联盟、社区和标准组织的形成出发,重点围绕边缘计算节点容易被伪造、边缘容器的安全隔离机制不足容易导致主机被攻击、边缘服务器的安全防护机制薄弱和缺乏硬件安全支持能力容易导致用户代码和数据被窃取或篡改等安全问题,从边缘云计算环境下的认证、容器安全隔离、可信硬件支持等三个方面的技术研究进展进行了分析与综述,并展望了这些方面的未来研究趋势。

参考文献略。

作者简介

沈晴霓,北京大学教授、博士生导师,主要研究方向为操作系统与虚拟化安全、云/边缘计算安全、大数据安全与隐私、可信计算与区块链安全等,主持和参与30多项国家、省部级和企业合作科研项目,发表TDSC、ComputerJ、计算机学报、软件学报、电子学报、CCS、AsiaCCS、ACSAC、RAID、ICWS、IPDPS、SecureComm、ICICS等国际国内顶级和著名期刊或会议上发表学术论文90多篇,授权美国、欧洲和国内发明专利35项,部分已应用,参与制定国家标准2项,获国家精品在线开放课程奖等。

摘自《自动化博览》2021年8月刊

声明:本文来自控制网,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。