如何设定自动驾驶车型的安全优先级?

· Apr 26, 2019

本文转载自知乎「通用汽车中国」,引用文章编译自「C&C 组合」文章。

 

*2015 年,Chris Valasek 和 Charlie Miller(自称 C&C 组合)成功入侵某友商车型,在黑客圈一战成名。后来他们被通用汽车旗下自动驾驶技术公司 Cruise 收入麾下,主导建立了 Cruise 的安全团队。最近,C&C 组合在 Medium.com 发布博文,透露了他们设定自动驾驶车型安全优先级的方法和思路。

图片1

以下文章编译自 C&C 组合文章 How to Prioritize Self-Driving Car Security(2019 年 4 月 18 日)@Medium.com,感兴趣的知友可以戳链接读原文。

| 作者:C&C 组合

加入 Cruise 已经一年半了,这段时间我们的首要任务就是打造有史以来最安全的车型(注:这里的「安全」指的是系统安全,英文为 secure)。常常有人问我们关于自动驾驶软件和硬件的 bug、漏洞和攻击问题。未来的自动驾驶车型会搭载数百万行代码,并且没有方向盘和踏板,因此,越来越多的人开始好奇我们是如何设定自动驾驶安全项目优先级的。

简而言之:我们构建了一套 「现实威胁模型 Realistic Threat Model」。

我们的专长是实施远程攻击并获取车辆系统的物理控制权。基于自身经验加上借鉴其他团队的研究成果,我们为 Cruise 自动驾驶车型设计了一套防护策略,战略性地利用现有资源,有针对性地提升关键攻击难度。以下我们将举例详述——

考量不同攻击类型

我们时常收到人们转发的关于 GPS 欺骗干扰(GPS spoofing)或激光雷达欺骗干扰(LIDAR spoofing)的文章,并询问我们如何确保 Cruise 自动驾驶车型能够抵御这类攻击。其中不少文章认为由于自动驾驶车型使用了 GPS 和激光雷达等技术,所以自然成为了这类攻击的高风险对象,可能导致其被截停甚至发生碰撞事故。

当我们回复说这些类型的攻击其实并非我们当下的工作重点时,人们不免感到有些意外和震惊。当然,从长远来看,考虑到攻击方式的不断演进,我们也会把这类攻击列入考虑范围。但就目前而言,这种性质的攻击并不会影响我们车辆系统的正常运行。想要详细了解其原因的知友可以参考我们写的 Black Hat whitepaper

所以,我们究竟如何判断安全项目的优先级别呢? 首先,我们会通盘考虑以下几个问题:

  • 哪些攻击类型的 影响和规模级别 最高?
  • 执行这些攻击的 难易程度 如何?
  • 不同攻击类型可能对自动驾驶车辆的 物理控制 产生何种影响?

基于这一系列考量,我们判断当下的工作重点应该放在那些可能获取车辆物理控制权的远程攻击上。更具体来说,我们会着重防御那些可以远距离实施的攻击类型,因为它们的影响范围可能扩展到整个车队。

在详述我们的防御技术前,先简单介绍一下我们的车型。

 

Cruise 自动驾驶车型与外界的沟通方式

每辆 Cruise 自动驾驶汽车都会配备一个通信电子控制单元(electronic control unit 简称 ECU),负责与内部的基础设施实现通信。该通信电子控制单元 ECU 同时也与车辆的主计算机模块保持通信,该计算机模块就像是自动驾驶车型的「大脑」。

对于安全从业者来说,这样的结构关系看上去可能有点惊人,但我们设计的 多层级安全控制机制 能够有效降低持续入侵和获取车辆物理控制权的可能性。

在网络层面,我们使用专有的 APNs 和 IPSec 通道。并且,我的自动驾驶系统底层架构可以确保即便外部攻击者能够看到我们的信息流,也仍然可以保证车辆处于安全状态。

图片2

Cruise 自动驾驶车型的安全防护系统图示

主动防御

首先,我们会确保车辆只建立出站链接(Outbound connections),也就是说 Cruise 自动驾驶系统只会主动发起与外界建立链接,而不会对入站链接(Inbound connections)做出响应。同时,我们还移除了包括蓝牙和 Wi-Fi 在内可能成为潜在攻击对象的车载功能。

通过减少可能遭受攻击的代码数量,我们消除了对潜在恶意入站数据代码固有风险的担忧,提升了自动驾驶车型的整体安全等级。如果后期在投放应用时仍需搭载蓝牙和 Wi-Fi,我们会为这些功能构建独立的网络和设备。

除此之外,我们采用的安全启动(和更新)机制以及只读文件系统能够确保通信设备抵御那些成功发起的外部攻击。过往的黑客职业生涯(专黑那些看起来功不可破的系统)教会我们一件事——不可能完全消除网联设备受侵入的风险。然而,当侵入事件发生时,我们必须确保入侵者无法实现持续性攻击(persistence)(并且我们有能力及时侦测到入侵事件发生,这个话题我们会在其他文章中跟大家分享)。

那么, 如何保障自动驾驶车型主计算机模块和车载通信单元之间的通信安全呢?

这个是个好问题。总的来说,自动驾驶车型的主计算机模块默认不信任所有通信电子控制单元(ECU),仅向其开放最基础的权限。即便是我们自己的通信设备,主计算机模块也不允许来自它们的入站通信(inbound communication)。二者间的通信将全部由自动驾驶车型的主计算机模块发起,由此确保通信设备难以向控制车辆的关键模块发出单边指令。

自动驾驶车型的安全不能一刀切

帮助自动驾驶车型抵御外界入侵远不止设置一个防火墙这么简单。

事实上,我们会通过分层策略(layered approach)确保以下两件事:

  • 通过蜂窝网络远程侵入我们的车型是及其困难的;
  • 即便发生侵入事件,攻击者也难以获取车辆的实际控制权。

任何针对 Cruise 自动驾驶车型的攻击都必须绕过我们构建的多层防御机制。我们将在下一篇博文中继续跟大家分享提升车型安全状况并抵御黑客入侵的更多措施。

0


Related Posts 相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注