沃尔沃:敏捷开发中满足ISO26262的软件安全分析

原创 汽车ECU开发 2021-11-22 08:00

软件安全分析是整个汽车系统安全审查的一部分。其目的是降低车辆使用过程中由软件缺陷给车内人员带来的风险。ISO26262-6第7节要求对车辆ECU的软件体系结构进行特定的安全导向分析,以实现以下四个目标:

1、证明软件可提供指定安全相关的功能和属性;

2、识别并确认软件的安全相关部分;

3、支持安全机制以及安全机制的验证;

4、检测可能违反所需干扰自由度的故障模式。

由于软件呈爆炸式增长,错误发生的几率增加。意味着不再可能分析给定软件系统的每个状态,并确定是否存在相关的错误。相反通过分析某些特性,如复杂性、代码静态检查等,可以估计软件中错误数量的概率。然而,ISO 26262-6第7节也要求,对于某些类型的错误,在架构级(车辆功能)层面,应该进行全面的分析。以下就是基于此发展的一种方法。

软件安全分析中的缺陷

进行系统安全分析的方法包括以下内容:

1、失效模式及影响分析FMEA;

2、故障树分析;

3、事件树分析;

4、危险和可操作性分析。

使用这些方法进行软件安全分析的基本问题是,软件作为一个系统,其状态比硬件多几个数量级。实际上不可能对所有状态进行分析,并以合理的方式确定哪些状态应优先考虑。也就是说,我们的研究中使用了一些系统安全分析方法的概念,如“指导词”和“故障模式”,作为标准表示。

另外,也有人提出以软件为重点的安全分析方法,如:

1、Petri网分析;

2、失效传播转化符号FPTN;

3、软件关键性分析;

4、软件FMEA

5、软件故障模式、影响和关键性分析(SFMECA)。

FPTN更多的是一种标记技术,它不能进行详尽的分析。Petri网分析适用于基础软件。软件FMEA和SFMECA是使用应用层软件的,但随着软件复杂性的增加,它们需要付出更多的努力。软件临界性分析和SHARD关注的是数据流。在SHARD中提出的数据流概念在我们的上下文中很有价值,它在以下的方法中有使用,但使用的顺序和抽象层不同。这些方法从整个架构层面开始分析,从上到下研究输入输出信号和相应的故障模式。它们假设有一个前端架构,不会随着时间发生显著的变化。

然而,在现代软件开发中,架构基本是不断变化。就沃尔沃汽车而言,敏捷团队拥有称为软件包的架构组件(图 1)。与电子控制单元 (ECU) 级别的架构决策相比,软件包内部的架构决策是紧急的,后者随着时间的推移相对稳定。紧急架构阻止进行自上而下的分析,因为信号的状态可能会在过程中间发生变化,从而使结果无效。此外,在我们的案例中,基础软件和部分应用软件由供应商采购,因此无法进行自上而下的分析。

图1 沃尔沃汽车ECU软件概述

应用软件的复杂性、对客户的响应性、多站点开发以及紧急架构都敦促我们开发一种新的软件安全分析方法,以帮助我们遵守ISO 26262-6。然而,这种方法是针对以Simulink模型作为软件单元开发的应用软件而设计的。该方法不适用于手写软件和基础软件。与Simulink模型相比,手写代码具有较少的开发限制(例如,非强制性地遵守干净的编码标准)和更多与其他文件和函数的耦合。因此,分析不那么清晰的数据流需要付出更多的努力,这在开发中可能是不可承受的。


01


研究方法

研究过程中的一个关键决定是首先识别软件中的所有错误类型,因为由于错误的多样性,不确定哪些类型应该进行面向安全的软件分析。以及哪些错误会影响软件安全分析的目标实现。通常采用行动研究来处理这种情况:成立了一个从业人员参考小组,在行动研究周期中进行迭代。其成员包括一名软件工程技术领导,一名软件安全技术专家,一名高级安全工程师,一名软件开发首席工程师,一名软件架构师,一名高级软件开发人员,以及一名负责开发车辆安全关键功能的产品负责人。任务包括以下内容:

1.根据给定的软件开发过程和工作产品,识别应用软件中可能发生的所有类型的错误;

2.针对已识别的错误类型,调查并记录当前的解决方法

3.为尚未发现的错误类型指定预设解决方法;

4.审查面向安全的软件分析方法的开发。

沃尔沃为未发现的错误类型提出了初始的解决方法。他们还设计了面向安全的软件分析方法的框架。并且根据参考小组在行动研究周期中对这些建议提出的批判性的质疑,讨论得出了初步的结果。在大约一年半的时间里,软件安全分析方法基本上具体化了。之后将该方法应用于沃尔沃某大型ECU内部应用软件,对分析方法进行了更多的调整。应用该方法的软件有大约200个Simulink模型(产生大约80万行代码),由12个敏捷团队开发。


02


软件安全分析方法

分析方法由两部分组成。首先是对软件开发过程的评估,并采用一套实用且有效的方法来检测整个开发链中的错误。这些方法可以识别并消除绝大部分开发阶段的软件错误。这个过程被称为软件安全的通用分析,它明确地包含了软件错误检测的概率性质,并非所有软件状态都可以检查。但这确保了通过可用的方法和工具将总体软件错误的可能性降至最低。

第二部分是在架构级别的面向安全的软件分析,以消除可能在通用分析中遗漏的并且可能不利于安全目标实现的错误。架构级别的安全分析保持与软件工程保持同步,并且跟通用分析也是同步进行的。这两种分析中通常采用自动化检查、基于度量的更正、同行评审和自动化测试等方法来辅助分析。

软件安全的通用分析识别了开发链中的错误,并给出解决办法。表1中记录了我们产品的此类调查结果。如果某类错误可能影响四个安全目标中的任何一个,则应进行额外的安全导向分析。这些错误类型在表中以粗体显示。他们会定期评估和更新(例如,一年一次)。负责的软件安全专家应确保该表的信息是最新的。

表1 汽车软件确定的错误和解决办法


03


架构级别面向安全的软件分析

面向安全的分析旨在识别由于需求错误说明、错误分配、软件模型之间不正确的信号接口和不正确的功能调用(表1中以粗体显示)而导致的错误。分析分为两个阶段。第1阶段的全部分析是面向Simulink模型。有一个敏捷团队每次选择一个Simulink模块,并在软件安全专家的支持下进行分析。第2阶段的分析实体是应用软件。软件架构师在软件安全专家的支持下进行分析,并使用阶段1的结果。

第1阶段开始于产品负责人与敏捷团队和软件安全专家一起组织一个研讨会。假设团队已有关于给定模型的故障模式以及每个故障模式对应的车辆级安全级别(CLs)的正确信息。事实上,这一分析的目标之一就是纠正这一假设。CLs的定义如下:

1.如果车辆级后果未违反安全目标,则归类为CL1。如果模型只有CL1,则模型本身被分类为CL1。

2. 如果车辆级后果违反安全目标,但有安全机制避免该后果,则将其归类为CL2。如果模型只有CL2和CL1,则模型本身被分类为CL2。

3. 如果车辆级后果违反安全目标且没有任何安全机制,则将其归类为CL3,模型本身被分类为CL3。

第1阶段和第2阶段的概述如图2所示。下面是逐步详细的描述。

图2 阶段1和阶段2概述

阶段1:由敏捷团队在安全专家的支持下进行

1. 了解模型实现的功能;

2. 根据模型的输出信号和功能调用确定故障模式;

3. 尽团队所知,确定每个故障模式的车辆级后果;

4.将每个故障模式的车辆级后果分类为CL1、CL2或CL3。

  • 车辆级后果是否违反安全目标?如果没有,则将结果分类为CL1。如果是,请转到下一点。

  • 模型外部是否有安全机制来避免这种后果?如果是,将后果分类为CL2,并参考安全机制。如果没有,请转到下一点。

  • 相应的输出信号(功能调用)是否为CL3?如果是,将其车辆级后果分类为CL3。如果否,则检测到不合适的设计。

5. 确认软件的CL3部分。

  • 具有CL3故障模式的模型在架构描述中是否有相应的ASIL等级分类?如果否,则检测到不合适的设计。

  • 具有CL3故障模式的模型是否有相应ASIL分类的故障模式要求?如果否,则检测到不合适的设计。

6. 对于至少有一个CL2或CL3的模型,应该用相应的输出信号(函数调用)记录所有故障模式。 

  • 记录信号(函数调用)、故障模式、车辆级后果、CLs和ASIL级别的名称。

7. 尽团队所知,确定并记录CL3故障的原因。

  • 将原因按CL1、CL2或CL3分类。原因可以是输入信号、触发器、代码开关、配置和其他错误类型。

8.在实践时,应记录团队认为完成第 1 阶段所需的补齐的知识点。

在第1阶段之后,所有标记为CL3的模型应与系统安全工程师共享,以确认危害分析中的相应ASIL等级。ASIL等级应与表第5点下第一个条目中的信息一起记录。

引导词用于系统地表示特定设计意图的可能偏差,并确定可能的后果。引导词可用于识别弱点、故障和故障。选择合适的引导词取决于所检查功能、行为、属性、接口和数据的特征。分析中应使用的指导词集取决于上下文,因此应由分析工程师在安全专家的协助下选择。表2中提供了第1阶段分析结果的样本。分析的第二阶段使用第一阶段的结果来确认CL2模型的安全机制,并评估安全相关软件的抗干扰性。

表2 Simulink模型分析的示例结果 

阶段2:由软件架构师在安全专家支持下进行

1. 通过检查第1阶段的所有CL2相关的模型及其安全机制,确认软件的CL2部分。

  • 目标软件版本中是否包含安全机制?如果否,则检测到不合适的设计。如果是,评估安全机制的充分性;

  • 是否为安全机制规定了适当的软件/系统集成测试?如果否,请指定一个。

2.通过检查软件架构中的所有模型,确认各功能的分区合理性。

  • 具有给定ASIL等级的模型是否分配给具有相同或更高ASIL等级的软件分区?如果否,则检测到不适当的分配。

  • 如果不同ASIL等级的模型分配到同一分区,请在架构描述中确认这些模型是根据最高ASIL开发标准设计的。

3. 检查从较低ASIL分区到较高分区的故障模式传播。

  • 所有CL3输入信号是否都来自CL3模型?如果不是,则检测到紧急架构和合理架构之间不一致的规范。

4.根据阶段1分析,确认应用软件的接口信号具有正确的ASIL分类。

建议团队在每个项目增量期间执行第1阶段。在一些敏捷方法中,每个增量可能是8到12周。第2阶段应在每次产品发布之前执行,前提是明确不会发生进一步的功能更改。


04


总结

该方法被认为是经济上可承受的连续安全分析方法。原因如下:首先,软件安全的一般分析方法在很大程度上是自动化的,并与软件开发环境集成。一旦部署了这些方法(表1),就很容易定期审查和更新信息。其次,一旦进行了以安全为导向的分析,在未来,团队将拥有足够的知识和文件,根据输出信号的变化及其相应信息(故障模式、车辆级后果等)更新评估。文档可以是Excel表格和基于浏览器的半自动方式。

面向安全的软件分析有助于关注直接违反安全目标的错误。这种分析超越了自动检查,这重点关注模型实现了哪些功能,模型间如何相互干预,以及模型与架构决策如何一致。这有助于避免可能危及功能安全的意外设计决策。

一般来说,以上的分析需要了解模型在车辆级功能中的作用。以安全为导向的分析增强了敏捷团队的这种意识,开拓了成员的知识面,使他们能够做出更明智的设计决策。使用此方法过程中也得到了有关改进的反馈,主要提高了自动化程度并集成到软件开发环境中,以减少技术的管理工作。


来源:整理自外文文献,侵删.

推荐阅读

登录阅读全文

汽车ECU开发 专注于汽车电子ECU软件开发,技术分享。
评论
  • 故障现象一辆2017款东风风神AX7车,搭载DFMA14T发动机,累计行驶里程约为13.7万km。该车冷起动后怠速运转正常,热机后怠速运转不稳,组合仪表上的发动机转速表指针上下轻微抖动。 故障诊断 用故障检测仪检测,发动机控制单元中无故障代码存储;读取发动机数据流,发现进气歧管绝对压力波动明显,有时能达到69 kPa,明显偏高,推断可能的原因有:进气系统漏气;进气歧管绝对压力传感器信号失真;发动机机械故障。首先从节气门处打烟雾,没有发现进气管周围有漏气的地方;接着拔下进气管上的两个真空
    虹科Pico汽车示波器 2025-01-08 16:51 111浏览
  • 职场是人生的重要战场,既是谋生之地,也是实现个人价值的平台。然而,有些思维方式却会悄无声息地拖住你的后腿,让你原地踏步甚至退步。今天,我们就来聊聊职场中最忌讳的五种思维方式,看看自己有没有中招。1. 固步自封的思维在职场中,最可怕的事情莫过于自满于现状,拒绝学习和改变。世界在不断变化,行业的趋势、技术的革新都在要求我们与时俱进。如果你总觉得自己的方法最优,或者害怕尝试新事物,那就很容易被淘汰。与其等待机会找上门,不如主动出击,保持学习和探索的心态。加入优思学院,可以帮助你快速提升自己,与行业前沿
    优思学院 2025-01-09 15:48 68浏览
  • HDMI 2.2 规格将至,开启视听新境界2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新HDMI规范为规模庞大的 HDMI 生态系统带来更多选择,为创建、分发和体验理想的终端用户效果提供更先进的解决方案。新技术为电视、电影和游戏工作室等内容制作商在当前和未来提供更高质量的选择,同时实现多种分发平台。96Gbps的更高带宽和新一代 HDMI 固定比率速率传输(Fixed Rate Link)技术为各种设备应用提供更优质的音频和视频。终端用户显示器能以最
    百佳泰测试实验室 2025-01-09 17:33 84浏览
  • 在当前人工智能(AI)与物联网(IoT)的快速发展趋势下,各行各业的数字转型与自动化进程正以惊人的速度持续进行。如今企业在设计与营运技术系统时所面临的挑战不仅是技术本身,更包含硬件设施、第三方软件及配件等复杂的外部因素。然而这些系统往往讲究更精密的设计与高稳定性,哪怕是任何一个小小的问题,都可能对整体业务运作造成严重影响。 POS应用环境与客户需求以本次分享的客户个案为例,该客户是一家全球领先的信息技术服务与数字解决方案提供商,遭遇到一个由他们所开发的POS机(Point of Sal
    百佳泰测试实验室 2025-01-09 17:35 78浏览
  • 一个真正的质量工程师(QE)必须将一件产品设计的“意图”与系统的可制造性、可服务性以及资源在现实中实现设计和产品的能力结合起来。所以,可以说,这确实是一种工程学科。我们常开玩笑说,质量工程师是工程领域里的「侦探」、「警察」或「律师」,守护神是"墨菲”,信奉的哲学就是「墨菲定律」。(注:墨菲定律是一种启发性原则,常被表述为:任何可能出错的事情最终都会出错。)做质量工程师的,有时会不受欢迎,也会被忽视,甚至可能遭遇主动或被动的阻碍,而一旦出了问题,责任往往就落在质量工程师的头上。虽然质量工程师并不负
    优思学院 2025-01-09 11:48 94浏览
  • 在智能网联汽车中,各种通信技术如2G/3G/4G/5G、GNSS(全球导航卫星系统)、V2X(车联网通信)等在行业内被广泛使用。这些技术让汽车能够实现紧急呼叫、在线娱乐、导航等多种功能。EMC测试就是为了确保在复杂电磁环境下,汽车的通信系统仍然可以正常工作,保护驾乘者的安全。参考《QCT-基于LTE-V2X直连通信的车载信息交互系统技术要求及试验方法-1》标准10.5电磁兼容试验方法,下面将会从整车功能层面为大家解读V2X整车电磁兼容试验的过程。测试过程揭秘1. 设备准备为了进行电磁兼容试验,技
    北汇信息 2025-01-09 11:24 80浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球中空长航时无人机产值达到9009百万美元,2024-2030年期间年复合增长率CAGR为8.0%。 环洋市场咨询机构出版了的【全球中空长航时无人机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球中空长航时无人机总体规模,包括产量、产值、消费量、主要生产地区、主要生产商及市场份额,同时分析中空长航时无人机市场主要驱动因素、阻碍因素、市场机遇、挑战、新产品发布等。报告从中空长航时
    GIRtina 2025-01-09 10:35 74浏览
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2025-01-09 09:58 59浏览
  • 在过去十年中,自动驾驶和高级驾驶辅助系统(AD/ADAS)软件与硬件的快速发展对多传感器数据采集的设计需求提出了更高的要求。然而,目前仍缺乏能够高质量集成多传感器数据采集的解决方案。康谋ADTF正是应运而生,它提供了一个广受认可和广泛引用的软件框架,包含模块化的标准化应用程序和工具,旨在为ADAS功能的开发提供一站式体验。一、ADTF的关键之处!无论是奥迪、大众、宝马还是梅赛德斯-奔驰:他们都依赖我们不断发展的ADTF来开发智能驾驶辅助解决方案,直至实现自动驾驶的目标。从新功能的最初构思到批量生
    康谋 2025-01-09 10:04 73浏览
  • 1月7日-10日,2025年国际消费电子产品展览会(CES 2025)盛大举行,广和通发布Fibocom AI Stack,赋智千行百业端侧应用。Fibocom AI Stack提供集高性能模组、AI工具链、高性能推理引擎、海量模型、支持与服务一体化的端侧AI解决方案,帮助智能设备快速实现AI能力商用。为适应不同端侧场景的应用,AI Stack具备海量端侧AI模型及行业端侧模型,基于不同等级算力的芯片平台或模组,Fibocom AI Stack可将TensorFlow、PyTorch、ONNX、
    物吾悟小通 2025-01-08 18:17 72浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦