自动驾驶汽车(AVs),即无人驾驶汽车,是对安全要求极高的信息物理系统(CPS),属于复杂的工程系统,它将嵌入式计算技术融入物理现象之中。功能安全与网络安全是信息物理系统的两个关键属性,它们有着共同的目标:保护系统免受不良事件的影响,其中功能安全针对的是失效,网络安全针对的是蓄意攻击。
确保自动驾驶汽车的安全,即减少交通事故数量以防止人员受伤和挽救生命,是自动驾驶汽车开发中的首要任务。功能安全与网络安全相互依存(例如,网络安全攻击可能导致功能安全失效,或者网络安全对策可能削弱信息物理系统的功能安全,反之亦然),因此在系统开发的早期阶段就必须协调二者,以确保达到所需的保护水平。
尽管与其他信息物理系统(如发电厂或水处理系统)相比,自动驾驶汽车可能被认为是规模较小和/或复杂程度较低的系统,但它们面临一些独特的挑战,在分析其功能安全与网络安全问题时必须加以考虑。
首先,国际标准SAE J3016描述了从无驾驶自动化(0级)到完全自动驾驶(5级)的六个不同驾驶自动化等级。这些等级规定了在特定环境条件下,由谁(人类驾驶员或自动化系统)执行驾驶任务并监测驾驶环境。因此,自动驾驶汽车的功能安全与网络安全取决于驾驶自动化等级和环境条件。
其次,自动驾驶汽车领域相对较新,目前尚无针对自动驾驶汽车功能安全与网络安全的国际标准。当前,描述道路车辆功能安全的ISO 26262标准被用于自动驾驶汽车的功能安全分析。然而,正如一些研究指出的,该标准对于自动驾驶汽车而言并不足够。ISO 26262分别处理车辆每个功能或部件的功能安全问题,因为驾驶员负责部件之外的所有事务。然而,在自动驾驶汽车中,尤其是在高度自动化等级下,车辆内没有驾驶员时,必须始终确保安全。因此,自动驾驶汽车的危害分析应具有更广泛的范围,并且应综合分析其功能。Warg等人提出了一种扩展ISO 26262的方法,并添加通用运行场景和危害树,以进行全面的自动驾驶汽车安全分析。
为满足车辆网络安全需求,SAE J3061标准应运而生。它定义了信息物理车辆系统的网络安全生命周期。然而,SAE J3061中定义的网络安全生命周期与ISO 26262中描述的车辆安全生命周期类似,因此对于自动驾驶汽车的网络安全分析而言并不充分。
如何在自动驾驶汽车的整个生命周期中以一致的方式分析其功能安全与网络安全问题,并提供所需的保护水平呢?
在之前的工作中,我们提出了一种用于信息物理系统功能安全与网络安全建模和分析的六步模型。它涵盖了信息物理系统的六个维度(层级),即功能、结构、失效、功能安全对策、网络攻击和网络安全对策。此外,它使用关系矩阵对这些维度之间的相互依赖关系进行建模。六步模型能够对信息物理系统的功能安全与网络安全进行全面分析,因为它利用系统功能和结构作为知识库,以了解失效和攻击对系统的影响。
在本文中,我们提出一种用于自动驾驶汽车功能安全与网络安全分析的方法,该方法以六步模型为核心,实现功能安全与网络安全流程及相关产物之间的融合,并保持它们的一致性。六步模型整合了自动驾驶汽车整个生命周期中开发的功能安全与网络安全相关产物。所提出的方法符合国际标准SAE J3016、SAE J3061和ISO 26262。
本文的其余部分结构如下。第2节描述了相关的预备知识。第3节解释了所提出的方法,第4节给出了一个六步模型的示例。最后,第5节对本文进行总结,并介绍了未来的工作。
在道路上操作车辆所需的实时运行和关键功能包括车辆横向和纵向运动控制、监测驾驶环境、执行对物体和事件的响应、制定机动计划,以及通过照明、信号等增强车辆的可见性。这些功能统称为动态驾驶任务(DDT)。自动驾驶汽车根据其自动化等级执行全部或部分动态驾驶任务。
国际自动机工程师学会(SAE)制定了国际标准SAE J3016,用于描述车辆的各种自动化等级。该标准已被国际组织广泛采用,如美国国家公路交通安全管理局(NHTSA)。
驾驶自动化等级分为六级:
3-5级的车辆被称为高度自动化车辆,因为其自动化系统(而非人类驾驶员)负责监测驾驶环境。此外,1-4级的车辆设计为仅在特定环境和条件下运行,而5级车辆可以在所有环境和条件下运行。
自动驾驶汽车的功能可分为三大类:感知(感知车辆运行的外部环境/情境)、决策与控制(根据感知到的外部环境/情境做出决策并控制车辆运动)以及车辆平台操纵(对车辆进行传感、控制和驱动,以实现期望的运动)。
自动驾驶汽车的结构架构由两个主要系统组成:a)认知驾驶智能系统,实现感知和决策与控制功能;b)车辆平台系统,负责车辆平台操纵。每个系统都由属于四个主要组别的组件构成:硬件、软件、通信和人机界面。
在我们早期的工作中,提出了一种六步模型,用于实现全面的信息物理系统功能安全与网络安全分析(见图1)。
该模型通过以下六个步骤构建: 第一步旨在对系统的功能层级进行建模。使用目标树(GT)定义功能,目标树从目标(功能目标)开始构建,然后定义实现该目标所需的功能和子功能。使用关系矩阵F-F定义功能之间的关系,关系强度可分为高、中、低或极低。
第二步,使用成功树(ST)定义系统的结构层级,将系统结构描述为子系统和单元的集合。此外,使用关系矩阵S-F定义结构与功能之间的关系,如图1所示。
第三步专注于功能安全危害分析。在这一步中,识别系统失效并将其添加到模型中。此外,确定失效、系统结构和功能之间的关系,并将相应的关系矩阵——B-B、B-S和B-F添加到模型中。
第四步侧重于网络安全威胁分析。在这一步中,识别攻击并将其与关系矩阵一起添加到模型中,以描述攻击、失效、结构和功能之间的关系。关系矩阵A-B(攻击-失效)用于确定哪些失效可能由成功的攻击引发。在六步模型的原始版本中,功能安全对策在第四步识别,而攻击在第五步识别。然而,我们决定交换这两个步骤的顺序,以便在选择对策之前先进行系统漏洞(危害和威胁)分析,因为功能安全对策可用于检测和减轻失效及攻击。因此,在设计安全对策之前先识别攻击更为方便。
第五步,将功能安全对策添加到模型中并确定它们的关系。矩阵X-A和X-B显示安全对策对攻击和失效的覆盖程度,其中白色菱形表示对策对攻击/失效提供低保护;灰色菱形表示中等保护;黑色菱形表示完全保护(见图1)。
最后,在最后一步中,将网络安全对策添加到模型中并建立它们的关系。与上一步中的矩阵X-A和X-B类似,添加两个新的矩阵Z-A和Z-B来定义网络安全对策对攻击和失效的覆盖程度。在这一步中添加的网络安全对策可用于保护系统免受功能安全对策未覆盖的攻击和失效。此外,矩阵Z-X用于捕捉功能安全与网络安全对策之间的相互依赖关系,如强化、对抗、条件依赖和独立等,这些关系在相关研究中已有定义。
在完成第五步和第六步后,分析系统结构是否发生任何变化非常重要,因为一些对策可能需要使用额外的组件,如传感器或控制器。如果发生变化,则需要返回第二步添加新组件,然后重复第三步至第六步。
通过这六个步骤构建的六步模型,通过形成系统六个层级(功能、结构、失效、攻击以及功能安全与网络安全对策)之间关系的六边形结构,将它们相互连接起来,如图2所示。这些关系有助于确保这些层级之间的协调。在整个系统的生命周期中,必须维护这些层级和关系,以保持其一致性和完整性。
ISO 26262标准定义了适用于所有汽车电子和电气(E/E)安全相关系统生命周期的汽车设备功能安全。它旨在解决由E/E系统故障行为可能导致的危害。安全流程包括多个阶段,如概念阶段、产品开发阶段、生产阶段、运营阶段、服务阶段和退役阶段。在概念阶段进行危害分析和风险评估(HARA),识别危害事件、安全风险和目标。这些目标在产品开发阶段进一步细化为安全需求,并设计和实施安全对策。
ISO 26262要求车辆内有人类驾驶员,以应对意外的环境和情况。在高度自动化的自动驾驶汽车中,由于没有人类驾驶员,考虑所有驾驶环境和条件非常重要。Warg等人提出了一种自动驾驶汽车危害分析方法,该方法扩展了ISO 26262定义的车辆功能安全分析流程。它使用运行场景树和危害树作为潜在场景和危害的知识库进行研究。
图3展示了一个从Warg等人的研究中借用的自动驾驶汽车运行场景树示例。确定了三个主要方面(树的叶子节点),即车辆、物理环境和周围环境,这些方面进一步细化为属性,例如速度可分解为高速和低速(见图3)。
运行场景树用于危害分析时,通过选择和组合树的叶子节点来构成运行场景。如果未从特定方面选择叶子节点,则该场景被视为对该方面的所有属性都有效。对于5级车辆,必须分析所有运行场景,而对于1-4级车辆,只需分析包括自动驾驶汽车设计运行的环境和驾驶条件在内的部分运行场景。图3展示了一个高级场景树示例,随着新场景的识别,该场景树在整个安全生命周期中会进一步细化。
危害树的构建与场景树类似。确定了两个主要级别的危害:战术危害和运行危害。战术危害包括可预见的战术错误,而运行危害与态势感知、车辆控制和环境相关。树的每个叶子节点代表一个可能包含在危害分析中的危害。
一旦完成场景树和危害树的构建,将危害树中的每个危害与场景树中的每个运行场景相结合,形成危害事件。随后,对这些事件进行风险评估,并分配汽车安全完整性等级(ASIL)。每当向场景树/危害树中添加新的或修改后的场景/危害时,都必须更新风险评估。
危害事件可以使用故障树分析进一步细化,以识别可能导致这些事件的条件和事件。故障树将顶级危害事件细化为中间事件和基本事件,这些事件通过与(AND)和或(OR)逻辑运算符相互连接。Bhavsar等人描述了两种用于自动驾驶汽车的故障树:与车辆部件相关的故障树和考虑与交通基础设施部件相关失效的故障树。基于危害和失效分析的结果定义安全风险,然后用于定义自动驾驶汽车的功能安全需求,并随后开发功能安全对策。
SAE J3061是一项车辆网络安全标准,它以ISO 26262标准为基础开发。因此,这两个标准包含相似的阶段。SAE J3061定义的网络安全流程包括概念阶段、产品开发阶段和生产与运营阶段。在概念阶段进行威胁分析和风险评估(TARA),定义威胁、安全风险和安全目标。在产品开发阶段,根据安全目标定义安全需求,并开发网络安全对策。
攻击树分析通常用于进行威胁分析和风险评估。它有助于确定攻击者可能采取的导致顶级威胁的潜在路径。攻击树是一种图,其中节点表示攻击事件,边表示通过系统的攻击路径,这些路径可以使用与门和或门连接。
行为图,如数据流图(DFD)和信息流图(IFD),可用于识别要包含在攻击树分析中的攻击。数据流图包括进程、数据流和数据存储等元素,用于对软件组件之间的数据流进行建模。信息流图包括单元和它们之间的信息流,可用于对软件和硬件组件(如执行器、控制器、传感器等)之间的信息流进行建模。在之前的研究中,我们提出了一种使用六步模型生成信息流图的方法,以识别对信息物理系统可能的攻击。
本节提出一种将自动驾驶汽车开发与功能安全和网络安全工程相结合的方法,该方法符合国际标准SAE J3016、SAE J3061和ISO 26262。通过使用六步模型实现这种集成,六步模型涵盖了自动驾驶汽车的功能、结构、功能安全失效、网络安全攻击以及功能安全和网络安全对策。六步模型是实现功能安全和网络安全相关产物之间融合与协调的核心。
图4描述了所提出的方法,并展示了六步模型的步骤与自动驾驶汽车开发、功能安全工程和网络安全工程流程中的各种产物之间的关系。
自动驾驶汽车六步模型的步骤按以下顺序执行:
在步骤(1)-(6)中构建的自动驾驶汽车六步模型是自动驾驶汽车漏洞分析的核心。它支持自动驾驶汽车的三个流程,即自动驾驶汽车开发、自动驾驶汽车功能安全工程和自动驾驶汽车网络安全工程,如图4所示。它能够将在自动驾驶汽车整个生命周期中开发的功能安全和网络安全相关产物(如失效、攻击、功能安全和网络安全对策)集成到自动驾驶汽车的功能和结构层级中,以确保它们的一致性和完整性。
自动驾驶汽车六步模型必须在自动驾驶汽车的整个生命周期中进行维护。这对于网络安全尤其重要,因为不断有新的威胁被识别和分析。
下一节展示一个自动驾驶汽车六步模型的示例。
本示例中描述的自动驾驶汽车执行三个主要的自动驾驶功能,即感知、决策与控制以及车辆平台操纵,如第2节A部分所述。感知功能可进一步分解为传感、传感器融合、定位、语义理解和世界模型。这些功能被添加到六步模型的顶层,并确定它们之间的相互关系,如图5所示。
由于篇幅限制,图5仅包含六步模型的一部分内容。此外,仅展示了元素之间程度较高的关系。
实现自动驾驶功能的自动驾驶汽车主要系统包括:认知驾驶智能系统、车辆平台系统和通信系统。认知驾驶智能系统包括车载计算机和用于感知环境的外部传感器,如激光雷达(LIDAR)、雷达、摄像头和超声波传感器。没有一种传感器能在所有任务和所有条件下都表现良好,因此需要提供传感器冗余并进行传感器融合。激光雷达、雷达和摄像头的组合在大多数环境条件下都能很好地覆盖自动驾驶汽车的任务。车辆平台系统包括控制器(ECUs)和执行器,用于实现期望的运动。通信系统包括车载通信和车联网(V2X,车辆与