丁建立, 張琪琪, 王 靜, 霍緯綱
(1. 中國(guó)民航大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 天津 300300; 2. 中國(guó)民航大學(xué)信息安全測(cè)評(píng)中心, 天津 300300; 3. 中國(guó)民航大學(xué)安全科學(xué)與工程學(xué)院, 天津 300300)
廣播式自動(dòng)相關(guān)監(jiān)視(automatic dependent surveillance-broadcast, ADS-B)技術(shù)基于全球衛(wèi)星導(dǎo)航系統(tǒng)和地空、空空數(shù)據(jù)鏈通信等技術(shù)向空中交通管制(air traffic control, ATC)中心以及其他相鄰空域內(nèi)飛機(jī)周期性廣播飛機(jī)的經(jīng)緯度、高度、速度等信息。ADS-B報(bào)文[1]被視為航空信息系統(tǒng)的重要數(shù)據(jù)源,其安全性對(duì)航班間隔管理、空中交通流量管理、空中交通防撞等功能子系統(tǒng)有著至關(guān)重要的影響。一旦ADS-B報(bào)文遭到攻擊,整個(gè)航空信息系統(tǒng)的安全性將受到威脅,ADS-B報(bào)文的安全已成為航空安全的重要組成部分。然而,ADS-B報(bào)文以明文的形式廣播并且協(xié)議缺乏基本的安全機(jī)制,攻擊者可以利用無(wú)線射頻傳輸技術(shù)輕易實(shí)現(xiàn)對(duì)ADS-B的欺騙干擾[2]。因此,研究有效的ADS-B安全解決方案具有重要意義。
傳統(tǒng)的ADS-B安全解決方案主要包括3類,第1類為基于密碼學(xué)[3-4]的方法,但此類方法需要修改協(xié)議的內(nèi)部機(jī)制與硬件系統(tǒng),因此在實(shí)際中應(yīng)用難度較大。第2類為基于多點(diǎn)時(shí)差定位[5]的方法,該類方法利用ADS-B報(bào)文到達(dá)不同站點(diǎn)的時(shí)間差校驗(yàn)發(fā)送位置的正確性,但此類方法高度依賴大量地面站的參與,實(shí)施難度大、附加成本高,不易在大范圍內(nèi)推廣。第3類為基于多陣列天線[6]的方法,該類方法利用多面陣列天線對(duì)ADS-B報(bào)文進(jìn)行空間位置測(cè)量來(lái)驗(yàn)證目標(biāo)的位置特征,此類方法實(shí)施成本較低,但仍需要在ADS-B系統(tǒng)上附加額外的設(shè)備。
為了避免硬件和協(xié)議更改帶來(lái)的高昂成本,基于深度學(xué)習(xí)的異常檢測(cè)方法逐漸受到關(guān)注。在此類方法中,無(wú)監(jiān)督學(xué)習(xí)方法因?yàn)椴恍枰獦?biāo)記數(shù)據(jù)進(jìn)行模型訓(xùn)練且可以識(shí)別未知類型異常而得到了廣泛的研究。ADS-B報(bào)文是具有多維特征的時(shí)間序列數(shù)據(jù),Habler等[7]采用基于自動(dòng)編碼器(autoencoder, AE)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)模型對(duì)ADS-B報(bào)文進(jìn)行重構(gòu),使用長(zhǎng)短時(shí)記憶(long short term memory, LSTM)網(wǎng)絡(luò)作為編解碼器來(lái)學(xué)習(xí)正常ADS-B報(bào)文的特征,通過(guò)滑動(dòng)窗口來(lái)計(jì)算ADS-B報(bào)文序列的依賴關(guān)系并利用重構(gòu)誤差檢測(cè)異常,有效地解決了傳統(tǒng)機(jī)器學(xué)習(xí)方法無(wú)法捕捉時(shí)間依賴性的問(wèn)題。丁建立等[8]在上述模型的基礎(chǔ)上通過(guò)計(jì)算每個(gè)滑動(dòng)窗口的統(tǒng)計(jì)特征來(lái)增加ADS-B序列特征維度,使模型能夠更好地捕捉數(shù)據(jù)的時(shí)間依賴性,檢測(cè)性能也有了較大提升。羅鵬等[9]采用雙向門控循環(huán)單元神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)ADS-B報(bào)文,并將預(yù)測(cè)值與真實(shí)值的差值放入支持向量數(shù)據(jù)描述(support vector data description, SVDD)中對(duì)樣本進(jìn)行二次訓(xùn)練,通過(guò)創(chuàng)建出的超球體分類器檢測(cè)ADS-B異常報(bào)文,同時(shí)解決了ADS-B報(bào)文異常檢測(cè)閾值的自適應(yīng)問(wèn)題。
飛機(jī)在飛行過(guò)程中,ADS-B報(bào)文在各個(gè)維度上的特征值會(huì)在正常范圍內(nèi)波動(dòng),表現(xiàn)出隨機(jī)性。然而上述基于確定性模型的方法忽略了數(shù)據(jù)中隨機(jī)性的影響,可能會(huì)發(fā)生誤判問(wèn)題[10]。對(duì)此,Fraccaro等[11]指出了在模型中引入隨機(jī)變量來(lái)建模數(shù)據(jù)中的隨機(jī)性能夠改善并增強(qiáng)模型性能。Luo等[12]提出了基于變分AE(variational AE, VAE)的ADS-B異常檢測(cè)算法,假設(shè)每個(gè)ADS-B報(bào)文除可見(jiàn)的特征外還有額外的潛在隨機(jī)變量,并使用LSTM來(lái)計(jì)算該變量的分布,隨后從計(jì)算出的分布中采樣得到潛在隨機(jī)變量的樣本用于重構(gòu)輸入數(shù)據(jù),隨機(jī)性則可以通過(guò)采樣過(guò)程融入建模過(guò)程。
ADS-B報(bào)文序列是基于時(shí)間的一系列數(shù)據(jù),ADS-B報(bào)文在過(guò)去的狀態(tài)會(huì)對(duì)未來(lái)較長(zhǎng)時(shí)期之后的狀態(tài)產(chǎn)生影響,表現(xiàn)出長(zhǎng)程依賴性。然而,現(xiàn)有異常檢測(cè)算法卻無(wú)法很好地捕捉ADS-B報(bào)文序列中的長(zhǎng)程依賴關(guān)系。而Transformer[13]模型通過(guò)自注意力機(jī)制使得輸入序列中每個(gè)時(shí)間點(diǎn)的數(shù)據(jù)都融合了之前以及之后時(shí)間點(diǎn)的所有特征,有效地提升了模型捕捉時(shí)間序列中長(zhǎng)程依賴關(guān)系的能力?;诖?Meng和Duan等[14-15]利用Transformer模型來(lái)構(gòu)建時(shí)間序列異常檢測(cè)模型,顯著地提升了模型的檢測(cè)性能和魯棒性。
此外,在一定的時(shí)間段內(nèi),ADS-B報(bào)文序列通常表現(xiàn)出整體性特征,例如飛機(jī)的飛行過(guò)程可以分為起飛、爬升、巡航、下降和著陸幾個(gè)階段,相應(yīng)地,飛機(jī)的高度呈現(xiàn)出不同的變化趨勢(shì)。ADS-B報(bào)文序列在不同階段有不同的整體性特征,因而異常報(bào)文的判定標(biāo)準(zhǔn)也會(huì)發(fā)生變化,識(shí)別此類特征并加以利用對(duì)于提升模型的檢測(cè)性能具有重要作用。然而,現(xiàn)有的ADS-B異常檢測(cè)算法無(wú)法獲得輸入序列的整體性特征。在自然語(yǔ)言處理領(lǐng)域,Bowman等[16]通過(guò)基于LSTM的VAE模型引入隨機(jī)變量,用于表示單個(gè)語(yǔ)句的整體性特征,證實(shí)了整體性特征在控制模型生成文本的語(yǔ)義連續(xù)性方面具有重要作用,因此本文參考該研究工作引入隨機(jī)變量來(lái)表示序列的整體性特征。
綜上所述,本文提出了基于Transformer-VAE的無(wú)監(jiān)督異常檢測(cè)算法,通過(guò)Transformer編碼器的自注意力機(jī)制建模ADS-B報(bào)文序列中的長(zhǎng)程依賴關(guān)系,基于VAE框架,在Transformer模型中引入隨機(jī)變量來(lái)反映ADS-B報(bào)文序列的隨機(jī)性和整體性特征。然后通過(guò)特殊的融合模塊將該變量與Transformer解碼器的輸出進(jìn)行融合,實(shí)現(xiàn)ADS-B報(bào)文的重構(gòu),最后利用重構(gòu)誤差來(lái)判定異常。在真實(shí)的數(shù)據(jù)集上的實(shí)驗(yàn)表明,本文提出的算法與其他基線算法相比在所設(shè)定的不同攻擊場(chǎng)景下具有更高的準(zhǔn)確率。
Transformer是深度學(xué)習(xí)中用于處理時(shí)間序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)模型,該模型完全基于自注意力機(jī)制來(lái)建模序列中的時(shí)序特性,通過(guò)將序列中的任意兩個(gè)元素直接連接,有效地捕捉序列長(zhǎng)程依賴關(guān)系。Transformer基于編碼器-解碼器結(jié)構(gòu),其中的編碼器與解碼器部分各自都是通過(guò)堆疊多層相同的模型構(gòu)建而成,每一層模型主要包括多頭注意力(MultiHead)和前饋神經(jīng)網(wǎng)絡(luò)(feedforword neural network, FFN)兩個(gè)主要子模型。
多頭注意力子模型主要基于縮放點(diǎn)積注意力機(jī)制,注意力權(quán)重矩陣運(yùn)算過(guò)程如下:
(1)
式中:Q表示查詢向量矩陣;K表示鍵向量矩陣;V表示值向量矩陣;dmodel表示模型隱狀態(tài)的維度。
多頭注意力機(jī)制則是使用不同的線性映射參數(shù)矩陣將輸入數(shù)據(jù)矩陣映射為多個(gè)不同的查詢向量矩陣、鍵向量矩陣和值向量矩陣,作為縮放點(diǎn)積注意力機(jī)制的輸入,此過(guò)程可定義為
(2)
FFN由兩次線性映射以及一個(gè)ReLU[17]激活函數(shù)構(gòu)成,該網(wǎng)絡(luò)的運(yùn)算過(guò)程如下:
FFN(x)=W2max(0,W1x+b1)+b2
(3)
式中:W1,W2∈Rdmodel×dmodel是線性映射的參數(shù)矩陣;b1,b2∈Rdmodel是偏置項(xiàng)參數(shù);x表示特征維度為dmodel的輸入數(shù)據(jù)。
logp(x)=DKL(qφ(z|x)‖p(z|x))+LVAE(φ,θ;x)
(4)
式中:DKL(·)表示變分后驗(yàn)分布qφ(z|x)與真實(shí)后驗(yàn)分布p(z|x)之間的KL(Kullback-Leibler)散度;φ和θ分別表示編碼器和解碼器中的參數(shù);LVAE(·)表示邊緣對(duì)數(shù)似然函數(shù)的下界,也是變分自編碼器所使用的目標(biāo)函數(shù),VAE通過(guò)優(yōu)化這一下界來(lái)優(yōu)化模型中的參數(shù),其定義如下:
LVAE=-DKL(qφ(z|x)‖pθ(z))+Eqφ(z|x)[logpθ(x|z)]
(5)
式中:第一項(xiàng)通過(guò)最小化變分后驗(yàn)分布與先驗(yàn)分布之間的KL散度來(lái)正則化潛在變量的分布;而第二項(xiàng)則是通過(guò)最大化對(duì)數(shù)似然函數(shù)logpθ(x|z)來(lái)實(shí)現(xiàn)對(duì)原始數(shù)據(jù)的重構(gòu)。
定義X={x1,x2,…,xL}表示原始ADS-B報(bào)文序列,其中L為原始ADS-B報(bào)文序列的長(zhǎng)度。定義xt=[t,lon,lat,alt,id,s1,s2,…,sn]表示ADS-B報(bào)文特征向量,代表在t時(shí)刻具有唯一識(shí)別碼(id)的飛機(jī)所在位置的經(jīng)度(lon)、緯度(lat)以及氣壓高度(alt)等,s1,s2,…,sn代表飛機(jī)附加特征,本文分配一個(gè)字段代表飛機(jī)的航行方向,即航向(s1)。
由于原始ADS-B報(bào)文序列長(zhǎng)度過(guò)長(zhǎng),故采用步長(zhǎng)為1的滑動(dòng)窗口機(jī)制處理原始報(bào)文序列,將其分割為若干段長(zhǎng)度為k的子序列作為模型的輸入,其中任意一段ADS-B子序列表示為{xt-k+1,xt-k+2,…,xt-1,xt}。
本文提出了基于Transformer-VAE的ADS-B異常檢測(cè)模型,該模型是一個(gè)端到端的無(wú)監(jiān)督深度學(xué)習(xí)模型,其結(jié)構(gòu)如圖1所示。
圖1 模型結(jié)構(gòu)圖
Transformer-VAE模型主要由編碼器、解碼器和估計(jì)網(wǎng)絡(luò)3個(gè)模塊組成。整體上采用VAE框架通過(guò)引入潛在隨機(jī)變量z捕捉ADS-B報(bào)文序列的隨機(jī)性。編碼器模塊用于建模ADS-B報(bào)文序列中的長(zhǎng)程依賴關(guān)系,將ADS-B報(bào)文的特征向量編碼到低維潛在空間中,得到包含上下文特征的潛在表示。估計(jì)網(wǎng)絡(luò)用于計(jì)算潛在隨機(jī)變量z的概率密度的參數(shù),建模子序列的整體性特征。在解碼器模塊中,將Transformer解碼器的輸出與代表整體性特征的潛在隨機(jī)變量的樣本融合以進(jìn)行樣本特征的重構(gòu)。
2.2.1 Transformer-VAE編碼器
Transformer-VAE的編碼器模塊具有與原始的Transformer模型類似的結(jié)構(gòu),由Ne個(gè)相同的編碼器層構(gòu)成。編碼器使用滑動(dòng)窗口生成的ADS-B報(bào)文子序列{xt-k+1,xt-k+2,…,xt-1,xt}作為輸入,完全基于自注意力機(jī)制將報(bào)文的特征向量映射到低維潛在空間中,從而得到報(bào)文子序列的上下文表示。
以第t個(gè)時(shí)間點(diǎn)處的ADS-B報(bào)文的特征向量xt為例,首先通過(guò)輸入數(shù)據(jù)向量與位置編碼向量相加,將位置特征引入計(jì)算過(guò)程:
(6)
(7)
式中:MultiHead(·)表示多頭注意力機(jī)制;LayerNorm(·)表示層歸一化機(jī)制[17]。隨后計(jì)算結(jié)果Bi被進(jìn)一步輸入前饋神經(jīng)網(wǎng)絡(luò)模塊:
(8)
式中:FFN(·)表示前饋神經(jīng)網(wǎng)絡(luò)。經(jīng)過(guò)Ne層的迭代后,最后一編碼器層的輸出HNe將被輸入到估計(jì)網(wǎng)絡(luò)和解碼器,以分別用于估計(jì)潛在隨機(jī)變量后驗(yàn)分布的參數(shù)以及進(jìn)行多頭注意力機(jī)制的計(jì)算。
2.2.2 基于神經(jīng)網(wǎng)絡(luò)的后驗(yàn)分布估計(jì)網(wǎng)絡(luò)
Transformer-VAE通過(guò)引入潛在隨機(jī)變量來(lái)顯式地建模輸入ADS-B序列的整體性表示。包含潛在隨機(jī)變量的模型所面臨的一大挑戰(zhàn)是建模相關(guān)的后驗(yàn)分布,在Transformer-VAE模型中,假設(shè)其服從協(xié)方差矩陣為對(duì)角矩陣的多元高斯分布,并采用神經(jīng)網(wǎng)絡(luò)來(lái)估計(jì)分布的相關(guān)參數(shù)。
首先使用平均池化操作來(lái)得到滑動(dòng)窗口中ADS-B報(bào)文序列的確定性整體特征表示h:
(9)
(10)
式中:fμ(·)和fσ(·)分別為全連接神經(jīng)網(wǎng)絡(luò);diag(·)表示以輸入向量為對(duì)角元素的對(duì)角矩陣。在得到隨機(jī)隱變量的后驗(yàn)分布的參數(shù)后,輸入ADS-B報(bào)文子序列的隨機(jī)性整體性特征可通過(guò)在該分布中采樣得到。
由于該采樣過(guò)程無(wú)法微分,為了使得整個(gè)模型可以通過(guò)梯度下降算法端到端地訓(xùn)練出來(lái),采用重參數(shù)化方法[13],通過(guò)在標(biāo)準(zhǔn)高斯分布中進(jìn)行采樣來(lái)得到服從特定分布的隨機(jī)性整體性特征z,計(jì)算過(guò)程表示為
(11)
式中:ε表示從標(biāo)準(zhǔn)高斯分布中的采樣結(jié)果;z可以表示ADS-B報(bào)文子序列的整體性特征。
2.2.3 融入注意力機(jī)制的解碼器
解碼器的主要任務(wù)是根據(jù)已生成的當(dāng)前時(shí)刻t以及之前的ADS-B報(bào)文序列和隨機(jī)隱變量z重構(gòu)出下一時(shí)間點(diǎn)處的ADS-B報(bào)文的特征向量。與編碼器類似,解碼器使用融合了位置特征的ADS-B報(bào)文特征向量作為輸入,并且由Nd個(gè)相同的解碼器層堆疊而成。每一個(gè)解碼器層主要包括掩碼多頭注意力機(jī)制、交叉多頭注意力機(jī)制以及前饋神經(jīng)網(wǎng)絡(luò)3個(gè)模塊。
其中,掩碼多頭注意力機(jī)制是指在多頭注意力機(jī)制中引入掩碼以確保在當(dāng)前時(shí)刻t的注意力權(quán)重計(jì)算以及預(yù)測(cè)僅依賴于當(dāng)前時(shí)刻之前的ADS-B報(bào)文數(shù)據(jù),掩碼多頭注意力模塊用于建模已解碼出的部分ADS-B報(bào)文序列中的時(shí)序關(guān)系。第i個(gè)解碼器層中掩碼多頭注意力模塊的計(jì)算過(guò)程定義如下:
(12)
(13)
最后,前饋神經(jīng)網(wǎng)絡(luò)模塊被用來(lái)進(jìn)一步提升解碼器的表示能力:
(14)
(15)
(16)
作為基于VAE的模型,使用變分下界作為模型最終的優(yōu)化目標(biāo),目標(biāo)函數(shù)初步表示為
L=Eqφ(z|X)[logpθ(X|z)]-KL(qφ(z|X)‖p(z)
(17)
式中:第1項(xiàng)通過(guò)最大化對(duì)數(shù)似然函數(shù)來(lái)實(shí)現(xiàn)對(duì)原始數(shù)據(jù)的重構(gòu);第2項(xiàng)通過(guò)最小化變分后驗(yàn)分布與先驗(yàn)分布之間的KL散度來(lái)正則化來(lái)正則化潛在變量的分布。式(17)中的對(duì)數(shù)似然分布logpθ(X|z)[20]可以進(jìn)一步分解為
(18)
假設(shè)每個(gè)ADS-B報(bào)文所服從的似然分布logpθ(xt|x (19) 式中:為了平衡目標(biāo)函數(shù)中目的不同的兩項(xiàng),引入超參數(shù)λ來(lái)控制兩者的作用;M為蒙特卡羅方法中的采樣次數(shù),通常設(shè)定M=1。 異常檢測(cè)的總體流程圖如圖2所示。 圖2 異常檢測(cè)流程圖 圖2(a)表示在訓(xùn)練階段,輸入原始的ADS-B報(bào)文序列并對(duì)其進(jìn)行特征篩選及歸一化處理,將預(yù)處理后的時(shí)間序列輸入到基于Transformer-VAE的深度異常檢測(cè)模型當(dāng)中進(jìn)行重構(gòu)訓(xùn)練,通過(guò)調(diào)整Transformer-VAE模型參數(shù)以縮小重構(gòu)序列與真實(shí)序列的重構(gòu)誤差,當(dāng)在驗(yàn)證集上的重構(gòu)誤差達(dá)到最小值時(shí)停止訓(xùn)練。 圖2(b)表示在測(cè)試階段,輸入含有異常的ADS-B報(bào)文序列并進(jìn)行數(shù)據(jù)預(yù)處理,利用模型重構(gòu)出來(lái)的序列同原序列之間的重構(gòu)誤差來(lái)檢測(cè)輸入序列中的異常,若輸入序列為正常的ADS-B報(bào)文序列,重構(gòu)誤差將被控制在一定范圍內(nèi),若輸入序列包含異常,重構(gòu)誤差將大于異常分?jǐn)?shù)閾值,從而判定異常。 假設(shè)模型對(duì)正常數(shù)據(jù)的重構(gòu)誤差服從高斯分布N(μe,σe),定義異常分?jǐn)?shù)函數(shù)fs(xt)為模型重構(gòu)誤差的負(fù)對(duì)數(shù)似然函數(shù),具體表示如下: (20) 式中:et表示t時(shí)刻的重構(gòu)誤差,參數(shù)μe和σe由驗(yàn)證集中正常數(shù)據(jù)的重構(gòu)誤差通過(guò)極大似然估計(jì)法計(jì)算得到。 若當(dāng)前時(shí)刻數(shù)據(jù)的異常分?jǐn)?shù)高于分?jǐn)?shù)閾值η時(shí),則判定此時(shí)間點(diǎn)的數(shù)據(jù)為異常數(shù)據(jù),即 (21) 其中,異常分?jǐn)?shù)的閾值選定方式如下:首先計(jì)算全部測(cè)試集數(shù)據(jù)的異常分?jǐn)?shù),隨后在異常分?jǐn)?shù)分布的區(qū)間內(nèi)等距離采樣100個(gè)點(diǎn),選定其中使得判定結(jié)果的F1分?jǐn)?shù)最大的異常分?jǐn)?shù)點(diǎn)作為閾值。 Flightradar24網(wǎng)站可以訪問(wèn)從數(shù)千個(gè)地面站收集的數(shù)據(jù),為了驗(yàn)證模型性能,以在Flightadar24網(wǎng)站采集到的40趟航班完整飛行過(guò)程中的ADS-B報(bào)文序列作為分析基礎(chǔ),其中每趟航班的飛行過(guò)程中約包含6 000個(gè)采樣點(diǎn),收集到共計(jì)約24萬(wàn)條ADS-B報(bào)文序列,將ADS-B報(bào)文序列按8∶1∶1比例劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。訓(xùn)練集中全部都為正常序列,用于學(xué)習(xí)基于Transformer-VAE的重構(gòu)模型;驗(yàn)證集中也全部都為正常序列,參考提前停止策略,在訓(xùn)練過(guò)程中模型在驗(yàn)證集上重構(gòu)誤差達(dá)到最低點(diǎn)時(shí)停止訓(xùn)練;在正常序列中注入異常序列構(gòu)成測(cè)試集,用于測(cè)試模型性能。 在訓(xùn)練過(guò)程中,設(shè)定滑動(dòng)窗口的大小為50,設(shè)定滑動(dòng)步長(zhǎng)為1。采用Adam[21]作為模型的優(yōu)化算法,設(shè)定其中的參數(shù)Batch size為64,并設(shè)定初始學(xué)習(xí)率為0.001,采用Noam[13]學(xué)習(xí)率衰減算法更新訓(xùn)練過(guò)程中的學(xué)習(xí)率,設(shè)定其中的參數(shù)Warm step為16 000。經(jīng)過(guò)超參數(shù)搜索后,設(shè)定Transformer-VAE模型中多頭注意力機(jī)制中的頭數(shù)為4,Transformer編解碼器中的前饋神經(jīng)網(wǎng)絡(luò)尺寸為100,編碼器與解碼器的層數(shù)分別為4和1,模型隱狀態(tài)及隨機(jī)隱變量z的維度為84。 為了提取ADS-B報(bào)文序列中有意義的特征,選擇經(jīng)度、緯度、高度、速度和航向作為特征,而諸如循環(huán)冗余校驗(yàn)碼、國(guó)際民航組織標(biāo)識(shí)符等字段由于不隨時(shí)間發(fā)生變化,在任務(wù)中毫無(wú)意義,故而在特征篩選環(huán)節(jié)被剔除掉。對(duì)于一些時(shí)間點(diǎn)上的飛行狀態(tài)缺失,通過(guò)用相鄰狀態(tài)來(lái)填充缺失狀態(tài)。若是某條航班數(shù)據(jù)有多于一半的屬性值缺失,將此條數(shù)據(jù)直接從數(shù)據(jù)集中剔除。針對(duì)少于一半屬性值缺失的某條航班數(shù)據(jù),采用線性插值法補(bǔ)齊。 為了避免某些ADS-B數(shù)據(jù)特征差異過(guò)大影響到數(shù)據(jù)分析的結(jié)果,同時(shí)為了提高模型的收斂速度和精度,采用離差標(biāo)準(zhǔn)化的方法對(duì)ADS-B數(shù)據(jù)進(jìn)行處理,將每個(gè)特征的取值映射到[0,1]之間,轉(zhuǎn)換公式如下: (22) 通過(guò)計(jì)算精確率P(Precision)、召回率R(Recall)、F1分?jǐn)?shù)(F1-score)來(lái)評(píng)估異常檢測(cè)算法,以上指標(biāo)計(jì)算公式如下: (23) 式中:TP表示正常樣本被模型正確識(shí)別為正常樣本的樣本數(shù)量;TN表示異常樣本被模型正確識(shí)別為異常樣本的樣本數(shù)量;FP表示異常樣本被模型錯(cuò)誤識(shí)別為正常樣本的樣本數(shù)量;FN表示正常樣本被模型錯(cuò)誤識(shí)別為異常樣本的樣本數(shù)量;P是指被模型正確識(shí)別為異常樣本的數(shù)量占被檢測(cè)出來(lái)的所有異常樣本的比例;R是指被模型正確識(shí)別為異常樣本的數(shù)量占數(shù)據(jù)集中所有異常樣本的比例;F1分?jǐn)?shù)為精確率和召回率的加權(quán)平均調(diào)和值。 考慮到真實(shí)飛行狀態(tài),模擬了以下5種詳細(xì)的攻擊模式并將構(gòu)建的ADS-B異常報(bào)文混合到正常飛行的數(shù)據(jù)集中建立測(cè)試集評(píng)估模型性能,選取包含2 000條ADS-B數(shù)據(jù)的示例航班,異常報(bào)文生成如下: (1) 隨機(jī)噪聲異常通過(guò)將第1 000~1 500條ADS-B報(bào)文序列任意一個(gè)特征的原始值乘以0到2之間隨機(jī)生成的浮點(diǎn)數(shù)而產(chǎn)生,其余報(bào)文不做修改。 (2) 幽靈飛機(jī)異常通過(guò)將來(lái)自不同但合法航線的ADS-B報(bào)文序列注入測(cè)試航班的報(bào)文序列而產(chǎn)生,替換報(bào)文范圍為0~800,長(zhǎng)度為800,其余報(bào)文不做修改。 (3) 航向偏移異常通過(guò)修改第900~1 400條ADS-B報(bào)文序列中的航向字段而產(chǎn)生。以100條為一組,每組通過(guò)連續(xù)增加5度的航向字段(即,對(duì)于異常段中的第一條消息,航向?qū)⒈辉黾?度,第二條消息被增加10度,依此類推)不斷增加,產(chǎn)生異常,每組均從初始位置開(kāi)始構(gòu)建異常,其余報(bào)文不做修改。 (4) 速度偏移異常通過(guò)修改第450~950條ADS-B報(bào)文序列中的速度字段而產(chǎn)生。以100條為一組,每組通過(guò)連續(xù)增加10節(jié)的速度字段(即,對(duì)于異常段中的第一條消息,速度將被加速10節(jié),第二條消息被加速20節(jié),依此類推)不斷增加速度,產(chǎn)生異常,每組均從初始位置開(kāi)始構(gòu)建異常,其余報(bào)文不做修改。 (5) 拒絕服務(wù)(denial of service, DOS)攻擊異常通過(guò)在第977~1 377條和第1 692~2 000條兩組連續(xù)ADS-B報(bào)文序列中,每組只保留第一條報(bào)文并刪除其余報(bào)文(將報(bào)文的特征值全部置零)而產(chǎn)生。即只有間隔足夠大的消息才能到達(dá)目的地,從而模擬拒絕服務(wù)攻擊或網(wǎng)絡(luò)延遲模式,其余報(bào)文不做修改。 3.5.1 實(shí)驗(yàn)結(jié)果 圖3~圖7為Transformer-VAE模型異常檢測(cè)實(shí)驗(yàn)結(jié)果圖,橫坐標(biāo)為ADS-B報(bào)文序列號(hào),縱坐標(biāo)為異常分?jǐn)?shù)值,紅色虛線為異常分?jǐn)?shù)閾值,紅色長(zhǎng)方形陰影區(qū)域?yàn)楫惓W⑷氲姆秶?。從圖中異常點(diǎn)的異常分?jǐn)?shù)明顯高于非異常點(diǎn)這一現(xiàn)象可以看出,該模型異常檢測(cè)效果十分顯著。 圖3 隨機(jī)噪聲檢測(cè) 圖3為隨機(jī)噪聲異常檢測(cè)結(jié)果圖,如圖所示,在注入攻擊范圍內(nèi)報(bào)文的異常分?jǐn)?shù)明顯高于閾值;圖4為幽靈飛機(jī)異常檢測(cè)結(jié)果圖,使用正常的ADS-B報(bào)文序列替換掉測(cè)試航班的0~799條報(bào)文序列,第800條報(bào)文為兩段報(bào)文序列的銜接處,故異常分?jǐn)?shù)在此處達(dá)到峰值,這表明Transformer-VAE模型對(duì)報(bào)文序列中的數(shù)據(jù)變化十分敏感。 圖4 幽靈飛機(jī)檢測(cè) 圖5為航向偏移異常檢測(cè)結(jié)果圖,注入攻擊范圍為第900~1 400條報(bào)文,第900~1 000條報(bào)文由于航向與正常報(bào)文偏移程度的不斷增加導(dǎo)致異常分?jǐn)?shù)逐漸增大并在第1 000條報(bào)文處達(dá)到此段異常分?jǐn)?shù)峰值,由于每組異常報(bào)文的偏移程度均從0開(kāi)始增加,故在第1 000條報(bào)文之后,異常分?jǐn)?shù)呈急速下降的趨勢(shì),其余各組異常報(bào)文的異常分?jǐn)?shù)變化趨勢(shì)同理;圖6表示速度偏移檢測(cè)結(jié)果圖,其原理與圖5相似,故不詳細(xì)展開(kāi)論述。 圖5 航向偏移檢測(cè) 圖6 速度偏移檢測(cè) 圖7表示DOS攻擊異常檢測(cè)結(jié)果圖,注入攻擊范圍為第977~1 377條和第1 692~2 000條報(bào)文序列,由于每組除第一條報(bào)文剩余序列被全部置零,因此異常分?jǐn)?shù)均相同,同時(shí)異常分?jǐn)?shù)在被置零的報(bào)文序列與原始報(bào)文的拼接處的報(bào)文數(shù)據(jù)點(diǎn)達(dá)到峰值。 圖7 DOS攻擊檢測(cè) 另外,為了客觀驗(yàn)證模型性能,選取了具有代表性的5種異常檢測(cè)方法進(jìn)行對(duì)比實(shí)驗(yàn),這5種方法分別為一類支持向量機(jī)(one class-support vector machine, OC-SVM)[22]、局部異常因子(local outlier factor, LOF)算法[23]、孤立森林(isolation forest, IF)[24]、基于深度學(xué)習(xí)的LSTM-AE[8]和LSTM-VAE[12]異常檢測(cè)算法。 (1) OC-SVM:基于核函數(shù)的異常檢測(cè)算法,通過(guò)學(xué)習(xí)正常樣本與異常樣本的決策邊界來(lái)識(shí)別異常,適用與小樣本,低維度的數(shù)據(jù)集。 (2) LOF:基于密度的異常檢測(cè)算法,通過(guò)比較每個(gè)數(shù)據(jù)點(diǎn)和其鄰域點(diǎn)的密度偏差識(shí)別異常,適用于小樣本的數(shù)據(jù)集。 (3) IF:基于集群的異常檢測(cè)算法,通過(guò)判斷數(shù)據(jù)空間內(nèi)某些區(qū)域數(shù)據(jù)點(diǎn)分布的稀疏程度識(shí)別異常,適用于異常樣本占比很少的數(shù)據(jù)集。 (4) LSTM-AE: 基于AE的異常檢測(cè)算法,由LSTM神經(jīng)網(wǎng)絡(luò)作為模型的編解碼器,通過(guò)重構(gòu)誤差和預(yù)先設(shè)定的閾值進(jìn)行異常檢測(cè),適用于大規(guī)模數(shù)據(jù)集,但模型需要質(zhì)量較高的訓(xùn)練集進(jìn)行訓(xùn)練。 (5) LSTM-VAE:基于VAE的異常檢測(cè)算法,在LSTM-AE的基礎(chǔ)上引入了隨機(jī)變量來(lái)捕捉數(shù)據(jù)中的隨機(jī)性,適用于大規(guī)模數(shù)據(jù)集,對(duì)訓(xùn)練集質(zhì)量要求不高。 實(shí)驗(yàn)結(jié)果如表1所示,表1顯示了各個(gè)異常方法的精確率、召回率和F1分?jǐn)?shù)。由于基于機(jī)器學(xué)習(xí)的方法沒(méi)有考慮到數(shù)據(jù)的時(shí)序關(guān)系導(dǎo)致其檢測(cè)性能較差,無(wú)法檢測(cè)出DOS攻擊。其中,LOF模型的召回率較高但其精確率較低,說(shuō)明此方法僅僅是將大量的點(diǎn)標(biāo)記為異常來(lái)盡可能多地檢測(cè)出異常樣本。對(duì)比OC-SVW、IF、LOF這3種機(jī)器學(xué)習(xí)方法,Transformer-VAE的各項(xiàng)指標(biāo)比OC-SVW均高于21.95%以上,Transformer-VAE的各項(xiàng)指標(biāo)比LOF均高于21.35%以上,Transformer-VAE的各項(xiàng)指標(biāo)比IF均高于22.57%以上。對(duì)比LSTM-AE、LSTM-VAE這兩種深度學(xué)習(xí)方法,LSTM-VAE的各項(xiàng)指標(biāo)LSTM-AE均高于1.75%以上,Transformer-VAE的各項(xiàng)指標(biāo)比LSTM-AE均高于6.92%以上,Transformer-VAE的各項(xiàng)指標(biāo)比LSTM-VAE均高于3.02%以上。 表1 各個(gè)異常方法的精確率、召回率和F1分?jǐn)?shù) 綜上所述,基于深度學(xué)習(xí)的模型由于考慮到了ADS-B報(bào)文序列的時(shí)序性,相較基于傳統(tǒng)的機(jī)器學(xué)習(xí)方法表現(xiàn)出了更高的F1分?jǐn)?shù),Transformer通過(guò)自注意力機(jī)制有效地提升了模型捕捉ADS-B報(bào)文序列中長(zhǎng)程依賴關(guān)系的能力,相較LSTM具有優(yōu)越性。 而VAE通過(guò)引入隨機(jī)變量來(lái)捕捉ADS-B報(bào)文序列中的隨機(jī)性,顯著地提升了模型性能,相較AE具有優(yōu)越性。實(shí)驗(yàn)結(jié)果表明,針對(duì)不同類型的異常,Transformer-VAE算法精確率、召回率及F1分?jǐn)?shù)均優(yōu)于相關(guān)基線算法,表現(xiàn)出良好的性能。 3.5.2 消融實(shí)驗(yàn) 為了驗(yàn)證模型各部分的有效性,本組實(shí)驗(yàn)測(cè)試了不同模型框架對(duì)于算法性能的影響,實(shí)驗(yàn)參數(shù)的設(shè)定同第3.2節(jié)。具體的模型框架如下: (1) Transformer-AE:未引入VAE結(jié)構(gòu),即消除圖1中的估計(jì)網(wǎng)絡(luò)模塊以及解碼器模塊中的融合機(jī)制,消除了潛在隨機(jī)變量 在模型中的作用,僅使用AE的重構(gòu)誤差作為損失函數(shù),其他同本文。 (2) Transformer-VAE(無(wú)融合):未引入融合機(jī)制,僅將從估計(jì)網(wǎng)絡(luò)和編碼器中計(jì)算并采樣到的潛在變量z作為解碼過(guò)程的開(kāi)始標(biāo)志向量,即圖1中的S0,通過(guò)解碼器中的自注意力機(jī)制將z融入解碼過(guò)程,其余同本文。 (3) Transformer-VAE:本文所提出的模型。 實(shí)驗(yàn)結(jié)果如表2所示。Transformer-VAE的各項(xiàng)指標(biāo)要優(yōu)于Transformer-AE,其中F1分?jǐn)?shù)比Transformer-AE高3.85%, Transformer-VAE的各項(xiàng)指標(biāo)要優(yōu)于Transformer-VAE(無(wú)融合),F1分?jǐn)?shù)比Transformer-VAE(無(wú)融合)高1.79%,這表明Transformer-VAE模型中的估計(jì)網(wǎng)絡(luò)模塊和融合機(jī)制對(duì)模型檢測(cè)性能的提升均有正面作用。 表2 Transformer-VAE消融實(shí)驗(yàn) 3.5.3 滑動(dòng)窗口長(zhǎng)度的影響 為了驗(yàn)證Transformer的長(zhǎng)程依賴性,本組實(shí)驗(yàn)測(cè)試了改變滑動(dòng)窗口的長(zhǎng)度k對(duì)于算法性能的影響,選取循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks, RNN)系列中效果最好的LSTM-VAE算法作為對(duì)照實(shí)驗(yàn)。由表3可知,在不同的滑動(dòng)窗口長(zhǎng)度下,Transformer-VAE的各項(xiàng)指標(biāo)要明顯優(yōu)于LSTM-VAE,F1分?jǐn)?shù)最高相差達(dá)到6.95%。其中,在滑動(dòng)窗口長(zhǎng)度為500的情況下,Trans-former-VAE的F1分?jǐn)?shù)比LSTM-VAE高5.14%。另外,Transformer-VAE在滑動(dòng)窗口長(zhǎng)度為300的情況下達(dá)到下述長(zhǎng)度區(qū)間內(nèi)檢測(cè)性能的峰值,而LSTM-VAE則是在滑動(dòng)窗口長(zhǎng)度為200的情況下達(dá)到下述長(zhǎng)度區(qū)間內(nèi)檢測(cè)性能的峰值。實(shí)驗(yàn)結(jié)果表明,Transformer-VAE能夠更好的捕捉ADS-B報(bào)文序列的長(zhǎng)程依賴關(guān)系。 表3 滑動(dòng)窗口長(zhǎng)度對(duì)算法性能的影響 3.5.4 潛在空間可視化 為了驗(yàn)證Transformer-VAE模型能夠捕捉ADS-B報(bào)文的整體性特征,首先從驗(yàn)證集中隨機(jī)采樣2 000條正常的ADS-B報(bào)文數(shù)據(jù),隨后使用已訓(xùn)練完成的模型計(jì)算出這些報(bào)文數(shù)據(jù)隱含隨機(jī)變量的分布并從中采樣得到這些報(bào)文對(duì)應(yīng)的向量表示z。使用K-Means算法對(duì)z進(jìn)行聚類,并使用不同顏色標(biāo)出聚類結(jié)果,隨后使用T-SNE算法對(duì)z進(jìn)行可視化,聚類及可視化結(jié)果如圖8所示(其中,橫坐標(biāo)與縱坐標(biāo)代表降維后用于可視化的兩個(gè)維度)。從圖中可以看出,在潛在空間中,采樣到的報(bào)文數(shù)據(jù)可以明顯地被K-Means算法分成5類,表明本文提出的模型能夠捕捉到一定的整體性特征。 圖8 可視化結(jié)果 ADS-B異常檢測(cè)算法應(yīng)考慮到報(bào)文序列中的隨機(jī)性、長(zhǎng)程依賴關(guān)系以及整體性特征對(duì)此,本文從以上3個(gè)角度出發(fā),構(gòu)建了基于VAE和Transformer的ADS-B異常檢測(cè)算法。利用Transformer編碼器的自注意力機(jī)制建模ADS-B報(bào)文序列中的長(zhǎng)程依賴關(guān)系并通過(guò)改變滑動(dòng)窗口的長(zhǎng)度驗(yàn)證了Transformer的長(zhǎng)程依賴性。同時(shí),基于VAE框架,在Transformer模型中引入隨機(jī)變量來(lái)反映ADS-B報(bào)文序列的隨機(jī)性和整體性特征,并通過(guò)消融實(shí)驗(yàn)與潛在空間可視化實(shí)驗(yàn)驗(yàn)證了估計(jì)網(wǎng)絡(luò)模塊和融合機(jī)制對(duì)模型檢測(cè)性能提升的正面作用以及報(bào)文序列的整體性特征。為評(píng)估模型性能,針對(duì)ADS-B潛在的攻擊行為模擬生成5類異常報(bào)文,異常檢測(cè)實(shí)驗(yàn)結(jié)果表明,所提出的方法在設(shè)定的不同攻擊場(chǎng)景下,檢測(cè)性能優(yōu)于OC-SVM、LOF、IF、LSTM-AE、LSTM-VAE算法。2.4 基于Transformer-VAE的異常檢測(cè)流程
2.5 閾值確定與異常判定
3 實(shí) 驗(yàn)
3.1 實(shí)驗(yàn)設(shè)定
3.2 數(shù)據(jù)缺失插值與映射轉(zhuǎn)換
3.3 評(píng)估指標(biāo)
3.4 攻擊構(gòu)建
3.5 實(shí)驗(yàn)結(jié)果與分析
4 結(jié) 論