獨角獸暑期訓練營 | 無人機廣播信號盲分析

該課題由獨角獸暑期訓練營第二屆學員嶽力完成

360獨角獸安全團隊每年暑假都會面向在校學生舉辦一暑期訓練營,申請者投遞簡歷並提交自己想做的課題介紹後,若入選,會在360技術專家的指導下完成課題。xise

本系列文章會發布今年5位學員在訓練營中的成果。文章相關代碼後續會在訓練營github代碼倉庫發佈 。

一  主要工作

使用SDR硬件抓取大疆無人機的開機播信號,在缺少協議信息的情況下做盲分析。推測了信號的時隙結構,調製方式類似OFDM,做了頻偏估計和補償,解調到“疑似”QPSK的頻域信號。距離意義的信息比特還有很長的路要走。http://caidaome.com

 

二  無人機簡

大疆“御“Mavic Pro無人機於2016年9月發佈,屬於非專業個人便攜航拍無人機。在大疆的產品線中,Mavic Pro屬於比較均衡的型號。專業的大型無人機有精靈Phantom、悟Inspire等,進一步追求便攜的還有Mavic Air和曉Spark,。

大疆Mavic機身上有一個開關,一側爲RC(Remote Controller)、另一側爲Wi-Fi,衍生出三種連接模式。

第一種是最簡單的模式,開關置於RC,僅使用遙控器控制無人機。

第二種將開關同樣置於RC,在智能手機中打開大疆APP,使用USB線連接遙控器,再使用遙控器控制無人機。此時,手機作爲實時圖傳屏幕使用,不具有控制功能,手機也沒有無線鏈路連接無人機。騰訊分分彩

第三種控制模式將開關置於Wi-Fi,不使用遙控器,僅使用手機連接飛機發出的Wi-Fi熱點,用手機來做所有的控制動作。

第一種控制模式的通信邏輯如下:首先,無人機開機,持續發出廣播信號A;遙控器開機並接收到信號A後,返回一持續的控制信號B;無人機接收到控制信號B之後,停止發送信號A,轉而發送圖傳信號C。經過初步調查和實驗,這幾個信號有以下特點:信號A的中心頻率爲2409.5MHz,帶寬爲9MHz,並且無人機每次開機發的內容固定。信號B是跳頻信號,從2403.5MHz開始,間隔2MHz,共32個頻點,每個頻點帶寬1MHz,所以總佔用帶寬爲63MHz,頻沒有觀察到簡單明顯的規律。信號C是圖傳信號,根據大疆宣傳,技術名稱爲OcuSync。

 

三  研究對象——廣播信號A

這個項目主要研究的對象爲:在第一種連接模式下的無人機廣播信號A。

實驗環境如下:電磁屏蔽屋中,使用Ubuntu 18.04 + GNURadio 3.7.11 + USRP B210,信號採集中心頻率爲2409.5MHz,採樣帶寬15.36MHz,錄製時長約2分鐘,單次文件約14G。信號處理軟件主要爲MATLAB,python輔

待研究信號的層次比較複雜,從兩端開始分級研究:最長的結構命名爲Level9,往下逐漸拆分得到Level8、7;最小的結構命名爲Level1,逐漸組合出Level2、3、4。

 

四  信號長時分析

把整個約2分鐘長的信號稱爲Level9。

信號文件很大、點數很多、難以直接觀察。以0.01s週期分段,統計其中幅度超過某個閾值的點數,類似做幅度調製的解調。

如圖,我們可以觀察到,三次採集的信號都呈現出了一定的長時週期性,週期約爲35s。

於是,我們定義一個35s的週期爲L8。L8的數據量仍然很大。

觀察L8圖像特徵,似乎是由多個更小的時間結構組合而成的。可以得出時間結構有無信號的粗略規律:2_5_1___2__5_5____1___2。

定義L8的1/38,約1s的片段爲 L7,取出直接觀察時域信號幅度。

沒有發現進一步的明顯規律。

 

五  信號短時分析

我們觀察到信號L7中有一種常見的細節結構。

定義上圖中出現的最短的、形似毛刺的信號結構爲L1。

L1信號的主體是一段信號重複兩次,圖中已經用紅色標記出了相似的部位。所有L1結構內容相同。

另一方面,根據之前對OcuSync圖傳信號的分析,OcuSync的常見結構如下。

其中CP的內容爲:本Symbol的1024sample數據的最後80/72sample。

按照L1結構分析,每個L1的前半段是前一Symbol的末尾,而後半段是後一Symbol的CP。由於廣播信號大部分symbol發的都是空數據包,只有cp部分有信號能量,所以形成了大量的L1。

定義 {80,72}+1024 sample 爲 L2(symbol);定義 L2 * 7 = 7680 sample 爲 L3(slot),時長0.5ms。

圖中是一個最常見的L3結構,其中只有L2[3]有數據,其餘只有CP有信號,嘗試對其解碼。

猜測OcuSync使用了類似LTE的OFDM方法調製,嘗試用OFDM解調,解調後的星座圖,頻偏糾正前後如下:

由此可見,頻偏糾正確實有效改善了星座圖的形狀,但仍然呈圓環,無法解調。考慮到星座圖的意義,窄圓環就意味着信號的幅度基本不變,只有相位攜帶信息,所以觀察信號的時間-相位圖。

對上圖進行4分解,進一步觀察。

觀察到較強的規律性,似乎不攜帶太多信息,像是同步信號。

更上一級,定義20個L3 爲L4,時長爲10ms。

圖爲L4的前10個L3,可以看到,L3[6,7]攜帶信息,其它L3爲空。

對L3[6,7]下的每個L2做星座圖(已糾正頻偏):

仔細觀察L3[6].L2[0]星座圖。

觀察到四個“懸臂”?圖中標註處爲“接縫”。

在時間-相位圖像中可以明顯觀察到規律,採用頻偏修正類似的方法,修正這個相位偏移。

相位旋轉修正後的星座圖中,12個L2均呈現出明顯的QPSK圖案(L3[6,7].L2[3]除外)

用MATLAB腳本對12個L2幀做QPSK解碼,用python腳本分析編碼可能性。

獨立考慮解碼方式的各個不確定因素。QPSK/DQPSK(2)正反(2)亂序映射(24)起始位置(4)。共計2*2*24*4 = 384種原始數據序列。

之後檢查了2bits、4bits、8bits的符號頻數,比較平均,同時也沒有檢查到明顯的明文ASCII字符串,猜測可能還有上層的擾碼或者其他隨機化處理和加密算法。逆向分析在此處就停下來了。

 

六  小結

無人機無線信號協議在網上流出的信息很少,比較關鍵的控制信號還採用了跳頻方案。OcuSync協議的結構層次比較複雜,在保證安全性的同時,還能在有限功耗下保持很高的傳輸速度(4K/30fps)和很遠的傳輸距離(7km)。在缺少文檔的情況下攻破無線信號很難。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章