您的汽车安全吗?面对这个备受关注的话题,特斯拉发现了问题:黑客攻击通常始于发现的一系列漏洞,这些漏洞为越过汽车的防御体系创造了一条通路。
因此,当中国公司腾讯(Tencent)的研究人员透露他们可以通过特斯拉S的Wi-Fi连接漏洞,进入到其驱动系统,然后远程激活车辆的刹车时,一连串的安全问题暴露了出来。在汽车芯片的整个设计周期中,很可能从体系结构级就开始引入了安全漏洞,其中安全体系结构中的基本缺陷(例如将启动代码存储在不受保护的可写SPI Flash中)可能会使系统遭受攻击。
有缺陷的微体系结构设计还会使硬件容易受到攻击(例如Meltdown和Foreshadow)。在RTL设计期间也可能引入漏洞,例如测试和调试电路中的意外后门,以及底层固件和软件在配置和使用硬件方面的错误。
作为较大的验证策略的一部分,常用的安全验证技术(包括手动设计和代码审查,形式验证和基于仿真的功能验证)很重要,但在芯片设计阶段,还没有提供可在所有阶段应用的统一可扩展方法。
汽车安全开发周期
将安全性植根于硬件正在成为一种趋势。在全球半导体联盟(GSA)和麦肯锡(McKinsey)于2015年进行的一项调查中,半导体业高管将安全性列为物联网(IoT)的重中之重,其中重点是汽车。这项调查还列出了先进汽车芯片中一些最易受攻击的点。
长期以来,功能安全一直是OEM及其供应商关注的主要问题。但是,现在有了联网的自动驾驶汽车,汽车网络安全带来了其他设计挑战。汽车工业即将出台的标准ISO / SAE 21434旨在在汽车生命周期的各个阶段提升安全保障,目的是确保人员和信息安全。该新标准将部分基于现有的Auto-ISAC(Automotive Information Sharing and Analysis Center,汽车信息共享和分析中心)最佳实践指南。
汽车安全的Auto-ISAC最佳实践指南涵盖了关键的汽车网络安全功能。该指南概述了旨在降低汽车网络安全漏洞潜在影响的第一步的风险评估和管理策略。最佳实践着重于识别、分类、确定优先级和处理可能导致安全和数据安全问题的汽车网络安全风险的流程。特别是,第4.3节提出了“设计安全”的最佳做法,包括:
在设计过程中识别并解决潜在的威胁和攻击目标
分层网络安全防御以实现深度防御
识别信任边界并使用安全控制措施保护它们
作为组件测试的一部分,测试硬件和软件以评估产品的完整性和安全性
此外,同样由Auto-ISAC开发的ASDL(the Automotive Security Development Lifecycle,汽车安全开发周期)有助于确保在设计的早期阶段就确定适当的汽车网络安全保护,此时,较低的实施成本和时间考量可能影响汽车网络安全的设计交互。这些可以用于包括芯片在内的汽车硬件的安全设计。
Auto-ISAC安全开发周期最佳实践
Auto-ISAC ASDL涵盖了整个车辆生命周期,包括开发前,开发中和开发后,所有这些都与硬件相关。
开发前:考虑到限制未来设计决策的现有系统架构,以及标准组织可能希望定义对于最终部署的SoC,ASIC或FPGA可接受和不可接受的网络风险的类型。
图1:Auto-ISAC安全开发生命周期
开发中:设计和开发是所有必需的汽车网络安全规范的综合超集,可以在初始需求设计过程中根据硬件组件的功能为其量身定制。
需求:在产品需求阶段,必须考虑SoC,ASIC或FPGA设计的哪些部分在开发周期的后期需要进一步的威胁建模(threat modeling),渗透测试或模糊测试。例如,您可能会提出要求,以确保采用适当的内存保护机制来保护客户的数据。该阶段用作确定在设计/架构阶段需要进一步威胁建模的一种方式。
设计/架构:在此阶段,重要的是对第一步中确定的对安全性至关重要的设计部分执行威胁建模。威胁建模是一个过程,它考虑攻击者的适当功能,攻击者要实现的目标以及如何使用可接受的资源量(金钱,时间等)执行攻击。例如,攻击者可能至少会通过简单的尝试从可能存储关键信息、唯一ID或私人客户数据的特权内存位置读取数据来破坏内存保护。在此阶段,应识别这种威胁,以在实施过程中加以预防。
实施:实施设计时,务必遵循上一步中提出的威胁模型。例如,在设计中已实现了硬件存储器保护单元,以防止非特权软件读取受保护的存储器区域,并且对设计进行了充分的测试以确保该功能。在这里使用一些自动化硬件安全平台非常有益,以确保实现基于威胁模型的安全功能,并且确保功能被安全地设计并且不会在系统中引入漏洞。
测试和验证:这是流片或制造SoC、ASIC设计之前的最后阶段。在此阶段, 必须验证所有已实现的安全功能确实为安全功能。手动检查是这里最常用的方法,但是自动硬件安全解决方案减少了执行此步骤所需的工作量。一旦拿到最终的芯片,根据您的威胁模型是否涵盖对芯片的物理攻击,执行模糊或渗透测试也很重要。
开发后:在此阶段,制造商监视车辆,以解决在开发后出现的汽车网络安全问题,从而为汽车SDL流程的要求和设计阶段提供反馈,以帮助持续改进安全性。
Auto-ISAC安全开发周期自动化
基于以上标准和规则,这里介绍一款用于先进汽车芯片设计的开发工具,名为Radix。该方案可通过提供独特的环境来指定安全属性,然后使用Cadence,Mentor Graphics和Synopsys的标准SoC,ASIC和FPGA仿真软件来检测,以帮助Auto-ISAC防止安全漏洞。这些安全漏洞可能是由于系统架构、实施或系统集成错误所致。它在芯片设计前期进行部署,其专利技术和分析可帮助团队在芯片制造之前识别并隔离严重的安全漏洞,从而节省了因攻击而导致的昂贵的重新设计或灾难性的系统故障。
图2:Radix解决方案
如图3所示,Radix能够在最早的规划阶段指定安全需求,并能够在设计、实施以及测试和验证过程中有效地检测和预防漏洞,因此非常适合ASDL硬件。
图3:使用Radix自动化安全开发周期
结论
随着越来越多的联网汽车上路,恶意黑客将可以利用蜂窝网络、Wi-Fi和物理连接存在的漏洞实施攻击。若无法规避这些风险,则可能付出高昂的代价,包括对消费者的信心、个人隐私和品牌声誉造成的影响。另外,芯片漏洞还可能增加产品上市时间,降低供应商的信任度,并导致代价高昂的诉讼、芯片召回,甚至整个项目流产。
新的行业标准ISO / SAE 21434,以及如Radix的创新开发环境,可以在流片和部署之前识别并防止安全漏洞。作为汽车安全开发生命周期的一部分,Radix还启用了安全签名方法,为汽车安全和设计团队提供了一种可靠且有效的方式来验证其芯片及硬件系统的安全性。