关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯
在汽车电子系统发展的早期,汽车电子基础软件是没有统一标准的,各个 OEM、Tier1、Tier2 等厂商针对不同领域的不同型号 ECU 开发不同的软件,开发工作量大、成本高。一些问题逐渐显露出来,如由于实时操作系统的应用程序接口不同而导致的应用程序移植性差等。随着汽车电子技术的不断发展,1993 年德国汽车工业界提出了 OSEK 汽车电子开放式系统及其接口的体系,这是汽车电子基础软件最初的行业标准,解决了应用软件移植和重用的问题。但随着汽车智能网联化的飞速发展,传统的汽车电子架构已经不能满足整车的业务需要,汽车电子架构正朝着由封闭到开放、由分布式到集中式,软件定义汽车、面向服务的软件架构的出现,都对汽车电子基础软件的发展提出了新的挑战。同时,汽车智能网联化伴随来的还有信息安全问题,不论是驱动、OS 或是中间件,一旦遭受到信息安全攻击,将不能安全稳定地为汽车服务提供支撑,那么汽车会处于未知的风险中,不但影响驾驶体验,甚至可能威胁生命。因此,一些基础软件相关信息安全标准应运而生。
01.
生命周期要求
2016 年,美国汽车工程师学会(SAE)发布了 SAE J3061 (Cybersecurity Guidebook for Cyber-Physical Vehicle Systems),其提供了车辆网络安全的流程框架和指导,考虑了车辆的整个生命周期,从概念到生产、运行、维护和报废。旨在帮助企业识别和评估网络安全威胁,导入网络安全到车辆的整个开发流程内。
2021 年 8 月,国际标准化组织(ISO)和 SAE 联合起草发布了 ISO/SAE 21434 《道路车辆信息安全工程》(Road vehicles - Cybersecurity engineering),ISO 21434 是基于 SAE J3061 制定的,针对车辆整个生命周期的标准。其主要从风险评估管理、产品开发、运行维护、流程审核等四个方面来保障汽车信息安全工程工作的开展。目的是通过该标准设计、生产、测试的产品具备一定信息安全防护能力。从组织 / 企业级、项目级、分布式开发、持续网络安全管理、概念阶段、产品开发阶段、后开发阶段等明确了关于流程要求、人员职责分配要求等。提供了威胁分析与风险评估(TARA)统一的方法论,便于在产品开发过程中进行漏洞的分析、定级以及安全目标的制定。该标准对汽车软件开发的信息安全过程提出了要求,相关要求适用于汽车基础软件。
02.
软件平台规范
2003 年 7 月,AUTOSAR(AUTomotive Open System ARchitecture)组织建立,旨在为汽车电气/ 电子构架开发一套开放的行业标准。AUTOSAR 核心成员主要由宝马、博世、大陆、戴姆勒、福特、通用、标致、丰田、大众这 9 家世界顶级主机厂和供应商组成,目前在全球范围内已发展成为包含 220+ 家合作伙伴,覆盖整车 OEM 厂商、零部件供应商、软件供应商、芯片和硬件供应商、测评服务等汽车产业链相关企业和机构的国际化组织。
AUTOSAR 平台是目前国际上广泛认可的汽车电子系统基础软件平台(包括汽车操作系统),在发布4.2.2 版本后,AUTOSAR 的标准体系分为基础标准(Foundation)、经典平台(classic platform)、自适应平台(adaptive platform)和符合性测试(Acceptance Tests)等 4 个部分。在 AUTOSAR 经典平台中,以硬件安全模块(HSM , Hardware Security Module)为基础,提供了密码服务方面的层次架构,使得AUTOSAR 经典平台的服务分为四个方面:系统、存储、密码和通信。基于密码服务,AUTOSAR 经典平台提供了安全通信组件 SecOC(Secure Onboard Communication),为车内网络 ECU 之间的通信提供了真实性、完整性方面的保护能力。此外,为了保证对信息安全持续监控的实现,AUTOSAR 从基础软件角度提供了 IDS(Intrusion Detection System,入侵检测系统 )。
在目前常见的 4.4.0 版本中针对信息安全做出了以下改进:
安全事件内存(Security Event Memory)
密钥管理 / 密钥分发(Key Management / Key Distribution)
认证同步的时间(Authentic Synchronized Time)
针对诊断访问的动态权限管理(Dynamic Rights Management for Diagnostic Access)
改进的证书处理(Improved Certificate Handling)
另外,针对 V2X 的通信安全,AUTOSAR 标准也提出了一系列的信息安全要求,包括消息签名的加密验证、端到端安全、证书管理、应用程序安全相关机制等。
03.
软件代码级规范
嵌入式系统常用的 C 语言是一种 “不安全” 的语言,例如 C 语言的指针很容易导致堆栈溢出、内存泄漏等各种问题。规范代码的格式是有效解决办法之一,即不要使用比较容易出错的代码格式。
1998 年,汽车产业软件可靠性协会(MISRA)针对 C 语言易出错的特性,提出了 C 语言的编码规范 MISRAC;旨在提高关键应用程序中 C 代码的可靠性,重点是避免容易出错的功能,而不是强制执行特定的编程风格。MISRAC 最初就应用于汽车行业,后经过两次修订。当前版本是 MISRA C:2012,在此版本的 Amendment 1 中,提供了针对信息安全的代码规范。
随着汽车为了提供更多更强大的功能,车载嵌入式软件和物联网设备越来越多,更多的代码连接到Internet。研究表明,汽车上已包含超过 1 亿行代码,对于如此大型,复杂的系统,我们必须开始认真对待软件安全性。嵌入式软件中的安全漏洞增加了恶意行为者攻击的机会,这些攻击会注入恶意软件、窃取信息或执行其他未经授权的任务。
2008 年 10 月,美国软件工程学院(SEI)提出了 CERT C 编程语言安全编码规范,其目的是通过避免对安全性问题更敏感的编码结构来开发符合功能安全、信息安全的可靠的系统。它更加关注安全的编码实践,而不仅仅是症状(例如,始终验证输入是一种安全的编码实践,而 SQL 注入是一种症状)。CERT 分析了哪些准则最为关键,可以对其进行认真分析,然后分为应遵循的 “规则” 和不太重要或缺乏声音分析能力的 “建议” 。这有助于快速将静态分析结果调整到最关键的水平。安全编码实践更大程度地消除了这些漏洞,减少了 “恶意软件” 、“窃取信息” 或 “执行其它未经授权的任务” 等攻击行为的攻击面,减小了恶意行为者攻击的机会。
CERT 提供了较为全面的安全措施,如敏感信息的保护、注入或劫持的预防等等是值得所有开发人员学习的。但 CERT 更专注于安全问题,适合与其他规范配合使用。
04.
数据安全规范
AutoMat Common Vehicle Information Model:欧盟于 2018 年 3 月发布了其 AutoMat 项目所研究的通用车辆信息模型(CVIM:Common Vehicle Information Model),即开放和品牌独立的车辆大数据模型。针对大量持续收集的汽车数据,AutoMat 项目的核心意图是利用目前从联网汽车收集的未使用信息,为汽车大数据创新一个开放的生态系统,以跨境汽车大数据市场的形式实现。与市场的接口来自一个通用车辆信息模型 (CVIM),该模型使跨行业服务提供商可以访问来自各个 OEM 厂商挖掘的匿名车辆数据。随着来自汽车的大量易失性数据,AutoMat 生态系统极大地建立在当前大数据趋势的基础上。该规范提供了模型的架构、概念和方法、信号层规范、测量层规范、数据层规范。
05.
其他规范
NISTSP800是美国国家标准与技术研究院NIST(NationalInstituteofStandardsandTechnolgy)发布的一系列关于信息安全的指南,已成为美国和国际安全界广泛认可的事实标准和权威指南。例如,NIST SP 800-131A 定义了有效的密码算法,以及需要的密码算法参数值以能够在特定的时间段内实现特定的安全强度。
2002 年 12 月,NIST 发 布 了 FIPS Publication 140-2(Federal Information Processing Standards 140),该标准是针对密码模块的安全需求,为密码模块评测、验证和最终认证提供基础,作为联邦信息处理标准在政府机构广泛采用。