硬件漏洞会影响汽车、医疗和物联网系统的安全性,只有安全飞地和信任根还不够。
2018年1月,计算机安全研究人员披露了两个重大的处理器安全漏洞:Meltdown(熔断)和Spectre(幽灵),恶意程序可以利用这些漏洞窃取安全数据。
工程界和普通民众早已习惯了为修补软件漏洞而频繁更新app或安装操作系统补丁。而这里所说的不同,罪魁祸首是硬件,而硬件更新可不便宜。
修补硬件漏洞唯一可行的方法是发布新的软件,以降低系统速度与能效为代价,屏蔽易受攻击的硬件功能或避免使用它们。Meltdown和Spectre的发现引发了一系列针对硬件安全的调查。
截至目前,安全研究人员已经公布了更多的硬件漏洞,包括Foreshadow、ZombieLoad、RIDL和Fallout。这些硬件缺陷危及个人计算机、智能手机甚至云的安全性。
图1:攻击者进程通过基于行填充缓冲区(LFB)的微架构侧信道从受害者进程中窃取机密数据。受害者和攻击者进程处于不同的安全域中。(来源:S. van Schaik等,RIDL:Rogue In-Flight Data Load)
那嵌入式系统是否就安全了呢?
围绕着处理器的安全漏洞有一个共同主题——它们都针对具有先进性能优化的现代高端实现功能,事实证明,这些先进功能可能被恶意目的利用。
而嵌入式系统通常采用相对简单的处理器实现。它是一个封闭的环境,供应商应该可以更严格地控制它。实际上,在DVCon US 2019会议上,在开放式指令集架构(ISA)的验证和合规性讨论期间这个问题已经被提出来。开放式ISA,特别是RISC-V,以及MIPS等,提供优于专有架构的优势,越来越受到半导体行业和嵌入式设备社区的关注。
嵌入式处理器被应用于许多联网系统,例如工厂、智能家居、物联网(IoT)设备、医疗设备和消费电子产品,以及自动驾驶、飞机和其它生命安全攸关的关键应用。
不同于普遍的看法,嵌入式平台上运行的软件来自多个通常不受信任的源,例如那些允许用户运行第三方应用程序或运行来自多个供应商和开源库的大型软件堆栈的平台。为了最大化硬件利用率并降低成本,关键和非关键应用程序在同一物理处理器上运行。例如,汽车电子控制单元(ECU)可以在同一处理器内核上执行信息娱乐代码以及安全攸关功能。
直到最近,安全防护还主要集中在软件堆栈上,其硬件提供诸如信任根的底层防护功能。RISC-V基金会将精力主要放在安全平台和机制的实现上,以防止不受信任的代码影响关键系统功能的完整性。这些安全功能对于验证软件更新至关重要。从理论上讲,这些方法没有问题,不受信任的软件只能在定义好的保护壳内运行,无法突破或窃取安全飞地的敏感信息。
漏洞并非高端处理器所独有
不幸的是,还有一个复杂的问题。
最近,计算机科学家公布了一种新型攻击,称为Orc攻击,它威胁到嵌入式应用中常用的简单处理器。最重要的是,作者已经证明,很小的实施决策都可能会导致或者防止严重的硬件漏洞的出现。“这里的关键点在于,即使是简单的设计步骤,例如添加或删除缓冲区,不经意间也可能在任何处理器中引入隐蔽信道漏洞,”发现Orc攻击的Kaiserslautern-Stanford团队成员Mo Fadiheh说。
最终的结果是,Orc和侧信道攻击打破了特权级和用户级域之间的隔离。加密和安全验证可以被绕开。恶意代理程序可以推断出秘密数据,包括密码、社会安全号码和医疗记录;暴露用于验证固件更新的密钥可能允许攻击者加载自己的代码并以更高的权限执行它或替换操作系统中的某些功能;用于DoS攻击的后门或终止开关可能被添加;还有无数的可能性。“从理论上讲,黑客可以使用Orc漏洞来控制自动驾驶汽车或者征用物联网上联网的计算机,”斯坦福大学电子工程和计算机科学教授,团队成员Subhasish Mitra说。
业界已经意识到了这些风险,并正在积极寻求解决方案。例如,英飞凌就参与了发现Orc漏洞的研究工作。
一种防止硬件漏洞的系统方法
证明微架构侧信道不存在很复杂。硬件安全验证不仅仅是确保正确实施ISA安全功能,开发和分析威胁模型也是不够的,因为攻击场景需要被提前识别。
发现Orc漏洞的同一个团队发明了一种强大的方法可以在大规模生产和部署IC之前检测设计过程中的硬件漏洞,这就是唯一程序执行检查(UPEC),它可以系统地检测来自处理器微架构和较小实施决策中的漏洞。
图2:除一些受保护的秘密数据外,UPEC创建包含相同数据的同一计算系统的两个实例。 基于形式验证的分析揭示了是否有可能构建进程在未被授权访问秘密数据的情况下在两个系统中以不同的方式执行。(来源:M. R. Fadiheh等,处理器硬件安全漏洞及其唯一程序执行检查的检测。)
“Orc漏洞的出现反映出,芯片设计师每天都会做出的看似无害的设计决策,但可能会导致严重的缺陷,”威斯康星大学麦迪逊分校的计算机架构专家Mark D. Hill教授说。“通过UPEC,设计人员可以更加自信地发现并消除设计中所有潜在的隐蔽信道缺陷。”
嵌入式系统需要高完整性的IC
在嵌入式系统中,不太可能完全信任和控制软件堆栈的所有层。因此,即使使用简单的处理器内核,利用硬件实现中的漏洞,实施微架构侧信道攻击也会对安全造成真正的威胁。
基于RISC-V ISA的开源硬件为更高级别的安全审查提供了机会。但同时,恶意代理软件也可以对设计执行详细分析并发现低级漏洞。
而且嵌入式设备一旦部署,更换处理器就很困难且成本高昂。所以,替代方案就是在部署之前即识别硬件漏洞来防止侧信道攻击。UPEC是一种强大的硬件安全验证技术。其基于形式验证的属性检查,可以系统地识别硬件寄存器传输层(RTL)设计模型中的漏洞,而不用依靠专业知识来猜测可能存在的问题。
当前UPEC的实施是利用OneSpin Solutions提供的IC完整性来保证产品构建的。
数据安全性(Security)是IC完整性的基石,当然还有信任、功能正确性和生命安全性(Safety),各种因素相辅相成,例如安全漏洞或硬件木马可能会危及自动驾驶汽车的安全性。可见,IC完整性对如今的数字世界至关重要。
编按:本文作者Raik Brinkmann为OneSpin Solutions联合创始人、总裁暨CEO
本文同步刊登于电子工程专辑杂志2019年8月刊