道路车辆 功能安全审核及评估方法 第3部分:软件层面 Road vehicles - Functional Safety Audit and Assessment Method - Part 3: Software Level
|
本文件按照GB/T 1.1—2020《标准化工作导则 第1部分:标准化文的结构和起草规则》的规定起草。
本文件是GB/T XXXXX《道路车辆 功能安全审核及评估方法》的第3部分。GB/T XXXXX已经发布了以下部分:
——第1部分:通用要求;
——第2部分:概念阶段和系统层面;
——第3部分:软件层面;
——第4部分:硬件层面。
本文件由中华人民共和国工业和信息化部提出。
本文件由全国汽车标准化技术委员会(SAC/TC114)归口。
本文件起草单位:
本文件主要起草人:
目 录
道路车辆 功能安全审核及评估方法
第3部分:软件层面
本标准规定了针对安全相关的电气/电子(E/E)系统在软件层面的功能安全相关活动和工作成果,开展功能安全审核及评估的要求和方法,以检查和判断开发过程及工作成果对于功能安全的符合性。
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 34590-XXXX(所有部分) 道路车辆 功能安全(ISO 26262:2018,MOD)
GB/T 34590.1-XXXX界定的术语、定义和缩略语适用于本文件。
4.1 一般要求
GBT《道路车辆 功能安全审核及评估方法》的部分规定了功能安全软件层面审核的要求,应具备下列文件支持本部分的功能安全审核和评估:
项目计划(细化的),按照GB/T34590.4—2022的5.5.1
安全计划(细化的),按照GB/T34590.4—2022的5.5.2;
软件开发环境文档,按照GB/T34590.6—2022的5.5.1;
软件安全需求规范,按照GB/T34590.6—2022的6.5.1;
软硬件接口规范(细化的),按照GB/T34590.6—2022的6.5.2;
软件安全需求规范、软硬件接口规范评审记录表,按照GB/T34590.6—2022的6.5.3
软件架构设计规范,按照GB/T34590.6—2022的7.5.1;
软件安全分析报告,按照GB/T34590.6—2022的7.5.2~7.5.3;
软件架构设计规范、软件安全分析报告评审记录表,按照GB/T34590.6—2022的7.5.3
软件单元设计规范;按照GB/T34590.6—2022的8.5.1;
软件单元实现,按照GB/T34590.6—2022的8.5.2;
软件单元验证规范,按照GB/T34590.6—2022的9.5.1;
软件单元验证报告,按照GB/T34590.6—2022的9.5.2;
软件集成和验证规范,按照GB/T34590.6—2022的10.5.1;
软件单集成和验证报告,按照GB/T34590.6—2022的10.5.2;
软件安全需求验证规范,按照GB/T34590.6—2022的11.5.1;
软件安全需求验证报告,按照GB/T34590.6—2022的11.5.2;
软件配置数据规范及配置数据,按照GB/T34590.6—2022的C.5.1、C.5.3;
软件标定数据规范及标定数据,按照GB/T34590.6—2022的C.5.2、C.5.4;
软件工具准则评估报告,按照GB/T34590.8—2022的11.5.1;
软件工具鉴定报告,按照GB/T34590.8—2022的11.5.2;
软件组件文档及组件鉴定报告,按照GB/T34590.8—2022的12.5.1~12.5.2;
软件组件鉴定的验证报告,按照GB/T34590.8—2022的12.5.3;
4.2 审核和评估结果的汇总
执行软层面的功能安全审核和评估后,应将审核的评估的结果进行汇总并列举证据:
4.3 软件层面功能安全审核和评估结果
通过(无待完成的建议行动项、评估和审核的相关项符合GBT 34590.6-2022,6.4的要求) | √ |
有条件通过(已有相关项符合的相关证据,已识别相应的建议行动项) | |
不通过(相关风险消除的行动项待完成,通过前需做相应的偏差评估和审核) |
4.4 功能安全审核和评估的独立性要求
功能安全审核和评估的独立性要求参照GBT 34590. 2-2022, 6.4.7的要求。
5.1 目的
审核和评估软件开发环境文档,以提供证据证明:
- 与软件开发流程合适且一致;
- 软件开发环境满足相关项开发的要求;
5.2 审核和评估的输入
5.2.1前提条件
为了开展本章规定的审核和评估,应具备如下输入:
软件开发环境文档
5.2.2支持信息
可考虑下列信息:
安全计划;
软件开发流程;
对于软件开发环境的审核和评估,应涵盖以下检查项:
表1:软件开发环境的审核和评估检查清单
序号 | 审核和评估要求 |
1 | 是否定义了软件开发环境的模板且在项目中进行了实施? |
2 | 软件开发环境模板是否与已定义的开发流程保持一致? |
3 | 定义的软件开发环境模板是否可以覆盖下面列出的评估检查点? |
4 | 在开发相关项时,使用的软件开发过程和软件开发环境是否适用并满足该相关项要求?
与系统和硬件开发阶段在所需的交互和信息交换的一致性; |
5 | 在开发相关项时,所应用的设计语言、建模语言或编程语言是否满足以下准则?
|
6 | 建模和编码指南是否满足对应的ASIL等级所要求的的通则,以涵盖适合于建模、设计或者编程语言的准则? 注:具体要求参考GB/T34590-6第5章表1 |
6.1 目的
审核和评估软件安全需求规范、细化的软硬件接口规范,以提供证据证明:
a)定义或细化了由技术安全概念和系统架构设计规范导出的软件安全要求;
b)定义了软件实现所需的安全相关功能和特性;
c)细化了在GB/T 34590.4-XXXX第6章最初定义的软硬件接口要求;及
d)验证软件安全要求和软硬件接口要求是否适用于软件开发,及验证它们与技术安全概念和系统架构设计规范的一致性。
6.2 审核和评估的输入
6.2.1前提条件
为了开展本章规定的审核和评估,应具备如下输入:
软件安全需求规范,按照GB/T34590.6—2022的6.5.2;
软硬件接口规范(细化的),按照GB/T34590.6—2022的6.5.2;
软件验证报告,按照GB/T34590.6—2022的6.5.3;
6.2.2 支持信息:
可考虑下列信息:
技术安全要求规范,按照GB/T34590.4—2022的6.5.1;
技术安全概念,按照GB/T34590.4—2022的6.5.2;
系统架构设计规范,按照GB/T34590.4—2022的6.5.3;
软硬件接口规范,按照GB/T34590.4—2022的6.5.4;及
软件开发环境文档,按照GB/T34590.6—2022的5.5.1;
6.3 审核和评估的要求
对于软件安全需求规范的审核和评估,应涵盖以下检查项:
表2:软件安全需求规范的审核和评估检查清单
序号 | 审核和评估要求 |
1 | 是否定义了软件安全要求的开发流程? |
2 | 是否定义了软件安全要求的模板且在项目中进行了实施? |
3 | 软件安全要求模板是否与已定义的开发流程保持一致? |
4 | 定义的软件安全要求模板是否可以覆盖下面列出的评估检查点? |
5 | 软件安全要求的得出是否基于安全相关的软件功能和特性?如果嵌入式软件除了执行6.4.1定义的安全要求的功能外,还执行了其他功能,是否按照所应用的质量管理体系的要求提供了这些功能及其特性的规范? |
6 | 软件安全要求的得出是否继承于技术安全需求、技术安全概念和系统架构设计规范?软件安全要求的得出是否包含如下内容:
|
7 | 若对软件安全要求进行了ASIL等级分解,其分解原则是否满足GB/T 34590.9-xxxx,第5章的要求? |
8 | 软硬件接口规范在软件开发阶段是否进行了细化?细化程度是否足以支持软件正确控制使用硬件? |
9 | 软硬件接口规范是否描述了硬件和软件间每个与安全相关的依赖性? |
10 | 是否建立了软件安全要求与技术安全需求及技术安全概念之间的双向追溯性? |
11 | 是否细化后的软硬件接口都定义了对应的验证准则? |
12 | 是否为每个软件安全要求制定了验证准则? |
13 | 是否基于GB/T 34590.8-xxxx,第6章和第9章执行了软件安全要求、细化后的软硬件接口规范的验证?其验证结果是否能证明如下要求得到了满足?
|
审核和评估软件架构设计规范,以提供证据证明:
- 开发了满足软件安全要求和其他软件要求的软件架构设计;
- 验证了软件架构设计适合满足所要求ASIL等级的软件安全要求;及
- 支持软件的实现与验证。
7.2.1前提条件
为了开展本章规定的审核和评估,应具备如下输入:
软件架构设计规范规范,按照GB/T34590.6—2022的7.5.1;
安全分析报告,按照GB/T34590.6—2022的7.5.2~7.5.3;
软件架构设计的验证报告,按照GB/T34590.6—2022的7.5.4;
7.2.2 支持信息
可考虑下列信息:
软件安全需求规范,按照GB/T34590.6—2022的6.5.1;
软硬件接口规范(细化的),按照GB/T34590.6—2022的6.5.2;
对于软件架构设计规范的审核和评估,应涵盖以下检查项:
表3:软件架构设计规范的审核和评估检查清单
序号 | 审核和评估要求 |
1 | 是否定义了软件架构设计规范的开发流程? |
2 | 是否定义了软件架构设计规范的模板且在项目中进行了实施? |
3 | 软件架构设计规范模板是否与已定义的开发流程保持一致? |
4 | 定义的软件架构设计规范模板是否可以覆盖下面列出的评估检查点? |
5 | 是否按照ASIL等级要求定义软件架构的设计标记方法,且满足GB/T34590.6-2022,表2的要求? |
6 | 软件架构设计的描述是否满足如下特征?
|
7 | 软件架构设计的开发是否满足如下要求:
|
8 | 是否定义软件架构设计的原则,且满足GB/T34590.6-2022,表3的要求? |
9 | 软件架构设计是否被开发到可以识别软件单元的程度且继承了相应的软件安全需求?软件单元是否按照分配给它的最高安全ASIL 等级进行的开发? |
10 | 软件架构设计规范是否包含了静态设计和动态设计? |
11 | 如果架构设计中复用了一个不满足功能安全开发的软件架构要素,是否对该软件架构要素进行了组件鉴定并满足GB/T34590.8-2022,第12章的要求? |
12 | 如果架构设计要素被分配了不同的ASIL等级,该软件架构要素是否符合GB/T34590.9-2022, 第六章定义的共存准则或按照了最高ASIL 等级要求进行了开发? |
13 | 软件架构设计如进行了软件分区,是否实现了软件组件间免于干扰且确保满足如下要求?
|
14 | 是否对软件架构进行了安全导向分析?安全导向分析的结果是否满足如下要求: a)提供软件的适用性证据证明具备了相应的ASIL等级要求所需的特定的安全相关的功能和特性; b)识别或确认软件的安全相关部分;及 C)支持安全措施的定义并验证其有效性。 |
15 | 如果软件安全要求的实现依赖于软件组件间免于干扰或足够的独立性,检查是否按照GB/T34590.9,第七章进行了相关失效及其影响分析? |
16 | 是否对安全分析的结果进行了处理?是否在架构设计中采用了错误探测和错误处理的安全机制? |
17 | 是否对嵌入式软件所需资源进行了上限预估,包括:
|
18 | 是否基于GB/T 34590.8-XXXX,第9章执行了软件架构设计的验证?软件架构设计的验证方法是否按照GB/T34590.6-2022,表4的要求进行,为下列目标提供证据?
与设计指南保持一致; |
审核和评估软件单元设计和软件实现,以提供证据证明:
- 软件单元设计和实现满足了所有的软件安全需求;
- 软件源代码实现了软件详细设计规范
- 软件设计实现了软硬件接口规范
- 软件设计有充分的资源支撑预期的功能和特征,避免非预期的功能和特征
- 软件设计实现了安全分析中得出的安全措施
8.2 审核和评估的输入
8.2.1 前提条件
为了开展本章规定的审核和评估,应具备如下输入:
软件单元设计规范,按照GB/T34590.6—2022的8.5.1
软件单元实现,按照GB/T34590.6—2022的8.5.2
8.2.2 支持信息
可考虑下列信息:
xxxx,按照GB/T34590.x—2022的xxx
xxxx,按照GB/T34590.x—2022的xxx
对于软件单元设计及实现的审核和评估,应涵盖以下检查项:
表4:软件单元设计及实现的审核和评估检查清单
序号 | 审核和评估要求 |
1 | 是否定义了软件单元设计及实现的开发流程? |
2 | 是否定义了软件单元设计及实现的模板且在项目中进行了实施? |
3 | 软件单元设计及实现模板是否与已定义的开发流程保持一致? |
4 | 定义的软件单元设计及实现模板是否可以覆盖下面列出的评估检查点? |
5 | 软件单元设计是否与软件需求和软件架构设计保持了一致性和追溯性? |
6 | 软件单元设计是否符合软硬件接口规范(如果适用) |
7 | 软件单元设计的标记方法是否使用了GB/T34590.6,表5中要求的对应ASIL等级推荐的标记方法? |
8 | 软件单元的定义是否将功能表现和内部设计描述到必要的细节程度以支持其实现? |
9 | 软件单元设计和实现的设计是否满足了以下原则: a) 基于软件架构设计,软件单元内的子程序和函数执行的正确次序; b) 软件单元间接口的一致性; c) 软件单元内和软件单元间的数据流及控制流的正确性; d) 简单性; e) 可读性和可理解性; f) 鲁棒性; |
10 | 软件单元设计是否符合GB/T34590.6,表6中要求的对应ASIL等级推荐的设计原则? |
审核和评估软件单元测试规范、单元测试报告,以提供证据证明:
- 提供证据证明软件单元设计满足分配的软件要求且适合于实施;
- 验证由软件单元模块、函数层面的相关失效分析和安全分析得出的已定义的安全措施得到适当实施;
- 提供证据证明软件单元、函数符合软件单元设计与根据所需的ASIL等级分配的软件要求;
- 提供充分证据,证明单元不包含与功能安全相关的非预期功能和特性。
9.2.1 前提条件
为了开展本章规定的审核和评估,应具备如下输入:
软硬件接口规范, 按照GB/T34590.6—2017 6.5.2;
软件验证计划, 按照GB/T34590.6—2017 6.5.3
软件验证规范, 按照GB/T34590.6—2017 9.4.2和9.4.4~9.4.6
安全计划, 按照GB/T34590.6—2017 7.5.2
嵌入式软件,按照GB/T34590.6—2022的10.4.1
软件单元设计规范, 按照GB/T34590.6—2017 8.5.1
软件单元实现,按照GB/T34590.6—2017 8.5.2
软件验证报告,按照GB/T34590.6—2017 8.5.3。
9.2.2 支持信息
可考虑下列信息:
工具应用指南,按照5.5.4及方法应用指南(来自外部)。
对于软件单元测试的审核和评估,应涵盖以下检查项:
表5:软件单元测试的审核和评估检查清单
序号 | 审核和评估要求 |
1 | 是否定义了软件单元测试的开发流程? |
2 | 是否定义了软件单元测试的模板且在项目中进行了实施? |
3 | 软件单元测试模板是否与已定义的开发流程保持一致? |
4 | 定义的软件单元测试模板是否可以覆盖下面列出的评估检查点? |
5 | 是否基于GB/T34590-6,第9章在同一开发流程中同时考虑了软件安全要求和所有非安全相关要求,以验证单个软件单元设计?” 是否编制了软件单元设计规范,且建立软件单元测试流程,并按照该流程执行了测试?
|
6 | 是否按照GB/T34590-8,第9章要求,对已制定的单元验证计划进行了验证?验证中发现的问题是否均已关闭? 注:验证方法包括了测试,也包括评审,分析,可参见表7 软件单元验证方法 |
7 | 是否按照GB/T34590-6,第9章要求确定了单元验证方法的合理组合?选择的单元验证方法组合是否与单元设计与实现中的ASIL定义保持一致?选择的软件单元验证方法是否与标准推荐ASIL保持一致?未使用及不适用的方法是否提供了合理理由? |
8 | 是否按照GB/T34590-6,第9章要求得到单元验证用例?选择的单元验证用例开发方法是否与软件单元设计与实现(软件详细设计)中的ASIL定义保持一致? |
9 | 是否按照GB/T34590-6第9章要求确定了软件验证的结构覆盖率?软件单元验证的结构覆盖率是否与单元设计与实现中的ASIL定义保持一致?软件单元验证结构覆盖率是否与标准推荐ASIL保持一致?测试结果是否能够提供证据说明单元验证活动满足已定义的软件单元设计及实现(软件详细设计)层级的结构覆盖度? |
10 | 是否按要求对软件单元验证过程中所有的Bug进行了管理,并跟踪至关闭? |
11 | 是否对通过软件单元验证的软件范围进行了分析,其是否包含全部定义的功能和性能,对于未定义的功能,是否评估了风险或执行了解决措施? |
12 | 是否对软件单元验证环境进行了分析?如果软件单元环境与目标环境不一致,是否给出了对应措施? |
为了开展本章规定的审核和评估,应具备如下输入:
审核和评估软件验证规范、嵌入式软件和软件验证报告,以提供证据证明:
- 定义集成步骤并集成软件要素,直至嵌入式软件完全集成;
- 验证由软件架构层面的安全分析得出的已定义的安全措施得到适当实施;
- 提供证据证明集成的软件单元和集成的软件组件符合软件架构设计的要求;
- 提供充分证据,证明集成软件不包含与功能安全相关的非预期功能和特性。
10.2 审核和评估的输入
为了开展本章规定的审核和评估,应具备如下输入:
软件验证规范,按照GB/T34590.6—2022的10.4.2~10.4.7
嵌入式软件,按照GB/T34590.6—2022的10.4.1
软件验证报告,按照GB/T34590.6—2022的10.4.2
可考虑下列信息:
软硬件接口规范(细化的),按照GB/T34590.6—2022的6.5.2;
软件架构设计规范,按照GB/T34590.6—2022的7.5.1;
安全分析报告,按照GB/T34590.6—2022的7.5.2;
相关失效分析报告,按照GB/T34590.6—2022的7.5.3;
软件单元实现,按照GB/T34590.6—2022的8.5.2;
配置数据,按照GB/T34590.6—2022的C.5.3;
标定数据,按照GB/T34590.6—2022的C.5.4;
软件开发环境文档,按照GB/T34590.6—2022的5.5.1;
软件验证规范,按照GB/T34590.6—2022的9.5.1;
经鉴定合格的软件组件,按照GB/T 34590.8-2022的第12章
对于软件集成和验证的审核和评估,应涵盖以下检查项:
表6:软件集成和验证的审核和评估检查清单
序号 | 审核和评估要求 |
1 | 是否定义了软件集成和验证的开发流程? |
2 | 是否定义了软件集成和验证的模板且在项目中进行了实施? |
3 | 软件集成和验证的模板是否与已定义的开发流程保持一致? |
4 | 定义的软件集成和验证的模板是否可以覆盖下面列出的评估检查点? |
5 | 是否基于GB/T34590-6第10章要求,定义了软件集成方法和策略? |
6 | 是否按照GB/T34590-6第10章要求,通过表10软件集成验证方法确定了软件集成及验证方法的合理组合? |
7 | 针对已选择的软件集成及验证方法,是否有相关内容说明相应的软件集成及验证活动执行符合要求? |