近年來,無人機被廣泛用于航拍娛樂、農林植保、電力巡檢、警用執法及禁毒偵查等活動。從2014年至2017年,全球旋翼無人機市場規模每年增長20%左右。市場規模的增加促進了產業鏈的逐漸成熟,以大疆創新為代表的民用無人機品牌已家喻戶曉。在各大電商平臺及商場內,可以看到各式各樣的無人機產品,價格從幾十元至上萬元不等。人們最少花費兩千元左右,即可購買一臺到手即飛、具備航拍等功能的無人機。然而,有利也有弊,當無人機入門門檻不斷降低時,無人機“黑飛”事件卻呈高發態勢。無人機未經許可進入機場空域、公共場地及敏感區域時,會存在危害公共安全及國家安全的風險。另外,無人機的武器化也有可能是未來社會的一個潛在威脅。例如,電影《戰狼2》和《紅海行動》出現的配備機槍的無人機、自爆無人機等武器裝備在目前技術水平下具備可行性,若落入不法分子手中,后果不堪設想。因此,當出現無人機入侵事件時,應急處置手段尤為重要。
2017年12月,工信部印發了《關于促進和規范民用無人機制造業發展的指導意見》,其中提到“加快民用無人機反制、監測預警技術研究和裝備研制”。那么,當無人機入侵時,如何通過技術手段反制呢? 這里需要擺出一個前提,即現今人工智能水平還不足以支撐一臺機器人在復雜環境隨機應變地獨立執行某項復雜任務。無人機是一種無人自主系統,也是一種機器人,它通常有一套飛行控制系統用來自主調節自身姿態以保持穩定懸停/飛行,但是由于電池能量密度的原因,無人機的載重和續航非常有限,通常情況下無人機無法攜帶足夠多的傳感器或足夠強大的計算機,所以在任務執行中,人工操作是不可避免的。例如,電影《紅海行動》中的自爆無人機需要戰士手持遙桿遠程操縱飛行位姿,艦載固定翼無人機也需要回傳飛機狀態和接收任務指令。因此當無人機入侵時,攻擊它的通訊鏈路,欺騙操作者或斬斷它與操作者的聯系,是目前最可行的反制思路。攻擊無人機通訊鏈路的方式大致有兩類:漏洞利用和電磁干擾。
無人機的通訊鏈路有兩種用途,一是控制無人機位姿(無線遙控),如DJI航拍無人機采用遙桿遠程控制移動方向,另一是回傳數據并接收任務指令(數據傳輸),如Pixhawk系列飛控回傳姿態角、GPS位置、氣壓計高度值等數據,并從地面站軟件接收飛行模式、航路點等指令。
(一)根據硬件漏洞爭奪無線遙控
無線遙控編碼方式有脈沖位置調制(PPM)和脈沖編碼調制(PCM)等。無論是PPM還是PCM編碼,都沒有驗證及加密機制,所以偽造它們并不難。在電影《霹靂五號》中,機器人喬尼五號即是偽造無線遙控編碼進而爭奪了一架航模飛機的控制權。這種攻擊方式的重點在于斷開原有無線遙控連接,并及時補上新連接。對于FM遙控來說,使用大功率發射裝置壓制原有遙控信號即可實現“偷梁換柱”的效果;對于目前高端無人機普遍采用的2.4GHz跳頻遙控來說,則需要針對具體型號的無人機遙控設備,分析它的跳頻序列、編碼方式/控制命令格式、控制邏輯等,找出設計漏洞,進而有針對性地進行攻擊。以下視頻展示了一種名為ICARUS的小型設備攻擊DSMx協議的無線遙控鏈路從而控制無人機,有興趣的讀者還可以進一步閱讀文章“315晚會報道的無人機是怎么被劫持的?”
(二)利用軟件漏洞癱瘓數據傳輸
開源飛控的數據傳輸協議主要有MAVLink和MultiWii兩種,它們都沒有完善的驗證及加密機制,而且被大多數中、小無人機公司采用(如3D Robotics),因此只要采用一定手段建立與無人機的無線連接,就可以攻擊它的飛控系統。
Vasconcelos [1] 使用Netwox、Hping3和LOIC工具對AR.Drone 2.0進行了拒絕服務(DoS)攻擊試驗,結果顯示Hping3可以顯著增大網絡延遲。實際上,有一部分采用WiFi進行數據傳輸的無人機在設計時沒有考慮網絡安全問題,出廠前也沒有經過壓力測試,因此如果無人機在極短時間內收到大量網絡請求,將會消耗較高的CPU資源,不僅癱瘓數據傳輸,使操作者無法及時反饋,還會影響飛控調節位姿,導致飛機墜落。
還有一種攻擊方式是利用緩沖區溢出漏洞。Paganini在文章“The case of flying saucer – Highway to the Danger Drone” [2]中提到,向某無人機發送一個超長數據包,會導致緩沖區溢出,從而使飛控停機,飛機墜落。
此外,還可以使用無人機通訊協議的固有命令直接控制無人機降落。例如,MultiWii飛控的MSP通訊協議含有MSP_SET_MOTOR命令,可以發送命令強制拉低電機值,從而使電機停轉。
(三)根據協議漏洞監控飛行位姿
這種方式主要用于被動監聽,即采用無線設備接收無人機回傳至地面站的飛行狀態數據。這些數據包括且不限于GPS位置、姿態角、氣壓計高度、電池電量、磁力計讀數等信息,可以說,截取這些數據就可以實時監控無人機的三維飛行軌跡。然而,這種方式存在一個技術難點:如何區分不同無人機發送的數據?上文提到無人機通訊協議鮮有考慮驗證和加密,那么無人機也很少會有唯一ID,這就造成了區分困難。Son [3] 提出一種陀螺儀指紋標識方法?,F今的無人機基本上采用微機電(MEMS)陀螺儀芯片,由于制造誤差,MEMS陀螺儀的輸出有固定的偏移,且不同的MEMS芯片的偏移量不同,所以這些偏移量就形成了陀螺儀的指紋,根據指紋也就可以區分無人機數據了。
(四)使用電磁干擾屏蔽遠程控制
相比上述各種漏洞利用方法,更為簡單粗暴的方式是對無人機進行電磁干擾,屏蔽操作者對它的遠程控制。下圖是一種無人機電磁干擾槍,長長的槍管被繞了多層線圈形成定向天線,當槍口朝向無人機發射時,發射出來的是人眼看不到的強功率電磁脈沖,可以干擾無人機的通訊鏈路,使它失去控制。
然而,這種方式同時需要使用者具備豐富的經驗,一是因為無線遙控和數據傳輸常用頻率有很多,如40MHz、72MHz、433MHz、915MHz、2.4GHz、5.8GHz等,不同無人機的通訊頻段有可能有差異;二是有些無人機的飛控系統可以設置自動懸停功能,比如Pixhawk飛控定點模式飛行時,即使遙控器不小心關閉了,無人機也會在失去遙控信號的位置自動懸停,在這種情況下,電磁干擾槍的使用者可能就需要架設另一把干擾槍,調到GPS信號頻段了。