Skip to content

zL1nX/DroneSecurityResearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

无人机安全研究

本repo用于记录本人和Yuhang Ji在LoCCS展开的短暂的无人机安全研究内容,以供参考 按照时间顺序记录并归档

无人机安全调研

  • 无人机安全(drone security、UAV security)究竟在研究什么?研究意义又是什么?
    • 与其说是在研究无人机,不如说是在研究一个复杂终端,这个复杂终端包含通信、计算、存储、视觉、运动等多功能;
    • 研究意义在于,无人机的出现扩大了原有攻击的范围,假如攻击者拥有对一台无人机的完全控制权,则能将侧信道、中间人等传统攻击方法的适用条件进一步放宽;同时,无人机在军用民用等领域都有着愈发广泛的用途;
  • 无人机安全层次如下图所示(该幻灯片为本人制作,PDF版本可见repo中):
    • image-20210305093922030
    • 因此,对于一个无人机系统,有多个层次可以着手研究。
  • 本研究主要希望了解无人机中的密码协议与认证系统,研究是否能通过各种攻击手段获取系统密钥,从而达到远程劫持或干扰正常无人机飞行的目的。

无人机采购

  • 由于目前DJI(大疆)基本占据了无人机消费市场的大部分份额,而且作为代表企业,会比厂商更加重视安全应用,从而会给予我们更多的研究机会;

  • 目前,大疆在日常消费领域的主流机型就是 Mavic与Phantom,经过多次了解调研后,得到最终的无人机采购清单:

    • image-20210305100338033
    • 采购资金由LoCCS实验室提供,采购时参考了蚂蚁简云定、阿里谢君(vessial)两位老师的宝贵建议。
  • 《芜 湖 飞 机 场》

    • image-20210305101933502

学习他人成果

阿里谢君:如何黑掉无人机

  • 阿里的谢君(vessial)在2017年针对大疆Phantom v4 1.0进行过完整的分析与测试,ppt见repo
  • 在该工作中,谢君首先对无人机进行了拆解,并对飞控、主板、电池等模块进行了深入分析,涉及的技术栈为:
    • 信息搜集
    • 电路分析和焊接
    • 固件提取
    • 二进制文件逆向与分析
    • 系统提权
    • 无线信号处理
    • 板上协议分析
  • 最终,谢君老师的研究成果主要为:
    • 明确Phantom v4 1.0(含遥控器)中的主要部件及芯片型号:32个子模块,飞控及SoC型号
    • 对无人机飞行器系统提权
    • 提取遥控器MCU固件,发现飞行器与遥控器之间使用5字节的配对码进行识别
    • 无人机电池模块存在漏洞
    • 无人机板内协议分析:DUML,即飞行器不同模块之间的通信协议

论文搜集与学习

  • SecAuthUAV: A Novel Authentication Scheme for UAV-Ground Station and UAV-UAV Communication

  • Penetration testing a civilian drone

  • DJI ANDROID GO 4 APPLICATION SECURITY ANALYSIS

  • Security Analysis of DJI Phantom 3 Standard

  • Security Vulnerabilities of Unmanned Aerial Vehicles and Countermeasures: An Experimental Study

  • Addressing Security Concerns with Chinese Drones and DJI Products

    无人机安全领域的paper多集中在对无人机的识别、检测、干扰等,鲜有深入无人机系统内部进行测试和实验的工作

真机测试与实验

拆解Phantom v4 2.0

  • 需提前(淘宝)购买相应的拆解工具套装,youtube上有若干拆解视频,需提前了解清楚内部的大致结构,防止拆坏
  • 几点拆解注意事项:
    • 拆解前以及拆解时对各部分进行拍照留存
    • 注意螺旋桨电机以及下方的塑料灯罩是可以取下的,取下后才能打开外壳
    • 打开外壳时需要一些蛮力,但有翘片辅助最好
    • 小心各个地方的连接处被折断
    • 拆解内部电路板时,小心将串口与线缆毁坏
    • 注意对螺丝、线缆等部件的分类存储,若后续需拼回无人机并上电,则更需仔细注意
    • 遥控器拆解时注意隐藏螺丝的位置
  • 拆解结果:
    • image-20210305160417096
    • image-20210305160426407
    • image-20210305160432447
    • 在遥控器内有一些隐藏区域,其中包含了通信模块

分析无人机内部结构

  • 之后的工作就是寻找每个电路板上的芯片型号,分析该电路板的功能;若查找不到任何相关信息,说明该芯片是DJI定制的新型芯片;
  • 最终,得到分析结果如下图:
    • image-20210305160722964

DJI系统安全分析

  • 既然已对无人机的内部结构有了明确认识,现在就应对该系统进行分析和测试,下面是本人和Yuhang Ji进行的几次尝试

DJI固件提取

  • 参考vessial老师的成果,包含飞行器与遥控器配对认证的代码是在遥控器的MCU中,该MCU是NXP LPC 1549,遂展开分析
  • 阅读芯片手册后,发现从芯片的SWD接口中能直接读出固件,因此我们展开了此方面的尝试

闭环测试

  • 由于可以采购到该芯片的官方开发板,因此可现在开发板上尝试将固件编译-提取-分析这条路走一遍
  • 开发板型号为OMU13056,官方配套IDE为MXUPresso;提取固件时需要jlink debugger(淘宝购买),上位软件为jlink
    • jlink debugger
    • image-20210305161715233
  • 编译IDE自带示例为固件烧写入开发板,根据芯片手册中SWD的工作流程和配置,连接后可提取得到烧写入的二进制文件
  • 拖入IDA并学习Arm反汇编,可逐步恢复出其中逻辑
  • 因此,该闭环测试说明,整个工作流程和环境是没问题的

提取环境

  • 下面对真正的芯片进行提取。首先需用热风枪将MCU芯片吹下(学习相关操作),并买入芯片测试座以暴露出各个引脚(注意封装格式)
  • 但此时套用之前的流程并不能分析,因为开发板中实现了能驱动SWD的最小电路,但裸芯片并未实现,因此需根据芯片手册自行焊接一个最小工作电路;
  • image-20210305162418765
  • 焊接、飞线等完成后,得到了一个芯片的最小工作电路(中间是芯片的测试座)
    • image-20210305185839074
  • 之后,就能用原来的一套jlink debugger按引脚连接,并尝试读取
  • 然而,反复测试后发现,DJI遥控器的芯片施加了读保护,直接connect failed(因为我们对另外购买的新芯片进行测试,发现可成功连接,即这些工作电路是正常的)
    • 此时,在原来的开发板上添加一读保护字段后再进行闭环测试,同样会发现connect failed,这进一步验证了以上结论

因此,到这步我们发现,DJI将自己的芯片做了很好的保护,基本无法用这种方法获得固件

vessial老师在2017年实验时就已发现飞控芯片加了读保护,但遥控器并没有;现在看来,DJI已经做了全套保护

至于能否从网络侧(如截获固件更新时的流量)等手段提取固件尚不可知,但由于DJI无人机系统过于复杂,想拿到底层芯片的内容,应该是相当困难的

DJI 固件分析

但该部分之所以无法推进可能由于我们的二进制分析能力较弱,其中也许还有很多有价值的信息未被挖掘

DJI Root

  • 最终,只能寄希望于将无人机系统root掉,并拿到shell,以动态分析系统内进程了
  • root方法也是按照比较主流的“提取-修改-烧回-上电”的流程,详细步骤可参见vessial老师的ppt
  • 注意:
    • 吹EMCP芯片时,注意该芯片为BGA封装,需提前了解BGA封装、焊接的细节(如锡球、焊网等)
    • 先对类似BGA芯片进行实验再尝试板上芯片
  • 然而,这些BGA封装的芯片在与电路板接触时,芯片四周被封上了一层透明胶状物,导致焊膏无法渗入,从而无法软化芯片引脚
  • 经多次尝试后,依然无法将EMCP芯片吹下,推测根本原因可能就是DJI在BGA封装芯片下添加的这一层保护物

一些有用的资源

阶段性小结

  • DJI基本上将2017年谢君老师成功利用的弱点都封堵干净了,现在难以对这个实际黑盒对象展开深入分析
    • 也许华强北或者其他专业分析大神,能解决我们上述的问题
  • 接下来如果有人继续分析,个人认为还是两条路
    • 大力出奇迹:继续尝试root,或者分析纷杂绕乱的二进制文件
    • 四两拨千斤:从通信、app等角度,推断或截取某些安全敏感数据
  • 个人认为现在DJI安全研究,就像在吃椰子,也许真正的安全会协议非常简单。

目前,由于DJI在无人机上设置的层层阻碍,导致实验难以进行。因此该研究计划将暂时中止,但如果有其他尝试机会或者有其他资源,也许会继续进行该项目。

The Show Will Go On

  • image-20210305165555481

About

Record and backup for my drone research program

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published