国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于OpenFlow交換機(jī)端口混淆的移動(dòng)目標(biāo)防御機(jī)制

2020-12-25 06:08:00張昭俊
關(guān)鍵詞:端口號(hào)表項(xiàng)攻擊者

張昭俊,韓 俐

(天津理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,天津 300384)

0 引 言

近年來,新型網(wǎng)絡(luò)威脅呈現(xiàn)出全球蔓延態(tài)勢(shì),新型攻擊更隱蔽、手段更先進(jìn)、持續(xù)性更強(qiáng),要求網(wǎng)絡(luò)安防系統(tǒng)的響應(yīng)時(shí)間更短。傳統(tǒng)防護(hù)手段,如防火墻、安全網(wǎng)關(guān)、安全軟件等靜態(tài)被動(dòng)式防御手段,具有對(duì)威脅感知天然的滯后性和局限性,只有當(dāng)網(wǎng)絡(luò)攻擊已經(jīng)或正在發(fā)生才能采取防范行動(dòng),難以應(yīng)對(duì)大規(guī)模有組織、有意圖的突發(fā)性攻擊。當(dāng)前網(wǎng)絡(luò)環(huán)境中,安全防御所需的花費(fèi)與攻擊者攻破網(wǎng)絡(luò)的努力嚴(yán)重不對(duì)等。防御者需要花費(fèi)大量的資源為系統(tǒng)添加各種安全防御手段,而攻擊者只需找到系統(tǒng)中存在的某一個(gè)漏洞,就能發(fā)動(dòng)有效的攻擊,使得防御者始終處于不利地位。為應(yīng)對(duì)傳統(tǒng)網(wǎng)絡(luò)安全防護(hù)的被動(dòng)局面,移動(dòng)目標(biāo)防御(moving target defense,MTD)[1]作為一種顛覆性的安全防御理念,嘗試改變游戲規(guī)則的主動(dòng)防御機(jī)制被提出。MTD的思想是通過動(dòng)態(tài)改變基礎(chǔ)設(shè)施屬性,持續(xù)地改變攻擊面,使網(wǎng)絡(luò)配置具備隨機(jī)性和動(dòng)態(tài)性。MTD包含多種實(shí)現(xiàn)方式,其中包括對(duì)軟件多樣性的實(shí)現(xiàn)[2]、底層指令的變化[3]和網(wǎng)絡(luò)層的移動(dòng)目標(biāo)防御[4]等,能自動(dòng)地改變一個(gè)或多個(gè)系統(tǒng)屬性,從而使系統(tǒng)攻擊面對(duì)攻擊者是不可預(yù)測(cè)的。攻擊者必須調(diào)用大量的資源,分析、探測(cè)不斷變化的攻擊面來獲取有用信息,且探測(cè)和分析難度隨著時(shí)間的推移而增大。這無疑增加了攻擊者對(duì)網(wǎng)絡(luò)信息獲取的復(fù)雜度,增加攻擊者的攻擊難度和代價(jià),打破了現(xiàn)有攻防雙方信息的不對(duì)稱性,使攻防天平向防御方傾斜,讓攻擊者和防御者處于同等地位,有效提升網(wǎng)絡(luò)空間安全性。

軟件定義網(wǎng)絡(luò)(software defined network,SDN)[5]是斯坦福大學(xué)Clean slate實(shí)驗(yàn)室提出的一種新型的基于軟件定義的網(wǎng)絡(luò)架構(gòu)及技術(shù)。SDN的設(shè)計(jì)理念是將網(wǎng)絡(luò)的控制平面和數(shù)據(jù)轉(zhuǎn)發(fā)平面進(jìn)行分離,邏輯上的集中控制層面具備網(wǎng)絡(luò)全局視角,進(jìn)行資源的全局調(diào)配和優(yōu)化,提升網(wǎng)絡(luò)控制的便捷性。SDN重構(gòu)傳統(tǒng)網(wǎng)絡(luò)架構(gòu)及安全體系,可以實(shí)現(xiàn)高效網(wǎng)絡(luò)管控和資源調(diào)度,其控制與轉(zhuǎn)發(fā)平面分離、集中控制、開放可編程、流表轉(zhuǎn)發(fā)等特性,有利于提升安全防護(hù)靈活性、智能性和協(xié)同性,推動(dòng)網(wǎng)絡(luò)能力便捷調(diào)用,支持網(wǎng)絡(luò)業(yè)務(wù)創(chuàng)新,給網(wǎng)絡(luò)安全領(lǐng)域的發(fā)展帶來了新機(jī)遇。

SDN架構(gòu)雖然有很多優(yōu)點(diǎn),但其所面臨的安全性問題成為限制SDN廣泛應(yīng)用的關(guān)鍵因素,數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備只是簡(jiǎn)單的轉(zhuǎn)發(fā)元素,容易引發(fā)諸多安全問題[6-7]。在OpenFlow協(xié)議[8]中,轉(zhuǎn)發(fā)設(shè)備需要在控制平面下發(fā)流規(guī)則前進(jìn)行數(shù)據(jù)緩存,因此容易受到存儲(chǔ)器飽和攻擊。在遭受DoS攻擊時(shí),流表存儲(chǔ)空間迅速耗盡,后續(xù)數(shù)據(jù)流被丟棄,導(dǎo)致拒絕服務(wù)。對(duì)OpenFlow交換機(jī)的竊聽和篡改攻擊,非法篡改控制器下發(fā)的流規(guī)則,導(dǎo)致流規(guī)則不一致,喪失可靠性,使網(wǎng)絡(luò)不穩(wěn)定。偽交換機(jī)長(zhǎng)期存在網(wǎng)絡(luò)中,可以竊聽用戶通信數(shù)據(jù),截獲用戶口令,錯(cuò)誤或拒絕執(zhí)數(shù)據(jù)流處理規(guī)則,造成拒絕服務(wù)攻擊。

端口跳變是一種典型的移動(dòng)目標(biāo)防御技術(shù)[9],傳統(tǒng)的端口跳變技術(shù)往往是通過算法不斷地改變用戶數(shù)據(jù)報(bào)協(xié)議(user datagram protocol,UDP)/傳輸控制協(xié)議(transmission control protocol,TCP)的端口號(hào),通信雙方不斷地通過新端口建立連接,使攻擊者無法探測(cè)到網(wǎng)絡(luò)通信雙方實(shí)時(shí)有效的通信端口,導(dǎo)致攻擊失效。但是這種防御方式只能應(yīng)對(duì)針對(duì)終端主機(jī)的攻擊,對(duì)交換機(jī)的攻擊(如非法交換機(jī)的接入)不具備任何防御能力。

該文將MTD和SDN技術(shù)優(yōu)勢(shì)有機(jī)結(jié)合,提出基于OpenFlow交換機(jī)端口動(dòng)態(tài)混淆的移動(dòng)目標(biāo)防御機(jī)制,增強(qiáng)網(wǎng)絡(luò)設(shè)備配置參數(shù)的隨機(jī)性和動(dòng)態(tài)性,實(shí)現(xiàn)數(shù)據(jù)在SDN網(wǎng)絡(luò)架構(gòu)下的通信安全,增加攻擊者的實(shí)施難度,降低攻擊成功率。

1 相關(guān)工作

針對(duì)計(jì)算機(jī)網(wǎng)絡(luò)信息面臨巨大的安全威脅,端口跳變技術(shù)應(yīng)運(yùn)而生。Jajodia等[10]定義了移動(dòng)目標(biāo)防御中攻擊面的相關(guān)概念,并提出了空間隨機(jī)化、指令集隨機(jī)化、數(shù)據(jù)隨機(jī)化等多種攻擊面移動(dòng)方法。Hong等[11]總結(jié)了3種移動(dòng)目標(biāo)防御策略,包括混亂化、多樣化和冗余化。Kampanakis等[12]提出了SDN架構(gòu)下針對(duì)網(wǎng)絡(luò)映射和偵察的解決方法。該方法通過對(duì)惡意數(shù)據(jù)報(bào)文進(jìn)行檢測(cè),并對(duì)這些惡意數(shù)據(jù)報(bào)文進(jìn)行隨機(jī)化處理操作。但是該方法建立在有效識(shí)別出惡意數(shù)據(jù)報(bào)文的基礎(chǔ)之上,如果沒有識(shí)別出攻擊者的惡意數(shù)據(jù)報(bào)文,那么該方法將不會(huì)產(chǎn)生任何有效的防御效果。G.Badishi等[13]為緩解DoS攻擊,提出了隨機(jī)端口跳變(RPH)算法,其主要思想是通信雙方之間存在兩條通信鏈路,一條用于雙方的數(shù)據(jù)通信,另一條用于傳遞通知進(jìn)行端口跳變的ACK消息,此方法中用于跳變同步的ACK消息暴露在通信鏈路中,容易被攻擊者截獲和篡改,導(dǎo)致跳變不同步,造成通信中斷。Kousaburou Hari[14]通過分析ACK消息丟失或被截獲等不同情況,提出了改進(jìn)的RHP算法,在通信雙方部署兩套隨機(jī)端口跳變策略,其中一套策略遭受攻擊后,通信雙方仍能通過備用端口進(jìn)行通信。范曉詩等[15]提出了可變時(shí)隙端口跳變算法,通過在正常傳輸條件下延長(zhǎng)端口傳輸時(shí)隙,減少端口跳變?cè)斐傻耐ㄐ砰_銷,當(dāng)發(fā)現(xiàn)可疑入侵行為時(shí)則加快跳變的頻率,達(dá)到抵抗攻擊的效果。Lee等[9]為了緩解DoS/DDoS攻擊所帶來的危害,提出了一種端口跳變技術(shù),其主要思想是服務(wù)器和交換機(jī)之間共享一個(gè)秘密,保證合法數(shù)據(jù)流的服務(wù)質(zhì)量水平在可接受范圍內(nèi)的前提下,服務(wù)器通信所使用的TCP/UDP端口號(hào)隨時(shí)間和共享秘密的變化而變化。唐秀存等[16]將移動(dòng)目標(biāo)防御中的端口跳變技術(shù)應(yīng)用到SDN網(wǎng)絡(luò)中的DoS攻擊防御中,將服務(wù)端的端口跳變模塊前移到SDN控制器,SDN控制器作為DoS攻擊的過濾網(wǎng)關(guān),檢查網(wǎng)絡(luò)連接是否符合當(dāng)前時(shí)隙開放端口,控制數(shù)據(jù)流進(jìn)入網(wǎng)絡(luò),抵御DoS攻擊。胡毅勛等[17]提出了基于OpenFlow的網(wǎng)絡(luò)層移動(dòng)目標(biāo)防御方案,其主要思想是域內(nèi)通信的網(wǎng)絡(luò)流量在所經(jīng)鏈路上的每一跳交換機(jī)都進(jìn)行源和目的IP地址的改變,實(shí)現(xiàn)網(wǎng)絡(luò)地址的邏輯移動(dòng)。域間通信流量使用端口跳變,實(shí)現(xiàn)跨域通信節(jié)點(diǎn)的隱藏。

基于上述事實(shí),SDN與MTD相結(jié)合能夠有效地防御外部攻擊者對(duì)網(wǎng)絡(luò)的攻擊和破壞,但是對(duì)于SDN內(nèi)部數(shù)據(jù)轉(zhuǎn)發(fā)層的核心設(shè)備——OpenFlow交換機(jī)的安全防御卻相對(duì)較少,SDN內(nèi)部OpenFlow交換機(jī)的安全問題日益突出。該文提出的基于OpenFlow交換機(jī)端口混淆的移動(dòng)目標(biāo)防御機(jī)制,能有效防范偽交換機(jī)接入網(wǎng)絡(luò)造成的破壞。

2 端口混淆防御機(jī)制

2.1 機(jī)制設(shè)計(jì)

控制器與OpenFlow交換機(jī)初次連接時(shí)進(jìn)行端口變換值和端口變換值生存時(shí)間的初始化??刂破骱徒粨Q機(jī)建立連接時(shí),雙方在握手過程中通過系統(tǒng)預(yù)設(shè)的值對(duì)端口變換值及端口變換值生存時(shí)間進(jìn)行初始化,同時(shí)將真實(shí)端口號(hào)和變換后的端口號(hào)及其生存時(shí)間存儲(chǔ)在端口變換表中,端口變換表結(jié)構(gòu)如表1所示,以保證控制器和交換機(jī)進(jìn)行端口混淆的同步性和數(shù)據(jù)轉(zhuǎn)發(fā)端口的一致性。

端口變換表主要包含4部分:交換機(jī)ID(dpid)、真實(shí)端口號(hào)(port)、端口變換值(tport)和端口變換值生存時(shí)間(pst)。交換機(jī)真實(shí)端口號(hào)是交換機(jī)創(chuàng)建時(shí)系統(tǒng)默認(rèn)端口號(hào),端口變換值是通過端口混淆算法生成的混淆端口值,用于在流表項(xiàng)中顯示的output端口號(hào)。端口變換值生存時(shí)間是當(dāng)前生成的端口變換值的存在時(shí)間,決定是否對(duì)當(dāng)前端口變換值進(jìn)行新一輪混淆。

控制器每次處理Packet_in消息進(jìn)行規(guī)則生成時(shí),根據(jù)正確的數(shù)據(jù)轉(zhuǎn)發(fā)端口在端口變換表中查找對(duì)應(yīng)的端口變換值,隨后生成相應(yīng)的流規(guī)則,下發(fā)到交換機(jī)。同時(shí),相應(yīng)端口號(hào)的生存時(shí)間衰減。OpenFlow交換機(jī)端接收到控制器下發(fā)的流規(guī)則后,根據(jù)流規(guī)則中的變換端口號(hào)在端口變換表查找到對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)發(fā)端口,并執(zhí)行流規(guī)則進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)處理,同時(shí)將端口的生存時(shí)間衰減。當(dāng)控制器和交換機(jī)端口的生存時(shí)間為零,則依據(jù)剛處理的數(shù)據(jù)報(bào)文中的相應(yīng)信息,調(diào)用端口混淆算法生成新的端口變換值并存儲(chǔ)在端口變換表中,端口變換值的生存時(shí)間也一并更新。隨后對(duì)端口混淆前相應(yīng)流規(guī)則進(jìn)行刪除,確保數(shù)據(jù)流能根據(jù)混淆后的端口信息進(jìn)行正確轉(zhuǎn)發(fā),保證網(wǎng)絡(luò)通信正常??刂破鞫撕徒粨Q機(jī)端處理流程如下所示。

控制器端處理流程:

(1)接收到Packet_in消息。

(2)查找端口變換表,根據(jù)正確轉(zhuǎn)發(fā)端口確定變換端口。

(3)端口生存時(shí)間衰減,判斷其是否為零,不為零跳轉(zhuǎn)到步驟(7)。

(4)提取數(shù)據(jù)流信息,流規(guī)則生成并設(shè)置超時(shí)時(shí)間,通過flow_mod消息下發(fā)到交換機(jī)。

(5)調(diào)用2.3節(jié)端口混淆算法生成新的端口變換值。

(6)更新端口變換表,跳轉(zhuǎn)到步驟(8)。

(7)流規(guī)則生成并通過flow_mod消息下發(fā)到交換機(jī)。

(8)結(jié)束。

交換機(jī)端處理流程:

(1)接收到控制器下發(fā)的flow_mod消息。

(2)端口變換表中查找相應(yīng)的端口號(hào)。

(3)根據(jù)查找到的端口號(hào)執(zhí)行相應(yīng)的流規(guī)則,端口生存時(shí)間衰減。

(4)判斷端口生存時(shí)間是否為零,不為零則跳轉(zhuǎn)到步驟(9)。

(5)提取數(shù)據(jù)流緩存信息,調(diào)用2.3節(jié)端口混淆算法生成新的端口變換值。

(6)更新端口變換表。

(7)刪除過期流表項(xiàng)。

(8)流規(guī)則超時(shí)刪除對(duì)應(yīng)流表項(xiàng)。

(9)結(jié)束。

2.2 基于flow_mod消息的同步方式

端口混淆對(duì)控制器和交換機(jī)之間混淆同步性要求較高,控制器和交換機(jī)之間必須使用相同的混淆算法和混淆規(guī)律,以及在進(jìn)行混淆時(shí)使用的種子信息,從而保證網(wǎng)絡(luò)通信正常。否則很容易造成控制器下發(fā)的流規(guī)則失效,網(wǎng)絡(luò)通信中斷。

傳統(tǒng)的端口跳變技術(shù)中主要有嚴(yán)格的時(shí)間同步機(jī)制[9]、ACK報(bào)文同步機(jī)制[12]和使用基于時(shí)間戳的同步方式[18]。嚴(yán)格的時(shí)間同步機(jī)制在網(wǎng)絡(luò)擁塞狀態(tài)和高時(shí)延狀態(tài)下將失去作用,導(dǎo)致跳變不同步,網(wǎng)絡(luò)通信異常。ACK報(bào)文同步機(jī)制將同步信息封裝在ACK報(bào)文中,ACK報(bào)文易丟失或被攻擊者截獲。Zhang等[19]提出了基于端口跳變的SDN環(huán)境中DoS緩解機(jī)制(PHS-DM),利用時(shí)間戳反饋機(jī)制實(shí)現(xiàn)端口的同步跳變,但此方法部署難度大,實(shí)現(xiàn)復(fù)雜。

該文提出的端口混淆機(jī)制中控制器和交換機(jī)之間的同步既沒有使用嚴(yán)格的時(shí)間同步機(jī)制,也沒使用ACK報(bào)文同步機(jī)制,而是采用控制器下發(fā)給交換機(jī)的流規(guī)則消息flow_mod消息的數(shù)量實(shí)現(xiàn)同步問題。

在控制器與交換機(jī)在建立連接過程時(shí),雙方通過系統(tǒng)內(nèi)置的默認(rèn)值對(duì)相應(yīng)的端口變換值生存時(shí)間進(jìn)行初始化??刂破鬟M(jìn)行流規(guī)則生成時(shí),根據(jù)數(shù)據(jù)轉(zhuǎn)發(fā)時(shí)交換機(jī)的真實(shí)端口號(hào)查詢端口變換表中的變換端口號(hào),隨后將此端口變換值生存時(shí)間減一,并檢查是否為零,如果為零,提取數(shù)據(jù)包中相關(guān)信息,將生成的含有變換端口號(hào)的流規(guī)則通過flow_mod消息下發(fā)到對(duì)應(yīng)的交換機(jī),調(diào)用端口混淆算法,生成新的端口變換值,更新端口變換表中的端口變換值及其生存時(shí)間。交換機(jī)接收到控制器下發(fā)的包含流規(guī)則的flow_mod消息后,根據(jù)流規(guī)則中的端口號(hào)查找端口變換表,得到真實(shí)的端口號(hào),并根據(jù)端口號(hào)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),隨后將端口的生存時(shí)間減一,判斷是否為零,如果為零則根據(jù)交換機(jī)內(nèi)緩存的數(shù)據(jù)流信息提取端口混淆算法中的種子信息,進(jìn)行端口混淆,更新端口變換表中的端口變換值和生存時(shí)間。

該文提出的利用交換機(jī)和控制器之間的flow_mod消息實(shí)現(xiàn)雙方端口混淆同步方法,省卻了雙方的同步開銷。通信信道內(nèi)只有控制器與交換機(jī)間的控制消息,沒有其他的數(shù)據(jù)流干擾,有效降低了flow_mod消息的丟失率。此外,部署與實(shí)施更加方便靈活。

2.3 端口混淆算法

控制器和交換機(jī)根據(jù)進(jìn)入數(shù)據(jù)流信息生成端口變換值Portupdate。Portupdate=f(IPseed,Portold,Portseed),其中f是偽隨機(jī)數(shù)生成算法。Portseed為以數(shù)據(jù)報(bào)文中源、目的端口號(hào)等信息所生成的端口種子,IPseed為從數(shù)據(jù)報(bào)文中提取出的源、目的IP地址等信息所生成的地址種子。其流程圖如圖1所示。

圖1 端口混淆算法流程

對(duì)于數(shù)據(jù)報(bào)文中源IP地址為IPsrc=192.168.1.X,目的IP地址為IPdst=192.168.2.Y的端口變換過程如下:

(1)計(jì)算端口種子Portseed,如式(1)所示,其中Portold為上一次端口變換后的通信端口,Portsrc為此次端口變換的數(shù)據(jù)報(bào)文中的源端口號(hào),Portdst為此次端口變換的數(shù)據(jù)報(bào)文中的目的端口號(hào)。

Portseed=Portold(Portsrc+Portdst)mod65536

(1)

傳統(tǒng)的端口跳變技術(shù)中65 536個(gè)可能端口中有1 024個(gè)標(biāo)準(zhǔn)端口被占用[20],而交換機(jī)端口混淆中不存在這種現(xiàn)象,在端口混淆中的可用端口個(gè)數(shù)為65 536個(gè)。

(2)計(jì)算IP地址種子IPseed,如式(2)所示。

IPseed=(X+Y)(Portsrc+Portdst)mod256

(2)

(3)根據(jù)以上計(jì)算的端口種子Portseed和IP種子IPseed計(jì)算得出端口變換值Portupdate,如式(3)所示。

Portupdate=(IPseed×Portold+Portseed)mod65536

(3)

(4)端口變換值的檢測(cè)。檢測(cè)新生成的端口變換值是否已經(jīng)被其他策略使用,如已被使用,則將此端口號(hào)作為Portold,重新調(diào)用端口混淆算法進(jìn)行新的端口號(hào)的生成,直到不再重復(fù)為止。

端口混淆算法充分利用網(wǎng)絡(luò)中通信雙方的數(shù)據(jù)報(bào)文中源、目的IP地址和端口號(hào)等信息作為端口混淆的種子信息,交換機(jī)每次進(jìn)行端口混淆時(shí)種子信息是不確定的,混淆后端口是隨機(jī)的,網(wǎng)絡(luò)配置信息動(dòng)態(tài)化、隨機(jī)化變化。

2.4 防御能力分析

偽交換機(jī)非法接入網(wǎng)絡(luò),控制器向交換機(jī)下發(fā)流表項(xiàng)時(shí),流表項(xiàng)中包含的動(dòng)作端口號(hào)是經(jīng)過混淆算法計(jì)算出來的,偽交換機(jī)中不存在端口變換表和端口混淆算法,無法解析出正確的端口進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),攻擊者必須在端口生存時(shí)間內(nèi)計(jì)算出正確的端口號(hào)并進(jìn)行轉(zhuǎn)發(fā)才能長(zhǎng)期潛伏在網(wǎng)絡(luò)中造成更大的破壞。假設(shè)攻擊者的計(jì)算能力為Sc,n為端口混淆時(shí)所有可用端口數(shù)量,端口生存時(shí)間為t,待處理數(shù)據(jù)流數(shù)為m,攻擊者計(jì)算出真實(shí)端口的成功率R,則:

(4)

從式(4)中可以看出,端口的生存時(shí)間越短,當(dāng)前網(wǎng)絡(luò)中待處理的數(shù)據(jù)流越多,攻擊者計(jì)算出真實(shí)端口號(hào)的成功率越低。

假設(shè)攻擊者分析第i個(gè)端口時(shí)的計(jì)算開銷為Scali,單個(gè)端口的計(jì)算開銷為Scal,如果端口混淆算法計(jì)算所生成的端口號(hào)與交換機(jī)的真實(shí)端口號(hào)對(duì)應(yīng)是順序遞增的,則攻擊者的計(jì)算開銷最小為:

(5)

如果通過端口混淆算法生成的端口號(hào)對(duì)應(yīng)的交換機(jī)的真實(shí)端口號(hào)是逆序的,則此時(shí)攻擊者的計(jì)算開銷最大為:

(6)

綜合式(5)、式(6)可知,攻擊者的總體開銷Ssum為O(n)≤Ssum≤O(n2)。

從系統(tǒng)安全性考慮,可以適當(dāng)減小端口變換值的生存時(shí)間,加快端口變換速率,增強(qiáng)系統(tǒng)防御能力。此外,交換機(jī)動(dòng)態(tài)進(jìn)行端口混淆,在不同的時(shí)間內(nèi)其轉(zhuǎn)發(fā)端口也是不同的,攻擊者很難確定下次數(shù)據(jù)轉(zhuǎn)發(fā)的端口號(hào),攻擊者需要不停地計(jì)算轉(zhuǎn)發(fā)端口,消耗大量資源,降低了攻擊成功率。

3 仿真實(shí)驗(yàn)

3.1 算法性能測(cè)試

使用MATLAB Performance Test測(cè)試框架對(duì)2.3節(jié)提出的端口混淆算法運(yùn)行時(shí)間性能進(jìn)行測(cè)試,解析基于類的測(cè)試得到的原始數(shù)據(jù),對(duì)每一次算法運(yùn)行時(shí)間繪制折線圖,如圖2所示。

圖2 算法運(yùn)行時(shí)間測(cè)試

MATLAB通過測(cè)量數(shù)據(jù)集是否達(dá)到統(tǒng)計(jì)目標(biāo)決定運(yùn)行次數(shù),從圖2的結(jié)果中可以看出,一共對(duì)算法進(jìn)行了8次性能測(cè)試。其中前4次測(cè)試結(jié)果是預(yù)備代碼[21],后4次測(cè)試結(jié)果是對(duì)代碼的正式測(cè)試。對(duì)測(cè)試結(jié)果進(jìn)行3階擬合,可以明顯看出正式測(cè)試與預(yù)備代碼在運(yùn)行時(shí)間上有著不同的分布,預(yù)備代碼測(cè)試時(shí)間明顯高于正式測(cè)試,隨著預(yù)備代碼,算法運(yùn)行時(shí)間變短,正式測(cè)試代碼運(yùn)行時(shí)間趨于平緩。為避免代碼在運(yùn)行過程中的編譯和優(yōu)化對(duì)代碼測(cè)試性能造成影響,剔除預(yù)備代碼測(cè)試結(jié)果,對(duì)正式測(cè)試結(jié)果求均值得到統(tǒng)計(jì)意義上的結(jié)果,如圖3所示??梢钥闯龃a運(yùn)行時(shí)間極短,端口混淆不會(huì)增加過多的數(shù)據(jù)處理時(shí)延,能有效滿足當(dāng)前數(shù)據(jù)傳輸?shù)男枰?/p>

圖3 算法運(yùn)行平均時(shí)間

3.2 防御機(jī)制有效性測(cè)試

為了測(cè)試端口混淆主動(dòng)防御機(jī)制的有效性,該文使用Mininet網(wǎng)絡(luò)模擬器[22]模擬并搭建簡(jiǎn)易SDN網(wǎng)絡(luò)測(cè)試網(wǎng)絡(luò)環(huán)境,采用Ryu[23]作為SDN控制器。網(wǎng)絡(luò)拓?fù)錇閮膳_(tái)主機(jī)h1、h2連接到同一臺(tái)OpenFlow交換機(jī),主機(jī)h1和h2進(jìn)行通信。通過Mininet模擬器模擬實(shí)驗(yàn)網(wǎng)絡(luò)環(huán)境,交換機(jī)初始化時(shí)默認(rèn)使用的端口號(hào)為1和2,主機(jī)h1與h2通信,主機(jī)間能正常通信,查看交換機(jī)中流表,其結(jié)果如圖4所示。

圖4 交換機(jī)流表項(xiàng)

從圖4中可以看出交換機(jī)s1中存在3條流表項(xiàng),最后一條流表項(xiàng)為漏表項(xiàng),用于將沒有匹配到流表項(xiàng)的數(shù)據(jù)報(bào)文通過Packet_in消息上傳到控制器,由控制器決定轉(zhuǎn)發(fā)策略。前兩條流表項(xiàng)為處理主機(jī)h1與h2通信的流規(guī)則,從中可以看出兩條流表項(xiàng)中動(dòng)作output的端口號(hào)均不是1或2,而是交換機(jī)中并不存在的端口號(hào),兩條流表項(xiàng)均正確匹配并轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文,兩主機(jī)正常通信。

偽交換機(jī)加入網(wǎng)絡(luò)后,主機(jī)h1和h2通過偽交換機(jī)進(jìn)行通信,圖5顯示的是偽交換機(jī)中的流表項(xiàng)。偽交換機(jī)中只有兩條流表項(xiàng),第二條為漏表項(xiàng),第一條是針對(duì)主機(jī)h2發(fā)往主機(jī)h1的應(yīng)答包的流處理規(guī)則,偽交換機(jī)不能正確解析出actions中的端口號(hào),不能進(jìn)行正確的轉(zhuǎn)發(fā),從而防止偽交換機(jī)對(duì)網(wǎng)絡(luò)的破壞。

圖5 偽交換機(jī)流表項(xiàng)

從以上實(shí)驗(yàn)結(jié)果可以看出,沒有端口混淆防御機(jī)制的偽交換機(jī)不能正確解析出控制器下發(fā)的含有混淆端口號(hào)的流規(guī)則,無法根據(jù)流表項(xiàng)中的端口號(hào)獲取網(wǎng)絡(luò)拓?fù)?,即使攻擊者?gòu)造出流表項(xiàng)將所有通過偽交換機(jī)的流量發(fā)往某特定一鏈路或主機(jī)進(jìn)行DOS攻擊,由于無法獲取網(wǎng)絡(luò)拓?fù)湎嚓P(guān)信息不能進(jìn)行有效的網(wǎng)絡(luò)攻擊。而部署端口混淆防御機(jī)制的交換機(jī)能正確解析出流表項(xiàng)中的端口號(hào)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),網(wǎng)絡(luò)通信正常。

4 結(jié)束語

針對(duì)軟件定義網(wǎng)絡(luò)中所面臨的偽交換機(jī)安全問題,提出了通過動(dòng)態(tài)混淆交換機(jī)端口號(hào)的方法實(shí)現(xiàn)移動(dòng)目標(biāo)防御的機(jī)制,該機(jī)制充分利用數(shù)據(jù)報(bào)文內(nèi)IP地址和端口號(hào)信息作為端口混淆種子信息,使交換機(jī)進(jìn)行端口混淆時(shí)具有充分的隨機(jī)性。交換機(jī)和控制器間通過流規(guī)則下發(fā)次數(shù)實(shí)現(xiàn)端口混淆同步,不需要嚴(yán)格的時(shí)間同步,也不需要發(fā)送額外的同步報(bào)文,進(jìn)一步增強(qiáng)了防御機(jī)制的安全性,增加了攻擊者獲取網(wǎng)絡(luò)信息的難度,能有效地防范非法交換機(jī)對(duì)網(wǎng)絡(luò)的攻擊。

猜你喜歡
端口號(hào)表項(xiàng)攻擊者
一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
基于微分博弈的追逃問題最優(yōu)策略設(shè)計(jì)
基于ARMA模型預(yù)測(cè)的交換機(jī)流表更新算法
在Docker容器中安裝應(yīng)用程序
正面迎接批判
愛你(2018年16期)2018-06-21 03:28:44
SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
淺談以java為基礎(chǔ)的Socket通信簡(jiǎn)介及實(shí)現(xiàn)
青春歲月(2017年5期)2017-04-20 18:34:23
有限次重復(fù)博弈下的網(wǎng)絡(luò)攻擊行為研究
Winsock編程在《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》教學(xué)中的應(yīng)用
基于Android系統(tǒng)的互動(dòng)展示APP的研究與設(shè)計(jì)
奎屯市| 宝丰县| 巨鹿县| 西盟| 固安县| 塘沽区| 五河县| 普兰县| 宁波市| 东阿县| 民和| 南城县| 景宁| 肇源县| 永泰县| 永兴县| 吴川市| 博湖县| 昆山市| 冀州市| 五家渠市| 晋宁县| 卢龙县| 平安县| 隆回县| 濮阳市| 成武县| 黔西| 凤山县| 新昌县| 红河县| 奉化市| 加查县| 黎川县| 水城县| 尚义县| 奎屯市| 张家港市| 绥滨县| 达拉特旗| 文化|