于露,李嘉彬,薛質(zhì)
(上海交通大學 電子信息與電氣工程學院,上海 200240)
車聯(lián)網(wǎng)(Internet of Vehicles,IoV)[1]是物聯(lián)網(wǎng)(Internet of Things,IoT)[2]的一個重要分支領(lǐng)域,確保道路安全并為車輛提供可靠的網(wǎng)絡服務是車聯(lián)網(wǎng)在現(xiàn)實應用中最重要的目標[3-5]。分布式拒絕服務(Distributed Denial of Service,DDoS)攻擊是最流行、最有效的入侵車聯(lián)網(wǎng)的方法。在DDoS攻擊中,攻擊者通過攻擊信息載體、形成通道阻塞,使得信道不再可用、信息無法到達節(jié)點[6],而車聯(lián)網(wǎng)的點對點網(wǎng)絡特性使得DDoS攻擊從可能變?yōu)楝F(xiàn)實可行。人們對使用滑動時間窗口或信息熵的方法檢測DDoS攻擊已開展了各種研究。ZHAO等[7]提出了DDoS攻擊檢測兩步法。FEINSTEIN等[8]研究了計算數(shù)據(jù)包屬性的熵和頻率排序分布來識別DDoS攻擊的方法,但對于檢測的準確性并沒有詳細討論。LEE等[9]研究了基于信息論來檢測網(wǎng)絡入侵的方法。VIRMANI等[10]提出了一種用于網(wǎng)絡入侵分析的熵偏差算法。HU等[11]提出了一種基于軟件定義網(wǎng)絡的DDoS攻擊檢測系統(tǒng)。WU等[12]將滑動窗口技術(shù)用于DDoS攻擊檢測。LI等[13]將此方法更新為逐個元素的滑動窗口,并只需計算滑動窗口中熵值的最值。已有基于信息熵的檢測方法大都致力于加快計算速度,提高檢測過程的靈敏度和魯棒性,對于準確度沒有較多提及。本文研究的檢測方法可幫助實時地識別每個獨立車聯(lián)網(wǎng)區(qū)域邊緣的DDoS攻擊,無需任何中心支持,從而節(jié)省響應時間和計算能力,同時提高攻擊檢測的準確性與時效性。首先介紹實時檢測系統(tǒng)架構(gòu),詳細闡釋信息熵計算器和異常檢測算法,將傳統(tǒng)軟件定義網(wǎng)絡中DDoS攻擊檢測的熵計算算法[4,14-15]改進為適合車聯(lián)網(wǎng)場景的算法,并提出一種新的累計時間窗異常偏差檢測算法,最后使用開源框架進行模擬,并用VeReMi數(shù)據(jù)集來驗證和評價。
檢測系統(tǒng)由車輛信息處理器、信息熵計算器和時間序列檢測預警器組成,如圖1所示。車輛信息處理器監(jiān)控全網(wǎng)車輛信息,預處理交通數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)發(fā)到熵計算器。熵計算器計算信息熵并發(fā)送到信息檢測預警器。信息檢測預警器將熵值與給定的風險模型匹配,并判斷是否發(fā)出警報。
1.1.1 序列異常檢測
本文探尋一種基于數(shù)據(jù)流的DDoS攻擊實時檢測算法,該算法需滿足以下檢測原則。
1) 準確性:準確判斷攻擊行為產(chǎn)生時間點,有較少漏判(False Negative)和誤判(False Positive)。
2) 實時性:能夠?qū)崟r、異步處理數(shù)據(jù)流,并在攻擊產(chǎn)生后較短時間內(nèi)發(fā)出警告。
序列異常檢測能識別序列中不正常的行為或事件,N-sigma統(tǒng)計法是傳統(tǒng)序列偏差檢測方法之一,但需要一定量的樣本數(shù)據(jù)支持,無法滿足實時檢測。因此,考慮滑動時間窗方法,根據(jù)數(shù)據(jù)點前后時間窗的概率模型,判斷該數(shù)據(jù)點的合法性。NAOHIRO等[16]提出過在故障探測領(lǐng)域使用累計異常時間窗檢測法,核心思想是用一個滑動采樣窗口記錄n次的數(shù)值,并按照高斯分布模型對n個點進行統(tǒng)計。將第n+1個數(shù)據(jù)值放入窗口樣本中,計算其分布位置。本文將其設計改進,并將累計時間窗用于DDoS檢測。
1.1.2 信息處理
在正常的狀態(tài)下,網(wǎng)絡流量數(shù)據(jù)包的變化規(guī)律屬于自然狀態(tài)。在無外界干擾的情況下,車聯(lián)網(wǎng)流量信息符合高斯分布的概率模型。本文將基于此項假設進行后續(xù)推導和驗證。結(jié)合第1.1.1節(jié),將已有數(shù)據(jù)集中數(shù)據(jù)包發(fā)生時間戳、車輛id等關(guān)鍵信息提取出來,轉(zhuǎn)化為一個數(shù)據(jù)包信息熵的時間序列輸入檢測系統(tǒng),最終通過檢測系統(tǒng),實時、準確地檢測到時間序列中異常行為的發(fā)生。
1.2.1 可行性分析
因為熵對信息分布的變化很敏感,所以選擇信息熵理論作為檢測系統(tǒng)的數(shù)學基礎。在車聯(lián)網(wǎng)環(huán)境下的DDoS攻擊,攻擊者會創(chuàng)建大量虛假的車輛身份,以發(fā)送錯誤信息來控制整個對等網(wǎng)絡,或者快速發(fā)送大量消息以阻塞網(wǎng)絡通信。例如女巫DDoS攻擊將導致短時間內(nèi)車輛id的消息數(shù)量飆升。這使得基于信息熵的實時檢測方法具有理論可行性。
1.2.2 滑動計算信息熵
滑動計算的概念很容易理解,即逐個元素的滑動寬度為ω的時間窗口,而并非是將整個序列分成獨立的部分,同時計算每個窗口的熵值。
假設有序列Xn=[x1,x2,x3,…,xn],則寬度ω時間窗口的信息熵為H1=ent([x1,x2,…,xw]),可得:
1.2.3 增量計算信息熵
為了加快計算速度,采用增量計算的方法,使得不必每一次都計算整個時間窗口的全部熵值。展開式(1)中的熵函數(shù)可得:
其 中,xi是 數(shù) 組[xt,xt+1,…,xt+w-1]中 的 不 同 元素,且
其中,I表示信息量,每個時間t窗口信息熵值Ht都有相同的元素總量w。當時間窗口滑動時,會彈出子序列xt并有新序列xt+w進入,而其他元素保持不變,即信息量不會發(fā)生變化。那么為了計算新的熵值,就可以只考慮序列xt和xt+w對信息量產(chǎn)生的增量。
可得到:
因此
至此,已經(jīng)成功地將滑動熵值計算的時間復雜度限制為O(1)??稍诒O(jiān)測到新消息時立即計算出車輛id信息的熵值,并通過查看熵值曲線的急劇上升情況來識別DDoS攻擊。
1.3.1 時序滑動窗口異常檢測
根據(jù)第1.2.1節(jié),為了準確地定位出熵值時間序列中的急劇飆升,采用滑動時間窗結(jié)合高斯分布來進行實現(xiàn)檢測。如果窗口時間點之后某個待評估熵值的反向累積分布概率高于閾值φ,則認為某一點存在較高異常的可能性,如圖2所示。
設序列時間窗長度為w,異常檢測閾值為φ",待檢測點的熵值為e,e點前一個滑動窗口熵值的累積分布函數(shù)記為cdf(e),則該點的φ值為
如果熵值e的偏差越大(飆升),則cdf(e)值越大,1-cdf(e))值越小,φ值越大,其值可無限趨近于+∞。
算法流程如下。
輸入:信息熵數(shù)據(jù)流[e1,e2,…,en,…]。
輸出:檢測到的攻擊行為時序序號。
步驟1:當處理ei且i<ω時不做特殊處理,可理解為數(shù)據(jù)樣本初始化。
步驟2:實時計算某一數(shù)據(jù)點ei且i≥w,ei前一個時間窗w[ei-w,ei-w+1,…,ei-1]的均值μ,標準差σ,獲得前一個時間窗的高斯分布概率密度函數(shù)、累計分布函數(shù)。
步驟3:計算數(shù)據(jù)點ei之于時間窗w的φi值。
步驟4:如果φi>φ",則判定其為行為攻擊產(chǎn)生的時序序號i,并發(fā)出警報。
步驟5:數(shù)據(jù)流處理下一個數(shù)據(jù)ei+1,重復步驟2~5,直至數(shù)據(jù)流結(jié)束。
其中,滑動時間窗的高斯分布模型可以通過遞推法進行實時計算。
假設序列中ei-w開始長度為w的序列[ei-w,ei-w+1,…,ei-1]的均值為μi-w,標準差為σi-w,則序列中從ei-w+1開始,長度為w的序列[ei-w+1,ei-w+2,…,ei]的均值和標準差可計算:
當處理元素ei時,其前一個時間窗[ei-w,ei-w+1,…,ei-1]的高斯分布模型已確定,故理論上檢測一個寬度為n的序列熵值的時間復雜度為O(n)。
1.3.2 檢測算法優(yōu)化
在真實的車聯(lián)網(wǎng)網(wǎng)絡場景中,網(wǎng)絡延遲和流量波動是偶發(fā)且不可預測的。僅評估某時刻之于前一個時間窗的概率分布情況,可能會出現(xiàn)誤判。所以對第1.3.1節(jié)的異常檢測算法做了優(yōu)化,在算法步驟4中增加一些二次確認(Double-Check)條件。
假設ei為異常發(fā)生點,計算其φ值的函數(shù)為Fi(x),算法閾值為φ"。在ei異常點隨后的長度為o的 序 列 區(qū) 間Seq {ent}=[ei+1,ei+2,…,ei+o-1],需滿足:
1) 序列區(qū)間中存在百分比至少為r的熵值,滿足Fi(l)>φ",i+1≤l≤i+o-1。
2) 序列區(qū)間中最小值Seq {ent}min大于異常點的熵值。
二次確認(Double-Check)采用一個異步線程完成,即檢測到ei為潛在異常點后,通過異步線程,觀測在ei異常點隨后的長度為o的序列區(qū)間,滿足上述2個條件后,系統(tǒng)才會將ei數(shù)據(jù)點進行報警。如圖3所示,二次確認保證了異常點后的整體遞增性和算法結(jié)果一致性,由于二次確認工作的異步性,不會阻塞正常的觀測流程,且重復計算Fi(l)的時間復雜度為O(1)。故帶來的滯后影響很小,可忽略,這也將在后文的仿真結(jié)果中得以體現(xiàn)。
優(yōu)化后的算法具有以下特點。
1) 能夠檢測數(shù)據(jù)飆升,靈敏地探測到熵值的增加,且幅度較大。
2) 保證單調(diào)性,異常點之后的一定大小窗口內(nèi)熵值均大于異常點熵值。
3) 保證異常點之后的一定大小窗口內(nèi),熵值呈整體上升的趨勢。
4) 優(yōu)化后總體的算法復雜度為O(n*o),o為二次確認的偏移常量,o 2.1.1 框架和數(shù)據(jù)集 仿真框架為Framework For Misbehavior Detection(F2MD),該框架重新創(chuàng)建構(gòu)成非法行為檢測鏈的所有元素,使用流行的盧森堡交通場景。LuST是由SUMO生成并使用真實數(shù)據(jù)驗證的合成數(shù)據(jù)集,由盧森堡大學車輛實驗室提供。表1描述了仿真運行環(huán)境信息。 表1 仿真環(huán)境信息Table 1 Simulation environment information 對于公共數(shù)據(jù)集,F(xiàn)2MD的作者KAMEL等[17]提供了多種類型的車聯(lián)網(wǎng)中的攻擊行為數(shù)據(jù),并以VeReMi格式發(fā)布了上述攻擊行為的模擬結(jié)果,這是第一個公開的不當行為檢測數(shù)據(jù)集,VeReMi是目前該領(lǐng)域唯一的數(shù)據(jù)集。本文著眼于數(shù)據(jù)集中DDoS攻擊相關(guān)的數(shù)據(jù)集進行實驗,并采用第1.2節(jié)和1.3節(jié)所述的時序異常檢測算法對數(shù)據(jù)集中的數(shù)據(jù)進行處理。 2.1.2 數(shù)據(jù)處理 本文主要使用VeReMi數(shù)據(jù)集中的DDos,DosDisruptive和DosRandomSybil子數(shù)據(jù)集,分別為傳統(tǒng)DDoS,破壞性DDoS和隨機女巫DDoS等類型的攻擊數(shù)據(jù)集。檢測主要作用于上述子數(shù)據(jù)集中的GroundTruth文件,該文件展示了針對地域全局范圍內(nèi)的真實網(wǎng)絡流量回放,表2總結(jié)了檢測系統(tǒng)的參數(shù)選擇。滑動窗口的長度決定了算法的時間特性,ω越大則計算時間越長;閾值φ的選取決定了異常檢測的靈敏度。選取ω和φ分別為10 000和10,并提出增加二次確認,以此保證異常偏差檢測算法的實時性和準確性。這些關(guān)鍵參數(shù)均基于真實流量數(shù)據(jù),并為了盡量減少假陽性(FP)和假陰性(FN)檢測情況而選取的數(shù)值。 表2 檢測系統(tǒng)參數(shù)Table 2 Parameters of the detection system 圖4~圖9展示了仿真實驗中,針對VeReMi數(shù)據(jù)集中的3個子數(shù)據(jù)集分別得到網(wǎng)絡流量信息熵的變化曲線和滑動窗口高斯分布采樣的結(jié)果。 圖4,圖6和圖8中分別展示了每個數(shù)據(jù)集中DDoS攻擊真實發(fā)生的序列時刻和系統(tǒng)檢測告警時刻。可以從中看出算法檢測到的時刻與真實時刻幾乎重合。圖5,圖7和圖9采樣了各數(shù)據(jù)集中正常狀態(tài)和受攻擊時刻時,信息熵時序窗口的高斯分布。從圖中可以看出,受攻擊狀態(tài)時信息熵均值均大于正常狀態(tài),符合預期,同時驗證了檢測系統(tǒng)算法的理論基礎。 通常評價一個時序檢測系統(tǒng)的標準是檢測結(jié)果的準確性和靈敏度,包括檢測正確(TP,TN)、假陽性檢測(FP)、假陰性檢測(FN)的比例。在本次實驗中,針對目標VeReMi數(shù)據(jù)集的誤報(TN)、漏報(FN)比例均為0,實現(xiàn)了100%成功檢測。 實時性則是檢測系統(tǒng)的另一個評價標準。由于采用二次確認的方法,本文犧牲了系統(tǒng)的部分檢測速度,換取更高的準確率。不過二次確認的工作量具有常量級別的復雜度,且系統(tǒng)使用異步線程處理,所以對性能影響較小。如表3所示,在DDoS攻擊發(fā)生后,系統(tǒng)一般延遲3~8 s內(nèi)能夠識別并發(fā)出報警信息。部分DDoS攻擊情形下,熵值增量較為緩慢,閾值設置較高故靈敏度略有降低。檢測系統(tǒng)發(fā)現(xiàn)有問題的時間序列后,計算其數(shù)據(jù)包的時間戳與實際攻擊數(shù)據(jù)包的時間戳的差值,即為實際報警延遲時間。 表3 檢測系統(tǒng)在各DDoS數(shù)據(jù)集下的性能表現(xiàn)Table 3 DDos attack detection system performance 1) 重新設計策略,使得信息熵理論在車聯(lián)網(wǎng)場景中的DDoS攻擊檢測中發(fā)揮作用。 2) 設計一種基于高斯分布模型的檢測信息熵變化的算法——“累計異常時間窗”,應用于VeReMi公開數(shù)據(jù)集進行DDoS攻擊識別檢測。 3) 整體算法的時間復雜度為O(n),檢測準確率達到100%,由于檢測的攻擊方式不同,報警時延的檢測結(jié)果略有差異,但均在8 s以內(nèi)。 4) 該實時檢測系統(tǒng)可以更廣泛地對不同類型的DDoS攻擊進行檢測,但由于目前應用的數(shù)據(jù)集數(shù)量有限,故對不同攻擊的檢測結(jié)果水平表現(xiàn)不一。同時也為今后車聯(lián)網(wǎng)安全的DDoS攻擊追蹤和溯源提供了理論和實踐參考。2 檢測系統(tǒng)仿真實驗
2.1 數(shù)據(jù)準備
2.2 仿真結(jié)果展示
3 檢測系統(tǒng)評價
4 結(jié)論