一步步教你黑掉無人機:看完可千萬別下手

科技評論1,044閱讀模式

無人機曾一度用來基礎(chǔ)的地面?zhèn)刹榛蚴强觳偷晁团_……然而從去年開始,無人機被用來搭載炸彈運送到戰(zhàn)場,甚至是被用來攻擊智能手機。
正是因為普及面的提高,無人機也被眾多黑客盯上,他們熱衷于找尋相關(guān)漏洞劫持無人機。最近在看雪安全開發(fā)者峰會上,阿里安全IoT安全研究團隊Leader謝君發(fā)表了“如何黑掉無人機”這一議題演講,內(nèi)容卻另辟蹊徑講到如何不利用漏洞root無人機。一步步教你黑掉無人機:看完可千萬別下手-圖片1

謝君:我分享的議題是如何黑掉某品牌無人機。我在研究過程中從物理接觸和非物理接觸兩個方面對整個無人機進行系統(tǒng)化的學習,今天我將分享研究過程中的一些收獲以及學到的東西。
無人機是一個復(fù)雜的系統(tǒng)工程,涉及結(jié)構(gòu)工程、自動化控制,空氣動力學,計算機視覺處理以及各種傳感器、無線通訊,以及與人工智能相關(guān)的深度學習。
我將整個系統(tǒng)全部拆開,發(fā)現(xiàn)其中應(yīng)用了哪些硬件、傳感器、芯片。其中涉及到不同傳感器及控制系統(tǒng),很多嵌入式芯片沒有OS的概念,所有代碼直接上位機執(zhí)行,通過實時中斷以及計時器和IO的控制來完成整個系統(tǒng)的實時操作。一步步教你黑掉無人機:看完可千萬別下手-圖片2

模塊間通信
我在此基于某品牌的無人機進行分析,包括無線通訊、飛行控制、微機電傳感器、機器視覺處理。實際上這些微控制芯片來自不同廠商,要實現(xiàn)傳感器芯片間的通訊,必須滿足相應(yīng)的通信規(guī)范,才能協(xié)同自如。
所以產(chǎn)商設(shè)計了一套無人機各模塊間的通信協(xié)議,協(xié)議滿足全系列消費級無人機的產(chǎn)品,定義不超過32個硬件功能模塊,硬件功能模塊下面則可以定義子功能模塊。一步步教你黑掉無人機:看完可千萬別下手-圖片3

比如飛控系統(tǒng)用03表示,06表示飛控系統(tǒng)下的子控制功能,如支持的飛機起降功能等。再比如攝像頭采集系統(tǒng)是用01編號,云臺控制系統(tǒng)是用04編號。在傳輸過程中,這些編號將會通過算法來編碼。
這些不同傳感器間通訊鏈路有多種,通訊協(xié)議可劃分為本地的、通過串口的、區(qū)域網(wǎng)絡(luò)等,其中運用多的通訊協(xié)議分別是logic和V1。logic像進程間通訊的方式,V1是不同硬件間遠程通訊的協(xié)議方式。
模塊間通信也采用了相應(yīng)的隔離,類似現(xiàn)在的汽車系統(tǒng),汽車有不同ECU模塊,各個模塊通訊有一定的通訊協(xié)議和格式,以及網(wǎng)關(guān)隔離某些子系統(tǒng)不允許公共訪問。
而無人機里的GPS模塊,只允許飛控系統(tǒng)訪問,其他應(yīng)用系統(tǒng)則不被允許。
整個無人機的通訊結(jié)構(gòu),類似下圖,不同傳感器間通訊存在一定路徑,且有一定限制。這是無人機通訊格式,可以看出存在一定規(guī)范比如一定以55開頭,每一個包的長度不能超過固定字節(jié),以及控制命令設(shè)置有一些校驗位,且對每一個子系統(tǒng)的編碼需要通過一定算法來計算。一步步教你黑掉無人機:看完可千萬別下手-圖片4

無人機的核心中心橋的控制板,主要是基于LC1860 SoC所做的控制板,其主要功能是負責整個系統(tǒng)協(xié)調(diào)以及固件更新和攝像內(nèi)容采集、攝像內(nèi)容數(shù)據(jù)壓縮、編碼和圖象深度學習,IOR檢測等。
這個LC1860芯片運行嵌入式Linux系統(tǒng),下面是三星的EMCP,其是集LPDDR和eMMc于一體的存儲芯片,也是操作系統(tǒng)存放地方。
下面這一塊芯片intelMovidusMA2155,是英特爾圖像深度學習芯片,因為無人機不能聯(lián)網(wǎng),在需要做實時機器視覺分析時,需要用到大量的矢量運行。而此芯片在無人機上面的應(yīng)用有視覺測距,障礙物識別以及ROI。當該無人機進行跟隨飛行時,可通過CNN建立好的深度學習模型,進行精確判斷。
LATTICE的FPGA芯片,主要用于雙目避障功能,通過可見光反射回來檢測障礙物的存在。
root無人機
在研究IOT設(shè)備時談到最多的詞就是能否root這臺設(shè)備,root設(shè)備意味著可以獲得系統(tǒng)很高的控制權(quán)。為什么要root無人機?目的是擴大攻擊面,更好的研究無人機。
而在研究的過程中,我們發(fā)現(xiàn)root無人機最好的辦法是利用合適的漏洞,執(zhí)行打開Adb接口功能,就能得到系統(tǒng)的rootshell了。如果沒有漏洞該怎么辦?有意思的是我們發(fā)現(xiàn)不用漏洞也可以root無人機。
其實此方法可以運用到諸多領(lǐng)域,比如某些路由器。研究過程中我們發(fā)現(xiàn)啟動腳本里有一個變量控制ADB功能能否打開,默認出廠ADB不能打開。ADB功能接口在安卓手機應(yīng)用廣泛,怎樣打開此ADB功能,一種是利用漏洞執(zhí)行ADB_en.sh的腳本,另一種方法是直接修改該啟動腳本的變量。
同樣,我們不通過漏洞的方式root無人機,因為安卓系統(tǒng)存在三星EMCP里面,是集內(nèi)存和存儲于一體的EMCP芯片,如果我們可以修改這個芯片里面的內(nèi)容就可以直接root無人機了。一步步教你黑掉無人機:看完可千萬別下手-圖片5

具體操作步驟是:首先找到這塊存儲芯片的位置,用電熱風槍把它吹下來,然后用eMMC的讀書卡讀取內(nèi)容,此時即找到eMMC讀卡器,把eMMC插到電腦可以看到一個彈出顯示存儲器里面的空間和內(nèi)容,找到設(shè)置調(diào)試變量的地方,修改后再寫到eMCP里面焊回來。
有一個小細節(jié)是,因為存儲器里的內(nèi)容有分區(qū),需要將這些系統(tǒng)分區(qū)用Ext4的方式掛載,修改后保存,再剪輯切回EMCP的芯片里,后續(xù)我們需要把它焊回去。再運行直接ADB打開,就可以得到root權(quán)限,成功后可以看到它的系統(tǒng)信息和進程。
這一過程涉及到許多復(fù)雜問題,比如要手工脫焊和焊接的過程,此芯片是BGA封裝,引腳多,引腳間距小,且芯片底座里面人為灌入黑膠,對操作過程帶來很大不便,操作不當易使芯片廢掉,手工操作難度極高。
飛控系統(tǒng)
飛控系統(tǒng),是無人機里面的核心。因為會搜集到無人機各個傳感器模塊的一系列數(shù)據(jù),通過一些綜合算法來判斷飛控系統(tǒng)應(yīng)該如何操作。一步步教你黑掉無人機:看完可千萬別下手-圖片6

飛控系統(tǒng)核心芯片是ATSAME70Q21,其不需要外置存儲器存儲它的部件以及算法,與之相關(guān)有兩塊IMU陀螺儀以及加速度計,檢測飛機處于什么狀態(tài)。
氣壓計,主要為了檢測飛機的高度,作為一個飛機高度的判斷因素。
UbloxGPS模塊,是一個可編程的模塊,因為飛控和GPS通訊有一個協(xié)議交互,并不是說任何一個GPS模塊都可以替換它,但可以做一些欺騙GPS的事情。
指南針模塊,主要用于方向的定位。
智能電源,智能電源是用德州儀器MSP430G275516位的微控制芯片,它主要是收集電源現(xiàn)在狀態(tài),保持了何時放電,何時通過飛控系統(tǒng)在電量低于某值時返航。
電調(diào)芯片,因為無人機有四個螺旋槳,四個馬達,每一個馬達需要一個電調(diào)的芯片控制轉(zhuǎn)速,控制不同的馬達的轉(zhuǎn)速,來達到控制飛行姿態(tài)以及速度的操作。
視覺系統(tǒng)
視覺系統(tǒng),這是無人機里面非常重要的功能,里面核心處理芯片是英特爾的MA2155深度學習處理芯片。一步步教你黑掉無人機:看完可千萬別下手-圖片7

飛機搭載攝像頭首先可以進行視頻錄制、拍照,圖像內(nèi)容輸出給視覺處理芯片來完成視覺識別等功能,其中一個功能是飛行跟隨,即在手機屏幕上選點跟隨飛行的目標,無人機可以跟隨他/它飛行,此時時候就利用芯片強大的深度學習能力,對感興趣的區(qū)域進行識別。
還有一個功能是測距,通過MA2155這塊深度學習芯片來完成視覺測距的功能,飛機前后障礙物的距離通過圖象識別的方式識別出來。
另一個功能是雙目避障,這是觀測傾斜度70度是否有障礙物,通過發(fā)射端發(fā)射出去的光反射回來在接收端接受。
超聲波可檢測下方障礙物以及檢測地面。
無線通信系統(tǒng)架構(gòu)
無線通訊,是無人機里面最核心的一塊功能,也是最復(fù)雜的一塊功能,涉及到控制系統(tǒng)和圖象傳輸。基本原理就是前端的收發(fā)器收到信號,通過基帶系統(tǒng)進行解碼,解碼后通過搖控器的LPC1549芯片處理進而通過Cypress的USB芯片反饋到手機上。
無線通訊是通過OFDM方式進行圖傳以及數(shù)控的傳輸,其特點是控制通道數(shù)據(jù)通過遙控器通過1Mhz帶寬的跳頻發(fā)送,飛機回傳的圖象和控制通道回傳數(shù)據(jù)通過10Mhz帶寬進行定頻傳輸。
為了保證數(shù)控通道及時性,采取定時跳頻的方式。因為有可能信號會被干擾,在某一個特定頻點時會被干擾,如果被干擾的話,飛機可能收不到遙控器的一些數(shù)據(jù),此時我們需要切換不同的頻點,找信噪比高的地方,保證它的可靠性。
它在FCCID通信管理局申請的5G頻段的頻寬執(zhí)照在5727-5821Mhz,但實際上,其操作已超過通訊管理局規(guī)定的頻段。在我們研究過程中發(fā)現(xiàn)濫用這個頻段的資源已達5845Mhz。遙控器與飛機如何進行識別,需要配對及連接過程。
配對的唯一信息來自遙控器,所有信息都是遙控發(fā)給無人機,配對成功后可以在操作過程中識別到哪個是我控制的無人機,且這些控制配對信息皆通過搖控器芯片LPC1549的序列號生成。一步步教你黑掉無人機:看完可千萬別下手-圖片8

基本上無線通訊架構(gòu)的過程,首先是搖控器先初始化芯片,然后初始化基站系統(tǒng)各個寄存器,寄存器里存入了唯一可以配對碼的信息。這個配對碼有五個字節(jié),寫入到寄存器里面,真正用到只有三個字節(jié),所以就有可能無線期劫持無人機。
無線通訊傳輸?shù)倪^程其實是非對稱傳輸,無人機遙控器發(fā)的信息跳頻傳輸給飛機,接收端也是跳頻接收,但是圖傳和下行通道是由飛機以定頻的方式發(fā)送,且這些跳頻算法都是通過代碼來實現(xiàn)的。
下圖即遙控器用于檢測飛機是否配對的算法檢測基帶芯片SPI地址0xE4、0xE5、0xE6進行比較。所以劫持一臺無人機,我們可以通過暴力破解的方式,用所有的密鑰空間進行離線的破解,找到配對碼,去控制無人機,在控中時候就可以動態(tài)改掉配對碼,讓這個無人機屬于你。
無人機反調(diào)對抗技術(shù)
我們也發(fā)現(xiàn)了一些硬件的反調(diào)技術(shù)和軟件的反調(diào)技術(shù),比如說用atmel芯片的安全位置1,可以阻止外置硬件仿真器的掛載調(diào)試,遙控器的LPC1549通過ADC的粒度檢測來檢測調(diào)試器,LightBridge用的stm32F103芯片通過remapSWD IO來使用swd調(diào)試接口失效,通過遙控器的硬件開關(guān)電路來阻止LPC1549芯片硬件仿真調(diào)試。一步步教你黑掉無人機:看完可千萬別下手-圖片9

最后還有很多工作還沒有來得及做,未來我們會更加深入的研究各個硬件模塊的功能hacking以及進行一些想法的驗證工作。

 
  • 本文由 米粒在線 發(fā)表于 2017年11月22日10:51:25
  • 轉(zhuǎn)載請務(wù)必保留本文鏈接:http://www.bjmhhq.com/76410.html
網(wǎng)站建設(shè)

給數(shù)據(jù)庫做分表處理

對于WordPress數(shù)據(jù)庫的posts文章表很大,怎么優(yōu)化是個頭疼的問題。想到了分表就想嘗試下。做個記錄。原創(chuàng)記錄文章,轉(zhuǎn)載請注明出處。優(yōu)化WordPress數(shù)據(jù)庫中的posts表,可以從以...
科技

三折秒殺!京東年貨節(jié)正式啟動

明天,1月10日,農(nóng)歷臘月初八,臘八節(jié)。今天,1月9日,20點,京東正式啟動了一年一度的年貨節(jié)大促活動,各種優(yōu)惠促銷紛紛開啟。京東官方也奉上了京東超級秒殺日必買清單,不少產(chǎn)品半價,有的...
生活道理

熬夜如何改變了我們的身體

熬夜的危害有很多,如:經(jīng)常感到疲勞,免疫力下降:人經(jīng)常熬夜造成的后遺癥,最嚴重的就是疲勞、精神不振;人體的免疫力也會跟著下降,感冒、胃腸感染、過敏等等自律神經(jīng)失調(diào)癥狀都會出現(xiàn)。 頭痛:熬夜的隔天,上班...

發(fā)表評論

匿名網(wǎng)友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
確定

拖動滑塊以完成驗證