【博文推薦】云計算安全解決方案白皮書(一)
本博文出自51CTO博客之星Jack zhai的博客,有任何問題請進入博主頁面互動討論! |
研究云的安全有兩三年了,但形成完整的安全思路,還是去年的事,這也是“流安全”思路形成的主要階段。
云計算的安全問題之所以突出,是因為虛擬機的動態遷移,以及多業務系統交織在一起,這讓傳統的網卡邊界就是安全部署點的方法不在適用。流安全不再關注被保護服務器的物理位置,轉而關注訪問該服務器的數據流。通過對數據流的重新“路由”,保證對數據流的安全清洗,從而實現對服務器的網絡保護。在訪問控制模型中,有一類流模型,就是針對數據流進行保護的。
為了讓大家容易理解基于流安全的云計算安全方案,我編寫了這個白皮書,與大家交流。文檔挺長,特分成四個部分。
本方案適用范圍:
云計算建設一般分為公有云與私有云,其安全需求是不同,安全防護思路也不相同。
公有云以阿里云、騰訊云等互聯網運營商為代表,獨立建設云服務為企業、個人提供云服務。選用這種云服務的用戶,多數是對敏感性要求不高的,主要的便宜、快捷。同時,云服務提供商為了降低運營成本,大多采用在開源虛擬化平臺上進行二次開發,不僅整個架構平臺可以自己重新架構,而且可以增加自己對虛擬機的安全管理,如流量限制,內置安全軟件進行安全監控,或者直接進行病毒查殺等等。總之,公有云的安全基本上是由云服務商來管理,用戶可以根據自己的需要選擇,若是有些敏感的信息,可以選擇桌面的加密軟件。
私有云的情況則不同,因為私有云的建設者,大多數技術力量不是很強,沒有自行開發、運維虛擬化平臺的能力,選擇采用第三方的、較為成熟的云計算管理平臺是常見的,用戶則更關心自己的新業務開發。采用私有云方式的用戶,一般其IT設施較多,業務對網絡要求較高,多數有自己的城域網,有些還有專用的廣域網,在安全上一般應該滿足等級保護的國家要求。為了提高IT設備的利用率,加強對業務支持的靈活性,選用資源虛擬化管理,或者之間遷移到云服務平臺。如政府、軍隊、央企、科研機構等,
本文主要是針對私有云,并且是在一個虛擬化池中不只是運行一種業務的場景,提出的云計算安全解決方案設計思路,不僅適合針對每個業務系統提供單獨安全保障的需求,而且適合不同虛擬化管理平臺的統一安全管理。
一、云計算其實是所有軟件人的“夢”
1、云計算是一種新的IT服務模式體驗
能夠不受計算機處理能力的限制,能夠有取之不盡的內存與外存空間,這對于每一個軟件編程人員來說,無疑具有巨大的誘惑力。為了提高處理速度而絞盡腦汁設計的精巧算法,為了節省內存而反復優化的代碼…而真正實現業務系統的邏輯、管理往往淪為“不重要的”。以至于很多人認為:計算機編程高手就意味著精于編程技巧,而應用系統開發只是軟件工程,我們常說的“碼農”。
云計算技術的出現讓這個問題成為歷史,增加處理能力,就是增加幾個CPU,動態添加內存都不再是障礙,甚至已經出現了內存數據庫,空間還是問題嗎?因為云計算的特點之一是具有彈性的處理能力。
對于計算機的用戶,能夠隨時隨地接入主機系統,忙碌的辦公室、溫馨安逸的家、旅途中的賓館、休假時的海濱,甚至行駛的汽車上、飛機上、輪船上…隨時交流通信、隨時編寫方案、隨時設計藍圖、隨時項目審批、隨時網上沖浪……云計算讓這些夢想變成了可能,因為云計算還有一個顯著特點:隨時隨地接入網絡。
當然,得到如此“夢想”的服務,不只是高端富豪才能享用的,就像“自來水”一樣,價格便宜,使用多少就付多少錢。可度量的、按需的服務是云計算的另一大特點。
以上是美國NIST定義云計算五大特點中的三個,這已經足夠吸引所有計算機人士的眼球的了。因此,2013年還有很多專家稱云計算落地還有待時日,到了2014年,政府與企業的IT建設立項不與云沾邊的已經很少了,2015年一開始,一窩蜂似的涌出很多的云計算項目要落地實施。其實我們回想一下,這幾年,我們身邊基于云計算的服務與新應用:即時通信、社交網絡、搜索引擎、電子政務、智慧城市、電商購物、影視媒體、大型游戲、安全態勢分析、領導決策支持…
2、了解一下云計算的體系結構
云計算是一種新技術,也是一種新型的IT服務模式。你知道嗎?支持云計算服務商的后臺基礎技術其實是資源管理的虛擬化技術。我們先看一下云計算的系統結構:
與傳統IT架構不同的地方,是在IT基礎設施與系統軟件(操作系統)之間增加個一個虛擬化管理層,業務系統“看到”到不再是物理服務器,而是虛擬機(VM)。
正是因為對數據中心的IT基礎實施采用了虛擬化管理技術,虛擬計算機可以動態調整CPU的個數、內存的大小,所以云計算才能夠提供彈性的服務能力。按照用戶業務運行的實際需求,動態分配處理能力給每個用戶,這就是服務器虛擬化管理的核心之一。當然你需要的服務能力不能超過所有硬件服務器服務能力的總和。
這種虛擬化管理平臺軟件不同于傳統的計算機操作系統,目前比較流行的有:VmWare、KVM、Xen、Hyper-V等,其他管理平臺多是在KVM、Xen等開源平臺上繼續開發出來的。
服務器虛擬化技術的核心是生成與管理虛擬機(VM),不同平臺技術上有差異,但大體思路是一致的。我們看一下VMWare平臺的虛擬機架構:
Xen平臺的虛擬機架構類似,但有個0號控制虛擬機:
虛擬機最基本的組成是CPU、內存、網卡、磁盤(外存),其他虛擬硬件按需添加,如光驅、軟件、USB等。多個虛擬機共享一個物理服務器的硬件資源,對于多用戶、多進程的操作系統來說這也不是什么難的事情,但如何將兩個虛擬機安全隔離就是管理上關注的事情了。兩個應用軟件“跑”在一起,還有兼容問題呢,何況是兩個虛擬機?用戶使用虛擬機,對他來說,應該是一臺“獨立的”計算機,若他知道還有人與他一起“合租”,鄰里關系不能熟視無睹吧。如何做到讓用戶感覺是跟自己的是一樣的呢?
#p#
3、了解虛擬化技術
在一個服務器內實現多個虛擬機共享技術是第一步,要想真正支持彈性服務能力,沒有上限的,就一定要突破多臺服務器的聯合技術,整體的服務能力才有增大。
從早先的雙機熱備,到服務器集群,再到網格計算,人們在把多臺設備虛擬到一起的道路上,探索了很長的一段時間。目前流行的實現服務器虛擬化技術有如下兩種模式:
負載控制+“一虛多”:先建立一個總服務臺,進行并行管理。把一個任務分成多個子任務,每個任務申請一個VM,最后處理的結果再返回用戶。保證子任務對服務能力的需求不超過單個物理服務器。比如Google、百度的搜索服務,把搜索分成不同類別、資源的子搜索,搜索的時間才會到人滿意的程度;
“多虛一”+“一虛多”:把多個物理設備虛擬成一個大的設備,成為一個很大處理能力的“巨型機”,再按需分給每個用戶。這是資源虛擬化的理想方式,真正做到了用戶申請的VM不受物理服務器的限制,不關心處理能力的承受問題。
不論是哪種虛擬化技術,目的都是在物理硬件與用戶需求計算機之間建立一個虛擬層,由這個虛擬管理層負責把用戶任務分配給具體的硬件資源,用戶“看到的”是虛擬CPU、虛擬內存…既然硬件都是虛擬的,當然其大小就可以由虛擬管理者動態調整。管理虛擬層一方面要管理下層具體的硬件,驅動它們最大效率地工作,一方面要針對每個虛擬機提供出虛擬的硬件接口,讓虛擬機的操作系統“正常”調用硬件資源工作。
4、虛擬網絡的“誕生”
計算機是通過網卡連接網絡與外界互聯的,所以,傳統的網絡邊界節點就是網卡,網卡收發的是網絡TCP/IP協議的數據包,支持的網絡路由交換協議。網卡是服務器與網絡互通的必經路徑點。連接網卡的網線就是通過網絡進入服務器的“唯一”大門(直接到服務器控制端或串口接入控制端,需要接近物理設備,屬于物理安全與運維管理范疇,這里不討論),傳統的網絡安全措施,部署在網卡的前面,是最佳的防護位置。
虛擬機(VM)的產生讓網絡有了不同,每個VM也都有自己的虛擬網卡,這些虛擬網卡需要一個虛擬交換機將他們“連接”起來,再通過上行鏈路(服務器的物理網卡)連接到外邊的網絡上。
這個虛擬處理來的交換機,并不是把物理網卡與虛擬網卡簡單的分時鏡像,因為兩個VM之間也會通信,這是的流量就無需到物理網卡去“兜一圈”了,通過虛擬交換機就可以進行“轉發”,實際上是物理服務器的內存里搬移個地方,但是虛擬交換機應該與物理交換機一樣支持TCP/IP各種交換協議。每個VM都有自己獨立的IP地址(可以通過NAT技術對外界只有一個IP)。邏輯網卡的功能與物理網卡應該一樣,同樣處理TCP/IP的協議棧。
有了虛擬網卡、虛擬交換機,虛擬網絡就誕生了。在云計算架構里,網絡概念發生了延伸,對網絡的理解從傳統的網絡邊界---網卡,延伸到服務器的內部---VM的虛擬網卡。
#p#
5、虛擬機不僅僅是虛擬的
VM與物理計算機,用戶使用起來是沒有差別的。但管理這看來,是不同的。物理計算機是硬件實物,一般來說服務器的物理位置是固定的,要遷移是很麻煩的(涉及到網絡IP的規劃與路由設計,這里說的是服務器端,不是終端,可以使用動態IP);VM其實只是一個“文件”,遷移就是一個文件拷貝的操作。因此,采用虛擬化技術最為實惠的一大好處,就是VM可以動態遷移。
虛擬機動態遷移為IT管理帶來的優勢是顯而易見的:
沒有業務處理時,VM休眠,釋放全部的物理資源給其他用戶使用;
發現VM運行的服務器能力不足時,可以動態遷移幾個VM到其他的物理服務器上,在不中斷業務的情況下,動態調整服務能力的供給;
IT系統升級或更新硬件時,先把VM遷移出,升級完后再遷移回來,完全不影響應用服務狀態,無需像從前那樣,要業務系統退出、數據備份、硬件升級、重裝系統、重啟業務服務、恢復數據、同步操作等等;
系統容災變得簡單易行。以往是建設備份機房,投資大,平時也用不上;有了動態遷移技術,可以在兩地機房建立一體的虛擬化池,在一地出現大災難時,業務自動將業務VM遷移到另一地的機房服務器中,自動實現系統容災。近幾年,傳統設計的兩地三中心(同城備份、異地容災)IT基礎架構,已經被“雙活”、“多活”數據中心的架構所代替,核心就是采用虛擬化的遷移技術;
快速重啟備份系統。業務系統有Bug,系統邏輯宕機,要盡快恢復業務是所有IT管理者都需要的。傳統采用雙機熱備或冷備機方式,重啟硬件的時間是不可缺少的。有了虛擬化技術,可以建立不同時間段VM的動態文件鏡像,發現宕機,立即啟動備份VM,無論是恢復時間,還是最小損失窗口都有大幅度地提升;
VM動態遷移,帶來的直接問題,就是IP管理。用戶訪問服務器是通過URL,再定位到IP地址,所以VM如何遷移,其IP地址應該是不變的。傳統數據中心采用三層網絡結構(接入、匯聚、核心),不同業務系統劃分VLAN進行隔離,保障業務邊界安全,VLAN之間的通信是通過三層路由網關轉發。現在VM動態遷移,不知道在哪個物理服務器中,甚至到了異地數據中心的服務器里,三層路由在哪里做合適呢?若大家都放在一個二層VLAN里,好像又不安全,廣播包太多也是問題。這就是目前很多數據中心采用“大二層”網絡架構的原因所在。簡單地理解大二層,就是大家可以在一個網段,又可以做一些邏輯域,一個VLAN的設備還在一個廣播域,跨設備的VLAN之間建立“通道”,保障它們是一個邏輯的整體。
6、云計算讓網絡邁向一個新的時代
云計算采用了資源虛擬化,把物理網絡從傳統的物理網卡,延伸到物理服務器的“內部”,虛擬機的虛擬網卡上。VM的動態遷移,讓我們對“設備”的管理,從物理的改變為邏輯的。
一方面,開發者不再關心服務器的處理能力;另一方面,用戶也不再關心自己業務服務器在什么地方。傳統的網絡是七層架構,現在網絡層上,“生出”一個“邏輯網絡層”,虛擬化了服務器的計算資源,也虛擬化了網絡資源。
采用了虛擬化技術,IT管理者已經無法像以前一樣把某個業務系統與物理的服務器、存儲、網絡設備相對應,他們看到的只是某個業務系統訪問的信息流,業務系統的虛擬網絡拓撲。
傳統的網絡管理統治時代即將過去,面向對業務信息流的管理時代即將開啟。