孫 聰 曾薈銘 宋煥東 王運柏 張宗旭 馬建峰
(西安電子科技大學(xué)網(wǎng)絡(luò)與信息安全學(xué)院 西安 710071)
無人機(unmanned aerial vehicle,UAV)的飛行依賴于傳感器對環(huán)境的測量感知,以確定無人機所處的狀態(tài).準(zhǔn)確地對系統(tǒng)狀態(tài)做出估計是無人機系統(tǒng)可靠安全(safety)決策的前提[1],然而,無人機飛行控制系統(tǒng)的狀態(tài)估計面臨嚴(yán)重的傳感器注入攻擊威脅[2],攻擊者通過干擾被感知的物理環(huán)境或者從物理上損害傳感器等手段,誤導(dǎo)無人機傳感器接受惡意輸入,估計出錯誤系統(tǒng)狀態(tài),從而使無人機控制器產(chǎn)生錯誤輸出并導(dǎo)致飛行異常.與物理層拒絕功能的阻塞干擾(jamming)攻擊[3]不同,傳感器注入的目的是通過錯誤的信號或數(shù)據(jù)改變無人機傳感器對環(huán)境的感知,以在控制系統(tǒng)層面改變無人機行為,故亦稱為傳感器欺騙.傳感器注入攻擊在諸多領(lǐng)域有著廣泛應(yīng)用,如針對植入式醫(yī)療設(shè)備的音頻攻擊[4]、對汽車防抱制動系統(tǒng)(antilock braking systems,ABS)的磁場注入[5]和對自動駕駛車輛的激光雷達(dá)數(shù)據(jù)欺騙[6]均說明此類攻擊的有效性.
在傳感器注入攻擊檢測和緩解方面,針對單一傳感器數(shù)據(jù)特性(如GPS 信號)的研究相對較多[7],而對不局限于特定數(shù)據(jù)/信號特性的通用傳感器注入攻擊緩解技術(shù)的研究則相對較少,一些現(xiàn)有方法還依賴于輔助傳感器的正常工作[8]或要求增加特定硬件[9].特別地,如何基于無人系統(tǒng)的有限計算資源對傳感器注入攻擊進(jìn)行準(zhǔn)確地在線檢測和緩解,仍是亟待解決的問題.在這方面,基于系統(tǒng)識別的攻擊檢測框架[10]和基于非線性物理不變量擬合的檢測方案[11]通過在線檢查所感知的物理狀態(tài)是否與控制模型確定的預(yù)期狀態(tài)一致來檢測外部傳感器攻擊,檢測效果因控制模型精度不同而存在差異.后續(xù)的恢復(fù)方法[12-13]對受攻擊無人機的系統(tǒng)狀態(tài)進(jìn)行恢復(fù),但由于無人機系統(tǒng)本身屬于非線性系統(tǒng),因此基于系統(tǒng)識別得到的線性模型恢復(fù)出的系統(tǒng)狀態(tài)[12]的準(zhǔn)確性有限,僅能提供無人機進(jìn)入失效保護(failsafe)模式之前的短暫恢復(fù),而基于機器學(xué)習(xí)的抗攻擊前饋控制器[13]監(jiān)控?zé)o人機的主控制器,在攻擊下代替無人機主控制器恢復(fù)無人機,相比模型預(yù)測結(jié)果參與傳感器融合的恢復(fù)機制[12]而言,這種前饋恢復(fù)機制缺乏穩(wěn)定性和持續(xù)性.
本文的基本思想是利用機器學(xué)習(xí)模型對非線性系統(tǒng)的準(zhǔn)確刻畫能力,結(jié)合容忍預(yù)測誤差短時振蕩的攻擊檢測及恢復(fù)算法,在無人機飛行控制系統(tǒng)軟件層面實現(xiàn)準(zhǔn)確的傳感器注入攻擊檢測和系統(tǒng)狀態(tài)恢復(fù).同時通過對輕量級機器學(xué)習(xí)模型的設(shè)計和選擇,克服無人機計算資源對非線性系統(tǒng)模型的運行時開銷的限制.具體地,本文提出的基于機器學(xué)習(xí)的無人機傳感器攻擊在線檢測和恢復(fù)方法LDR 建立了不同傳感器相對應(yīng)的輕量級機器學(xué)習(xí)預(yù)測模型,該模型可預(yù)測出對應(yīng)傳感器下一時刻的狀態(tài).飛控內(nèi)嵌的LDR 系統(tǒng)通過比對模型預(yù)測值和傳感器測量值,準(zhǔn)確檢測并及時隔離受攻擊的具體傳感器,防止攻擊者繼續(xù)誤導(dǎo)或破壞傳感器,并使用機器學(xué)習(xí)模型的預(yù)測值替代傳感器測量值參與無人機后續(xù)控制過程,使得無人機在受攻擊后的一段時間內(nèi)能夠正常飛行.本文的主要貢獻(xiàn)包括3 個方面:
1)提出的LDR 利用輕量級機器學(xué)習(xí)預(yù)測模型對陀螺儀、加速度計、GPS、磁力計等多種傳感器的注入攻擊進(jìn)行有效檢測和傳感器度量恢復(fù).
2)提出的LDR 攻擊檢測及恢復(fù)算法利用誤差超限計數(shù)閾值和恢復(fù)有效計數(shù)閾值容忍傳感器模型預(yù)測誤差振蕩導(dǎo)致的誤報,相比現(xiàn)有檢測和恢復(fù)方法提升了傳感器度量的恢復(fù)效果.
3)在開源飛控系統(tǒng)ArduPilot 4.1.0 上的實驗說明了LDR 在線檢測和恢復(fù)的開銷滿足飛控系統(tǒng)運行時的要求,LDR 系統(tǒng)在正常飛行下的誤報滿足飛行可靠性要求,LDR 預(yù)測模型有效,LDR 系統(tǒng)針對GPS 傳感器攻擊和陀螺儀讀數(shù)攻擊的在線檢測和恢復(fù)效果相比現(xiàn)有工作[12-13]更好.
Nassi 等人[14]將無人機系統(tǒng)所面臨的攻擊歸納為直接物理訪問攻擊(包括針對無人機固件的供應(yīng)鏈攻擊)、臨近物理側(cè)攻擊(包括針對相機數(shù)據(jù)、陀螺儀/加速度計/羅盤等傳感器數(shù)據(jù)、GPS 信號的欺騙和抑制攻擊)、無線信道攻擊(包括網(wǎng)絡(luò)邊信道攻擊、傳統(tǒng)WiFi 攻擊).本文主要針對臨近物理側(cè)的傳感器注入攻擊進(jìn)行檢測和恢復(fù),此類攻擊利用的相關(guān)目標(biāo)傳感器包括GPS 接收器、相機、加速度計、陀螺儀、磁力計等.
從控制模型理論分析和仿真的角度研究無人機系統(tǒng)錯誤數(shù)據(jù)注入攻擊和檢測的工作通常難以從系統(tǒng)安全的視角考慮具體控制系統(tǒng)軟件和攻擊在具體系統(tǒng)上的可實現(xiàn)性,如將無人機抽象為線性非時變控制系統(tǒng)模型[15-16],將隱蔽攻擊序列(包括直接控制獲取攻擊和機載導(dǎo)航攻擊[16])均抽象為從理論上直接注入系統(tǒng)模型.此外,還可以直接將傳感器抽象為非線性系統(tǒng)并構(gòu)建用于攻擊檢測的非線性模型結(jié)構(gòu)[17].
而從系統(tǒng)安全的視角,典型GPS 欺騙攻擊[18-19]能夠引入位置、導(dǎo)航和時間計算方面的錯誤,導(dǎo)致無人機偏離預(yù)定軌跡.通過分析無人機飛控軟件的GPS失效保護模式,能夠給出針對不同類型無人機實施有效GPS 欺騙的攻擊策略[20].無人機的微機電系統(tǒng)(micro-electromechanical systems,MEMS)陀螺儀可在聲音頻段共振,這種聲學(xué)干擾引起陀螺儀性能衰減,利用這種性能衰減在飛控軟件中的傳播可導(dǎo)致無人機墜毀[21],類似的攻擊還被應(yīng)用在MEMS 加速度計上[22].利用光線對光流傳感器的輸入進(jìn)行欺騙攻擊,能夠控制無人機在定點懸停模式下的側(cè)向速度[23].現(xiàn)有的攻擊方案還考慮了無人機具備擴展卡爾曼濾波(extended Kalman filter,EKF)或控制不變量[10]等基于先驗不變量的異常檢測機制,如當(dāng)前已實現(xiàn)的錯誤數(shù)據(jù)注入、人為延遲、飛行模式切換攻擊[2]能夠推斷檢測閾值并據(jù)此構(gòu)造隱蔽的傳感器攻擊.針對ArduPilot 飛控系統(tǒng)的數(shù)據(jù)融合實施的錯誤數(shù)據(jù)注入能夠繞過EKF 異常檢測機制操作磁力計讀數(shù),在無人機無法接收地面站或GPS 信號時導(dǎo)致無人機偏航[24].
已有針對傳感器攻擊提出的多種防御方案[2,18-19,21-22,24],然而這些方案或僅針對特定傳感器,或?qū)刂葡到y(tǒng)硬件和算力有很高要求.在慣性測量單元(inertial measurement unit,IMU)受攻擊產(chǎn)生故障時,現(xiàn)有容錯方案[8]使用其余傳感器估計的位置和航向信息來恢復(fù)受損的姿態(tài)狀態(tài),使無人機在沒有IMU讀數(shù)的情況下穩(wěn)定飛行一定時長.對Lucas-Kanade 光流傳感方法的傳感器輸入欺騙攻擊(包括圖像欺騙和激光欺騙等),隨機采樣一致性(random sample consensus,RANSAC)算法能夠合成緩解攻擊的傳感器輸出[23].DeepSIM[25]通過比較本機航拍照片和預(yù)存衛(wèi)星圖片進(jìn)行位置驗證,實現(xiàn)了一種高成本、高魯棒性的GPS 欺騙檢測.BlueBox[9]的跨層安全架構(gòu)利用外部獨立的軟硬件計算單元進(jìn)行異常檢測和恢復(fù),硬件冗余使得BlueBox 具有相對于傳統(tǒng)模型更強的恢復(fù)能力.基于單分類器的入侵檢測方法[26]利用多種單分類器(包括單類支持向量機、自動編碼器和局部離群因子算法)進(jìn)行異常檢測,檢測的精度較差,且未實現(xiàn)系統(tǒng)狀態(tài)恢復(fù).
對硬件算力的限制和對安全機制的通用性要求促使了面向多種傳感器攻擊的飛控內(nèi)嵌的通用運行時檢測和恢復(fù)機制的發(fā)展.使用系統(tǒng)識別方法能夠生成反映無人機物理特性、控制算法和外部物理定律的控制不變量模型[10],控制不變量模型在運行時利用其前序預(yù)測結(jié)果與無人機當(dāng)前目標(biāo)狀態(tài)預(yù)測出對傳感器的當(dāng)前期望值,若時間窗口內(nèi)無人機傳感器的測量值和期望值的差異大于閾值,則檢測出外部攻擊異常.后續(xù)提出的系統(tǒng)恢復(fù)方案[12]利用這種控制不變量模型的物理狀態(tài)預(yù)測值,為每個傳感器設(shè)計一個軟件傳感器,軟件傳感器預(yù)測傳感器測量值并替換潛在被攻擊的實際傳感器測量值,該方案對傳感器測量值的恢復(fù)持續(xù)時間較短且對個別傳感器類型的恢復(fù)效果有限.SAVIOR[11]使用非線性物理不變量擬合的無人機系統(tǒng)模型相比控制不變量線性模型更準(zhǔn)確,但該方法尚不支持攻擊恢復(fù).PIDPiper[13]基于長短期記憶(long short term memory,LSTM )實現(xiàn)了一種抗攻擊的前饋控制器,將LSTM模型控制器以C++代碼形式嵌入飛控,深度模型在線根據(jù)控制器輸出的偏移量大小決定是否接管PID 控制器,盡管無法判斷傳感器是否存在異常(即不存在一般意義的檢測機制),PID-Piper 仍能夠根據(jù)控制誤差啟動恢復(fù),該方案的實際恢復(fù)穩(wěn)定性和持續(xù)性不及文獻(xiàn)[12]的攻擊恢復(fù)方案.LDR 能夠?qū)τ嬎阗Y源受限的無人機及其開源飛控系統(tǒng)進(jìn)行有效的在線攻擊檢測和恢復(fù),達(dá)到優(yōu)于文獻(xiàn)[12-13]的檢測和恢復(fù)效果.方案特點對比如表1 所示.
Table 1 Comparison on the Characteristics of Primary Attack Mitigation Schemes表1 主要攻擊緩解方案特點對比
本節(jié)介紹LDR 的具體方案.方案保護的典型傳感器包括GPS、陀螺儀、加速度計和磁力計.
考慮到EKF 的傳感器噪聲矯正效果不利于攻擊檢測且傳感器融合過程不利于攻擊影響的隔離,LDR 選擇在傳感器測量值進(jìn)入EKF 傳感器融合過程之前插入LDR 傳感器預(yù)測模塊及相應(yīng)的恢復(fù)開關(guān)機制,插入預(yù)測模塊的無人機飛控系統(tǒng)整體運行架構(gòu)如圖1 所示.由于不同傳感器的測量值以一定的順序接入EKF 傳感器融合過程,因此圖1 中虛線內(nèi)部分實際上在傳感器融合過程中存在多個實例,每個實例對應(yīng)于1 個傳感器,其中的LDR 傳感器預(yù)測模塊對不同的傳感器使用不同的預(yù)測模型(具體見2.2 節(jié)).
Fig.1 Architecture of LDR embedded in UAV flight controller system圖1 無人機飛控系統(tǒng)中內(nèi)嵌的LDR 系統(tǒng)架構(gòu)
原始飛控系統(tǒng)的多個傳感器的測量值在融合后會與系統(tǒng)目標(biāo)狀態(tài)一起輸入控制器.引入LDR 傳感器預(yù)測模塊后,該模塊依據(jù)目標(biāo)狀態(tài)實時運行,并使用檢測算法(具體見2.3 節(jié))檢測各傳感器狀態(tài)是否受到攻擊,當(dāng)檢測到傳感器攻擊時,開啟恢復(fù)開關(guān),隔離被攻擊的傳感器;同時進(jìn)入恢復(fù)狀態(tài),用LDR 傳感器預(yù)測模塊對傳感器讀數(shù)的預(yù)測值替代被攻擊傳感器的測量值用于EKF 傳感器融合.未被攻擊的傳感器則繼續(xù)工作.如受攻擊傳感器的測量值與對應(yīng)的LDR 傳感器預(yù)測模塊輸出的累積誤差在特定時間窗口內(nèi)小于特定恢復(fù)閾值,則認(rèn)為攻擊已停止,關(guān)閉恢復(fù)開關(guān),無人機繼續(xù)使用正常的傳感器測量值進(jìn)行飛行控制.
LDR 傳感器預(yù)測模塊的內(nèi)部構(gòu)造如圖2 所示.其中,機器學(xué)習(xí)模型將前一時刻該機器學(xué)習(xí)模型的預(yù)測值和無人機系統(tǒng)的目標(biāo)狀態(tài)值作為輸入,迭代輸出當(dāng)前時刻的預(yù)測值.由于每個機器學(xué)習(xí)模型對應(yīng)于一個特定的無人機狀態(tài)變量(具體見2.2 節(jié)),而狀態(tài)變量可能不能與真實傳感器測量值直接比較(如表2 中加速度計傳感器預(yù)測模型預(yù)測的速度矢量不能與測量出的加速度直接比較),因此對于機器學(xué)習(xí)模型的預(yù)測輸出,先通過適當(dāng)轉(zhuǎn)換處理,生成當(dāng)前時刻LDR 傳感器預(yù)測模塊對傳感器的預(yù)測輸出;對于無需轉(zhuǎn)換處理的模型預(yù)測輸出,直接作為傳感器預(yù)測輸出使用.在攻擊檢測時(見2.3 節(jié)),將傳感器預(yù)測輸出與真實傳感器測量值進(jìn)行比對.當(dāng)1 個檢測窗口時間內(nèi),傳感器測量值與對應(yīng)的傳感器預(yù)測輸出的累積誤差多次超過相應(yīng)的誤差閾值(不同傳感器誤差閾值不同),則檢測到攻擊存在,觸發(fā)恢復(fù)開關(guān)開啟信號,由傳感器的預(yù)測輸出代替測量值參與后續(xù)傳感器的融合和控制流程.
由于本文的目標(biāo)是構(gòu)建可內(nèi)嵌于飛控的在線檢測和恢復(fù)機制,因此對機器學(xué)習(xí)模型有嚴(yán)格的效率要求.本文使用簡單神經(jīng)網(wǎng)絡(luò)模型(包括單層感知機和多層感知機)訓(xùn)練各個傳感器所需的預(yù)測模型,解決無人機傳感器輸出的時間序列預(yù)測問題.
本文針對四旋翼無人機的10 個狀態(tài)變量分別構(gòu)建機器學(xué)習(xí)預(yù)測模型,陀螺儀、加速度計、GPS、磁力計分別使用這些模型進(jìn)行預(yù)測.狀態(tài)變量與使用該變量的傳感器的對應(yīng)關(guān)系如表2 所示.在狀態(tài)變量集合{px,py,pz,ψ,ωx,ωy,ωz,vx,vy,vz}中,每一種狀態(tài)變量在任一時刻的目標(biāo)狀態(tài)值都能夠在無人機飛行時從PID 姿態(tài)控制器獲取.特別是飛控系統(tǒng)中無法直接獲得加速度的目標(biāo)狀態(tài)值,因而,LDR 加速度計預(yù)測模塊對無人機加速度的預(yù)測需要先使用機器學(xué)習(xí)模型預(yù)測速度,再將每一時刻的預(yù)測速度矢量在線轉(zhuǎn)換處理為預(yù)測加速度矢量,用于與加速度計的測量值進(jìn)行比較.而對于磁力計,飛控系統(tǒng)亦無法獲得磁力矢量的目標(biāo)狀態(tài)值,因而LDR 磁力計預(yù)測模塊使用機器學(xué)習(xí)模型預(yù)測偏航角(yaw),記作ψ.但與LDR 加速度計預(yù)測模塊的預(yù)測輸出轉(zhuǎn)換(從速度預(yù)測值轉(zhuǎn)換為加速度預(yù)測值)不同,LDR 磁力計預(yù)測模塊直接使用預(yù)測出的偏航角執(zhí)行攻擊檢測.磁場測量值向偏航角測量值的轉(zhuǎn)換基于公式[27]:
其中,mx、my、mz分別為機體坐標(biāo)系沿x、y、z軸的磁場測量值,?和θ分別為翻滾角(roll)和俯仰角(pitch)的測量值.對于磁力計受攻擊情況下的恢復(fù),由于無人機磁力計度量的作用是矯正姿態(tài)四元數(shù),LDR 直接將預(yù)測得到的偏航角引入EKF 傳感器融合過程以實現(xiàn)對姿態(tài)的矯正,而不再將預(yù)測偏航角轉(zhuǎn)化為磁力計讀數(shù)的預(yù)測值.
模型的訓(xùn)練過程使用無人機正常飛行過程中的目標(biāo)狀態(tài)值和測量值數(shù)據(jù)進(jìn)行.具體地,使用狀態(tài)變量當(dāng)前時刻的測量值和無人機目標(biāo)狀態(tài)值作為輸入特征,使用狀態(tài)變量下一時刻的測量值作為輸出特征,以使模型學(xué)習(xí)到正常飛行時狀態(tài)變量測量值的時序特征.對于不同機器學(xué)習(xí)預(yù)測模型,需要收集不同的狀態(tài)變量測量值和目標(biāo)狀態(tài)值的時間序列數(shù)據(jù),作為預(yù)測模型訓(xùn)練所使用的輸入特征和輸出特征.因此,我們在無人機正常(仿真)飛行過程中收集狀態(tài)變量測量值和目標(biāo)狀態(tài)值的時間序列數(shù)據(jù),然后應(yīng)用具體機器學(xué)習(xí)預(yù)測模型的訓(xùn)練過程(使用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)見3.1 節(jié)).特別地,為訓(xùn)練LDR 加速度計預(yù)測模塊所使用的速度預(yù)測模型,需要獲得速度測量值的時間序列,本文從控制器內(nèi)部直接獲取速度測量值序列用于預(yù)測模型的訓(xùn)練.為訓(xùn)練LDR 磁力計預(yù)測模塊所使用的偏航角預(yù)測模型,將磁力矢量的測量值序列轉(zhuǎn)化為偏航角測量值序列,用于預(yù)測模型訓(xùn)練.
本文的機器學(xué)習(xí)模型與飛控系統(tǒng)中的EKF 都是基于前一時刻估計量進(jìn)行下一時刻狀態(tài)估計,但飛控系統(tǒng)的EKF 實現(xiàn)需要IMU 傳感器的測量值方可執(zhí)行狀態(tài)估計,而本文機器學(xué)習(xí)模型在完成初始狀態(tài)設(shè)置后即可獨立運行,無需傳感器提供輸入.當(dāng)特定傳感器不可用時,本文機器學(xué)習(xí)模型可作為替換,維持EKF 的正常運行.
圖1 所示LDR 傳感器預(yù)測模塊及恢復(fù)開關(guān)的運行時功能可由算法1 描述.算法1 在傳感器的每個采樣周期上的輸出是由本文LDR 檢測和恢復(fù)機制處理后的傳感器讀數(shù)的參考值,該值在攻擊未檢出時即為傳感器的真實測量值,而在攻擊檢出時改為使用恢復(fù)機制提供的預(yù)測模型輸出值.算法接受當(dāng)前時刻的傳感器目標(biāo)狀態(tài)值、傳感器測量值以及上一時刻機器學(xué)習(xí)預(yù)測模型的預(yù)測值作為輸入,首先獲得機器學(xué)習(xí)預(yù)測模型當(dāng)前時刻的預(yù)測值,并轉(zhuǎn)換為LDR 傳感器預(yù)測模塊在當(dāng)前時刻對傳感器的預(yù)測輸出predi.WinTH表示檢測窗口閾值,即檢測窗口包含的時間片數(shù)量.如果當(dāng)前時刻是一個檢查點(新檢測窗口開始),重置當(dāng)前檢測窗口內(nèi)的時間片計數(shù)i、誤差計數(shù)errCnt、測量值與預(yù)測值的累積誤差errSum,并判斷恢復(fù)模式是否已啟動(recovS ig是否為true).若未啟動,則使用當(dāng)前傳感器測量值sensi重置預(yù)測輸出pred0,這樣在下一輪可以校準(zhǔn)預(yù)測模型的輸出.此后,計算預(yù)測輸出與傳感器測量值的均方誤差并計入累積誤差errSum中,進(jìn)而得出當(dāng)前檢測窗內(nèi)的平均累計誤差err.設(shè)計誤差閾值ErrTH和誤差超限計數(shù)閾值ErrCntTH,當(dāng)檢查到平均累計誤差err連續(xù)大于設(shè)定的誤差閾值ErrTH的次數(shù)超過ErrCntTH次時,認(rèn)為無人機受到了傳感器攻擊,開啟恢復(fù)模式并發(fā)出受到傳感器攻擊的警報.在恢復(fù)模式下(recovS ig為true),實際傳感器的測量值sensi被替換為傳感器的預(yù)測輸出predi.設(shè)計恢復(fù)閾值RecovTH和恢復(fù)有效計數(shù)閾值RecovCntTH,當(dāng)累積誤差連續(xù)小于設(shè)定的恢復(fù)閾值RecovTH的次數(shù)超過RecovCntTH次時,則認(rèn)為攻擊已結(jié)束,關(guān)閉恢復(fù)模式,無人機將繼續(xù)使用真實傳感器的值.
算法1.攻擊檢測及恢復(fù)算法
輸入:當(dāng)前時刻i的傳感器目標(biāo)狀態(tài)tgti,傳感器測量值sensi,上一時刻機器學(xué)習(xí)預(yù)測模型的預(yù)測值predi-1;
輸出:每一個傳感器采樣周期傳感器讀數(shù)的參考值sensi.
特別地,算法1 的啟動需要初始預(yù)測值pred-1參與;在現(xiàn)實中,使用無人機未受攻擊的狀態(tài)下的一個特定時刻傳感器測量值作為初始pred-1.算法1 的復(fù)雜度在單個時間片內(nèi)由行③④的預(yù)測過程和轉(zhuǎn)換過程決定,轉(zhuǎn)換過程相比預(yù)測過程更為簡單.除這2 個過程外,其余部分復(fù)雜度為O(1).因此,在實現(xiàn)中選擇高效的機器學(xué)習(xí)預(yù)測模型尤為重要(見第3.1 節(jié)).相比于文獻(xiàn)[12-13]的算法,算法①由于引入了誤差超限計數(shù)閾值ErrCntTH和恢復(fù)有效計數(shù)閾值RecovCntTH,使得算法①能夠更好地應(yīng)對急轉(zhuǎn)等預(yù)測振蕩情況,防止由于短時的預(yù)測誤差振蕩所導(dǎo)致的誤報,第3.2 節(jié)攻擊恢復(fù)效果實驗顯示本文LDR 攻擊檢測和恢復(fù)方法在恢復(fù)持續(xù)時間上有優(yōu)勢.
1)機器學(xué)習(xí)模型結(jié)構(gòu)及訓(xùn)練
本文使用無人機執(zhí)行20 次飛行任務(wù)的日志,在Keras 框架下訓(xùn)練本文的機器學(xué)習(xí)預(yù)測模型.飛行任務(wù)為無人機在多個隨機的位點進(jìn)行起飛、降落、轉(zhuǎn)彎等機動操作.數(shù)據(jù)采樣頻率為400 Hz 時,所有任務(wù)的數(shù)據(jù)量約為70 萬條,每一條數(shù)據(jù)包括所有傳感器所需收集的信息.訓(xùn)練數(shù)據(jù)以覆蓋無人機在各種飛行模式和典型環(huán)境下的姿態(tài)特征為核心要求.在訓(xùn)練集與測試集數(shù)據(jù)量比例為7∶3 下,對于表2 中每個無人機狀態(tài)變量所對應(yīng)的機器學(xué)習(xí)模型,單個模型從模型的訓(xùn)練到模型的測試完成1 次所需時間平均僅約30 s.由于模型訓(xùn)練所需資源較少,因而本文使用一個自動化程序來遍歷搜索不同的模型參數(shù)的組合,模型參數(shù)包括每層神經(jīng)元數(shù)量、神經(jīng)網(wǎng)絡(luò)層數(shù)、批次大小(batch size)等.在每一個參數(shù)組合下自動訓(xùn)練、測試機器學(xué)習(xí)模型,從而找到適合不同傳感器的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu).最終得到的每個無人機狀態(tài)變量對應(yīng)的機器學(xué)習(xí)預(yù)測模型結(jié)構(gòu)如表3 所示,所有模型均使用Adam 優(yōu)化器,損失函數(shù)選擇均方差(mean square error,MSE)損失,激活函數(shù)選擇ReLU.
2)加速度預(yù)測的去噪
為檢測加速度計攻擊和恢復(fù)加速度狀態(tài)而引入的預(yù)測輸出“速度→加速度”轉(zhuǎn)換(見表2),要求將每一時刻的預(yù)測速度矢量v(t)在線轉(zhuǎn)換處理為預(yù)測加速度矢量a(t),轉(zhuǎn)換方式是求解采樣時間間隔內(nèi)的平均加速度,即計算得到的加速度會包含大量高頻噪聲,從而使其在與真實傳感器測量值直接比較時會有大量的錯誤警報.本文使用一階低通數(shù)字濾波器[28]對預(yù)測輸出轉(zhuǎn)換得到的加速度進(jìn)行過濾,衰減高頻頻率使得最后得到的加速度變化更加平滑.具體地,濾波后加速度的輸出值Y定義為
其中,a為通過加速度公式直接計算的加速度,fc為低通濾波器的截止頻率,Ts為采樣周期.
3)系統(tǒng)參數(shù)選擇
算法1 所述攻擊檢測與恢復(fù)算法的有效運行依賴于合適的檢測窗口閾值WinTH、誤差閾值ErrTH、恢復(fù)閾值RecovTH、誤差超限計數(shù)閾值ErrCntTH和恢復(fù)有效計數(shù)閾值RecovCntTH.在飛控運行過程中,相對于傳感器測量值的實際變化,模型預(yù)測的變化趨勢可能存在超前或滯后.因此,本文采用動態(tài)時間規(guī)整算法[29],從正常飛行數(shù)據(jù)集中計算出最大時間位移,計算模型預(yù)測值序列和測量值數(shù)據(jù)序列的最佳對齊方式,并將該時間位移的長度作為檢測窗口閾值WinTH.確認(rèn)了檢測窗口閾值WinTH后,可從檢測窗口觀察到預(yù)測模型輸出與真實傳感器測量值之間的最大誤差,從而計算出誤差閾值ErrTH.誤差閾值ErrTH應(yīng)盡可能小,以規(guī)避漏報,同時要略大于所有正常飛行數(shù)據(jù)中觀測到的最大均方誤差MaxError,從而容忍突然的風(fēng)力增加等外部因素引起的一些意外誤差,減少誤報的可能性.由于攻擊者對無人機傳感器發(fā)起攻擊引起的外部誤差遠(yuǎn)大于外部因素引起的暫時性誤差,并且攻擊者無法生成與無人機飛行時目標(biāo)狀態(tài)緊密相關(guān)的惡意信號序列,本文進(jìn)一步設(shè)置恢復(fù)閾值RecovTH,且有MaxError<RecovTH≤ErrTH.當(dāng)傳感器真實值與預(yù)測輸出的差值在一個檢測窗口內(nèi)多次處于恢復(fù)閾值之下時,可認(rèn)為攻擊已停止.在獲得檢查窗口閾值WinTH和誤差閾值ErrTH后,通過實驗觀測在實際飛行時,1 個檢測窗口時間內(nèi)有可能的真實傳感器檢測值與預(yù)測模型輸出的差值超過誤差閾值ErrTH的次數(shù),將誤差超限計數(shù)閾值ErrCntTH設(shè)置為大于這個次數(shù)值.在獲得檢查窗口閾值WinTH和恢復(fù)閾值RecovTH后,通過實驗觀測從傳感器注入攻擊停止時起,1 個檢測窗口時間內(nèi)有可能的真實傳感器檢測值與預(yù)測模型輸出的差值超過恢復(fù)閾值的次數(shù),將恢復(fù)有效計數(shù)閾值RecovCntTH設(shè)置為大于這個次數(shù)值.
4)模型加載與插入位置
由于本文實驗所使用的ArduPilot 由C++編寫,因此本文使用的基于C++的開源機器學(xué)習(xí)實現(xiàn)框架frugally-deep[30]運行適用于飛控性能約束的機器學(xué)習(xí)預(yù)測模型.frugally-deep 能快速、高效運行深度神經(jīng)網(wǎng)絡(luò),可以加載Keras 訓(xùn)練好的預(yù)測模型,并提供了輕量級的推理和預(yù)測功能;可以在資源受限的環(huán)境中使用,保證模型在無人機上運行時預(yù)測效率不影響正常飛行,達(dá)到預(yù)期的在線檢測和恢復(fù)效果.
將每個傳感器上的攻擊檢測和恢復(fù)算法實現(xiàn)為具體函數(shù)模塊,將傳感器對應(yīng)的LDR 預(yù)測和恢復(fù)模塊插入該傳感器測量的對應(yīng)函數(shù)中.其中,將GPS 對應(yīng)的位置矢量預(yù)測和恢復(fù)模塊插入函數(shù)NavEKF2_core::readGpsData()中;將磁力計對應(yīng)的偏航角預(yù)測和恢復(fù)模塊插入函數(shù)NavEKF2_core::SelectMagFusion()中;將陀螺儀對應(yīng)的角速度矢量預(yù)測和恢復(fù)模塊、加速度計對應(yīng)的加速度矢量預(yù)測和恢復(fù)模塊均插入函數(shù)NavEKF2_core::readIMUData()中.
本節(jié)首先介紹評估LDR 系統(tǒng)的實驗設(shè)置,然后評估LDR 系統(tǒng)的運行效率、正常飛行下可靠性、預(yù)測模型的有效性對2 種公開攻擊(GPS 傳感器攻擊和陀螺儀讀數(shù)攻擊)的恢復(fù)效果及優(yōu)勢.
1)實驗設(shè)置與攻擊設(shè)置
本文使用2 個四旋翼無人機系統(tǒng)評估實現(xiàn)的LDR 系統(tǒng).其中,ArduPilot Mega SITL 為軟件在環(huán)仿真環(huán)境,真實無人機則使用雷迅V5+作為飛控硬件.表4 列出了本文所使用的無人機的控制軟件版本及各類傳感器數(shù)量.仿真環(huán)境的主機配置為Intel CoreTMi5-11 400@2.60 GHz CPU,6 GB RAM.真實飛控硬件配置包括ARM Cortex-M7 處理器(時鐘頻率216 MHz),512 KB RAM,以及2 MB 用以存儲飛控二進(jìn)制文件的閃存.表5 列出了真實無人機傳感器的具體配置,無人機與地面站通信頻率為840~845 MHz,數(shù)據(jù)傳輸速率為345 Kbps.
Table 4 UAV Types and Number of Sensors for Evaluations表4 評估用無人機類型及傳感器數(shù)量
Table 5 Sensor Configuration of Real UAV表5 真實無人機的傳感器配置
由于真實傳感器攻擊需要特殊攻擊設(shè)備,難以在實驗環(huán)境下直接實施,因而本文沿用當(dāng)前主流的攻擊模擬方式[12-13],使用軟件實現(xiàn)的攻擊模塊模擬了傳感器受到攻擊的效果,并將攻擊模塊直接插入飛控代碼中.具體地,在各類型傳感器代碼中添加一段惡意攻擊代碼,該段攻擊代碼在無人機運行時可以修改傳感器的測量值,以模仿傳感器實際受到攻擊時的傳感器讀數(shù)效果.為使得傳感器攻擊能受控生效,使用MAVLink 命令從地面站遠(yuǎn)程開啟和關(guān)閉攻擊.本文所設(shè)置的攻擊來自文獻(xiàn)[12-13],攻擊包括:GPS 傳感器攻擊,可以讓無人機偏離原定航線;陀螺儀讀數(shù)攻擊,會使得無人機墜毀.
2)LDR 檢測與恢復(fù)開銷
本節(jié)比較添加LDR 系統(tǒng)之前和之后的飛控主循環(huán)的每一次迭代運行時間,以評估時間開銷,所有時間開銷在仿真環(huán)境下測得.具體地,首先測量原始飛控軟件運行1 次主循環(huán)的時間開銷;然后以此為基準(zhǔn),依次插入每個傳感器對應(yīng)的LDR 檢測和恢復(fù)模塊,包括運行代碼所依賴的庫;隨后分別測量主循環(huán)運行1 次的時間開銷;最后,將所有的傳感器對應(yīng)的LDR 檢測和恢復(fù)模塊同時插入測量總時間開銷.
圖3 為同一飛行任務(wù)上,飛控系統(tǒng)在未插入任何傳感器的LDR 檢測和恢復(fù)機制時(圖3(a))、插入單一類型傳感器的LDR 檢測和恢復(fù)模塊時(圖3(b)~(e)),以及插入全部傳感器的LDR 檢測和恢復(fù)模塊時(圖3(f )),其主控制循環(huán)的時間開銷比較.縱軸為每次主循環(huán)運行的時間開銷.在ArduCopter 中,原始飛控軟件的系統(tǒng)循環(huán)執(zhí)行頻率為400 Hz,調(diào)度程序在每個執(zhí)行周期(2.5 ms)內(nèi)執(zhí)行1 次控制功能,并使用執(zhí)行周期內(nèi)的剩余時間調(diào)度輔助任務(wù).由于飛控軟件對不同傳感器的采樣頻率不同(如對磁力計的采樣頻率常為100 Hz),不同的LDR 檢測和恢復(fù)模塊也需分別運行在相應(yīng)頻率上,而陀螺儀和加速度計的運行頻率高(400 Hz),因而導(dǎo)致對應(yīng)的LDR 模塊的時間開銷最高.經(jīng)實驗測量,原始飛控軟件運行1 次主循環(huán)的平均時間開銷為0.026 ms,向所有傳感器插入LDR 系統(tǒng)后的飛控軟件運行1 次主循環(huán)的平均時間開銷為0.180 ms.雖然主循環(huán)平均時間開銷有明顯增長,但由于主循環(huán)平均時間開銷相比執(zhí)行周期(2.5 ms)仍僅占較小比例,且峰值時間開銷也在2.5 ms 以內(nèi),因而添加LDR 系統(tǒng)后,所有控制功能及輔助任務(wù)均能在執(zhí)行周期內(nèi)完成,因此添加LDR 系統(tǒng)導(dǎo)致的時間開銷增長可接受,不影響無人機正常飛行操作.
Fig.3 Runtime cost of the main control loop before and after LDR module is inserted into the flight controller system圖3 飛控系統(tǒng)在插入LDR 模塊前后的主控制循環(huán)的運行時間開銷比較
本文還比較了添加LDR 系統(tǒng)前后ArduCopter 進(jìn)程運行時的內(nèi)存消耗峰值,以評估空間開銷.在仿真環(huán)境下,通過記錄20 次飛行任務(wù)過程中測量的內(nèi)存消耗峰值,發(fā)現(xiàn)添加LDR 系統(tǒng)后,內(nèi)存消耗僅增長7.25%,可見LDR 的檢測和恢復(fù)機制對飛控運行時的內(nèi)存消耗影響非常小.
由于本文方案和PID-Piper 均使用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測,且模型運算是方案的主要開銷,因此我們從浮點運算數(shù)(floating-point operand,F(xiàn)LOP)指標(biāo)出發(fā),比較這2 種方案的機器學(xué)習(xí)模型計算開銷.FLOP 的大小取決于模型結(jié)構(gòu)內(nèi)部的連接數(shù)量.每條連接均需執(zhí)行一次加法運算和一次乘法運算,因此,模型的浮點運算數(shù)是連接數(shù)量的倍增.PID-Piper 僅為計算3 個姿態(tài)角,即翻滾角、俯仰角和偏航角,就部署了3個結(jié)構(gòu)相同的神經(jīng)網(wǎng)絡(luò)模型.這些模型的層數(shù)和神經(jīng)元數(shù)量均多于本文使用的模型,其總浮點運算數(shù)達(dá)到約50 000.相比之下,本文模型不僅層數(shù)更少,涵蓋的狀態(tài)數(shù)量更多,且所有模型的浮點運算數(shù)總和僅有120,遠(yuǎn)低于PID-Piper 的計算開銷.由于計算時延與網(wǎng)絡(luò)層數(shù)和浮點運算數(shù)正相關(guān),因此,本文模型相比PID-Piper 的機器學(xué)習(xí)模型是更輕量級的,具有更低的計算開銷和時延.
3)正常飛行下的可靠性和預(yù)測有效性
本文測試了在沒有攻擊的情況下實際飛行時LDR 的運行情況,以說明LDR 檢測和恢復(fù)機制在沒有攻擊下的可靠性.本文隨機選擇了10 個飛行任務(wù),與機器學(xué)習(xí)模型訓(xùn)練用任務(wù)不同,用于檢驗可靠性的任務(wù)動作包括起飛、降落、轉(zhuǎn)彎等,飛行模式設(shè)置為auto 模式,每個任務(wù)時間為3 min,所有任務(wù)的總時間為30 min.測試結(jié)果發(fā)現(xiàn),這10 個任務(wù)中有2 個任務(wù)激活了LDR 檢測和恢復(fù)系統(tǒng),這2 個任務(wù)均激活了陀螺儀傳感器LDR 檢測和恢復(fù)機制,即出現(xiàn)了檢測誤報.LDR 檢測和恢復(fù)功能激活后,使得任務(wù)失敗的次數(shù)為0,在2 次出現(xiàn)誤報的任務(wù)中,無人機飛行平穩(wěn)后LDR 系統(tǒng)的警報都能自動關(guān)閉.
進(jìn)一步地,在仿真環(huán)境下驗證無人機在一個隨機的測試飛行任務(wù)過程中,無人機LDR 預(yù)測的傳感器讀數(shù)與真實傳感器的測量值的吻合程度,以說明LDR 的機器學(xué)習(xí)模型預(yù)測的有效性.如圖4 所示,模型的預(yù)測結(jié)果與真實傳感器的測量結(jié)果基本吻合,磁力計對應(yīng)的偏航角的預(yù)測值與真實測量值的抖動是計數(shù)方式上產(chǎn)生的0°與359°之間的微小偏航角變化,在物理上不存在無人機偏航角的大幅度變化.
Fig.4 Effectiveness of model prediction of machine learning in LDR system圖4 LDR 系統(tǒng)的機器學(xué)習(xí)模型預(yù)測的有效性
4)LDR 對公開攻擊的檢測和恢復(fù)效果
為了測試LDR 在檢測公開攻擊和從公開攻擊中恢復(fù)飛控狀態(tài)的有效性,本文首先在仿真環(huán)境下針對陀螺儀和GPS 分別發(fā)起攻擊,測量了在攻擊發(fā)起后LDR 對攻擊的檢測用時(time to detection,TTD)和恢復(fù)效果;然后在真實無人機上測試LDR 系統(tǒng)對GPS 攻擊的恢復(fù)效果.檢測用時的計算方法為:
其中,tdetect為LDR 系統(tǒng)首次報告檢測出攻擊的時刻,tattack為攻擊實際發(fā)起的時刻.
本文GPS 攻擊實驗通過對GPS 測量的位置信息注入偏差來達(dá)到攻擊的目的,攻擊在無人機飛行途中發(fā)起,通過攻擊代碼緩慢地對GPS 注入攻擊偏移,無人機的降落點將會偏離計劃航點約55 m.針對這一攻擊,LDR 系統(tǒng)的平均檢測用時為0.88 ms.圖5(a)三維圖給出了無人機在未受攻擊情況下的行進(jìn)路線、無人機從特定點開始受到持續(xù)GPS 攻擊的行進(jìn)路線,以及LDR 系統(tǒng)生效的無人機在受GPS 攻擊后的行進(jìn)路線.相應(yīng)地,圖5(b)為無人機GPS 傳感器在未受攻擊、受攻擊、受攻擊且LDR 系統(tǒng)生效這3 種情況下,位置信息測量值的y軸變化差異;圖5(c)為受攻擊、受攻擊且LDR 系統(tǒng)生效2 種情況下,GPS 傳感器測量值(或LDR 對GPS 的預(yù)測值)相比未受攻擊時的GPS 測量值的偏移量比較.
Fig.5 Recovery effect of LDR system under GPS sensor attack圖5 LDR 系統(tǒng)在GPS 傳感器攻擊下的恢復(fù)效果
本文陀螺儀讀數(shù)攻擊實驗在無人機飛行途中對無人機的陀螺儀讀數(shù)進(jìn)行注入.圖6(a)三維圖給出了無人機在未受攻擊情況下的行進(jìn)路線、無人機從特定點開始受到陀螺儀讀數(shù)攻擊的行進(jìn)路線,以及LDR 系統(tǒng)生效的無人機在受到陀螺儀讀數(shù)攻擊后的行進(jìn)路線.針對這一攻擊,LDR 系統(tǒng)的平均檢測用時為1.24 ms.可見在LDR 系統(tǒng)未生效的情況下,無人機受到攻擊后很快墜毀;而在LDR 系統(tǒng)的恢復(fù)下,無人機還可正常運行約5.1 s,此時長即為有效恢復(fù)持續(xù)時間.盡管LDR 系統(tǒng)成功阻止了傳感器攻擊,防止了無人機立即墜毀,但由于預(yù)測誤差的原因,LDR 系統(tǒng)無法永久或長期替換物理傳感器,因此需要在有效恢復(fù)持續(xù)時間內(nèi)使用其他控制信道接管無人機.圖6(b)為無人機姿態(tài)翻滾角變化曲線,可見攻擊注入會使無人機翻滾角發(fā)生高頻變化,從而導(dǎo)致無人機墜毀,而LDR 系統(tǒng)生效的無人機的翻滾角變化相比無攻擊情況下的無人機翻滾角相差不大.圖6(c)為受攻擊、受攻擊且LDR 系統(tǒng)生效2 種情況下無人機翻滾角相比未受攻擊時的翻滾角的偏移量曲線比較,可見引入LDR 系統(tǒng)使得翻滾角偏移量顯著減小.
Fig.6 Recovery effect of LDR system under gyroscope reading attack圖6 LDR 系統(tǒng)在陀螺儀讀數(shù)攻擊下的恢復(fù)效果
本文在真實無人機上測試LDR 的恢復(fù)效果.雖然LDR 恢復(fù)機制能在陀螺儀讀數(shù)攻擊下延緩無人機失控,但使用地面站對攻擊生效后的無人機進(jìn)行控制接管仍存在一定概率失敗,因此在真實無人機上本文僅進(jìn)行GPS 傳感器攻擊的注入.本文設(shè)計一個距離為13.51 m 的直線折返飛行任務(wù),即無攻擊情況下無人機起飛后沿該路線折返2 次后回到起飛位置.我們在無人機第1 次開始折返時,給無人機注入(0.05~0.15 )m/20 ms 的GPS 傳感器攻擊,測得無人機完成飛行任務(wù)時距離起飛點的距離為4.37 m.在同樣的攻擊下,在起飛后第1 次開始折返時開啟LDR 系統(tǒng),無人機完成飛行任務(wù)時距離起飛點的距離為0.89 m.實驗說明LDR 檢測系統(tǒng)在實際無人機飛行任務(wù)上有效.
5)LDR 與其他傳感器攻擊恢復(fù)方案的比較
以下對比LDR 與其他無人機傳感器攻擊在線恢復(fù)方案,包括軟件傳感器SW-Sensor[12]、PID-Piper[13]的恢復(fù)效果差異.由于文獻(xiàn)[10-11]僅支持檢測而不支持對傳感器測量值和無人機狀態(tài)的恢復(fù),因此本文不與文獻(xiàn)[10-11]比較.由于文獻(xiàn)[12]未開源實現(xiàn),本文盡最大努力使用Matlab 的系統(tǒng)識別工具對該方案進(jìn)行了復(fù)現(xiàn),并使用訓(xùn)練數(shù)據(jù)推導(dǎo)出模型,使用測試數(shù)據(jù)驗證其模型的準(zhǔn)確性.PID-Piper 提供了在ArduCopter 3.7.0 上的開源實現(xiàn),本文使用該公開版本進(jìn)行對比試驗,進(jìn)行相同的攻擊實現(xiàn)、攻擊測試并記錄下相同的傳感器數(shù)值變化.
實驗結(jié)果顯示,SW-Sensor[12]、PID-Piper[13]和LDR 都能夠?qū)PS 傳感器攻擊和陀螺儀讀數(shù)攻擊做出響應(yīng).在對受攻擊的無人機進(jìn)行恢復(fù)方面,圖7 為GPS 攻擊下3 種恢復(fù)方案的效果對比.受GPS 攻擊且無恢復(fù)機制的無人機的GPS 傳感器測量值相比未受攻擊時的偏移量隨時間逐漸增加.對于LDR、SWSensor、PID-Piper,偏移量增大后逐漸減小.GPS 的預(yù)測值相比未受攻擊時的偏移量更大,說明受攻擊后的無人機偏離預(yù)定軌跡的幅度越大.可見,LDR 相比SW-Sensor 的恢復(fù)(偏移量趨向0)更迅速,無人機受到攻擊后偏離幅度更小.而PID-Piper 的實際恢復(fù)效果較差,無法阻止無人機的持續(xù)性偏離.
Fig.7 GPS sensor attack recovery effect comparison between LDR and related research work圖7 LDR 與相關(guān)研究工作的GPS 傳感器攻擊恢復(fù)效果比較
圖8 為陀螺儀讀數(shù)攻擊下,3 種恢復(fù)方案在無人機姿態(tài)翻滾角指標(biāo)上的恢復(fù)效果對比.圖8(a)(b)給出了LDR 預(yù)測得到的翻滾角與未受攻擊狀態(tài)下的翻滾角相比的偏差絕對值曲線.圖8(a)給出了SWSensor 預(yù)測得到的翻滾角與未受攻擊狀態(tài)下的翻滾角相比的偏差絕對值曲線.圖8(b)給出了PID-Piper預(yù)測得到的翻滾角與未受攻擊狀態(tài)下的翻滾角相比的偏差絕對值曲線.翻滾角的偏差絕對值越大,代表無人機受到攻擊后機體擺動幅度越大.由圖8 結(jié)合圖6(c)結(jié)果可見,SW-Sensor 和PID-Piper 在無人機受到陀螺儀讀數(shù)攻擊后翻滾角偏差和振蕩非常大,與沒有應(yīng)用任何恢復(fù)機制時的偏差相比(見圖6(c)),機體擺動幅度減小不明顯.而LDR 系統(tǒng)檢測到陀螺儀讀數(shù)攻擊后,翻滾角保持了一段時間的平穩(wěn),且相比SW-Sensor 和PID-Piper 的翻滾角偏差有顯著減小,表明在受到攻擊后LDR 仍能有效恢復(fù)陀螺儀讀數(shù),使無人機保持一段時間較為平穩(wěn)地飛行.
Fig.8 Gyroscope reading attack recovery effect comparison between LDR and related research work圖8 LDR 與相關(guān)研究工作的陀螺儀讀數(shù)攻擊恢復(fù)效果比較
本文主要考慮針對傳感器實施的攻擊,由于本文檢測和恢復(fù)機制皆依賴于模型預(yù)測結(jié)果,攻擊者可能會嘗試通過操縱模型決策或模型輸入輸出的方式來繞過本文方案.然而,決策和數(shù)據(jù)皆位于飛控軟件內(nèi)部.攻擊者要達(dá)成意圖,需要借助軟件層面(如控制流劫持)或網(wǎng)絡(luò)層面的攻擊手段.這些攻擊手段的攻擊面正交于本文所關(guān)注的傳感器攻擊,因而超出了本文的研究范疇.此外,本文可以借助已有的軟件安全機制應(yīng)對這些安全威脅.如將飛控系統(tǒng)部分實現(xiàn)為可信執(zhí)行環(huán)境中的可信應(yīng)用[31],以阻止攻擊者操縱飛控的數(shù)據(jù)流和控制流,從而確保模型決策和預(yù)測結(jié)果的可靠性.
此外,無人機在實際運行中可能會因部件磨損、使用環(huán)境改變等因素導(dǎo)致系統(tǒng)行為改變,致使模型不再準(zhǔn)確可靠.對此,可以定期在安全受控環(huán)境下對無人機進(jìn)行飛行測試,收集飛行日志進(jìn)行分析,并按需更新模型以適應(yīng)新的系統(tǒng)行為模式.由于本文模型訓(xùn)練時間短、訓(xùn)練開銷小,僅需通用PC 機即可完成,因此更新模型不會引入難以承擔(dān)的時間開銷和算力開銷.
飛控系統(tǒng)本身的基于EKF 的傳感器融合機制能夠提供一定程度的抗干擾能力,使無人機的傳感器測量值在無人機機體正常抖動、噪聲等擾動下正常飛行.這些噪聲和干擾也確實會一定程度上影響本文機器學(xué)習(xí)模型的訓(xùn)練和檢測,本文使用的緩解方法是通過實施真實無人機上的硬件手段(減震板等降噪措施)和軟件手段(如濾波)減輕其影響.
更低的攻擊頻率和更小的攻擊幅度可能會對本文的檢測和恢復(fù)產(chǎn)生影響,使得本文的檢測算法需要使用更緊的閾值,收緊閾值也可能導(dǎo)致潛在的漏報產(chǎn)生,我們雖然證明了本文提出的檢測及恢復(fù)算法在2 種典型公開攻擊下的有效性,但針對隱蔽攻擊的檢測和恢復(fù)效果仍有待進(jìn)一步驗證.
本文提出了一種基于機器學(xué)習(xí)的無人機傳感器攻擊在線檢測和恢復(fù)方案LDR.證明了針對2 類典型的傳感器注入攻擊,由機器學(xué)習(xí)模型的非線性系統(tǒng)表征能力、所提出的檢測和恢復(fù)算法對短時預(yù)測振蕩導(dǎo)致的誤報的緩解能力,以及輕量級機器學(xué)習(xí)模型的有限運行時開銷所帶來的檢測恢復(fù)效果,達(dá)到了相比現(xiàn)有在線傳感器攻擊檢測和恢復(fù)方案更好的檢測和恢復(fù)效果.未來的工作包括3 個方面:1)將本文方案應(yīng)用于其他的開源無人機飛控系統(tǒng),如PX4;2)將本文方案應(yīng)用于更多的傳感器注入攻擊形式,特別是一些攻擊注入量較小的隱蔽攻擊,并討論不同機器學(xué)習(xí)模型和檢測算法的檢測敏感程度差異;3)嘗試引入其他非線性控制模型用于無人機系統(tǒng)狀態(tài)恢復(fù).
作者貢獻(xiàn)聲明:孫聰提出了論文核心思想并撰寫論文;曾薈銘設(shè)計檢測算法、實現(xiàn)論文軟件并進(jìn)行主要實驗;宋煥東實施部分對比試驗;王運柏實現(xiàn)部分對比方案;張宗旭協(xié)助部分軟件功能實現(xiàn);馬建峰提出指導(dǎo)意見并修改論文.