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