360如何让特斯拉ModelS自动驾驶传感器出错?
扫描二维码
随时随地手机看文章
在上周关于Defcon的预告中,车云菌提到过将会有360的团队将会演示是如何通过欺骗,或者说是干扰传感器,来让车上的半自动驾驶系统做出错误的决定。
本周一,360汽车信息安全实验室负责人刘健皓与一同进行这项课题研究的浙江大学教授/博士生导师徐文渊、浙江大学闫琛一起,在Defcon上共同进行演示,介绍了是如何骗过特斯拉Model S上的超声波传感器、摄像头和毫米波雷达。
自动驾驶,包括现阶段的半自动驾驶,实现的过程都是通过安装在车辆上的各类传感器对车辆周围的环境进行感知,数据传到分析处理单元,控制单元根据分析处理单元发送的结果得到判断,进而向车辆的执行器发出命令,做出转向、加速、刹车等不同的命令。
他们的切入点,就是在第一步,传感器感知周围环境时,做了一些手脚,让传感器得到错误的数据。
如何干扰传感器?
不同的传感器干扰的方式自然不同。这次研究的三个传感器工作原理各不相同,咱们一个一个看。
1.超声波传感器
超声波传感器在车辆上的作用是探测障碍物,发出超声波之后,根据接收到回声的时间来判断与障碍物之间的距离。特斯拉的Model S的车身周围安装有12个超声波传感器用来探测车辆周围的障碍物,并且会在检测到有障碍物之后发出警告声,仪表盘上对应位置会有障碍物以及距离提示。如果开启了Autopilot,那么车辆还会在距离过近的时候自动刹车。
影响超声波传感器的方式很简单,一种是通过发出超声波的噪声,增加超声波传感器接收到回声的信噪比来影响它的判断;一种是发出相同频率的超声波给超声波传感器,让它误以为原本没有障碍物的地方是有障碍物的。
实现起来也很方便,只需要一个成本在60元人民币的干扰设备,在车辆的超声波传感器前方发出对应信号就可以了。从团队研究的结果来看,如果是通过噪声来干扰,那么会影响超声波对距离的判断,判断结果不精准,从而显示在仪表盘上的距离信息也是错误的;而如果是通过发出同频率的信号,那么会让传感器做出完全相反的判断。
干扰之后,传感器对距离判断错误如果是在人工驾驶状态下,那么会被仪表盘显示的错误信息而误导,而如果是在Autopilot的状态下,那么同样会被误导而做出错误判断,或者误以为系统不工作而发出警告声,必须由人类驾驶员接手。需要注意的是,如果是发出同频率信号来进行干扰,那么时间很重要,只有第一次让传感器接收到的超声波是有效的,能够产生影响。
传感器未能识别出障碍物当然,除此之外还有一个最简单的办法,使用一些可以吸声的材料,就可以吸收传感器发出的超声波,直接让其被罢工。
2.毫米波雷达
相比之下,对于毫米波雷达的破解难度要大很多。最直接的体现就在设备的成本上,据刘健皓透露,他们干扰毫米波雷达的设备成本在120万人民币。不过,出于安全考虑以及设备电源线长的限制,对于毫米波雷达的干扰并非是在车辆高速运行状态下实现的。
毫米波雷达的理论干扰距离就是毫米波的探测距离,不过无线毫米波发射装置很少且成本会更高,这也是对毫米波雷达的攻击会更加难以发生在现实中。
毫米波雷达的干扰设备上图就是干扰毫米波雷达的设备。刘健皓表示,通过电磁波的干扰,可以在前方无车的状态下让传感器认为有车,这个信息会同步显示到仪表盘上,如果距离足够近,报警装置还会提醒,同样,在Autopilot状态下,会自动刹车。同样,可以在前方有车的时候,让系统认为前方无车,而继续行驶。
干扰毫米波雷达后仪表盘的错误显示与超声波雷达相同的是,同样可以通过干扰设备来让系统进行错误的距离判断。而不论是超声波雷达还是毫米波雷达的距离判断,从实际的开车场景来说,只有微小距离的错误判断会更容易给人以误导,比如在倒车或者停车入位的时候,更多的干扰,是对于Autopilot这套系统。
如果传感器被严重干扰,在Autopilot下,系统同样会做出「传感器不能正常工作」的判断,从而无法启动Autopilot,要求进入人工状态。