浅谈自动驾驶系统安全设计思路
前两期我们简单探讨了CPS的概念、CPS可能遭受的网络攻击及其对国家安全造成的影响;然后介绍了CPS在应对安全威胁时需要关注的重点。由于CPS是一个具有相似网络和业务架构的抽象概念,而不同行业的CPS又具有一些行业特定的属性和风险,本文以自动驾驶系统为研究对象,介绍一下自动驾驶系统安全设计思路。
一、 简述
自动驾驶系统的复杂性导致其面临非常多的攻击面(如图1),这个自动驾驶系统的安全设计带来了极大的挑战。
图1 自动驾驶系统的复杂性导致众多的攻击面
商业或工业系统的安全设计总是从系统的安全目标出发,并将系统的管理和人员方面的因素考虑在内。实际上,在现实世界的情况下,安全需求/目标总是从人开始,只有当人们明白什么是利害攸关的时候,安全才有意义。在这方面,不仅要考虑安全攻击的成本,还要考虑实现安全控制的成本,以及由于规避风险的设计而限制业务操作的机会成本。因此,系统安全被建模为一个社会技术系统,其中技术设计的决策受到人为因素的严重影响。在自动驾驶的背景下,首要的安全目标是自治系统的功能安全(safety)的弹性。人命关天,自动驾驶汽车的功能安全在受到网络攻击时不会受到损害,这一点至关重要。最终,自动驾驶汽车需要采用最高级别的网络安全措施来保护功能安全系统。对于负责碰撞检测、巡航控制和防抱死制动等功能来说尤其如此,因为这些功能的任何入侵都可能导致伤害,甚至生命损失。在研究社会技术系统的网络安全时,确定人们参与系统生命周期安全考虑的步骤和过程是有用的。人/社会/环境因素通常是脆弱性的一些主要来源,这些因素因系统而异。图2展示了一个参考的抽象的网络安全框架。
图2 层次化安全框架模型
在设计复杂系统的安全性时,通常涉及以下关键步骤:
1、识别系统安全目标和要求;
-
攻击目标:对于给定的CPS,攻击者试图破坏一个或多个安全目标。例如,自动驾驶汽车的完整性破坏意味着攻击者有可能接管车辆的控制权。又如,攻击者通过控制自动驾驶汽车与任何第三方攻击目标:对于给定的CPS,攻击者试图破坏一个或多个安全目标。例如,自动驾驶汽车的完整性破坏意味着攻击者有可能接管车辆的控制权。又如,攻击者通过控制自动驾驶汽车与任何第三方系统之间的通信,就能够破坏通信通道的保密性和完整性,从而有可能操纵自动驾驶汽车的安全相关控制功能。
-
通信能力:对抗性模型主要由攻击者的整体通信能力来定义,例如拦截通过CPS的不同通信通道传输的消息,这决定了攻击者可以分析哪些消息以及向系统注入恶意伪造消息的能力。在自动驾驶汽车的环境中,这可以是通过车辆内部CAN总线发送的命令,也可以是作为V2X通信一部分传输的消息。
2、评估待保护系统的价值和敏感性;
3、估算攻击者的能力
即使在获得了CPS的访问权后,攻击者也需要通过破坏可信网络来执行控制或破坏CPS的任务。这些通常需要对密码进行密码分析、对应用程序协议消息进行解码以及对安全关键参数进行逆向工程。攻击者需要在线或离线有效地执行这些任务,通常需要相当大的计算能力。在自动驾驶安全环境中,当前行业还没有定义良好的对抗模型,使得安全设计人员的工作更加困难。
4、根据安全要求制定安全策略安全架构(本文第二节介绍)
5、设计与系统的敏感性和可能面临的风险相适应的安全控制(本文第三节介绍)。
二、自动驾驶系统的安全模型
为了应对这种设计的复杂性,安全设计人员需要从构建信任模型开始。
信任模型是所有实际安全设计的基础,因为它奠定了谁可以信任的安全基础,这反过来又允许用户确定什么可以信任。一个好的安全设计总是从一个现实实用的信任模型出发,其他的加密机制和安全协议都是在这个信任模型的基础上建立和验证的
图3自动驾驶系统安全设计的高阶模型
在该模型中,我们将自动驾驶系统的攻击面定义为三层:
-
核心层:由自动驾驶系统的物理边界定义; 通过物理安全来加强其边界
-
接口层(自动驾驶系统网关层):其特征是自动驾驶系统与外部世界之间的连接接口的集合; 自动驾驶汽车网关层由多种形式的通信链路组成,包括蓝牙、WiFi、ZigBee等,有助于建立和维护与外部车辆和基础设施的通信。这一层定义了网络安全边界,由网络访问控制机制强制执行,以防止对自动驾驶汽车内部功能的未经授权的访问。这一层依赖于核心层的假定物理安全性,因此,通过物理手段对这一层内的车辆造成的任何损害都不会被认为是由于网络攻击造成的自动驾驶汽车安全隐患。
-
基础设施层:由所有受自动驾驶汽车信任并与之相连的基础设施和后端模块组成。最外层包括所有与自动驾驶汽车交互的外部系统,例如车辆、交通基础设施和基于云的导航服务提供商。请注意,并非所有这些外部系统都可以预先归类为受信任的一方。因此,必须在这一层采用动态信任管理方法。当受信任的组件通信恶意数据包(例如,软件更新期间的恶意软件)或当不受信任的组件能够绕过安全网关(例如,通过破坏车辆SIM卡)时,就会产生威胁。请注意,如果安全边界被破坏,自动驾驶系统不一定会成为攻击者的牺牲品。例如,奥迪A8的网络布局为无线基础设施通过安全网关与内部自动驾驶网络隔离,因此,可能会发生网络安全事件,但如果安全相关功能无法从无线网关访问,则功能安全性不会受到损害。
三、自动驾驶系统安全控制设计
安全控制的设计从建立安全边界开始,然后是信任根(ROT)定义,然后是信任基础设施的设计,然后再分解到具体安全场景的设计
2、建立信任根(Root of Trust)
为了与自动驾驶系统内部和外部的其他CPS/IoT设备保持可信通信,必须建立ROT。ROT将作为安全密钥交换和密钥管理的基础。传统上,可以建立可信第三方(TTP)来实现密钥交换和实体身份验证。TTP将扮演确保加密密钥与密钥所有者真实身份相关联的角色。此外,还假定自动驾驶系统具有安全的存储密钥的环境。
一般来说,尽管可以部署一些防篡改硬件来在物理保护的环境中存储加密密钥,但密钥和设备标识之间的关联仍然是一个安全挑战。
-
HSM:硬件安全模块(HSM)是专用的加密处理器,可以管理和保护您的数字密钥。这些是防篡改的物理设备,可以执行身份验证、加密、密钥交换、解密等。设计良好的HSM不会受到病毒、未经授权的访问或恶意软件的任何潜在破坏。硬件安全模块为您提供受限的网络访问,通常被认为几乎不可能受到损害。因此,这些设备通常被视为信任根。
-
PUF:最近,由于部署和管理物联网传感器和执行器等远程设备的成本和运营开销,物理不可克隆功能(PUF)的使用引起了物联网安全研究人员的注意。从本质上讲,PUF允许直接从设备本身的硅特性中建立设备身份,从而缓解了信任管理的基础设备身份管理问题。因此,ROT可以通过基于PUF的数字身份验证和签名生成来实现;或者一个共享密钥的公钥协议;或者拥有一组预分布的密钥。
3、可信基础设施
可在自动驾驶系统制造和自动驾驶系统生命周期中商定可信基础设施。自动驾驶系统设计公司需要定期为最终用户提供安全软件补丁、安全启动和防盗等方面的支持。这可以通过将某些方标记为受信任方来实现。智能手机行业就是一个突出的例子,已经建立了许多基于PKI的全面可信基础设施,以实现设备生命周期管理、系统软件升级、应用软件更新以及防止设备盗窃。
此外,在这种情况下,通过确保安全的供应链管理,自动驾驶系统设计可以进一步得到保障,这也是集成电路(IC)供应链中常见且反复出现的主题。具体来说,在自动驾驶系统中植入木马硬件是一个需要考虑的主要威胁。
4、信任管理
对于给定自动驾驶系统环境中的V2V/V2I交互,必须严格维护信任概念,并动态建立信任级别。例如,V2V通信应该基于通信车辆之间适当的信任级别。否则,V2V通信不应用于支持安全相关功能等关键操作,因为V2V通信中的任何恶意(或受损)参与者都会立即将自动驾驶汽车集群暴露于连锁攻击中。因此,必须对自动驾驶系统网络中的信任进行动态管理。另一方面,对于车载软件更新,必须从可信来源获取补丁。虽然这种可信的通信可以建立在需要的基础上,但信任的概念必须建立在一些已建立的ROT上。
5、安全场景分解设计
上一期的文章中,我们介绍了CPS系统主要关注的安全场景,同样可以映射到自动驾驶系统的安全场景的设计上。
CPS安全关注的场景 |
1. 控制装置、执行器或传感器的安全性 |
2. 网络分段、隔离或屏蔽复杂性 |
3. 在已部署设备上运行安全性的尺寸和有限的计算能力 |
4. 资源受限设备的身份管理和认证 |
5. 新系统采用安全设计(Security by design),而不是保护和集成几十年前安装的系统 |
6. 保护通信和遥测数据 |
7. 高度监管行业的法规和合规 |
8. 供应链安全 |
9. 新的攻击载体不断发展,如无人机上安装的信号干扰器、GPS干扰和欺骗,以及自动驾驶汽车的对象欺骗 |
后续我们将针对表格中每个场景再深入探讨自动驾驶的安全设计,敬请关注。
END
原文始发于微信公众号(汽车信息安全):青骥洞察 l 信息物理系统(CPS)安全洞察分析-第三篇
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论