孫旸,曹春杰,賴俊曉,于天嬌
(1.海南省Internet信息檢索重點實驗室,海南 海口 570228;2.海南大學計算機與網絡空間安全學院,海南 海口 570228;3.南海海洋資源利用國家重點實驗室,海南 海口570228)
GPS欺騙是當前GPS 面臨的主要威脅[1],其手段是通過偽造或重放虛假的GPS信號,使被攻擊的GPS接收器捕獲并跟蹤虛假的GPS信號,從而解算出錯誤的時間和位置信息。GPS欺騙分為轉發式欺騙和生成式欺騙兩種類型。① 轉發式欺騙通過記錄預欺騙位置真實的GPS信號,使用軟件定義無線電等信號發射設備,將記錄的真實GPS信號經過一定的延遲發射到處于另一位置的目標接收器,達到欺騙目標接收器的目的。② 生成式欺騙是從真實的GPS信號中提取時間、位置、衛星星歷等必要信息,根據預欺騙的時間、位置信息生成虛假的GPS信號,將虛假GPS信號的載波與真實GPS信號對齊,通過矩陣天線發送給GPS接收器,從而使GPS接收器解算出錯誤的時間、位置信息,達到欺騙的目的。
國際上針對GPS定位導航的事件頻發[2]。2013年,Humphreys研究團隊使用GPS欺騙技術成功誘導一艘價值8 000萬美元的白玫瑰號游艇向左偏離航道3°,造成其偏出預定航線1 km。因此,針對GPS安全問題,必須找到有效的解決方案來檢測GPS攻擊。
目前國內外針對GPS欺騙的防護方法主要有如下幾種。
通過對比虛假信號與真實信號在信號物理層特性的差異來識別GPS虛假信號,這些差異主要包括自動增益控制[3]、信號到達方向、載波相位值、多普勒頻移[4]等。Psiaki[5]等分析了基于信號到達方向檢測GPS欺騙的原理,通過不同天線間信號載波相位的變化來判斷信號的到達角,從而判斷當前目標是否受到GPS欺騙攻擊,并提出了根據GPS信號到達方向的欺騙檢測方案。Ranganathan[6]等提出了輔助峰值跟蹤的欺騙檢測方法,該方法與導航消息檢查器結合使用,可以通過跟蹤最強的衛星信號以及其他較弱的環境信號實現欺騙檢測。Kang[7]提出了利用GPS歷書和星歷數據估計到達方向(DOA)和實測DOA的差異,利用GPS定向天線進行欺騙檢測的方法。
使用密碼學手段加密為隨機噪聲碼,接收機接收到信號后需要對信號進行解碼,對信號的發送者進行身份認證。Wesson等[8]提出了基于統計假設檢驗的密碼源認證和碼定時認證相結合的概率模型GPS信號認證方法,通過利用GPS信號的偽隨機噪聲碼檢測GPS欺騙攻擊。
通過使用慣性導航、無線網絡和蜂窩網絡等輔助手段結合GPS接收器進行定位,達到抗欺騙的目的。Panice等[9]結合慣性導航系統提出了基于狀態分布的抗GPS欺騙檢測機制,通過使用支持向量機分析GPS與慣性導航之間的誤差分布來檢測GPS欺騙攻擊。Magiera等[10]提出了基于相位延遲和空間處理的GPS欺騙檢測和緩解技術,通過使用多個接收天線對信號相位進行延遲估計和對信號進行空間濾波,以保護GPS接收器免受欺騙攻擊。Jansen[11]提出了群體眾包的方法來檢測無人機的GPS欺騙攻擊,該方法使用多架飛機報告位置的差異,通過無線空中交通管制系統來檢測無人機位置的GPS欺騙攻擊。Kwon等[12]提出通過對比GPS接收器和加速度計之間的加速度差來檢測GPS欺騙攻擊的方法。
在諸如電力巡檢、物流配送等無人機沿指定路線飛行的場景中,現有方案仍存在如下問題:基于GPS信號物理層檢測的方法只能檢測到簡單的GPS欺騙,當攻擊者使用多個方向的GPS欺騙裝置發射虛假GPS信號或在欺騙的同時動態調整GPS發射信號的頻率和功率時,僅通過GPS信號物理層特性無法檢測出欺騙攻擊,因此該方法無法解決無人機在電力巡檢中因上述GPS欺騙干擾引起的軌跡偏移問題;基于密碼學驗證方法不能解決信號的重放攻擊,且對信號進行加密不適用于民用GPS信號;使用其他設備輔助定位檢測方法,可以在一定程度上提高GPS接收器的抗欺騙能力,然而會因此增加設備定位的成本和無人機在電力巡檢中的負載。針對現有方案的局限性,本文將長短期記憶(LSTM,long short-term memory)網絡和卡爾曼濾波(KF,Kalman filter)相結合,提出了LSTM-KF模型。該模型提高了無人機在沿指定路線飛行時的抗GPS欺騙干擾的能力;一方面,利用LSTM循環神經網絡學習當前環境無人機飛行軌跡規律,對無人機飛行軌跡進行有效的預測,避免了物理層檢測方法對GPS信號過度依賴的問題;另一方面,使用Kalman濾波有效地解決了LSTM模型預測軌跡的誤差,提高了無人機軌跡預測精度,從而有效增強了無人機抗GPS欺騙干擾的能力。同時,此方法不需要對GPS接收器增加額外的硬件開銷,也無須對GPS信號進行任何修改,且易于實現。
本文基于LSTM-KF模型的無人機抗GPS欺騙方法,通過比較無人機飛行軌跡預測值與無人機GPS接收機定位值之間的差異,可以快速檢測出無人機GPS欺騙干擾。該方法使用LSTM與Kalman濾波相結合來預測無人機飛行軌跡。LSTM模型具有很強的時間序列數據預測能力,能夠被應用于無人機飛行軌跡的預測,同時Kalman濾波能很好地解決LSTM預測的飛行軌跡因噪聲等外部因素干擾帶來的誤差缺陷。基于LSTM-KF模型的無人機抗GPS欺騙方法流程如圖1所示。

圖1 基于LSTM-KF模型的無人機抗GPS欺騙方法流程Figure 1 Flow chart of anti-GPS spoofing method for drone based on LSTM-KF model
圖1所示的系統流程實現是基于LSTM模型的無人機飛行軌跡靜態預測和基于Kalman濾波的軌跡動態調整相結合,得出軌跡預測值的,并與GPS實時定位數據對比,檢測無人機GPS定位安全性。其中,LSTM模型為預測的基礎,利用訓練好的LSTM模型從無人機的歷史軌跡中計算出需要預測的無人機飛行軌跡。但LSTM模型不能對無人機所處的復雜環境(如噪聲干擾等)進行調整,所以將卡爾曼濾波算法加入模型中。將LSTM模型預測的無人機軌跡作為初始的預測軌跡,再將該初始的預測軌跡輸入卡爾曼濾波器中對結果進行動態地調整。卡爾曼濾波模型利用更新方程將最新的更新值加入預測向量中,從而有效地提高預測的精度。通過與GPS實時定位的數據作對比,發現該方法可有效地提高無人機抗欺騙干擾能力。
2.2.1 無人機飛行軌跡預測模型
無人機飛行軌跡的預測是運用LSTM循環神經網絡解決回歸問題。對LSTM模型進行訓練,將無人機的歷史軌跡特征數據作為輸入,將未來的無人機軌跡特征數據作為對應的標簽,通過訓練LSTM循環神經網絡,建立無人機歷史飛行軌跡與無人機未來飛行軌跡的映射關系,實現模型對無人機未來飛行軌跡的預測。
設x(t)為無人機在各時刻的四元組數據,其中t表示無人機飛行中的時刻,四元組數據代表的信息為[lngt,latt,higt,vt],其中lng、lat、hig、v分別表示無人機在t時刻的經度、維度、高度和速度。則無人機在t時刻的軌跡特征x(t)可表示為

通過訓練后的LSTM模型可對無人機飛行軌跡進行預測,將連續n個時刻的無人機飛行軌跡數據[x(t-n+1),…,x(t)]作為LSTM模型的輸入數據,向后預測n步,即將預測未來n個時刻的無人機軌跡數據[x(t+1),…x(t+n)]作為輸出。其中n為LSTM模型中輸入層的step大小。因此,無人機飛行軌跡預測模型表達式為

2.2.2 數據歸一化處理
為了消除無人機飛行軌跡數據間不同量綱對LSTM模型訓練引起的誤差,對無人機飛行軌跡數據進行歸一化處理。本文采用離差標準化(min-max normalization)方法,經處理后的無人機飛行軌跡數據取值范圍映射到[0,1]。轉換函數為

其中,max為無人機軌跡樣本數據的最大值,min為無人機軌跡樣本數據的最小值。X為無人機飛行軌跡原始數據,*X為歸一化處理后的無人機飛行軌跡數據。經過歸一化處理后,可以消除數據間取值范圍和數量級的影響,但仍會保留數據間的關系。使用LSTM模型對無人機飛行軌跡進行預測后,對預測結果進行反歸一化處理,使預測的無人機軌跡符合真實意義,以便后期與GPS接收器定位值作對比檢測。
2.2.3 無人機軌跡預測LSTM模型輸入層步數的選擇
LSTM模型中引入了時序的概念,使模型的處理數據增加了一階步數的選擇。該步數即無人機飛行軌跡輸入時刻的長短。根據步數的選擇,LSTM模型的記憶神經元會選擇記憶和遺忘所累積的信息,從而更加準確地由所選時刻的長短預測對應的無人機未來飛行的軌跡。在本文實驗中,選擇3~7個連續時刻的無人機飛行軌跡,即選擇輸入層的步數大小為3~13,并將無人機抗GPS欺騙評估指標作為評判標準,選取最佳的步數大小。
2.2.4 無人機軌跡預測LSTM模型隱藏層神經元節點個數選擇
LSTM模型隱藏層神經元節點個數對無人機軌跡預測精度有直接的影響。如果節點數目太小,無人機軌跡預測不能很好地擬合,導致預測精度低,影響無人機抗GPS欺騙的性能;如果節點數目過大,會增加算法的復雜性與訓練的時間。因此,本文實驗中對隱藏層節點數目的選取進行分析,并將無人機抗GPS欺騙評估指標作為評判標準,選取最佳的隱藏層神經元節點個數。
通過LSTM模型對無人機飛行軌跡預測,實現對無人機未來飛行狀態和趨勢較為合理的預測,然而由于復雜環境中不可避免的噪聲干擾等問題,經過LSTM預測后的軌跡會出現偏移,需要對LSTM預測后的無人機飛行軌跡進行優化和調整,以提高預測精度,從而提高無人機的抗欺騙干擾能力。
卡爾曼濾波通過狀態預測方程和更新方程對LSTM模型預測的無人機飛行軌跡結果進行更新,使無人機飛行軌跡預測結果更加精準,基于Kalman濾波的軌跡動態調整流程如圖2所示。

圖2 基于Kalman濾波的軌跡動態調整流程Figure 2 Dynamic adjustment of trajectories based on Kalman filtering
圖2中,LSTM模型預測后的無人機飛行軌跡是卡爾曼濾波的觀測值,Kalman濾波通過狀態方程的預測階段和測量更新階段兩個部分對LSTM模型預測的無人機軌跡進行動態調整,提高無人機軌跡預測的精確度。模型中卡爾曼濾波的狀態方程和觀測方程分別如式(4)、式(5)所示。


其中,X(k)為系統狀態向量,表示無人機在k時刻的狀態矢量,F(k+1)為狀態轉移矩陣,表示無人機飛行軌跡中由前一時刻的運動狀態到下一時刻的運動狀態的轉移方式,W(k)為無人機運動模型的系統狀態噪聲,其統計特性相當于高斯白噪聲;Z(k+1)為觀測向量,表示無人機在k+1時刻LSTM模型預測的無人機軌跡值,H(k+1)為觀測矩陣,V(k)為無人機軌跡估計過程中產生的觀測噪聲。
卡爾曼濾波狀態方程預測根據無人機軌跡前一時刻值最優狀態估計預測出無人機軌跡下一時刻值的狀態,同時更新當前預測狀態的協方差,狀態預測方程如下所示。

得到下一時刻預測值之后,利用LSTM模型預測的無人機軌跡提供觀測值Z(k+1,k),利用卡爾曼更新方程來推測出最優無人機軌跡估計值,同時通過狀態噪聲協方差和觀測噪聲協方差得出卡爾曼增益矩陣K。觀測更新方程如式(8)所示。

經過卡爾曼濾波更新過程,得到無人機軌跡下一時刻的最優位置估計值,通過不斷迭代,可完成對LSTM模型預測無人機軌跡的動態調整。
本文方法首先加載無人機飛行記錄數據集并對其進行規范化,將數據集分成訓練數據集和測試數據集。接下來,創建并初始化LSTM模型。設定LSTM的每個輸入數據與以前的數據輸入之間的遞歸關系。在LSTM中,激活函數為sigmoid,在編譯模型時指定損失函數為mean_squared_error,優化器為adam。然后對訓練數據進行批量迭代訓練,并進行LSTM預測。最后,利用Kalman Filter.em()學習參數,建立并擬合Kalman濾波器,利用KalmanFilter.smooth()預測隱藏狀態序列。最終得出預測值,與GPS接收器的數據進行實時對比,得出檢測結果,判斷無人機是否受到GPS欺騙干擾。
基于LSTM-KF模型的GPS欺騙檢測算法如算法1所示。
算法1基于LSTM-KF模型的GPS欺騙檢測算法
輸入無人機GPS軌跡集T
輸出無人機GPS欺騙檢測結果
1)加載數據集
2)規范化數據集
scaler=MinMaxScaler(feature_range=(0,1))
dataset=scaler.fit_transform(dataset)
3)創建訓練數據和測試數據集
4)初始化LSTM訓練模型
model=Sequential()
model.fit(trainX,trainY,epochs=100,batch_size=5)
5)對數據進行訓練,并進行LSTM預測
6)初始化Kalman濾波模型
kf=KalmanFilter(initial_state_mean=observations[0])
7)EM算法學習Kalman參數
kf=kf.em(observations,n_iter=5,em_vars='all')
8)利用Kalman模型預測隱藏狀態序列
measurements_predicted=(kf.smooth(measurements)[0])[:,0]
9)對比預測值與定位值,判斷欺騙結果
if compare(D_PRE,D_RES)>ε
output ture;
else
T=T+D_RES
output false
無人機GPS抗欺騙接收器軟件實現:運用GPS定位模塊和LSTM-KF算法模塊組合實現GPS抗欺騙功能,GPS接收器模塊實時接收定位數據,對數據進行處理,解算無人機定位數據。定位軟件開啟后可檢測硬件設備和驅動是否安裝正確,并開始采集數據,將實時數據通過與LSTM-KF算法預測軌跡數據進行對比分析,得出無人機抗欺騙結果,并在地圖上將定位點實時顯示出來。飛行完成后的定位數據可保存在本地中,以供后續處理分析和使用。
數據的采集來自無人機攜帶的GPS接收器實際接收的GPS信號產生的定位記錄,無人機的飛行軌跡區間為海南大學第一田徑運動場至海南大學圖書館,無人機攜帶的GPS接收器能夠記錄無人機飛行軌跡的經度、維度、高度和速度。無人機GPS欺騙場景通過軟件定義無線電實現,攻擊者可以通過生成式欺騙產生虛假信號,通過定向天線對無人機進行GPS欺騙干擾。采集數據集參數如表1所示。

表1 采集數據集參數Table 1 Acquisition data set parameters
為了確定研究的LSTM-KF模型的性能,采用4種評價指標對該模型的抗GPS欺騙性能進行評估。

圖3 無人機抗GPS欺騙系統實現Figure 3 Implementation of UAV anti-GPS deception system
檢測率(DR,detection rate)、漏檢率(MR,missing report rate)、誤報率(FR,false alarm rate)、準確率(Accuracy)的計算式如下。

其中,Pd為檢測率,代表無人機正確識別GPS欺騙信號的概率;Pm為漏檢率,代表無人機將GPS欺騙信號識別為正常的信號的概率;Pf為誤報率,代表無人機將正常的GPS信號識別為欺騙信號的概率;Pa為準確率,代表無人機將GPS正常信號和欺騙信號均正確識別的概率。
本節實驗結果分析主要分成兩部分:①針對本文提出的LSTM-KF模型,研究不同的參數對無人機抗GPS欺騙的性能的影響;②分析對比不同的方法對無人機抗GPS欺騙的效果。
4.3.1 無人機抗GPS模型參數分析
對無人機飛行軌跡數據作歸一化處理后,設定不同的隱藏層神經元節點個數,將連續6個時刻的無人機飛行軌跡數據作為模型的輸入,將未來6個時刻的無人機飛行軌跡數據作為輸出來訓練模型。在實驗中設置不同的LSTM預測模型的隱藏層神經元節點個數。通過比較實驗結果的準確率和誤報率,確定該模型中最佳的參數,實驗過程中不同隱藏層節點數對應的準確率和誤報率對比如圖4所示。

圖4 神經元節點對應的準確率和誤報率對比Figure 4 Comparison of accuracy and false alarm rates corresponding to neuron nodes
由圖4可知,隨著隱藏層神經元節點個數不斷增加,無人機識別GPS信號真偽的性能隨之提高。隱藏層神經元個數從4增加到12,準確率提高了8.3%。而神經元個數從12增加到16時,準確率的提升比較緩慢。當神經元個數增加到12之后,隨著神經元個數的增加,誤報率出現上升的趨勢。從實驗結果可以看出,當隱藏層神經元節點數為12時,訓練效果最佳,無人機識別GPS欺騙準確率高、誤報率低、無人機抗GPS欺騙性能最佳。綜上所述,該模型設置的最佳隱藏層神經元節點數為12。
無人機飛行軌跡輸入時刻的長短直接影響著該模型對無人機飛行軌跡預測的精度,實驗中設置輸入層不同的步數,即設置不同連續時刻的無人機飛行軌跡作為模型的輸入,對比實驗結果中不同步數的準確率和誤報率,確定該模型最佳的步數。實驗過程中輸入層步數對應的準確率和誤報率圖5所示。

圖5 輸入時序步長對應的準確率和誤報率對比Figure 5 Comparison of accuracy and false alarm rates corresponding to input timing steps
由圖5可知,隨著輸入層步數逐漸增大,無人機識別GPS信號真偽的性能在步數為10時達到最高值。當步數從3增加到10,準確率逐步提升,在10時準確率達到了97.1%。同時誤報率明顯下降,無人機識別GPS信號性能不斷提升。當步數增加到10以后,隨著步數不斷增加,準確率開始逐步下降,同時當步數達到11之后,誤報率開始出現上升趨勢。輸入的步數越大,模型計算越復雜,模型出現過擬合現象,導致無人機識別GPS信號的準確率開始下降,誤報率出現上升趨勢。從圖5可以看出,當輸入層步數為10時,訓練效果最佳,無人機識別GPS欺騙準確率高、誤報率低、無人機抗GPS欺騙性能最佳。綜上所述,該模型設置的最佳步數為10。
4.3.2 不同方法對于無人機抗GPS欺騙性能對比
為了驗證該模型的無人機抗GPS欺騙的性能和效果,在相同的數據集的基礎上,采用循環神經網絡(RNN,recurrent neural network)模型、LSTM模型、支持向量機(SVM,support vector machine)模型測試本次實驗中無人機抗GPS欺騙的效果。利用本文提出的評估指標對以上模型進行抗GPS欺騙性能的比較,實驗結果如表2所示。

表2 各模型抗GPS欺騙性能對比結果Table 2 Comparison results of anti-GPS deception performance of each model
由表2可知,本文提出的LSTM-KF模型的無人機抗GPS欺騙性能優于LSTM模型、SVM模型和RNN模型。LSTM-KF模型的準確率達到98.3%,誤報率僅為0.56%,漏檢率為0.8%。一方面,該模型使用的LSTM預測方法本身可以提供較好的時序預測能力;另一方面,結合Kalman濾波可有效地改善LSTM預測模型因外部環境等因素產生的預測誤差。本文提出的LSTM-KF模型的抗GPS欺騙準確率分別比LSTM模型、SVM模型、RNN模型提高了9.8%、13.6%和25.7%,LSTM-KF模型的準確率得到了極大地提升。對于虛假信號的檢測率,該模型相對其他3種模型分別提高了6.5%、11.9%和16.1%。同時LSTM-KF模型對于實驗結果的誤報率有明顯的優勢,分別比其他3種模型誤報率降低了10.14%、16.24%和21.04%。
欺騙是GPS接收器上最重要的威脅之一。本文討論了無人機抗GPS欺騙干擾的檢測模型,提出了基于LSTM-KF模型抗GPS欺騙檢測方法,通過長短期記憶網絡預測出無人機飛行軌跡并結合卡爾曼濾波對其進行調整,之后通過與GPS接收器定位結果的對比達到對無人機GPS欺騙干擾做出有效判斷的目的。模型采用長短期記憶網絡模型實現靜態預測,同時采用卡爾曼濾波模型結合實時定位數據對靜態預測的預測值進行動態調整。通過兩個模塊的靜態預測和動態調整的結合,實現最優估計,從而對欺騙信號進行準確的判斷,達到抗欺騙干擾的目的。該方法相對于傳統的抗GPS欺騙檢測方法無須增加輔助設備等硬件成本,且具有準確率高、誤報率和漏報率低的特點,能在無人機沿指定路線飛行的場景下有效地實現抗GPS欺騙干擾的效果。