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