焦燕廷 孫新召
美亞柏科信息股份有限公司北京分公司 北京 100025
云計算(Cloud Computing)是以網絡技術、虛擬化技術、分布式計算技術為基礎,以按需分配為業務模式,具備動態擴展、資源共享特點的新一代網絡化計算模式。云計算中提及的“云”是網絡、互聯網的一種比喻說法。隨著云計算的快速發展,云安全問題日漸突出并得到了廣泛的關注。
云計算的服務模式包括基礎設施即服務(Infrastructureas-a-Service,IaaS)、平臺即服務(Platform-as-a-Service,PaaS)和軟件即服務(Software-as-a-Service,SaaS)。SaaS是發展最快、應用最廣泛的服務模式,它的特點為通過互聯網存取應用服務,用戶只需要向軟件提供商租用這些應用,應用的升級和維護工作也由軟件提供商全權負責。本文描述了SaaS環境下的安全問題,為SaaS應用的開發和使用提供了一定的安全參考。
SaaS的概念起源于1999年之前。“軟件即服務”的常見用法和簡稱始于刊登在2001年2月的SIIA(Software &Information Industry Association:美國軟件與信息產業協會)的白皮書“戰略背景:軟件即服務”。
1998年,第一個SaaS應用程序由亞特蘭大的WebTransit公司開發。最早的SaaS應用是Salesforce.com將其提出的SaaS運用于CRM(Customer Relationship Management:客戶關系管理)行業。它是一種通過Internet提供軟件的模式,廠商將應用軟件統一部署在自己的服務器上,客戶可以根據自己實際需求,通過互聯網向廠商定購所需的應用軟件服務,按定購的服務多少和時間長短向廠商支付費用,并通過互聯網獲得廠商提供的服務。
在中國,八百客于2006年2月推出了全球首個中文SaaS在線企業管理軟件平臺800APP(CRM),隨后推出了全球首個中文應用軟件協同開發平臺800APP COMPOSITE,于2008年底再次融資成功,成為中國第一家獲得海外投資的SaaS企業,是中國SaaS市場的技術領先者及最大的SaaS模式企業管理應用系統提供商和專業服務商,致力為于客戶創造長期的價值和潛在的增長,助力中國企業快速有效實現管理自動化。
目前國內的主流 SaaS服務提供廠商有八百客、天天進賬網、中企開源、CSIP、阿里軟件、友商網、偉庫網、金算盤、CDP、百會創造者、奧斯在線等。
SaaS是軟件級別的云計算服務,也是最成熟、最出名、應用最廣泛的一種云計算服務,在這種服務模式下,用戶通過互聯網來使用安裝在服務提供商那的軟件。
在詳細的描述SaaS環境下的云安全問題之前,本部分先給出SaaS應用服務體系架構。基于Philippe Kruchten提出“4+1”視圖,該體系架構給出了應用開發、物理部署和用戶使用這三個角度的視圖,如圖1所示。

圖1 SaaS應用服務體系架構
用戶使用視圖:從用戶的角度給出應用的使用過程。
物理部署視圖:描述了軟件如何映射到硬件。
應用開發視圖:從程序開發的角度出發,給出業務邏輯。
下面基于SaaS應用服務體系架構(圖1所示),描述SaaS環境下的云安全問題。
在用戶通過瀏覽器登錄SaaS云應用系統以及使用該系統的過程中,數據會在客戶端和服務端之間不斷的傳輸,傳輸過程中存在大量的數據的安全性問題。下面從瀏覽器、身份認證、數據加密三方面說明用戶使用層的安全問題。
瀏覽器:瀏覽器普遍成為云服務應用的客戶端,而所有的因特網瀏覽器毫無例外地存在軟件漏洞,這些軟件漏洞加大了終端用戶被攻擊的風險,從而影響了云應用的安全。換言之,數據傳輸通道未使用或未完全使用https,是導致云安全問題的一個因素。
身份認證:身份認證分為兩種,一種是傳統的“賬號+密碼”身份驗證,一種是使用PKI(Public Key Infrastructure:公鑰基礎設施),PKI是一種遵循既定標準的密鑰管理平臺,它能夠為所有網絡應用提供加密和數字簽名等密碼服務及所必需的密鑰和證書管理體系。傳統的“賬號+密碼”身份驗證方式中的密碼為靜態密碼,是由用戶設定的一串靜態數據,而靜態密碼一旦設定,除非用戶自己更改,否則保持不變。因此,會導致靜態密碼容易被偷看、猜測、字典攻擊、暴力破解、竊取、監聽、重放攻擊、木馬攻擊等。采用PKI認證可以解決上述安全問題,但對于同一個SaaS平臺上的應用,如果是每個應用的登錄都要進行PKI認證,那么用戶每天要登錄很多系統請求服務,登錄的次數越多,就越容易泄露密碼,從而降低了整體的安全性,增加了密碼被非法截獲的可能性。
數據加密:傳輸過程中數據沒有加密,則數據被截獲后,隱私非常容易外泄。
物理部署層的主要組件為路由器、入侵檢測、防火墻、交換機、物理服務器和虛擬化環境,每個組件都會存在安全性問題。
路由器:路由器的加密等級不夠,則會導致網絡不安全,從而進一步致使隱私信息不安全。
入侵檢測:入侵檢測是防火墻之后的第二道安全閘門,若不使用入侵檢測系統,則為黑客的攻擊提供了方便,也不能實時監控網絡傳輸以及分析內外部網絡的入侵信號,不能及時的實施補救措施。
防火墻:防火墻能根據網絡系統的安全策略有效地控制出入網絡的信息流,且本身具有較強的抗攻擊能力,是否啟用防火墻,一定程度上決定著內部網絡的信息安全。
交換機:同路由器一樣,交換機的加密等級也直接影響到網絡信息的安全。
物理服務器:首先是物理環境,服務器運行的物理安全環境非常重要,主要是指服務器機房的設施狀況,包括通風系統、電源系統、防雷防火系統以及機房的溫度、濕度條件等,這些因素會影響到服務器的壽命和所有數據的安全。其次是服務器是否加密,存放數據的磁盤是否加密,這些將直接影響服務器存儲的數據以及其上應用的安全性。再次,服務器是否加固直接影響服務器的安全性。服務器前端是否部署了負載均衡設備,以實現多臺服務器之間的負載均衡和高可用性。
虛擬化環境:虛擬化技術(Virtualization Techniques)是在軟、硬件之間引入虛擬層,為應用提供獨立的運行環境,屏蔽硬件平臺的動態性、分布性、差異性等,支持硬件資源的共享與復用,并為每個用戶提供相互獨立、隔離的計算機環境,同時方便整個系統的軟硬件資源的高效、動態管理與維護。虛擬化技術是云計算的三大核心技術之一,其應用的安全性問題是因為云安全研究的重點。虛擬化環境如圖2所示。

圖2 虛擬化環境
在虛擬化環境中,虛擬化安全問題體現在虛擬機層、虛擬化平臺層和虛擬化環境三方面:
(1)虛擬機層
虛擬機層安全問題分為數據存儲和虛擬機兩方面,而虛擬機的安全問題體現在虛擬鏡像文件和操作系統內核上。
數據存儲:“一種數據是不能丟,但是可以泄露,可以放在云端;另一種是絕對不能泄露,不能放在云端”,數據存儲安全問題指的就是數據泄露問題,有以下六點:
①上面提及的路由器、入侵檢測、防火墻、交換機和物理服務器是否做好安全措施,是能否保證數據存儲安全的一部分原因。
②文件和數據庫信息是否加密,也影響存儲數據的安全性。文件加密:只對涉及到安全信息的文件進行加密,并且根據文件長度和秘密等級選擇合適的加密算法。數據庫加密:因為對數據庫的所有信息都加密,將會導致索引檢索等功能不能實現,所以可只對敏感的數據字段加密。
③用戶數據隔離存儲。首先,一個用戶一個數據庫,用戶數據隔離級別最高,安全性最好,若出現故障,數據比較容易恢復,但成本很高。其次,用戶數據只是邏輯上隔離的話,如果出現故障,數據恢復比較困難,因為恢復數據庫將牽扯到其他用戶的數據。
④密鑰保護:在對文件等進行對稱加密算法后,對該對稱算法的密鑰(如圖3所示)是否使用非對稱加密算法加密,例如RSA(公鑰加密算法,1977年由Ron Rivest、Adi Shamirh和Len Adleman在美國麻省理工學院開發的)算法是一種非對稱加密算法,直接影響數據的存儲安全。

圖3 密鑰
⑤服務提供商內部竊取用戶數據,非常影響數據的存儲安全性,大多時候,數據信息的泄露是由人為故意導致。
⑥數據存放在物理服務器和虛擬機系統中。在服務器災備管理不完善導致服務中斷、服務提供商倒閉使得服務無法繼續提供等情況下,若服務沒有數據的備份及恢復功能,數據就會隨著服務的關閉或中斷而丟失。
虛擬機鏡像:在虛擬化環境里,一個虛擬機鏡像會被大量復制,將會造成大量服務器都存在相同漏洞。
操作系統內核:虛擬主機是病毒、木馬的重要攻擊對象,因此操作系統內核是否采用加固技術,計算/存儲節點、虛擬主機等是否得到保護,也是數據存儲安全的一個保證點。
(2)虛擬化平臺層
虛擬化平臺的核心是虛擬機監控器(VMM:Virtual Machine Monitor),負責監控和管理其上的各個虛擬機(VM:Virtual Machine)。虛擬化平臺承載了大量虛擬機,須重點防護和管控。多個虛擬機運行于同一個虛擬化平臺,若虛擬化平臺未做好網路隔離,惡意攻擊者可輕易對其它虛擬機發動攻擊。
(3)虛擬化環境
在一個虛擬機系統中,由同一管理員負責管理數據中心、服務器和網絡等,失去了“1+1>2”的分管機制特征。
由于云的動態調度性,虛擬機可以從一個虛擬化平臺遷移到另一個虛擬化平臺。對有著不同安全級別及防護需求的虛擬化環境,傳統的安全防護機制不易將安全策略套用到對應的虛擬機,造成安全管理上極大的復雜性。
在虛擬化環境中,管理員很容易添加或啟動一個非法的虛擬機。此外,虛擬機鏡像是以文件的形式存在,可隨意復制與散播,不但內部員工更容易監守自盜,攻擊者入侵后更可輕易地復制一個完全相同的運行環境。
應用開發層分為頁面展示、配置管理、接口控制、業務邏輯和數據訪問五部分,主要的安全問題如下。
(1)頁面展示層是否有輔助性的安全設置,比如密碼控件、圖片驗證碼、手機確認碼等。
(2)若未對用戶輸入的合法性進行判斷,容易發生注入問題,例如SQL注入,SQL注入是指通過把SQL命令插入到Web表單遞交,或者是輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。通過SQL注入可以獲取數據庫信息,導致隱私泄露。
(3)權限配置是否完整,即功能權限或者數據權限是否清晰正確,將會導致用戶數據是否泄露給其它用戶,從而引發數據安全問題。
(4)數據庫中數據是否隔離以及隔離的級別等影響了數據的安全性,隔離級別越高,越不容易泄露用戶信息給其它用戶。
本文從SaaS應用服務體系架構的用戶使用、物理部署和應用開發三個層面出發,分別分析了SaaS應用存在的安全問題,說明SaaS應用需要注意的安全問題非常多。本文只給出了安全問題,下一步工作是通過分析問題,結合實際應用,提出問題的解決方案。
[1]王鵬.走進云計算[M].北京:人民郵電出版社.2009.
[2]馮登國,張敏,張妍,徐震.云計算安全研究[J].軟件學報.2011.
[3]余娟娟.淺析“云安全”技術[J].計算機安全.2011.
[4]田維珍,郭歡歡,王連清.SaaS安全技術研究[J].計算機安全.2010.
[5]http://www.zdnet.com.cn/wiki-Cloud_Service.
[6]Philippe Kruchten.The 4+1 View Model of Architecture[J].IEEE Software.1995.
[7]方晶.云計算的虛擬化安全和單點登錄研究[D].北京交通大學.2011.
[8]http://www.soft6.com/news/201109/30/202048.html.
[9]劉國萍,譚國權,楊明川.基于云存儲的在線備份安全技術研究[J].電信科學.2010.
[10]陳蘭,許力.云存儲服務中可證明數據持有及恢復技術研究[J].計算機研究與發展.2012.