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