摘要:邊緣云計(jì)算主要適用于移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)和工業(yè)互聯(lián)網(wǎng)等應(yīng)用場景,具有海量接入、復(fù)雜異構(gòu)和資源受限等特征。但是,在邊緣云計(jì)算備受關(guān)注和快速發(fā)展的同時(shí),它也面臨了放置地點(diǎn)人員復(fù)雜、安全機(jī)制薄弱、硬件安全能力不足等新的安全問題。為此,本文從邊緣云計(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)行綜述,并討論未來發(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)勢,賦能智慧城市、智能制造、智慧家庭等價(jià)值場景,具有巨大的應(yīng)用前景。
近年來,針對(duì)如何構(gòu)建邊緣云計(jì)算平臺(tái),人們已經(jīng)開始了一些相關(guān)探索與實(shí)踐。其中,卡內(nèi)基梅隆大學(xué)研發(fā)的Cloudlet[2,7,8]為移動(dòng)計(jì)算用戶提供“小云”服務(wù),使用虛擬機(jī)來隔離不同應(yīng)用的運(yùn)行環(huán)境,將OpenStack擴(kuò)展到邊緣計(jì)算平臺(tái),使分散的小云可以通過標(biāo)準(zhǔn)的OpenStack API進(jìn)行控制和管理。美國威斯康星大學(xué)研發(fā)的ParaDrop[4]主要面向智能電網(wǎng)、車聯(lián)網(wǎng)、無線傳感執(zhí)行網(wǎng)絡(luò)等物聯(lián)網(wǎng)應(yīng)用場景,在物聯(lián)網(wǎng)網(wǎng)關(guān)中植入單片機(jī),使其具備通用計(jì)算能力,并使用容器技術(shù)來隔離不同應(yīng)用的運(yùn)行環(huán)境。網(wǎng)關(guān)上所有應(yīng)用都由云端控制,并對(duì)外提供API,用戶通過Web頁面與應(yīng)用進(jìn)行交互,Web服務(wù)由云端提供,而傳感器采集的原 始數(shù)據(jù)則都存儲(chǔ)在網(wǎng)關(guān)上,保護(hù)了用戶的數(shù)據(jù)隱私。佐治亞理工學(xué)院研發(fā)的PCloud[3]將本地?邊緣以及云上的資源通過網(wǎng)絡(luò)連接,并由特殊的虛擬化層STRATUS將資源虛擬化,構(gòu)成資源池,PCloud將邊緣資源與云資源有機(jī)結(jié)合,使二者相輔相成、優(yōu)勢互補(bǔ)。此外,AWS 的Greengrass解決方案、電信領(lǐng)域正在推進(jìn)的多接入邊緣計(jì)算(MEC)服務(wù)、華為的IEC/IEF和阿里的Link Edge等[5],都在開始加快邊緣云服務(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)致用戶代碼和數(shù)據(jù)被竊取或篡改等,這將大大制約邊緣云計(jì)算服務(wù)模式的發(fā)展與應(yīng)用。因此,邊緣云及安全問題引起了國內(nèi)外工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注。
鑒于此,本文將從國內(nèi)外邊緣計(jì)算及安全相關(guān)聯(lián)盟、社區(qū)和標(biāo)準(zhǔn)組織,以及國內(nèi)外邊緣計(jì)算安全相關(guān)技術(shù)研究進(jìn)展展開分析和調(diào)研,并討論相關(guān)的技術(shù)挑戰(zhàn)和未來展望。
2 邊緣云計(jì)算安全相關(guān)工業(yè)聯(lián)盟、開源社區(qū)和標(biāo)準(zhǔn)組織
2.1 國外相關(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ǎng)絡(luò)(如WLAN)。2017年7月,ETSI發(fā)布了標(biāo)準(zhǔn)化應(yīng)用程序接口(API),以支持邊緣計(jì)算的互操作性。其中,推動(dòng)MEC設(shè)備的監(jiān)管、安全及計(jì)費(fèi)問題是今后MEC方面的工作重點(diǎn)之一。
2015年,英特爾、華為、沃達(dá)豐與美國卡內(nèi)基梅隆大學(xué)聯(lián)合成立了開放邊緣計(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ì)算測試和試驗(yàn)中心。同年,ARM、思科、戴爾、英特爾、微軟和普林斯頓大學(xué)共同成立了開放霧聯(lián)盟(Open Fog Consortium),旨在通過開發(fā)開放式架構(gòu),解決產(chǎn)業(yè)之間互操作性、可擴(kuò)展性等,分享最佳實(shí)踐,加快霧 (Fog)計(jì)算和邊緣計(jì)算技術(shù)的普及。
2017年 4月,戴爾物聯(lián)網(wǎng)解決方案部門的 J im White(Open Fog參考架構(gòu)的設(shè)計(jì)者之一)開源 EdgeX Foundry項(xiàng)目[11],成為Linux基金會(huì)下的硬件和操作系統(tǒng)無關(guān)的開源中立的邊緣計(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ī)密信息,如令牌、密碼、證書 等,以及API網(wǎng)關(guān)能力,限制對(duì)EdgeX REST資源的訪問和控制操作。
2017年,全球性產(chǎn)業(yè)組織工業(yè)互聯(lián)網(wǎng)聯(lián)盟(IIC) 成立Edge Computing TG,定義邊緣計(jì)算參考架構(gòu)[12]。同年,國際電工委員會(huì)(IEC)發(fā)布了VEI (Vertical Edge Intelligence)白皮書[13],介紹了邊緣計(jì)算對(duì)于制造業(yè)等垂直行業(yè)的重要價(jià)值。國際標(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 國內(nèi)相關(guān)組織
2016年,中國科學(xué)院沈陽自動(dòng)化研究所、中國信息通信研究院、華為技術(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ì)算安全白 皮書》,首次系統(tǒng)地分析和描述了邊緣計(jì)算的海量、異 構(gòu)、資源約束、實(shí)時(shí)性、分布式等五大需求特征給邊緣計(jì)算安全帶來的技術(shù)挑戰(zhàn),并從邊緣云接入、邊緣云服務(wù)器、邊緣云管理等三個(gè)主要攻擊維度,系統(tǒng)地分析和描述了邊緣計(jì)算平臺(tái)面臨的十二大安全威脅。
2018年,中國電子技術(shù)標(biāo)準(zhǔn)化研究院和阿里云計(jì)算有限公司聯(lián)合推出《邊緣云計(jì)算技術(shù)及標(biāo)準(zhǔn)化白皮 書》,定義了邊緣云計(jì)算的概念、典型應(yīng)用場景、技術(shù)特點(diǎn)、標(biāo)準(zhǔn)化需求以及標(biāo)準(zhǔn)化建議。2019年12月,雙方又聯(lián)合發(fā)布了中國開源云聯(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)證
近年來,人們開始針對(duì)邊緣云計(jì)算開展相關(guān)認(rèn)證技術(shù)研究,目前主要研究的是邊緣服務(wù)器與用戶之間的雙向認(rèn)證技術(shù),目的是防止接入惡意用戶,或者防止接入到惡意的邊緣服務(wù)器,同時(shí)考慮減少接入認(rèn)證時(shí)的計(jì)算和通信開銷;少數(shù)工作關(guān)注了云-邊緣平臺(tái)之間的認(rèn)證和通信安全問題,主要考慮的是增加認(rèn)證次數(shù)和通信過程中的數(shù)據(jù)安全性。
(1)邊緣服務(wù)器與用戶之間的認(rèn)證技術(shù)
目前的研究方案主要聚焦在邊緣服務(wù)器和用戶 (手機(jī)或移動(dòng)設(shè)備)之間的雙向認(rèn)證方案研究,而且大多假定邊緣服務(wù)器之間不會(huì)進(jìn)行通信,邊緣服務(wù)器只和云中心進(jìn)行通信或者只和用戶進(jìn)行通信,這類方案主要解決兩類安全問題,具體如下:
一是,針對(duì)用戶(手機(jī)/移動(dòng)設(shè)備)資源受限,以及無線通信(如WLAN)或電信網(wǎng)絡(luò)容易被竊聽等安全問題。由于移動(dòng)手機(jī)用戶從不同的服務(wù)提供商訪問不同類型的移動(dòng)云計(jì)算服務(wù)時(shí),用戶通常需要在每個(gè)服務(wù)提供商上注冊(cè)不同的用戶賬戶,并且需要維護(hù)相應(yīng)的私鑰或密碼進(jìn)行身份驗(yàn)證,導(dǎo)致用戶接入移動(dòng)云服務(wù)的認(rèn)證過程過于繁瑣。針對(duì)上述問題,國立臺(tái)灣科技大學(xué)[15]提出了一種基于身份加密系統(tǒng)(IBC)的隱私保護(hù)認(rèn)證方案,該方案僅需要移動(dòng)用戶保存一個(gè)私 鑰,便可與不同服務(wù)提供商進(jìn)行認(rèn)證,前提是用戶知道服務(wù)提供商的所有身份,反之亦然,減少了密鑰管理開銷。同時(shí),該方案基于ECC橢圓曲線(而非RSA)運(yùn)算進(jìn)行密鑰協(xié)商,除了注冊(cè)階段需要可信第三方參與之外,后續(xù)的認(rèn)證階段無需可信第三方參與,保證了通信安全,并減少了用戶計(jì)算和通信的開銷。
二是,針對(duì)邊緣服務(wù)器容易遭受攻擊、偽造等安全問題。由于邊緣服務(wù)器可能部署在商場、機(jī)場、公園、停車場,甚至長途汽車等交通工具內(nèi)部,這些場所用戶的流量大(如:接入規(guī)模、移動(dòng)性大),可能導(dǎo)致用戶錯(cuò)誤接入一個(gè)惡意的邊緣服務(wù)器。針對(duì)上述問題,埃及哈勒旺大學(xué)[16]提出了一種終端用戶與霧服務(wù)器之間的雙向認(rèn)證方案Octopus,該方案只需要在用戶注冊(cè)時(shí)基于用戶ID為其生成一個(gè)長期有效的主密鑰(足夠長),以及基于用戶主密鑰、霧(相當(dāng)于邊緣云)ID和霧服務(wù)器(相當(dāng)于邊緣服務(wù)器)ID計(jì)算得到用戶驗(yàn)證密鑰(存放在邊緣服務(wù)器中),便可以與任何(包括新加 入的)邊緣服務(wù)器進(jìn)行雙向認(rèn)證,抵抗惡意邊緣服務(wù)器攻擊。同時(shí),由于該方案的認(rèn)證過程主要基于Hash運(yùn) 算和對(duì)稱加密運(yùn)算,大大減少了認(rèn)證計(jì)算的開銷。
(2)云-邊緣服務(wù)器之間的認(rèn)證技術(shù)
除了邊緣服務(wù)器與用戶之間的雙向認(rèn)證技術(shù)研究之外,還有一些研究工作關(guān)注了云-邊緣服務(wù)器之間的認(rèn)證和通信安全問題,這類方案主要解決兩類安全問題,具體如下:
一是,針對(duì)云-邊緣僅一次性認(rèn)證的安全問題。由于邊緣服務(wù)器無法像傳統(tǒng)云服務(wù)器一樣能隨時(shí)進(jìn)行管理與更改,僅僅在其初始化階段認(rèn)證一次,這種做法無法應(yīng)對(duì)后續(xù)可能出現(xiàn)的安全風(fēng)險(xiǎn)。針對(duì)上述問題, 英特爾[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ī)分類器,對(duì)邊緣主機(jī)的電磁輻射硬件指紋進(jìn)行識(shí)別,從而實(shí)現(xiàn)身份的持續(xù)認(rèn)證。
二是,針對(duì)云-邊緣消息通信安全被忽略的問題。正如云安全聯(lián)盟(CSA)所強(qiáng)調(diào)的那樣,開發(fā)高效的云到邊緣系統(tǒng)的一個(gè)有價(jià)值的方法是基于即時(shí)消息通信解決方案,但是在當(dāng)前的云-邊計(jì)算環(huán)境中,基于即時(shí)消息協(xié)議的消息中間件(Message Oriented Middleware,MOM)提供了良好的性能,卻忽略了安全性需求。針對(duì)上述問題,意大利墨西拿大學(xué)[19]提出了一種安全管理方法,目的是按照CSA準(zhǔn)則,改進(jìn)這種云到邊緣系統(tǒng)即時(shí)消息通信過程的安全性,以實(shí)現(xiàn)數(shù)據(jù)保密性、完整性、真實(shí)性和不可抵賴性所涉及的問題。
3.2 邊緣云計(jì)算環(huán)境下的容器安全隔離
近年來,人們開始針對(duì)邊緣容器安全隔離技術(shù)開展研究,大多采用的是基于底層系統(tǒng)的容器安全增強(qiáng)、容器的權(quán)限限制的方法來實(shí)現(xiàn)容器隔離,主要目的是防止由于同一主機(jī)上的多個(gè)容器共享內(nèi)核,黑客更容易通過容器攻破底層宿主機(jī)(邊緣服務(wù)器)的安全問題;同時(shí),在相關(guān)技術(shù)的研究過程中還需要有效保證容器的兼容性和可用性。
(1)基于底層系統(tǒng)的容器安全增強(qiáng)技術(shù)
一些研究工作關(guān)注如何通過底層操作系統(tǒng)安全能 力,或者增加新的底層功能,或者減少內(nèi)核/容器鏡像來實(shí)現(xiàn)對(duì)容器的安全隔離,這類方案主要解決兩類安全問題,具體如下:
一是,針對(duì)底層系統(tǒng)對(duì)容器的安全保障不足問題。 意大利貝爾加莫大學(xué)[20]提出了對(duì)Dockerfile的擴(kuò)展技 術(shù),為運(yùn)行在Docker鏡像中的進(jìn)程提供Linux系統(tǒng)層支持的特定SELinux安全策略,限制容器中進(jìn)程的權(quán) 限。但是這種方法與原有的容器生態(tài)不兼容,限制了其使用范圍。谷歌公司專門開發(fā)了gVisor[21],一個(gè)使用 Golang這種內(nèi)存安全的語言編寫的用戶空間內(nèi)核,它實(shí)現(xiàn)了Linux系統(tǒng)調(diào)用的很大一部分,當(dāng)容器中的應(yīng)用調(diào)用系統(tǒng)調(diào)用時(shí),它會(huì)攔截并且在用戶空間提供相應(yīng)的服務(wù)。通過這種方式,容器中的應(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)及容器的鏡像過大的安全問題。美國威斯康星大學(xué)[22]提出使用動(dòng)態(tài)和靜態(tài)分析來標(biāo)識(shí)用于運(yùn)行特定應(yīng)用程序的最少資源集的方法-Cimplifier,從而大大減少了應(yīng)用程序容器鏡像的大小。蘇黎世IBM研究院[23]通過刪除或阻止未使用的內(nèi)核代碼段的執(zhí)行來有效地減少攻擊面,但是這種方法的實(shí)施難度比較大,而且不能保證所有可能會(huì)被用到的代碼段都被保留。Nabla容器[24]實(shí)現(xiàn)了容器之間的強(qiáng) 隔離,只允許容器執(zhí)行7個(gè)系統(tǒng)調(diào)用,但是它有很多限 制,例如不允許動(dòng)態(tài)加載庫、不允許用于與其他進(jìn)程共享內(nèi)存的mmap等,可用性差。
(2)基于程序分析的容器權(quán)限限制技術(shù)
除了通過底層系統(tǒng)來限制容器權(quán)限的安全隔離技術(shù)研究之外,還有許多研究工作關(guān)注了容器可訪問系統(tǒng)調(diào)用/特權(quán)最小集的程序分析技術(shù)上,從而限制容器惡意利用不必要的系統(tǒng)調(diào)用/特權(quán)對(duì)宿主機(jī)(邊緣服務(wù)器)造成威脅,這類方案主要解決兩類安全問題,具體如下:
一是,針對(duì)容器可訪問系統(tǒng)調(diào)用過多的安全問題。自2016年1.10版本,Docker支持了seccomp機(jī) 制,以限制運(yùn)行在Docker容器中的應(yīng)用能夠訪問的系統(tǒng)調(diào)用,降低了宿主機(jī)的攻擊面。但是對(duì)于特定的容器來說,Docker默認(rèn)允許的系統(tǒng)調(diào)用仍舊很多(總共有300多個(gè)系統(tǒng)調(diào)用,默認(rèn)僅禁用44個(gè))。為了解決此問題,中科院信工所[25]提出了一種應(yīng)用容器的分階段執(zhí)行來區(qū)分容器運(yùn)行的必要和不必要的系統(tǒng)調(diào)用方法SPEAKER,從容器的運(yùn)行過程中刪除部分只在容器的啟動(dòng)階段使用的系統(tǒng)調(diào)用。知名開源工具DockerSlim[26]通過創(chuàng)建臨時(shí)容器,跟蹤用戶在臨時(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é)合的方法,通過動(dòng)態(tài)分析獲得容器啟動(dòng)時(shí)所需系統(tǒng)調(diào)用及運(yùn)行時(shí)所需訪問的可執(zhí)行文件,再靜態(tài)分析可執(zhí)行文件需要訪問的系統(tǒng)調(diào)用,得到特定容器應(yīng)用運(yùn)行時(shí)需要的系統(tǒng)調(diào)用,減少攻擊面的同時(shí)保證了容器不出錯(cuò),可用性更強(qiáng)。
二是,針對(duì)容器擁有的特權(quán)過大的安全問題。為了增強(qiáng)容器的安全性,大多數(shù)容器采用了Linux內(nèi)核提供的權(quán)能機(jī)制(Capability機(jī)制)來約束容器內(nèi)部進(jìn)程的能力。通過Capability機(jī)制,超級(jí)用戶的特權(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ì)于特定的容器來說,Docker默認(rèn)擁有的特權(quán)仍舊有一部分是不必要的。為了解決此問題,韓國科學(xué)技術(shù)院(KAIST)[28]通過使用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)過大帶來的安全風(fēng)險(xiǎn)。
3.3 邊緣云計(jì)算環(huán)境下的可信硬件支持
由于可信硬件提供的安全隔離運(yùn)行環(huán)境能夠增強(qiáng)邊緣服務(wù)器的安全保障能力,人們近年來開始關(guān)注邊緣服務(wù)器的可信硬件支持技術(shù)研究。一方面,能夠有效解決邊緣服務(wù)器上的軟件系統(tǒng)遠(yuǎn)程維護(hù)和更新困難、缺陷容易被黑客利用問題;另一方面,能夠保障可信硬件支持環(huán)境下,在邊緣服務(wù)器上部署云原生應(yīng)用可能存在的兼容性和性能開銷大的問題。
(1)可信硬件能力支持及性能優(yōu)化技術(shù)
一些研究工作關(guān)注在邊緣服務(wù)器端集成可信硬件的可行性評(píng)估,以及如何優(yōu)化可信硬件支持下的上下文切換、內(nèi)存頁替換、內(nèi)存加解密性能,這類方案主要解決兩類安全問題,具體如下:
一是,針對(duì)邊緣服務(wù)器缺乏硬件安全能力支持的問題。美國韋恩州立大學(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能力的測試,其中上下文切換時(shí)間為2~3微秒、敏感數(shù)據(jù)計(jì)算時(shí)間為6.7微秒、總體時(shí)間開銷下降 0.48%。
· 在ARM Juno Board(ARM V8)上進(jìn)行了集成 ARM TrustZone能力的測試,其中上下文切換時(shí)間為 0.2微秒、敏感數(shù)據(jù)計(jì)算時(shí)間為9.67微秒、總體時(shí)間開銷下降0.13%。
· 在帶AMD EPYC-7251處理器的機(jī)器上進(jìn)行了集成AMD內(nèi)存加密能力的測試,其中上下文切換時(shí)間為3.09微秒、敏感數(shù)據(jù)計(jì)算時(shí)間約0微秒、總體時(shí)間開銷下降4.14%。結(jié)論是,TEE集成后給邊緣服務(wù)器節(jié)點(diǎn)帶來的計(jì)算性能開銷都比較低,具有可行性。
二是,針對(duì)可信硬件支持帶來的計(jì)算性能開銷的問題。針對(duì)可信硬件支持下安全區(qū)代碼與非安全區(qū)代碼交互/上下文切換可能產(chǎn)生較大性能開銷的問題,英特爾[30] 提出了一種通過交互/上下文切換時(shí)的異步調(diào)用機(jī)制進(jìn)行優(yōu)化。SGX的EPC內(nèi)存目前一共僅有128MB(其中只有 96MB是可用的),可用內(nèi)存空間很小,可能會(huì)帶來計(jì)算過程中頻繁的內(nèi)存頁面替換問題,產(chǎn)生較大的性能開銷。針對(duì)該問題,佐治亞理工學(xué)院研究人員[31]提出了一 種減小EPC頁面元信息占用空間的方法STANlite進(jìn)行了 優(yōu)化。針對(duì)內(nèi)存加密開銷大的問題,英國LSDS研究組[32] 提出了一種盡量對(duì)內(nèi)存數(shù)據(jù)采用連續(xù)訪問的數(shù)據(jù)結(jié)構(gòu)、 避免采用隨機(jī)訪問的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的方法進(jìn)行了優(yōu)化。
(2)基于可信硬件的應(yīng)用支持技術(shù)
除了可信硬件能力支持及性能優(yōu)化技術(shù)研究之外, 還有許多研究工作關(guān)注了如何開發(fā)TEE可信硬件環(huán)境下的應(yīng)用支持技術(shù),從而保證云原生應(yīng)用在支持TEE的邊 緣服務(wù)器上的快速部署與應(yīng)用問題,這類方案主要解決兩類安全問題,具體如下:
一是,針對(duì)應(yīng)用的兼容性問題。為了支持云原生應(yīng)用的部署與應(yīng)用[33],研究人員在TEE可信執(zhí)行環(huán)境內(nèi)設(shè)置操作系統(tǒng)庫或者標(biāo)準(zhǔn)函數(shù)庫來支持TEE內(nèi)應(yīng)用程序的執(zhí)行,從而實(shí)現(xiàn)兼容性。例如:微軟公司 [34]提出的Haven,是在TEE中實(shí)現(xiàn)一個(gè)Drawbridge 操作系統(tǒng)庫,從而能夠在TEE中直接運(yùn)行未修改的 Windows應(yīng)用程序。紐約州立大學(xué)石溪分校提出的 Graphene[35],是在TEE中部署一個(gè)操作系統(tǒng)庫,從而能夠支持在TEE上快速部署未修改的Linux應(yīng)用程序。 英國LSDS研究組提出的SCONE[32],則是在TEE中配置了標(biāo)準(zhǔn)C函數(shù)庫的修改版本,從而能夠支持重新編譯的 Linux應(yīng)用程序。
二是,針對(duì)敏感代碼的合理劃分問題。支持應(yīng)用兼容性方案將所有代碼或大多數(shù)代碼放在安全區(qū)中,會(huì)導(dǎo)致可信計(jì)算基(TCB)很大,而TCB越大,帶來的安 全性問題也越大。為此,研究人員開始研究如何將原生的應(yīng)用程序劃分為敏感和非敏感部分,僅將較小的敏感代碼部分放入安全區(qū),從而通過減少TCB來降低安全風(fēng)險(xiǎn)。例如,英國帝國理工學(xué)院[36]提出了一種基于C語言的SGX應(yīng)用程序源碼劃分框架Glamdring,主要通過開發(fā)人員對(duì)應(yīng)用程序中安全敏感數(shù)據(jù)的注釋,采用程序分析方法,分析找出與安全敏感數(shù)據(jù)安全性有關(guān)的代碼和數(shù)據(jù)。瑞士洛桑聯(lián)邦理工學(xué)院[37]提出的Secured Routines,是一種將可信執(zhí)行代碼編寫集成到編程語言中的方法,它通過擴(kuò)展Go語言,以允許程序員在TEE內(nèi)調(diào)用敏感操作、使用開銷小的通道通信,以及允許編譯器自動(dòng)提取安全代碼和數(shù)據(jù)。
4 邊緣云計(jì)算安全技術(shù)挑戰(zhàn)與展望
在邊緣云計(jì)算安全研究領(lǐng)域,人們已經(jīng)在邊緣云計(jì)算的認(rèn)證技術(shù)、容器安全隔離技術(shù)、可信硬件支持技術(shù)方面開展了一些相關(guān)研究工作。但是,上述研究工作存在一定的局限性,有待進(jìn)一步的研究、探索和 實(shí)踐。
(1)云-邊緣服務(wù)器之間的動(dòng)態(tài)認(rèn)證方案。目前主要研究的是邊緣服務(wù)器與用戶之間的雙向認(rèn)證方案,極少數(shù)工作關(guān)注了云-邊之間的認(rèn)證和通信安全問題。僅 由云對(duì)邊緣計(jì)算節(jié)點(diǎn)初始化/注冊(cè)時(shí)的一次性認(rèn)證或指紋認(rèn)證,無法應(yīng)對(duì)邊緣計(jì)算節(jié)點(diǎn)后續(xù)狀態(tài)動(dòng)態(tài)變化帶來的風(fēng)險(xiǎn),將危及用戶數(shù)據(jù)的安全與隱私。此外,用戶與偽造/惡意的邊緣節(jié)點(diǎn)直接進(jìn)行頻繁的身份驗(yàn)證,可能會(huì)造成大量用戶浪費(fèi)不必要的認(rèn)證開銷,甚至造成拒絕服務(wù)。所以,未來將重點(diǎn)開展云對(duì)邊緣服務(wù)的動(dòng)態(tài)認(rèn)證方案研究。
(2)邊緣容器權(quán)限的動(dòng)態(tài)最小化方法。目前主要研究的是如何通過底層系統(tǒng)安全增強(qiáng)、鏡像裁剪、容器系統(tǒng)調(diào)用/特權(quán)限制的方法來實(shí)現(xiàn)容器的安全隔離。對(duì)于底層系統(tǒng)安全增強(qiáng)的方案,容易帶來兼容性差的問題;對(duì)于鏡像裁剪的方案,可以有效解決輕量級(jí)和安全攻擊面減小的問題,但是依然會(huì)存在兼容性不足的情況;對(duì)于容器應(yīng)用可訪問的系統(tǒng)調(diào)用或特權(quán)進(jìn)行限制的方法適應(yīng)性強(qiáng),但是需要提前對(duì)所有應(yīng)用容器進(jìn)行程序分析,無法實(shí)現(xiàn)動(dòng)態(tài)控制。所以,未來將重點(diǎn)開展容器權(quán)限的動(dòng)態(tài)最小化方法研究。
(3)邊緣應(yīng)用TEE敏感代碼的生成技術(shù)。目前主要研究的是如何對(duì)云原生應(yīng)用在邊緣服務(wù)器TEE環(huán)境下的代碼兼容性和代碼的合理劃分問題,包括TEE敏感代碼依賴的函數(shù)庫/系統(tǒng)庫支持技術(shù)保證兼容性,以及通過基于程序分析的TEE代碼劃分、編程語言擴(kuò)展和編譯器修改等方法支持TEE應(yīng)用的開發(fā),但是需要的學(xué)習(xí)成本高、容易出錯(cuò)、代碼的安全性驗(yàn)證困難。所以,未來將重點(diǎn)開展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)致用戶代碼和數(shù)據(jù)被竊取或篡改等安全問題,從邊緣云計(jì)算環(huán)境下的認(rèn)證、容器安全隔離、可信硬件支持等三個(gè)方面的技術(shù)研究進(jìn)展進(jìn)行了分析與綜述,并展望了這些方面的未來研究趨勢。
作者簡介:
沈晴霓,北京大學(xué)教授、博士生導(dǎo)師,主要研究方向?yàn)椴僮飨到y(tǒng)與虛擬化安全,云/邊緣計(jì)算安全、大數(shù)據(jù)安全與隱私、可信計(jì)算與區(qū)塊鏈安全等,主持和參與30多項(xiàng)國家、省部級(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等國際國內(nèi)頂級(jí)和著名期刊或會(huì)議上發(fā)表學(xué)術(shù)論文90多篇,授權(quán)美國、歐洲和國內(nèi)發(fā)明專利35項(xiàng),部分已應(yīng)用,參與制定國家標(biāo)準(zhǔn)2項(xiàng),獲國家精品在線開放課程獎(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ì)算安全白皮書, 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月刊