本文授权转载自:电动星球News,作者: 毓肥
一周之前,特斯拉 Autopilot 再次被黑客全面攻陷。
全面攻陷,顾名思义,就是车辆最核心的驾驶功能,都被没有车钥匙的黑客,通过一部电脑掌控了。甚至于,这一次的破解,已经实现了用一个 XBOX 手柄即可操控 Autopilot。
这一次的破解,依然来自腾讯安全旗下的科恩实验室——之所以说依然,是因为科恩实验室同时还是世界上第一个成功破解 Model S/X Autopilot的团队——这一次破解的固件版本是 2018.6.1,理论上在这个固件版本之前的特斯拉车型都有可能中招,但特斯拉去年其实已经第一时间修复了这个漏洞。
不过,科恩实验室这一次已经取得了足够大的进步——2016 年 9 月他们第一次破解 Model S/X 的时候,固件版本远要比现在落后官方进度很多。
所以,马斯克也特意发了条推特,称赞中国黑客团队的能力——Solid Work(干的不错)。
虽然漏洞早已修复,但今天的硬核时间,我们还是可以探讨一下,破解一辆智能电动汽车标杆,到底要运用什么基本原理。
电动星球注:本文写作素材来源于 1 号科恩实验室发布的安全白皮书,大家可以在公众号后台回复“科恩报告”下载英文原文,我也不知道为什么一个中国团队没有中文报告…
一张图片,怎么就逼疯了 Model S 的雨刮?
催眠要由浅入深,我们先从不需要太多黑客知识的部分讲起。
上面的视频里,第一项破解测试是针对 Autopilot 天气识别功能的。在视频中,当屏幕上出现一张特定的图片时,被测试的 Model S 75 即使处于完全晴朗的室内环境中,也错误地开启了雨刮。
这张图片看上去非常印象派,可为什么就能破坏特斯拉科学至上的摄像头呢?
我们得回到最初的起点——特斯拉前摄像头获取的图像,是如何转化为开启雨刮的信号的?
事实上,特斯拉把自动雨刮这一功能在前置摄像头的功能权重里面踢得相当高——甚至达到了第一高。前置摄像头在获取前方图像之后,Autopilot ECU 会第一时间判断“前面是不是在下雨,要不要开启雨刮”,第二时间才会判断“前面是不是有别的情况,要不要刹车/减速/继续走”。
科恩实验室提取了 2018.6.1 固件里面有关自动雨刮的操作代码,代码明确显示“判断是否下雨”,是 ECU 获取前摄像头图像信息之后的第一任务,看得懂的可以看代码,看不懂的可以跳到下一段:
在接收到判断天气状况的要求之后,ECU 会基于专门搭建的深度计算模型——对,你没听错,特斯拉专门给“会不会下雨”搭建了一个额外的模型——开始预测开启雨刮的必要性,一旦必要性超过阈值,就会自动打开雨刮。
总结一下就是,特斯拉自动雨刮的开启,实际上是依赖前置摄像头的图像捕捉,以及深度学习引擎的预测所达成的。想要扰乱自动雨刮的功能,就必须要从两者其中一个下手。
科恩实验室选择了扰乱特斯拉的深度学习引擎。
这里要提及一个深度学习领域的概念——Adversarial Examples,对抗样本。
我们曾经在上上上周的硬核时间讲过(对,我上周放了一期鸽子~),深度学习的过程,其实就是通过比较不同场景对判断的影响程度,模仿人类做判断的过程。人类做出判断的对错可以被外界条件干扰,那么深度学习自然也可以,对抗样本就是这么出现的。
拿谷歌第一次发表的对抗样本做例子(科恩实验室同样在报告中引用了这个例子):在给谷歌的图片搜索引擎输入一张正常熊猫图片的时候,搜索引擎认为这张图片是熊猫的可信度为 57.7%,于是正常地将这张图片识别为“熊猫”。
可是在对这张熊猫图片的图层加入干扰信息之后,在人类眼前显示出来的图片依然是一只熊猫,但是搜索引擎却判断出这张图片有99.3%的可能是一只长臂猿,于是给你推荐了一堆猴子。
同理,科恩实验室在对一张地下停车场的图片加入干扰信息之后,尽管从特斯拉系统中调取出来的图像没有任何变化,但是预测分支的结果显示,下雨的可能性已经从 1.13%狂飙至 82.04%——你的雨刮要开始跳舞了。
如果看到这里你已经开始害怕某一天黑客会把你的雨刮停掉,让你在雨中失去视野出车祸,我可以给你下个定心丸——因为在行驶过程中,前置摄像头得到的画面是动态的,也就意味着黑客几乎无法实时控制图片变量,只能用穷举法——不断输入相同的干扰信息,直到某一个瞬间成功为止。
但这意味着黑客需要一直和你的车保持相当的距离,有能力破解 Autopilot 的黑客,估计不会愿意付出这么大成本对付单一的个人。
同样的对抗样本原理,被应用到了视频的第二部分:在测试道路某一个位置布下白点之后,开启车道保持功能的 Autopilot 作出了错误的决策,直接把车辆送进了错误的车道。
特斯拉其实也针对车道保持功能设计了专门的深度学习模型,在这里不作展开,只谈疗效。
科恩实验室目前通过添加干扰图片能做到的,已经包括消除车道、增加车道两种效果。也就是说,在没有明确画线的地方,可以让你的 Autopilot 误以为前方有画线,而在有明确划线的地方,可以让 Autopilot 觉得自己像是来到了一望无际的大草原。
特斯拉官方对这两个漏洞的回应是,由于针对摄像头实时信息添加干扰的可能性几乎不存在,所以这两个漏洞不会修补。
先别害怕,实际上这两个漏洞,并不能严格意义上成为漏洞,而应该是深度学习引擎的“思维盲区”,即使特斯拉没有针对对抗样本优化深度学习模型,随着固件的不断升级,Autopilot 软件的判断能力也会不断提升,对抗的成本也会不断加大,直至不会有人挑战深度学习的准确性。
黑客遥控你的特斯拉就像打游戏一样
在科恩实验室破解特斯拉 Model S 视频的最后一部分,技术人员演示了如何用 XBOX 手柄强行干预开启 Autopilot 中的 Model S 75。整个过程当然没有玩现实版 GTA5 的刺激,更多的应该是特斯拉车主们的冷汗。
这个也是破解特斯拉车辆的最终关卡——夺取车辆最高控制权,通俗点讲就是ROOT。
科恩实验室用了一张图来解释手柄和控制车辆行驶之间的关系,相当简单,但也相当程序员:
第一眼看去,这张图似乎在说:能够用手柄开特斯拉,是因为特斯拉 AP2.5 硬件给了黑客机会,特斯拉黑和自动驾驶黑们可以高潮了。但实际上,获取方向盘最高权限的秘密,来自于图片右边的 EPAS——Electric P
另外,EPAS 最初是由铃木在 1988 年率先在量产车 Cervo 上应用的, 1990 年本田 NSX 跟上,随即开启了电动助力的时代,所以要怪应该怪铃木。
那么黑客们是怎么通过 EPAS 控制车辆行驶的呢?
我们还是要回到最初的起点——先来看一看 Autopilot 硬件 2.5 的构成,如下图所示:
要理解今天文章的这一部分,我们只需要将眼光集中在那个叫做 LB 的模块上。LB 全称是 Lizard Brain(蜥蜴脑),是当代汽车负责协调 CAN 总线与汽车其他 ECU 工作的协处理芯片。
作为可能是最照顾读者感受的未来汽车媒体,这里提一嘴 CAN 总线究竟是个啥:CAN 是控制器局域网络 Controller Area Network 的简称,是博世开发的国际标准(ISO 11898),应用最广泛的现场总线之一,CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。
简单点说,CAN 总线就是人体内连接各个部位的神经,而LB就是神经的交通中枢(不是处理中枢哦)。
在特斯拉的车辆里,EPAS 的 CAN 总线与底盘的 CAN 总线封装在一起,并独立于 Autopilot 硬件之外,也就是说,即使获得了 Autopilot 的控制权,黑客也还是要继续攻破单独的 EPAS 总线,才能获得车辆的控制权,不然就只能是单纯的把车辆搞坏。
根据以上的代码,如果想要攻入 EPAS 总线,黑客就必须通过 LB 的总线,与 EPAS 取得联系。通过 AP 硬件内的 APE2LB_CAN 总线,黑客可以搭建起 AP 硬件和 LB 的桥梁,进而掌握 EPAS 的控制权。
还有一点:在特斯拉的车辆结构中,当车辆处于 ACC 或者 APC(自动泊车)模式时,掌握转向大权的,是DSCM(Das Steering Control Message,目前没有官方的翻译,大家有道/百度/字典一下吧)。
由于篇幅有限,就直接上结果吧,科恩实验室也同样破解了特斯拉的 DSCM,目前能够破解的程度是:
当车辆完全停车的时候,转向系统可以被全方位接管。
当车辆处于 ACC 模式时,转向系统可以没有任何速度限制地被遥控。
当车辆处于倒挡模式时,AP 硬件会将黑客的操作视为 APC 模式,可以接管,但速度会限制在 8 公里的时速。
不同于针对深度学习的对抗样本攻击,科恩实验室在攻破漏洞的第一时间知会了特斯拉,特斯拉也表示今年的系统更新已经修补了这个漏洞。
扯远一点:科恩实验室为什么这么牛 X?
早在 3 年前,科恩实验室就已经成为了世界上第一个入侵特斯拉车载信息系统的安全团队:包括在停车的过程中控制汽车遮阳板,信号灯,座椅,显示屏,门锁,挡风玻璃雨刷器,反光镜,汽车后备箱,甚至在行车过程中控制刹车。
2018 年 5 月,科恩实验室成功找出了宝马车载信息系统的21个漏洞,并由此获得了宝马颁发的宝马集团数字化及IT研发技术奖。
更有意思的是,2018 年 6 月 15 日,科恩实验室帮助修复了360安全浏览器的一个严重漏洞,而就在 6 月 10 日,360 阿尔法安全团队也帮助科恩实验室修复了会影响腾讯旗下软件产品的 Chrome 内核漏洞。
蟹老板曾经采访过科恩实验室的老大吕一平,以及两位外国传奇黑客 Miller 和 Valasek,想看采访全文的可以后台回复“科恩”查看。
虽然不是科恩的成员,但是Miller 和 Valasek 的事迹相当有代表性。
他俩曾经在 2015 年利用克莱斯勒 Uconnect 车载系统的漏洞重新刷入了带有病毒的固件,并向 CAN 总线发送指令控制汽车,最终迫使菲亚特克莱斯勒集团在全球召回了 140 万辆车进行返厂升级。
你看,OTA 的优势就体现出来了吧~
至于吕一平,只说一句:2016 年科恩实验室破解特斯拉那件事是他干的。
不过有一点很遗憾,吕一平作为世界上第一个破解 Autopilot 的团队主管,却偏偏错过了特斯拉要送出一辆 Model 3 和 90 万美元的 2019 届 Pwn2Own(这个大赛号称黑客界的奥林匹克,详情可以点击公众号菜单,进入特吹时间栏目查看)。
可能是想要继续证明自己是破解特斯拉的行家,尽管错过了 Model 3,科恩实验室还是在 4 月的智能汽车界打出了一片天。
写到这里你会以为这是一篇吹科恩实验室的软文,先不说一群国际顶级的白帽黑客需不需要吹,最厉害的其实还是特斯拉:因为目前还没有黑客破解的速度追得上他们修补漏洞、更新系统的速度。
(完)