(三明學(xué)院 現(xiàn)代教育技術(shù)中心,福建 三明,365004)
在網(wǎng)絡(luò)發(fā)展過程中,計(jì)算和存儲的發(fā)展非???,但是網(wǎng)絡(luò)安全建設(shè)相對而言還是比較初級。SDN和NFV這些新的網(wǎng)絡(luò)技術(shù)的出現(xiàn)為網(wǎng)絡(luò)運(yùn)維自動化帶來了新的方向,通過控制平面的集中管控和虛擬網(wǎng)絡(luò)資源的靈活管理,可以最終實(shí)現(xiàn)SDN(軟件定義網(wǎng)絡(luò))[1],不過在虛擬化和云計(jì)算中,作為用戶最關(guān)心的安全問題卻在影響整體應(yīng)用的成熟度。目前安全設(shè)備的交付、配置和運(yùn)營等很多方面都需要人工參與,在現(xiàn)有的系統(tǒng)中還勉強(qiáng)能夠支撐,但在大規(guī)模的云計(jì)算數(shù)據(jù)中心就力不從心了[2-6]。反過來說,SDN的先進(jìn)特性確實(shí)也給安全防護(hù)帶來了想象空間,利用SDN的彈性、快捷可以快速部署大量的虛擬化安全設(shè)備,滿足突發(fā)流量的防護(hù);利用SDN的全局視野、快速流量調(diào)度就能實(shí)現(xiàn)防護(hù)及時生效[7]。
在對異常流量的研究工作中,Marina Thottan[8]用GLR算法來檢測管理信息庫變量異常。而呂軍等[9]提出基于MGLR的網(wǎng)絡(luò)流量異常檢測算法,對GLR算法進(jìn)行了改進(jìn),該算法將線性模型與小波變換相合,解決了閾值監(jiān)控?zé)o法告警和監(jiān)測的問題。但以上的研究,更多的是基于傳統(tǒng)的網(wǎng)絡(luò),對已有安全事件、安全威脅,比對安全基線、安全規(guī)則等,對當(dāng)前網(wǎng)絡(luò)空間的安全狀態(tài)未做判斷。張世軒等[10]利用 SDN架構(gòu)的集中控制等特點(diǎn),在攻擊的源頭實(shí)現(xiàn)流量實(shí)時監(jiān)控,使用源 IP防偽、接入層異常檢測、鏈路流量異常檢測形成多重防御體系,盡可能早地發(fā)現(xiàn)攻擊,逐漸過濾異常流量,實(shí)現(xiàn)網(wǎng)絡(luò)層DDoS攻擊在源端的檢測和防御,但這種檢測方法對SDN控制器來說負(fù)載較大,擴(kuò)展性不強(qiáng)。
本文就SDN構(gòu)架下端口惡意掃描時通過的異常流量攻擊檢測,運(yùn)用網(wǎng)絡(luò)流量中異常流量檢測的思路,提出一種基于SDN中網(wǎng)絡(luò)最大流的異常流量檢測方法。
SDN網(wǎng)絡(luò)安全架構(gòu)工作流里,當(dāng)用戶需要部署安全時,可以在安全應(yīng)用的管理層側(cè)將網(wǎng)絡(luò)安全設(shè)備接入到相應(yīng)的被防護(hù)虛擬機(jī)上,并部署相關(guān)安全策略。此時,安全控制平臺的流程為:通過守護(hù)進(jìn)程準(zhǔn)備好并啟動相應(yīng)的虛擬機(jī),通過SDN將流量牽引到下一層安全設(shè)備的入口,并向下發(fā)防護(hù)站點(diǎn)的策略。這種部署方式用戶僅僅需了解少量信息即可,不像以往需要了解大量安全設(shè)備的部署模式、規(guī)則配置、拓?fù)湟?guī)劃等,這些工作均由安全控制平臺、SDN控制器和虛擬化系統(tǒng)完成[11-14]。
圖1所示,當(dāng)確定要監(jiān)控VM1到VM2的流量時,安全中心會從計(jì)算節(jié)點(diǎn)或安全節(jié)點(diǎn)找到一個IPS設(shè)備,然后向VM1所在交換機(jī)到IPS所在交換機(jī)的路徑P上所有的交換機(jī)下發(fā)重定向的流指令,如果選擇計(jì)算節(jié)點(diǎn)的IPS,路徑為P1;如果選擇安全節(jié)點(diǎn)上的IPS,則路徑為P2。這樣所有源為VM1且目的為VM2的流量沿著路徑P到達(dá)IPS設(shè)備,經(jīng)過檢查后數(shù)據(jù)包從IPS輸入端口輸出,此時SDN控制器根據(jù)拓?fù)溆?jì)算從IPS到VM2的路徑,并下發(fā)流指令,沿途交換機(jī)將流量傳輸?shù)絍M2。
圖1 SDN網(wǎng)絡(luò)安全架構(gòu)
利用網(wǎng)絡(luò)層、應(yīng)用層和數(shù)據(jù)層等分層數(shù)據(jù)、應(yīng)用協(xié)議通訊特征、通訊內(nèi)容、通訊行為、通訊流量、通訊連接情況、目標(biāo)IP地址和服務(wù)端口等歷史數(shù)據(jù)作為診斷指標(biāo),在探索源地址IP驗(yàn)證方面,通過SDN控制器與 OpenFlow交換機(jī)的信息交互實(shí)現(xiàn)了源地址驗(yàn)證,SND技術(shù)除了可以統(tǒng)計(jì)流量信息外,還可以控制網(wǎng)絡(luò)的流量,包括對流量的放行、阻斷、重定向和鏡像等[15],通過網(wǎng)絡(luò)最大流檢測算法與SDN技術(shù)相結(jié)合應(yīng)用于網(wǎng)絡(luò)接入層,增加了添加流表項(xiàng)功能,可實(shí)時地對異常端口進(jìn)行轉(zhuǎn)發(fā)限制,簡當(dāng)而言,在OpenFlow SDN中,SDN控制制可以向網(wǎng)絡(luò)設(shè)備下發(fā)FLOW_MOD指令,通過動作actions對匹配的流量進(jìn)行控制,如圖2。網(wǎng)絡(luò)流量控制中最大流是分析異常流量的一種重要方法,本文提出其針對端口掃描流量異常的檢測判斷,算法優(yōu)越性較強(qiáng),對未來研究網(wǎng)絡(luò)安全態(tài)勢評估模型能起很好的支撐作用。
圖2 SDN中VSwich上的流量控制
設(shè)f:E→R*,其中R是非負(fù)數(shù)集,滿足下述條件:
(1) 容量限制坌<i,j>∈E,f(i,j)≤c(i,j)。
稱f是N上的一個可行流,稱下發(fā)點(diǎn)s的凈流量為可行流的流量,記作v(f),即
流量最大的可行流稱作最大流。
步驟2 網(wǎng)絡(luò)容量N=
由上可以得到:
步驟3 給定網(wǎng)絡(luò)中通過的最大流
假設(shè)N中每一個頂點(diǎn)之間至多有一條邊,如果i和j之間有兩條邊和
L.R.Ford和D.R.Fullerson把原始-對偶算法應(yīng)用于最大流問題,提出最大流問題的標(biāo)號算法,簡稱FF算法。在前面的定義的容量網(wǎng)絡(luò)N中,我們把流量等于容量的邊稱作飽和邊,流量小于容量的邊稱作非飽和邊。流量等0的邊稱作零流邊,流量大于0的邊稱作非零流邊。設(shè)P是一條關(guān)于可行流f的s-t增廣鏈,令δ等于P上所有前向邊的容量與流量之差以及所有后向邊的流量的最小值,根據(jù)增廣鏈的定義,δ>0。如下修改f的值,令
從下發(fā)點(diǎn)s開始搜索,逐個給頂點(diǎn)作標(biāo)號,直到終點(diǎn)t得到標(biāo)號為止。頂點(diǎn)j得到標(biāo)號表示已找到s到j(luò)的增廣鏈,標(biāo)號為(lj,δj),其中 等于直到j(luò)為止鏈上所有前向邊的容量與流量之差以及所有后向邊的流量的最小值,lj=+i或=lj+i或lj=-i.lj=+i表示鏈?zhǔn)菑膇到j(luò)且是前向邊,lj=-i表示鏈?zhǔn)菑牡絡(luò)且
使用SDN技術(shù)可以從openflow交換機(jī)上獲取流量信息,并根據(jù)特征值判斷是否存在安全攻擊,并采取相應(yīng)的措施。目前基于流的安全檢測和防護(hù)機(jī)制有好多種,如DDos、端口掃描等。
在SDN網(wǎng)絡(luò)中,借助安全控制平臺中流的相關(guān)組件,從SDN控制器中獲得相應(yīng)的流量,采用端口掃描攻擊進(jìn)行檢測。端口掃描目前為黑客攻擊中一種常見的惡意攻擊,具有流數(shù)量劇增,并有很多相同的IP源地址。當(dāng)黑客掃描失敗時,會導(dǎo)致大量的TCP、ICMP不可響應(yīng)。借助SDN的全局視圖和流特征分析,可不依賴局部安全設(shè)備而得到高準(zhǔn)確率。根據(jù)Ford-Fulkerson算法,針對這些特征,當(dāng)收到可行流v(f),可行流檢測模塊程序如下:
先計(jì)算流的存活目的端口數(shù)。之后建立未建立的流的比例U,程序如下:
其中ref為v(f)中的任意一條可行流,obj是v(f)中的其他任意一條流。表1為根據(jù)算法得到的某高校2018年近三個月一些IP的TCP端口掃描數(shù)據(jù)流統(tǒng)計(jì)表,從表中可以統(tǒng)計(jì)出源IP地址和目的IP地址中對應(yīng)的端口號、存活的端口數(shù)和數(shù)據(jù)流數(shù)量。
表1 TCP端口掃描數(shù)據(jù)流統(tǒng)計(jì)表
利用現(xiàn)有的實(shí)時數(shù)據(jù),采集了SDN網(wǎng)絡(luò)架構(gòu)下福建某高校2018年1~3月總計(jì)3個月的校園網(wǎng)中IPS和網(wǎng)絡(luò)出口流量的數(shù)據(jù),其中核心為思科的9508交換機(jī),通過對入侵防御系統(tǒng)(IPS)上的外部IP連接目的IP的記錄,一共獲取了50000多條的原始數(shù)據(jù),按照SDN網(wǎng)絡(luò)結(jié)構(gòu)的需求,實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)淙鐖D3。
在實(shí)驗(yàn)環(huán)境中,我們使用Namp發(fā)起TCP掃描和TCP SYN掃描,速率分別為215.35端口/秒和355.69端口/秒,并與正常場景比較,如表2所示??梢钥吹皆赥CP掃描和TCP SYN掃描中,很明顯可以看到未建立流的比例U相當(dāng)高且開銷也較大,由此可以檢測到異常流量。
圖4是53413端口在校園網(wǎng)出口設(shè)備的數(shù)據(jù)。圖5是網(wǎng)絡(luò)最大流算法對原始數(shù)據(jù)檢測結(jié)果。由圖4和圖5可以分析出兩者流量檢測結(jié)果基本一致,本檢測方法可行性較高。
圖3 某高校SDN架構(gòu)的安全網(wǎng)絡(luò)系統(tǒng)拓?fù)鋱D
表2 常規(guī)端口檢測結(jié)果
圖4 53413端口數(shù)據(jù)
圖5 網(wǎng)絡(luò)最大流對原始數(shù)據(jù)的檢測結(jié)果
算法的性能也可以用檢測概率與誤警概率來討論。和的值由下式計(jì)算 :
不同算法的檢測結(jié)果如表3所示。
表3 三種不同算法的性能對比
圖6 三種算法概率與運(yùn)行時間的關(guān)系
圖6是三種算法的運(yùn)行時間的對比圖,通過三種常見的網(wǎng)絡(luò)攻擊在較長時間與校園網(wǎng)絡(luò)出口設(shè)備中的流量進(jìn)行匹配,從而根據(jù)不同的時間來驗(yàn)證運(yùn)行時間變化的關(guān)系圖。假設(shè)運(yùn)行時間隨概率為X,可以看出在概率X在60%的時候,網(wǎng)絡(luò)最大流檢測的概率都略強(qiáng)于其它兩種方法。
本文利用了網(wǎng)絡(luò)最大流算法在SDN安全架構(gòu)體系中的應(yīng)用,能夠較快檢測出網(wǎng)絡(luò)中的異常流量。同時實(shí)驗(yàn)表明,網(wǎng)絡(luò)最大流算法與GLR算法和DoS/DDoS攻擊檢測算法的檢測性能。對于最大流算法算法,15個已知異常點(diǎn)有13個被檢出,檢測概率為85%,誤警概率為66%;GLR算法中15個已知異常點(diǎn)有11個被檢出,檢測概率為75%,誤警概率25%;DoS/DDoS攻擊檢測算法中15個已知異常點(diǎn)有12個被檢出,檢測概率為81%,誤警概率30%。由此看來,在SDN網(wǎng)絡(luò)中,網(wǎng)絡(luò)最大流檢測算法的性能較優(yōu),可靠性較強(qiáng)。