王 鑫,王楓皓
(1.解放軍91404部隊,河北 秦皇島 066000;2.陸軍裝甲兵學院 信息通信系,北京 100072)
互聯網已經發展成為現代社會的重要基礎設施之一,滲透到包括軍事、文化、政治、社會以及經濟等領域。根據中國互聯網絡信息中心(China Internet Network Information Center,CNNIC) 發 布的第43次《中國互聯網絡發展狀況統計報告》顯示,截至2018年12月,網民規模達到8.29億,全年新增網民5 623萬,互聯網普及率59.6%[1]。伴隨著互聯網用戶規模的不斷增加、業務領域的不斷拓展以及各類新興技術的不斷崛起,傳統的基于TCP/IP架構的互聯網絡已經遠遠不能滿足需求。為了解決當前互聯網中存在的問題,學術界提出了一種以信息為中心的網絡架構。由UCLA的張麗霞和Van Jacobson等提出的命名數據網絡(Named Data Networking,NDN)[2],具備多樣、靈活、可配置的路由緩存策略以及對數據內容加密的源生支持,現已取令人矚目的發展,儼然成為以信息為中心的主流網絡架構。
盡管NDN網絡架構從根本上解決了TCP/IP網絡存在的諸多問題,但也帶來了新的安全隱患[3]。其中,緩存污染攻擊、興趣泛洪攻擊和內容污染攻擊導致的網絡擁塞、拒絕服務、資源耗盡等問題,對NDN網絡架構影響很大。
與此同時,近年來計算機性能得到了大幅提升,再次引發了機器學習熱潮,而越來越多的人也開始將BP神經網絡用于入侵檢測方法,識別包括DoS攻擊在內的各種類型的攻擊[4],從而提高對各典型攻擊類型的檢測率和檢測效率。隨著命名數據網絡受到越來越多的重視,必然需要一個可以對典型NDN入侵攻擊行為進行檢測的方法,才能使ISP在實際部署NDN時能夠有效維護網絡的安全。
本文主要面向命名數據網絡,設計并實現基于BP神經網絡的入侵檢測方法。該方法搜集命名數據網絡的基本性能數據,經過處理后作為入侵檢測方法的原始輸入。利用神經網絡對網絡行為做出檢測,提高了命名數據網絡的網絡防范能力。目前尚沒有其他方法解決NDN中的入侵檢測問題,本文工作在入侵檢測方面達到了很高的檢測率,且證明了方法的可行性。
誤差逆傳播(Back Propagation)是迄今為止最成功的神經網絡算法。現實任務在使用神經網絡時,大多使用BP算法進行訓練[5]。BP神經網絡的原理分為兩個階段。第一階段是輸入層接收到輸入數據后網絡進行逐步計算,得出整個網絡的輸出數據。第二階段的主要思想是誤差逆傳播,期望的輸出不變,輸出層根據現有輸出計算誤差,并根據現有的誤差反向傳播,將誤差在整個網絡之內分攤,以此為依據調節神經元之間的連接權值與閾值,從而達到對網絡進行優化的目的,提高網絡輸出的準確程度。
應用最廣泛的三層神經網絡結構模型,如圖1所示。圖1中,Ii(i=1,2,…,m)表示輸入,即輸入層的輸出。對于隱含層,隱層數過多,那么神經網絡的泛化能力會變差,產生過度擬合情況,無法準確預測;隱含層的數目過少,則連接權值組合數不足,易導致神經網絡預測精度達不到要求。根據長期應用經驗,隱層單元數可用確定,其中m為輸入神經元數,n為輸出神經元數,a為1~10的常數,yi(i=1,2,…,n)表示隱含層的輸出,激活函數f(·)采用Sigmoid函數,即S函數。

圖1 典型BP網絡
命名數據網絡中存在兩種數據報文,分別為興趣包和數據包。
興趣包和數據包都是通過內容名稱進行標識。興趣包負責攜帶用戶(Comsumer)的請求信息;數據包則由信息的生產者(Provider)提供,負責攜帶用戶想要獲取的數據內容,同時Provider對信息進行簽名[6]。
路由節點則維護了3種重要的數據結構,負責對這兩種數據包進行處理[7],分別是轉發信息表(Forwarding Information Base,FIB)、未決興趣表(Pending Interest Table,PIT)和內容緩存(Content Store,CS)。FIB記錄了興趣請求到達數據提供者的下一跳接口的路由信息,PIT則記錄了沒有被滿足的興趣包的源消費者接口信息,而CS則類似于IP架構中Quic協議中的網頁緩存。
一個搭載了NDN網絡的節點,網絡處理流程如圖2所示。

圖2 NDN路由節點網絡處理流程
當NDN的路由節點接收到Interest后,首先在內容緩存CS尋找是否已經緩存相應名稱前綴的Data,如果結果顯示存在,則直接向Comsumer交付該Interest,否則查找PIT。在PIT中,對于相同的內容請求,僅僅需要在來源端口列表中添加相應的端口信息,否則繼續查找FIB。在FIB中,如果存在相同名稱的路由,那么直接進行Interest轉發,并在PIT中記下該Interest的內容信息,否則直接丟棄該Interest或者向Comsumer交付NACK。
路由節點收到相應Data后,查找PIT中是否存在滿足該Data的PIT項,如果沒有則丟棄,否則查找PIT表項中添加的接口信息,將此Data向所有接口進行轉發,同時根據節點的緩存規則判斷是否需要將此Data添加至CS中。
基于結構化的思想構建NDN的入侵檢測模型,如圖3所示。在NDN網絡的消費者和數據生產者之間的NDN路由器節點上構建一個Tracer服務,所有的服務產生的信息以Tracer命名,搭載入侵檢測的節點周期性請求其余節點的Tracer信息。利用NDN網絡中核心節點的神經網絡算法分析網絡數據,檢測出網絡中的異常數據流量,智能識別存在的網絡攻擊,從而達到提升網絡安全性能的效果。

圖3 NDN網絡入侵檢測架構
NDN網絡攻擊的主要方式分為命名攻擊、路由攻擊、緩存攻擊和其他類型的攻擊4類。在這4類攻擊中有兩類最具代表的攻擊方式已經受到NDN團隊的認可,分別是IFA和CPA[8-9]。
興趣泛洪攻擊(Interest Flooding Attack,IFA)主的要方式是由攻擊節點不斷發送大量特定的名稱前綴的興趣包[10],由于該興趣包請求的數據不存在,所以導致NDN的PIT表項被嚴重占滿,但是請求的Interest并沒有被滿足,同時由于節點的數據處理能力以及鏈路的帶寬、傳輸時延等因素的影響,生產者難以滿足如此巨大的請求量,會出現巨大的丟包現象。
緩存污染攻擊(Cache Pollution Attack,CPA)的主要方式則是通過大量請求流行度較小或者無用的內容甚至是惡意的內容,從而使沿途節點中的CS條目充滿對于主體Comsumer來說并不需要的Data,但是由于NDN路由器的CS條目已經被占滿,其他的主體Comsumer想要請求相同的高流行度的內容時,節點查找緩存的過程就會出現緩存丟失情況,從而不能實現就近獲取,破壞了NDN設計的優勢,降低了整個命名數據網絡的QoS。
入侵檢測方法的主要功能是從互聯網絡中的路由節點或者關鍵用戶節點收集網絡信息,針對這些信息進行專門分析,以此檢查網絡中是否有違反安全策略的不正當行為或受到黑客攻擊的現象。模型的主要動作包括數據采集、數據預處理、數據傳輸、樣本建立、神經網絡構建以及入侵檢測等。入侵檢測的機制如圖4所示。

圖4 基于BP神經網絡的入侵檢測機制
機制中,由于NDN是完成不同于TCP/IP架構的網絡,所以路由器在進行信息收集時需要選取完全不同于原有網絡架構中的信息。選取的信息如表1所示,基本涵蓋了所有命名數據網絡的要素信息。

表1 NDN路由節點特征要素總結
與此同時,將數據標準化處理的步驟置于路由器節點,以分擔網絡中的計算處理資源,加快入侵檢測分類器初始數據集的生成。為了減少數據間的相關,使用PCA方法對數據信息進行預處理,處理公式如下:

其中是X矩陣每一列的均值,sj為每一列的標準化值,公式為:

數據傳輸階段利用NDN固有的傳輸原理,將數據以協商好的名字進行標識。入侵檢測節點發送以此名字命名的興趣包到整個網絡,相應路由器經過標準化處理完成的數據包,自然通過整個網絡發送到此節點。采用層次化的命名方式構建一個命名樹,數據包和興趣包命名結構如圖5所示。

圖5 數據包以及興趣包命名結構
例如,節點3的未決興趣表更新頻率信息命名方式為Tracer/3/Pit Update Rate。這樣的命名方式既體現了數據的實際含義,又可以靈活實現數據的聚合。假設現在想要獲取所有節點的緩存未命中數目,那么入侵檢測節點發送的興趣包采用的命名方式可以是Tracer/*/Cs Miss。所有的路由節點收到興趣包后會原路返回包含各自緩存未命中信息的數據包。
在入侵檢測節點收到所有信息后進行BP神經網絡的訓練,將滿足條件的入侵檢測分類器作為節點的核心處理部分,從而進行入侵檢測。
NDN網絡目前仍舊處于研究階段,并沒有進行大規模部署。ndnSIM作為NDN的仿真平臺得到了學術界的認可。本文在本地計算機上采用ndnSIM進行仿真。計算機的配置如下:Ubuntu 18.04,內核版本 4.15,Intel Core i5 CPU,DDR3 1866 16GB內存,1 TB硬盤。NDN網絡仿真拓撲結構采用如圖3所示的網絡拓撲。其中,4個NDN路由器節點,1個正常數據服務器節點,1個偽裝數據服務器節點,1個正常的消費者,1個攻擊者,1個入侵檢測節點。每個源服務器提供50種內容,則整個拓撲結構中共有80種內容,其中偽裝數據服務器節點提供與正常服務器相同名稱前綴的20個內容,但這20個內容的數據錯誤,已被污染。用戶請求數據的模式服從Zipf-Mandelbrot分布,其中α=0.8。節點緩存空間設置為100,緩存替換策略設置為LFU替換策略。每個節點緩存容量為C,C設置為50。鏈路的帶寬設置為1 Mb/s,時延設置為10 ms。
首先進行20 min的正常網絡的數據仿真,然后通過攻擊者進行興趣泛洪攻擊20 min,再進行緩存污染攻擊20 min,之后各進行5 min的3種網絡行為的數據仿真。其中,將前60 min收集到的數據作為訓練樣本,將后15 min的數據作為測試樣本,以檢測入侵檢測的效果。
由于樣本是以時間為單位周期性統計生成的,所以訓練樣本1 200個,測試樣本900個。在Ubuntu環境下,利用Python編寫3層BP神經網絡,其中輸入神經元為13個,輸入分別為路由節點不同的要素信息,輸出神經元的個數為3個,分別為IFA攻擊、CPA攻擊和Normal數據。根據上述應用經驗,設置隱含層神經元個數為9個。神經網絡模型如圖6所示。

圖6 神經網絡模型
根據TCP/IP中衡量入侵檢測的標準,對本文模型在不同的路由策略下的檢測率和誤報率進行對比。其中:

檢測效果如圖7所示。可見,隨著IFA攻擊者攻擊頻率的增加,兩種路由策略下檢測率都呈現上升趨勢,且均保持了較低的誤報率。這是由于在攻擊者的攻擊頻率增加的條件前提下,IFA攻擊的直接影響是路由器節點收到大量的興趣包請求報文,但是由于洪泛攻擊會造成節點帶寬耗盡,整個網絡特征變化較為明顯,所以整體會呈現檢測率上升的趨勢。
其中,Multicast策略下由于多節點分擔了攻擊者的報文數量,且在FIB上存在數據請求聚合的機制,所以導致網絡特征變化幅度較Bestroute不明顯,以致于相同攻擊頻率下的檢測效果始終低于Bestroute。

圖7 不同路由策略下檢測率以及誤報率對比
相反,Multicast策略下由于多節點對網絡的流量和特征數據進行了分散,導致BP網絡會產生許多模糊判別,相較Bestroute誤報率較高。
通過分析發現,基于BP神經網絡的入侵檢測模型在命名數據網絡進行應用能達到較好的效果,具備實際部署的可行性。
本文主要設計了一種應用于命名數據網絡的入侵檢測方法。該方法收集網絡節點的數據,總結5種特征要素作為核心檢測模塊的輸入,并基于BP神經網絡構建核心檢測模塊。利用神經網絡進行網絡入侵檢測行為的判斷,通過仿真研究驗證了本方法的可行性,并表現出了良好的性能,可以在實際部署NDN時作為一種參考。