致遠軟件研發中心技術總監 吳玉民

對于SaaS系統來講,最重要的質量屬性莫過于安全。對于服務提供者來說,能否提供完備的安全保障是決定SaaS系統成敗的決定性因素;而對于服務使用者,則是將SaaS系統在安全方面的考量作為決策的首要依據。
據專業機構調查顯示,中小企業選擇SaaS系統的首要顧慮就是安全和隱私問題,其考慮更多的是商業信息的安全和企業隱私保護的問題。對于個人用戶,也同樣非常重視個人信息安全和個人隱私保護。3Q大戰的各方口誅筆伐,最終焦點無非是針對個人電腦安全、個人隱私和用戶權益方面問題的爭議。
雖然業內SaaS系統安全事件頻出,但以云計算為代表的信息工業化進程無法阻擋。隨著信息資源的集中,將會產生信息時代的無產階級,同時也將誕生信息寡頭。對于越來越集中的信息資源的安全利用,將不只是IT服務提供商和用戶需要考慮的問題,同時國家層面也要更多地從法律法規方面加以規范。
隨著安全技術和相關法律的日臻完善,SaaS服務公司所提供的軟件服務將比自身維護一套軟件系統更為專業和安全。但對于目前的很多SaaS服務提供商和打算提供SaaS服務的廠商來說,如何做好系統安全仍然是不得不補的一門課程。
SaaS系統由于Multi-Tenent多租戶架構的特點,決定了它將承載更多的用戶和業務。這同時也表明SaaS系統出現安全問題的影響范圍和影響力將成倍地被放大。從最近的安全事件來看,對SaaS服務提供商所爆出的安全問題的解決,除了受到非強制的社會道德方面的約束之外,最終還將上升到法律和國家層面才能加以解決,足見SaaS系統安全問題的影響力和重要性。在互聯網信息傳播如此發達和透明的時代,安全方面問題將沒有任何空子可鉆,任何安全方面的疏漏都有可能使得剛剛踏入云端的腳步直接墜向地面。從另一方面,日漸成熟且專業化的地下黑客產業鏈正快速形成,這也使得SaaS系統在安全方面敲響了警鐘。無論是“灰鴿子”、“熊貓燒香”,還是被稱為“毒王”的AV終結者,在每一個病毒背后,都有著一條龐大而完整的產業鏈。在經濟利益的驅動下,如今黑客和病毒制造者也逐漸形成了龐大、完整的集團和產業鏈,他們分工明確、無孔不入,不斷地尋找各種漏洞并設計入侵/攻擊流程,模塊化、批量地制造病毒,以盜取用戶網絡游戲、即時通信工具、網上銀行等虛擬財產。從開發病毒程序、傳播病毒到銷售病毒,形成了分工明確的整條操作流程,這條黑色產業鏈每年的整體利潤預計高達數億元,如圖15-1所示。
日漸復雜和嚴峻的SaaS系統安全問題,的確讓人頭疼,有時讓人感到厭惡,但卻是無法擺脫的事實,無論是服務提供者還是用戶,都不能無視它的存在和重要性。
要提早考慮SaaS系統的安全規劃和設計,主要有如下幾點原因: 1)安全補漏的成本將遠遠高于提前預防的成本。比如一開始沒有考慮到做安全審計,后續就要付出更大的代價來實現,涉及對所有功能的調整,還可能存在顛覆性的設計和開發工作。2)安全漏洞對用戶造成的損失將難以彌補。比如SaaS系統中用戶數據被非法竊取,并被用于非法牟利,對于SaaS服務商來說將是一場噩夢。3)將失去本來就難以建立的用戶信任,SaaS系統服務商將面臨信用危機。4)社會影響和用戶口碑方面的損失也是無法衡量和彌補的。
SaaS系統安全問題中的絕大多數實際上也是傳統安全問題,根據二八原則,可以說在SaaS系統安全方面,80%是傳統安全問題,20%是云安全問題。在云安全問題中,有很多問題是對傳統安全問題的放大,比如身份驗證、訪問控制、數據對視、泄露的防范、信息分類、審計、數據隔離、邏輯隔離、物理邊界控制等。SaaS系統安全相對于傳統系統安全的新問題: 1)受法律約束的安全承諾和運維協議SLA、法律法規,以及非強制約束的商業誠信、道德,建立互信。2)在技術層面,Multi-Tenent多租戶架構下的各個方面的安全考慮,比如如何實現多租戶各自的身份驗證和訪問控制,多租戶間的數據隔離控制等方面問題。3)基于Internet提供服務的SaaS系統需要處理復雜的網絡環境,面臨更多的安全威脅,需要防范各種黑客攻擊。

圖15-1 黑客帝國的產業鏈示意圖(參考瑞星反病毒中心)
在安全規劃和設計時,要結合業務應用特點,確定切合實際的安全規劃。要避免防范過度,并不是安全措施越多越好,而是需要適合、適度的安全。要綜合考慮安全、性能、成本、易用性等方面的權衡取舍,因為這幾者之間有很多方面是天然沖突的。
在考慮SaaS系統安全體系設計時,不能只考慮技術層面的安全問題,還需要兼顧人員方面的安全、組織制度安全等非技術方面的安全問題。要清楚技術并不是萬能的,需要對安全問題有更加系統的認識和規劃。尤其對組織的高層和管理者,更應該把注意力更多地放在非技術領域的安全問題的處置上。因為對于技術層面的安全問題,存在很多成熟的產品和解決方案,且可達到立竿見影的效果。然而對于非技術的安全問題,因涉及組織制度、人員管理、社會影響、商業信譽、法律法規等多方面的綜合因素,且因人、因組織、因業務領域等方面的不同而顯得特別,不易復制。
信息安全的三維防護體系,是通過制定一套適當的管理制度、部署必要的技術措施,來實現信息安全目標要求。信息安全體系是組織制度、人員、技術三維的防護體系,如圖15-2所示。

圖15-2 信息安全三維防護體系
組織制度:在組織制度層面強化安全管理。比如:為防止數據損壞,建立定期數據備份和檢查制度,建立第三方安全審計。
人員安全:對能夠接觸系統的相關人員采取一定的安全保障措施。比如:外聘人員有剽竊數據風險,要簽署保密協議。
技術手段:從技術層面保障系統安全。比如:病毒導致數據丟失,要安裝病毒查殺軟件 ;設備故障會導致系統宕機,要考慮業務連續性問題。技術層面的信息安全防護模型包括數據、軟件、硬件、網絡和環境5個方面,如圖15-3所示。數據是系統最具價值的核心,就好比鉆石;硬件是柜子;軟件則是一把鎖,通過軟件這把鎖,能夠存或取硬件這個柜子里的鉆石(數據);再外層則是網絡通道,這一切都會受到外界環境的影響;機房環境會對硬件的運行性能和穩定性產生影響,網絡的環境則決定通道是否安全可靠,地震是否會導致網絡中斷、是否有其他備用網絡通道?

圖15-3 信息安全防護模型(技術層面)
SaaS系統安全體系也主要從技術和非技術方面進行規劃。與傳統信息安全模型相比,80%是相同的,另外20%主要體現在技術層面。有些問題在SaaS系統中被放大,非技術方面增加了諸如商業信譽和誠信、安全法律和相關規范、安全體系認證和ITIL運維及SLA方面的安全問題。整體上SaaS系統的安全體系采用“5+5”模型,即非技術5個方面的安全加上技術方面的5個層次的安全,如圖15-4所示。利用該模型可以全面地構建SaaS系統的整體安全戰略。
安全領域的技術與非技術兩者是相輔相成的,技術是手段,非技術是約束。有些非技術問題需要靠技術手段來支撐,比如在SLA中承諾的數據保密性要求,就需要從技術設計和實現角度達到并滿足這一約定;反之,非技術也將對技術實現進行約束,比如是否能夠通過技術手段掃描用戶磁盤信息以保證自身系統安全,將受到相應的法律規范以及商業信譽和誠信的約束。
非技術安全 對于SaaS系統安全的非技術方面,服務提供者需要對Multi-Tenent多租戶做安全方面的服務承諾(比如對用戶數據的保留期限、出現故障的恢復時間、對用戶數據的保密性要求等),具體將落實在系統運維管理的SLA協議當中。另外,SaaS廠商需要做一些安全體系方面的認證,比如等級保護、ISO 27001等。一方面,認證可以真正地對系統安全起到實際作用;另外一方面,經過認證的系統能夠給用戶更多的信心。SaaS系統還要遵循一些安全方面的法律和規范,加強組織內部的安全管理制度建設和人員管理。同時,對于商業信譽和誠信也會起到非強制性的約束作用。
技術安全 SaaS系統安全的技術方面,與傳統系統相比在很多方面需要更為強化的安全措施。

圖15-4 SaaS系統安全體系模型

圖15-5 數據隔離方案
1)在數據安全層面,要解決Multi-Tenent架構下的數據隔離問題,屬于數據保密性范疇。實現數據隔離的技術手段主要有邏輯隔離、物理隔離和混合隔離三種,如圖15-5所示。
邏輯隔離的優點就是,能夠充分利用存儲資源,以便于統一數據管理和控制;其缺點是安全性降低(如何避免數據對視和泄露,這將對系統設計和實現提出更高的要求),另外就是無法借助存儲硬件和數據庫系統自身的數據備份機制實現對某些特殊用戶的數據管理。
物理隔離的優點是,不同用戶之間的數據物理分開存放,從根源上減少了數據互相泄露和滲透的風險,而且能夠很容易地基于存儲硬件和數據庫系統本身功能實現對不同用戶的數據制定管理策略;其缺點是存儲資源無法充分利用,相應的數據管理成本也將提高。
混合隔離就是融合邏輯隔離和物理隔離的優點,采取混合策略進行數據管理:結合不同用戶的應用級別和安全需求,可以為規模較小、安全性要求不高的用戶提供邏輯數據隔離;對較大規模的用戶、安全要求高的用戶,可以采用獨立存儲空間,做物理數據隔離。
另外在數據安全層面,還要處理敏感數據加密存儲、數據備份和容災等方面的問題,這些在傳統系統數據安全方面都已覆蓋,在此不過多贅述。
2)在軟件安全層面,需要重點解決Multi-Tenent架構下應用系統如何做好身份鑒別、訪問控制、安全審計和防抵賴等方面的問題。比如,采用數字證書加口令技術實現安全的雙因素身份識別和驗證;再比如,采用LDAP目錄服務解決多應用、多租戶的統一身份鑒別問題,以避免在多系統中分別進行身份驗證而導致安全漏洞增多的問題。在訪問控制方面,可采用RBAC(Role-Based Access Control,基于角色的訪問控制)模型,如圖15-6所示。在RBAC中,權限與角色相關聯,用戶通過成為適當角色的成員而得到這些角色的權限,這就極大地簡化了權限的管理。在一個組織中,角色是為了完成各種工作而創建的,用戶則依據它的責任和資格被指派相應的角色,用戶可以很容易地從一個角色被指派到另一個角色。角色可依新的需求和系統的合并而賦予新的權限,而權限也可根據需要從某角色中回收。角色與角色的關系可以建立起來,以囊括更廣泛的客觀情況。
另外,對于PaaS層的軟件平臺安全管理,像對操作系統、數據庫服務和中間件服務等PaaS層軟件平臺的安全應用和部署,同樣需要予以重視。

圖15-6

圖15-7 典型SaaS系統的安全域劃分
3)在硬件安全層面,利用IaaS層硬件資源池可實現多租戶的應用服務器和數據存儲隔離,對于規模較大的用戶可采取獨立服務的方式,避免多租戶由于資源共享而產生的安全漏洞問題。另外,利用智能的硬件資源池還可以更好地實現負載和容錯,增強系統健壯性。從廣義上來講,這也屬于安全范疇,因為降低了由于硬件故障而造成數據丟失、事務不完整進而導致數據不完整等數據安全問題。其他諸如病毒防護、入侵防范等方面的問題,在傳統系統硬件安全方面都已覆蓋。
4)在網絡安全層面,主要從網絡安全級別的角度對安全區域進行劃分,并對安全域之間的物理邊界加強防護措施,進行安全審計。圖15-7是SaaS系統典型的安全域劃分。圖中從下至上分別是數據、業務和Web服務區,安全級別由高到低,安全威脅則由少到多。由于各區之間的安全特性不同,所以在各區之間需要加強安全邊界的防護措施,如圖15-7中閃電符號所表示的安全域之間的邊界。
5)在環境安全層面,和傳統系統安全相比,最大的差別就是隨著Multi-Tenent租戶和業務的增加,對物理硬件和計算能力的需求也將不斷增加,因此在主要的云計算中心環境選擇和設計上,就要更多考慮很強的擴展能力和各方面的安全性要求。作為SaaS廠商,可以向專業的IaaS服務提供商租用這種環境,也可以租用包含硬件、軟件中間件等構建的SaaS系統的基礎平臺。
6)在各個層面,需要整體防范各種病毒、黑客攻擊、XSS跨站腳本攻擊、SQL注入、木馬、DOS攻擊等五花八門的惡意攻擊手段。
(未完待續 摘自《站在云端的SssS》)