當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]0x00 背景在2015年GeekPwn的開場(chǎng)項(xiàng)目中,筆者利用一系列漏洞成功演示劫持了一架正在飛行的大疆精靈3代無(wú)人機(jī),奪取了這臺(tái)無(wú)人機(jī)的控制權(quán),完成了可能是全球首次對(duì)大疆無(wú)人機(jī)的劫持和完整控制。GeekPwn結(jié)束后,組委會(huì)

0x00 背景

在2015年GeekPwn的開場(chǎng)項(xiàng)目中,筆者利用一系列漏洞成功演示劫持了一架正在飛行的大疆精靈3代無(wú)人機(jī),奪取了這臺(tái)無(wú)人機(jī)的控制權(quán),完成了可能是全球首次對(duì)大疆無(wú)人機(jī)的劫持和完整控制。GeekPwn結(jié)束后,組委會(huì)立即將漏洞通知給官方,而大疆也很快完成了漏洞的修復(fù)。今年的3月15號(hào),大疆發(fā)布了全新一代的精靈4代無(wú)人機(jī),精靈3代從此退居二線;同時(shí)央視315晚會(huì)也對(duì)去年GeekPwn的這個(gè)劫持項(xiàng)目進(jìn)行了詳細(xì)的報(bào)道。

考慮到這些漏洞的修復(fù)已經(jīng)過了足夠長(zhǎng)的時(shí)間,我們決定公開漏洞的完整細(xì)節(jié)和利用流程,希望能為國(guó)內(nèi)的方興未艾的射頻安全研究圈子貢獻(xiàn)自己的一份力量。

本文爭(zhēng)取以零基礎(chǔ)的角度對(duì)整個(gè)發(fā)現(xiàn)和利用過程抽絲剝繭,并盡量詳細(xì)闡述這個(gè)過程中涉及的技術(shù)細(xì)節(jié)。本文涉及的技術(shù)細(xì)節(jié)適用大疆精靈3代,2代和1代,不適用最新的精靈4代無(wú)人機(jī)。由于行文時(shí)間倉(cāng)促,如有疏漏敬請(qǐng)斧正。

0x01 攻擊場(chǎng)景討論:風(fēng)險(xiǎn)真實(shí)存在但可控

可能是因?yàn)榻鼉赡隉o(wú)人機(jī)的曝光率頗高,去年GeekPwn上完成無(wú)人機(jī)劫持項(xiàng)目后感興趣的電視臺(tái)和媒體并不少,也引發(fā)了普通群眾的討論和擔(dān)心。

雖然我們已經(jīng)證明并演示了精靈系列無(wú)人機(jī)是可以被劫持和完整控制的,但想要在實(shí)際環(huán)境中的直接將公園、景區(qū)、街道上空飛行的無(wú)人機(jī)據(jù)為己有,信號(hào)增益和劫持后的穩(wěn)定控制仍然是需要深入研究的問題。或許在官方遙控器上加載自己的萬(wàn)能遙控器ROM,然后直接借用官方遙控器的信號(hào)增益和控制系統(tǒng),會(huì)是一個(gè)可行的方案。

此外,造成劫持的漏洞已經(jīng)得到合理的修復(fù),新版ROM發(fā)布也已經(jīng)超過4個(gè)月。隨著安全研究者的攻防研究以及官方的重視,實(shí)際能攻擊的精靈無(wú)人機(jī)也會(huì)越來(lái)越少。

所以,我們的結(jié)論是,普通群眾不用過于擔(dān)憂無(wú)人機(jī)的安全問題,反而應(yīng)該更關(guān)注越來(lái)越多的走入普通人家的智能設(shè)備的安全問題。順便提一下,這塊我們團(tuán)隊(duì)亦有關(guān)注(比如同樣是參加了GeekPwn 2015和央視315晚會(huì)的烤箱和POS機(jī)),后續(xù)還會(huì)有更多的研究成果放出。

好了,現(xiàn)在開始我們的無(wú)人機(jī)劫持之旅。

0x02 抽絲剝繭:精靈系列遙控原理全解析

0x0200 射頻硬件初探

要黑掉無(wú)人機(jī),第一步要做的是信息收集。我們先來(lái)了解一下精靈3代所使用的射頻硬件。

圖1 拆開的精靈3代遙控器(左圖)和無(wú)人機(jī)主機(jī)(右圖)

左翻右翻,經(jīng)過了一系列艱難的電焊拆解和吹風(fēng)機(jī)刮除保護(hù)膜后,終于找到了負(fù)責(zé)射頻通信的芯片和負(fù)責(zé)邏輯的主控芯片,并識(shí)別出了它們的型號(hào)??吹贸鰜?lái)大疆對(duì)電路板刻意做了一些防拆解和信息保護(hù)。

從下面的圖中能識(shí)別出來(lái),主控芯片選擇的是知名大廠NXP的LPC1765系列,120MHz主頻,支持USB 2.0,和射頻芯片使用SPI接口進(jìn)行通訊。而射頻芯片則是國(guó)產(chǎn)BEKEN的BK5811系列,工作頻率為5.725GHz – 5.852GHz或者5.135GHz – 5.262GHz,共有125個(gè)頻點(diǎn),1MHz間隔,支持FSK/GFSK調(diào)制解調(diào),使用ShockBurst封包格式,并且支持跳頻,使用經(jīng)典的SPI接口進(jìn)行控制。

圖2 主控芯片

圖3 射頻芯片

而這個(gè)參數(shù)強(qiáng)大的國(guó)產(chǎn)射頻芯片激起了我們的興趣,經(jīng)過一些挖掘,發(fā)現(xiàn)這個(gè)芯片原來(lái)山寨自NORDIC的nRF24L01+,沒錯(cuò),就是這個(gè)號(hào)稱性價(jià)比之王的nRF24L01+ 2.4GHz射頻芯片的5.8GHz版本,更有意思的是這兩個(gè)不同廠家芯片的datasheet中絕大部分內(nèi)容都是通用的。

通過這些基本的硬件信息確定了射頻的頻段后,我們馬上拿出HackRF在gqrx中觀察5.8GHz的信號(hào)。看著瀑布圖(下圖4)中跳來(lái)跳去的小黃線,我們意識(shí)到精靈3的射頻通訊應(yīng)該是跳頻的,而在不知道跳頻序列的情況下,無(wú)法對(duì)射頻信號(hào)進(jìn)行完整解調(diào)。此時(shí)HackRF的射頻分析基本上派不上用處,唯有通過邏輯分析儀來(lái)看看射頻芯片是如何跳頻的。

圖4 使用gqrx觀察射頻信號(hào)

0x0201 不得已的控制邏輯追蹤

從上一節(jié)獲得的硬件信息中,我們已經(jīng)知道主控芯片和射頻芯片之間是采用SPI接口進(jìn)行通訊和控制的,因此只要從BK5811的引腳中找到SPI需要的那四個(gè)引腳,連上邏輯分析儀,對(duì)這四個(gè)引腳的電位變化進(jìn)行采樣分析,我們就能看到主控芯片是如何控制射頻芯片的跳頻了。

0x020100 SPI接口定義

SPI協(xié)議本身其實(shí)挺簡(jiǎn)單的,在CS信號(hào)為低電位時(shí),SCK通過脈沖控制通訊的時(shí)鐘頻率,每個(gè)時(shí)鐘周期里,SI為輸入,SO為輸出,通過SI和SO在每個(gè)時(shí)鐘里高低電位的切換構(gòu)成一個(gè)bit,每八個(gè)時(shí)鐘周期構(gòu)成一個(gè)字節(jié),從而形成一個(gè)連續(xù)的字節(jié)流,一個(gè)字節(jié)流代表一個(gè)命令,由射頻芯片的datasheet約定好。SPI協(xié)議通訊示意圖如下所示,其中四個(gè)引腳分別為:

SO(MISO):主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入。

SI(MOSI):主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出。

SCK(CLK):時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生。

CS(CSN):從設(shè)備使能信號(hào),由主設(shè)備控制。

圖5 SPI協(xié)議通訊示意圖

0x020101 連接邏輯分析儀

通過BK5811的datasheet,我們定位到了SPI通信的那幾個(gè)引腳(如圖6),通過萬(wàn)用表確認(rèn)引腳連通性,然后在可以電焊的地方通過飛線連上邏輯分析儀的測(cè)試鉤,折騰了很久總算連上了(如圖7)。

圖6 BK5811中SPI引腳定義

圖7 通過電焊和飛線將BK5811的SPI引腳連上邏輯分析儀

隨后,從邏輯分析儀中,我們得到了作為安全人員來(lái)說(shuō)最喜歡的二進(jìn)制數(shù)據(jù)流。

0x020102 射頻芯片控制命令解析

在BK5811的datasheet中,明確定義了它所支持的每一條SPI命令。通過連續(xù)的電位變化傳過來(lái)一個(gè)完整的SPI命令如下所示:

圖8 邏輯分析儀中的一個(gè)SPI命令

其中0x30是命令號(hào),高3位代表操作是寫B(tài)K5811的寄存器,而寄存器id由這個(gè)字節(jié)中的低5位決定,是0x10,而0x10代表寫的內(nèi)容是ShockBurst的發(fā)送地址(類似以太網(wǎng)的mac地址)。而后面五字節(jié)(0x11 0x22 0x33 0x44 0x19)則是發(fā)送地址本身。

0x020103 跳頻邏輯總結(jié)

通過一段時(shí)間的觀察,我們發(fā)現(xiàn)SPI命令頗為簡(jiǎn)單,為了方便觀察大量命令的序列,我們按照datasheet中的定義寫了一個(gè)解析腳本,在腳本的幫助下終于整理清楚了跳頻的流程。

圖9 SPI命令解析腳本

在大疆的定義下,完整的跳頻序列有16個(gè)頻點(diǎn),這些頻點(diǎn)在遙控器和無(wú)人機(jī)主機(jī)配對(duì)(一般發(fā)生在出廠前)時(shí)通過隨機(jī)產(chǎn)生,一旦確定后就存儲(chǔ)固定起來(lái),除非手動(dòng)重新配對(duì)。

遙控器打開后,會(huì)以7ms的周期,按照跳頻序列指定的順序來(lái)變化射頻發(fā)射的頻率,16次(112ms)一個(gè)循環(huán),而在每一個(gè)周期內(nèi),發(fā)射一次遙控的控制數(shù)據(jù)。一個(gè)典型的SPI命令序列如:<跳頻> 1ms <發(fā)包> 6ms

圖10 遙控器SPI命令數(shù)字邏輯示意圖

對(duì)于無(wú)人機(jī)主機(jī),則是以1ms的周期來(lái)變化接收信號(hào)的頻率,一旦收到來(lái)自遙控器的射頻信號(hào)(BK5811會(huì)使用上文所說(shuō)的發(fā)送和接收地址來(lái)識(shí)別通過),則轉(zhuǎn)而進(jìn)入7ms的周期,和遙控器保持同步。一旦信號(hào)丟失,馬上又恢復(fù)1ms的跳頻周期。一個(gè)典型的SPI命令序列如:<跳頻> <查包> 1ms <查包> 1ms <查包> 1ms <查包> 1ms <查包> 1ms <查包> 1ms <查包>。

圖11 無(wú)人機(jī)主機(jī)SPI命令數(shù)字邏輯示意圖

從上面的分析我們能注意到,遙控器只負(fù)責(zé)發(fā)送數(shù)據(jù),無(wú)人機(jī)主機(jī)只負(fù)責(zé)接收數(shù)據(jù),兩者之間并無(wú)射頻上的交互。這為我們后面覆蓋遙控器的信號(hào)打好了基礎(chǔ)。

0x0202 模擬信號(hào)到數(shù)字信號(hào)的鴻溝

在搞清楚遙控的工作流程后,我們知道是可以對(duì)其進(jìn)行完全的模擬(先假設(shè)射頻序列已知),創(chuàng)造出一個(gè)以假亂真的遙控來(lái)。但在加工二進(jìn)制命令前,如何完成二進(jìn)制命令中數(shù)字化的數(shù)據(jù)和真實(shí)世界中連續(xù)的電磁波之間的轉(zhuǎn)換困擾了我們很久,筆者甚至很長(zhǎng)一段時(shí)間都在想重回大學(xué)修滿通信專業(yè)的科目。

0x020200 電磁波和GFSK制式的基本原理

先補(bǔ)一點(diǎn)從學(xué)通信的同事那里偷師回來(lái)的基本常識(shí)。

電磁波在我們的世界中連續(xù)的傳播,通過特定的方式可以使其攜帶二進(jìn)制信息,這個(gè)方式稱為調(diào)制解調(diào)。發(fā)送數(shù)據(jù)時(shí),一般是將的調(diào)制好的基帶信號(hào)(含二進(jìn)制信息)和載波信號(hào)疊加后進(jìn)行發(fā)送,通?;鶐盘?hào)的頻率會(huì)比載波信號(hào)頻率低很多,如BK5811的載波信號(hào)頻率在5.8GHz左右,但基帶信號(hào)的頻率僅為2MHz。而接收方通過解調(diào)和濾波,將基帶信號(hào)從接收到的載波信號(hào)中分離出來(lái),隨后進(jìn)行采樣和A/D轉(zhuǎn)換得到二進(jìn)制數(shù)據(jù)。

FSK(Frequency-shift keying)是一種經(jīng)典的基于頻率的調(diào)制解調(diào)方式,其傳遞數(shù)據(jù)的方式也很簡(jiǎn)單。例如約定500KHz代表0,而1000KHz代表1,并且以1ms作為采樣周期,如果某1ms內(nèi)基帶信號(hào)的頻率是500KHz,這表明這是一個(gè)0,而如果下1ms內(nèi)基帶信號(hào)的頻率為1000KHz,那表明下一位二進(jìn)制比特是1。簡(jiǎn)單來(lái)說(shuō),F(xiàn)SK制式就是通過這樣連續(xù)的電磁波來(lái)連續(xù)的傳遞二進(jìn)制數(shù)據(jù)。

圖12 FSK調(diào)制解調(diào)示意圖

而GFSK制式僅僅是在FSK制式的基礎(chǔ)上,在調(diào)制之前通過一個(gè)高斯低通濾波器來(lái)限制信號(hào)的頻譜寬度,以此來(lái)提升信號(hào)的傳播性能。

0x020201 GFSK解調(diào)和IQ解調(diào)

在理解了GFSK制式的原理后,接下來(lái)我們嘗試在HackRF的上寫出GFSK解調(diào)腳本,從一段遙控實(shí)際發(fā)出的電磁波中提取二進(jìn)制數(shù)據(jù)(如下圖13)。需要注意的是HackRF收發(fā)的射頻數(shù)據(jù)另外采用了IQ調(diào)制解調(diào),代碼上也需要簡(jiǎn)單處理一下。

圖13 在空中傳播的GFSK電磁波(IQ制式)

由于沒有找到現(xiàn)成的解調(diào)代碼,只好在MATLAB上(如下圖14)摸爬滾打了許久,并惡補(bǔ)了許多通信基礎(chǔ)知識(shí),折騰出(如下圖15)GFSK解調(diào)腳本,并成功模擬遙控器的跳頻邏輯,能夠像無(wú)人機(jī)那樣獲取每一次跳頻的數(shù)據(jù)。至此, 我們?cè)俅蔚玫搅俗鳛榘踩藛T來(lái)說(shuō)最喜歡的二進(jìn)制數(shù)據(jù)流。

圖14 MATLAB中模擬GFSK解調(diào)

圖15 GFSK解調(diào)腳本工作圖

0x020202 遙控控制數(shù)據(jù)總結(jié)

經(jīng)過分析,一條典型的遙控控制數(shù)據(jù)如下(圖16)所示(最新版本固件和稍舊版本的固件協(xié)議,格式略有不同):

圖16 兩種類型的遙控控制數(shù)據(jù)

最開始的5個(gè)字節(jié)為發(fā)送方的ShockBurst地址,用于給無(wú)人機(jī)驗(yàn)證是不是配對(duì)的遙控器。

接下來(lái)的26字節(jié)為遙控?cái)?shù)據(jù)本身(上下,左右,油門,剎車等遙控器上的一切操作),我們?cè)敿?xì)來(lái)講解下。

遙控器上的控制桿的一個(gè)方向(如上+下,左+右)由12bit來(lái)表示。如表示左右方向及力度的數(shù)值power_lr由上數(shù)據(jù)的第5個(gè)字節(jié)和第6個(gè)字節(jié)的低4位決定,控制桿居中時(shí)power_lr為0x400(1024),控制桿拉至最左時(shí)power_lr為0x16C(364),而拉至最右時(shí)power_lr為0x694(1684)。也就是說(shuō),遙控器可以將控制桿左和右,力度可分為660級(jí),并在控制數(shù)據(jù)中占用12bit傳輸給無(wú)人機(jī)主機(jī),主機(jī)針對(duì)不同的力度執(zhí)行不同的飛行行為。

圖17 遙控控制數(shù)據(jù)解析代碼片段

其他遙控控制桿的數(shù)據(jù)也非常類似,故不再贅述。值得注意的是,所有26字節(jié)的遙控控制數(shù)據(jù)是一次性的發(fā)給無(wú)人機(jī)的,故上下,左右,前進(jìn)后退,油門剎車等所有行為都是并行無(wú)干擾的。這也是無(wú)人機(jī)遙控性能指標(biāo)中經(jīng)常說(shuō)的支持6路信號(hào),12路信號(hào)的含義。

控制數(shù)據(jù)中最后的1個(gè)字節(jié)位CRC8校驗(yàn)位(舊版是CRC16),是前面的31字節(jié)的CRC8/CRC16校驗(yàn)結(jié)果,校驗(yàn)錯(cuò)誤的數(shù)據(jù)將被拋棄。

0x0203 遙控器和無(wú)人機(jī)通訊邏輯總結(jié)

通過以上漫長(zhǎng)的分析過程,我們總算完全搞懂了在遙控器上撥動(dòng)控制桿的行為,是如何一步步反饋到無(wú)人機(jī)的飛控程序來(lái)完成對(duì)應(yīng)的飛行行為。簡(jiǎn)單整理下:

a) 遙控器和無(wú)人機(jī)開機(jī)后,遙控器負(fù)責(zé)發(fā)送數(shù)據(jù),無(wú)人機(jī)負(fù)責(zé)接收數(shù)據(jù)。它們通過共同的跳頻序列的高速跳頻來(lái)保持一個(gè)數(shù)據(jù)鏈路,鏈路故障有一定能力能迅速恢復(fù)。

b) 無(wú)人機(jī)每7ms就會(huì)收到一次遙控器發(fā)出的32字節(jié)控制數(shù)據(jù),控制數(shù)據(jù)只有一條命令一種格式,所有控制桿和開關(guān)的狀態(tài)會(huì)一次性發(fā)送到無(wú)人機(jī)。無(wú)人機(jī)收到數(shù)據(jù)后會(huì)進(jìn)行地址校驗(yàn)和CRC校驗(yàn),確保數(shù)據(jù)是正確無(wú)誤的。

c) 用戶在操縱遙控器的過程中,操控的行為和力度都會(huì)在7ms內(nèi)通過那32字節(jié)控制數(shù)據(jù)反饋至無(wú)人機(jī),接著由無(wú)人機(jī)的飛控程序來(lái)完成對(duì)應(yīng)的飛行行為。

0x03 各個(gè)擊破:完全控制無(wú)人機(jī)

從遙控器的通訊邏輯來(lái)看,想要通過HackRF這類SDR設(shè)備覆蓋遙控器發(fā)出的射頻數(shù)據(jù)來(lái)劫持無(wú)人機(jī)。必須解決以下幾個(gè)問題:

a) 雖然通過HackRF來(lái)收發(fā)GFSK數(shù)據(jù)已經(jīng)沒有問題,但不知道跳頻序列根本無(wú)法和無(wú)人機(jī)保持同步。

b) 如何打斷遙控器原本和無(wú)人機(jī)之間的穩(wěn)定射頻鏈路,并同時(shí)建立和無(wú)人機(jī)之間新的穩(wěn)定鏈路。

c) 大疆遙控器的射頻功率做了大量?jī)?yōu)化,有效控制距離達(dá)一公里,HackRF的射頻頻率難以企及。

下面我們來(lái)看看如何逐個(gè)擊破這幾個(gè)問題。

0x0300 偽造遙控器:信道的信息泄漏漏洞

在通過腳本對(duì)遙控器信號(hào)進(jìn)行GFSK解調(diào)時(shí),我們發(fā)現(xiàn)了BK5811芯片一個(gè)奇怪的現(xiàn)象:芯片在某個(gè)頻道發(fā)送數(shù)據(jù)時(shí),會(huì)同時(shí)向臨近的特定頻道發(fā)送同樣內(nèi)容數(shù)據(jù)內(nèi)容。舉個(gè)例子來(lái)說(shuō),同在+7ms這一時(shí)刻,除了會(huì)向13號(hào)頻道發(fā)送屬于這個(gè)頻道的數(shù)據(jù)外,還會(huì)向其他一些特定的頻道發(fā)送原本屬于13號(hào)頻道的數(shù)據(jù)。

+ 7ms: Channel 13,

+ 7ms: Channel 09,

+ 7ms: Channel 21,

這個(gè)奇怪的現(xiàn)象雖然不會(huì)影響射頻的功能,只是多了一些冗余數(shù)據(jù),但卻成了我們得到遙控器跳頻序列的突破點(diǎn),實(shí)實(shí)在在的構(gòu)成了一個(gè)信息泄露漏洞。

我們可以通過腳本,從5725MHz到5850MHz進(jìn)行遍歷,每次隔1MHz,剛好覆蓋BK5811的每一個(gè)頻道。遍歷監(jiān)聽時(shí),考慮單個(gè)頻點(diǎn)的情況,我們能得到冗余數(shù)據(jù)(假設(shè)監(jiān)聽61號(hào)頻道)如下:

+ 0ms: Channel 61,

+ 7ms: Channel 13,

+ 21ms: Channel 09,

+ 112ms: Channel 61,

因?yàn)槲覀円呀?jīng)明確112ms是一次跳頻序列的循環(huán),那么從冗余數(shù)據(jù)中我們可以推論:

ch61 + 1 Step(7ms) = ch13

ch13 + 3 Step(21ms) = ch09

ch09 + 12 Step(84ms) = ch61

換成文字結(jié)論即是:如果61號(hào)頻道是跳頻序列的第1個(gè),那么13號(hào)頻道是第2個(gè),9號(hào)頻道是第4個(gè),一個(gè)一個(gè)頻道的去遍歷,就可以把這個(gè)序列補(bǔ)充完整。實(shí)際遍歷時(shí)我們發(fā)現(xiàn),HackRF腳本僅需要30到120秒,不需要遍歷全部127個(gè)頻道,即可推論和補(bǔ)齊完整的16個(gè)頻點(diǎn)及跳頻序列(如下圖所示)。

圖18 HackRF腳本遍歷后得到完整的跳頻序列

通過這個(gè)特殊的信息泄露漏洞,配合遙控器的調(diào)頻規(guī)律可快速得到跳頻序列,但我們也不清楚為什么BK5811芯片會(huì)存在這樣的信息泄露漏洞。隨后我們拿nRF24L01+也做了類似的測(cè)試,發(fā)現(xiàn)nRF24L01+也同樣會(huì)產(chǎn)生同樣的問題。

0x0301 劫持無(wú)人機(jī):信號(hào)覆蓋漏洞

下面來(lái)看看信號(hào)覆蓋的問題如何解決。有個(gè)關(guān)鍵的前提是遙控器只發(fā)數(shù)據(jù),無(wú)人機(jī)只收數(shù)據(jù),它們之間沒有交互。

在之前進(jìn)行邏輯分析的時(shí)候我們發(fā)現(xiàn),不管無(wú)人機(jī)是1ms跳頻一次還是7ms跳頻一次,它實(shí)際上只會(huì)接收跳頻完畢后最早發(fā)給它的合法數(shù)據(jù)包。正常情況下可能是跳頻完畢后的第5ms時(shí),收到了遙控器發(fā)過來(lái)的數(shù)據(jù),再下一次跳頻后的5ms時(shí),再收到遙控器發(fā)過來(lái)的下一次數(shù)據(jù)。

那如果我們能一直早于遙控器發(fā)出數(shù)據(jù),無(wú)人機(jī)豈不是就直接使用我們的數(shù)據(jù)了?確實(shí)是這樣的。假設(shè)我們的控制腳本中設(shè)置為6ms跳頻,我們很快能奪取無(wú)人機(jī)的控制權(quán)(7次跳頻內(nèi))。但遙控器也會(huì)奪回控制權(quán),最終就會(huì)出現(xiàn)無(wú)人機(jī)有1/7的數(shù)據(jù)來(lái)自遙控,6/7的來(lái)自黑客的局面。

這其實(shí)是一場(chǎng)信號(hào)爭(zhēng)奪戰(zhàn),那么有沒有辦法讓無(wú)人機(jī)更穩(wěn)定的更穩(wěn)定接收我們的信號(hào)呢?如果我們把跳頻時(shí)間設(shè)置為 6.9ms,跳頻后每隔0.4ms(Arduino UNO R3的速度極限)發(fā)送一次遙控控制數(shù)據(jù)的話,雖然奪取無(wú)人機(jī)控制權(quán)需要更長(zhǎng)的時(shí)間(約10s),但一旦獲得控制權(quán),在0.4ms發(fā)送一次數(shù)據(jù)的高刷新率覆蓋之下,遙控器基本沒可能奪回控制權(quán)。

圖19 偽造遙控器的SPI命令數(shù)字邏輯

至此,劫持無(wú)人機(jī)的基本技術(shù)問題已經(jīng)通過一個(gè)信息泄漏漏洞和一個(gè)信號(hào)覆蓋漏洞解決了。

0x0302 穩(wěn)定性 & 可用性優(yōu)化

在實(shí)現(xiàn)控制腳本的過程中,HackRF存在的兩個(gè)嚴(yán)重限制:一方面HackRF使用USB通訊接口決定了它的通訊延遲巨大(指令延遲約為30ms),上文中動(dòng)輒0.4ms的控制精度HackRF做不到;另外一方面,HackRF在5.8GHz頻段的信號(hào)衰減嚴(yán)重(信號(hào)強(qiáng)度僅為遙控器的1%,可能是通用天線在高頻段增益偏低),估計(jì)只有在貼著無(wú)人機(jī)射頻芯片的情況下才有作用。天線問題故無(wú)法使用HackRF劫持無(wú)人機(jī)。

靈機(jī)一動(dòng),我們想到了和遙控器類似的做法:通過Arduino UNO R3單片機(jī)平臺(tái)來(lái)操作BK5811芯片,直接在Arduino上實(shí)現(xiàn)我們的控制邏輯。當(dāng)然,再加一個(gè)某寶上淘的有源信號(hào)放大器,如下圖所示。根據(jù)測(cè)試,有效控制范圍為10米左右。

圖20 無(wú)人機(jī)劫持模塊全家福

最終,通過了漫長(zhǎng)的分析和各種漏洞利用方法的嘗試后,我們完成了對(duì)大疆無(wú)人機(jī)的劫持。通過HackRF遍歷和監(jiān)聽,然后將序列輸入到Arduino中,在Arduino中完成對(duì)無(wú)人機(jī)信號(hào)的劫持,最后來(lái)通過Arduino上連接的簡(jiǎn)易開關(guān)來(lái)控制無(wú)人機(jī)??刂菩Ч梢詤⒖催@個(gè)央視315中的視頻片段。

0x04 后記:攻是單點(diǎn)突破,防是系統(tǒng)工程

從漏洞分析和利用的過程來(lái)看,大疆在設(shè)計(jì)無(wú)人機(jī)和射頻協(xié)議時(shí)確實(shí)考慮了安全性的問題,其中跳頻機(jī)制雖然很大程度上提升了協(xié)議的破解難度,但卻被過度的依賴。筆者和團(tuán)隊(duì)長(zhǎng)期從事騰訊產(chǎn)品的漏洞研究工作,深知如所有其他漏洞攻防場(chǎng)景一樣,分散而孤立的防御機(jī)制跟本無(wú)法抵御黑客的突破或繞過,指望一個(gè)完美的系統(tǒng)來(lái)抵御黑客,如同指望馬奇諾防線來(lái)抵御德國(guó)軍隊(duì)的入侵一樣不現(xiàn)實(shí)。而更現(xiàn)實(shí)情況是攻和守的不對(duì)稱,攻擊者利用單點(diǎn)的突破,逐層的推進(jìn),往往會(huì)領(lǐng)先防御者一大截。

防御者就無(wú)計(jì)可施了嗎?當(dāng)然不是。聰明的防御者一定懂得兩個(gè)系統(tǒng)性的思路:未知攻焉知防和借力。一方面防守者必須是優(yōu)秀的攻擊者,才有可能嗅得到真正攻擊者的蛛絲馬跡,才有可能在關(guān)鍵節(jié)點(diǎn)上部署符合實(shí)際情況;另外一方面防守者必須借助自己是在企業(yè)內(nèi)部這一優(yōu)勢(shì)和業(yè)務(wù)并肩作戰(zhàn),利用業(yè)務(wù)的資源和數(shù)據(jù)這些攻擊者拿不到的資源,配合對(duì)攻擊的理解,建立對(duì)攻擊者來(lái)說(shuō)不對(duì)稱的防御系統(tǒng)。

另外一個(gè)層面,智能硬件行業(yè)各個(gè)廠商對(duì)安全的重視令人堪憂。作為無(wú)人機(jī)行業(yè)絕對(duì)第一的大疆,尚且存在嚴(yán)重的安全問題,更不要說(shuō)其他公司——筆者和TSRC物聯(lián)網(wǎng)安全研究團(tuán)隊(duì)近兩年業(yè)余時(shí)間對(duì)智能硬件安全的研究也印證了這個(gè)結(jié)論。二進(jìn)制漏洞的復(fù)雜性和門檻決定了這種漏洞類型很少有機(jī)會(huì)出現(xiàn)在公眾的視野中,但在更隱晦的地下,二進(jìn)制漏洞攻擊者的力量正在以防御者無(wú)法企及的速度悄然成長(zhǎng)。也許等到阿西莫夫筆下《機(jī)械公敵》中的機(jī)器人社會(huì)形態(tài)形成時(shí),我們要面對(duì)的不是人工智能的進(jìn)化和變異,而是漏洞攻擊者這種新時(shí)代的恐怖分子。

最后,感謝我有一把刷子、zhuliang、泉哥、lake2在整個(gè)破解過程中的支持。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉