随着汽车软件的占比和代码量激增,软件缺陷/漏洞带来的安全风险和解决安全隐患的难度越来越大,车企的话题从「是否需要解决问题」转向「怎样解决问题」。那么,当前汽车行业软件安全面临哪些挑战、又该如何应对呢?
从“软件定义汽车”的由来谈起年4月份的IEEE会议中,“软件定义汽车”(SDV,SoftwareDefineVehicle)的概念首次被提出;年,时任百度高级副总裁、无人驾驶事业部负责人的王劲再次将这个词带到了中国公众视野里;年,大众汽车集团CEO迪思提出:在不远的将来,汽车将成为一个软件产品,大众也将会成为一家软件驱动的公司。近几年,“软件定义汽车”被反复提及,国内外知名厂商、汽车行业从业者和媒体纷纷诠释着自己的理念,对其概念的解读也从未停止,智能电动汽车的领先者——特斯拉的示范效应更是频频激发大众的热情。越来越多的人认识到:汽车的价值体现不在于堆砌硬件,而是充分发挥软件汽车的价值。
软件之于汽车的重要性体现在哪些方面?软件价值不断提升,未来软件和服务能力将成为汽车产业最重要的竞争力。那么,对于汽车行业而言,软件的重要性体现在哪些方面呢?
软件驱动下,边际研发成本降低。软件功能可以灵活复制到其他车型,同一功能无需在不同车型上开展大量重复性定制开发工作,且可以通过OTA将新软件版本推送到该领域的所有车辆,将显著降低研发边际成本。软件是用户体验提升的关键。在整个汽车发展过程中,人始终是核心。传统汽车主要满足安全性、舒适性等基本需求,而用户对汽车的需求不断上升,生活、工作、娱乐等层面的个性化需求则要通过软件来满足。缩短研发周期。在软硬件解耦的体系结构中,硬件和软件可以按照各自独立的开发时间线和更新周期自由发展,不仅可以同步进行平台化开发,还可保持差异化上市和持续升级迭代,从而大大缩短产品的研发周期。除以上提及的内容外,软件还丰富了汽车的功能、增加了用车全生命周期的互动,随着自动驾驶、智能座舱领域逐步成为绝对价值高地,未来软件的重要性还将持续增加。
软件安全挑战更加突出与汽车软件蓬勃发展相对应的是汽车制造商正面临着新技术带来的软件安全挑战。
软件规模激增、软件代码量越来越庞大
整车电子电气架构正逐渐从分布式架构转变为集中式的控制架构,多个传统ECU功能集中在一个域控制器,对于一个域控制器中的软件要求越来越高。而且汽车的各个部分都由软件控制,软件规模也越来越大。汽车软件复杂度增加,代码量也随之剧增。高端汽车代码量已远多于PC和智能手机操作系统,且呈指数级增长中,如今一辆高端汽车的代码量可达1亿行,亿欧智库预计到年每辆智能汽车的软件代码量将达到5亿行。
因软件缺陷导致的召回事件增加
庞大的代码量代表着会引入更多的缺陷,汽车召回的原因从传统的硬件故障拓展到软件层面的问题,比如奔驰大规模召回事件与其车辆通信模块软件设计缺陷有关,部分车企如特斯拉和丰田也曾因驾驶辅助功能相关的问题而发起召回。
软件供应链安全难保障
汽车使用的大多数软件组件来自不同的供应商,其中很大一部分包含开源组件,尽管目前多家OEM都用的是自研体系,但也会用到很多开源社区的组件,安全漏洞、许可证和运维风险都会对供应链安全造成影响。此外,新功能新需求的出现往往没有过多的经验可以遵循、致使软件需求不断迭代,复杂场景组合与庞大代码量使得测试验证的充分性难以保证等情况也为软件安全带来了严峻考验。
汽车软件安全监管现状为应对各类安全问题,国内外的立法机构、国际组织也在不断的更新相关法规和标准。确保软件符合关键的行业标准和准则是所有类型车辆的汽车软件开发过程中的重要部分。《年汽车软件开发状况报告》显示,无论是基于市场要求、客户要求还是内部要求,调查的大多数人都被要求遵守ISO(80%)、ISO/SAE(78%)和ISO/PAS(64%)。今年5月,工信部开展了《汽车整车信息安全技术要求》等四项强制性国家标准的制修订,并形成了征求意见稿,公开征求社会各界意见。该标准推出后或将帮助智能网联汽车的生产企业和相关机构更好地实现并验证整车信息安全需求。
目前汽车行业软件研发的趋势为了保障软件安全、加快开发速度、提升企业竞争力,车企在软件架构和开发模式上进行了许多变革。
促进软硬件解耦
根据麦肯锡的研究,如果汽车软件的模块化程度不够,就会使设计复杂度提高,也会提高项目的整体难度。汽车软件的架构构件边界往往不理想,由此导致的相互依存关系使开发人员在添加新功能时必须修改的构件数量成倍增加,而且检测到缺陷时,需要更长的时间和更高的专业水平来追踪特定软件模块和开发团队的错误。提高标准化和模块化程度,促成软硬件之间的解耦,可以降低软件复杂度、实现最佳的可移植性、缩短上市时间并节省成本,软硬件如何解耦是主机厂和供应商一直在想办法解决的问题。
引入敏捷开发
目前应用V模型进行软件开发是整车厂的主流,但传统的V模型软件开发太过复杂庞大,周期较长。而为了在竞争中保持领先,软件需要反复迭代以满足用户对于功能升级的需求,因此整车厂开始引入敏捷开发模式,希望能够在部分需要快速迭代的软件功能开发上,实现对消费者需求的快速满足。当然,汽车行业使用的敏捷工具必须能够处理系统复杂性、与硬件开发之间复杂的相依关系、以及网络安全、车辆安全性和质量相关的严格法规要求。
从测试的角度出发,如何应对汽车软件安全风险汽车行业法规、标准对汽车产品的安全提出了严格要求,未来汽车软件的安全门槛定会进一步提高,加上汽车软件研发模式变化带来的新局面,在与安全隐患的对战中,众多厂商对软件测试投入了更多人力和精力。
测试左移
一般来说,产品越是接近用户使用或者说已经是在用户使用的阶段,修复的成本就越高,汽车行业也是如此,通过更早地进行测试,可以更轻松地识别和解决软件安全漏洞、错误和缺陷。《年汽车软件开发状况报告》显示,有73%的受访者已经或正在实施“左移”策略,意味着他们采用了在软件开发生命周期的早期进行测试的方法。
测试自动化
在汽车行业中,使用了静态代码分析、动态程序分析、漏洞扫描、渗透测试和模糊测试等安全测试技术来减少系统中的漏洞。面对日益膨胀、复杂化的汽车软件系统,“人海战术”浪费人力资源且效率低下,部分“自动化”测试工具适用于减少重复工作,仍依赖测试人员经验,只能作为辅助工具。
采用真正自动化的测试工具可以起到事半功倍的效果,比如模糊测试,模糊测试不依赖测试人员和外部经验,能持续自动生成用例,对软件充分测试,挖掘深层/未知缺陷,保障软件本质安全。
据悉,大众汽车DiscoverMedia信息娱乐系统的漏洞(CVE--)——可能会使未打补丁的系统遭到拒绝服务(DoS)攻击——就是其用户通过模糊测试发现的,这也表明了通过模糊测试保障汽车软件安全的必要性。而且,ISO/SAE也早已提出了系统集成应结合模糊测试进行验证和测试。
国内外不乏关于模糊测试在汽车行业应用的研究和落地案例。国外如德国大陆集团,针对汽车智能座舱行代码进行模糊测试,花了全部测试1%的时间,实现了95%代码覆盖率,发现了大约57%的漏洞。国内企业如安般科技,提出了可适用于汽车软件开发全流程的测试解决方案,在汽车行业积累了大量客户和丰富经验,例如,某车载多媒体软件已通过SAST静态分析工具充分扫描,使用安般易恒智能模糊测试工具进行测试,运行1小时,总执行次数6万次,发现了两个未被静态工具发现的问题:缓冲区溢出和内存泄漏(均可导致系统无法正常运行),同时实现语句覆盖率45.3%,函数覆盖率56.5%,分支覆盖率32.7%,极大提升了其软件的稳定性和安全性。
尽管汽车行业软件安全问题难以完全解决,但相信在国家层面、整车厂、供应商及多个领域和行业共同努力下,软件安全保障建设会进一步加快,充分释放软件的价值。
来源:安般科技
未经允许请勿转载
转载请注明:http://www.0431gb208.com/sjsbszl/7757.html