趙尚偉,陸寶華
(1.太極計算機(jī)股份有限公司,北京 100000;2.雄安新區(qū)管理委員會,河北 雄安 071000)
“云怎么分等級?”這是一位院士在一次網(wǎng)絡(luò)安全大會上提出的問題。
筆者試圖就這個問題進(jìn)行分析。
云:是利用虛擬機(jī)技術(shù),通過軟件定義并根據(jù)用戶的計算任務(wù)來分配算力,為用戶提供按需服務(wù)的計算資源的集合。而這個集合往往是由成百上千臺甚至是更多物理計算資源組成(一般為PC 服務(wù)器)。
等級保護(hù):1994 年第一次提出等級保護(hù),是指對信息和信息系統(tǒng)分等級進(jìn)行保護(hù)。等級的劃分是依據(jù)GB/T 22240—2008《信息安全技術(shù) 信息系統(tǒng)安全等級保護(hù)定級指南》[1]來進(jìn)行的。
對于云來說,可以為用戶提供IAAS(基礎(chǔ)設(shè)施即服務(wù))、PAAS(平臺即服務(wù))和SAAS(軟件即服務(wù))服務(wù)。無論何種服務(wù),云和用戶之間,都是建立由云提供給用戶的服務(wù),只是這種服務(wù),用戶主導(dǎo)權(quán)的大小是不一樣的,對于IAAS來說,云僅僅給用戶提供基礎(chǔ)設(shè)施和所有的物理算力資源;而對PAAS 來說,云不僅提供基礎(chǔ)的物理算力資源,同時還提供系統(tǒng)平臺軟件,僅應(yīng)用程序是由用戶自己部署;對于SAAS 來說,云給用戶提供完全的服務(wù),用戶可以直接使用。
云無論給用戶提供何種服務(wù),當(dāng)云將某些算力提供給用戶之后,在用戶使用這些算力的過程中,這些算力與用戶的終端設(shè)備,就構(gòu)成一個動態(tài)信息系統(tǒng),如圖1 所示。對于這個信息系統(tǒng),它的安全等級可以依據(jù)GB/T 22240—2008 給出的方法進(jìn)行確定。
圖1 動態(tài)信息系統(tǒng)的生成
因此,信息系統(tǒng)可以按照等級保護(hù)的各類標(biāo)準(zhǔn)進(jìn)行保護(hù)。但必須清楚的是,算力資源是動態(tài)分配出來的,在某一個時段,這個算力資源是屬于這個信息系統(tǒng)的,而在下一個時段,這個算力資源可能屬于其他的信息系統(tǒng)。
對于信息系統(tǒng),1994 年,中華人民共和國國務(wù)院令第147 號發(fā)布的《中華人民共和國計算機(jī)信息系統(tǒng)安全保護(hù)條例》給出的定義是:“由計算機(jī)及相關(guān)和相配套的設(shè)備、設(shè)施(包含網(wǎng)絡(luò))按照一定的應(yīng)用目標(biāo)和規(guī)則,對信息進(jìn)行采集、加工、存儲、傳輸處理的人機(jī)系統(tǒng)?!碑?dāng)時的專家們很嚴(yán)謹(jǐn)?shù)亟o信息系統(tǒng)進(jìn)行準(zhǔn)確的定義,具有以下幾層含義:一是計算機(jī)及相關(guān)和相配套的設(shè)備、設(shè)施(包含網(wǎng)絡(luò)),這是構(gòu)成信息系統(tǒng)的物理資源;二是一定的應(yīng)用目標(biāo)和規(guī)則,說明一定具有特定的應(yīng)用,沒有特定應(yīng)用,無論網(wǎng)絡(luò)規(guī)模有多大,都不是信息系統(tǒng),而是基礎(chǔ)信息網(wǎng)絡(luò);三是對這個應(yīng)用下的信息進(jìn)行各類處理;四是包括使用這個系統(tǒng)的管理、運(yùn)行、編寫和維護(hù)系統(tǒng)的人。
云中心所提供的算力資源與相關(guān)的租戶和租戶的授權(quán)用戶,以及相關(guān)的、相配套的設(shè)備、設(shè)施(包含網(wǎng)絡(luò))構(gòu)成了一個獨(dú)立的、動態(tài)的信息系統(tǒng)。
動態(tài)的信息系統(tǒng)與傳統(tǒng)的信息系統(tǒng)存在以下幾個差別:
差別一:傳統(tǒng)的信息系統(tǒng)安全責(zé)任完全由這個信息系統(tǒng)的運(yùn)維者負(fù)責(zé),責(zé)任邊界是清晰的,而對于動態(tài)的信息系統(tǒng)來說,安全責(zé)任則必須由云中心與租戶共同承擔(dān)。
差別二:傳統(tǒng)的信息系統(tǒng)提供核心算力的物理服務(wù)器,是該用戶組獨(dú)享的。而云給這個用戶組提供的算力資源則是要與其他的用戶分時共享,也就是說,這個算力資源組在為當(dāng)前用戶組提供服務(wù)之后,還可能為其他用戶組提供服務(wù)。這個差別提示我們,當(dāng)前用戶組使用的內(nèi)存資源,在當(dāng)前用戶組撤消后,其他的用戶組仍然要使用這個內(nèi)存資源。而當(dāng)前用戶在使用內(nèi)存時的數(shù)據(jù)包括用戶業(yè)務(wù)數(shù)據(jù)和SSF數(shù)據(jù)(包括用戶登錄信息數(shù)據(jù)、授權(quán)數(shù)據(jù)、審計數(shù)據(jù)等與安全相關(guān)的數(shù)據(jù)),在這段內(nèi)存中并沒有真正的消除。下一個用戶如果存在惡意,使用一些數(shù)據(jù)恢復(fù)工具就可以把這段內(nèi)存中的數(shù)據(jù)恢復(fù)并讀出,導(dǎo)致前一個用戶的數(shù)據(jù)泄露。
差別三:傳統(tǒng)的信息系統(tǒng)是以物理服務(wù)器作為核心的算力資源,此時服務(wù)器與用戶之間通過網(wǎng)絡(luò)進(jìn)行有效聯(lián)結(jié),這種聯(lián)結(jié)通道和邊界是清晰的,而在云環(huán)境下,由于使用虛擬計算資源,往往可以在一臺物理機(jī)上虛擬出若干個虛擬機(jī),會共享CPU、共享內(nèi)存和總線等一些資源,就難免出現(xiàn)不同虛擬機(jī)之間通信的暗通道,即東西向流量問題。雖然我們可以利用指針等技術(shù),將內(nèi)存進(jìn)行分段,但其可靠性不強(qiáng)。以前發(fā)生的緩存區(qū)溢出漏洞,其機(jī)理與之相同。
差別四:傳統(tǒng)的信息系統(tǒng)不存在算力核心資源在計算的過程中發(fā)生遷移的問題,而在云所提供的算力核心資源中,這種遷移是有可能發(fā)生的。
差別五:在傳統(tǒng)的信息系統(tǒng)中,數(shù)據(jù)在外存儲器中的存儲過程,用戶組是可以完全控制的,一般與這個用戶組無關(guān)的人員,除非獲得特別許可或者是通過入侵的手段,才有可能獲得外部存儲器中數(shù)據(jù)的控制權(quán)。但在云環(huán)境下,就會存在以下一些情況,導(dǎo)致在外部存儲器中的數(shù)據(jù),在用戶未授權(quán)的情況下被遷移,甚至被復(fù)制。例如,當(dāng)云的外部存儲器容量不夠用時,一些云系統(tǒng)會將部分用戶的冷數(shù)據(jù)、溫數(shù)據(jù)向其他的存儲池中遷移;云的維護(hù)人員可能在未授權(quán)情況之下,利用工作和管理上的漏洞,對這些數(shù)據(jù)進(jìn)行復(fù)制甚至是克隆。
云平臺等級保護(hù)解決方法主要針對云環(huán)境的差異分析和對策,從云租戶安全責(zé)任劃分、剩余信息保護(hù)、虛擬機(jī)隔離防護(hù)等方面進(jìn)行考慮。
解決上述差別一,需要清晰地劃分出關(guān)于云與租戶之間的安全責(zé)任,實際上有相應(yīng)的國家標(biāo)準(zhǔn)(參考GB/T 31167—2014 和 GB/T 31168—2014),在此,我們還可以考慮比IAAS、PAAS、SAAS 服務(wù)更細(xì)的安全責(zé)任劃分。
云平臺必然要涉及以下的幾個層面,如圖2所示:
圖2 云計算中心分層
機(jī)房環(huán)境層:包括接地、防雷、消防、電磁防護(hù)、溫濕度控制、防水、人員的管控、鼠害、有害氣體防護(hù)等,除此之外,還要考慮供電保護(hù)。這些安全責(zé)任,由云中心負(fù)責(zé),租戶可以提出特殊的安全需求。
物理算力資源層:服務(wù)器或者小型機(jī),這些是物理計算設(shè)備,形成核心的算力資源。任何物理設(shè)備自身也存在安全風(fēng)險,例如BIOS 安全問題。
公共外部存儲資源層:包括磁性介質(zhì)、光介質(zhì)。
虛擬化工具層:Hypervisor 是虛擬必備的系統(tǒng)工具軟件,這個層要保證各虛擬機(jī)之間隔離的基礎(chǔ)。對于云中心來說,隔離的任務(wù)包括應(yīng)用(不同租戶)之間的隔離;獨(dú)立應(yīng)用(一個租戶)內(nèi),不同用戶之間的隔離;系統(tǒng)與應(yīng)用之間的隔離。虛擬機(jī)之間防止東西向流量是最基本的隔離。
操作系統(tǒng)及數(shù)據(jù)庫等系統(tǒng)軟件層:系統(tǒng)軟件中的安全子系統(tǒng)提供了最基本的用戶授權(quán)訪問機(jī)制,系統(tǒng)軟件的安全等級決定著信息系統(tǒng)安全等級的基礎(chǔ),同時系統(tǒng)軟件也提供了對應(yīng)用程序安全機(jī)制的基礎(chǔ)保證。
應(yīng)用程序?qū)樱簯?yīng)用程序是實現(xiàn)用戶信息使命的關(guān)鍵,在這一層里必須要考慮相應(yīng)的安全機(jī)制。操作系統(tǒng)、數(shù)據(jù)庫和應(yīng)用程序共同構(gòu)成完整的計算環(huán)境,這個計算環(huán)境必須解決主體對客體操作的“正確授權(quán)”問題。
網(wǎng)絡(luò)層:網(wǎng)絡(luò)層不僅解決用戶與云之間的網(wǎng)絡(luò)通信連接問題,同時也要解決在云內(nèi)的多個虛擬機(jī)之間的連接。網(wǎng)絡(luò)連接中存在很多安全問題,例如,信道安全、網(wǎng)絡(luò)邊界安全、節(jié)點(diǎn)安全等。
數(shù)據(jù)層:數(shù)據(jù)對于用戶來說,是最重要的資源,無論是從資產(chǎn)屬性還是從生產(chǎn)要素屬性上來看,其重要性不言而喻。從授權(quán)的角度來看,用戶數(shù)據(jù)授權(quán)訪問的權(quán)利和責(zé)任是云租戶的,但是,云要對租戶的授權(quán)機(jī)制給予保證。
對于信息系統(tǒng)來說,安全任務(wù)有基本兩項,一項是數(shù)據(jù)保護(hù),核心是基礎(chǔ);另一項是系統(tǒng)所提供服務(wù)功能的保護(hù)。由于云具有大冗余的基礎(chǔ),所以服務(wù)功能的保護(hù)是容易實現(xiàn)的,當(dāng)遭到拒絕服務(wù)攻擊時,需另當(dāng)別論。
最核心的安全任務(wù)是保護(hù)數(shù)據(jù)。我們要解決的是“保證正確授權(quán)操作”的問題。授權(quán)操作是在計算環(huán)境中,由系統(tǒng)軟件和應(yīng)用程序共同實現(xiàn),如何授權(quán)、是否正確,則應(yīng)該由租戶根據(jù)策略來決定。而其他的層面,都需要對這個授權(quán)機(jī)制提供相應(yīng)保證。
安全責(zé)任的劃分應(yīng)該遵循一個基本原則,除開機(jī)房(云中心負(fù)責(zé)全責(zé))和數(shù)據(jù)(用戶負(fù)責(zé)正確授權(quán)訪問、云提供保證機(jī)制),其他各層的安全責(zé)任,應(yīng)該是誰提供誰負(fù)責(zé)。
剩余信息主要包括硬盤的存儲空間和應(yīng)用程序在內(nèi)存中遺留信息,鑒于云平臺內(nèi)存共享的特性,增加了對剩余信息保護(hù)難度。剩余信息保護(hù)需要遵循GB/T 22239—2008《信息安全技術(shù) 信息系統(tǒng)安全等級保護(hù)基本要求》[2]中技術(shù)和管理要求。
3.2.1 要求
在傳統(tǒng)的信息系統(tǒng)中,差別二剩余信息保護(hù)的問題也是存在的,為此,國家的等級保護(hù)標(biāo)準(zhǔn)中明確規(guī)定,要解決剩余信息保護(hù)的問題(也稱客體重用),這一點(diǎn)對需要機(jī)密性保護(hù)的數(shù)據(jù)來說,是非常重要的。需要機(jī)密性保護(hù)的數(shù)據(jù)包括所有的安全功能數(shù)據(jù)(SSF 數(shù)據(jù),也有標(biāo)準(zhǔn)中稱之為TSF 數(shù)據(jù))和一些標(biāo)記為保密保護(hù)要求較高的數(shù)據(jù)。
但是,在傳統(tǒng)的信息系統(tǒng)中,由于大家認(rèn)為設(shè)備和人員都是內(nèi)部的,基本上沒有對剩余信息進(jìn)行保護(hù)。在云環(huán)境下,這個問題變得突出,由于內(nèi)存具有共享特性,在沒有相應(yīng)防范措施的情況下,可能會導(dǎo)致嚴(yán)重的機(jī)密性數(shù)據(jù)泄露,甚至是更嚴(yán)重的安全問題出現(xiàn)。
剩余信息保護(hù)解決方法也要考慮分等級。對于二級以下信息系統(tǒng),應(yīng)該考慮從安全屬性上進(jìn)行分析,同時TSF 數(shù)據(jù)是需要保護(hù)的,在當(dāng)前用戶退出后,下一個使用用戶不可以用任何方法獲知當(dāng)前用戶的所有登錄信息。對于用戶數(shù)據(jù)如果是安全等級為一級的,則可以不必要考慮。而對于完整性保護(hù),則完全不需要剩余信息保護(hù)。
而對于三級以上,需要機(jī)密性保護(hù)的數(shù)據(jù),則一定要做好剩余信息保護(hù),要比二級的強(qiáng)度更高。
3.2.2 解決方案
在信息系統(tǒng)中,數(shù)據(jù)保護(hù)極為重要,特別是標(biāo)記為機(jī)密性三級以上的數(shù)據(jù)和TSF 數(shù)據(jù),絕對不可以泄露。建設(shè)云平臺,必須要考慮到這一點(diǎn),我們現(xiàn)在對云的管控水平還處于低水平和粗放階段。
在云管中心,要增加對動態(tài)信息系統(tǒng)的安全等級識別能力。這種識別可以是預(yù)先登記的,也可以通過對數(shù)據(jù)標(biāo)簽的識別來確定,凡處理標(biāo)記為機(jī)密性三級的數(shù)據(jù),其相關(guān)的信息系統(tǒng)安全等級必然是機(jī)密性三級。
對于不同安全等級的信息系統(tǒng)和標(biāo)記為機(jī)密性三級以上的數(shù)據(jù)及訪問該數(shù)據(jù)的主體進(jìn)行識別。動態(tài)信息系統(tǒng)為三級的應(yīng)用,對標(biāo)記為機(jī)密性三級的數(shù)據(jù)所使用過的內(nèi)存,在當(dāng)前用戶退出后,該內(nèi)存區(qū)域必須進(jìn)行全0 全1 的多次覆蓋,以確保在分配給新用戶之前,這段內(nèi)存中所保留的數(shù)據(jù)痕跡全部清除且不能被恢復(fù)。
對于差別三,云的隔離機(jī)制,這里要求的隔離包括:系統(tǒng)與應(yīng)用的隔離、應(yīng)用與用戶的隔離、用戶與用戶的隔離、不同應(yīng)用之間的隔離和虛擬機(jī)之間的隔離。
在傳統(tǒng)的信息系統(tǒng)中,除了虛擬機(jī)的隔離,其他的隔離方法一般是利用內(nèi)存的指針對內(nèi)存劃區(qū)進(jìn)行隔離。只是這種隔離可靠性較低,例如緩存區(qū)溢出的漏洞就能破壞這種隔離。
3.3.1 虛擬機(jī)之間的隔離
針對虛擬機(jī)之間的隔離,目前已經(jīng)有了一些技術(shù)和產(chǎn)品,但是,是否完全可靠,同時對資源的消耗等問題,是接下來要考慮的。簡單介紹兩種方案,一種方案是在每臺物理機(jī)中,抽出一臺虛擬機(jī),將其定義為防火墻,所有在這臺物理機(jī)上的流量,必須通過這個虛擬防火墻,安全策略由這個防火墻進(jìn)行管控。另一種方案是在每臺虛擬機(jī)上安裝相應(yīng)的Againt 工具,所有的系統(tǒng)操作都要通過這個代理工具。
這兩種方案在實際操作中還存在著一些問題,其根本問題在于這兩種方案都沒有和等級保護(hù)思想結(jié)合起來。對于安全要求較低的信息系統(tǒng),沒有必要配置高強(qiáng)度的隔離,從而減少系統(tǒng)開銷、增強(qiáng)應(yīng)用效率;對于安全要求較高的信息系統(tǒng),安全是第一位的,犧牲一些系統(tǒng)開銷則是必要的。對于一個云平臺來說,如果我們不按照等級保護(hù)思想,對動態(tài)的信息系統(tǒng)加以分析,就可能帶來系統(tǒng)安全性差,開銷重的后果。
因此云的管理中心需要對動態(tài)的信息系統(tǒng)進(jìn)行識別,對于安全要求較高的信息系統(tǒng),要實現(xiàn)強(qiáng)度足夠的隔離,而對于大量的、對安全要求不高的信息系統(tǒng),則可以降低系統(tǒng)的開銷,更加方便于應(yīng)用。
3.3.2 其他的隔離
對于其他的隔離機(jī)制問題,仍然可以采用內(nèi)存劃區(qū)管理的方法來解決,需要特別說明的是,對于云來說,雖然面向的可能是一個用戶團(tuán)隊,但是這個團(tuán)隊在云上可能具有多個應(yīng)用系統(tǒng),不同的應(yīng)用系統(tǒng),每個主體的權(quán)限是不一樣的,就算是同一個主體,在不同應(yīng)用中扮演的角色不同,其權(quán)限也是不同的,所以應(yīng)用之間的隔離是必須的。
對于差別四,要考慮到兩大類的遷移,一個是計算任務(wù)的遷移;另一個是數(shù)據(jù)從原來的存儲容器中,向其他的容器遷移。
在遷移過程中,可能會發(fā)生計算任務(wù)、數(shù)據(jù)丟失的問題,說到底是虛擬機(jī)發(fā)生變化的問題,分配給某一虛擬機(jī)的CPU 及內(nèi)存資源發(fā)生了變更,可能是擴(kuò)大或者縮小,還有可能是發(fā)生完全的遷移。
提出的要求是在云上,計算資源是與計算任務(wù)相匹配的,當(dāng)云管中心發(fā)現(xiàn)資源有變動時,就可能發(fā)生計算任務(wù)的遷移問題。在計算任務(wù)遷移過程中,要保證計算任務(wù)、相關(guān)主體和相關(guān)數(shù)據(jù)不丟失。
最保險的辦法是在計算任務(wù)結(jié)束之前,相關(guān)的虛擬機(jī)資源不作大的變更,如果確實需要變更,也應(yīng)該僅僅是在原來的物理主機(jī)上進(jìn)行擴(kuò)大或者縮小,盡可能不進(jìn)行跨物理機(jī)的變更,更不要實現(xiàn)跨網(wǎng)的變更。
對于數(shù)據(jù)從容器中遷移,建議一定要做到源數(shù)據(jù)與元數(shù)據(jù)的同時遷移,保證遷移后的關(guān)聯(lián)并未發(fā)生改變。
對于差別五,提出以下要求:
(1)云管中心的運(yùn)維人員,必須從后臺通過堡壘機(jī),登錄到云中。
(2)不允許云管人員進(jìn)入用戶的應(yīng)用系統(tǒng)中。
(3)不允許在未經(jīng)許可的情況下,查看各類用戶數(shù)據(jù)。
(4)機(jī)房要有視頻監(jiān)控設(shè)備,并且沒有死角。
(5)機(jī)柜上要有監(jiān)控功能,同時還要有相關(guān)的日志審計數(shù)據(jù)。
最好的方法是一旦虛擬機(jī)分配出去后,所有對這臺虛擬機(jī)的管理權(quán)和控制權(quán)完全交給用戶,減輕云平臺責(zé)任的同時使用戶放心很多。突出說明一個維護(hù)問題,特別是各類補(bǔ)丁的升級問題,應(yīng)該建立一個好的機(jī)制,云平臺向各虛擬機(jī)的管理維護(hù)人員推送相關(guān)的補(bǔ)丁程序,由各管理維護(hù)人員自行進(jìn)行升級,并將升級證明回送給云平臺的管理人員。
在云計算高速發(fā)展和應(yīng)用普及的同時,也面臨著安全問題所帶來的挑戰(zhàn)。對于云計算的安全防護(hù)問題并沒有真正解決好,還需要在不斷發(fā)展中進(jìn)行完善,“保證正確的授權(quán)操作”是我們要牢牢記住的綱。