2018年1月24日, Linux /开源

幽灵和熔解-如何应对嵌入式世界

蒂姆•Skutt

蒂姆Skutt照片

在过去的几周里,围绕着一系列被称为“幽灵”(Spectre)和“熔解”(Meltdown)的新安全问题,出现了一系列猜测和披露。总的来说,这些问题影响了大多数主要的处理器架构和实现,并引发了一个横切问题——“我应该如何处理这些问题?”

对于云计算环境、企业IT环境和消费者端点环境,很多可用的初始信息都集中在回答这个问题上。然而,嵌入式世界通常具有不同的特征和约束,因此,对这个问题的回答可能看起来也不同。例如,许多嵌入式设备或多或少是固定功能设备,其设计不允许执行可能试图利用Spectre或Meltdown的未经验证的代码。与企业或云解决方案的开发人员相比,具有这些限制的设备开发人员可能采取不同的解决方案。

本博客从嵌入式软件定义世界的角度,讨论了解决多种安全问题的行之有效的方法,并将它们应用到当前的问题中。

一个小的背景

Spectre和Meltdown是利用投机执行的侧信道攻击,投机执行是处理器实现高性能的常用技术。

  • 侧信道(Side Channel) =计算机系统物理操作的某些方面,可用于暴露系统正在处理的信息,而不直接接收该信息。
  • 投机性执行=大多数现代CPU的一个特征,允许它们推测它们可能需要运行的代码,以便为给定的过程运行,并提前运行它,因此在需要时立即准备好结果。

因此,Spectre和Meltdown是通过观察计算机系统中与投机执行相关的物理操作——特别是时间——来暴露信息的方法。执行这些攻击的代码可能会发现其他应用程序甚至操作系统本身使用的密码或密钥等通常不被授权访问的信息。

Wind River一直与处理器供应商和安全社区就Spectre和Meltdown进行合作,并将继续作为安全供应商。

如何应对幽灵和熔毁

安全性就是识别风险并确定给定风险的可能性和影响是否可接受,或者是否需要做一些事情来降低风险的可能性、影响,或者两者都要。对于Spectre和Meltdown,风险在于攻击者可能会使用投机执行侧通道来暴露他们无权访问的信息。您可以使用以下步骤在这个具有挑战性的过程中导航。

步骤1 -确定系统风险的可能性和影响

“幽灵”和“熔解”问题需要具备几个可行的先决条件:

  1. 处理器必须实现可以被Spectre或Meltdown利用的特性——使用处理器供应商的指导和文档确定你的处理器是否容易受到Spectre或Meltdown的攻击
  2. 处理器必须有一个足够细的时间源来度量投机执行的影响——这在某种程度上依赖于系统,但通常情况下,如果只有粗粒度计时器可用(即,最小的时间度量在1000个处理器时钟周期或更多的量级),利用投机执行的时机是极具挑战性的
  3. 攻击者必须能够在处理器上运行攻击代码——Spectre和Meltdown不是远程攻击,它们要求攻击者代码在处理器上运行,并测量投机执行的时间。许多嵌入式系统或任务关键型系统受到高度限制,只允许在系统上运行指定的、预先定义的和经过验证的功能集。例如,在这些类型的系统中,攻击者在处理器上运行攻击代码的可能性可能低到可以接受的程度。
  4. 处理器必须有攻击者无权访问的可访问信息——Spectre和Meltdown问题不可能破坏、修改或删除数据,所以如果系统不包含攻击者无权访问的信息,不会有与成功攻击相关的影响,风险可能是可接受的。

基于这四个先决条件的评估,您可能会发现,Spectre和Meltdown不会构成足够大的风险,也不会造成足够大的影响,因此不需要采取任何进一步的行动。如果您对这些先决条件有疑问,例如攻击者在您的系统上运行攻击代码的可能性,Wind River可以提供帮助。

如果四个先决条件得到满足(处理器实现投机执行和足够细粒度的时间源,攻击者可以在处理器上运行代码,还有信息系统攻击者未被授权访问),然后描述风险的可能性和影响是必要的。如下所示的框架有助于交流这种描述。

幽灵,meldown1

可能性和影响级别的定义因组织而异,但使用这一框架可有效地传达当前的可能性和影响以及缓解后期望的可能性和影响。风河公司长期帮助客户进行安全评估,包括风险评估,如果需要,可以在这方面提供帮助。

第二步:确定解决策略

一旦确定了“幽灵”和“熔解”风险的可能性和影响,如果当前的风险是不可接受的,就需要一个解决策略。虽然社区中的处理器供应商和软件供应商(包括Wind River)正在开发几种缓解措施,但重要的是要认识到存在许多具有不同权衡的潜在解决方案。风河致力于与社区合作,为基于硬件的Spectre和Meltdown问题创造最佳缓解方案,但我们认识到,每个解决方案都有独特的特性,需要选择。

作为一个潜在的解决的一个例子,如果你的系统是高度受限的定义之前,但攻击者在您的系统上运行代码的可能性没有足够低,因为系统不验证其可执行图像的真实性,然后综合解决方案的安全启动,静态分析是可以接受的。使用数字签名的映像添加安全引导将提供可执行映像和数据的身份验证,确保映像仅来自可信源。静态分析将验证数字签名的图像不包含投机执行代码序列,因此可以信任。这个解决方案将权衡安全引导的集成(包括风河的VxWorks产品线以及我们基于开源的产品线)和当前提议的操作系统和编译器级别的潜在运行时开销。

在另一个例子,如果主要问题是保护一些非常敏感的信息,如加密密钥,一个解决方案,使用这些键移动存储和操作到一个单独的密码卸载引擎或可信平台模块(TPM)提供一组不同的权衡与移植现有的系统更新,操作系统版本更新。如果将敏感信息分离到硬件模块可以消除上述前提条件4(必须存在攻击者未授权访问的处理器可访问的信息),那么这种类型的解决方案可以提供可接受的风险水平,同时对应用程序的影响最小。

正确的解决策略取决于多个因素,如进度、验证和更新的成本以及健壮性。理解可用的解析选项对于确保选择最佳的解析策略非常重要。Wind River可以帮助团队确定选项集及其权衡,并且Wind River的产品提供了一系列实现,包括基于社区的缓解。

步骤3 -监控

人们对《幽灵党》和《Meltdown》的反应将随着时间的推移而变化。随着处理器供应商提供微码修复,最初的仅软件的缓解可能会发生变化,而且随着时间的推移,可能会引入优化。此外,Spectre和Meltdown很可能会激发更多的研究,从而改善缓解措施,并发现更多的问题。监控将是解决Spectre和Meltdown已经发现的问题的一个重要部分,并保持最新的解决方案。

作为解决缓解和解决方案的社区的一部分,风河公司正在积极跟踪、集成和开发我们产品组合中的所有产品的解决方案。我们的客户可以通过客户支持网站(https://knowledge.windriver.com),并订阅我ag亚博真人们的RSS频道以获取通知。我们的公共CVE数据库为那些没有活跃支持帐户的人提供了有关相关CVE影响的更高级别信息。我们的CVE数据库可以在这里找到:http://www.windriver.com/security/cve/main.php

我们的产品更新功能还为集成到风河产品中的解决方案提供交付渠道,并允许我们的客户选择集成解决方案及其更新的时间。

作为对幽灵和崩溃的响应过程的一部分,计划未来的响应将有助于简化适应潜在变化。我们的产品采用更新解决方案和我们的专业服务组织可以协助自定义更新解决方案以及用于创建,验证,验证和设备的更新中使用的集成和简化流程和工具。

概括

Spectre和Meltdown已经唤醒了软件定义世界中的所有参与者,让他们意识到可能存在的侧信道攻击,以未经授权的方式暴露信息。在整个行业中,“我应该如何应对这些问题?”的问题。对于云计算环境、企业IT环境和消费者端点环境,很多可用的初始信息都集中在回答这个问题上。嵌入式世界通常具有不同的特征和约束条件,因此,对这个问题的回答可能看起来也不同。

对于每个人——无论是关注云计算、企业、消费者还是嵌入式——有效的方法首先关注问题的风险和影响,然后确定解决策略,实现该策略,然后监控解决方案。该方法的结论可能因不同的环境而不同,但该方法为响应提供了一个彻底的、深思熟虑的框架。

作为响应Spectre和Meltdown的安全社区的一部分,Wind River正在为广泛行业的设备和系统以及广泛的处理器实现提供健壮的、优化的软件解决方案选项。这些选项允许我们的客户在他们的系统中进行权衡,以便在维护实时、关键安全性、关键任务和弹性等需求的同时维护安全性。我们最好的安全响应团队不仅提供初始响应和解决方案,而且还提供通知和更新,以确保解决方案和环境的发展,这样开发人员就可以确保他们的系统现在是安全的,并在未来保持安全。

以前的Telstra和Wind River利用钛云平台成功完成NFV概念验证
下一个很荣幸成为OPNFV验证解决方案第一波的一部分