朱 源,聞劍峰
(中國電信股份有限公司上海研究院 上海 200122)
云計算是一種新興的共享基礎架構的方法,指由“資源池”化的計算、網絡、信息和存儲等組成的服務、應用、信息和基礎設施等的使用。云計算具有按需自服務、寬帶接入、虛擬化資源池、快速彈性架構、可測量的服務和多租戶等特點,這些特點直接影響到了云計算環境的安全威脅和相關的安全保護策略。
云計算具備了眾多的好處,從規模經濟到應用可用性,其絕對能給應用環境帶來一些積極的因素。如今,在廣大云計算提供商和支持者的推崇下,眾多企業用戶已開始躍躍欲試。然而,云計算也帶來了一些新的安全問題,由于眾多用戶共享IT基礎架構,安全的重要性非同小可。
從IT網絡和安全專業人士的視角出發,可以用統一分類的一組公用的、簡潔的詞匯來描述云計算對安全架構的影響,在這個統一分類的方法中,云服務和架構可以被解構,也可以被映射到某個包括安全、可操作控制、風險評估和管理框架等諸多要素的補償模型中去,進而符合合規性標準。
云計算模型之間的關系和依賴性對于理解云計算的安全非常關鍵,IaaS(基礎設施即服務)是所有云服務的基礎,PaaS(平臺即服務)建立在IaaS之上,而SaaS(軟件即服務)又建立在PaaS之上,它們之間的關系如圖1所示。
IaaS涵蓋了從機房設備到硬件平臺等所有的基礎設施資源層面。PaaS位于IaaS之上,增加了一個層面用以與應用開發、中間件能力以及數據庫、消息和隊列等功能集成。PaaS允許開發者在平臺之上開發應用,開發的編程語言和工具由PaaS支持提供。SaaS位于底層的IaaS和PaaS之上,能夠提供獨立的運行環境,用以交付完整的用戶體驗,包括內容、展現、應用和管理能力。
云安全架構的一個關鍵特點是云服務提供商所在的等級越低,云服務用戶自己所要承擔的安全能力和管理職責就越多。本文針對云計算安全領域中的數據安全、應用安全和虛擬化安全進行了重點闡述,如表1所示。


表1 云安全內容矩陣
另外,需要特別指出的是,本文在論述云計算安全內容矩陣的時候,始終遵循CIA三要素相結合的原則,即保密性、完整性和可用性。
云用戶和云服務提供商應避免數據丟失和被竊,無論使用哪種云計算的服務模式(SaaS/PaaS/IaaS),數據安全都變得越來越重要。以下針對數據傳輸安全、數據隔離和數據殘留等方面展開討論。
在使用公共云時,對于傳輸中的數據最大的威脅是不采用加密算法。通過Internet傳輸數據,采用的傳輸協議也要能保證數據的完整性。如果采用加密數據和使用非安全傳輸協議的方法也可以達到保密的目的,但無法保證數據的完整性。
加密磁盤上的數據或生產數據庫中數據很重要(靜止的數據),這可以用來防止惡意的云服務提供商、惡意的鄰居“租戶”及某些類型應用的濫用。但是靜止數據加密比較復雜,如果僅使用簡單存儲服務進行長期的檔案存儲,用戶加密他們自己的數據然后發送密文到云數據存儲商那里是可行的。但是對于PaaS或者SaaS應用來說,數據是不能被加密,因為加密過的數據會妨礙索引和搜索。到目前為止還沒有可商用的算法實現數據全加密。
PaaS和SaaS應用為了實現可擴展、可用性、管理以及運行效率等方面的“經濟性”,基本都采用多租戶模式,因此被云計算應用所用的數據會和其他用戶的數據混合存儲(如Google的BigTable)。雖然云計算應用在設計之初已采用諸如“數據標記”等技術以防非法訪問混合數據,但是通過應用程序的漏洞,非法訪問還是會發生,最著名的案例就是2009年3月發生的谷歌文件非法共享。雖然有些云服務提供商請第三方審查應用程序或應用第三方應用程序的安全驗證工具加強應用程序安全,但出于經濟性考慮,無法實現單租戶專用數據平臺,因此惟一可行的選擇就是不要把任何重要的或者是敏感的數據放到公共云中。
數據殘留是數據在被以某種形式擦除后所殘留的物理表現,存儲介質被擦除后可能留有一些物理特性使數據能夠被重建。在云計算環境中,數據殘留更有可能會無意泄露敏感信息,因此云服務提供商應能向云用戶保證其鑒別信息所在的存儲空間被釋放或再分配給其他云用戶前得到完全清除,無論這些信息是存放在硬盤上還是在內存中。云服務提供商應保證系統內的文件、目錄和數據庫記錄等資源所在的存儲空間被釋放或重新分配給其他云用戶前得到完全清除。
由于云環境的靈活性、開放性以及公眾可用性等特性,給應用安全帶來了很多挑戰。提供商在云主機上部署的Web應用程序應當充分考慮來自互聯網的威脅。
對于使用云服務的用戶,應該保證自己計算機的安全。在用戶的終端上部署安全軟件,包括反惡意軟件、防病毒、個人防火墻以及IPS類型的軟件。目前,瀏覽器已經普遍成為云服務應用的客戶端,但不幸的是所有的互聯網瀏覽器毫無例外地存在軟件漏洞,這些軟件漏洞加大了終端用戶被攻擊的風險,從而影響云計算應用的安全。因此云用戶應該采取必要措施保護瀏覽器免受攻擊,在云環境中實現端到端的安全。云用戶應使用自動更新功能,定期完成瀏覽器打補丁和更新工作。
隨著虛擬化技術的廣泛應用,許多用戶現在喜歡在桌面或筆記本電腦上使用虛擬機來區分工作(公事與私事)。有人使用VMware Player來運行多重系統 (比如使用Linux作為基本系統),通常這些虛擬機甚至都沒有達到補丁級別。這些系統被暴露在網絡上更容易被黑客利用成為流氓虛擬機。對于企業客戶,應該從制度上規定連接云計算應用的PC機禁止安裝虛擬機,并且對PC機進行定期檢查。
SaaS應用提供給用戶的能力是使用服務商運行在云基礎設施之上的應用,用戶使用各種客戶端設備通過瀏覽器來訪問應用。用戶并不管理或控制底層的云基礎設施,例如網絡、服務器、操作系統、存儲甚至其中單個的應用能力,除非是某些有限用戶的特殊應用配置項。SaaS模式決定了提供商管理和維護整套應用,因此SaaS提供商應最大限度地確保提供給客戶的應用程序和組件的安全,客戶通常只需負責操作層安全功能包括用戶和訪問管理,所以選擇SaaS提供商特別需要慎重,目前對于提供商評估通常的做法是根據保密協議,要求提供商提供有關安全實踐的信息。該信息應包括設計、架構、開發、黑盒與白盒應用程序安全測試和發布管理。有些客戶甚至請第三方安全廠商進行滲透測試(黑盒安全測試),以獲得更為詳實的安全信息,不過滲透測試通常費用很高而且也不是所有提供商都同意這種測試。
還有一點需要特別注意的是SaaS提供商提供的身份驗證和訪問控制功能,通常情況下這是客戶管理信息風險惟一的安全控制措施。大多數服務,包括谷歌都會提供基于Web的管理用戶界面。最終用戶可以分派讀取和寫入權限給其他用戶。然而這個特權管理功能可能不先進,細粒度訪問可能會有弱點,也可能不符合組織的訪問控制標準。用戶應該盡量了解云特定訪問控制機制,并采取必要步驟,保護在云中的數據;應實施最小化特權訪問管理,以消除威脅云應用安全的內部因素。
所有有安全需求的云應用都需要用戶登錄,有許多安全機制可提高訪問安全性,比如說通行證或智能卡,而最為常用的方法是可重用的用戶名和密碼。如果使用強度最小的密碼(例如需要的長度和字符集過短)和不做密碼管理(過期,歷史)很容導致密碼失效,而這恰恰是攻擊者獲得信息的首選方法,從而容易被猜到密碼。因此云服務提供商應能夠提供高強度密碼;定期修改密碼,時間長度必須基于數據的敏感程度;不能使用舊密碼等可選功能。
在目前的SaaS應用中,提供商將客戶數據(結構化和非結構化數據)混合存儲是普遍的做法,通過惟一的客戶標識符,在應用中的邏輯執行層可以實現客戶數據邏輯上的隔離,但是當云服務提供商的應用升級時,可能會造成這種隔離在應用層執行過程中變得脆弱。因此,客戶應了解SaaS提供商使用的虛擬數據存儲架構和預防機制,以保證多租戶在一個虛擬環境所需要的隔離。SaaS提供商應在整個軟件生命開發周期加強在軟件安全性上措施。
PaaS云提供給用戶的能力是在云基礎設施之上部署用戶創建或采購的應用,這些應用使用服務商支持的編程語言或工具開發,用戶并不管理或控制底層的云基礎設施,包括網絡、服務器、操作系統或存儲等,但是可以控制部署的應用以及應用主機的某個環境配置。PaaS應用安全包含2個層次:PaaS平臺自身的安全;客戶部署在PaaS平臺上應用的安全。
SSL是大多數云安全應用的基礎,目前眾多黑客社區都在研究SSL,相信SSL在不久的將來將成為一個主要的病毒傳播媒介。PaaS提供商必須明白當前的形勢,并采取可能的辦法來緩解SSL攻擊,避免應用被暴露在默認攻擊之下。用戶必須要確保自己有一個變更管理項目,在應用提供商指導下進行正確應用配置或打配置補丁,及時確保SSL補丁和變更程序能夠迅速發揮作用。
PaaS提供商通常都會負責平臺軟件包括運行引擎的安全,如果PaaS應用使用了第三方應用、組件或Web服務,那么第三方應用提供商則需要負責這些服務的安全。因此用戶需要了解自己的應用到底依賴于哪個服務,在采用第三方應用、組件或Web服務的情況下用戶應對第三方應用提供商做風險評估。目前,云服務提供商借口平臺的安全使用信息會被黑客利用而拒絕共享,盡管如此,客戶應盡可能地要求云服務提供商增加信息透明度以利于風險評估和安全管理。
在多租戶PaaS的服務模式中,最核心的安全原則就是多租戶應用隔離。云用戶應確保自己的數據只能有自己的企業用戶和應用程序訪問。提供商維護PaaS的平臺運行引擎的安全,在多租戶模式下必須提供“沙盒”架構,平臺運行引擎的“沙盒”特性可以集中維護客戶部署在PaaS平臺上應用的保密性和完整性。云服務提供商負責監控新的程序缺陷和漏洞,以避免這些缺陷和漏洞被用來攻擊PaaS平臺和打破“沙盒”架構。
云用戶部署的應用安全需要PaaS應用開發商配合,開發人員需要熟悉平臺的API、部署和管理執行的安全控制軟件模塊。開發人員必須熟悉平臺特定的安全特性,這些特性被封裝成安全對象和Web服務。開發人員通過調用這些安全對象和Web服務實現在應用內配置認證和授權管理。對于PaaS的API設計,目前沒有標準可用,這對云計算的安全管理和云計算應用可移植性帶來了難以估量的后果。
PaaS應用還面臨著配置不當的威脅,在云基礎架構中運行應用時,應用在默認配置下安全運行的概率幾乎為零。因此,用戶最需要做的事就是改變應用的默認安裝配置,需要熟悉應用的安全配置流程。
IaaS云提供商(例如亞馬遜EC2、GoGrid等)將客戶在虛擬機上部署的應用看作是一個黑盒子,IaaS提供商完全不知道客戶應用的管理和運維。客戶的應用程序和運行引擎,無論運行在何種平臺上,都由客戶部署和管理,因此客戶負有云主機之上應用安全的全部責任,客戶不應期望IaaS提供商的應用安全幫助。
利用虛擬化帶來的經濟上的可擴展有利于加強在基礎設施、平臺、軟件層面提供多租戶云服務的能力,然而虛擬化技術也會帶來其他安全問題。基于虛擬化技術的云計算引入的風險主要有兩個方面:一個是虛擬化軟件的安全,另一個使用虛擬化技術的虛擬服務器的安全。
該軟件層直接部署于裸機之上,提供能夠創建、運行和銷毀虛擬服務器的能力。實現虛擬化的方法不止一種,實際上,有幾種方法都可以通過不同層次的抽象來實現相同的結果,如操作系統級虛擬化、全虛擬化或半虛擬化。在IaaS云平臺中,云主機的客戶不必訪問此軟件層,它完全應該由云服務提供商來管理。
由于虛擬化軟件層是保證客戶的虛擬機在多租戶環境下相互隔離的重要層次,可以使客戶在一臺計算機上安全地同時運行多個操作系統,所以必須嚴格限制任何未經授權的用戶訪問虛擬化軟件層。云服務提供商應建立必要的安全控制措施,限制對于Hypervisor和其他形式的虛擬化層次的物理和邏輯訪問控制。
虛擬化層的完整性和可用性對于保證基于虛擬化技術構建的公有云的完整性和可用性是最重要,也是最關鍵的。一個有漏洞的虛擬化軟件會暴露所有的業務域給惡意的入侵者。
虛擬服務器位于虛擬化軟件之上,對于物理服務器的安全原理與實踐也可以被運用到虛擬服務器上,當然也需要兼顧虛擬服務器的特點。下面將從物理機選擇、虛擬服務器安全和日常管理三方面對虛擬服務器安全進行闡述。
應選擇具有TPM安全模塊的物理服務器,TPM安全模塊可以在虛擬服務器啟動時檢測用戶密碼,如果發現密碼及用戶名的Hash序列不對,就不允許啟動此虛擬服務器。因此,對于新建的用戶來說,選擇這些功能的物理服務器來作為虛擬機應用是很有必要的。如果有可能,應使用新的帶有多核的處理器,并支持虛擬技術的CPU,這就能保證CPU之間的物理隔離,會減少許多安全問題。
安裝虛擬服務器時,應為每臺虛擬服務器分配一個獨立的硬盤分區,以便將各虛擬服務器之間從邏輯上隔離開來。虛擬服務器系統還應安裝基于主機的防火墻、殺毒軟件、IPS(IDS)以及日志記錄和恢復軟件,以便將它們相互隔離,并與其他安全防范措施一起構成多層次防范體系。
對于每臺虛擬服務器應通過VLAN和不同的IP網段的方式進行邏輯隔離。對需要相互通信的虛擬服務器之間的網絡連接應當通過VPN的方式來進行,以保護它們之間網絡傳輸的安全。實施相應的備份策略,包括它們的配置文件、虛擬機文件及其中的重要數據都要進行備份,備份也必須按一個具體的備份計劃來進行,應當包括完整、增量或差量備份方式。
在防火墻中,盡量對每臺虛擬服務器做相應的安全設置,進一步對它們進行保護和隔離。將服務器的安全策略加入到系統的安全策略當中,并按物理服務器安全策略的方式來對等。
從運維的角度來看,對于虛擬服務器系統,應當像對一臺物理服務器一樣地對它進行系統安全加固,包括系統補丁、應用程序補丁、所允許運行的服務、開放的端口等。同時嚴格控制物理主機上運行虛擬服務的數量,禁止在物理主機上運行其他網絡服務。如果虛擬服務器需要與主機進行連接或共享文件,應當使用VPN方式進行,以防止由于某臺虛擬服務器被攻破后影響物理主機。文件共享也應當使用加密的網絡文件系統方式進行。需要特別注意主機的安全防范工作,消除影響主機穩定和安全性的因素,防止間諜軟件、木馬、病毒和黑客的攻擊,因為一旦物理主機受到侵害,所有在其中運行的虛擬服務器都將面臨安全威脅,或者直接停止運行。
對虛擬服務器的運行狀態進行嚴密的監控,實時監控各虛擬機當中的系統日志和防火墻日志,以此來發現存在的安全隱患。對不需要運行的虛擬機應當立即關閉。
云計算安全是一個新興的領域,通過上述這些重點領域安全的討論分析,可能會降低云計算安全威脅的程度。但是,隨著云計算技術的快速發展和更廣泛地應用,將會面臨更多的安全風險。云計算安全之路還很長,遵循已有的最佳安全實踐可以加強云計算的安全。
1 聞劍峰,龔德志.虛擬化技術在電信災難恢復計劃中的應用研究.電信科學,2009,25(9)
2 石屹嶸,段勇.云計算在電信IT領域的應用探討.電信科學,2009,25(9)