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