基于 OpenFlow 架構(gòu)的 IaaS 云安全
簡介
IaaS的服務模式允許在不關注底層物理基礎設施的情況下,配置和運行異構(gòu)應用程序。云計算技術創(chuàng)建出一個可以重現(xiàn)真實操作環(huán)境的虛擬化試驗床,包含以下優(yōu)勢:
- 一個在內(nèi)部重現(xiàn)真實世界場景進行測試活動的機會;
- 自動處理整個平臺的備份和故障恢復的可行性;
- 自動配置和管理試驗平臺的組件和版本化;
基于學術研究分析,云計算的安全問題涉及很多不同的領域。認證、授權和計費的處理方式也將受到很大的影響:安全威脅往往起源于內(nèi)部用戶,所以往往按照明確的全局策略,只允許有認證的用戶才能訪問指定資源。與平臺資源相關的用戶行為應該被監(jiān)管以便進一步分析處理違反策略的行為。另一個重要的工作就是管理安全策略,來保證整個云數(shù)據(jù)存儲的可用性、完整性和保密性。在這種情況下,先進的加密方案可以用來保證只有指定的認證用戶才能在云數(shù)據(jù)存儲中訪問、修改和刪除信息。
虛擬化技術是IaaS模型的核心,它正迅速的改變網(wǎng)絡安全的需求。傳統(tǒng)的安全手段,如內(nèi)部安全設備和訪問控制名單在處理虛擬服務器和資源時,由于要應變拓撲的快速變化而需要更新,這是不可持續(xù)的,只有經(jīng)過授權的主機和設備才能夠在虛擬網(wǎng)絡里通信,而惡意訪問則會以某種方式被限制。虛擬層也帶來了新的安全挑戰(zhàn),因為虛擬客戶端很容易被入侵并且損壞其他虛擬機。所以其中一個可能的補救措施就是檢查虛擬機的行為,同時,檢查虛擬機的鏡像來核實他們的完整性。
為了有效處理云安全事件, 我們提出基于OpenFlow架構(gòu)的識別攻擊模式,并且實現(xiàn)緩解、恢復策略以對安全事件做出反應,這種結(jié)構(gòu)的設計已經(jīng)在IaaS云平臺 OpenNebula中部署實施 ,它代表了一個真實的區(qū)域管制中心(ACC)。在試驗平臺運行的應用程序強調(diào)了安全解決方案自動處理災難和攻擊的恢復需求。這里提出為了設計結(jié)構(gòu)進行的初次實驗活動:
- 不同的開源OpenFlow控制器之間的性能對比;
- 在供應時間度量的基礎上三種不同的開放源碼的IaaS平臺的特征;
- 為了提供L2 VLAN封裝/解封裝,在所選擇的控制器上執(zhí)行新功能。
#p#
OpenFlow和SDN模式
基于軟件定義網(wǎng)絡(SDN)實現(xiàn)虛擬化實驗平臺網(wǎng)絡處理和配置的方式,是一種對網(wǎng)絡新的認知方式。與網(wǎng)絡設備相關的數(shù)據(jù)平面及集中外部邏輯的控制平面與傳統(tǒng)網(wǎng)絡設備有明顯不同。采用SDN收獲的最大益處是對應用層的完全隔離和全局視圖。第一種情況下研究人員可以在控制層之上創(chuàng)建自己的應用,與網(wǎng)絡設備完全隔離開來。因此可以寫入新的協(xié)議或應用程序,而不會影響設備的內(nèi)部結(jié)構(gòu)。第二個優(yōu)點涉及網(wǎng)絡本身的全局視圖可用性,所以很容易對事件作出反應,并且改變拓撲。OpenFlow是這種途徑的一個實現(xiàn)方式,包含了控制層和數(shù)據(jù)層之間的接口,定義了所有通過建立在網(wǎng)絡交換機和外部控制器之間的安全通道信息,從而按照信息流來決定邏輯順序。如今SDN對云計算網(wǎng)絡服務十分有吸引力,因為它代表了一種靈活的動態(tài)創(chuàng)建虛擬網(wǎng)絡的方式,并且保證多租戶的二層隔離。另外,從之前的分析和實驗得到的結(jié)果中可以確認OpenFlow可以使網(wǎng)絡得到極大地靈活性,確保動態(tài)安全策略的實施,而不需要改變網(wǎng)絡組件的內(nèi)部結(jié)構(gòu)。這就是為什么OpenFlow被認為是一種面對漏洞的有效算手段,即使是在一個像云計算IaaS這樣的動態(tài)環(huán)境下也能在面臨安全問題時自動執(zhí)行減災和恢復的策略。
合適架構(gòu)
架構(gòu)主要從三個不同的層來分析,云層展示了兩個數(shù)據(jù)中心,位置上通過一個私有企業(yè)的骨干網(wǎng)連接,為了進一步提高數(shù)據(jù)中心的安全等級,可以利用一個基于MPLS(多協(xié)議標簽交換協(xié)議)的拆分機制,把數(shù)據(jù)包分割成幾部分,并重定向到分離路徑,這樣截獲的惡意用戶就不能重新構(gòu)建消息了。每個數(shù)據(jù)中心都有自己的IaaS集群并有一個主節(jié)點用于負責管理所有基礎設施。在虛擬化層,視圖是獨立于一個部署在數(shù)據(jù)中心的特定平臺,關于組織架構(gòu),每一個物理機,即 “計算”節(jié)點,創(chuàng)建一個虛擬交換機掛載所有的客戶機網(wǎng)絡接口。在虛擬交換層,使用OpenvSwitch技術,提供了一個套功能,其中的OpenFlow 協(xié)議可以實現(xiàn)。交換機的流表通過OpenFlow的控制器編程:當由虛擬客戶機所產(chǎn)生的數(shù)據(jù)包到達的交換機,并且沒有匹配可用的規(guī)則,它被發(fā)送到控制器,它可以決定在交換機下發(fā)新的規(guī)則以轉(zhuǎn)發(fā)或丟棄方式處理數(shù)據(jù)包。所有虛擬機產(chǎn)生的流量都會被控制,并且會根據(jù)一些有名的惡意攻擊模式進行檢查,以找出可能存在的攻擊。當檢測到異常網(wǎng)絡活動時,由Snort產(chǎn)生警報并通過TLS(傳輸層安全)插件到達報警關聯(lián)器,從而執(zhí)行以下操作:
事件存儲
對需要確定攻擊的嚴重性級別信息提取后進行通知
在上述嚴重級別的基礎上識別緩解策略實施。
策略將由與IaaS的管理器和OpenFlow控制器交互觸發(fā)。當一個虛擬試驗平臺遭到攻擊被檢測出來后,我們打算實施的策略主要是把被攻擊的 VM遷移到相同基礎設施但不同的數(shù)據(jù)中心里,遷移完成后,關聯(lián)器可以指示控制器改變客戶之前托管的物理節(jié)點中虛擬交換機的信息流,以保證位置的透明度。
圖1 整體架構(gòu)
#p#
實驗活動
展開的第一個實驗工作,目標是從幾個OpenFlow控制器中選擇一個開源的解決方法。OFlops(OpenFlow Operations Per Second)完成了對控制器性能的比較,它是由兩個軟件包構(gòu)成的。
OFlops,一個允許基準交換機許多功能的特定控制器;
Cbench(Controller benchmarker),通過模擬交換機的連接為控制器產(chǎn)生數(shù)據(jù)包傳入;
這樣可以計算出數(shù)據(jù)包傳入率的最大值,數(shù)據(jù)包到達和傳入的延遲以及處理延遲。
表1 Flow-mod每秒的消息數(shù)
上圖顯示出Flow-mod每秒的消息數(shù),通過這個消息,控制器能夠安裝、修改或刪除交換機列表的流規(guī)則。在比較中,也將考慮其他參數(shù),如擴展性和易修改性, RESTful APIs的可用性和項目開發(fā)背后的支持。我們的選擇落在Floodlight,這是一個在Apache許可證下發(fā)布的基于java事件的控制器,由一個開放社區(qū)開發(fā)。
為了提供L2隔離功能,使用VLAN技術在虛擬機之間通信,修改Floodlight的“轉(zhuǎn)發(fā)”模塊,使用OpenFlow技術以實現(xiàn)VLAN 標簽的封裝/解封裝。VLAN標簽只能被云平臺本身直接檢索,可以識別到屬于虛擬網(wǎng)絡的虛擬機帶有特別的VLAN標簽。其他的修改則配合控制器與 OpenvSwitch之間通道的保護措施。后一種本身支持SSL信號交換,所以我們用私鑰或者公鑰(由JAVA密鑰工具生成)處理實現(xiàn) Floodlight連接模塊中的通信安全。
作為本次實驗最后一步,我們評估了三個不同的IaaS平臺的“置備時間”:這個度量指的是從產(chǎn)生新的虛擬機(通過API)的請求開始直到平臺獲得“ready”的狀態(tài)中間的這段時間。我們認為這會產(chǎn)生16種組合,他們由4個參數(shù)組合出來,分別是:
服務提供:新的虛擬機的需求偏好,即虛擬CPU的數(shù)量和RAM的大小;
數(shù)據(jù)存儲(二進制):虛擬機的二級磁盤存儲;
物理節(jié)點壓力:已經(jīng)承載在節(jié)點上的虛擬機的數(shù)量(0-5);
自動調(diào)度(二進制):負責挑選新虛擬機分配承載位置的設施。
表2 配置時間表
我們計算出創(chuàng)建10個請求不同但結(jié)構(gòu)相同的虛擬機的算術平均值,以下是與我們觀點相關的特定組合:(1)一個中間服務器請求(1個虛擬CPU,2GB RAM)(2)數(shù)據(jù)存儲請求(3)物理節(jié)點上已承載的5個虛擬機(4)調(diào)度模塊激活。
總結(jié)
在這次工作中我們先討論了云計算環(huán)境的安全問題的挑戰(zhàn)相關的背景。然后通過描述我們所需的所有架構(gòu)組件,提出了一個基于SDN的保證網(wǎng)絡安全和在攻擊時的反應選擇途徑。未來我們的工作目標是使用更復雜的入侵檢測機制,以便能夠檢測未知的和不尋常的流量模式。此外,我們打算通過進行云計算的 IaaS平臺之間更準確的比較來擴大實驗活動,主要是基于其他一些參數(shù),如:彈性、敏捷度、網(wǎng)絡壓力和CPU/存儲器的使用率。