蘇禮
摘要:軟件定義網(wǎng)絡能夠?qū)崿F(xiàn)集中控制的功能,這種網(wǎng)絡架構具有全新的特點,當遇到DDoS的情況下,使得信息無法傳達,同時,單點也容易失去效果。當DDoS發(fā)生攻擊時,我們要及時識別出來,現(xiàn)行的方法在SDN氛圍下,憑借BP神經(jīng)網(wǎng)絡,對DDoS攻擊進行檢測,通過使用這種方法,能夠取得關于OpenFlow交換機的流表項,用于分析DDoS攻擊的特點,即在SDN環(huán)境下,進而得到流表匹配的成功率、流表項的速率等特征,即與攻擊有聯(lián)系的;當對這些特征值的變化分析之后,借助BP神經(jīng)網(wǎng)絡來劃分訓練樣本,完成對DDoS攻擊的檢查。根據(jù)實驗數(shù)據(jù)可知,通過這種方法,提高了識別率、檢測時間大大縮短。
關鍵詞:軟件定義網(wǎng)絡;分布式拒絕服務攻擊;反向傳播神經(jīng)網(wǎng)絡;特征值;攻擊檢測
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)33-0077-02
SDN作為網(wǎng)絡體系結構,具有典型的特點,基于此,網(wǎng)絡控制平面分離與數(shù)據(jù)平面。比較與以往的網(wǎng)絡體系架構,SDN的優(yōu)勢之處有以下幾點:可編程、硬件通用、管理控制等。大部分控制器組成了一個控制平面,而控制器的作用,即底層的交換設備融合與上層的應用;交換機組成了數(shù)據(jù)平面,其功能是傳遞數(shù)據(jù)。在積極使用SDN的同時,引發(fā)了很多SDN的安全問題需要大家關注,作為SDN體系結構,其包括控制平面、數(shù)據(jù)平面等,而交換機與控制器緊密融合在一起,反之,這個網(wǎng)絡無法控制,因此,只有控制器到達安全的狀態(tài),SDN網(wǎng)絡才能安全。當分布式拒絕服務攻擊DDoS的時候,能夠影響控制器的安全,對于DDoS攻擊,主要是攻擊者借助傀儡主機,對計算資源進行攻擊,避免目標主機把服務給予合法的用戶。當DDoS進行攻擊的時候,攻擊者先進入部分主機,即SDN網(wǎng)絡當中的,把大量的虛假的、沒有效果的網(wǎng)絡流量輸進網(wǎng)絡中,使得控制器資源全部消耗完畢,使得數(shù)據(jù)包轉發(fā)不成功。目前,人們針對SDN安全領域進行研究,涉及以下方面:如何預防攻擊者以非授權方式來訪問交換機;如何預防攻擊者非法控制控制器,以及DDoS攻擊如何被快速檢測到。當今,互聯(lián)網(wǎng)經(jīng)常受到DDoS的攻擊[1]。
研究者針對以前的網(wǎng)絡架構,使用很多方法來檢測DDoS的攻擊,SDN網(wǎng)絡不同于以往的網(wǎng)絡構架,其作為一種典型的網(wǎng)絡,通過這個網(wǎng)絡完成一定的工作,使用的原理與以往的網(wǎng)絡不一樣,在使用SDN網(wǎng)絡的時候,也引發(fā)很多網(wǎng)絡安全方面的問題,值得人們進一步研究。下面具體分析如下。
1 SDN環(huán)境下的DDoS攻擊
基于SDN網(wǎng)絡,使得控制平面、數(shù)據(jù)平面相互獨立,比如,數(shù)據(jù)平面在接收網(wǎng)絡數(shù)據(jù)包的時候,需要控制平面提供其流規(guī)則,以流規(guī)則為核心,對數(shù)據(jù)包進行梳理。對于網(wǎng)絡運營商,基于這種非主動的控制模式對網(wǎng)絡實現(xiàn)了控制,同時,安全問題也出現(xiàn)了。當進行匹配時,其若與流表項不匹配,則控制器會收到其傳遞的請求。流程圖如圖1所示。
2 基于BPNN的DDoS攻擊檢測方法
針對BPNN攻擊,使用的檢測方法具體5大模塊,其模塊包括:流表收集的、特征提取的、數(shù)據(jù)訓練的、攻擊檢測的、攻擊處理的等,如圖2所示。其中,流表收集模塊的功能即按照規(guī)定把流表請求傳遞給Openflow交換機,而交換機反饋給流表的信息,則借助加密的信道傳送到流表收集模塊當中。第二個是特征提取模塊,其功能是取出與DDoS攻擊有關的特征值,即由流表收集模塊所收集的流表中,第三個是數(shù)據(jù)訓練模塊,其采取BPNN方法,把提取的特征值、信息進行練習。最后是攻擊檢測模塊,需要對網(wǎng)絡數(shù)據(jù)包、訓練結論進行評價,目前的網(wǎng)絡是不是被攻擊。如果檢測到有攻擊的跡象,其受到控制器的管理,而這些跡象由攻擊處理模塊傳達[2]。
2.1 流表收集
通過Open flow協(xié)議,得到收集流表的信息,如圖3所示。對于ofp_flow stats_request報文通過交換機回復控制器按照計劃來傳送,同時取得流表的時間,其間隔要適宜,進一步設計流表周期,以及OVS控制器的時間。先實施sudo ovs-ofctl dump-flows s1>a.txt,接著實施cata.txt2.2對重定向文件進行讀取的 同時,實現(xiàn)流表收取。
2.2 流特征提取
作為DDoS攻擊者,在實施攻擊的時候采取多種方法,而其攻擊流量以一定的規(guī)律執(zhí)行。因此,結合流表項信息對網(wǎng)絡流量的分布特點以及改變進行分析,最終實現(xiàn)對攻擊情況進行檢測。以OpenFlow協(xié)議為依據(jù),數(shù)據(jù)包所轉發(fā)的信息以交換機的流表為依據(jù),通過多個流表項構成一個流表。流表項作為一個規(guī)則促進數(shù)據(jù)進行傳遞,其結構如圖4所示。
在流表項當中有一個是計數(shù)器,主要對數(shù)據(jù)流的信息進行記錄,當DDoS進行攻擊時,能夠控制與攻擊大部分傀儡機,作為攻擊者在任何時刻都有可能造假對數(shù)據(jù)包源的IP地址進行攻擊,使得源IP地址不集中,且數(shù)量增加;對于網(wǎng)絡數(shù)據(jù)包而言,一起流到受害機當中,對一些端口進行攻擊阻礙其提供服務,所以,在網(wǎng)絡數(shù)據(jù)包當中,有很多方面是集中的[3],包括:目的IP地址、目的端口地址等,當DDoS實施攻擊的時候,流量特征也隨之而改變,大部分攻擊流量形成一定的規(guī)則,因此,基于獲取流表項信息,對網(wǎng)絡流量的分布特點進行分析,進而對攻擊流進行檢測。
2.3 分類算法
不論是常態(tài),還是發(fā)生攻擊的時候,具有不同的流量特征,所以,攻擊檢測的問題與分類問題類似,結合特征值對網(wǎng)絡的情況進行判斷,看其正常與否,最終把常態(tài)、攻擊態(tài)區(qū)別開。在進行攻擊檢測的時候,需要找到一個適宜的網(wǎng)絡流特征,即流包數(shù)的內(nèi)容,包括:均值、對流比、端口的增速、源IP的增速等;還包括流表項的內(nèi)容,即速率、流表匹配的成功率,再有,構成六元組樣本的特征序列等,對于樣本的序列,包括:常態(tài)、非常態(tài)。檢測模型主要以BP神經(jīng)網(wǎng)絡是算法來建構的,通過模型主要劃分那些沒有標記的特征樣本序列,BP神經(jīng)網(wǎng)絡的結構如圖5所示。endprint
作為BP神經(jīng)網(wǎng)絡,其理論、體系、學習的機制均比較全面。在計算過程中,實現(xiàn)正向的傳遞,以及非正向的調(diào)整,使得神經(jīng)元之間的權值及時糾正,對于誤差在精度范圍之內(nèi)時,不需要繼續(xù)學習。
3 實驗及分析
3.1 實現(xiàn)環(huán)境
為了檢驗DDoS攻擊檢測方法是否有效,需要在部署軟件定義網(wǎng)絡的環(huán)境下來完成。而Ubuntu環(huán)境下,往往安裝Openflow交換機,數(shù)量為3臺。終端主機以內(nèi)核級虛擬化為主。在實驗當中,主要使用ODL控制器、OvS交換機等。對于網(wǎng)絡拓撲圖,即圖6所示。
Network1與受害者網(wǎng)絡統(tǒng)一,通過ODL控制器對三個OpenFlow的交換機進行把控。Network2作為一種僵尸網(wǎng)絡,通過DDoS洪水流量形成的。而在Network2、Network3主機之間,存放了反向散射通信、IP欺騙流向等。當訓練樣本形成過程中,在Networkl中的主機實施正常訪問之后形成正常流量,涉及流量有TCP的、UDP的、ICMP的等。非正常流量即CAIDADDoS 2007數(shù)據(jù)集。針對網(wǎng)絡流量來說,其攻擊種類有:TCP SYN flood、 UDP flood、 ICMPflood等。在查看流表的時候,憑借代碼sudo ovs-ofctl dump-flows s1來執(zhí)行,基于OVS交換機,這些流量最終形成對應的流表,把其流表接收在一起,進行訓練樣本的劃分,即正常的、DDoS攻擊流量的,把其進行轉換,作為攻擊檢測的特征值。
3.2 結果分析
通過這種算法對一些實驗進行檢驗,借助Python達成的。其中,以sigmoid為激活函數(shù)。先把二次代價函數(shù)當作損失函數(shù),再把交叉嫡函數(shù)當作代價函數(shù),把其比較與二次代價函數(shù)。
在輸出層、輸入層當中,其單元數(shù)取決于問題自身,而本文的輸入單元數(shù),以六特征維數(shù)為準,而輸出單元,即0常態(tài)與1,處于攻擊的狀態(tài)。在中間不明顯的層次,其單元數(shù)取決于誰,還沒有對應的方法來解決。這就說明,問題的性質(zhì)越惡劣,所需的隱層單元數(shù)越多;但隨著隱層單元數(shù)的增多,使得計算量越來越多,最終形成“過擬合”的問題。
總而言之,在SDN架構的基礎上對DDoS攻擊進行檢測,本文先對DDoS的攻擊進行介紹,而在SDN網(wǎng)絡中,控制器能夠集中進行控制,及時取得OpenFlow交換機的信息,并收集到六元組,即與DDoS密切有關的,為了更好地檢測DDoS攻擊情況,以BPNN算法處理流量的關鍵特征值為依據(jù),使其能夠?qū)DN架構下的流量關鍵屬性進行收集與分析,基于軟件定義網(wǎng)絡環(huán)境,使得這種方法的實效性得以驗證。
參考文獻:
[1] 左青云,陳鳴,趙廣松,等. 基于OpenFlow的SDN技術研究[J].軟件學報,2013(5):1078-1097.
[2] 鄭亞,陳興蜀,尹學淵. 基于PCC時間序列的DDoS檢測算法[J].四川大學學報:工程科學版,2015(12):142-148.
[3] 楊君剛,王新桐,劉故,等. 基于流量和IP墑特性的DDoS攻擊檢測方法[J]. 計算機應用研究,2016,33(04):1145-1149.endprint