代码质量与合规 | 汽车网络安全标准ISO 21434解析及实施方法建议
ISO 21434是一个帮助汽车开发商、原始设备制造商及其供应商确保车辆安全的标准。随着现代车辆更加地互联,以及自动驾驶汽车的增加,确保汽车软件能够安全地设计与实施就变得格外重要。
本篇文章将告诉您什么是ISO 21434,并为汽车嵌入式软件开发团队提供一些建议。
什么是ISO 21434?
ISO 21434《道路车辆——汽车网络安全工程》是一项汽车行业标准。它主要关注道路车辆电子系统中的网络安全风险。
ISO 21434涵盖了车辆生命周期的所有阶段——从开始设计到车辆报废,通过应用网络安全工程来确保车辆的安全性。这适用于车辆中的所有电子系统、零部件和软件,以及任何外部的连接。
此外,该标准为开发人员提供了一个全面的方法来实施覆盖整个供应链的安全保障措施。
为什么ISO 21434很重要?
随着车辆的连接性增加(例如Wi-Fi和蓝牙)以及自动驾驶汽车的发展,网络攻击和造成损害的风险也在增加。
建立ISO 21434标准的目的是提供一个结构化的流程,确保汽车产品在整个生命周期中都考虑了网络安全问题。
这个标准要求汽车制造商和供应商在实施网络安全工程时必须保持应有的审慎,并且在整个供应链中应用网络安全管理来支持此过程。它鼓励企业建立网络安全文化,并从一开始就将安全考虑纳入所有的设计中。
符合ISO 21434标准
ISO/SAE 21434对软件开发有着具体的要求,包括检查潜在的弱点的分析,以及确保网络安全要求相一致、正确和完整。
网络安全应处于所有设计决策的最前沿,包括选择用于软件开发的编程语言。
选择编程语言时需要考虑几个标准,包括:
安全的设计和编码技术 明确的语法和语义定义
然而,所选的语言可能并不能完全满足这些标准。因此,有几种方法可以解决这些语言的缺陷,包括:
使用语言子集 强制执行强类型 使用防御性的实施技术
我们建议使用编码指南来弥补所选择的语言的不足。
为什么ISO 21434推荐使用
MISRA C:2012修订版1和CERT C指南?
众所周知,C和C++等编程语言包含了一些特性,可能会导致程序在某些情况下表现出不确定或不明确的行为。在安全系统中,这是不可接受的。您可以通过限制使用某些具有风险的语言结构和语言子集,从而降低程序出现网络安全问题的可能性,使编程语言适用于网络安全要求较高的系统。
C语言仍然是汽车软件中最常用的语言。ISO/SAE 21434特别建议使用C语言的项目使用MISRA C:2012修订版1和CERT C指南。
创建语言子集是MISRA C:2012和CERT C指南的核心。MISRA C:2012修订版1指出:“MISRA C指南定义了C语言的子集”。
这两个指南都是通过限制使用某些具有风险的功能来实现这个目的。
例如,MISRA C:2012修订版1中,规则21.5规定了禁止使用<signal.h>中的功能,规则21.21规定了禁止使用“系统”功能。
同样,CERT C规则信号11(SIG)中规定了阻止特定的信号处理程序,ENV33-C不再调用system()。
强类型确保对于语言数据类型的理解,防止某些类型的程序编制错误。使用具有强类型的编码准则可以确保编码的正确性和一致性。
MISRA C:2012 修订版1拥有基本的类型模型,专门用于强制执行强类型,而CERT C则在个别规则中隐蔽地解决了强类型问题,例如INT32-C规则可防止有符号整数溢出。
防御性实施技术(Defensive implementation techniques)使软件能够在意外情况下继续正常运行。它需要考虑“可能会发生什么”。例如,考虑可能的污染数据,以及理解算术函数的求值顺序。最重要的是,代码需要简单易懂。
所有防御性实施技术都应该从使用公认的编码准则开始。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),您可以通过以下方式加速验证合规:
实施编码标准并检测规则冲突 在开发早期检测合规性问题 加速代码审查和手动测试工作 报告不同时间、不同产品版本的合规性
龙智即将亮相ACT汽车电子与软件技术周
带来大规模、安全、高效的开发解决方案
正如上文所说,软件工具在任何车辆开发过程中都是不可或缺的一部分。Perforce静态代码分析解决方案中的两款工具(Helix QAC和Klocwork)针对不同开发语言,为汽车软件开发带来了高质量、低维护、符合标准和法规的代码。
在即将举行的ACT汽车电子与软件技术周上,龙智带来集成了Perforce静态代码分析工具的汽车行业解决方案,助力大规模团队轻松协作、加速创新,并开发安全、可靠、合规的汽车软件。
诚挚地邀请您于8月17-18日(周四-五)莅临#26龙智展位!除了展示Perforce静态代码分析解决方案外,我们还带来了版本控制Helix Core、项目管理Jira、知识库Confluence,以及基于Jira Service Management的ITSM等解决方案,帮助汽车企业实现敏捷与高效开发,提升产品的安全与合规性,并加强团队协作,更好、更快地交付产品。
临展位还能参与精彩的抽奖活动,赢取丰厚奖品。龙智DevSecOps专家也将在现场与您面对面交流,为您解答各种关于汽车软件开发的问题,分享我们的最佳实践和经验。
立即了解Klocwork和Helix QAC如何帮助您符合ISO/SAE 21434标准,请联系Perforce中国授权合作伙伴——龙智:
官网:www.shdsd.com
电话:400-666-7732
邮箱:marketing@shdsd.com