李 晨,王布宏,田繼偉,郭戎瀟
(空軍工程大學 信息與導航學院,西安 710077)
無人機憑借其機動性好、價格低廉、方便快捷、無人駕駛等特點[1],在軍事領域和民用領域都發揮著越來越重要的作用.無人機在給我們的生產生活方式帶來各種便利的同時,其面臨的安全問題也逐漸暴露出來[2,3].目前無人機面臨的攻擊和威脅主要集中在:無線信號劫持與干擾、GPS (Global Positioning System,全球定位系統)欺騙、傳感器攻擊、通信網絡攻擊,這些都可能導致無人機的飛行能力下降或軌跡異常,并造成信息泄露[4,5].
無人機系統的實時控制和通信能力使得其具有廣闊的發展空間和應用前景,但同時也容易遭受可能的數據攻擊.在無人機系統中,主控制器根據各種傳感器采集到的數據,向動力系統下達相應的指令,以保障無人機的正常飛行和工作[6].因此,傳感器所采集到的虛假數據很可能使無人機做出錯誤的決策,影響無人機的飛行安全.在現有的研究中,攻擊者可以通過各種方式對傳感器進行欺騙,如在傳感器反饋鏈路中截獲并注入虛假數據,或使機載處理器過載,從而導致傳感器與控制器之間的通信中斷[7].另外,由于技術和成本的限制,一般機載傳感器往往無法對正常和異常的信息進行檢測和區分.傳感器是無人機感知自身狀態和外界變化的基礎,一旦出現異常或者故障,可能會造成無人機不按指令正常飛行,繼而導致事故發生,因此針對無人機飛行數據的異常檢測是至關重要的[8].
異常檢測方法主要可分為3大類,基于知識的異常檢測方法、基于物理模型的異常檢測方法和基于數據驅動的異常檢測方法[9].前兩種方法需要充分了解領域知識或系統結構才能達到較好的檢測效果,然而無人機的各個子系統很難建立精確的物理模型,同時無人機實際飛行數據中異常樣本較少,一般只能較好的檢測已知的異常模式,因此檢測適用性、抗干擾能力較差[9,10].基于數據驅動的異常檢測方法可以細分為基于相似性的方法、基于統計的方法、基于分類的方法、基于預測的方法[10].文獻[11]研究分析了無人機控制系統狀態估計中數據攻擊帶來的安全威脅,提出了新息序列驅動的無人機控制系統數據攻擊的檢測方法,該方法建立在對傳感器十分了解的基礎上,并且不能自適應檢測數據中出現的新的異常模式.文獻[12]提出了一種用于虛假數據注入攻擊檢測的神經網絡自適應結構,該設計利用擴展卡爾曼濾波優化神經網絡的權值,提高了神經網絡的學習速度,然而該實驗所設計的攻擊較為簡單,因而適用度不高.文獻[13]提出一種用于無人機異常檢測的長短期記憶(LSTM)遞歸神經網絡方法,通過預測結果和預測不確定性的估計來實現異常檢測,但其實驗對象為單維數據變量,而且易受參數選取的影響不能有效檢測.
無人機在飛行過程中產生的傳感器數據是典型的時間序列,基于預測的異常檢測方法可以根據歷史信息提前計算出下一時刻的飛行狀態.如果預測數據與實際傳感器數據有較大偏差,則此刻無人機可能遭受攻擊出現異常.LSTM神經網絡對非線性和非平穩時間序列具有較強的逼近能力[14],一般的統計方法需要人工分析預測誤差來確定閾值,如:余弦相似度、歐氏距離,本文選用OCSVM具有更好的適應性,并能較好地處理只有單樣本分類問題.基于歷史無人機傳感器數據,通過LSTM模型訓練出預測樣本,并將預測前后的差值序列作為樣本送至OCSVM檢測模型,訓練出超平面分類器,根據距離函數值的正負,判斷是否為異常點.實驗結果表明該檢測模型能有效判定針對無人機傳感器的數據攻擊,并具有較好的檢測效果.
循環神經網絡(Recurrent Neural Network,RNN)是一種用來處理時間序列數據的深度學習方法,廣泛應用于語音識別、機器翻譯、自然語言建模描述等諸多領域[15].但在實際運用中,由于原始RNN存在梯度消失和梯度爆炸現象[14],因而無法處理過長序列.Hochreiter & Schmidhuber提出了LSTM[16],作為一種改進型的RNN,通過3個門控狀態控制信息傳輸,遺忘不重要信息,長期記憶需要的信息,有效解決了RNN存在的長依賴問題.LSTM具有較強的長期記憶能力,更適合分析時間序列,在時間序列異常的檢測中發揮著越來越大的作用.

圖1 LSTM單元的結邏輯架構示意圖Fig.1 LSTM unit logical architecture diagram
普通RNN的隱含層節點結構簡單,只有一個Sigmoid或Tanh激活函數,只是把上一次的狀態作為本次的輸入一起輸出.LSTM在狀態的更新做了靈活地選擇,遺忘門用于丟棄部分存儲信息,輸入門用于控制新信息的比例完成狀態的更新,輸出門用于控制此時存儲信息的輸出部分.
如圖1所示為LSTM單元的邏輯架構圖,當t時刻的數據X輸入LSTM時,便與t-1時刻的長期狀態Ct-1和輸出ht-1一起參與運算,得到t時刻LSTM的輸出ht,ht便為所求t時刻的預測數據,則LSTM具體更新公式為:
it=σ(Wi·[ht-1,xt]+bi)
(1)
ot=σ(Wo·[ht-1,xt]+bo)
(2)
ft=σ(Wf·[ht-1,xt]+bf)
(3)
Ct=ft?Ct-1+it?tanh(Wc·[ht-1,xt]+bc)
(4)
ht=ot?tanh(Ct)
(5)
Wi、Wo、Wf分別為輸入門、輸出門、遺忘門的權重系數,bi、bo、bf為偏置矢量,σ(·)為Sigmoid激活函數,tanh(·)為雙曲正切函數.通過這樣的門結構,使得LSTM神經網絡具有保持長期依賴信息的能力,有效增加了記憶的長度,適用于長時間序列問題的處理.
一類支持向量機(OCSVM)是Sch?lkopf[17]等提出的一種用于解決有限數據分類問題的無監督機器學習方法.該模型旨在把樣本通過核函數[18]映射到高維特征空間,在高維特征空間中構造線性判別函數來實現樣本的分類,同時具有較好的泛化能力.
對于給定的不含標簽的 k 個訓練樣本,其中有小部分屬于孤立點,OCSVM目標是確定正常樣本的邊界,即最優超平面,也就是要找到函數F(x),使得樣本中大部分取值為+1,而在孤立點上的取值為-1.分類問題可以看做是,在映射的高維特征空間中尋找最優分類超平面,對應于F(x)決定樣本點所屬的區域.
OCSVM可以轉化為尋求最小化目標函數:
(6)
其中:xi為樣本數據,n為訓練集數量,ζi為松弛因子,ν為權衡參數,φ為原始空間到特征空間映射,w和ρ分別為特征空間中超平面的法向量和補償.
引入拉格朗日乘子和徑向基函數,可將約束條件下的目標優化問題轉化為特征空間的對偶問題[19]:
(7)
K(xi,xj)=exp(-γ‖xi-xj‖2)
(8)
約束條件為:
(9)
由上式可求出:
(10)
決策函數為:
(11)
對于訓練數據xi,F(xi)表明它在高維空間位于超平面的正負方向,正的為正常樣本,負的為異常樣本.
本文用時間序列X={X1,X2,…,Xn}表示提取后的無人機傳感器數據,n為序列長度.對于每個時刻有:
XkT=(x1,x2,x3) , 1≤k≤n
(12)
其中Xk是一個三維列向量,代表了無人機某一時刻的位置信息.
本文旨在解決無人機傳感器數據的異常判定問題,為了解決此問題,需要建立異常數據的檢測閾值.圖2展示了異常檢測模型建立的流程圖.

圖2 異常檢測模型框架Fig.2 Overall framework of anomaly detection model
模型在訓練階段,將提取數據進一步歸一化后得到序列數據S={S1,S2,…,Sn},然后將處理后的無人機飛行數據輸入到LSTM神經網絡進行預測,則可以得到相對應預測序列P={P1,P2,…,Pn},再將預測前后的數據序列做差得到:
DK=PK-SK, 1≤k≤n
(13)
模型在測試階段,將測試數據Xk輸入模型,經過模型分類求解后,如若差值對應的距離函數值F(DK)為正,則Xk被判定為正常數據;如若差值對應的距離函數值F(DK)為負,則Xk被判定為異常數據.
由于接收的無人機傳感器數據存在一定的數據缺失和數據噪聲,為了保證LSTM神經網絡預測的準確性,需要對數據進行預處理.
考慮到通信鏈路和收發設備的影響,無人機傳感器數據在生成、傳輸和采集過程中都有可能摻雜有噪聲數據,使數據在較小范圍內產生隨機偏差,由于無人機機動性較強,本文默認噪聲影響相對較小不作處理.
而在傳輸的過程中,由于鏈路的不可靠性,信號可能會無法解析或者傳輸數據的校驗字段出現損壞,都將導致無人機傳感器數據無法有效獲取,從而出現無人機傳感器數據的缺失.故數據缺失較多的無人機傳感器數據不能選取為訓練樣本,否則會降低LSTM神經網絡預測的準確性,進而降低模型的檢測概率.
若某一趟飛行數據僅缺少少量傳感器數據或者不缺少傳感器數據,則將這一趟飛行數據選取為訓練樣本.對缺失的少量無人機傳感器數據,本文采用插值法進行補齊,具體方法為:計算缺失值前后數據的斜率,根據斜率補齊缺失的傳感器數據.
無人機傳感器數據包括了經度、緯度、高度、俯仰角、偏航角、滾轉角等信息,本文主要研究了無人機位置數據的異常檢測,因此提取經度、緯度、高度作為三維數據特征.
為了消除指標之間量綱的不良影響,同時為了減短模型的訓練時長、使訓練過程盡快收斂,進一步將序列元素在每個維度中做歸一化處理,這里選用最大最小標準化方法:
(14)
通常無人機執行任務時的飛行計劃是已知的,而且訓練集中包含了無人機的各種飛行狀態,故可通過訓練集采集的傳感器數據確定最大最小值,進一步對數據進行歸一化處理.
無人機傳感器數據是具有時間相關性的一系列數據,它任一時刻的高度、緯度、經度、角速度和角加速度等信息都與歷史時刻和未來時刻相關.為了實現對無人機傳感器數據的預測,本文從輸入層、LSTM層、全連接層和輸出層的角度設計了一種基于LSTM神經網絡的預測模型,如圖3所示.

圖3 LSTM預測模型Fig.3 Prediction model of LSTM

LSTM層:利用LSTM能捕獲數據的時序性,并能解決梯度消失問題,將其自動學習無人機傳感器數據的抽象特征,設置隱藏層神經元個數分別為40,80,20.同時,為了提高模型的泛化能力,避免過擬合,設置dropout比例.
全連接層:全連接層將其輸入特征重新擬合,通過權重矩陣提取以前全部數據的局部特征,能夠將網絡的輸出值映射成目標輸出值.為了較好提取并保留特征,設置全連接層的神經元個數為10.
輸出層:輸出層通過線性激活函數輸出預測結果.
為了解決無人機傳感器數據攻擊檢測閾值的自適應問題,本文將傳感器數據預測序列和實際序列做差,得到差值序列為DK=PK-SK;將差值序列DK輸入OCSVM程序求解,根據訓練集可以求得 OCSVM的超平面分布;根據測試集可以求得每個差值到超平面的矢量距離函數值.其中,距離函數的正負就是判定數據異常與否的依據.為了使樣本在特征空間中線性可分,需要利用核函數將樣本從原始空間映射到一個更高維的特征空間.本文采用高斯核函數,其表達式為:
K(xi,xj)=exp(-γ‖xi-xj‖2)
(15)
其中,xi和xj是輸入OCSVM的任意兩個樣本,γ是高斯核參數.
為正確評估分析模型的檢測效果,可將實驗結果分為4類,如表1所示.本文采用檢測率(TNR)、召回率(TPR)和準確率(ACC)作為評價指標,檢測率TNR是指被模型判定為異常樣本的數目占實際異常樣本數目的比例,召回率TPR是指被模型判定為正常樣本的數目占實際正常樣本數目的比例,準確率ACC是指被模型正確預測的樣本數目占實際總樣本數目的比例.上述3個指標的值越大,LSTM-OCSVM異常檢測模型的性能越佳.

表1 樣本分類結果Table 1 Classification results of sample
評價指標具體計算如下:
(16)
(17)
(18)
本文實驗采用Tensorflow深度學習框架,使用Python 語言編程實現,實驗運行環境為JetBrains PyCharm Community Edition和MATLAB 2016a軟件, 操作系統為Windows 10(64位),內存為8 GB,處理器為Intel(R) Core(TM) i7-6500U 2.59GHz.
本文選用的實驗數據來自于Zurich大學機器人和感知小組[20],通過無人機在城市街道上方低空飛行采集,包含了GPS和慣性測量端元(Inertial measurement unit,IMU)傳感器數據、地面街景圖像數據.根據時間戳的特性,選取了等時間間隔的80000條無人機位置數據,其中前60000條數據作為訓練樣本,后20000條數據分為40組,每組實驗500條數據進行測試.選取的無人機飛行數據包含了爬升、下降、變向等運動,具有一定的代表性,其中的一條測試軌跡如圖4所示.針對無人機傳感器的數據攻擊主要有重放攻擊、DOS攻擊、數據篡改攻擊,本文假定攻擊已經成功,攻擊數據由模擬生成并加到測試數據段中,具體如下:
高度偏差(數據篡改):前150條、后150條數據不作任何處理;對中間200條飛行數據的高度信息進行篡改,以0.5英尺為倍數,逐步改變高度信息.具體來說,第151條數據的高度信息增加0.5英尺,第152條數據的高度信息增加1英尺,依次類推直至第350條數據.
隨機位置偏移(數據篡改):前150條、后150條數據不作任何處理;中間200條飛行數據,在經度緯度上加入均值為0,標準差為0.00001的高斯白噪聲.
航跡消失(DOS攻擊):前150條、后150條數據不作任何處理;在150條數據350條數據之間發動DOS攻擊,大量占用傳輸信道,造成控制端沒有任何數據反饋.

圖4 無人機軌跡示意圖Fig.4 UAV trajectory diagram
航跡替換(重放攻擊):前150條、后150條數據不作任何處理;中間200條飛行數據,攻擊者發動重放攻擊,將之前監測記錄的第126條-第150條數據段連續發送了8次給控制端.
在LSTM神經網絡中,通過單變量控制法觀察預測前后樣本的均方誤差值和運行時間,分別確定出訓練次數epochs=40,每組樣本數batch_size=100,dropout比率為0.2,優化器選擇Adam時,LSTM預測效果較好.特別地,對于滑動窗口長度的選擇,既要充分考慮無人機傳感器數據的時間相關性,同時也要考慮運算時間.如若滑動窗口太小,則LSTM神經網絡會失去大量的時間相關信息,使得預測效果不佳;如若滑動窗口太長,LSTM神經網絡會捕捉到大量的時間相關信息,但也會預測過擬合,大大降低預測的時效性.本文以預測前后樣本的均方誤差和LSTM神經網絡完成一輪訓練所需的時間作為衡量指標,對不同時間長度的滑動窗口作以對比,如圖5所示.由于無人機飛行機動性較大,滑動窗口長度對應的預測效果好壞也有波動,綜合考慮預測時效以及預測準確度,這里選擇滑動窗口長度為9.

圖5 滑動窗口長度效果對比Fig.5 Comparison of sliding window length
在OCSVM檢測模型中,需要調節響應參數(ν,γ)來達到理想的檢測效果.本文采用通過大量實驗觀測并計算檢測準確率,最終取權衡參數ν=0.1,高斯核參數γ=0.1.
如圖6-圖9所示為對應4種攻擊的檢測判定圖.其中,圖6描述的是注入高度偏差攻擊后的檢測判定圖,橫坐標取500

圖6 高度偏差攻擊檢測圖Fig.6 Detection of height deviation
個時刻,縱坐標取距離函數,閾值為0.在該圖中,對于異常樣本,150時刻350時刻對應的距離函數值共有185個<0,故檢測率為92.5%;對于正常樣本,在其余300時刻對應的距離函數值共有291個≥0,故召回率為97%;對于總樣本,預測結果和實際樣本一致的有476個,故準確率為95.2%.

圖7 隨機位置偏移檢測圖Fig.7 Detection of random offset
同理,如圖7-圖9所示,隨機位置偏差攻擊的檢測率為87.5%,召回率為82.6%,準確率為84.6%;DOS攻擊的檢測率為99%,召回率為97%,準確率為97.8%;重放攻擊的檢測率為87.5%,召回率為91.3%,準確率為89.8%.

圖8 DOS攻擊檢測圖Fig.8 Detection of DOS attack
實驗中,一共用LSTM-OCSVM異常檢測模型測試了40段無人機飛行數據,取40次實驗的均值作為異常檢測的結果.表2列出了該模型的異常檢測結果.從表2中可以看出,LSTM-OCSVM模型的檢測率均可達86.2%以上,召回率可達83.0%以上,準確率可達84.6%以上.另外,對于DOS攻擊的檢測效果最佳,這是因為航跡出現了消失,停留在發動攻擊前的時刻,并于攻擊結束后發生位置跳變,因此也最容易被檢測;對于隨機偏差攻擊的檢測效果相對較差,這是因為本身數據采集就含有噪聲,如若為了攻擊的隱蔽性加入的攻擊變量不大,此時確實較難檢測.計算可得,針對上述4種攻擊,平均檢測率為91.1%,平均召回率為90.7%,平均準確率為90.675%.

圖9 重放攻擊檢測圖Fig.9 Detection of replay attack

表2 異常檢測結果Table 2 Results of anomaly detection
本文考慮了無人機傳感器數據的時間相關性,提取了經度、緯度、高度作為特征數據,利用LSTM神經網絡對位置數據進行了預測,并將預測前后的差值序列輸入OCSVM分類器訓練,可以得到包含正常樣本的超平面,根據測試樣本差值計算到超平面的距離函數值進行檢測.我們利用真實采集的無人機傳感器數據并構造了含有攻擊的測試數據,實驗結果表明,LSTM可用于檢測針對無人機傳感器數據的DOS攻擊、重放攻擊、高度偏差攻擊、隨機偏移攻擊,且適用性較好.
然而,由于無人機具有動態變化性,隨著飛行控制指令的改變,傳感器數據可能會有較大波動,造成錯誤檢測,同時對于攻擊造成的微小狀態變化不易檢測.該模型針對隨機位置偏移攻擊和重放攻擊檢測率并不夠高,下一步工作是繼續改進檢測模型提升對上述兩種攻擊的檢測精度,并考慮研究攻擊的實時檢測.