黃華雪,王印璽
(四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,成都 610065)
隨著5G通信網(wǎng)絡(luò)在我國正式商用,物聯(lián)網(wǎng)行業(yè)即將進(jìn)入迅猛發(fā)展期。根據(jù)GSMA預(yù)測,到2025年全球物聯(lián)網(wǎng)設(shè)備連接規(guī)模將達(dá)到250億[1],然而物聯(lián)網(wǎng)設(shè)備安全防護(hù)能力較弱,容易被黑客入侵。近年來,物聯(lián)網(wǎng)硬件和軟件層面得到大力發(fā)展,人們利用物聯(lián)網(wǎng)技術(shù)構(gòu)建智能零售、智慧農(nóng)業(yè)、智能家居、智能交通、智慧物流、智能醫(yī)療和智慧城市,囊括了人們衣食住行醫(yī)方面方面。隨著物聯(lián)網(wǎng)設(shè)備接入網(wǎng)絡(luò)的數(shù)量和種類不斷增多,使得網(wǎng)絡(luò)管理、業(yè)務(wù)拓展、運(yùn)營維護(hù)變得困難重重。生產(chǎn)廠商為了快速占有市場份額,在安全防護(hù)方面的研發(fā)投入差強(qiáng)人意,導(dǎo)致安全事故頻出。2016年,攻擊者使用Mirai病毒控制大量物聯(lián)網(wǎng)設(shè)備向DNS服務(wù)器發(fā)動DDoS攻擊,導(dǎo)致大面積通信服務(wù)處于癱瘓狀態(tài)[2]。物聯(lián)網(wǎng)設(shè)備成為發(fā)動DDoS攻擊的溫床[3],被控制后形成僵尸網(wǎng)絡(luò),發(fā)動大規(guī)模DDoS攻擊。物聯(lián)網(wǎng)DDoS攻擊不僅影響應(yīng)用服務(wù)的安全穩(wěn)定,而且會危害網(wǎng)絡(luò)關(guān)鍵基礎(chǔ)設(shè)施,更有甚者威脅國家安全。
如何在海量的物聯(lián)網(wǎng)連接中檢測出DDoS攻擊活動是比較困難的問題。一方面受限于物聯(lián)網(wǎng)設(shè)備低成本、低功耗、計(jì)算資源有限等現(xiàn)實(shí)因素,不同物聯(lián)網(wǎng)設(shè)備使用通信協(xié)議也不同,很難將為傳統(tǒng)x86設(shè)備設(shè)計(jì)方案硬搬到物聯(lián)網(wǎng)中。另一方面攻擊與防御一直處于動態(tài)博弈之中,新的檢測防御方法剛被提出,就會有新的攻擊手段產(chǎn)生并突破防御。人工檢測方法具有明顯的滯后性,當(dāng)新型僵尸網(wǎng)絡(luò)病毒發(fā)動大規(guī)模DDoS攻擊時,才會引起從業(yè)者關(guān)注,進(jìn)行事后分析。淺層機(jī)器學(xué)習(xí)檢測物聯(lián)網(wǎng)DDoS攻擊精度與特征選取有關(guān),十分依賴專家經(jīng)驗(yàn),所以手動提取特征無法避免。深度學(xué)習(xí)檢測方法無需手動選取特征,檢測精度往往取決于參數(shù)優(yōu)化與神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)選取,缺乏可解釋性。
物聯(lián)網(wǎng)在DDoS攻擊中同時扮演“受害者”與“助手”兩種角色,比如被控制物聯(lián)網(wǎng)設(shè)備向局域網(wǎng)內(nèi)的其他物聯(lián)網(wǎng)設(shè)備發(fā)動DDoS攻擊。為了盡早阻斷攻擊者對內(nèi)網(wǎng)與外網(wǎng)發(fā)動的攻擊活動,需要在物聯(lián)網(wǎng)網(wǎng)關(guān)處部署檢測算法。但考慮到檢測方案可能會耗費(fèi)大量資源,并不適用資源受限的物聯(lián)網(wǎng)網(wǎng)關(guān)環(huán)境。如果在網(wǎng)關(guān)處檢測過多特征將耗費(fèi)大量資源,勢必影響網(wǎng)關(guān)正常轉(zhuǎn)發(fā)工作,所以為網(wǎng)關(guān)增加邊緣計(jì)算等設(shè)施是必要的。本文提出一種基于TCN物聯(lián)網(wǎng)DDoS檢測方案,該方案部署在邊緣計(jì)算節(jié)點(diǎn)上,并且邊緣計(jì)算節(jié)點(diǎn)的網(wǎng)卡以混雜模式工作,以獲取局域網(wǎng)內(nèi)的流量。
針對物聯(lián)網(wǎng)DDoS攻擊,國內(nèi)外的研究者進(jìn)行嘗試,獲得大量研究成果,大致可分為基于異常檢測和基于特征的檢測。異常檢測方案,通過建立正常的網(wǎng)絡(luò)行為模型作為基準(zhǔn),當(dāng)檢查到實(shí)際網(wǎng)絡(luò)活動與模型有較大偏差時,則認(rèn)定該活動為網(wǎng)絡(luò)攻擊。特征檢測方案,通過發(fā)掘?qū)嶋H網(wǎng)絡(luò)行為與已知的特征庫進(jìn)行比對,進(jìn)而判斷該活動是否為網(wǎng)絡(luò)攻擊。
Galeano等人[4]提出的基于熵的度量來檢測與緩解DDoS攻擊的方法。重放Bot-IoT數(shù)據(jù)集,對網(wǎng)絡(luò)流量的源/目的IP、源/目的端口的信息進(jìn)行熵計(jì)算。當(dāng)捕捉到DDoS攻擊會導(dǎo)致網(wǎng)絡(luò)流量分布發(fā)生顯著變化時,自動生成能減輕威脅的規(guī)則,將其發(fā)送至OpenFlow交換機(jī),達(dá)到阻斷DDoS攻擊效果。
Zheng等人[5]提出了一種基于COTS SDN交換機(jī)的兼具自適應(yīng)星與實(shí)時性的檢測DDoS攻擊的體系結(jié)構(gòu)RADAR。RADAR由收集器、探測器和定位器三部分組成。RADAR可以實(shí)時識別不同的洪泛攻擊,如SYN洪泛、UDP洪泛和DNS放大攻擊。并在在Mininet和基于硬件的測試臺上進(jìn)行測試,結(jié)果表明,該系統(tǒng)能以較少的時延和可接受的開銷更有效地發(fā)現(xiàn)DDoS。
Siddharth等人[6]提出基于圖的異常流量檢測算法MIDAS,該算法利用源IP地址,目的IP地址和時間戳來構(gòu)建網(wǎng)絡(luò)連接拓?fù)鋱D,通過卡方檢驗(yàn)計(jì)算圖中邊、邊的兩端點(diǎn)的得分,并選去其中的最大值作為分?jǐn)?shù)輸出。并使用DARPA數(shù)據(jù)集進(jìn)行測試,結(jié)果表明該方案具有實(shí)時檢測DDoS攻擊的能力,檢測的準(zhǔn)確度為0.96。
Li等人[7]提出了一種基于生成對抗網(wǎng)絡(luò)的無監(jiān)督多元異常檢測方法MAD-GAN,該方法的生成器和判別器同時使用LSTM作為基本模型,來捕獲時間序列分布的相關(guān)性。該基本模型不是單獨(dú)處理每個數(shù)據(jù)流,而是同時考慮整個變量集,以便捕獲到變量之間的潛在關(guān)系。并通過測試數(shù)據(jù)和重構(gòu)數(shù)據(jù)之間的殘差來識別測試數(shù)據(jù)中的異常。
Ozcelik等人[8]提出一種基于SND和霧計(jì)算的檢測和緩解DDoS攻擊方案ECESID。該方案首先利用Mirai變種病毒感染多臺物聯(lián)網(wǎng)設(shè)備,向基于霧計(jì)算平臺的軟件定義網(wǎng)絡(luò)控制器發(fā)動DDoS攻擊;然后利用每個物聯(lián)網(wǎng)設(shè)備的TCP SYNs隊(duì)列作為TRW-CB(Threshold Random Walk with Credit Based Rate Limiting)算法檢測的特征,以及連接目的IP地址集作為RL(Rate Limiting)算法的特征,將惡意主機(jī)與良性主機(jī)區(qū)分開來,以識別軟件定義的物聯(lián)網(wǎng)環(huán)境中的惡意活動;最后將檢測到的惡意數(shù)據(jù)包丟棄。
Doshi等人[9]提出面向IoT流量的機(jī)器學(xué)習(xí)檢測DDoS攻擊框架,首先記錄數(shù)據(jù)包的源IP地址、源端口、目標(biāo)IP地址、目的端口、數(shù)據(jù)包大小和時間戳信息,并按設(shè)備和時間對數(shù)據(jù)包進(jìn)行分組;然后基于物聯(lián)網(wǎng)設(shè)備行為的領(lǐng)域知識,為每個數(shù)據(jù)包生成無狀態(tài)和有狀態(tài)特征;最后對比k近鄰、隨機(jī)森林、決策樹、支持向量機(jī)和ANN訓(xùn)練的模型來區(qū)分正常流量和DDoS攻擊流量,五種算法的測試集精度都高于0.99。
Zheng等人[5]提出一種基于SDN網(wǎng)絡(luò)的物聯(lián)網(wǎng)網(wǎng)關(guān)檢測DDoS攻擊機(jī)制,使用邊緣計(jì)算解決SDN控制器過載的問題,通過訓(xùn)練機(jī)器學(xué)習(xí)的模型定位惡意流量。文獻(xiàn)[10]使用CICIDS2017數(shù)據(jù)集訓(xùn)練分別CNN,LSTM和混合CNN+LSTM模型對DDoS攻擊檢測進(jìn)行了評估,混合CNN+LSTM模型提供了最高的準(zhǔn)確性97.16%。
對于時間序列數(shù)據(jù)的分析,最常用的神經(jīng)網(wǎng)絡(luò)是RNN。RNN可以使用內(nèi)部存儲器來處理輸入時間序列,但是由于RNN易出現(xiàn)梯度消失,網(wǎng)絡(luò)幾乎不可訓(xùn)練,導(dǎo)致RNN模型通常不直接用于長期記憶計(jì)算。LSTM就是用來解決RNN中梯度消失問題的,LSTM可以處理具有數(shù)千個甚至數(shù)百萬個時間點(diǎn)的序列,并且即使對于包含許多高頻和低頻成分的長時間序列也具有良好的處理能力,但是LSTM計(jì)算復(fù)雜度高。一維卷積網(wǎng)絡(luò)也能應(yīng)用于時間序列分析,計(jì)算復(fù)雜度比LSTM小。TCN在處理非常長的輸入序列方面表現(xiàn)出比LSTM更好的性能。本文提出利用TCN模型對物聯(lián)網(wǎng)DDoS進(jìn)行檢測。TCN模型是以CNN模型為基礎(chǔ),利用因果卷積、殘差模塊和空洞卷積進(jìn)行改進(jìn)。
圖1 因果卷積
殘差模塊解決了梯度消失或者梯度爆炸問題,使得網(wǎng)絡(luò)性能不會隨著深度的增加而降低。如圖2所示:該結(jié)構(gòu)目的是為了學(xué)到一種恒等映射函數(shù)H(x)=x。但網(wǎng)絡(luò)直接學(xué)習(xí)上述恒等變換是困難的,所以令H(x)=F(x)+x,其中identity映射執(zhí)行同等映射為x,residual映射為F(x),只需讓網(wǎng)絡(luò)習(xí)得F(x)=0即可。假如網(wǎng)絡(luò)在深度為n時到達(dá)最優(yōu),此時繼續(xù)加大n,則F(x)=0,只剩下x。此后,網(wǎng)絡(luò)一直將處于最優(yōu)狀態(tài),網(wǎng)絡(luò)的性能也就不會隨著深度增加而降低。
圖2 殘差模塊
圖3 空洞卷積
本文使用libpcap對經(jīng)過網(wǎng)卡流量或者公開的pcap格式數(shù)據(jù)集進(jìn)行解析,選取的流量特征不包含任何的IP、端口信息,因此完全取基于報文的具體內(nèi)容來對流量進(jìn)行識別和判斷。特征提取的內(nèi)容參考了文獻(xiàn)[11]中所使用的特征,并進(jìn)行修改。選取數(shù)據(jù)包中如表1的10個特征。其中Protocols的值是一種包括了網(wǎng)絡(luò)層到應(yīng)用層的協(xié)議的二進(jìn)制詞袋結(jié)構(gòu)。當(dāng)數(shù)據(jù)包采用TCP協(xié)議傳輸時,UDPLen與ICMPType分別被置為0、20(ICMP類型有十幾種,且0被占用,用20代表未使用ICMP協(xié)議)。當(dāng)UDPLen不為0時,所有與TCP相關(guān)的字段設(shè)置為0,ICMPType為20。當(dāng)ICMPType不為20時,TCP與UDP相關(guān)字段都被設(shè)置成0。
表1 特征說明表
以上10個特征都采用了對應(yīng)的方法進(jìn)行規(guī)范化,將其轉(zhuǎn)化在[0,1]之間分布的浮點(diǎn)數(shù)。對PKTLen、IPFlags、TCPLen、TCPwinsize和UDPLen字段采用將16位二進(jìn)制轉(zhuǎn)化為整數(shù)后除以216后規(guī)范化為浮點(diǎn)數(shù);對Protocols、TCPFlags和ICMPType字段采用將8位二進(jìn)制轉(zhuǎn)化為整數(shù)后除以28后規(guī)范化為浮點(diǎn)數(shù);將Time字段在放大1000000倍后取整,再除以232后規(guī)范化為浮點(diǎn)數(shù);對TCP ACK字段采用將32位二進(jìn)制轉(zhuǎn)化為整數(shù)后除以232后規(guī)范化為浮點(diǎn)數(shù)。
本文首先搭建如圖4所示的環(huán)境,物聯(lián)網(wǎng)網(wǎng)關(guān)左側(cè)是三臺物聯(lián)網(wǎng)設(shè)備(黃色的為正常節(jié)點(diǎn),灰色為惡意節(jié)點(diǎn)),下側(cè)為配備Intel Xeon Silver 4210 CPU,64 GB內(nèi)存和NVIDIA GeForce GTX 1080Ti的邊緣計(jì)算節(jié)點(diǎn),物聯(lián)網(wǎng)網(wǎng)關(guān)是在Raspberry Pi 4B基礎(chǔ)上定制的OpenWrt系統(tǒng)。
圖4 實(shí)驗(yàn)環(huán)境架構(gòu)
本文使用了由加拿大網(wǎng)絡(luò)安全研究所提供的CIC-DDoS2019公開數(shù)據(jù)集,該數(shù)據(jù)集包含正常流量和最新常見DDoS攻擊的PCAP文件。但是CIC-DDoS2019數(shù)據(jù)集中大部分都屬于攻擊流量,正常的訪問流量相對較少,所以本文抓取了部分正常流量作為補(bǔ)充,使得數(shù)據(jù)集均衡,最后使用Scapy重放數(shù)據(jù)集。
本文使用TensorFlow 2.2深度學(xué)習(xí)框架來構(gòu)建TCN模型,訓(xùn)練TCN模型的epochs設(shè)置為20,batch-size設(shè)置為64,dropout設(shè)為0.05,擴(kuò)張因子設(shè)置為16,Adam作為優(yōu)化器。
本文評價指標(biāo)公式如下所示:
最后,本文對提出TCN模型與Lucid-CNN模型進(jìn)行對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示,TCN模型的結(jié)果在多個指標(biāo)上都比Lucid-CNN好。
表2 對比實(shí)驗(yàn)
物聯(lián)網(wǎng)DDoS攻擊持續(xù)破壞互聯(lián)網(wǎng)的可用性,本文提出了基于TCN的物聯(lián)網(wǎng)DDoS攻擊檢測框架,該檢測方案是部署在邊緣計(jì)算節(jié)點(diǎn)。使用改進(jìn)公開數(shù)據(jù)集CIC-DDoS2019作為訓(xùn)練模型,由于CIC-DDoS2019的攻擊流量遠(yuǎn)大于正常流量,所以抓取了部分正常流量使得數(shù)據(jù)集平衡。本文獨(dú)特的流量預(yù)預(yù)處理機(jī)制,不僅可以消除奇異樣本數(shù)據(jù)導(dǎo)致的不良影響,還能保持流量間時序關(guān)系。通過與其他深度學(xué)習(xí)方法進(jìn)行比較,TCN模型可以快速收斂并獲得相對較好的精度,取得了令人鼓舞的性能。經(jīng)實(shí)驗(yàn)驗(yàn)證,本文檢測精度高達(dá)0.993。