徐雅斌,賈珊珊(北京信息科技大學(xué)網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點(diǎn)實(shí)驗(yàn)室,北京100101)(北京信息科技大學(xué)計(jì)算機(jī)學(xué)院,北京100101)
E-mail:xyb@bistu.edu.cn
軟件定義網(wǎng)絡(luò)(Software Defined Networking,SDN)目前已在數(shù)據(jù)中心網(wǎng)絡(luò)[1,2]、網(wǎng)絡(luò)虛擬化[3]、云計(jì)算[4]、流媒體[5]等領(lǐng)域得到廣泛的應(yīng)用.它是一種將傳統(tǒng)封閉的網(wǎng)絡(luò)體系解耦為數(shù)據(jù)平面、控制平面和應(yīng)用平面,在邏輯上實(shí)現(xiàn)網(wǎng)絡(luò)集中控制的新型網(wǎng)絡(luò)架構(gòu).其數(shù)據(jù)平面主要由SDN交換機(jī)組成,實(shí)現(xiàn)的主要功能是處理傳入網(wǎng)絡(luò)的數(shù)據(jù)包;控制器組成了控制平面,實(shí)現(xiàn)的主要功能是維護(hù)網(wǎng)絡(luò)的拓?fù)湫畔⒑徒粨Q機(jī)的狀態(tài)信息等,并且在兩層之間采用開(kāi)放的統(tǒng)一接口(如:Openflow協(xié)議)進(jìn)行交互;應(yīng)用平面包括各種不同的業(yè)務(wù)和應(yīng)用,為網(wǎng)絡(luò)管理應(yīng)用程序提供開(kāi)放的接口.
這種開(kāi)放的、集中式的、可編程的體系結(jié)構(gòu)不僅同樣面臨安全威脅,而且更容易遭受攻擊.如攻擊者通過(guò)南向接口或北向接口進(jìn)入控制器后,通過(guò)修改流表的方式就可以控制整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)轉(zhuǎn)發(fā);也可以通過(guò)SDN交換機(jī)向控制器發(fā)送大量虛假請(qǐng)求包而發(fā)起分布式拒絕服務(wù)DDOS(Distributed Denial of Service)攻擊,從而使整個(gè)網(wǎng)絡(luò)陷入癱瘓,等等.
傳統(tǒng)的網(wǎng)絡(luò)攻擊檢測(cè)工具往往針對(duì)性很強(qiáng)、但功能單一,為此需要我們?cè)诰W(wǎng)絡(luò)中安裝和部署多種這樣的工具,如DDOS攻擊檢測(cè)工具、ARP(Address Resolution Protocol)欺騙攻擊檢測(cè)工具等,這樣必將嚴(yán)重耗費(fèi)系統(tǒng)資源,并影響網(wǎng)絡(luò)性能,甚至還時(shí)常出現(xiàn)相互沖突的情況.而且在發(fā)生APT(Advanced Persistent Threat,高級(jí)可持續(xù)性威脅)等潛伏在內(nèi)部的復(fù)雜攻擊時(shí),往往無(wú)能為力,更無(wú)法全面反映整個(gè)網(wǎng)絡(luò)的安全狀態(tài).目前,在傳統(tǒng)網(wǎng)絡(luò)領(lǐng)域,已經(jīng)有研究專(zhuān)門(mén)針對(duì)其安全要是感知,但是針對(duì)SDN,目前尚缺少這方面的研究,更沒(méi)有相應(yīng)的產(chǎn)品.因此,非常有必要研究和設(shè)計(jì)一種針對(duì)SDN網(wǎng)絡(luò)的安全態(tài)勢(shì)進(jìn)行感知的方法,綜合SDN中數(shù)據(jù)平面、控制平面和應(yīng)用平面的各種不安全因素,從不同角度對(duì)SDN網(wǎng)絡(luò)面臨的攻擊和威脅進(jìn)行有效的評(píng)估,從而一方面從整體上提高SDN的攻擊檢測(cè)能力,另一方面,使網(wǎng)絡(luò)具有綜合的安全感知能力,有效識(shí)別SDN面臨的風(fēng)險(xiǎn),為SDN提供安全保障,推動(dòng)SDN網(wǎng)絡(luò)向前發(fā)展和獲得更廣泛的應(yīng)用.
網(wǎng)絡(luò)中的一些安全設(shè)備只針對(duì)網(wǎng)絡(luò)中單一方面的安全,不能實(shí)時(shí)反映網(wǎng)絡(luò)的整體安全狀態(tài),網(wǎng)絡(luò)安全態(tài)勢(shì)感知針對(duì)這一缺點(diǎn),通過(guò)獲取大量的網(wǎng)絡(luò)信息,然后進(jìn)行綜合判斷,從而實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)中可能的攻擊行為,提高網(wǎng)絡(luò)的安全性.但是,目前針對(duì)SDN的網(wǎng)絡(luò)安全態(tài)勢(shì)感知的研究還非常少,而且主要集中在分析特定的網(wǎng)絡(luò)攻擊行為.但是傳統(tǒng)網(wǎng)絡(luò)中的攻擊檢測(cè)指標(biāo)和方法對(duì)SDN的安全態(tài)勢(shì)感知具有一定的借鑒和參考意義.下面將對(duì)傳統(tǒng)網(wǎng)絡(luò)和SDN有關(guān)的攻擊檢測(cè)指標(biāo)和方法進(jìn)行介紹.
交換機(jī)在傳統(tǒng)網(wǎng)絡(luò)中經(jīng)常遭受不同類(lèi)型的攻擊,如DDoS 攻擊[7]、ARP 攻擊[8]等.對(duì)于 DDOS 攻擊,文獻(xiàn)[9,10]分別提出了輕量級(jí)的DDoS攻擊檢測(cè)方法以及DDoS攻擊檢測(cè)的六元組,包括:流平均包數(shù)、流平均字節(jié)數(shù)、流平均持續(xù)時(shí)間、配對(duì)流的百分比、單流增長(zhǎng)率、不同端口增長(zhǎng)率;Niyaz Quamar等人[10]開(kāi)發(fā)了基于深度學(xué)習(xí)的多向量DDoS檢測(cè)系統(tǒng),使用自動(dòng)編碼器從DDoS攻擊中提取TCP、UDP和ICMP協(xié)議的68個(gè)特征.對(duì)于交換機(jī)攻擊,文獻(xiàn)[11]分析了交換機(jī)被攻擊后的危害,如修改流表、劫持控制信道、重新配置不同控制器、竊聽(tīng)控制平面通信、欺騙拓?fù)涞?對(duì)于ARP攻擊,文獻(xiàn)[12]提出了一種基于貝葉斯的ARP攻擊檢測(cè)算法來(lái)計(jì)算某主機(jī)成為被攻擊者的概率.
但是由于SDN交換機(jī)不同于傳統(tǒng)的交換機(jī),不再具有獨(dú)立的控制功能,只是被動(dòng)的接受控制器下發(fā)的流表,并據(jù)此進(jìn)行轉(zhuǎn)發(fā).因此,針對(duì)傳統(tǒng)交換機(jī)的某些攻擊將轉(zhuǎn)換為針對(duì)控制器的攻擊.
控制器是SDN中最核心和最重要的部分,攻擊者若能夠攻破控制器,就可對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行全面控制.一方面攻擊者可以使用應(yīng)用平面或控制器本身的漏洞對(duì)控制器進(jìn)行非法控制.另一方面,攻擊者還可以利用交換機(jī)或OpenFlow協(xié)議的漏洞發(fā)動(dòng)拒絕服務(wù)攻擊.為保證控制器正常工作,菲利浦等人[13]在Floodlight控制器中增加了安全應(yīng)用管理功能,包括認(rèn)證服務(wù)、基于角色的授權(quán),流規(guī)則沖突解決和安全審計(jì)服務(wù).文獻(xiàn)[14]提出了一種控制器上的緩解機(jī)制來(lái)控制資源分配和防御由資源消耗引起的DoS/DDoS攻擊.另外,在控制器上進(jìn)行訪問(wèn)控制[15-17]也有助于提高控制平面的安全性.
由于SDN是通過(guò)北向接口對(duì)用戶完全開(kāi)放的,SDN的開(kāi)放性會(huì)帶來(lái)很大的安全問(wèn)題,如通過(guò)安裝惡意應(yīng)用,攻擊者就會(huì)利用開(kāi)放的接口實(shí)施對(duì)控制器的攻擊;同時(shí)也存在不同用戶的應(yīng)用產(chǎn)生沖突、網(wǎng)絡(luò)面臨整體不一致的問(wèn)題.文獻(xiàn)[17]通過(guò)在控制器上部署訪問(wèn)控制模式來(lái)限制網(wǎng)絡(luò)用戶和應(yīng)用程序?qū)W(wǎng)絡(luò)組件的訪問(wèn).文獻(xiàn)[19]提出一種SDN控制器規(guī)則沖突解決方案,通過(guò)在控制器中添加端到端路徑的控制器規(guī)則沖突發(fā)現(xiàn)機(jī)制,從而解決控制器的規(guī)則沖突問(wèn)題.
針對(duì)以上不同平面的攻擊行為,文獻(xiàn)[20]提出基于貝葉斯的SDN網(wǎng)絡(luò)安全態(tài)勢(shì)評(píng)估方法.首先控制器對(duì)數(shù)據(jù)平面的網(wǎng)絡(luò)信息進(jìn)行快速直接的收集,然后利用貝葉斯理論對(duì)信息進(jìn)行量化得出各類(lèi)攻擊的信任值,并由此計(jì)算出網(wǎng)絡(luò)的安全態(tài)勢(shì);文獻(xiàn)[21]提出基于 HMM(Hidden Markov Model,HMM)的安全態(tài)勢(shì)評(píng)估方法.該方法基于控制平面和數(shù)據(jù)平面出現(xiàn)的網(wǎng)絡(luò)掃描攻擊、OpenFlow泛洪攻擊、交換機(jī)入侵攻擊和ARP攻擊的特點(diǎn),利用隱馬爾可夫模型來(lái)量化網(wǎng)絡(luò)狀態(tài)并得到安全態(tài)勢(shì)評(píng)估值.
從以上文獻(xiàn)可以看出,現(xiàn)有的面向SDN的網(wǎng)絡(luò)安全態(tài)勢(shì)評(píng)估方法在提取態(tài)勢(shì)指標(biāo)時(shí)存在提取不全面的問(wèn)題,多數(shù)僅集中在某一平面上.并且評(píng)估模型在一定程度上不具有自學(xué)習(xí)能力,初始值依賴專(zhuān)家經(jīng)驗(yàn),造成評(píng)估準(zhǔn)確性較低,難以有效分析態(tài)勢(shì)指標(biāo)對(duì)網(wǎng)絡(luò)運(yùn)行狀態(tài)的影響.
鑒此,本文提出了一種基于優(yōu)化的 RBF神經(jīng)網(wǎng)絡(luò)的SDN網(wǎng)絡(luò)安全態(tài)勢(shì)感知方法.首先,從SDN的不同層面提取攻擊行為的典型特征,彌補(bǔ)了安全態(tài)勢(shì)指標(biāo)提取不全面的問(wèn)題.然后,在態(tài)勢(shì)指標(biāo)提取基礎(chǔ)上建立具有較高的學(xué)習(xí)速度和函數(shù)逼近能力的優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)態(tài)勢(shì)感知過(guò)程中有監(jiān)督的學(xué)習(xí).
網(wǎng)絡(luò)安全態(tài)勢(shì)指標(biāo)提取是網(wǎng)絡(luò)態(tài)勢(shì)感知的前提.控制器作為網(wǎng)絡(luò)的控制中心,已為整個(gè)網(wǎng)絡(luò)建立了全局視圖,能夠?qū)崟r(shí)獲取全網(wǎng)的各種狀態(tài)信息.因此,相較于傳統(tǒng)網(wǎng)絡(luò)來(lái)說(shuō),部分安全態(tài)勢(shì)指標(biāo)信息可以從控制器中直接獲取,提取更加快捷、便利.本文依據(jù)SDN架構(gòu),分別從數(shù)據(jù)平面、控制層面、應(yīng)用層面提取可能會(huì)發(fā)生的攻擊的特征來(lái)量化網(wǎng)絡(luò)安全態(tài)勢(shì)值.
3.1.1 端口掃描
端口掃描是攻擊者找到他們感興趣的目標(biāo)并實(shí)施進(jìn)一步攻擊的基礎(chǔ).主要目的是為了收集、歸納與攻擊目標(biāo)相關(guān)的資源,針對(duì)發(fā)現(xiàn)的漏洞和信息等準(zhǔn)備惡意軟件或木馬等其他滲透工具,為進(jìn)一步實(shí)施入侵做好準(zhǔn)備,因此提取SDN交換機(jī)流表中的端口掃描特征是態(tài)勢(shì)感知中不可缺少的一部分.
針對(duì)SDN交換機(jī)的流表端口掃描,可提取的特征如下:
1)目的端口數(shù)目:發(fā)動(dòng)端口掃描的攻擊者通常從一個(gè)源IP地址發(fā)送數(shù)據(jù)包到不同的目的端口.因此,當(dāng)遭受端口掃描攻擊時(shí),不同目的端口數(shù)迅速增加,但是大多數(shù)端口不可用.目的端口數(shù)目可通過(guò)公式(1)進(jìn)行計(jì)算:
a=count({obj.dst_port!=ref.dst_port AND obj.dst_addr=ref.network_addr}) (1)
其中,obj是全局流集合{f}中的任意一條流,ref是{f}中任意一條參考流.
2)失敗連接比例:因?yàn)楣粽邔l(fā)送大量的流來(lái)檢查端口的狀態(tài),所以大多數(shù)流將無(wú)法成功地建立連接.不成功的連接流的比例可以通過(guò)公式(2)進(jìn)行計(jì)算:
u=count(obj.dst_addr=ref.dst_addr AND((obj.pkg_count < 3 AND obj.protocol=TCP)or obj.pkg_count < 2 AND obj.protocol=UDP)))/count(obj.dst_addr=ref.network_addr) (2)
3.1.2 交換機(jī)DDoS攻擊
DDoS攻擊主要是指攻擊者通過(guò)大量傀儡主機(jī)消耗SDN控制器的計(jì)算資源,阻止為合法用戶提供服務(wù).對(duì)與SDN網(wǎng)絡(luò)來(lái)說(shuō),由于SDN交換機(jī)對(duì)控制器下發(fā)的規(guī)則是完全信任的,因而攻擊者可以通過(guò)使控制器持續(xù)產(chǎn)生大量的Packet_out/Fow_mod消息,填滿交換機(jī)的流表,最終導(dǎo)致合法的流量被拋棄.
基于流量統(tǒng)計(jì)特征來(lái)檢測(cè)DDoS攻擊是SDN中常用的方法.因此,我們參照Braga等人[8]總結(jié)的DDoS攻擊六元組作為DDoS攻擊的特征,DDoS攻擊六元組如下:
流平均包數(shù)(APf):對(duì)每個(gè)流的數(shù)據(jù)包數(shù)順序排列后取中位數(shù),其中X表示流的包數(shù),n表示流的數(shù)目.
流平均字節(jié)數(shù)(ABf):對(duì)每個(gè)流的字節(jié)數(shù)順序排列后取中位數(shù),計(jì)算公式等同公式(3),其中X表示流的字節(jié)數(shù),n表示流的數(shù)目.
流平均持續(xù)時(shí)間(ADf):同樣的對(duì)每道流的持續(xù)時(shí)間排列后取中位數(shù),計(jì)算公式同公式(3).
配對(duì)流的百分比(PPf):計(jì)算具有相同通信協(xié)議,且源IP、目的IP地址具有交互性的配對(duì)流的比例.Num_Pair_flows表示配對(duì)流的數(shù)目,Num_flows表示流的總數(shù).計(jì)算方法如下:
單流的增長(zhǎng)率(GSf):在統(tǒng)計(jì)時(shí)間窗口W內(nèi),源IP地址、目的IP地址沒(méi)有交互性的單流增長(zhǎng)率.
不同端口增長(zhǎng)率(GDp):在統(tǒng)計(jì)時(shí)間窗口W內(nèi),交換機(jī)不同端口增長(zhǎng)率.
其中,Num_ports表示交換機(jī)不同端口數(shù)目.
3.2.1 控制器 DDoS攻擊
在新的流到達(dá)交換機(jī)之后,若交換機(jī)上沒(méi)有與之匹配的流表項(xiàng),則交換機(jī)通過(guò)PACK_IN消息將數(shù)據(jù)包轉(zhuǎn)發(fā)給控制器處理;若匹配任一條流表項(xiàng),則根據(jù)actions字段中的動(dòng)作對(duì)包進(jìn)行處理.根據(jù)此處理流程,攻擊者有2種攻擊方式對(duì)控制器實(shí)施DDoS攻擊,如圖1所示.
圖1 控制器的DDoS攻擊方式Fig.1 DDoS attack mode of the controller
第一種方式,攻擊者通過(guò)隨機(jī)偽造源IP地址使得數(shù)據(jù)包無(wú)法匹配交換機(jī)中的流表,觸發(fā)交換機(jī)向控制器發(fā)送Pack_in消息.
第二種方式,攻擊者攻擊交換機(jī),修改流表中各表項(xiàng)的actions字段,將其設(shè)置為CONTROLLER,使交換機(jī)將所有數(shù)據(jù)包發(fā)送給控制器;或者通過(guò)截獲控制器向交換機(jī)下發(fā)的配置命令,將actions字段修改為CONTROLLER.
Pack_in消息會(huì)因查找、計(jì)算流路徑消耗控制器的計(jì)算資源.根據(jù)H3C實(shí)踐數(shù)據(jù)指出:計(jì)算資源消耗正比于控制器接收的PACK_IN消息數(shù)[23].在這里,可通過(guò)計(jì)算控制器每秒處理PACK_IN消息的數(shù)目來(lái)評(píng)估控制器是否存在DDOS攻擊.
3.2.2 ARP 攻擊
ARP地址解析協(xié)議是通過(guò)IP地址找到對(duì)應(yīng)的MAC地址,并將解析結(jié)果存儲(chǔ)在IP-MAC對(duì)形式的ARP高速緩存中,用來(lái)加快網(wǎng)絡(luò)通信速度.ARP幀分為請(qǐng)求幀和響應(yīng)幀,請(qǐng)求幀包含請(qǐng)求者的MAC地址和IP地址以及希望解析的IP地址;響應(yīng)幀包含請(qǐng)求者的MAC地址和IP地址以及響應(yīng)者的MAC地址和IP地址.
SDN的ARP攻擊可以分為兩種情況.第一種情況是ARP泛洪攻擊.攻擊者偽造合法主機(jī)的IP地址或者M(jìn)AC地址,欺騙控制器將MAC-IP映射關(guān)系更新錯(cuò)誤,從而產(chǎn)生大量導(dǎo)致網(wǎng)絡(luò)擁塞的ARP數(shù)據(jù)包;第二種情況是ARP緩存攻擊[22],攻擊者發(fā)送偽造的ARP響應(yīng)包,不斷的改變ARP高速緩存中的IP-MAC對(duì),從而導(dǎo)致主機(jī)的接入位置信息錯(cuò)誤.考慮到ARP通信過(guò)程和攻擊模式,我們提取以下兩個(gè)與ARP攻擊相關(guān)的特征如下:
響應(yīng)幀和請(qǐng)求幀的比率:當(dāng)ARP攻擊發(fā)生時(shí),源主機(jī)發(fā)送的ARP幀的數(shù)量比接收的多.如果響應(yīng)幀和請(qǐng)求幀的比率小于閾值,則ARP攻擊的概率很大.通過(guò)計(jì)算ARP數(shù)據(jù)包和分析包中的字段,可以得到請(qǐng)求幀和響應(yīng)幀的數(shù)目.若要使用pkt_arp=pkt.get_protocol(arp.arp)得到 ARP 數(shù)據(jù)包,則請(qǐng)求幀為:pkt_arp.opcode= =arp_ARP_REQUEST,響應(yīng)幀為:pkt_arp.opcode= =arp_ARP_REPLY.
IP-MAC映射對(duì):在正常條件下,ARP高速緩存中 IPMAC映射為1-1模式,如果ARP緩存中的IP-MAC映射為1-N或N-1的模式,說(shuō)明網(wǎng)絡(luò)就可能遭受了ARP緩存攻擊.歷史的IP和MAC地址可以從OpenFlow的匹配字段獲取,ARP_spa是源IP地址,ARP_tpa是目的IP地址,ARP_sha是源MAC地址,ARP_tha是目的MAC地址.新的IP地址和MAC地址可以通過(guò)監(jiān)控Openflow消息獲取.
3.2.3 控制器過(guò)載
控制器是控制平面的核心組件,通過(guò)控制器可以集中控制交換機(jī),實(shí)現(xiàn)數(shù)據(jù)的快速轉(zhuǎn)發(fā)、便捷安全的管理網(wǎng)絡(luò),提升網(wǎng)絡(luò)的整體性能.因此判斷控制器是否過(guò)載是衡量SDN網(wǎng)絡(luò)性能的重要因素.本文通過(guò)以下2個(gè)因素衡量控制器性能.
控制器計(jì)算流路徑時(shí)間T:計(jì)算流路徑是控制器最基本的功能,然而計(jì)算時(shí)間的長(zhǎng)短則是判斷控制器是否過(guò)載,或是否遭受攻擊的重要因素.
設(shè):交換機(jī)上傳Pack_in消息的時(shí)間為t1;控制器下發(fā)flow_mod消息的時(shí)間為t2;Pack_in消息數(shù)量為N,則:
被動(dòng)流表下發(fā)率R:流表是交換機(jī)處理傳入網(wǎng)絡(luò)的數(shù)據(jù)包的依據(jù),正常時(shí)由控制器根據(jù)網(wǎng)絡(luò)信息,進(jìn)行流表的下發(fā),如果控制器負(fù)載過(guò)重或遭受攻擊,將不能正常下發(fā)流表,造成數(shù)據(jù)平面不能實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā).因此判斷被動(dòng)流表下發(fā)率也是衡量SDN網(wǎng)絡(luò)安全的重要因素.
設(shè):數(shù)量為N的Pack_in消息上傳至控制器,控制器下發(fā)的flow_mod的數(shù)量M,則:
控制器將SDN的應(yīng)用策略轉(zhuǎn)變?yōu)榱鞅硪?guī)則下發(fā)到底層交換機(jī)上,交換機(jī)嚴(yán)格按照策略對(duì)應(yīng)的流表進(jìn)行匹配.由于目前SDN架構(gòu)缺乏對(duì)各種應(yīng)用策略的沖突檢測(cè)機(jī)制,導(dǎo)致應(yīng)用平面會(huì)出現(xiàn)策略沖突問(wèn)題,或者存在惡意應(yīng)用破壞已有的安全防護(hù)策略問(wèn)題,從而給SDN帶來(lái)難以預(yù)估的危害,也是影響SDN安全的重要因素.本文通過(guò)借鑒文獻(xiàn)[18]中的實(shí)時(shí)動(dòng)態(tài)策略檢測(cè)機(jī)制來(lái)檢測(cè)是否存在策略沖突,作為網(wǎng)絡(luò)安全態(tài)勢(shì)感知指標(biāo)之一,算法步驟如下:
1)從交換機(jī)流表和網(wǎng)絡(luò)拓?fù)湫畔⒅胁檎伊髀窂絝lowpath;
2)首先設(shè)置flowpath為空,并將交換機(jī)流表中第一個(gè)流表項(xiàng)的源地址、源端口號(hào)設(shè)置為flowpath的源地址和源端口號(hào);
3)設(shè)置一個(gè)空的交換機(jī)鏈接列表switch_liked_list;
4)設(shè)置變量 nexthop=switch_liked_list.next();
5)當(dāng)nexthop不為空時(shí),通過(guò)端口號(hào)循環(huán)獲取流表中每一個(gè)流表項(xiàng)所指向的下一個(gè)交換機(jī);
6)如果獲取的交換機(jī)不為空,則向flowpath和switch_liked_list中添加獲取的交換機(jī);
7)將最后一個(gè)流表項(xiàng)的目的地址和目的端口設(shè)置為flowpath的目的地址和端口號(hào),此時(shí)循環(huán)結(jié)束;
8)得到完整的流路徑flowpath.
通過(guò)分析可知,此算法步驟主要包含兩個(gè)循環(huán),首先獲取switch_linked_list這個(gè)列表的nexthop,在nexthop不為null的情況下,循環(huán)獲取每一個(gè)交換機(jī)流表指向的下一個(gè)交換機(jī),因此,算法的復(fù)雜度為O(n2).
RBF(Radical Basis Function,徑向基函數(shù))神經(jīng)網(wǎng)絡(luò)具有自學(xué)習(xí)、自組織、自適應(yīng)功能.它對(duì)非線性函數(shù)具有一致逼近性,并且可以并行高速的融合大范圍的數(shù)據(jù),具有較快的學(xué)習(xí)速度.目前已在模式識(shí)別、圖像處理、數(shù)據(jù)分類(lèi)、自然語(yǔ)言分析等領(lǐng)域得到廣泛的應(yīng)用.通過(guò)前面的分析和指標(biāo)提取可知,網(wǎng)絡(luò)安全態(tài)勢(shì)感知涉及的指標(biāo)很多,有些指標(biāo)是非線性的,且缺少一致性.因此,進(jìn)行網(wǎng)絡(luò)安全態(tài)勢(shì)感知非常適合采用RBF神經(jīng)網(wǎng)絡(luò).
RBF是一種具有單隱含層的前向神經(jīng)網(wǎng)絡(luò),采用徑向基函數(shù)作為局部激活函數(shù),第三層是線性函數(shù).RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
xi∈R,i=1,2,…,n 作為第 i個(gè)學(xué)習(xí)樣本,RBF 中的學(xué)習(xí)樣本都是N維的,所以網(wǎng)絡(luò)輸出可以用公式(9)和公式(10)表示:
在公式(9)和公式(10)中,w表示各個(gè)層連接的權(quán)值,‖·‖表示兩個(gè)點(diǎn)的歐氏距離,σk表示第k個(gè)徑向基函數(shù)的寬度,ck表示第k個(gè)隱含層節(jié)點(diǎn)的徑向基函數(shù)的中心;yi代表第i個(gè)學(xué)習(xí)樣本的實(shí)際輸出;k代表高斯基函數(shù);其重點(diǎn)是確定徑向基函數(shù)中心和各層連接權(quán)值的大小,以便減小誤差.
圖2 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 RBF neural network structure
RBF神經(jīng)網(wǎng)絡(luò)在確定徑向基函數(shù)中心時(shí),最常用的方法是先采用k-means算法確定聚類(lèi)中心,由各個(gè)聚類(lèi)中心之間的距離得出RBF的寬度,最后采用LS來(lái)得到連接的權(quán)值.然而,K-means聚類(lèi)方法隨機(jī)選取初始聚類(lèi)中心,造成對(duì)初始中心依賴性強(qiáng),容易得到局部最優(yōu)解[24],并且在計(jì)算網(wǎng)絡(luò)權(quán)值時(shí)使用最小二乘法不具有自適應(yīng)調(diào)整能力.因此,本文使用K-means和PSO算法來(lái)優(yōu)化上述問(wèn)題,使RBF能夠更加準(zhǔn)確的進(jìn)行網(wǎng)絡(luò)安全態(tài)勢(shì)感知.
4.2.1 k-means聚類(lèi)過(guò)程的優(yōu)化
本文使用K-means算法實(shí)現(xiàn)k-means聚類(lèi)過(guò)程的優(yōu)化,解決k-means對(duì)初始中心依賴性強(qiáng)的缺陷.
K-means算法指導(dǎo)思想是使其聚類(lèi)中心互相離得越遠(yuǎn)越好.假設(shè)已經(jīng)選取了n個(gè)初始聚類(lèi)中心,則第n+1個(gè)聚類(lèi)中心選擇距離當(dāng)前n個(gè)聚類(lèi)中心最遠(yuǎn)的點(diǎn).使用K-means優(yōu)化后的k-means聚類(lèi)步驟如下:
1)確定初始聚類(lèi)中心c1:從當(dāng)前的數(shù)據(jù)集中隨機(jī)選擇一個(gè)樣本,即為初始聚類(lèi)中心;
2)確定初始聚類(lèi)中心c1:從當(dāng)前的數(shù)據(jù)集中隨機(jī)選擇一個(gè)樣本,即為初始聚類(lèi)中心;并計(jì)算每個(gè)樣本被選為下一個(gè)聚類(lèi)中心的概率,最后按照輪盤(pán)法選擇出下一個(gè)聚類(lèi)中心;
3)重復(fù)Step2直到選擇出K個(gè)聚類(lèi)中心Si;
4)求所有點(diǎn)到這K個(gè)聚類(lèi)中心的距離:
假如點(diǎn)Pi離質(zhì)心Si最近,那么Pi屬于Si簇;
5)接下來(lái),移動(dòng)質(zhì)心到屬于他的“簇”的中心.對(duì)每個(gè)簇,計(jì)算簇中所有點(diǎn)的均值,并將均值作為質(zhì)心;
6)然后重復(fù)第4)和第5)步,直到質(zhì)點(diǎn)不再移動(dòng).
4.2.2 基于PSO的網(wǎng)絡(luò)權(quán)值優(yōu)化
在PSO(Particle Swarm Optimization,粒子群優(yōu)化算法)中,最優(yōu)解是利用群體中每個(gè)個(gè)體之間的協(xié)作以及信息共享得到,在這個(gè)過(guò)程中,需要調(diào)整參數(shù)較少,易于實(shí)現(xiàn),具有更強(qiáng)的全局優(yōu)化能力.
該算法首先初始化一個(gè)隨機(jī)的粒子群(m維),其中包含n個(gè)粒子,則第i個(gè)粒子對(duì)應(yīng)于m維空間中的位置為:Xi=[Xi,1,Xi,2,…,Xi,m],設(shè)該粒子的飛行速度是 Vi=[Vi,1,Vi,2,…,Vi,m],設(shè)置兩個(gè)最優(yōu)位置 pbest和 gbest,分別代表某個(gè)粒子經(jīng)過(guò)的最優(yōu)位置和該粒子群中所有粒子經(jīng)過(guò)的最優(yōu)位置.以上過(guò)程不斷進(jìn)行迭代,第k+1時(shí),利用公式(11)來(lái)更新自己的速度,利用公式(12)來(lái)更新自己的位置:
其中c1和c2為加速因子,r1和r2是在[0,1]范圍內(nèi)的兩個(gè)隨機(jī)數(shù).
則使用PSO確定網(wǎng)絡(luò)權(quán)值的步驟為:
1)利用上述優(yōu)化后的K-means方法得出RBF的所有參數(shù),將這些參數(shù)范圍較小,將其作為PSO的初始粒子群,由此基于PSO算法機(jī)型權(quán)值優(yōu)化時(shí),穩(wěn)定性好并且收斂速度更快;
2)評(píng)價(jià)每個(gè)微粒的適應(yīng)度:
Dn為期望輸出,Yn為優(yōu)化輸出.
3)對(duì)于每一個(gè)微粒,比較它的適應(yīng)度和pbest,如果適應(yīng)度更好,則將其作為新的pbest;
4)對(duì)于每一個(gè)微粒,比較它的適應(yīng)度和gbest,如果適應(yīng)度更好,則將其作為新的gbest;
5)根據(jù)公式(11)和公式(12)來(lái)不斷調(diào)整微粒的速度和位置;
6)結(jié)束迭代過(guò)程,但是如果還沒(méi)有達(dá)到相應(yīng)的結(jié)束條件,則返回步驟2),重新評(píng)價(jià)每個(gè)微粒的適應(yīng)度.
為了驗(yàn)證本文提出的評(píng)估網(wǎng)絡(luò)安全態(tài)勢(shì)感知方法的準(zhǔn)確性,我們?cè)?Ubuntu14.04 LTS下使用 Floodlight1.2 master作為SDN的控制器,Mininet2.3.1作為網(wǎng)絡(luò)模擬器,OpenVswitch(OVS)2.3.2作為Openflow交換機(jī)搭建測(cè)試環(huán)境,網(wǎng)絡(luò)拓?fù)淙鐖D3所示.
圖3 SDN實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)鋱DFig.3 SDN experimental network topology
本文主要進(jìn)行了2類(lèi)實(shí)驗(yàn),分別測(cè)試該方法的準(zhǔn)確性和性能.首先,在SDN測(cè)試環(huán)境中獲取3種介紹的網(wǎng)絡(luò)安全態(tài)勢(shì)指標(biāo)信息,并結(jié)合專(zhuān)家經(jīng)驗(yàn)給出對(duì)應(yīng)的網(wǎng)絡(luò)安全態(tài)勢(shì)值組成數(shù)據(jù)集.該數(shù)據(jù)集分為三類(lèi)(1,2,3),每一類(lèi)的前90%作為樣本用于訓(xùn)練,剩下的10%用于測(cè)試.
根據(jù)3確定的安全態(tài)勢(shì)感知指標(biāo)如表1所示.
表1 安全態(tài)勢(shì)感知指標(biāo)集Table 1 Security situational awareness indicator set
5.2.1 準(zhǔn)確性測(cè)試
為了確定本文優(yōu)化算法對(duì)SDN網(wǎng)絡(luò)安全態(tài)勢(shì)感知的準(zhǔn)確性,我們利用已經(jīng)訓(xùn)練好的本文算法、K-means+LS算法和K-means+PSO算法[26]對(duì)其中一組測(cè)試數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)安全態(tài)勢(shì)感知計(jì)算,得到的結(jié)果如圖4所示.
圖4 幾種RBF算法的網(wǎng)絡(luò)安全態(tài)勢(shì)感知結(jié)果對(duì)比Fig.4 Comparison of network security situation perception results of several RBF algorithms
由圖4可看出,相比于其它2種算法,本文使用的優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)安全態(tài)勢(shì)感知的結(jié)果與實(shí)際值最為接近,且與實(shí)際值的大小基本吻合.
此外,取10組測(cè)試數(shù)據(jù),計(jì)算幾種算法的平均正確率以及平均誤差,得到結(jié)果如表2所示.
由表2可看出,相比于其他2種算法,本文使用的優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)安全態(tài)勢(shì)感知的結(jié)果正確率最高,誤差最小.
5.2.2 性能評(píng)估
在本節(jié)中,我們測(cè)試了控制器不運(yùn)行任何感知算法和運(yùn)行三個(gè)不同的感知算法時(shí)在CPU開(kāi)銷(xiāo)上的差異,并且比較了三個(gè)算法的運(yùn)行時(shí)間.為了避免實(shí)驗(yàn)過(guò)程中出現(xiàn)的偶然,保證實(shí)驗(yàn)結(jié)果的客觀性,以上兩個(gè)實(shí)驗(yàn)均重復(fù)進(jìn)行五次,取每次的最高值,并將平均值最為最后的結(jié)果.控制器的CPU開(kāi)銷(xiāo)結(jié)果如表3所示,三個(gè)算法的運(yùn)行時(shí)間如圖5所示.
表2 幾種RBF算法正確率和平均誤差的比較Table 2 Comparison of accuracy and average error of several RBF algorithms
表3 CPU性能測(cè)試結(jié)果Table 3 CPU performance test results
由表3可知,在交換機(jī)數(shù)目相同的情況下,相較于其他方法,本文使用的方法在CPU開(kāi)銷(xiāo)上與原始Floodlight的差異較小,能夠在最大程度上減少占用SDN控制器的CPU資源.由圖5可知,本文優(yōu)化算法的運(yùn)行時(shí)間比其他2種算法要短.由此證明本算法在運(yùn)行性能上占據(jù)優(yōu)勢(shì).
圖5 幾種優(yōu)化算法運(yùn)行時(shí)間比較Fig.5 Comparison of running time of several optimization algorithms
為了準(zhǔn)確評(píng)估SDN網(wǎng)絡(luò)的安全狀況,本文提出一種面向SDN的網(wǎng)絡(luò)安全態(tài)勢(shì)感知方法.在提取態(tài)勢(shì)指標(biāo)上,分別從SDN的數(shù)據(jù)平面、控制平面、應(yīng)用平面提取攻擊行為的典型特征,彌補(bǔ)了安全態(tài)勢(shì)指標(biāo)提取不全面的問(wèn)題.在評(píng)估模型上使用改進(jìn)的K-means和PSO優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)的基函數(shù)中心確定過(guò)程和權(quán)值優(yōu)化過(guò)程,大幅度的提高了網(wǎng)絡(luò)安全態(tài)勢(shì)感知的準(zhǔn)確性和性能.但是限于SDN實(shí)驗(yàn)環(huán)境和檢測(cè)條件,本文在態(tài)勢(shì)指標(biāo)的提取上還存在一定的局限性,面對(duì)復(fù)雜多樣的攻擊行為,我們接下來(lái)將通過(guò)改善實(shí)驗(yàn)環(huán)境和檢測(cè)條件,從而更加全面、精準(zhǔn)的感知SDN網(wǎng)絡(luò)的安全態(tài)勢(shì).
小型微型計(jì)算機(jī)系統(tǒng)2019年8期