歐陽雪,徐彥彥
武漢大學(xué)測繪遙感信息工程國家重點實驗室 武漢 中國 430079
自2006 年“云計算”(Cloud Computing)的概念首次被提出以來,就受到研究者的廣泛關(guān)注[1]。本質(zhì)上,云計算是一種基于互聯(lián)網(wǎng)的服務(wù)提供模型[2],從應(yīng)用層到基礎(chǔ)層可以分為三種服務(wù)類型: 軟件即服務(wù)(Software as a Service,SaaS)提供完整軟件應(yīng)用服務(wù);平臺即服務(wù)(Platform as a Service,PaaS)提供應(yīng)用程序的開發(fā)環(huán)境和資源等服務(wù);基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service,IaaS)提供底層硬件基礎(chǔ)設(shè)施部署等服務(wù)。
IaaS 作為云計算的三種服務(wù)類型之一,依靠云服務(wù)提供商(Cloud Service Provider,CSP),并根據(jù)現(xiàn)有的虛擬化、分布式計算和網(wǎng)絡(luò)存儲等技術(shù)為用戶提供通用基礎(chǔ)設(shè)施服務(wù)(如計算、存儲和網(wǎng)絡(luò)),用戶基于這些基礎(chǔ)設(shè)施資源部署需要的中間件和應(yīng)用軟件等。因此,IaaS 可以提供較為完善的基礎(chǔ)設(shè)施服務(wù),并成為云計算服務(wù)體系的基石。然而,IaaS 的公有云模式是通過公共網(wǎng)絡(luò)向多個互不信任的用戶提供共享資源服務(wù),這就導(dǎo)致公共云的多租戶特性可能出現(xiàn)資源隔離不足或共享信息泄露等問題。一般來說,攻擊者主要是惡意的CSP 和使用相同CSP 的惡意用戶,他們通過攻擊或占有用戶資源的方式來獲取用戶的數(shù)據(jù)或獲得額外資源服務(wù),從而影響用戶數(shù)據(jù)的機密性、完整性、可用性和用戶與CSP 之間的合同安全性[3]。
面對IaaS 云環(huán)境產(chǎn)生的安全挑戰(zhàn),本文首先介紹IaaS 的相關(guān)基礎(chǔ)知識和IaaS 云安全威脅。然后,從學(xué)術(shù)界和工業(yè)界的角度出發(fā),重點對IaaS 提供的計算、存儲和網(wǎng)絡(luò)等服務(wù)中存在的安全問題進行具體分析,并梳理提供的解決方案。最后對未來研究方向進行總結(jié)和展望。
IaaS 架構(gòu)如圖1 所示??梢钥闯?物理層主要為IaaS 提供底層基礎(chǔ)硬件資源,然后虛擬機監(jiān)視器(hypervisor)管理和整合基礎(chǔ)硬件資源,并進行重新分配虛擬硬件資源來構(gòu)建多個虛擬機。最后云管理平臺對虛擬化資源進行平臺統(tǒng)一的調(diào)度和管理,為用戶提供完整的IaaS 服務(wù)。IaaS 主要包括計算、存儲和網(wǎng)絡(luò)服務(wù)。
圖1 IaaS 架構(gòu)Figure 1 IaaS Architecture
計算服務(wù) 用戶可根據(jù)自身業(yè)務(wù)的計算需求,向CSP 彈性租用hypervisor、虛擬機或服務(wù)器,并通過網(wǎng)絡(luò)將工作負載遷移進去,進而提高用戶的工作效率。目前國內(nèi)外CSP 都提供IaaS 計算服務(wù),例如Amazon AWS 的彈性計算云EC2[4]、Google Cloud 的Compute Engine[5]、Microsoft Azure 虛擬機[6]、阿里云服務(wù)器ECS[7]、華為彈性云服務(wù)器[8]和百度的智能云服務(wù)器BCC[9]等。
存儲服務(wù) 在IaaS 環(huán)境下,CSP 可以根據(jù)用戶的具體使用場景來提供不同的存儲設(shè)備。根據(jù)數(shù)據(jù)存儲服務(wù)的差異,主要分為對象存儲、塊存儲和文件存儲。
網(wǎng)絡(luò)服務(wù) IaaS 的網(wǎng)絡(luò)服務(wù)可以實現(xiàn)云環(huán)境下的虛擬網(wǎng)絡(luò)功能,并為每個用戶建立獨立的網(wǎng)絡(luò)環(huán)境來運行虛擬機。根據(jù)用戶需求,網(wǎng)絡(luò)服務(wù)可以提供公網(wǎng)網(wǎng)絡(luò)和私有網(wǎng)絡(luò)。
攻擊者針對IaaS 云平臺有兩類攻擊目標。第一類攻擊目標是通過攻擊用戶的hypervisor 或虛擬機來獲得或破壞用戶的資源,這類攻擊者主要是惡意用戶或惡意CSP;第二類攻擊目標是通過攻擊CSP或用戶來獲得比服務(wù)水平協(xié)議(Service Level Agreement,SLA)更多的服務(wù),這類攻擊者主要是惡意用戶。其中,惡意用戶指的是租用同一個CSP 提供設(shè)施的用戶,惡意CSP 包括被攻擊者破壞的正常CSP和本身具有破壞性的CSP。
根據(jù)以上兩類攻擊目標,并以云計算領(lǐng)域的權(quán)威機構(gòu)(CSA[10-11]、ENISA[12]和NIST[13])的調(diào)查為依據(jù),分析IaaS 安全威脅,如表1 所示,對安全威脅內(nèi)容、云安全屬性和安全責任進行總結(jié)。其中,這兩類攻擊的目標都是攻擊用戶和CSP 的云安全屬性,即機密性、完整性、可用性和合同安全性[3]。機密性確保CSP 上使用和存儲的用戶的數(shù)據(jù)和數(shù)據(jù)訪問模式等信息不會被泄露;完整性確保用戶的數(shù)據(jù)的內(nèi)容在使用CSP 后都是一致;可用性確保用戶訪問的CSP 資源是否可以正常使用,并且如果數(shù)據(jù)因某種原因而無法訪問,用戶可以恢復(fù)數(shù)據(jù);合同安全性確保CSP 按照合同中的服務(wù)水平協(xié)議誠實而完整地將IaaS 服務(wù)提供給用戶。并且,針對數(shù)據(jù)層面,安全威脅包括數(shù)據(jù)泄露和內(nèi)部威脅;針對系統(tǒng)層面,安全威脅包括缺乏安全架構(gòu)和策略、不安全的接口和應(yīng)用程序編程接口(Application Programming Interface,API)以及控制平臺薄弱;針對用戶管理層面,安全威脅有配置錯誤和變更控制不足和身份信息監(jiān)控和管理不力;針對服務(wù)層面,安全威脅有濫用和惡意使用服務(wù)和賬戶劫持。此外,CSP 在IaaS 云環(huán)境中的主要安全責任包括: 1)強制隔離不同用戶的虛擬機,保證不同虛擬機之間的計算過程或內(nèi)存互相隔離;2)維護虛擬化基礎(chǔ)設(shè)施,保證按時更新和進程保護,并及時將安全漏洞信息告知用戶。同時,用戶在IaaS 云環(huán)境中的主要安全責任包括兩個方面[14]: 1)保管自身安全密鑰;2)關(guān)注CSP 的漏洞公告,及時對存在的安全風險進行處理。
表1 IaaS 安全威脅總結(jié)(“√”表示云安全屬性被破壞或者存在安全責任,空白則表示尚不具有該項指標)Table 1 Summary of IaaS security threat(“√” indicates that the cloud security attributes are compromised,or have safety responsibility,and blank indicates that the indicator is not yet available)
根據(jù)表1 中不同安全層面的威脅內(nèi)容可知,IaaS安全威脅主要針對用戶的云安全屬性,所以需要對其安全防御進行重點研究。同時,合同安全性雖然涉及的安全威脅較少,但同樣需要CSP 提高并加固SLA 的可用性和有效性。最后,IaaS 的安全威脅不僅依靠CSP 關(guān)注和保護,用戶也需要提高自身安全意識,即CSP 和用戶雙方都需要共同承擔相應(yīng)責任,才能有效抵抗攻擊者的破壞行為。
本節(jié)首先介紹IaaS 提供的計算、存儲和網(wǎng)絡(luò)服務(wù)中存在的安全威脅,然后總結(jié)學(xué)術(shù)界提供的解決方案。
計算服務(wù)是CSP 通過IaaS 為用戶提供計算設(shè)備的租用,主要包括hypervisor、虛擬機。然而,攻擊者可以利用IaaS 環(huán)境下的多租戶特性來影響用戶計算服務(wù)的正常使用。本節(jié)針對以上問題,對hypervisor和虛擬機存在的安全威脅和相應(yīng)防御手段進行研究。
3.1.1 虛擬機監(jiān)視器(hypervisor)
虛擬機監(jiān)視器(hypervisor)主要負責規(guī)劃、部署和管理虛擬機。然而,隨著IaaS 的發(fā)展,hypervisor 的規(guī)模不斷擴大,使其安全性難以得到保證。一旦hypervisor 出現(xiàn)安全隱患,則攻擊者可以通過hypervisor 的代碼漏洞或破壞其完整性來執(zhí)行虛擬機逃逸攻擊,從而嚴重影響IaaS 的計算服務(wù)。例如,截至2021 年1 月,Xen 具有超過20 萬代碼行(Lines Of Code,LOC),而Xen 所有版本的報告中至少存在457處漏洞[15]。面對代碼規(guī)模日益增大的hypervisor,需要構(gòu)建新型輕量級hypervisor 來精簡運行操作系統(tǒng),從而達到減小 TCB 規(guī)模的目的。因此,針對hypervisor 的攻擊,典型的防御手段有構(gòu)建新型輕量級hypervisor 和保證hypervisor 的完整性。
針對構(gòu)建新型輕量級hypervisor 的研究,文獻[16]基于硬件虛擬化技術(shù)新型hypervisor,稱為SecVisor。代碼上,SecVisor 只包括虛擬化內(nèi)存管理單元、IO 內(nèi)存管理單元和物理內(nèi)存,而傳統(tǒng)的hypervisor 則包含整個虛擬化系統(tǒng)。同時,在安全上,SecVisor 確保只有經(jīng)過用戶批準的代碼才能執(zhí)行,防止攻擊者的非法入侵;文獻[17]提出的 TrustVisor 盡管只包含TrustVisor 和PAL,但在實現(xiàn)可信計算的同時保護敏感代碼,使TrustVisor 成為一種輕量級和高性能的hypervisor;CloudVisor[18]采用嵌套虛擬化技術(shù)將虛擬化的資源管理功能與安全保護功能分開,使TCB的規(guī)模大幅下降;基于微內(nèi)核的原理,HypSec[19]對現(xiàn)有的hypervisor 分割成一個小型的可信監(jiān)視器(稱為 corevisor)和一個大型的不可信監(jiān)視器(稱為hostvisor),并利用硬件虛擬化技術(shù)來隔離和保護corevisor,從而保證HypSec 安全;此外,針對數(shù)字取證場景,文獻[20]提出的ForenVisor 刪除了與取證場景無關(guān)的模塊(如設(shè)備驅(qū)動程序),從而減小TCB 的大小。并且ForenVisor 不使用網(wǎng)絡(luò)來進行存儲,而是通過本地設(shè)備來存儲取證數(shù)據(jù),故在保證取證數(shù)據(jù)完整性的同時也降低了ForenVisor 被網(wǎng)絡(luò)攻擊的風險。ForenVisor 的研究表明,在特定的場景下,通過刪減與場景無用的模塊來保證hypervisor 的安全是可行的。表2 給出了傳統(tǒng)hypervisor(KVM 和Xen)與文獻[16-20]的TCB 大小比較。
表2 TCB 大小比較(單位: LOC)Table 2 TCB size comparison
針對hypervisor 完整性的研究,可以采用防止篡改、探測篡改和完整性度量等手段。為了防止攻擊者篡改hypervisor,HyperSafe[21]采用不可繞過的內(nèi)存鎖定技術(shù)來保證hypervisor 的代碼和數(shù)據(jù)完整;在探測篡改方面,文獻[22]提出基于硬件輔助的探測篡改框架HyperCheck 來獲取托管虛擬機的完整狀態(tài)并安全傳輸?shù)竭h程服務(wù)器。然而,攻擊者可以在獲取hypervisor 的完整狀態(tài)之前隱藏并清除攻擊痕跡,致使需要一種完整性度量方法來確保被攻擊的hypervisor 無法隱藏攻擊痕跡。為了解決這一問題,HyperSentry[23]采用硬件提供的隔離部件來秘密度量hypervisor 是否完整,并且HyperSentry 的秘密性可以確保被攻擊hypervisor 不會隱藏攻擊蹤跡。此外,考慮到虛擬機在遷移前需要對遷移hypervisor 進行完整性度量來判斷hypervisor 是否可信,文獻[24]提出的相鄰?fù)暾远攘繖C制來動態(tài)監(jiān)視其相鄰hypervisor 的完整性,并將度量結(jié)果傳遞給該區(qū)域的TCB 來執(zhí)行完整性驗證。
3.1.2 虛擬機研究
虛擬機是由hypervisor 創(chuàng)建并運行在客體操作系統(tǒng)的完整計算機系統(tǒng),其具有配置快速和維護靈活等特點,使得用戶可以像使用物理計算機一樣對虛擬機進行操作。然而,由于虛擬機的生命周期包括運行(running)、掛起(suspended)、恢復(fù)(resume)和關(guān)閉(off)等階段,這就導(dǎo)致攻擊者可以利用虛擬機生命周期的不同階段的特點來進行攻擊,從而泄露用戶信息。因此,面對虛擬機不同階段的攻擊,需要研究如何對虛擬機的各個階段進行安全防護。
1) 運行階段
在運行狀態(tài)下,數(shù)據(jù)泄漏是虛擬機的主要安全威脅[25],其中包括針對外部數(shù)據(jù)泄漏的側(cè)信道攻擊(side-channel attacks)和針對內(nèi)部數(shù)據(jù)泄漏的隱蔽信道攻擊(covert channel attacks)。
側(cè)信道攻擊是通過在虛擬機的密碼運行進程中產(chǎn)生的與敏感信息相關(guān)的側(cè)信道信息來恢復(fù)密鑰,這些側(cè)信道信息包括時間、功率消耗和電磁場等暴露在外部的數(shù)據(jù)。此外,在側(cè)信道攻擊中,由于在使用相同物理資源的不同用戶的虛擬機進程之間頻繁交互,故攻擊者采用高速緩存存儲器來探測當前運行的目標虛擬機的加密操作和操作執(zhí)行狀態(tài),從而推斷目標虛擬機產(chǎn)生的密鑰[26]。針對側(cè)信道攻擊,主要防御手段有加密通信過程、防止攻擊者獲得虛擬機的進程訪問信息、及時檢測攻擊行為和重新分配信道等。
文獻[27]對涉及高速緩存的通信過程進行加密,保證在高速緩存上運行的數(shù)據(jù)都以密文形式傳輸,從而避免虛擬機在運行階段產(chǎn)生數(shù)據(jù)泄漏。為了防止攻擊者獲得虛擬機進程訪問信息,文獻[28]定期向高速緩存信道添加隨機噪聲,使攻擊者無法讀取目標虛擬機的訪問信息;文獻[29]提出的XenPump 方案通過隨機延遲的方式混淆高速緩存?zhèn)刃诺乐械奶摂M機進程訪問時間,使攻擊者無法準確獲得進程訪問信息。為了及時檢測高速緩存?zhèn)刃诺拦粜袨?文獻[30]基于“FLUSH+RELOAD”技術(shù)來檢測高速緩存?zhèn)刃诺拦?并在發(fā)現(xiàn)攻擊后在同一操作系統(tǒng)中清除可疑的虛擬機進程;HomeAlone[31]通過設(shè)置自身的虛擬機不會使用某些高速緩存行,然后測量進程運行期間的高速緩存數(shù)據(jù)的變化情況。一旦HomeAlone 發(fā)現(xiàn)沒有使用的高速緩存行發(fā)生變化,則表明存在惡意虛擬機。此外,為了防止虛擬機之間無法共用高速緩存行,文獻[32]將互不信任的用戶分配到不同的CPU 或內(nèi)存,從而保證用戶在不同的信道下的高速緩存不會重疊并防止用戶信息泄露;文獻[33]使用hypervisor 來控制內(nèi)存映射,使得無論虛擬機進程訪問高速緩存數(shù)據(jù)的順序如何變化,受保護的敏感信息都能可以留在高速緩存行中并無法通過進程變化進行清除。
由于虛擬機內(nèi)部存在隔離缺陷,致使存在一種隱蔽信道允許雙方進行內(nèi)部通信。與側(cè)信道攻擊不同,側(cè)信道攻擊不需要通信雙方合謀,而隱蔽信道攻擊必須由通信雙方合謀才能實現(xiàn)數(shù)據(jù)的傳輸。在隱蔽信道攻擊中,攻擊者首先利用緩沖區(qū)溢出和虛擬機鏡像污染等手段將合謀者放入到目標虛擬機并獲取秘密信息,然后通過隱蔽信道把目標虛擬機的信息傳輸給攻擊者。因此,隱蔽信道攻擊在傳輸過程中難以被監(jiān)視系統(tǒng)(如防火墻、入侵檢測系統(tǒng)和網(wǎng)絡(luò)流量日志等)所察覺,從而增加抵御攻擊的難度。針對隱蔽信道攻擊,主要防御手段有減弱隱蔽信道攻擊、檢測攻擊行為和破壞隱蔽信道中的信息等。
為了減弱隱蔽信道造成的虛擬機數(shù)據(jù)泄漏,文獻[34]限制Xen 虛擬機的進程響應(yīng)時間,保證目標進程沒有運行結(jié)束時,攻擊進程得不到調(diào)度,從而減弱基于高速緩存的隱蔽信道攻擊。在檢測隱蔽攻擊方面,文獻[35]假設(shè)在GPU 上同時運行的應(yīng)用程序中包含攻擊應(yīng)用程序,并采用提出的GPUGuard 方法來檢測兩個應(yīng)用程序的內(nèi)核之間是否存在合謀行為。一旦發(fā)現(xiàn)合謀行為,則將可疑內(nèi)核重新分配到一個獨立的安全域中。因此,GPUGuard 可以有效抵御基于GPU 的隱蔽攻擊,從而保護用戶虛擬機的安全;ReplayConfusion[36]用于檢測基于高速緩存的隱蔽信道攻擊,即通過記錄不同程序運行的高速緩存來確定是否存在攻擊行為。如果檢測到用戶信息泄漏,就可以有效阻止攻擊者的攻擊行為。為了破壞隱蔽信道中的信息,文獻[37]針對基于內(nèi)存共享的隱蔽信道提出隨機共享方案。該方案通過隨機合并不同虛擬機中的相同內(nèi)存頁,可以保證即使在隱蔽信道攻擊下,接收方也無法準確知道發(fā)送方寫入哪些內(nèi)存頁,使得攻擊者無法獲取隱蔽信道正在傳輸?shù)男畔?從而保證用戶虛擬機的安全。
2) 掛起和恢復(fù)階段
在掛起和恢復(fù)階段,攻擊者通過虛擬機回滾攻擊(VM rollback attack)在用戶不知情的情況下恢復(fù)快照并運行虛擬機[38],使用戶虛擬機被惡意破壞并泄露用戶數(shù)據(jù)。
虛擬機回滾攻擊分為兩種攻擊方式: 1)攻擊者通過窮舉攻擊猜測目標虛擬機的登錄密碼。即使目標虛擬機會限制錯誤輸入密碼次數(shù),但攻擊者仍然可以在每次輸入密碼后將虛擬機無限回滾到初始狀態(tài)來清除虛擬機內(nèi)的計數(shù)器;2)攻擊者通過回滾權(quán)限控制模塊來撤消用戶的更改權(quán)限,從而將目標虛擬機的信息公開給攻擊者。針對虛擬機回滾攻擊,主要防御手段有禁用掛起/恢復(fù)機制和判斷掛起/恢復(fù)階段的安全性等。
文獻[39]提出的HyperWall 機制通過禁用掛起和恢復(fù)機制來保障虛擬機的安全,使攻擊者無法通過虛擬機回滾攻擊來獲得目標虛擬機信息,但是該方法在禁用的同時也使某些虛擬機常規(guī)操作(如快照或虛擬機遷移等)無法正常使用。此外,為了判斷掛起和恢復(fù)階段的安全性,文獻[40]對用戶虛擬機所有回滾行為都記錄下來,用戶可以根據(jù)記錄來判斷回滾期間是否存在惡意行為;文獻[41]提出通過使用可信hypervisor 來確保計數(shù)器只能是遞增狀態(tài),使得攻擊者無法通過窮舉攻擊來獲取用戶虛擬機的登入密碼,從而有效抵御虛擬機回滾攻擊。
3) 關(guān)閉階段
在關(guān)閉階段,虛擬機執(zhí)行的遷移操作可以將虛擬機內(nèi)運行的操作系統(tǒng)和應(yīng)用程序從一個物理位置遷移到另一個物理位置,從而實現(xiàn)虛擬機負載平衡、災(zāi)難恢復(fù)和硬件維護的目的[42]。虛擬機遷移可以分為兩種操作類型,即離線遷移和實時遷移。其中,離線遷移是在虛擬機完全關(guān)閉情況下通過網(wǎng)絡(luò)進行遷移;實時遷移與離線遷移的步驟幾乎一致,但在線遷移的遷移過程僅有短暫的虛擬機關(guān)閉時間,以確保在遷移過程中IaaS 服務(wù)仍具有可用性。
然而,由于遷移策略不完善或者遷移數(shù)據(jù)未加密,導(dǎo)致攻擊者可以采用拒絕服務(wù)(Denial of Service,DoS)攻擊和中間人(Man In The Middle,MITM)攻擊來破壞遷移虛擬機。在DoS 攻擊中,攻擊者在主機操作系統(tǒng)上創(chuàng)建許多虛擬機,致使主機操作系統(tǒng)過載并無法再接受任何遷移的虛擬機,從而降低達到用戶服務(wù)的可用性并增加攻擊者獲得額外虛擬資源服務(wù)的目的。此外,由于在虛擬機遷移過程中所有遷移的數(shù)據(jù)都默認以明文的形式傳輸,導(dǎo)致攻擊者可以利用傳輸網(wǎng)絡(luò)將自身置于傳輸信道中,并使用遷移目標欺騙和DNS 中毒等手段執(zhí)行中間人攻擊,從而截獲到用戶的敏感數(shù)據(jù)[43]。因此,為了確保虛擬機遷移期間的安全性,防止攻擊者獲取任何敏感信息,主要防御手段有設(shè)定遷移條件和加密遷移期間的數(shù)據(jù)。
針對虛擬機在遷移過程中的DoS攻擊,文獻[44]提出滿足以下三個遷移條件才能遷移虛擬機: 根據(jù)檢測物理主機的網(wǎng)絡(luò)狀態(tài)來選擇遷移虛擬機、根據(jù)設(shè)置的遷移時間閾值來選擇遷移時間以及根據(jù)遷移主機的帶寬利用率來選擇遷移目的主機?;谝陨先齻€遷移條件,用戶虛擬機可以從被DoS 攻擊的主機上遷移到其他正常的主機上,從而有效減輕DoS攻擊的影響;文獻[45]提出虛擬機遷移過程中的安全需求,即平臺間認證、傳輸數(shù)據(jù)的保護和虛擬可信根的保護;文獻[46]分析虛擬機實時遷移需要滿足安全和性能要求,其中安全要求包括遷移虛擬機的機密性和完整性得到保證,并且只有可信實體才能提出遷移請求和接收正確的虛擬機,性能要求指的是盡可能縮短虛擬機的停機時間和遷移時間以提高服務(wù)可用性。此外,為了加密遷移期間的數(shù)據(jù),文獻[47]基于屬性認證和可信信道來確保遷移數(shù)據(jù)以密文的形式進行安全傳輸,從而保證傳輸數(shù)據(jù)的機密性和完整性;文獻[48]對驗證合法的遷移虛擬機使用AES加密對遷移數(shù)據(jù)進行加密;文獻[49]基于可信平臺模塊(Trusted Platform Module,TPM)提出一種基于角色的遷移機制,其中遷移虛擬機采用TPM 私鑰對遷移數(shù)據(jù)進行加密,并以密文的形式向目標虛擬機進行身份認證,如果認證成功則同意遷移。該方法可以有效抵御中間人攻擊,保證虛擬機在遷移過程中的通信安全。
表3 依據(jù)hypervisor 和虛擬機生命周期的不同階段,對攻擊實例、攻擊效果、抵御攻擊原理和抵御方案進行歸納總結(jié)。可以看出,由于hypervisor 存在大規(guī)模代碼和和缺乏完整性等問題,使得攻擊者可以利用虛擬機逃逸攻擊來竊取非法權(quán)限。因此,可以通過構(gòu)建新型輕量級hypervisor 和保證hypervisor 的完整性手段來實現(xiàn)hypervisor 的安全。此外,攻擊者為了竊取用戶虛擬機的數(shù)據(jù)或獲得額外的IaaS 服務(wù)資源,可以根據(jù)虛擬機生命周期的各個階段的特點來分別執(zhí)行相應(yīng)的攻擊,使其干擾用戶虛擬機的正常服務(wù),并嚴重影響用戶數(shù)據(jù)的機密性、完整性和可用性。為了解決不同階段的安全問題,在未來的研究中需要全面關(guān)注虛擬機在整個生命周期的保護以保證用戶使用虛擬機的安全性和可靠性。
表3 基于hypervisor 和虛擬機生命周期的不同階段的安全研究Table 3 Security study based on different phases of hypervisor and virtual machine lifecycle
IaaS 的存儲服務(wù)是由CSP 所提供,用戶可以通過外包的方式將數(shù)據(jù)傳輸?shù)紺SP 的云存儲服務(wù)器,并在不同終端上訪問數(shù)據(jù),從而實現(xiàn)數(shù)據(jù)的存儲和共享。然而,存儲服務(wù)在用戶提供便利的同時,也存在以下的安全問題:
(1) 由于CSP 具有“誠實但好奇”的特點[50],導(dǎo)致CSP 在提供數(shù)據(jù)存儲服務(wù)的同時可能也會查看、刪除甚至泄露用戶數(shù)據(jù);
(2) CSP 出現(xiàn)設(shè)備故障而導(dǎo)致用戶數(shù)據(jù)丟失;
(3) 惡意攻擊者通過攻擊CSP 的云存儲服務(wù)器來獲取用戶數(shù)據(jù)。
為解決因存儲服務(wù)造成的數(shù)據(jù)泄露問題,在技術(shù)方面,用戶需要在外包之前對數(shù)據(jù)進行加密,但加密在保障數(shù)據(jù)的安全性同時會對密文檢索和共享造成不便[50]。因此,為保證用戶存儲在CSP 上的數(shù)據(jù)不被泄露,可以采用代理重加密[51-53]、屬性基加密(Attribute-Based Encryption,ABE)[54-56]、可搜索加密(Searchable Encryption,SE)[57-59]和可信平臺模塊TPM[60-62]等手段實現(xiàn)安全存儲。
表4 針對IaaS 的安全存儲服務(wù)進行總結(jié),其中包括解決方法、實現(xiàn)過程、抵御方案、實現(xiàn)效果以及存在問題??梢钥闯?不同的解決方法從軟件到硬件都能實現(xiàn)用戶在密文域下的高效檢索和共享,但也存在一些問題和限制。針對這些問題和限制,如何進行改進以實現(xiàn)IaaS 數(shù)據(jù)安全性和可用性之間的平衡將是今后研究的重點。
表4 存儲服務(wù)的安全研究Table 4 Security study of storage services
由于IaaS 具有“虛擬隔離、物理共存”的特點,使IaaS 環(huán)境下的攻擊行為是在hypervisor 或虛擬機的內(nèi)部進行。因此針對外部防御的傳統(tǒng)計算機網(wǎng)絡(luò)安全隔離機制(如物理防火墻等)不適用于IaaS 環(huán)境。因此需要采用新的方式來構(gòu)建虛擬網(wǎng)絡(luò)基礎(chǔ)設(shè)施來保證虛擬機之間的安全通信。
針對IaaS 環(huán)境下虛擬化網(wǎng)絡(luò)中的安全問題,主要的防御手段有虛擬防火墻(virtual firewall)[63-65]、入侵檢測系統(tǒng)(Intrusion Detection System)[66-69]和設(shè)計安全虛擬網(wǎng)絡(luò)機制或框架[70-72]。表5 歸納了網(wǎng)絡(luò)服務(wù)存在的安全問題、解決思路、解決方案以及實現(xiàn)效果。可以看出,虛擬網(wǎng)絡(luò)服務(wù)的安全研究可以通過防御手段以一種新的方式保證虛擬機之間的安全通信,從而為用戶的網(wǎng)絡(luò)服務(wù)提供技術(shù)保障。
表5 虛擬網(wǎng)絡(luò)服務(wù)的安全研究Table 5 Security study of virtual web services
現(xiàn)有學(xué)術(shù)研究在探索IaaS 安全的同時,工業(yè)界在也提供了實際IaaS 云安全實際解決方案。由于CSP 不僅需要確保用戶使用安全的虛擬機,而且還要提供相應(yīng)的安全服務(wù)。因此,本節(jié)針對CSP 廠商在數(shù)據(jù)安全、網(wǎng)絡(luò)防護和其他安全服務(wù)等方面提供的安全服務(wù)進行簡要介紹,包括Amazon AWS、Google Cloud、Microsoft Azure、阿里云、華為云和百度云。
當前,CSP 提供的計算服務(wù)主要是外租虛擬機或云服務(wù)器。然而,如果CSP 提供的虛擬機或云服務(wù)器沒有設(shè)置相關(guān)的安全防護,則可能受到病毒入侵或外部攻擊,導(dǎo)致數(shù)據(jù)泄露或丟失,影響用戶的正常使用。
為了防止虛擬機或云服務(wù)器免受攻擊或病毒入侵,AWS 提供的EC2 云服務(wù)器使用AWS Nitro 系統(tǒng),該系統(tǒng)包含輕量級的Hypervisor 和安全芯片。通過Nitro 系統(tǒng),EC2 云服務(wù)器上的虛擬化資源會自動卸載到專用硬件和軟件中,從而最大限度減少攻擊面;Google Cloud 提供的Compute Engine 是在Google 的數(shù)據(jù)中心運行的虛擬機,該虛擬機提供默認使用庇護式虛擬機(Shielded VM)和統(tǒng)一可延伸固件接口(Unified Extensible Firmware Interface,UEFI)使虛擬機具備縱深防御能力,可以不受惡意攻擊者的系統(tǒng)固件、UEFI 擴展和驅(qū)動程序攻擊,也能避免虛擬機的數(shù)據(jù)泄露和重放攻擊;Azure 提供的虛擬機使用來自Microsoft 和McAfee 等大型安全性供應(yīng)商的安全軟件來保護虛擬機免受惡意文件、惡意軟件和其他威脅的侵害;阿里云的云服務(wù)器ECS 的安全最佳實踐為用戶提供賬號安全管理和云盤加密等功能,為云基礎(chǔ)設(shè)施提供安全保障;華為云提供的彈性云服務(wù)器ECS 的安全保障是由應(yīng)用防火墻和漏洞掃描等安全服務(wù)提供,并且ECS 提供對用戶云環(huán)境的安全評估,可以幫助用戶快速發(fā)現(xiàn)安全弱點和威脅,從而有效減少惡意攻擊帶來的損失;百度云的云服務(wù)器BCC 的防入侵解決方案可以有效抵御黑客攻擊,并及時發(fā)現(xiàn)并有效抵御黑客攻擊。
隨著用戶數(shù)量的增長,CSP 對數(shù)據(jù)安全的重視程度不斷提高。為了保護用戶存儲在CSP 上的數(shù)據(jù),Amazon AWS 提供一項完全管理的數(shù)據(jù)安全和數(shù)據(jù)隱私服務(wù),稱為Amazon Macie。該服務(wù)利用機器學(xué)習和模式匹配來發(fā)現(xiàn)和保護存儲在AWS 中的敏感數(shù)據(jù)。用戶可以直接在Macie 中查看敏感數(shù)據(jù),并且可以配合其他服務(wù)進行監(jiān)視和處理,從而降低數(shù)據(jù)保護的成本;Google Cloud 提供的VPC Service Controls是通過隔離不同租戶的Google Cloud 服務(wù)的資源來降低數(shù)據(jù)泄露的風險,并確保只有授權(quán)的用戶才能訪問敏感數(shù)據(jù);華為云的專屬加密服務(wù)是對用戶的敏感數(shù)據(jù)進行加密來確保數(shù)據(jù)的安全性;此外,阿里云提供的敏感數(shù)據(jù)保護服務(wù)是根據(jù)用戶預(yù)先定義的敏感數(shù)據(jù)來掃描存儲在阿里云中的數(shù)據(jù),并通過敏感數(shù)據(jù)規(guī)則對數(shù)據(jù)進行分級和檢測,從而防止敏感數(shù)據(jù)被非法訪問。
在IaaS環(huán)境中,CSP所提供的服務(wù)是否可靠直接依賴于網(wǎng)絡(luò)的安全性,這就導(dǎo)致單純依靠身份驗證來防止攻擊者假冒其他合法用戶是遠遠不夠的。因此,為提供安全的網(wǎng)絡(luò)服務(wù),CSP 主要在分布式拒絕服務(wù)攻擊(Distributed Denial of Service attack,DDoS)防護、虛擬防火墻和網(wǎng)絡(luò)檢查等方面提供相應(yīng)服務(wù)。
1) DDoS 防護
在DDoS 攻擊中,攻擊者將網(wǎng)絡(luò)上多個被攻陷的服務(wù)器或虛擬機作為攻擊機器,并同時通過網(wǎng)絡(luò)向目標用戶發(fā)動攻擊,從而迫使用戶無法使用服務(wù)。為了避免用戶在使用IaaS 服務(wù)時被DDoS 攻擊勒索,需要一種持續(xù)防護DDoS 攻擊的服務(wù)來確保網(wǎng)絡(luò)的穩(wěn)定性。例如,AWS 提供AWS Shield 是一種托管式DDoS 防護服務(wù),可以提供網(wǎng)絡(luò)流量持續(xù)監(jiān)控。AWS Shield 可以檢測所有傳入到AWS 服務(wù)的流量,并及時發(fā)現(xiàn)惡意流量。此外,當用戶的服務(wù)器或虛擬機受到大流量DDoS 攻擊時,華為云的DDoS 高防服務(wù)可以保證用戶的服務(wù)仍然可以持續(xù)使用。DDoS 高防服務(wù)的原理是將用戶的服務(wù)域名替換成高防IP,并讓所有訪問都經(jīng)過高防IP 進行過濾,從而實現(xiàn)網(wǎng)絡(luò)的有效檢測和過濾惡意流量,降低DDoS 攻擊風險。
2) 虛擬防火墻
在虛擬防火墻防護方面,Azure 防火墻不僅可以保護Azure虛擬網(wǎng)絡(luò)資源,為所有可能存在的安全威脅進行篩選,而且可以提醒用戶拒絕惡意IP 地址;類似地,AWS 提供的AWS Network Firewall 為用戶Amazon 虛擬私有云部署必要的網(wǎng)絡(luò)保護。該服務(wù)提供網(wǎng)絡(luò)篩選,可以實現(xiàn)停止惡意流量和監(jiān)控域名的效果,并且用戶可以靈活定義防火墻規(guī)則以便對網(wǎng)絡(luò)流量進行管理和控制。
3) 網(wǎng)絡(luò)檢查
CSP 不僅需要提供相關(guān)的網(wǎng)絡(luò)防護服務(wù),還要對網(wǎng)絡(luò)進行有效檢查和及時修復(fù)來保證用戶使用的IaaS 網(wǎng)絡(luò)服務(wù)的安全性和穩(wěn)定性。例如,Google Cloud 提供的Network Telemetry 是一種用戶網(wǎng)絡(luò)監(jiān)控、取證和安全保障的服務(wù)。Network Telemetry 可以實時識別可能具有風險的流量和訪問模式,并為Google Cloud 網(wǎng)絡(luò)服務(wù)迅速提供響應(yīng)日志;同理,百度云提供的安全檢測服務(wù)能夠檢測出多種常見的網(wǎng)絡(luò)漏洞,然后快速幫助用戶發(fā)現(xiàn)網(wǎng)絡(luò)中存在的問題并及時幫助用戶修復(fù)漏洞。
CSP 除了保證數(shù)據(jù)和網(wǎng)絡(luò)安全,還需要提供用戶使用IaaS 服務(wù)的安全服務(wù),包括用戶密鑰保護、用戶身份安全、應(yīng)急響應(yīng)和地理位置存儲安全等。
1) 用戶密鑰保護
用戶密鑰包括API 密鑰、密碼和加密密鑰等。CSP 對用戶密鑰的管理有以下挑戰(zhàn): (1)用戶和CSP對密鑰所有權(quán)的掌握;(2)對密鑰管理系統(tǒng)(Key Management System,KMS)和受保護資源所在基礎(chǔ)設(shè)施的訪問控制。為解決以上挑戰(zhàn),Azure 提供的Key Vault 服務(wù)通過控制訪問策略對用戶的密鑰保管庫進行身份授權(quán)和驗證,從而防止其他人獲得相關(guān)密鑰;AWS 提供的KMS 服務(wù)可以讓用戶對密鑰的生命周期和權(quán)限進行集中控制,使得用戶可以隨時創(chuàng)建和管理密鑰的使用權(quán)限,并定時更換KMS 的主密鑰來防止密鑰泄露;阿里云提供的KMS 服務(wù)則是先將用戶保存在KMS 的密鑰進行加密然后進行存儲。當用戶使用密鑰時,先獲取存儲在KMS 的密鑰再進行解密使用。因此,加密操作可以讓攻擊者難以直接獲取到用戶密鑰,保證用戶密鑰的安全性。
2) 用戶身份安全
CSP 都會為用戶提供密碼來識別其身份,同時使用訪問控制進一步實現(xiàn)用戶對資源的統(tǒng)一管理。例如,AWS 利用單點登錄(Single Sign-On,簡稱SSO)來集中管理多個AWS 賬戶和應(yīng)用程序的訪問,并為用戶創(chuàng)建、分配和管理權(quán)限;類似地,阿里云的訪問控制服務(wù)采用SSO 來指定不同的角色進行訪問,并通過集中控制用戶的訪問權(quán)限和存儲資源來實現(xiàn)用戶身份的管理和授權(quán);此外,Google Cloud 提供的Titan 安全密鑰是一種硬件芯片,用于對用戶賬號實現(xiàn)多重身份驗證,即要求用戶通過自己已知的信息(如密碼)和擁有的信息(如硬件實體密鑰或訪問代碼)來同時驗證其身份。該驗證方法可以保證用戶的身份信息即使被攻擊者竊取也無法訪問其賬號。
3) 應(yīng)急響應(yīng)
當發(fā)生黑客入侵和木馬病毒等威脅用戶安全的事件時,應(yīng)急響應(yīng)能夠提供應(yīng)對和分析事件的服務(wù),從而降低安全事件所帶來的影響與損失。例如,百度云和阿里云的應(yīng)急響應(yīng)服務(wù)范圍包含網(wǎng)絡(luò)的非法攻擊和病毒入侵等破壞事件,并及時發(fā)現(xiàn)造成破壞的隱患,從而有效記錄和處理事件以及跟蹤后續(xù)的安全狀況;此外,華為云提供的態(tài)勢感知服務(wù)能夠檢測安全風險,并還原攻擊歷史、感知攻擊現(xiàn)狀和預(yù)測攻擊態(tài)勢。用戶可以通過該服務(wù)查詢和查看安全態(tài)勢數(shù)據(jù),并獲取安全威脅的處理建議。
4) 地理位置存儲安全
由于CSP 數(shù)據(jù)中心和用戶所在的地理位置有所不同,導(dǎo)致不同地理位置的用戶使用同一個CSP 服務(wù)的帶寬也有所差異。因此,多數(shù)CSP 會在多個地理區(qū)域上部署服務(wù)區(qū),保證不同位置的用戶可以根據(jù)就近原則選擇服務(wù)區(qū),從而提高IaaS 速度。同時,CSP 還可以攔截和阻斷指定的國家和地區(qū)的來源IP,從而避免用戶被該地區(qū)的惡意騷擾。
表6 總結(jié)了不同CSP 提供的IaaS 安全服務(wù)??梢钥闯?CSP 在計算安全、數(shù)據(jù)安全、安全防護和安全服務(wù)方面分別提供不同類型的服務(wù)。例如,在計算安全上,采用現(xiàn)有系統(tǒng)、軟件和解決方案等手段;在數(shù)據(jù)保護上,采用隔離、分類和加密等手段;在身份安全的保護上,采用SSO、多重身份認證和統(tǒng)一身份認證等手段;此外,在用戶密鑰保護、DDoS 防護、虛擬防火墻、網(wǎng)絡(luò)檢查、應(yīng)急響應(yīng)和地理存儲安全方面,CSP 已達成共識??偠灾?工業(yè)界的IaaS 安全服務(wù)基本達成一致,并且在此基礎(chǔ)上開發(fā)出一些額外功能來滿足用戶的其他需求,從而保證用戶的云安全屬性。
表6 CSP 提供的IaaS 安全服務(wù)總結(jié)Table 6 Summary of IaaS security services by CSP
IaaS 作為云計算的重要服務(wù)類型之一,負責提供較為完善的基礎(chǔ)設(shè)施服務(wù),如今已被廣泛關(guān)注和使用。本文圍繞IaaS 的安全挑戰(zhàn),旨在從學(xué)術(shù)界的研究和工業(yè)界解決方案兩個方面對目前IaaS 安全研究和實踐進行系統(tǒng)的分析。通過分析可知IaaS 云存在多種安全威脅,而現(xiàn)有學(xué)術(shù)研究和工業(yè)界尚未完全的解決所有的問題。因此,結(jié)合當前的研究進展,未來的工作可以關(guān)注以下幾點。
(1) 需要在hypervisor 和虛擬機的體系結(jié)構(gòu)中進行標準化設(shè)計。由于虛擬化技術(shù)的安全缺陷是顯而易見的,例如虛擬機逃逸攻擊、虛擬機同駐下的高速緩存?zhèn)刃诺拦艉碗[蔽信道攻擊、虛擬機回滾攻擊等,這就導(dǎo)致在實際應(yīng)用時,需要采用不同的解決方法來抵御惡意攻擊,使得構(gòu)建IaaS 安全環(huán)境非常困難。因此,為了給用戶提供安全的IaaS 云環(huán)境,需要對hypervisor 和虛擬機進行標準化的安全設(shè)計來解決其存在的安全問題,其中包括: 在確保hypervisor 完整性的同時,通過不同用戶的具體需求來有效縮減其代碼規(guī)模,使hypervisor 達到輕量級的同時也具備可用性和隱私性。并且為保證虛擬機生命周期的安全,需要對虛擬機不同階段的攻擊進行全方面防護。
(2) 解決安全加密存儲方案存在的缺陷。由于在CSP 提供的存儲服務(wù)承載了大量用戶的數(shù)據(jù),使得用戶的信息泄漏帶來諸多威脅。加密技術(shù)是實現(xiàn)用戶數(shù)據(jù)隱私保護的主要解決手段。常見的加密方案如代理重加密、屬性加密等可以為用戶提供安全有效的數(shù)據(jù)存儲和共享,但這些方案可能存在密鑰泄露和用戶數(shù)據(jù)攜帶惡意信息等問題。因此,云服務(wù)器需要考慮如何安全管理用戶密鑰以及識別和攔截惡意信息成為研究重點。同時,為減輕計算資源受限的用戶的計算量,設(shè)計輕量級的密文檢索加密方案以實現(xiàn)IaaS 安全存儲服務(wù)和數(shù)據(jù)可用性之間的平衡是當前學(xué)術(shù)研究迫切需求。
(3) 在IaaS 網(wǎng)絡(luò)安全設(shè)計時需要考慮全面部署防御設(shè)施問題。IaaS 云環(huán)境中的資源共享、多租戶、動態(tài)性等特性使傳統(tǒng)單純以物理防火墻等安全網(wǎng)絡(luò)隔離機制方式失效。因此,在為IaaS 環(huán)境構(gòu)建安全的虛擬網(wǎng)絡(luò)防御體系時,不僅需要考慮物理和虛擬環(huán)境的相互隔離,還要考慮多租戶場景中的動態(tài)網(wǎng)絡(luò)資源分配,從而全面防止任何非法訪問和入侵。
(4) 需要提高CSP 自身安全機制。盡管用戶與CSP 之間簽訂的合同可以為用戶提供法律和經(jīng)濟保護來免受威脅,但在工業(yè)界中,CSP 會默認其自身內(nèi)部和提供的服務(wù)是安全的,并且嚴格遵照SLA 為用戶提供保障,這就導(dǎo)致CSP 很少披露其內(nèi)部安全和提供服務(wù)的缺陷。此外,CSP 不會向用戶提供任何技術(shù)證明,使用戶無法驗證或確定CSP 是否真正和完整地提供滿足用戶期望的服務(wù)。因此,需要提高CSP自身安全機制的透明度來更好的保障其合同安全性,如漏洞掃描、威脅檢測和日志收集等服務(wù)。
(5) 學(xué)術(shù)研究與工業(yè)IaaS 云部署結(jié)合。目前,學(xué)術(shù)界針對IaaS 云安全提供大量的解決方案,但很少實際轉(zhuǎn)移到工業(yè)界IaaS 環(huán)境中。因此,通過工業(yè)界產(chǎn)生的實際問題與學(xué)術(shù)研究提供解決方案結(jié)合起來,可以大力推動IaaS 云安全的發(fā)展。
總之,IaaS 服務(wù)的安全不僅需要從技術(shù)層面全方位抵御各個攻擊,更需要在法律法規(guī)和行業(yè)標準化等方面進行嚴格制定和有效監(jiān)督,從而維護IaaS 服務(wù)的健康發(fā)展。