王 鑫,王楓皓
(1.解放軍91404部隊,河北 秦皇島 066000;2.陸軍裝甲兵學(xué)院 信息通信系,北京 100072)
互聯(lián)網(wǎng)已經(jīng)發(fā)展成為現(xiàn)代社會的重要基礎(chǔ)設(shè)施之一,滲透到包括軍事、文化、政治、社會以及經(jīng)濟等領(lǐng)域。根據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心(China Internet Network Information Center,CNNIC) 發(fā) 布的第43次《中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告》顯示,截至2018年12月,網(wǎng)民規(guī)模達到8.29億,全年新增網(wǎng)民5 623萬,互聯(lián)網(wǎng)普及率59.6%[1]。伴隨著互聯(lián)網(wǎng)用戶規(guī)模的不斷增加、業(yè)務(wù)領(lǐng)域的不斷拓展以及各類新興技術(shù)的不斷崛起,傳統(tǒng)的基于TCP/IP架構(gòu)的互聯(lián)網(wǎng)絡(luò)已經(jīng)遠遠不能滿足需求。為了解決當前互聯(lián)網(wǎng)中存在的問題,學(xué)術(shù)界提出了一種以信息為中心的網(wǎng)絡(luò)架構(gòu)。由UCLA的張麗霞和Van Jacobson等提出的命名數(shù)據(jù)網(wǎng)絡(luò)(Named Data Networking,NDN)[2],具備多樣、靈活、可配置的路由緩存策略以及對數(shù)據(jù)內(nèi)容加密的源生支持,現(xiàn)已取令人矚目的發(fā)展,儼然成為以信息為中心的主流網(wǎng)絡(luò)架構(gòu)。
盡管NDN網(wǎng)絡(luò)架構(gòu)從根本上解決了TCP/IP網(wǎng)絡(luò)存在的諸多問題,但也帶來了新的安全隱患[3]。其中,緩存污染攻擊、興趣泛洪攻擊和內(nèi)容污染攻擊導(dǎo)致的網(wǎng)絡(luò)擁塞、拒絕服務(wù)、資源耗盡等問題,對NDN網(wǎng)絡(luò)架構(gòu)影響很大。
與此同時,近年來計算機性能得到了大幅提升,再次引發(fā)了機器學(xué)習(xí)熱潮,而越來越多的人也開始將BP神經(jīng)網(wǎng)絡(luò)用于入侵檢測方法,識別包括DoS攻擊在內(nèi)的各種類型的攻擊[4],從而提高對各典型攻擊類型的檢測率和檢測效率。隨著命名數(shù)據(jù)網(wǎng)絡(luò)受到越來越多的重視,必然需要一個可以對典型NDN入侵攻擊行為進行檢測的方法,才能使ISP在實際部署NDN時能夠有效維護網(wǎng)絡(luò)的安全。
本文主要面向命名數(shù)據(jù)網(wǎng)絡(luò),設(shè)計并實現(xiàn)基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測方法。該方法搜集命名數(shù)據(jù)網(wǎng)絡(luò)的基本性能數(shù)據(jù),經(jīng)過處理后作為入侵檢測方法的原始輸入。利用神經(jīng)網(wǎng)絡(luò)對網(wǎng)絡(luò)行為做出檢測,提高了命名數(shù)據(jù)網(wǎng)絡(luò)的網(wǎng)絡(luò)防范能力。目前尚沒有其他方法解決NDN中的入侵檢測問題,本文工作在入侵檢測方面達到了很高的檢測率,且證明了方法的可行性。
誤差逆?zhèn)鞑ィ˙ack Propagation)是迄今為止最成功的神經(jīng)網(wǎng)絡(luò)算法?,F(xiàn)實任務(wù)在使用神經(jīng)網(wǎng)絡(luò)時,大多使用BP算法進行訓(xùn)練[5]。BP神經(jīng)網(wǎng)絡(luò)的原理分為兩個階段。第一階段是輸入層接收到輸入數(shù)據(jù)后網(wǎng)絡(luò)進行逐步計算,得出整個網(wǎng)絡(luò)的輸出數(shù)據(jù)。第二階段的主要思想是誤差逆?zhèn)鞑?,期望的輸出不變,輸出層根?jù)現(xiàn)有輸出計算誤差,并根據(jù)現(xiàn)有的誤差反向傳播,將誤差在整個網(wǎng)絡(luò)之內(nèi)分攤,以此為依據(jù)調(diào)節(jié)神經(jīng)元之間的連接權(quán)值與閾值,從而達到對網(wǎng)絡(luò)進行優(yōu)化的目的,提高網(wǎng)絡(luò)輸出的準確程度。
應(yīng)用最廣泛的三層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型,如圖1所示。圖1中,Ii(i=1,2,…,m)表示輸入,即輸入層的輸出。對于隱含層,隱層數(shù)過多,那么神經(jīng)網(wǎng)絡(luò)的泛化能力會變差,產(chǎn)生過度擬合情況,無法準確預(yù)測;隱含層的數(shù)目過少,則連接權(quán)值組合數(shù)不足,易導(dǎo)致神經(jīng)網(wǎng)絡(luò)預(yù)測精度達不到要求。根據(jù)長期應(yīng)用經(jīng)驗,隱層單元數(shù)可用確定,其中m為輸入神經(jīng)元數(shù),n為輸出神經(jīng)元數(shù),a為1~10的常數(shù),yi(i=1,2,…,n)表示隱含層的輸出,激活函數(shù)f(·)采用Sigmoid函數(shù),即S函數(shù)。
圖1 典型BP網(wǎng)絡(luò)
命名數(shù)據(jù)網(wǎng)絡(luò)中存在兩種數(shù)據(jù)報文,分別為興趣包和數(shù)據(jù)包。
興趣包和數(shù)據(jù)包都是通過內(nèi)容名稱進行標識。興趣包負責(zé)攜帶用戶(Comsumer)的請求信息;數(shù)據(jù)包則由信息的生產(chǎn)者(Provider)提供,負責(zé)攜帶用戶想要獲取的數(shù)據(jù)內(nèi)容,同時Provider對信息進行簽名[6]。
路由節(jié)點則維護了3種重要的數(shù)據(jù)結(jié)構(gòu),負責(zé)對這兩種數(shù)據(jù)包進行處理[7],分別是轉(zhuǎn)發(fā)信息表(Forwarding Information Base,F(xiàn)IB)、未決興趣表(Pending Interest Table,PIT)和內(nèi)容緩存(Content Store,CS)。FIB記錄了興趣請求到達數(shù)據(jù)提供者的下一跳接口的路由信息,PIT則記錄了沒有被滿足的興趣包的源消費者接口信息,而CS則類似于IP架構(gòu)中Quic協(xié)議中的網(wǎng)頁緩存。
一個搭載了NDN網(wǎng)絡(luò)的節(jié)點,網(wǎng)絡(luò)處理流程如圖2所示。
圖2 NDN路由節(jié)點網(wǎng)絡(luò)處理流程
當NDN的路由節(jié)點接收到Interest后,首先在內(nèi)容緩存CS尋找是否已經(jīng)緩存相應(yīng)名稱前綴的Data,如果結(jié)果顯示存在,則直接向Comsumer交付該Interest,否則查找PIT。在PIT中,對于相同的內(nèi)容請求,僅僅需要在來源端口列表中添加相應(yīng)的端口信息,否則繼續(xù)查找FIB。在FIB中,如果存在相同名稱的路由,那么直接進行Interest轉(zhuǎn)發(fā),并在PIT中記下該Interest的內(nèi)容信息,否則直接丟棄該Interest或者向Comsumer交付NACK。
路由節(jié)點收到相應(yīng)Data后,查找PIT中是否存在滿足該Data的PIT項,如果沒有則丟棄,否則查找PIT表項中添加的接口信息,將此Data向所有接口進行轉(zhuǎn)發(fā),同時根據(jù)節(jié)點的緩存規(guī)則判斷是否需要將此Data添加至CS中。
基于結(jié)構(gòu)化的思想構(gòu)建NDN的入侵檢測模型,如圖3所示。在NDN網(wǎng)絡(luò)的消費者和數(shù)據(jù)生產(chǎn)者之間的NDN路由器節(jié)點上構(gòu)建一個Tracer服務(wù),所有的服務(wù)產(chǎn)生的信息以Tracer命名,搭載入侵檢測的節(jié)點周期性請求其余節(jié)點的Tracer信息。利用NDN網(wǎng)絡(luò)中核心節(jié)點的神經(jīng)網(wǎng)絡(luò)算法分析網(wǎng)絡(luò)數(shù)據(jù),檢測出網(wǎng)絡(luò)中的異常數(shù)據(jù)流量,智能識別存在的網(wǎng)絡(luò)攻擊,從而達到提升網(wǎng)絡(luò)安全性能的效果。
圖3 NDN網(wǎng)絡(luò)入侵檢測架構(gòu)
NDN網(wǎng)絡(luò)攻擊的主要方式分為命名攻擊、路由攻擊、緩存攻擊和其他類型的攻擊4類。在這4類攻擊中有兩類最具代表的攻擊方式已經(jīng)受到NDN團隊的認可,分別是IFA和CPA[8-9]。
興趣泛洪攻擊(Interest Flooding Attack,IFA)主的要方式是由攻擊節(jié)點不斷發(fā)送大量特定的名稱前綴的興趣包[10],由于該興趣包請求的數(shù)據(jù)不存在,所以導(dǎo)致NDN的PIT表項被嚴重占滿,但是請求的Interest并沒有被滿足,同時由于節(jié)點的數(shù)據(jù)處理能力以及鏈路的帶寬、傳輸時延等因素的影響,生產(chǎn)者難以滿足如此巨大的請求量,會出現(xiàn)巨大的丟包現(xiàn)象。
緩存污染攻擊(Cache Pollution Attack,CPA)的主要方式則是通過大量請求流行度較小或者無用的內(nèi)容甚至是惡意的內(nèi)容,從而使沿途節(jié)點中的CS條目充滿對于主體Comsumer來說并不需要的Data,但是由于NDN路由器的CS條目已經(jīng)被占滿,其他的主體Comsumer想要請求相同的高流行度的內(nèi)容時,節(jié)點查找緩存的過程就會出現(xiàn)緩存丟失情況,從而不能實現(xiàn)就近獲取,破壞了NDN設(shè)計的優(yōu)勢,降低了整個命名數(shù)據(jù)網(wǎng)絡(luò)的QoS。
入侵檢測方法的主要功能是從互聯(lián)網(wǎng)絡(luò)中的路由節(jié)點或者關(guān)鍵用戶節(jié)點收集網(wǎng)絡(luò)信息,針對這些信息進行專門分析,以此檢查網(wǎng)絡(luò)中是否有違反安全策略的不正當行為或受到黑客攻擊的現(xiàn)象。模型的主要動作包括數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)傳輸、樣本建立、神經(jīng)網(wǎng)絡(luò)構(gòu)建以及入侵檢測等。入侵檢測的機制如圖4所示。
圖4 基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測機制
機制中,由于NDN是完成不同于TCP/IP架構(gòu)的網(wǎng)絡(luò),所以路由器在進行信息收集時需要選取完全不同于原有網(wǎng)絡(luò)架構(gòu)中的信息。選取的信息如表1所示,基本涵蓋了所有命名數(shù)據(jù)網(wǎng)絡(luò)的要素信息。
表1 NDN路由節(jié)點特征要素總結(jié)
與此同時,將數(shù)據(jù)標準化處理的步驟置于路由器節(jié)點,以分擔(dān)網(wǎng)絡(luò)中的計算處理資源,加快入侵檢測分類器初始數(shù)據(jù)集的生成。為了減少數(shù)據(jù)間的相關(guān),使用PCA方法對數(shù)據(jù)信息進行預(yù)處理,處理公式如下:
其中是X矩陣每一列的均值,sj為每一列的標準化值,公式為:
數(shù)據(jù)傳輸階段利用NDN固有的傳輸原理,將數(shù)據(jù)以協(xié)商好的名字進行標識。入侵檢測節(jié)點發(fā)送以此名字命名的興趣包到整個網(wǎng)絡(luò),相應(yīng)路由器經(jīng)過標準化處理完成的數(shù)據(jù)包,自然通過整個網(wǎng)絡(luò)發(fā)送到此節(jié)點。采用層次化的命名方式構(gòu)建一個命名樹,數(shù)據(jù)包和興趣包命名結(jié)構(gòu)如圖5所示。
圖5 數(shù)據(jù)包以及興趣包命名結(jié)構(gòu)
例如,節(jié)點3的未決興趣表更新頻率信息命名方式為Tracer/3/Pit Update Rate。這樣的命名方式既體現(xiàn)了數(shù)據(jù)的實際含義,又可以靈活實現(xiàn)數(shù)據(jù)的聚合。假設(shè)現(xiàn)在想要獲取所有節(jié)點的緩存未命中數(shù)目,那么入侵檢測節(jié)點發(fā)送的興趣包采用的命名方式可以是Tracer/*/Cs Miss。所有的路由節(jié)點收到興趣包后會原路返回包含各自緩存未命中信息的數(shù)據(jù)包。
在入侵檢測節(jié)點收到所有信息后進行BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,將滿足條件的入侵檢測分類器作為節(jié)點的核心處理部分,從而進行入侵檢測。
NDN網(wǎng)絡(luò)目前仍舊處于研究階段,并沒有進行大規(guī)模部署。ndnSIM作為NDN的仿真平臺得到了學(xué)術(shù)界的認可。本文在本地計算機上采用ndnSIM進行仿真。計算機的配置如下:Ubuntu 18.04,內(nèi)核版本 4.15,Intel Core i5 CPU,DDR3 1866 16GB內(nèi)存,1 TB硬盤。NDN網(wǎng)絡(luò)仿真拓撲結(jié)構(gòu)采用如圖3所示的網(wǎng)絡(luò)拓撲。其中,4個NDN路由器節(jié)點,1個正常數(shù)據(jù)服務(wù)器節(jié)點,1個偽裝數(shù)據(jù)服務(wù)器節(jié)點,1個正常的消費者,1個攻擊者,1個入侵檢測節(jié)點。每個源服務(wù)器提供50種內(nèi)容,則整個拓撲結(jié)構(gòu)中共有80種內(nèi)容,其中偽裝數(shù)據(jù)服務(wù)器節(jié)點提供與正常服務(wù)器相同名稱前綴的20個內(nèi)容,但這20個內(nèi)容的數(shù)據(jù)錯誤,已被污染。用戶請求數(shù)據(jù)的模式服從Zipf-Mandelbrot分布,其中α=0.8。節(jié)點緩存空間設(shè)置為100,緩存替換策略設(shè)置為LFU替換策略。每個節(jié)點緩存容量為C,C設(shè)置為50。鏈路的帶寬設(shè)置為1 Mb/s,時延設(shè)置為10 ms。
首先進行20 min的正常網(wǎng)絡(luò)的數(shù)據(jù)仿真,然后通過攻擊者進行興趣泛洪攻擊20 min,再進行緩存污染攻擊20 min,之后各進行5 min的3種網(wǎng)絡(luò)行為的數(shù)據(jù)仿真。其中,將前60 min收集到的數(shù)據(jù)作為訓(xùn)練樣本,將后15 min的數(shù)據(jù)作為測試樣本,以檢測入侵檢測的效果。
由于樣本是以時間為單位周期性統(tǒng)計生成的,所以訓(xùn)練樣本1 200個,測試樣本900個。在Ubuntu環(huán)境下,利用Python編寫3層BP神經(jīng)網(wǎng)絡(luò),其中輸入神經(jīng)元為13個,輸入分別為路由節(jié)點不同的要素信息,輸出神經(jīng)元的個數(shù)為3個,分別為IFA攻擊、CPA攻擊和Normal數(shù)據(jù)。根據(jù)上述應(yīng)用經(jīng)驗,設(shè)置隱含層神經(jīng)元個數(shù)為9個。神經(jīng)網(wǎng)絡(luò)模型如圖6所示。
圖6 神經(jīng)網(wǎng)絡(luò)模型
根據(jù)TCP/IP中衡量入侵檢測的標準,對本文模型在不同的路由策略下的檢測率和誤報率進行對比。其中:
檢測效果如圖7所示。可見,隨著IFA攻擊者攻擊頻率的增加,兩種路由策略下檢測率都呈現(xiàn)上升趨勢,且均保持了較低的誤報率。這是由于在攻擊者的攻擊頻率增加的條件前提下,IFA攻擊的直接影響是路由器節(jié)點收到大量的興趣包請求報文,但是由于洪泛攻擊會造成節(jié)點帶寬耗盡,整個網(wǎng)絡(luò)特征變化較為明顯,所以整體會呈現(xiàn)檢測率上升的趨勢。
其中,Multicast策略下由于多節(jié)點分擔(dān)了攻擊者的報文數(shù)量,且在FIB上存在數(shù)據(jù)請求聚合的機制,所以導(dǎo)致網(wǎng)絡(luò)特征變化幅度較Bestroute不明顯,以致于相同攻擊頻率下的檢測效果始終低于Bestroute。
圖7 不同路由策略下檢測率以及誤報率對比
相反,Multicast策略下由于多節(jié)點對網(wǎng)絡(luò)的流量和特征數(shù)據(jù)進行了分散,導(dǎo)致BP網(wǎng)絡(luò)會產(chǎn)生許多模糊判別,相較Bestroute誤報率較高。
通過分析發(fā)現(xiàn),基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測模型在命名數(shù)據(jù)網(wǎng)絡(luò)進行應(yīng)用能達到較好的效果,具備實際部署的可行性。
本文主要設(shè)計了一種應(yīng)用于命名數(shù)據(jù)網(wǎng)絡(luò)的入侵檢測方法。該方法收集網(wǎng)絡(luò)節(jié)點的數(shù)據(jù),總結(jié)5種特征要素作為核心檢測模塊的輸入,并基于BP神經(jīng)網(wǎng)絡(luò)構(gòu)建核心檢測模塊。利用神經(jīng)網(wǎng)絡(luò)進行網(wǎng)絡(luò)入侵檢測行為的判斷,通過仿真研究驗證了本方法的可行性,并表現(xiàn)出了良好的性能,可以在實際部署NDN時作為一種參考。