摘要:邊緣云計(jì)算主要適用于移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)和工業(yè)互聯(lián)網(wǎng)等應(yīng)用場(chǎng)景,具有海量接入、復(fù)雜異構(gòu)和資源受限等特征。但是,在邊緣云計(jì)算備受關(guān)注和快速發(fā)展的同時(shí),它也面臨了放置地點(diǎn)人員復(fù)雜、安全機(jī)制薄弱、硬件安全能力不足等新的安全問(wèn)題。為此,本文從邊緣云計(jì)算 的概念提出,相關(guān)產(chǎn)業(yè)聯(lián)盟、社區(qū)和標(biāo)準(zhǔn)組織的形成出發(fā),重點(diǎn)圍繞邊緣云計(jì)算環(huán)境下的認(rèn)證、容器安全隔離、可信硬件支持等技術(shù)研究進(jìn)展進(jìn)行綜述,并討論未來(lái)發(fā)展方向。
關(guān)鍵詞:邊緣云計(jì)算;安全;認(rèn)證;容器隔離;可信執(zhí)行環(huán)境
Abstract: Edge cloud computing is mainly applicable to mobile Internet, Internet of things and industrial Internet. It has the characteristics of massive access, complex heterogeneity and resource constraints. However, while the edge cloud computing has attracted much attention and developed rapidly, it is facing security problems such as complicated locations, weak security mechanisms, and lack of trusted hardware, and so on. Therefore, starting from the concept of edge cloud to related industrial alliances, communities and standard organizations, this paper focuses on the research progress of authentication, container isolation and trusted hardware support, and discusses their future directions. Key words: Edge cloud computing;
Security; Authentication; Container isolation; Trusted execution environment
1 引言
隨著云計(jì)算、物聯(lián)網(wǎng)、人工智能、5G通信等新技術(shù)的快速發(fā)展,邊緣計(jì)算的概念被提出,并受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。
邊緣計(jì)算是一種新型的計(jì)算模式,它將計(jì)算與存儲(chǔ)資源部署在更貼近移動(dòng)設(shè)備或傳感器的網(wǎng)絡(luò)邊緣,能夠極大地緩解網(wǎng)絡(luò)帶寬與數(shù)據(jù)中心的壓力,增強(qiáng)服務(wù)的響應(yīng)能力,并且能夠保護(hù)隱私數(shù)據(jù),減少敏感數(shù)據(jù)上傳和在云端共享的風(fēng)險(xiǎn)[1]。邊緣計(jì)算技術(shù)的出現(xiàn),將云計(jì)算的能力拓展至距離終端最近的邊緣側(cè),實(shí)現(xiàn)云邊端的統(tǒng)一管控,因此又產(chǎn)生了邊緣云計(jì)算的概念[2~6]。邊緣云計(jì)算能夠有效發(fā)揮5G技術(shù)的海量接入、低延遲、高帶寬等優(yōu)勢(shì),賦能智慧城市、智能制造、智慧家庭等價(jià)值場(chǎng)景,具有巨大的應(yīng)用前景。
近年來(lái),針對(duì)如何構(gòu)建邊緣云計(jì)算平臺(tái),人們已經(jīng)開(kāi)始了一些相關(guān)探索與實(shí)踐。其中,卡內(nèi)基梅隆大學(xué)研發(fā)的Cloudlet[2,7,8]為移動(dòng)計(jì)算用戶(hù)提供“小云”服務(wù),使用虛擬機(jī)來(lái)隔離不同應(yīng)用的運(yùn)行環(huán)境,將OpenStack擴(kuò)展到邊緣計(jì)算平臺(tái),使分散的小云可以通過(guò)標(biāo)準(zhǔn)的OpenStack API進(jìn)行控制和管理。美國(guó)威斯康星大學(xué)研發(fā)的ParaDrop[4]主要面向智能電網(wǎng)、車(chē)聯(lián)網(wǎng)、無(wú)線(xiàn)傳感執(zhí)行網(wǎng)絡(luò)等物聯(lián)網(wǎng)應(yīng)用場(chǎng)景,在物聯(lián)網(wǎng)網(wǎng)關(guān)中植入單片機(jī),使其具備通用計(jì)算能力,并使用容器技術(shù)來(lái)隔離不同應(yīng)用的運(yùn)行環(huán)境。網(wǎng)關(guān)上所有應(yīng)用都由云端控制,并對(duì)外提供API,用戶(hù)通過(guò)Web頁(yè)面與應(yīng)用進(jìn)行交互,Web服務(wù)由云端提供,而傳感器采集的原 始數(shù)據(jù)則都存儲(chǔ)在網(wǎng)關(guān)上,保護(hù)了用戶(hù)的數(shù)據(jù)隱私。佐治亞理工學(xué)院研發(fā)的PCloud[3]將本地?邊緣以及云上的資源通過(guò)網(wǎng)絡(luò)連接,并由特殊的虛擬化層STRATUS將資源虛擬化,構(gòu)成資源池,PCloud將邊緣資源與云資源有機(jī)結(jié)合,使二者相輔相成、優(yōu)勢(shì)互補(bǔ)。此外,AWS 的Greengrass解決方案、電信領(lǐng)域正在推進(jìn)的多接入邊緣計(jì)算(MEC)服務(wù)、華為的IEC/IEF和阿里的Link Edge等[5],都在開(kāi)始加快邊緣云服務(wù)的部署與應(yīng)用。
但是,與云計(jì)算相比,邊緣云計(jì)算主要面向移動(dòng)計(jì)算、物聯(lián)網(wǎng)和工業(yè)互聯(lián)網(wǎng)應(yīng)用,具有海量接入、復(fù)雜異構(gòu)和資源受限等特征。因此,在邊緣云服務(wù)模式備受關(guān)注和快速發(fā)展的同時(shí),邊緣計(jì)算平臺(tái)也將面臨許多新的安全威脅,包括邊緣計(jì)算節(jié)點(diǎn)容易被偽造、邊緣容器的安全隔離機(jī)制不足容易導(dǎo)致主機(jī)被攻擊、邊緣應(yīng)用/ 微服務(wù)的安全防護(hù)機(jī)制薄弱和缺乏硬件安全支持能力,容易導(dǎo)致用戶(hù)代碼和數(shù)據(jù)被竊取或篡改等,這將大大制約邊緣云計(jì)算服務(wù)模式的發(fā)展與應(yīng)用。因此,邊緣云及安全問(wèn)題引起了國(guó)內(nèi)外工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注。
鑒于此,本文將從國(guó)內(nèi)外邊緣計(jì)算及安全相關(guān)聯(lián)盟、社區(qū)和標(biāo)準(zhǔn)組織,以及國(guó)內(nèi)外邊緣計(jì)算安全相關(guān)技術(shù)研究進(jìn)展展開(kāi)分析和調(diào)研,并討論相關(guān)的技術(shù)挑戰(zhàn)和未來(lái)展望。
2 邊緣云計(jì)算安全相關(guān)工業(yè)聯(lián)盟、開(kāi)源社區(qū)和標(biāo)準(zhǔn)組織
2.1 國(guó)外相關(guān)組織
2014年,歐洲電信標(biāo)準(zhǔn)協(xié)會(huì)(ETSI)成立移動(dòng)邊緣計(jì)算(Mobile Edge Computing,MEC)規(guī)范工作組[9],推進(jìn)移動(dòng)邊緣計(jì)算標(biāo)準(zhǔn)化工作。2016年,ETSI將 邊緣計(jì)算的概念擴(kuò)展為多接入邊緣計(jì)算(Multi-Access Edge Computing),將MEC從電信蜂窩網(wǎng)絡(luò)擴(kuò)展至其他無(wú)線(xiàn)接入網(wǎng)絡(luò)(如WLAN)。2017年7月,ETSI發(fā)布了標(biāo)準(zhǔn)化應(yīng)用程序接口(API),以支持邊緣計(jì)算的互操作性。其中,推動(dòng)MEC設(shè)備的監(jiān)管、安全及計(jì)費(fèi)問(wèn)題是今后MEC方面的工作重點(diǎn)之一。
2015年,英特爾、華為、沃達(dá)豐與美國(guó)卡內(nèi)基梅隆大學(xué)聯(lián)合成立了開(kāi)放邊緣計(jì)算聯(lián)盟(Op en Edge Computing Initiative,OEC)[10],微軟、 VMWare、諾基亞、NTT等相繼加盟,主要致力于推動(dòng)邊緣計(jì)算生態(tài)系統(tǒng)發(fā)展,提供邊緣計(jì)算關(guān)鍵參考架構(gòu)、應(yīng)用展示,建立真實(shí)的邊緣計(jì)算測(cè)試和試驗(yàn)中心。同年,ARM、思科、戴爾、英特爾、微軟和普林斯頓大學(xué)共同成立了開(kāi)放霧聯(lián)盟(Open Fog Consortium),旨在通過(guò)開(kāi)發(fā)開(kāi)放式架構(gòu),解決產(chǎn)業(yè)之間互操作性、可擴(kuò)展性等,分享最佳實(shí)踐,加快霧 (Fog)計(jì)算和邊緣計(jì)算技術(shù)的普及。
2017年 4月,戴爾物聯(lián)網(wǎng)解決方案部門(mén)的 J im White(Open Fog參考架構(gòu)的設(shè)計(jì)者之一)開(kāi)源 EdgeX Foundry項(xiàng)目[11],成為L(zhǎng)inux基金會(huì)下的硬件和操作系統(tǒng)無(wú)關(guān)的開(kāi)源中立的邊緣計(jì)算微服務(wù)框架,用于統(tǒng)一工業(yè)物聯(lián)網(wǎng)邊緣計(jì)算解決方案的生態(tài)系統(tǒng),目前 包括戴爾、VMWare、AMD、Ubuntu、Redis等企業(yè)成員70多家,其中安全服務(wù)作為框架設(shè)計(jì)的兩個(gè)基礎(chǔ)系統(tǒng)服務(wù)之一,并且當(dāng)前的版本中已經(jīng)提供了安全存儲(chǔ)能力,能夠保護(hù)EdgeX機(jī)密信息,如令牌、密碼、證書(shū) 等,以及API網(wǎng)關(guān)能力,限制對(duì)EdgeX REST資源的訪(fǎng)問(wèn)和控制操作。
2017年,全球性產(chǎn)業(yè)組織工業(yè)互聯(lián)網(wǎng)聯(lián)盟(IIC) 成立Edge Computing TG,定義邊緣計(jì)算參考架構(gòu)[12]。同年,國(guó)際電工委員會(huì)(IEC)發(fā)布了VEI (Vertical Edge Intelligence)白皮書(shū)[13],介紹了邊緣計(jì)算對(duì)于制造業(yè)等垂直行業(yè)的重要價(jià)值。國(guó)際標(biāo)準(zhǔn)化組織ISO/IEC JTC1 SC41成立了邊緣計(jì)算研究小組[14],以 推動(dòng)邊緣計(jì)算標(biāo)準(zhǔn)化工作。同時(shí),邊緣計(jì)算也成為IEEE P2413物聯(lián)網(wǎng)架構(gòu)的重要內(nèi)涵,其中推進(jìn)邊緣計(jì)算安全是邊緣計(jì)算標(biāo)準(zhǔn)化工作的重點(diǎn)之一。
2.2 國(guó)內(nèi)相關(guān)組織
2016年,中國(guó)科學(xué)院沈陽(yáng)自動(dòng)化研究所、中國(guó)信息通信研究院、華為技術(shù)有限公司、英特爾公司、 ARM和軟通動(dòng)力信息技術(shù)(集團(tuán))有限公司聯(lián)合倡議發(fā)起成立邊緣計(jì)算產(chǎn)業(yè)聯(lián)盟(Edge Computing Consortium,ECC)[5]。2018年,在ECC《邊緣計(jì)算參考架構(gòu)3.0》給出的邊緣計(jì)算的定義中提及安全與隱私是五大關(guān)鍵要素之一。2019年11月,ECC和工業(yè)互 聯(lián)網(wǎng)產(chǎn)業(yè)聯(lián)盟(AII)聯(lián)合發(fā)布首個(gè)《邊緣計(jì)算安全白 皮書(shū)》,首次系統(tǒng)地分析和描述了邊緣計(jì)算的海量、異 構(gòu)、資源約束、實(shí)時(shí)性、分布式等五大需求特征給邊緣計(jì)算安全帶來(lái)的技術(shù)挑戰(zhàn),并從邊緣云接入、邊緣云服務(wù)器、邊緣云管理等三個(gè)主要攻擊維度,系統(tǒng)地分析和描述了邊緣計(jì)算平臺(tái)面臨的十二大安全威脅。
2018年,中國(guó)電子技術(shù)標(biāo)準(zhǔn)化研究院和阿里云計(jì)算有限公司聯(lián)合推出《邊緣云計(jì)算技術(shù)及標(biāo)準(zhǔn)化白皮 書(shū)》,定義了邊緣云計(jì)算的概念、典型應(yīng)用場(chǎng)景、技術(shù)特點(diǎn)、標(biāo)準(zhǔn)化需求以及標(biāo)準(zhǔn)化建議。2019年12月,雙方又聯(lián)合發(fā)布了中國(guó)開(kāi)源云聯(lián)盟標(biāo)準(zhǔn)《信息技術(shù)云計(jì)算邊緣云計(jì)算通用技術(shù)要求》(COSCL 0004-2019) (2020年1月1日實(shí)施)[6],其中邊緣云安全能力覆蓋邊緣云基礎(chǔ)設(shè)施安全、運(yùn)行在邊緣云上的應(yīng)用安全、數(shù)據(jù)安全、邊緣云平臺(tái)安全等要求。
3 邊緣云計(jì)算安全相關(guān)技術(shù)進(jìn)展
3.1 邊緣云計(jì)算環(huán)境下的身份認(rèn)證
近年來(lái),人們開(kāi)始針對(duì)邊緣云計(jì)算開(kāi)展相關(guān)認(rèn)證技術(shù)研究,目前主要研究的是邊緣服務(wù)器與用戶(hù)之間的雙向認(rèn)證技術(shù),目的是防止接入惡意用戶(hù),或者防止接入到惡意的邊緣服務(wù)器,同時(shí)考慮減少接入認(rèn)證時(shí)的計(jì)算和通信開(kāi)銷(xiāo);少數(shù)工作關(guān)注了云-邊緣平臺(tái)之間的認(rèn)證和通信安全問(wèn)題,主要考慮的是增加認(rèn)證次數(shù)和通信過(guò)程中的數(shù)據(jù)安全性。
(1)邊緣服務(wù)器與用戶(hù)之間的認(rèn)證技術(shù)
目前的研究方案主要聚焦在邊緣服務(wù)器和用戶(hù) (手機(jī)或移動(dòng)設(shè)備)之間的雙向認(rèn)證方案研究,而且大多假定邊緣服務(wù)器之間不會(huì)進(jìn)行通信,邊緣服務(wù)器只和云中心進(jìn)行通信或者只和用戶(hù)進(jìn)行通信,這類(lèi)方案主要解決兩類(lèi)安全問(wèn)題,具體如下:
一是,針對(duì)用戶(hù)(手機(jī)/移動(dòng)設(shè)備)資源受限,以及無(wú)線(xiàn)通信(如WLAN)或電信網(wǎng)絡(luò)容易被竊聽(tīng)等安全問(wèn)題。由于移動(dòng)手機(jī)用戶(hù)從不同的服務(wù)提供商訪(fǎng)問(wèn)不同類(lèi)型的移動(dòng)云計(jì)算服務(wù)時(shí),用戶(hù)通常需要在每個(gè)服務(wù)提供商上注冊(cè)不同的用戶(hù)賬戶(hù),并且需要維護(hù)相應(yīng)的私鑰或密碼進(jìn)行身份驗(yàn)證,導(dǎo)致用戶(hù)接入移動(dòng)云服務(wù)的認(rèn)證過(guò)程過(guò)于繁瑣。針對(duì)上述問(wèn)題,國(guó)立臺(tái)灣科技大學(xué)[15]提出了一種基于身份加密系統(tǒng)(IBC)的隱私保護(hù)認(rèn)證方案,該方案僅需要移動(dòng)用戶(hù)保存一個(gè)私 鑰,便可與不同服務(wù)提供商進(jìn)行認(rèn)證,前提是用戶(hù)知道服務(wù)提供商的所有身份,反之亦然,減少了密鑰管理開(kāi)銷(xiāo)。同時(shí),該方案基于ECC橢圓曲線(xiàn)(而非RSA)運(yùn)算進(jìn)行密鑰協(xié)商,除了注冊(cè)階段需要可信第三方參與之外,后續(xù)的認(rèn)證階段無(wú)需可信第三方參與,保證了通信安全,并減少了用戶(hù)計(jì)算和通信的開(kāi)銷(xiāo)。
二是,針對(duì)邊緣服務(wù)器容易遭受攻擊、偽造等安全問(wèn)題。由于邊緣服務(wù)器可能部署在商場(chǎng)、機(jī)場(chǎng)、公園、停車(chē)場(chǎng),甚至長(zhǎng)途汽車(chē)等交通工具內(nèi)部,這些場(chǎng)所用戶(hù)的流量大(如:接入規(guī)模、移動(dòng)性大),可能導(dǎo)致用戶(hù)錯(cuò)誤接入一個(gè)惡意的邊緣服務(wù)器。針對(duì)上述問(wèn)題,埃及哈勒旺大學(xué)[16]提出了一種終端用戶(hù)與霧服務(wù)器之間的雙向認(rèn)證方案Octopus,該方案只需要在用戶(hù)注冊(cè)時(shí)基于用戶(hù)ID為其生成一個(gè)長(zhǎng)期有效的主密鑰(足夠長(zhǎng)),以及基于用戶(hù)主密鑰、霧(相當(dāng)于邊緣云)ID和霧服務(wù)器(相當(dāng)于邊緣服務(wù)器)ID計(jì)算得到用戶(hù)驗(yàn)證密鑰(存放在邊緣服務(wù)器中),便可以與任何(包括新加 入的)邊緣服務(wù)器進(jìn)行雙向認(rèn)證,抵抗惡意邊緣服務(wù)器攻擊。同時(shí),由于該方案的認(rèn)證過(guò)程主要基于Hash運(yùn) 算和對(duì)稱(chēng)加密運(yùn)算,大大減少了認(rèn)證計(jì)算的開(kāi)銷(xiāo)。
(2)云-邊緣服務(wù)器之間的認(rèn)證技術(shù)
除了邊緣服務(wù)器與用戶(hù)之間的雙向認(rèn)證技術(shù)研究之外,還有一些研究工作關(guān)注了云-邊緣服務(wù)器之間的認(rèn)證和通信安全問(wèn)題,這類(lèi)方案主要解決兩類(lèi)安全問(wèn)題,具體如下:
一是,針對(duì)云-邊緣僅一次性認(rèn)證的安全問(wèn)題。由于邊緣服務(wù)器無(wú)法像傳統(tǒng)云服務(wù)器一樣能隨時(shí)進(jìn)行管理與更改,僅僅在其初始化階段認(rèn)證一次,這種做法無(wú)法應(yīng)對(duì)后續(xù)可能出現(xiàn)的安全風(fēng)險(xiǎn)。針對(duì)上述問(wèn)題, 英特爾[17]應(yīng)用可信計(jì)算TPM模塊增強(qiáng)運(yùn)行在邊緣服務(wù)器上的容器基礎(chǔ)設(shè)施的安全性,并遠(yuǎn)程證實(shí)/驗(yàn)證容器基礎(chǔ)設(shè)施的可信性。此外,中南民族大學(xué)[18]提出了一種基于電磁輻射(與實(shí)體行為相關(guān)的硬件指紋)的持續(xù)邊緣主機(jī)身份認(rèn)證技術(shù),主要利用支持向量機(jī)分類(lèi)器,對(duì)邊緣主機(jī)的電磁輻射硬件指紋進(jìn)行識(shí)別,從而實(shí)現(xiàn)身份的持續(xù)認(rèn)證。
二是,針對(duì)云-邊緣消息通信安全被忽略的問(wèn)題。正如云安全聯(lián)盟(CSA)所強(qiáng)調(diào)的那樣,開(kāi)發(fā)高效的云到邊緣系統(tǒng)的一個(gè)有價(jià)值的方法是基于即時(shí)消息通信解決方案,但是在當(dāng)前的云-邊計(jì)算環(huán)境中,基于即時(shí)消息協(xié)議的消息中間件(Message Oriented Middleware,MOM)提供了良好的性能,卻忽略了安全性需求。針對(duì)上述問(wèn)題,意大利墨西拿大學(xué)[19]提出了一種安全管理方法,目的是按照CSA準(zhǔn)則,改進(jìn)這種云到邊緣系統(tǒng)即時(shí)消息通信過(guò)程的安全性,以實(shí)現(xiàn)數(shù)據(jù)保密性、完整性、真實(shí)性和不可抵賴(lài)性所涉及的問(wèn)題。
3.2 邊緣云計(jì)算環(huán)境下的容器安全隔離
近年來(lái),人們開(kāi)始針對(duì)邊緣容器安全隔離技術(shù)開(kāi)展研究,大多采用的是基于底層系統(tǒng)的容器安全增強(qiáng)、容器的權(quán)限限制的方法來(lái)實(shí)現(xiàn)容器隔離,主要目的是防止由于同一主機(jī)上的多個(gè)容器共享內(nèi)核,黑客更容易通過(guò)容器攻破底層宿主機(jī)(邊緣服務(wù)器)的安全問(wèn)題;同時(shí),在相關(guān)技術(shù)的研究過(guò)程中還需要有效保證容器的兼容性和可用性。
(1)基于底層系統(tǒng)的容器安全增強(qiáng)技術(shù)
一些研究工作關(guān)注如何通過(guò)底層操作系統(tǒng)安全能 力,或者增加新的底層功能,或者減少內(nèi)核/容器鏡像來(lái)實(shí)現(xiàn)對(duì)容器的安全隔離,這類(lèi)方案主要解決兩類(lèi)安全問(wèn)題,具體如下:
一是,針對(duì)底層系統(tǒng)對(duì)容器的安全保障不足問(wèn)題。 意大利貝爾加莫大學(xué)[20]提出了對(duì)Dockerfile的擴(kuò)展技 術(shù),為運(yùn)行在Docker鏡像中的進(jìn)程提供Linux系統(tǒng)層支持的特定SELinux安全策略,限制容器中進(jìn)程的權(quán) 限。但是這種方法與原有的容器生態(tài)不兼容,限制了其使用范圍。谷歌公司專(zhuān)門(mén)開(kāi)發(fā)了gVisor[21],一個(gè)使用 Golang這種內(nèi)存安全的語(yǔ)言編寫(xiě)的用戶(hù)空間內(nèi)核,它實(shí)現(xiàn)了Linux系統(tǒng)調(diào)用的很大一部分,當(dāng)容器中的應(yīng)用調(diào)用系統(tǒng)調(diào)用時(shí),它會(huì)攔截并且在用戶(hù)空間提供相應(yīng)的服務(wù)。通過(guò)這種方式,容器中的應(yīng)用不能直接調(diào)用宿主機(jī)提供的系統(tǒng)調(diào)用,降低了宿主機(jī)被攻擊的風(fēng)險(xiǎn)。但是當(dāng)容器中的應(yīng)用需要調(diào)用大量的系統(tǒng)調(diào)用時(shí),這種方案會(huì)大大降低應(yīng)用的性能。
二是,針對(duì)底層系統(tǒng)及容器的鏡像過(guò)大的安全問(wèn)題。美國(guó)威斯康星大學(xué)[22]提出使用動(dòng)態(tài)和靜態(tài)分析來(lái)標(biāo)識(shí)用于運(yùn)行特定應(yīng)用程序的最少資源集的方法-Cimplifier,從而大大減少了應(yīng)用程序容器鏡像的大小。蘇黎世IBM研究院[23]通過(guò)刪除或阻止未使用的內(nèi)核代碼段的執(zhí)行來(lái)有效地減少攻擊面,但是這種方法的實(shí)施難度比較大,而且不能保證所有可能會(huì)被用到的代碼段都被保留。Nabla容器[24]實(shí)現(xiàn)了容器之間的強(qiáng) 隔離,只允許容器執(zhí)行7個(gè)系統(tǒng)調(diào)用,但是它有很多限 制,例如不允許動(dòng)態(tài)加載庫(kù)、不允許用于與其他進(jìn)程共享內(nèi)存的mmap等,可用性差。
(2)基于程序分析的容器權(quán)限限制技術(shù)
除了通過(guò)底層系統(tǒng)來(lái)限制容器權(quán)限的安全隔離技術(shù)研究之外,還有許多研究工作關(guān)注了容器可訪(fǎng)問(wèn)系統(tǒng)調(diào)用/特權(quán)最小集的程序分析技術(shù)上,從而限制容器惡意利用不必要的系統(tǒng)調(diào)用/特權(quán)對(duì)宿主機(jī)(邊緣服務(wù)器)造成威脅,這類(lèi)方案主要解決兩類(lèi)安全問(wèn)題,具體如下:
一是,針對(duì)容器可訪(fǎng)問(wèn)系統(tǒng)調(diào)用過(guò)多的安全問(wèn)題。自2016年1.10版本,Docker支持了seccomp機(jī) 制,以限制運(yùn)行在Docker容器中的應(yīng)用能夠訪(fǎng)問(wèn)的系統(tǒng)調(diào)用,降低了宿主機(jī)的攻擊面。但是對(duì)于特定的容器來(lái)說(shuō),Docker默認(rèn)允許的系統(tǒng)調(diào)用仍舊很多(總共有300多個(gè)系統(tǒng)調(diào)用,默認(rèn)僅禁用44個(gè))。為了解決此問(wèn)題,中科院信工所[25]提出了一種應(yīng)用容器的分階段執(zhí)行來(lái)區(qū)分容器運(yùn)行的必要和不必要的系統(tǒng)調(diào)用方法SPEAKER,從容器的運(yùn)行過(guò)程中刪除部分只在容器的啟動(dòng)階段使用的系統(tǒng)調(diào)用。知名開(kāi)源工具DockerSlim[26]通過(guò)創(chuàng)建臨時(shí)容器,跟蹤用戶(hù)在臨時(shí)容器中的操作,得到容器在運(yùn)行時(shí)需要的系統(tǒng)調(diào)用。但是上述方法都不能保證容器運(yùn)行時(shí)需要的所有系統(tǒng)調(diào)用都動(dòng)態(tài)跟蹤得到,可能導(dǎo)致容器運(yùn)行時(shí)出錯(cuò)。北京大學(xué)研究人員[27]提出了一種將動(dòng)態(tài)分析和靜態(tài)分析結(jié)合的方法,通過(guò)動(dòng)態(tài)分析獲得容器啟動(dòng)時(shí)所需系統(tǒng)調(diào)用及運(yùn)行時(shí)所需訪(fǎng)問(wèn)的可執(zhí)行文件,再靜態(tài)分析可執(zhí)行文件需要訪(fǎng)問(wèn)的系統(tǒng)調(diào)用,得到特定容器應(yīng)用運(yùn)行時(shí)需要的系統(tǒng)調(diào)用,減少攻擊面的同時(shí)保證了容器不出錯(cuò),可用性更強(qiáng)。
二是,針對(duì)容器擁有的特權(quán)過(guò)大的安全問(wèn)題。為了增強(qiáng)容器的安全性,大多數(shù)容器采用了Linux內(nèi)核提供的權(quán)能機(jī)制(Capability機(jī)制)來(lái)約束容器內(nèi)部進(jìn)程的能力。通過(guò)Capability機(jī)制,超級(jí)用戶(hù)的特權(quán)被劃分為38個(gè)不同的權(quán)能(Capability),每種權(quán)能代表了某些被允許的特權(quán)行為,例如擁有權(quán)能CAP_NET_ ADMIN,表示擁有了執(zhí)行與網(wǎng)絡(luò)相關(guān)操作的特權(quán)。 自2018年1.18版本,默認(rèn)情況下,由Docker創(chuàng)建的容器通常擁有14種權(quán)能(默認(rèn)禁用了23個(gè),共37個(gè)權(quán)能)。但是對(duì)于特定的容器來(lái)說(shuō),Docker默認(rèn)擁有的特權(quán)仍舊有一部分是不必要的。為了解決此問(wèn)題,韓國(guó)科學(xué)技術(shù)院(KAIST)[28]通過(guò)使用strace跟蹤進(jìn)程執(zhí)行時(shí)所需的系統(tǒng)調(diào)用,然后把這些系統(tǒng)調(diào)用映射到相應(yīng)的權(quán)能,進(jìn)而得到容器在運(yùn)行時(shí)所需要的最小權(quán)能集,限制容器內(nèi)部進(jìn)程運(yùn)行時(shí)的特權(quán),減少特權(quán)過(guò)大帶來(lái)的安全風(fēng)險(xiǎn)。
3.3 邊緣云計(jì)算環(huán)境下的可信硬件支持
由于可信硬件提供的安全隔離運(yùn)行環(huán)境能夠增強(qiáng)邊緣服務(wù)器的安全保障能力,人們近年來(lái)開(kāi)始關(guān)注邊緣服務(wù)器的可信硬件支持技術(shù)研究。一方面,能夠有效解決邊緣服務(wù)器上的軟件系統(tǒng)遠(yuǎn)程維護(hù)和更新困難、缺陷容易被黑客利用問(wèn)題;另一方面,能夠保障可信硬件支持環(huán)境下,在邊緣服務(wù)器上部署云原生應(yīng)用可能存在的兼容性和性能開(kāi)銷(xiāo)大的問(wèn)題。
(1)可信硬件能力支持及性能優(yōu)化技術(shù)
一些研究工作關(guān)注在邊緣服務(wù)器端集成可信硬件的可行性評(píng)估,以及如何優(yōu)化可信硬件支持下的上下文切換、內(nèi)存頁(yè)替換、內(nèi)存加解密性能,這類(lèi)方案主要解決兩類(lèi)安全問(wèn)題,具體如下:
一是,針對(duì)邊緣服務(wù)器缺乏硬件安全能力支持的問(wèn)題。美國(guó)韋恩州立大學(xué)[29]對(duì)TEE可信硬件集成到邊緣 計(jì)算節(jié)點(diǎn)的可行性進(jìn)行了系統(tǒng)性的評(píng)估:
· 在Intel Fog Node邊緣服務(wù)器(8核Intel Xeon E3-1275處理器和32GB DDR4內(nèi)存)上進(jìn)行了集成 Intel SGX能力的測(cè)試,其中上下文切換時(shí)間為2~3微秒、敏感數(shù)據(jù)計(jì)算時(shí)間為6.7微秒、總體時(shí)間開(kāi)銷(xiāo)下降 0.48%。
· 在A(yíng)RM Juno Board(ARM V8)上進(jìn)行了集成 ARM TrustZone能力的測(cè)試,其中上下文切換時(shí)間為 0.2微秒、敏感數(shù)據(jù)計(jì)算時(shí)間為9.67微秒、總體時(shí)間開(kāi)銷(xiāo)下降0.13%。
· 在帶AMD EPYC-7251處理器的機(jī)器上進(jìn)行了集成AMD內(nèi)存加密能力的測(cè)試,其中上下文切換時(shí)間為3.09微秒、敏感數(shù)據(jù)計(jì)算時(shí)間約0微秒、總體時(shí)間開(kāi)銷(xiāo)下降4.14%。結(jié)論是,TEE集成后給邊緣服務(wù)器節(jié)點(diǎn)帶來(lái)的計(jì)算性能開(kāi)銷(xiāo)都比較低,具有可行性。
二是,針對(duì)可信硬件支持帶來(lái)的計(jì)算性能開(kāi)銷(xiāo)的問(wèn)題。針對(duì)可信硬件支持下安全區(qū)代碼與非安全區(qū)代碼交互/上下文切換可能產(chǎn)生較大性能開(kāi)銷(xiāo)的問(wèn)題,英特爾[30] 提出了一種通過(guò)交互/上下文切換時(shí)的異步調(diào)用機(jī)制進(jìn)行優(yōu)化。SGX的EPC內(nèi)存目前一共僅有128MB(其中只有 96MB是可用的),可用內(nèi)存空間很小,可能會(huì)帶來(lái)計(jì)算過(guò)程中頻繁的內(nèi)存頁(yè)面替換問(wèn)題,產(chǎn)生較大的性能開(kāi)銷(xiāo)。針對(duì)該問(wèn)題,佐治亞理工學(xué)院研究人員[31]提出了一 種減小EPC頁(yè)面元信息占用空間的方法STANlite進(jìn)行了 優(yōu)化。針對(duì)內(nèi)存加密開(kāi)銷(xiāo)大的問(wèn)題,英國(guó)LSDS研究組[32] 提出了一種盡量對(duì)內(nèi)存數(shù)據(jù)采用連續(xù)訪(fǎng)問(wèn)的數(shù)據(jù)結(jié)構(gòu)、 避免采用隨機(jī)訪(fǎng)問(wèn)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的方法進(jìn)行了優(yōu)化。
(2)基于可信硬件的應(yīng)用支持技術(shù)
除了可信硬件能力支持及性能優(yōu)化技術(shù)研究之外, 還有許多研究工作關(guān)注了如何開(kāi)發(fā)TEE可信硬件環(huán)境下的應(yīng)用支持技術(shù),從而保證云原生應(yīng)用在支持TEE的邊 緣服務(wù)器上的快速部署與應(yīng)用問(wèn)題,這類(lèi)方案主要解決兩類(lèi)安全問(wèn)題,具體如下:
一是,針對(duì)應(yīng)用的兼容性問(wèn)題。為了支持云原生應(yīng)用的部署與應(yīng)用[33],研究人員在TEE可信執(zhí)行環(huán)境內(nèi)設(shè)置操作系統(tǒng)庫(kù)或者標(biāo)準(zhǔn)函數(shù)庫(kù)來(lái)支持TEE內(nèi)應(yīng)用程序的執(zhí)行,從而實(shí)現(xiàn)兼容性。例如:微軟公司 [34]提出的Haven,是在TEE中實(shí)現(xiàn)一個(gè)Drawbridge 操作系統(tǒng)庫(kù),從而能夠在TEE中直接運(yùn)行未修改的 Windows應(yīng)用程序。紐約州立大學(xué)石溪分校提出的 Graphene[35],是在TEE中部署一個(gè)操作系統(tǒng)庫(kù),從而能夠支持在TEE上快速部署未修改的Linux應(yīng)用程序。 英國(guó)LSDS研究組提出的SCONE[32],則是在TEE中配置了標(biāo)準(zhǔn)C函數(shù)庫(kù)的修改版本,從而能夠支持重新編譯的 Linux應(yīng)用程序。
二是,針對(duì)敏感代碼的合理劃分問(wèn)題。支持應(yīng)用兼容性方案將所有代碼或大多數(shù)代碼放在安全區(qū)中,會(huì)導(dǎo)致可信計(jì)算基(TCB)很大,而TCB越大,帶來(lái)的安 全性問(wèn)題也越大。為此,研究人員開(kāi)始研究如何將原生的應(yīng)用程序劃分為敏感和非敏感部分,僅將較小的敏感代碼部分放入安全區(qū),從而通過(guò)減少TCB來(lái)降低安全風(fēng)險(xiǎn)。例如,英國(guó)帝國(guó)理工學(xué)院[36]提出了一種基于C語(yǔ)言的SGX應(yīng)用程序源碼劃分框架Glamdring,主要通過(guò)開(kāi)發(fā)人員對(duì)應(yīng)用程序中安全敏感數(shù)據(jù)的注釋?zhuān)捎贸绦蚍治龇椒ǎ治稣页雠c安全敏感數(shù)據(jù)安全性有關(guān)的代碼和數(shù)據(jù)。瑞士洛桑聯(lián)邦理工學(xué)院[37]提出的Secured Routines,是一種將可信執(zhí)行代碼編寫(xiě)集成到編程語(yǔ)言中的方法,它通過(guò)擴(kuò)展Go語(yǔ)言,以允許程序員在TEE內(nèi)調(diào)用敏感操作、使用開(kāi)銷(xiāo)小的通道通信,以及允許編譯器自動(dòng)提取安全代碼和數(shù)據(jù)。
4 邊緣云計(jì)算安全技術(shù)挑戰(zhàn)與展望
在邊緣云計(jì)算安全研究領(lǐng)域,人們已經(jīng)在邊緣云計(jì)算的認(rèn)證技術(shù)、容器安全隔離技術(shù)、可信硬件支持技術(shù)方面開(kāi)展了一些相關(guān)研究工作。但是,上述研究工作存在一定的局限性,有待進(jìn)一步的研究、探索和 實(shí)踐。
(1)云-邊緣服務(wù)器之間的動(dòng)態(tài)認(rèn)證方案。目前主要研究的是邊緣服務(wù)器與用戶(hù)之間的雙向認(rèn)證方案,極少數(shù)工作關(guān)注了云-邊之間的認(rèn)證和通信安全問(wèn)題。僅 由云對(duì)邊緣計(jì)算節(jié)點(diǎn)初始化/注冊(cè)時(shí)的一次性認(rèn)證或指紋認(rèn)證,無(wú)法應(yīng)對(duì)邊緣計(jì)算節(jié)點(diǎn)后續(xù)狀態(tài)動(dòng)態(tài)變化帶來(lái)的風(fēng)險(xiǎn),將危及用戶(hù)數(shù)據(jù)的安全與隱私。此外,用戶(hù)與偽造/惡意的邊緣節(jié)點(diǎn)直接進(jìn)行頻繁的身份驗(yàn)證,可能會(huì)造成大量用戶(hù)浪費(fèi)不必要的認(rèn)證開(kāi)銷(xiāo),甚至造成拒絕服務(wù)。所以,未來(lái)將重點(diǎn)開(kāi)展云對(duì)邊緣服務(wù)的動(dòng)態(tài)認(rèn)證方案研究。
(2)邊緣容器權(quán)限的動(dòng)態(tài)最小化方法。目前主要研究的是如何通過(guò)底層系統(tǒng)安全增強(qiáng)、鏡像裁剪、容器系統(tǒng)調(diào)用/特權(quán)限制的方法來(lái)實(shí)現(xiàn)容器的安全隔離。對(duì)于底層系統(tǒng)安全增強(qiáng)的方案,容易帶來(lái)兼容性差的問(wèn)題;對(duì)于鏡像裁剪的方案,可以有效解決輕量級(jí)和安全攻擊面減小的問(wèn)題,但是依然會(huì)存在兼容性不足的情況;對(duì)于容器應(yīng)用可訪(fǎng)問(wèn)的系統(tǒng)調(diào)用或特權(quán)進(jìn)行限制的方法適應(yīng)性強(qiáng),但是需要提前對(duì)所有應(yīng)用容器進(jìn)行程序分析,無(wú)法實(shí)現(xiàn)動(dòng)態(tài)控制。所以,未來(lái)將重點(diǎn)開(kāi)展容器權(quán)限的動(dòng)態(tài)最小化方法研究。
(3)邊緣應(yīng)用TEE敏感代碼的生成技術(shù)。目前主要研究的是如何對(duì)云原生應(yīng)用在邊緣服務(wù)器TEE環(huán)境下的代碼兼容性和代碼的合理劃分問(wèn)題,包括TEE敏感代碼依賴(lài)的函數(shù)庫(kù)/系統(tǒng)庫(kù)支持技術(shù)保證兼容性,以及通過(guò)基于程序分析的TEE代碼劃分、編程語(yǔ)言擴(kuò)展和編譯器修改等方法支持TEE應(yīng)用的開(kāi)發(fā),但是需要的學(xué)習(xí)成本高、容易出錯(cuò)、代碼的安全性驗(yàn)證困難。所以,未來(lái)將重點(diǎn)開(kāi)展TEE應(yīng)用代碼自動(dòng)生成與安全性驗(yàn)證技術(shù)研究。
5 結(jié)論
本文從邊緣云計(jì)算的概念提出,相關(guān)產(chǎn)業(yè)聯(lián)盟、社區(qū)和標(biāo)準(zhǔn)組織的形成出發(fā),重點(diǎn)圍繞邊緣計(jì)算節(jié)點(diǎn)容易被偽造、邊緣容器的安全隔離機(jī)制不足容易導(dǎo)致主機(jī)被攻擊、邊緣服務(wù)器的安全防護(hù)機(jī)制薄弱和缺乏硬件安全支持能力容易導(dǎo)致用戶(hù)代碼和數(shù)據(jù)被竊取或篡改等安全問(wèn)題,從邊緣云計(jì)算環(huán)境下的認(rèn)證、容器安全隔離、可信硬件支持等三個(gè)方面的技術(shù)研究進(jìn)展進(jìn)行了分析與綜述,并展望了這些方面的未來(lái)研究趨勢(shì)。
作者簡(jiǎn)介:
沈晴霓,北京大學(xué)教授、博士生導(dǎo)師,主要研究方向?yàn)椴僮飨到y(tǒng)與虛擬化安全,云/邊緣計(jì)算安全、大數(shù)據(jù)安全與隱私、可信計(jì)算與區(qū)塊鏈安全等,主持和參與30多項(xiàng)國(guó)家、省部級(jí)和企業(yè)合作科研項(xiàng)目,發(fā)表TDSC、Computer J、計(jì)算機(jī)學(xué)報(bào)、軟件學(xué)報(bào)、電子學(xué)報(bào)、CCS、AsiaCCS、ACSAC、RAID、ICWS、 IPDPS、SecureComm、ICICS等國(guó)際國(guó)內(nèi)頂級(jí)和著名期刊或會(huì)議上發(fā)表學(xué)術(shù)論文90多篇,授權(quán)美國(guó)、歐洲和國(guó)內(nèi)發(fā)明專(zhuān)利35項(xiàng),部分已應(yīng)用,參與制定國(guó)家標(biāo)準(zhǔn)2項(xiàng),獲國(guó)家精品在線(xiàn)開(kāi)放課程獎(jiǎng)等。
參考文獻(xiàn):
[1] 趙梓銘, 劉芳, 蔡志平, 肖儂, 等. 邊緣計(jì)算應(yīng)用與挑戰(zhàn)[J]. 計(jì)算機(jī)研究與發(fā)展, 2018, 55(2) : 327 - 337.
[2] Grace Lewis, Sebastian Echeverria, Soumya Simanta, et al. Tactical Cloudlets: Moving Cloud Computing to the Edge[J]. In proc. of 2014 IEEE Military Communications Conference, 2014 : 1440 - 1446.
[3] Jang M, Schwan K, Bhardwaj K, et al. Personal Clouds: Sharing And Integrating Networked Resources To Enhance End User Experiences[J]. In proc. of 2014 IEEE INFOCOM, 2014 : 2220 - 2228.
[4] Liu P, Willis D, Banerjee S. ParaDrop: Enabling Lightweight Multi-tenancy at the Network's Extreme Edge[J]. In proc. of IEEE/ACM Symposium on Edge Computing 2016, 2016 : 1 - 13.
[5] 邊緣計(jì)算產(chǎn)業(yè)聯(lián)盟, 工業(yè)互聯(lián)網(wǎng)產(chǎn)業(yè)聯(lián)盟. 邊緣計(jì)算安全白皮書(shū), 2019.
[6] COSCL 0004-2019. 信息技術(shù) 云計(jì)算 邊緣云計(jì)算通用技術(shù)要求[S].
[7] Satyanarayanan, M., Bahl, P., Caceres, et al. The Case for VM-Based Cloudlets in Mobile Computing[J]. IEEE Pervasive Computing, 2009, 8 (4) : 14 - 23.
[8] Ha K, Satyanarayanan, M. Openstack++ for Cloudlet Deployment, CMU-CS-15-123[R]. Pittsbergh: CMU School of Computer Science, 2015. https://github.com/cmusatyalab/elijah-OpenStack
[9] https://ihsmarkit.com/products/etsi-standards.html
[10] https://www.openedgecomputing.org
[11] https://www.edgexfoundry.org
[12] Introduction to Edge Computing in IoT : 2018, https://www.iiconsortium.org/pdf/
[13] IEC White Paper Edge intelligence : 2017, https://webstore.iec.ch/publication/60568
摘自《自動(dòng)化博覽》2021年8月刊