什么是ISO 21434?给汽车软件开发人员的合规贴士

创提信息
2022/07/13

分享到

ISO 21434帮助汽车产品开发商、整车厂(OEM)及其供应商确保其车辆的信息和网络安全。这一点随着汽车之间的联系越来越紧密,自动驾驶汽车的数量越来越多变得相当关键。因此,在设计和实现汽车软件时,考虑到信息和网络安全是非常重要的。
 
在这里,我们将概述什么是ISO 21434,和对汽车嵌入式软件开发团队的一些贴士。


本文将包含如下几个部分:
 
     • 什么是ISO 21434?
 
     • ISO 21434概述
 
     • ISO 21434合规
 
     • 为什么推荐MISRA C:2012修订版1和CERT C指南?
 
     • 什么是ISO 21434工具?


什么是ISO 21434?
 
ISO 21434“道路车辆——网络安全工程”是一项汽车标准。它重点关注道路车辆电子系统的网络安全风险。


ISO 21434概述
 
ISO 21434将网络安全工程化应用到车辆生命周期的所有阶段——从设计直到退役。这适用于车辆中的所有电子系统、组件和软件,以及任何外部连接。
 
而且,该标准为开发人员提供了一种全面的方法来实现跨越整个供应链的安全保障。


为什么ISO 21434很重要?
 
随着无线网络(Wi-Fi)和蓝牙(Bluetooth)等汽车连接应用的增加,以及自动驾驶汽车的发展,网络攻击和后续损害的风险也在增加。目前的安全关键标准不足以涵盖这类风险,因此需要制定新的指南和标准。
 
该标准旨在提供一个结构化流程,以确保在汽车产品的整个生命周期内都考虑到网络安全问题。
 
该标准要求汽车制造商和供应商在实施网络安全工程时尽职尽责,并将网络安全管理应用于整个供应链以支持其实施。
 
其目的是让公司鼓励一种网络安全文化,以便所有的设计从一开始就将安全问题考虑在内。


ISO 21434合规
 
ISO/SAE 21434对软件开发有特定的要求,包括分析以检查是否存在固有缺陷,以及在网络安全要求方面是否保持整体一致性、正确性和完整性。
 
网络安全应该是所有设计决策的重中之重,包括选择用于软件开发的编程语言。
 
在选择编程语言时,有几个标准需要考虑,包括:
 
    • 安全的设计和编码技术。
 
    • 明确的语法和语义定义。
 
但是,其中一些标准在选定的语言中可能没有得到充分地处理。这就是为什么会有几种解决这些语言缺陷的方法,包括:
 
    • 使用语言子集。
 
    • 强制执行强类型。
 
    • 使用防御性实现技术。
 
鉴于此,我们建议您使用编码指南来解决所选语言的缺陷。


为什么推荐MISRA C:2012修订版1和CERT C指南?
 
众所周知,像C和C++这样的编程语言包含一些可能导致关键的或非特定行为的特性。在一个安全的系统中,这是不可接受的。禁止使用这种带有语言子集的语言结构可能会允许在有网络安全需求的系统中采用这种语言。
 
C语言仍然是汽车软件中最常用的语言。在ISO/SAE 21434中,特别推荐MISRA C:2012修订版1和CERT C指南用于任何使用C语言的项目。
 
创建语言子集是MISRA C:2012和CERT C指南的核心。MISRA C:2012修订版1声明:“MISRA C指南定义了C语言的一个子集”。
 
这两个指南都是通过防止使用可能导致关键或非特定行为的功能来实现这一点的。
 
例如,MISRA C:2012修订版1规则21.5禁止使用signal.h中的函数,规则21.21禁止使用函数‘system’。
 
类似地,CERT C规则11Signals(SIG)阻止特定的信号处理程序,ENV33-C不调用system()。
 
强类型可以确保对语言数据类型的理解,从而防止某些类的编程错误。使用具有强类型的编码指南能够确保正确性和一致性。
 
MISRA C:2012修订版1具有基本类型模型,该模型专门用于强制执行强类型,而CERT C在单个规则(如INT32-C)中隐式地处理强类型,防止有符号整数溢出。
 
防御性实现技术使软件即使在不可预见的情况下也能继续运行。这需要考虑“可能会发生什么”。例如,需要考虑可能受污染的数据,理解算术函数的计算顺序。最重要的是,代码需要简单易懂。
 
所有防御性实现技术都应该从使用公认的编码指南开始。MISRA C:2012 修订版1和CERT C都通过识别关键的、非特定的语言行为来实现这一点,从而使生成的代码更可靠,更不容易出错,更容易维护。
 
CERT C是一项完整的语言安全标准,因此它被设计用来识别网络安全中特有的漏洞。而MISRA C:2012 修订版1定义了一个适用于安全性的语言子集,并有专门用于防御性实现技术的规则,包括switch语句(规则16.2和16.3)和资源管理(规则22.x)。


什么是ISO 21434工具?
 
为了有效地识别漏洞和缺陷,并执行推荐的编码指南(如MISRA和CERT C),您应该使用行业标准化工具,特别是静态代码分析工具。
 
诸如Helix QAC之类的静态代码分析工具既可以验证是否符合编码指南,也可以提供相应的合规证明。这将提供与网络安全要求相关的整体一致性、正确性和完整性。
 
软件工具是任何车辆开发的重要组成部分,必须根据对产品网络安全的影响对其进行管理。这包括验证工具,比如静态分析工具。
 
有必要确保在开发流程中使用的任何工具不会对网络安全产生负面影响,这包括管理工具,以确保访问受到控制,并得到正确使用。需要证据来显示如何管理工具,其中将包括经过验证的结果。
 
适当的工具将使合规更简单,而像Helix QAC这样的静态分析工具可以提供符合生产安全、可靠的软件所需的开发指南。
 
Helix QAC完全符合MISRA C:2012和CERT C指南,并且已被TÜV-SÜD认证可用于安全关键系统,将让您更容易验证软件不受常见的代码安全漏洞的影响。
 
此外,通过使用像Helix QAC这样的静态代码分析工具,您可以通过以下方法加速实现合规:
 
    • 执行编码标准并检测违反规则的情况。
 
    • 在开发早期检测合规问题。
 
    • 加速代码审查和手动测试工作。
 
    • 随着时间的推移,报告不同版本产品的合规性。
 
欲了解Helix QAC将如何帮助您加速实现合规,立刻申请免费试用吧。