在“新四化”的促进下,汽车正在成为和智能手机、电脑一样与人类生活紧密相关的交互工具,而不再只是代步交通工具。在此种新业态下,软件在汽车的制造过程中占据越来越重要的地位,这便是“软件定义汽车”的新时代。汽车软件的开发,供应链涉及诸多安全问题, 本文以新思科技服务汽车生产厂商总结的经验为主,探讨如何在汽车软件开发过程中保障供应链安全。
汽车已经成为全新生活场景的链接者,从代步工具发展到“第三空间”。工业和信息化部表示,2022 年上半年L2 级辅助驾驶乘用车新车市场渗透率达到 30%。所谓 L2 级别的自动驾驶,即车辆实现部分的自动化,系统和人一起控制汽车。智能化是汽车产业的变革趋势, 不仅需要硬件的支持,也需要软件的互联和平台的开放。新思科技指出,软件安全为智能网联汽车产业规模化发展奠定基础。
软件成智能网联汽车长远发展核心
智能网联汽车行业需要“智慧”与“安全”并行,才能行稳致远。
“软件定义汽车”已成为汽车行业的发展趋势。过去,一辆汽车包含 1 亿行代码,而随着智能座舱和自动驾驶的引
入,代码开始向着 10 亿行量级迈进。与此同时, 软件开发方式也在发生日新月异的变化。传统的汽车开发模型采用的是 V 字形开发流程,也就是典型的立项、需求、架构、设计、编码测试的过程, 更像是传统 Waterfall 瀑布式开发模型。
但随着汽车行业的产品迭代周期越来越短, 软件的开发频率和迭代频率将越来越快,汽车的开发模式也会从原先传统的 V 字形模型向 DevSecOps 模型转移。DevSecOps 模式能够保持开发速度的同时, 在开发流程的早期发现漏洞以降低成本。并且,车企也在使用静态代码分析、软件组成分析、模糊测试、动态应用安全测试等各种方式实现大批量测试自动化。
软件质量和安全性有欠缺,最严重的会直接危及整车的安全以及汽车功能安全,从而影响到乘车人的人身安全。此外, 现在的智能汽车会采集大量的个人数据, 个人数据本身所代表的信息安全问题也在当前的智能网联汽车上出现。
现在,汽车增加了许多交互功能,收集大量有利于改善生活、提高效率的信息。同时,数据信息采集过程中涉及的个人隐私和数据安全。因此,当交互功能出现的时候,就出现了安全问题。作为一个厂商, 首先应该遵从于国家对于隐私数据的定级。国家会有一些指导性的方案来界定个人隐私、数据合规与否。基于此, 厂家根据以上标准来帮助汽车厂商降低风险。
可见,智能网联汽车产业发展的关键在于质量、安全、速度、效益、合规等方面相统一,推动全产业链发展。
应对软件供应链安全挑战
汽车软件系统涉及层面复杂,供应链长,需要治理的环节多,安全防护难度大。如何应对供应链安全挑战是智能车企必须解决的事情。
术业有专攻。现在整个社会的专业是非常多样性的, 也从而催生出来了新思科技在内提供软件质量与安全解决方案的厂商。汽车厂商和新思科技本质上是专攻两个不同方向, 汽车厂商专攻做汽车相关的功能, 新思科技则帮助汽车厂商把产品做得更完善、更安全和更可靠, 是一个合作共赢的关系。
汽车厂商的开发人员需要大量用到开源软件,但是对于一个开发人员,可能并不具备足够广阔的知识面来判断这些开源软件是否能用。比如法律风险领域,开发人员往往是不理解的,或他们对相应的法律风险关注度不够。开发人员面对成百上千万的开源软件, 但他们甚至都不知道代码里面调用了哪些开源软件。
现在的编译系统都非常智能,会自动去解决编译所依赖的问题。所以当这些情况出现的时候,开源的风险已经通过软件供应链进入到系统里面。但是汽车的软件开发人员并不知道风险已经被引入, 这时候就需要新思科技这样的服务商来帮助汽车厂商准确识别风险, 并且帮助企业制定好策略, 规避进一步的风险。
首先,业界需要了解与网联汽车相关的安全风险。
第一,需要整体了解网联汽车生态系统。网联汽车有很多界面,包括多个网关和外设,例如远程通信控制单元 (TCU) 和车载信息娱乐系统 (IVI)。这些设备与互联平台进行通信,比如后端服务、云服务、移动设备和应用等。因此,不法分子可以针对外设进行直接攻击,或者通过系统漏洞进行间接攻击。
再者,软件数量的爆炸式增长,意味着需要治理的软件增多,包括自研软件、第三方软件或者开源软件。另外,车企还需要考虑供应链。一家公司不可能独立开发所有的软件, 会使用到供应链中不同方开发的软件。
还有,合规性也不容忽视。智能网联汽车和自动驾驶汽车领域已经出台或者正在制定相关法律法规及行业标准, 以保护人身安全和隐私数据,包括 ISO/ SAE 21434, 还有 OpenChain 项目汽车工作组发布的 ISO 5230 标准等。这些标准定义了汽车电子电气系统的网络安全风险管理要求, 面向开源软件许可证提出了要求。车企,尤其是那些开拓海外市场的汽车制造商, 不仅需要克服技术挑战,管理软件开发生命周期和供应链中的风险,还要确保软件符合客户及监管机构的重要国际标准。中国也已完成第一阶段智能网联汽车标准体系的建设, 未来将新增 100 余项智能网联汽车的标准。
为帮助智能网联车企应对软件供应链挑战,新思科技提出三点建议:
1. 提升软件透明度。汽车制造业会
创建物料清单,记录各种原料、零部件等详细细节。软件物料清单 (SBOM) 对于软件安全治理来说也是不可或缺的,可以记录用于构建软件的各种组件的详细信息和供应链关系等,提升软件透明度。SBOM 有多种格式, 包括 SPDX、SWID 和CycloneDX 等。
2. 落实软件供应链各方职责。软件已经深度参与到汽车的定义、开发、验证、服务等过程中。很常见的一个场景是, 供应链二级供应商为一级供应商提供软件,一级供应商将软件集成到系统应用, 然后将其提供给原始设备制造商。整个供应链环环相扣,明确各方的职责可以减少疏漏,比如规定须由哪方进行威胁分析和风险评估 (TARA) 等。
3. 信任, 但要核查。当车企考虑如何处理软件供应链风险时, 可以选择两种做法, 尤其是供应商只提供二进制文件的情况下: 完全相信供应商所说的二进制文件中实际包含的内容 ; 可以运行软件组成分析工具,例如新思科技 Black Duck 软件组成分析,并进行二进制扫描以识别包含的组件。
构建可信的软件生态系统
当前,汽车产业已经进入深度变革期,软件与汽车业快速融合。以电动化、网联化、智能化、共享化为代表的“新四化” 成为汽车产业发展的新方向。软件作为其中的核心组成部分,在汽车整车内容结构的占比快速提升,构建智能网联汽车安全可信的软件生态迫在眉睫。汽车是非常典型的强供应链行业,一环扣一环, 每一环的质量和安全性都可能会影响到最终成品的质量和安全性。软件也不外乎于此。虽然软件的供应链比传统的供应链环节可能更压缩, 但软件本身或者软件质量和安全也是处在供应链的环节中。现在的代码 70% 到 80% 都包含了开源组件, 把这些开源代码的质量和安全管控好, 就非常有实际的意义。
从统计数据来看,开源软件的平均质量比私有代码的质量要高。开源软件经过大量的使用和考验, 比商业软件的质量相对更好。不过,一旦出现问题,也就意味着其问题的影响面会更广。所以从软件供应链入手,把用到的开源软件, 甚至下一步的商业组件进行管理、梳理、实时监控,对于加强软件安全保障是很有帮助的。
除了开源软件外,自研部分的算法代码的安全与可靠性如何提升?
利用自动化测试工具是现在普遍采用的一种方式。通过白盒检测,在开发阶段就可以识别潜在的质量问题所导致的安全缺陷, 避免缺陷在生产阶段流入到其他环节。此外,还有进一步的动态测试、模糊测试等各种各样的测试手段和流程手段来保障目前的汽车软件生态可信。
比如,Coverity 静态应用安全测试, 可以解决编码阶段由于代码的疏忽或水平有限等导致代码缺陷甚至漏洞。同时, 新思科技也支持汽车行业内的一些合规的规范类的检查, 比如 MISRA、AUTOSAR 等等。
Defensics 模糊测试, 可以检测信息娱乐系统上的各种近场远场通信的接口,以及车上现在很典型的 CAN BUS、CAN FD、下一代的车载以太网等。甚至对汽车上播放的各种文件进行测试; Black Duck 软件组成分析,识别开源软件中的已知漏洞,生成供应链管理的软件物料清单, 针对新检测到的漏洞发出警报;安全服务,可提供最佳实践咨询, Tara 渗透测试、安全测试、渗透测试服务以及差距分析 / 补救计划等。
此 外,汽车制造商还可以借助软件安全构建成熟度模型(BSIMM, the Building Security In Maturity Model)在内的业界安全实践模型,规划、执行、评估和完善其软件安全计划,以持续满足市场和法规的要求。
软件已经深度参与到汽车的定义、开发、验证、服务等过程中。在未来行业竞争中, 智能网联汽车安全将是企业重要的核心竞争力,尤其是软件安全,因为“软件定义汽车”已经成为业界共识。软件安全会成为影响消费者决策的重要因素,也是推动产业长久、稳定发展的驱动力。当然,这不是任何一家车企、供应商或者科技公司可以单独完成的。而是需要建立完善的流程和机制, 采用可靠的工具, 才能提升产业链供应链的韧性,进而为网联汽车构筑安全底座。(文︱杨国梁 新思科技中国区软件应用安全业务总监)