技術(shù)領(lǐng)域
本發(fā)明屬于網(wǎng)絡(luò)策略沖突解決技術(shù)領(lǐng)域,具體是一種云主機(jī)網(wǎng)絡(luò)接口的動態(tài)管理方法。
背景技術(shù):
軟件定義網(wǎng)絡(luò)SDN(Software Defined Networking)是由美國斯坦福大學(xué)Clean Slate研究組提出的一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),其核心理念是數(shù)據(jù)轉(zhuǎn)發(fā)和控制層面的分離。OpenFlow是一種軟件定義網(wǎng)絡(luò)SDN的解決方案,它使得網(wǎng)絡(luò)的靈活性大大增加。
一個基本的OpenFlow技術(shù)組網(wǎng)結(jié)構(gòu)如圖1所示,它包括OpenFlow交換機(jī)和控制器。當(dāng)?shù)谝粋€數(shù)據(jù)包到達(dá)OpenFlow交換機(jī)后,由交換機(jī)使用OpenFlow協(xié)議通過安全通道將它轉(zhuǎn)發(fā)至控制器,控制器上的軟件進(jìn)行轉(zhuǎn)發(fā)決策,將策略下發(fā)到交換機(jī)的流表中,后續(xù)數(shù)據(jù)包按流表規(guī)則轉(zhuǎn)發(fā)。由于SDN技術(shù)的開放可編程性,攻擊者可以利用流表項(xiàng)的Set-Field操作構(gòu)造一些惡意流繞過SDN控制器的安全策略。
并且,網(wǎng)絡(luò)中存在著許多網(wǎng)絡(luò)策略,比如ACL(Access Control List)和SFC(Service Function Chain)。同時,網(wǎng)絡(luò)中的策略往往是由不同人群制定的,他們可能是網(wǎng)絡(luò)的管理員或用戶,也可能是虛擬租戶網(wǎng)的租戶。不同網(wǎng)絡(luò)使用者的決策是相互獨(dú)立的,也是動態(tài)的,所以很多時候不同的策略之間會產(chǎn)生策略沖突。
如圖2所示,網(wǎng)絡(luò)拓?fù)溆?臺主機(jī)、2臺OpenFlow交換機(jī)和一臺控制器??刂破魃系陌踩珣?yīng)用定義了一條安全規(guī)則,阻止主機(jī)A和主機(jī)D進(jìn)行通信?,F(xiàn)在,另外的網(wǎng)絡(luò)應(yīng)用可以通過以下2個交換機(jī)的流表項(xiàng),將A上的信息發(fā)送到D。具體實(shí)現(xiàn)過程如下:第一臺交換機(jī)的流表項(xiàng),把源地址為A且目的地址為C的數(shù)據(jù)包的源地址改為B,第二臺交換機(jī)的流表項(xiàng),把源地址為B,目的地址為C的數(shù)據(jù)包的目的地址改為D。這樣,數(shù)據(jù)包就從主機(jī)A發(fā)送到D上。攻擊者可以利用流表項(xiàng)的Set-Field操作構(gòu)造一些惡意流繞過SDN控制器的安全策略。還有一種是應(yīng)用程序之間的規(guī)則沖突,應(yīng)用程序1,下發(fā)流表11至交換機(jī)1,把源地址為A的IPv4的數(shù)據(jù)包發(fā)送給端口1,應(yīng)用程序2,也下發(fā)流表21至交換機(jī)1,把源地址為A的TCP的數(shù)據(jù)包發(fā)送給端口2,若兩者優(yōu)先級不同,則遵循優(yōu)先級高的規(guī)則,若兩者優(yōu)先級相同,則會導(dǎo)致沖突,這是流規(guī)則依賴導(dǎo)致的問題。
目前的策略沖突解決方案僅僅實(shí)現(xiàn)了運(yùn)行態(tài)的沖突檢測,即只有當(dāng)策略被部署之后,網(wǎng)絡(luò)在運(yùn)行時發(fā)生故障,性能出現(xiàn)惡化時,安全漏洞等問題才暴露出來。而且這只是一種沖突檢測,其無法實(shí)現(xiàn)策略沖突的預(yù)防,更不能實(shí)現(xiàn)策略的編排,解決策略沖突。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的問題是提供一種自動化預(yù)防和編排處理策略沖突的系統(tǒng)和方法,該系統(tǒng)和方法能夠自動檢測感知策略規(guī)則沖突,并進(jìn)行相關(guān)對比分析,主動解決該策略沖突,實(shí)現(xiàn)網(wǎng)絡(luò)的安全有效運(yùn)行。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明的一種自動化預(yù)防和編排處理策略沖突的系統(tǒng),包括:
流量跟蹤模塊、沖突檢測模塊和沖突決議模塊;
所述流量跟蹤模塊用于采集網(wǎng)絡(luò)流量信息并建立流路徑;
所述沖突檢測模塊用于分析沖突產(chǎn)生的原因;
所述沖突決議模塊用于解決被識別的沖突。
一種自動化預(yù)防和編排處理策略沖突的方法,包括以下步驟:
1)當(dāng)一個新的業(yè)務(wù)流的首包被發(fā)送到控制器后,控制器上的安全授權(quán)模塊對數(shù)據(jù)包進(jìn)行安全規(guī)則匹配,然后在網(wǎng)絡(luò)入口交換機(jī)上允許或拒絕所述新的業(yè)務(wù)流;
2)采集網(wǎng)絡(luò)流量信息建立流路徑;
3)檢測策略沖突,并根據(jù)不同的策略沖突采用不同的處理方法:
31)對于流規(guī)則依賴導(dǎo)致的沖突,采用流標(biāo)記或者流重新路由來打破流規(guī)則依賴機(jī)制;
32)對于流策略更新導(dǎo)致的整體沖突,
以下情況選擇更新拒絕:
321)當(dāng)增加一個新的流策略,相應(yīng)的流路徑被檢測為與安全策略沖突,并且這種沖突是一個整體沖突;
322)修改一個規(guī)則引起整體沖突;
323)刪除一個規(guī)則導(dǎo)致新的整體沖突;
以下情況選擇流移除:
324)規(guī)則的改變和刪除操作是允許的,即使他導(dǎo)致了整體沖突;
33)對于安全策略更新導(dǎo)致的整體沖突,采用流移除的方式;
34)對于部分違規(guī),采用數(shù)據(jù)包阻塞。
進(jìn)一步的,所述流重新路由過程為:當(dāng)一個新的業(yè)務(wù)流到達(dá)網(wǎng)絡(luò)中,安全授權(quán)模塊(具體工作的是其中的安全授權(quán)應(yīng)用)檢測到控制器針對所述新的業(yè)務(wù)流產(chǎn)生的流路徑導(dǎo)致了一個基于規(guī)則依賴的沖突,安全授權(quán)模塊要求控制器為所述新的業(yè)務(wù)流尋找另一條路由路徑以避免這些依賴;在此過程中,安全授權(quán)模塊程序維護(hù)了一個交換機(jī)規(guī)避名單列表,包含了所有導(dǎo)致沖突的與規(guī)則依賴相關(guān)的交換機(jī);安全授權(quán)模塊程序提供所述交換機(jī)規(guī)避名單列表給控制器,然后,控制器計(jì)算一個新的路由路徑來規(guī)避所述交換機(jī)規(guī)避名單列表上的交換機(jī)。這樣的重新路由過程可能需要遞歸地執(zhí)行直到控制器找到一條不會引入沖突的路徑。
進(jìn)一步的,所述流標(biāo)記過程為:新的流策略通過添加標(biāo)簽的預(yù)處理來區(qū)分與其他策略的匹配模式;在入口交換機(jī)的策略規(guī)則通過對新的業(yè)務(wù)流(數(shù)據(jù)包)添加相同標(biāo)簽的附加動作來標(biāo)記新的業(yè)務(wù)流;當(dāng)數(shù)據(jù)包離開網(wǎng)絡(luò)時,在出口交換機(jī),策略相應(yīng)的規(guī)則將除去數(shù)據(jù)包上的標(biāo)簽。
進(jìn)一步的,所述數(shù)據(jù)包阻塞的過程為:
341)如果流是一個新流,安全授權(quán)模塊只需要在流的入口交換機(jī)阻塞所述流;
342)如果流是一個舊流,安全授權(quán)模塊需要在交換機(jī)的入口和出口都阻塞所述流(數(shù)據(jù)包)。
進(jìn)一步的,所述步驟1)中網(wǎng)絡(luò)入口交換機(jī)上拒絕有安全威脅的新的業(yè)務(wù)流,比如DDOS攻擊或者病毒等等。
目前,一些系統(tǒng)如VeriFlow、Pyretic、FortNOX都實(shí)現(xiàn)了策略沖突的檢測和解決,但是他們都有各自的局限。VeriFlow缺乏自動,有效和實(shí)時的沖突解決。Pyretic無法發(fā)現(xiàn)和解決間接的安全違規(guī)。FortNOX只能進(jìn)行兩兩沖突分析,沒有考慮流表和安全策略的規(guī)則依賴。本發(fā)明的一種自動化預(yù)防和編排處理策略沖突的系統(tǒng)和方法,能夠準(zhǔn)確地探測到由網(wǎng)絡(luò)狀態(tài)及流變化引起的安全策略或應(yīng)用策略沖突。同時,該系統(tǒng)能夠根據(jù)沖突的具體狀態(tài),例如部分規(guī)則沖突,或者全沖突進(jìn)行有效且及時的沖突解決。通過本發(fā)明的系統(tǒng)和方法,能夠主動檢測和解決策略沖突,實(shí)現(xiàn)網(wǎng)絡(luò)安全高效運(yùn)行。
附圖說明
圖1為OpenFlow技術(shù)組網(wǎng)結(jié)構(gòu)圖;
圖2為覆寫操作導(dǎo)致策略沖突的示意圖;
圖3為本發(fā)明的自動化預(yù)防和編排處理策略沖突的系統(tǒng)的框架圖;
圖4為本發(fā)明的自動化預(yù)防和編排處理策略沖突的系統(tǒng)的方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明的一種自動化預(yù)防和編排處理策略沖突的系統(tǒng)和方法作進(jìn)一步更詳細(xì)的描述。
如圖1所示,本發(fā)明的一種自動化預(yù)防和編排處理策略沖突的系統(tǒng),包括:
流量跟蹤模塊、沖突檢測模塊和沖突決議模塊;
所述流量跟蹤模塊用于:采集網(wǎng)絡(luò)流量信息并建立流路徑。
所述沖突檢測模塊用于:如果追蹤的流路徑空間與拒絕授權(quán)空間重疊,分析沖突產(chǎn)生的原因。
所述沖突決議模塊用于解決被識別的沖突。
系統(tǒng)還會及時更新流規(guī)則和網(wǎng)絡(luò)拓?fù)湫畔ⅲ员阆到y(tǒng)能夠在任何相關(guān)的交換機(jī)上重新傳播包頭對象來更新流路徑。
目前,現(xiàn)有的流策略若與安全策略發(fā)生沖突,則流策略直接在網(wǎng)絡(luò)設(shè)備上被移除。然而,這樣的解決方案有幾個缺點(diǎn)。首先,一個流策略可能只是部分違反了安全策略。在這種情況下,拒絕/移除流策略可能會影響到網(wǎng)絡(luò)服務(wù)的效用。其次,在一個流策略中的規(guī)則可能與其他的流策略規(guī)則有依賴關(guān)系。在一個有沖突的策略中刪除一個規(guī)則可能影響到其他的流策略,甚至造成新的沖突。顯然,有必要尋求一種靈活有效的沖突決議系統(tǒng)解決方案。為此,我們提出了一種全面的沖突決議機(jī)制,如圖4所示,展示了如何采用各種沖突決議機(jī)制來解決在基于OpenFlow的網(wǎng)絡(luò)中涉及到新的流量和各種流策略及安全策略的更新操作而引起的策略沖突。
如圖4所示,一種自動化預(yù)防和編排處理策略沖突的方法,包括以下步驟:
1)當(dāng)一個新的業(yè)務(wù)流的首包被發(fā)送到控制器后,控制器上的安全授權(quán)模塊對數(shù)據(jù)包進(jìn)行安全規(guī)則匹配,然后在網(wǎng)絡(luò)入口交換機(jī)上允許或拒絕所述新的業(yè)務(wù)流;沒有通過安全授權(quán)的流會經(jīng)數(shù)據(jù)包沖突處理,直接被拒絕,網(wǎng)絡(luò)入口交換機(jī)上拒絕有安全威脅的新的業(yè)務(wù)流,比如DDOS攻擊或者病毒等等;通過安全授權(quán)的流,會進(jìn)入到數(shù)據(jù)包沖突檢測模塊進(jìn)行策略沖突檢測。這種安全授權(quán)應(yīng)用程序的實(shí)現(xiàn)只能檢查新流入網(wǎng)絡(luò)的數(shù)據(jù)包的安全策略違規(guī),無法檢查流策略相對于動態(tài)網(wǎng)絡(luò)策略更新的策略沖突。因此,為支持準(zhǔn)確的違規(guī)檢測和全網(wǎng)的訪問控制,我們不僅需要在每個流的入口交換機(jī)檢查違規(guī)行為,也跟蹤流路徑,然后清楚地確定網(wǎng)絡(luò)中的每個流的原始來源和最終目的地。
當(dāng)流策略更新時,流策略沖突檢測模塊的流路徑空間分析模塊會對流進(jìn)行追蹤,感知動態(tài)數(shù)據(jù)包的修改和規(guī)則的依賴,并對流路徑空間進(jìn)行計(jì)算。當(dāng)安全策略進(jìn)行更新時,安全授權(quán)空間解耦安全策略中的允許規(guī)則和拒絕規(guī)則之間的依賴關(guān)系。將追蹤的流空間和安全拒絕授權(quán)空間進(jìn)行比對,得到整體或部分的流規(guī)則沖突。然后將沖突送至沖突決議系統(tǒng),由沖突決議系統(tǒng)對流進(jìn)行丟棄、阻塞、重傳等操作。具體來說:
2)采集網(wǎng)絡(luò)流量信息建立流路徑;
3)檢測策略沖突,并根據(jù)不同的策略沖突采用不同的處理方法:
31)當(dāng)一個新的流策略被加入到網(wǎng)絡(luò)交換機(jī)中時,這個流策略可能不會同安全策略起沖突。然而,這個新的流策略的規(guī)則可能會與其他現(xiàn)有的流策略規(guī)則重疊。由于規(guī)則的依賴可能導(dǎo)致流數(shù)據(jù)包頭產(chǎn)生意想不到的的變化,就可能會造成新的安全策略沖突。這種沖突也可能由其他的網(wǎng)絡(luò)狀態(tài)變化導(dǎo)致,例如修改流條目和更新安全規(guī)則。對于流規(guī)則依賴導(dǎo)致的沖突,采用流標(biāo)記或者流重新路由來打破流規(guī)則依賴機(jī)制;
32)對于流策略更新導(dǎo)致的整體沖突,
以下情況選擇更新拒絕:
321)當(dāng)增加一個新的流策略,相應(yīng)的流路徑被檢測為與安全策略沖突,并且這種沖突是一個整體沖突;
322)修改一個規(guī)則引起整體沖突;
323)刪除一個規(guī)則導(dǎo)致新的整體沖突,因?yàn)槠渌髁康囊恍┮?guī)則與此規(guī)則有依賴關(guān)系。
運(yùn)用更新拒絕方式,更新操作將直接被拒絕。
以下情況選擇流移除:
324) 規(guī)則的改變和刪除操作是允許的,即使他導(dǎo)致了整體沖突。
33)在安全策略中更新(添加、更改或刪除)一個規(guī)則,安全應(yīng)用程序檢查當(dāng)前網(wǎng)絡(luò)狀態(tài)應(yīng)用到更新的規(guī)則并檢測到新的整體沖突,采用流移除的方式;
使用流移除方式,與一個流路徑相關(guān)的同安全策略完全沖突的所有規(guī)則,從網(wǎng)絡(luò)交換機(jī)中移除。
34)對于部分違規(guī),采用數(shù)據(jù)包阻塞。
流重新路由過程為:當(dāng)一個新的業(yè)務(wù)流到達(dá)網(wǎng)絡(luò)中,安全授權(quán)模塊(具體工作的是其中的安全授權(quán)應(yīng)用)檢測到控制器針對所述新的業(yè)務(wù)流產(chǎn)生的流路徑導(dǎo)致了一個基于規(guī)則依賴的沖突,安全授權(quán)模塊要求控制器為所述新的業(yè)務(wù)流尋找另一條路由路徑以避免這些依賴;在此過程中,安全授權(quán)模塊程序維護(hù)了一個交換機(jī)規(guī)避名單列表,包含了所有導(dǎo)致沖突的與規(guī)則依賴相關(guān)的交換機(jī);安全授權(quán)模塊程序提供所述交換機(jī)規(guī)避名單列表給控制器,然后,控制器計(jì)算一個新的路由路徑來規(guī)避所述交換機(jī)規(guī)避名單列表上的交換機(jī)。這樣的重新路由過程可能需要遞歸地執(zhí)行直到控制器找到一條不會引入沖突的路徑。
流標(biāo)記過程為:新的流策略通過添加標(biāo)簽的預(yù)處理來區(qū)分與其他策略的匹配模式;在入口交換機(jī)的策略規(guī)則通過對新的業(yè)務(wù)流(數(shù)據(jù)包)添加相同標(biāo)簽的附加動作來標(biāo)記新的業(yè)務(wù)流;當(dāng)數(shù)據(jù)包離開網(wǎng)絡(luò)時,在出口交換機(jī),策略相應(yīng)的規(guī)則將除去數(shù)據(jù)包上的標(biāo)簽。
數(shù)據(jù)包阻塞的過程為:
341)如果流是一個新流,安全授權(quán)模塊只需要在流的入口交換機(jī)阻塞所述流;
342)如果流是一個舊流,安全授權(quán)模塊需要在交換機(jī)的入口和出口都阻塞所述流(數(shù)據(jù)包)。在這種情況下,在入口交換機(jī)阻塞數(shù)據(jù)包能夠阻止發(fā)生沖突的流的任意新的數(shù)據(jù)包 進(jìn)入網(wǎng)絡(luò),同時阻止出口交換機(jī)上的數(shù)據(jù)包能夠防止發(fā)生沖突的流的正在運(yùn)行中的數(shù)據(jù)包從網(wǎng)絡(luò)通過。
本發(fā)明具體應(yīng)用途徑很多,以上僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn),這些改進(jìn)也應(yīng)視為本發(fā)明的保護(hù)范圍。