郭曉丹,段雨梅
(四川大學(xué)錦城學(xué)院 計(jì)算機(jī)與軟件學(xué)院,四川 成都 611731)
自斯坦福大學(xué)提出了軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)的概念之后[1],引起了學(xué)術(shù)界廣泛關(guān)注,其中我國的863 項(xiàng)目“未來網(wǎng)絡(luò)體系架構(gòu)和創(chuàng)新環(huán)境”中也對(duì)SDN 技術(shù)進(jìn)行了研究。近年來,在網(wǎng)絡(luò)通信領(lǐng)域的頂級(jí)會(huì)議SIGCOMM 上發(fā)表了大量關(guān)于SDN 的研究論文。SDN 是一種控制與轉(zhuǎn)發(fā)分離且可直接編程的新型網(wǎng)絡(luò)架構(gòu),其出現(xiàn)源于當(dāng)前網(wǎng)絡(luò)環(huán)境的變化。隨著網(wǎng)絡(luò)應(yīng)用越來越廣泛,網(wǎng)速也從2G 快速發(fā)展到4G、5G,網(wǎng)民人數(shù)也是暴增,網(wǎng)絡(luò)應(yīng)用和網(wǎng)絡(luò)需求呈現(xiàn)快速變化和種類多樣化趨勢(shì),傳統(tǒng)網(wǎng)絡(luò)比較固定的需求設(shè)計(jì)已經(jīng)不能夠滿足這種動(dòng)態(tài)的網(wǎng)絡(luò)需求,所以當(dāng)對(duì)網(wǎng)絡(luò)虛擬化(NFV)進(jìn)行了一定程度研究后,SDN 也就更快地被大家所接受。
SDN 當(dāng)前被廣泛應(yīng)用,研究者也從學(xué)術(shù)界傳遞到業(yè)界,針對(duì)SDN 的標(biāo)準(zhǔn)化研究也一直沒有停止,因?yàn)闃?biāo)準(zhǔn)化是促進(jìn)一種技術(shù)快速發(fā)展和普及的重要工作,當(dāng)前就有多個(gè)國際組織參與了SDN 的標(biāo)準(zhǔn)化研究。其中包括了開放網(wǎng)絡(luò)基金會(huì)(ONF)、因特網(wǎng)工程任務(wù)組(IETF)、國際電信聯(lián)盟電信標(biāo)準(zhǔn)分局(ITU-T),以及網(wǎng)絡(luò)功能虛擬化標(biāo)準(zhǔn)工作組(NFVISG)。這些組織都有自己的主攻方向,也有各自的研究成果,而當(dāng)前比較成熟的,被大家廣泛接受并常常作為SDN 基本知識(shí)普及的體系架構(gòu)則是由ONF 提出的三層架構(gòu),分別是應(yīng)用層、控制層和基礎(chǔ)設(shè)施層。以SDN 控制器為中心,分別向北對(duì)接應(yīng)用層,向南對(duì)接基礎(chǔ)設(shè)施層,這樣的結(jié)構(gòu)與傳統(tǒng)的七層架構(gòu)和TCP/IP的五層架構(gòu)對(duì)比明顯,同時(shí)也將SDN 的核心思想展示出來。然而,這類架構(gòu)仍然否存在網(wǎng)絡(luò)安全問題。只是這種新架構(gòu)引發(fā)的網(wǎng)絡(luò)問題與傳統(tǒng)網(wǎng)絡(luò)有所不同,所以需要根據(jù)現(xiàn)有情況進(jìn)行新的分析與探索研究。
SDN 作為新型的網(wǎng)絡(luò)架構(gòu),應(yīng)用初期面臨了比較大的安全挑戰(zhàn)。其中SDN 的控制器作為整個(gè)網(wǎng)絡(luò)的核心,關(guān)系到整個(gè)網(wǎng)絡(luò)的轉(zhuǎn)發(fā)效率和轉(zhuǎn)發(fā)策略,也極易受到攻擊。在SDN 網(wǎng)絡(luò)中,數(shù)據(jù)面收到的第一條流會(huì)被上傳給控制器,由控制器識(shí)別并且下發(fā)流表給交換機(jī),交換機(jī)就會(huì)根據(jù)流表進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)。后續(xù)流都會(huì)依照流表進(jìn)行轉(zhuǎn)發(fā)[2]。SDN 網(wǎng)絡(luò)具有可編程特性,這既是它的優(yōu)勢(shì),也是它的弱點(diǎn)??删幊桃馕吨脩艨梢栽诮粨Q機(jī)上運(yùn)行代碼,其中有一種方法就是通過報(bào)文中攜帶可以運(yùn)行的代碼,實(shí)現(xiàn)應(yīng)用的動(dòng)態(tài)變化,滿足用戶的動(dòng)態(tài)需求,同時(shí),這也預(yù)示著風(fēng)險(xiǎn)的存在,如果攻擊者利用這個(gè)規(guī)則,修改了交換機(jī)上的流表,那么SDN 網(wǎng)絡(luò)中的數(shù)據(jù)流量就會(huì)被全部被攻擊者所引導(dǎo)[3]。
在SDN 中的流表一般都在包頭域中選擇一定的選項(xiàng)來做匹配,而包頭域一般包含12 種類型的數(shù)據(jù),比如源目的IP 地址、源端口號(hào)目的端口號(hào)、源MAC 目的MAC 等等。在實(shí)際的流量轉(zhuǎn)發(fā)過程中,不需要所有域全匹配,在數(shù)據(jù)中最長匹配即可,因此,數(shù)據(jù)流量的轉(zhuǎn)發(fā)在一定程度上也存在安全風(fēng)險(xiǎn)。如何進(jìn)行有效防控,便成為SDN 網(wǎng)絡(luò)安全的重要研究問題。
SDN 當(dāng)前的網(wǎng)絡(luò)安全問題研究聚焦于兩個(gè)方面:一方面,SDN 本身的問題,比如它的新架構(gòu)和新思想帶來的問題,包括IP 地址欺騙、DDos 攻擊[4]、網(wǎng)絡(luò)監(jiān)聽等等,這些問題的存在也導(dǎo)致了商用化SDN 的進(jìn)程有一定的影響。另一方面,傳統(tǒng)網(wǎng)絡(luò)的安全問題如何通過SDN 的優(yōu)勢(shì)來解決和規(guī)避,這主要是依賴于SDN 網(wǎng)絡(luò)的集中控制特點(diǎn),可以快速下發(fā)策略,并且可以統(tǒng)籌管理整個(gè)網(wǎng)絡(luò)的安全策略,同時(shí)SDN 控制器具有全網(wǎng)視圖便于流量的監(jiān)測(cè)和訪問控制的設(shè)置。這些優(yōu)勢(shì)也為當(dāng)前研究者提供了新的思路去解決傳統(tǒng)網(wǎng)絡(luò)的安全問題,并且推動(dòng)SDN 的商業(yè)化發(fā)展。
本文就針對(duì)傳統(tǒng)網(wǎng)絡(luò)中常見的流量攻擊問題進(jìn)行了模擬仿真,并驗(yàn)證了一種SDN 中的方法可以有效解決這類問題的發(fā)生。首先,從當(dāng)前仿真軟件的使用情況來看,Mininet 成為此次仿真的首選平臺(tái)。Mininet 是由斯坦福大學(xué)基于Linux Container 架構(gòu)開發(fā)的一個(gè)進(jìn)程虛擬化網(wǎng)絡(luò)仿真工具,可以創(chuàng)建一個(gè)包含主機(jī)、交換機(jī)、控制器和鏈路的虛擬網(wǎng)絡(luò),其交換機(jī)支持OpenFlow,具備高度靈活的自定義軟件定義網(wǎng)絡(luò)。其次,仿真網(wǎng)絡(luò)的搭建離不開控制器的選擇,本次選擇的控制器是開源控制器Ryu。它使用Python 語言進(jìn)行編碼,支持Openflow 協(xié)議,能夠與Mininet 互通。對(duì)于仿真而言,這款外部的控制器比Mininet 自帶的控制器性能要高很多。再者,創(chuàng)建拓?fù)洹J褂肕ininet 可視化界面創(chuàng)建一個(gè)具有兩個(gè)交換機(jī),一臺(tái)控制器,四臺(tái)主機(jī)的網(wǎng)絡(luò)環(huán)境(見圖3),其中控制器連接的是外部控制器。
圖1 仿真拓?fù)鋱D
在完成了拓?fù)鋱D中的地址配置之后,保證h1、h2、h3 和h4 之間能夠正常通信,然后再在h1 上通過ping 命令模擬攻擊流量,攻擊h3。在s2 上通過wireshark 軟件轉(zhuǎn)包,對(duì)攻擊流量進(jìn)行分析。流量分析此步驟也可以使用人工確定,也可以使用機(jī)器自動(dòng)鑒別。當(dāng)研究者確定了攻擊流量的源IP 或者攻擊流量入端口后,就可以根據(jù)實(shí)際情況進(jìn)行流量攔截。具體攔截方法就是通過控制器在s2 上安裝防御流量的流表,比如將轉(zhuǎn)發(fā)匹配域的入端口為攻擊流量進(jìn)入端口的流量所對(duì)應(yīng)的流表項(xiàng)找到,然后通過流表命令將其動(dòng)作修改為“丟棄”。其次,如果知曉攻擊流量的IP 地址,那么可以選擇更詳細(xì)的包頭域匹配規(guī)則,找到對(duì)應(yīng)的流表,或者創(chuàng)建新的流表,將對(duì)應(yīng)IP 地址發(fā)送的攻擊報(bào)文的操作改為“丟棄”。同時(shí)這種行為也可以反饋給控制器,由控制器通告全網(wǎng),這樣既可以防御此交換機(jī)或者h(yuǎn)3 不被攻擊,同時(shí)也可以預(yù)防h2 和h4 被攻擊。
最終,攻擊流量完全被攔截,最終實(shí)驗(yàn)仿真成功。
圖2 驗(yàn)證阻截結(jié)果
大數(shù)據(jù)技術(shù)在軟件定義網(wǎng)絡(luò)的安全問題中有極大的優(yōu)勢(shì)。從大數(shù)據(jù)的生命周期來看,大數(shù)據(jù)采集、大數(shù)據(jù)預(yù)處理、大數(shù)據(jù)存儲(chǔ)和大數(shù)據(jù)分析共同組成了大數(shù)據(jù)生命周期里最核心的技術(shù),而這四種技術(shù)恰恰也為網(wǎng)絡(luò)安全問題的解決提供了新思路。
網(wǎng)絡(luò)中的問題本質(zhì)是網(wǎng)絡(luò)流量的問題,那么通過對(duì)SDN網(wǎng)絡(luò)流量的數(shù)據(jù)采集,然后利用大數(shù)據(jù)預(yù)處理技術(shù)進(jìn)行分類,并且將一些重要數(shù)據(jù)流量進(jìn)行存儲(chǔ),同時(shí)結(jié)合大數(shù)據(jù)分析技術(shù)進(jìn)行甄別,那么我們就可以追溯網(wǎng)絡(luò)流量中的非法數(shù)據(jù),可以預(yù)測(cè)、也可以防控,這樣可以大大降低SDN 網(wǎng)絡(luò)中的安全風(fēng)險(xiǎn)。在SDN 網(wǎng)絡(luò)中,由于所有流量都可以通過SDN 控制器進(jìn)行流量管控,這也為大數(shù)據(jù)技術(shù)在SDN 中的應(yīng)用提供了便利,因?yàn)閿?shù)據(jù)收集不再依賴于廣泛的接入層,可以直接在控制層進(jìn)行,不再需要將大數(shù)據(jù)技術(shù)應(yīng)用到各個(gè)交換機(jī)路由器上,而是直接在SDN 控制器上應(yīng)用,極大地提升了大數(shù)據(jù)應(yīng)用的效率。
人工智能作為當(dāng)前的新技術(shù)之一,也給SDN 的網(wǎng)絡(luò)安全問題提供了新方法。在傳統(tǒng)網(wǎng)絡(luò)中,經(jīng)常存在網(wǎng)絡(luò)流量的識(shí)別難、預(yù)測(cè)難等問題,有了人工智能的各種算法后,有很多安全問題可以使用人工智能的方法進(jìn)行解決。比如人工智能可以用于漏洞挖掘,也可以使用人工智能的機(jī)器學(xué)習(xí)方法檢測(cè)網(wǎng)絡(luò)中的非法流量,并且自動(dòng)添加防御策略,進(jìn)行流量管控[6]。
無論是大數(shù)據(jù)還是人工智能,都為SDN 網(wǎng)絡(luò)的安全問題提供了新的解決策略,在未來的網(wǎng)絡(luò)安全方案中會(huì)出現(xiàn)得更廣泛。