对汽车安全的重视,我们做的可能还不够。
我们不得不承认一个事实,当汽车越来越智能的时候,随之而来的风险也越来越大。
这不是一个耸人听闻的说法。早在前几年,菲亚特克莱斯勒就由于车机被黑客入侵后远程遥控而进行了大规模召回,更不用说因为「网红效应」而被各种破解的特斯拉,以及系统不稳定经常出现「死机」的新晋网红蔚来 ES8。总之,一旦汽车软件出现问题,那么就会对驾驶安全带来很大的隐患。
特别是当自动驾驶、网联化离我们越来越近的时候,车辆结构也变的更复杂。目前汽车电子架构可能是由 60~100 个 ECU 以及 6~8 个独立的系统组成。但随着智能化加快,未来汽车会由 6~10 个高性能计算平台(HPC)组成,软件系统也会实现整合,并且具有 OTA 的能力。
数据能够很直观的告诉我们可能存在的风险。卡耐基梅隆大学软件工程学院的一份报告指出,在美国开发的代码平均每个功能点会有 0.75 个缺陷,每一百万行代码就会有大约 6000 个缺陷。
而达到「很好」级别的代码,则要求每一百万行代码的缺陷数量为 600~1000 个;「优异」级别的代码要求是少与 600 个。(缺陷中大约有 1~5%的部分会成为漏洞)
换句话说,即使所有代码都达到了「很好」的级别,按照目前汽车平均 1 亿行代码来计算,每辆车里都可能有 10 万个缺陷以及 1000~5000 个漏洞。
这些缺陷以及漏洞可能会造成什么样的风险?没有人可以预测。
「安全白皮书」
当然,这篇文章并不是想危言耸听。既然有风险,肯定就有应对的办法。
在汽车软件以及安全领域,Blackberry QNX 是绕不开的一个参与者。 在前两天,GeekCar 有机会和 Blackberry 技术解决方案部(BTS)销售与营销高级副总裁 Kaivan Karimi 聊了聊关于智能化进程中,他们对于汽车安全的看法。
关于 Blackberry QNX,其实行业内的小伙伴都不会陌生。2010 年,Blackberry 宣布收购 QNX。Blackberry 本身在安全领域就有超过 30 年的经验,曾经很热门的手机业务就是以安全和商务为最大卖点。QNX 作为汽车领域最大的操作系统供应商,为安全认证软件提供支持已经超过 35 年。
Kaivan Karimi 告诉 GeekCar,对于汽车领域可能存在的风险,QNX 运用多年的行业经验,总结出了一套「指导方针」。无论是主机厂还是供应商,只要遵循这份保护汽车免受网络安全威胁的建议框架,就能预防绝大多数的风险。即使出现可能影响驾驶的漏洞,也能很快进行修复。
这份《汽车网络安全——BlackBerry 的七大关键标准建议》概括了以下 7 个要点:
保障供应链安全:
通过确保汽车中的每一个芯片和电子控制单元 (ECU) 能够正确地进行身份验证并装载受信任的软件,而不受到供应商或制造商的影响,从而建立信任的根源。扫描部署的所有软件以符合标准和所需的安全状况。从漏洞和渗透测试的角度对供应链进行定期评估,以确保他们得到认证并批准交付。
使用值得信赖的组件:
使用安全的硬件、软件和应用程序,在深度体系结构中深度分层,创建一个安全体系结构。
采用隔离手法与受信通信:
使用电子系统架构来隔离安全关键和非安全关键的 ECU,并且在检测到异常时也可以保障安全运行。另外,这种方法也可以确保汽车中的电子设备和外部世界之间的通信都是安全可靠的。更为重要的是,ECU 之间相互的通信需要值得信赖和安全。
现场安全检查:
确保所有 ECU 都集成了分析和诊断软件,可以记录所发生的事件,并将结果发送至云端以进一步分析并启动预防性操作。此外,汽车制造商应该确认一系列指标定期自动扫描检测,当汽车在事件发生现场时,也能够通过安全的无线网络 (OTA) 软件更新来解决问题。
构建事件快速响应网络:
在参与的企业网络中共享常见的漏洞和风险,这样专家团队就可以相互学习,并在较短的时间内提供建议和修复方法。
使用生命周期管理系统:
一旦发现问题,自动利用安全的 OTA 更新软件。积极采取证书管理来管理安全凭证,并部署统一的端点策略管理来管理在汽车生命周期内下载的应用程序。
组织内建立安全文化:
确保汽车电子供应链中的每一个企业都接受功能安全以及安全保障最佳案例的培训,并在企业中形成安全文化。
「未来 5 年内只剩 2~3 种系统」
对于很多人来说,我们在车里最直观能接触到的软件就是 IVI(车载信息娱乐)系统。 事实上,目前国内主机厂或者供应商在开发 IVI 系统的时候,大多数都以 Android 系统作为基础。
这么做的好处很明显,首先是开发难度。国内具有 Android 系统开发能力的工程师数量多,团队建设更容易。其次,Android 的第三方应用生态成熟。无论是通过接入 API 或者是 SDK 的方式,都能迅速把移动互联网的服务能力移植到车里。
除了 Android,还有以 Tesla 为代表的的 Linux 阵营。这两种系统本质上都是开源的系统,主机厂能够有更大的话语权来进行系统层面的定制,得到更个性化的产品。
Kaivan Karimi 告诉我,基于开源软件开发虽然在初期会有一些优势,但是在最关键的安全层面却容易出现风险。毕竟开源的背后,也代表有更多可能被入侵的风险。虽然开源软件在初期开发上费用会比 QNX 更低,但后续的维护成本会更高。
另外,我们之前在讨论自主品牌开发 Android 系统车机时就提到过,这样的策略也容易受限于 Google 的开发节奏。毕竟车机硬件没办法做到很快的迭代,对系统的持续维护也会有更高要求。
Kaivan Karimi 表示:「Linux 系统 5 年内会在汽车内消失,未来只会存在 2~3 种操作系统。」虽然这样的说法有些绝对,但也说明从安全厂商的角度看,系统数量越多就意味着越大的风险。
在去年,QNX 发布了 Hypervisor 2.0 系统。通过这套系统的虚拟化技术,能够将液晶仪表、IVI 系统、ADAS 系统等多个操作系统合并到单一芯片系统上。并且系统能够将各个模块分隔,这样即使有某个部分发现风险,也能避免影响到其余的功能。比如当 IVI 系统发生错误死机,也不会影响到车辆底层和驾驶安全相关的系统功能。特别是当自动驾驶技术的应用开始普及,这样的功能就显得更有必要了。
Hypervisor 2.0 系统能够支持类似运行 Android 系统软件。Kaivan Karimi 告诉我,无论是 Android 或者是百度的产品,都能够在 QNX 的 IVI 系统中运行。这样也弥补了 QNX 在第三方生态方面的不足。据 GeekCar 的了解,国内座舱领域目前比较主流的一种开发方式就是「QNX 仪表+QNX Hypervisor+Android」。
关于汽车的系统安全,无论多么重视都不为过,毕竟谁都不想坐在一辆不可控的车里。从这个角度看,类似 Blackberry QNX 这样的安全服务商虽然对普通用户没有明显的存在感,但扮演的角色至关重要。