本文共 1456 字,大约阅读时间需要 4 分钟。
负载敏感系统详解
运行软件是我们大多数人不考虑的事情。 我们在自己的机器上“在本地”运行,或者在其他人的机器上在云中运行。 我们并不总是考虑这些差异的含义,也不考虑我们对正在处理的数据甚至正在执行该处理的软件的安全性所做的假设。 具体来说,当您在云上或您自己的房屋中的系统(“主机”)上运行软件(“工作负载”)时,会有很多层。 您通常看不到这些图层,但是它们在那里。
这是您可能在标准云虚拟化体系结构中看到的层的示例。 不同的颜色表示“拥有”不同图层或图层组的不同实体。
这是描述标准云容器架构的类似图。 和以前一样,每种不同的颜色代表一个层或一组层的不同“所有者”。
这些所有者的类型可能非常不同,从工作负载所有者到硬件供应商,OEM,云服务提供商(CSP),中间件供应商,操作系统供应商,应用程序供应商。 对于在每个主机上运行的每个工作负载,层的确切列表可能会有所不同。 即使它们是相同的,图层实例的版本也可能会有所不同,无论它是不同的BIOS版本,不同的引导程序,不同的内核版本还是其他。
现在,在许多情况下,您可能不必担心这一点,并且CSP会竭尽全力从您那里抽象这些层及其版本详细信息。 但这是针对安全人员的安全文章,这意味着任何阅读此文章的人都可能会在意。
我们关心的原因不仅是不同的版本和不同的层,还包括如果我们希望在这些类型的堆栈上运行任何类型的敏感工作负载时需要信任的不同事物(以及不同实体)的数量。 我需要信任每一层以及每一层的所有者,不仅要按照他们所说的去做,而且也不要被妥协。 在运行敏感的工作负载时,这是一个很大的负担。
Enarx是一个新项目,正在尝试解决必须信任所有这些层的问题。 Red Hat的我们中的一些人已经为此工作了几个月。 我的同事纳撒尼尔·麦卡勒姆(Nathaniel McCallum)在年波士顿演示了它的早期版本,我们准备开始向世界发布它。 我们有代码,有演示,有GitHub存储库,有徽标:项目还需要什么? 好吧,人们-但是我们会做到的。
借助Enarx,我们做出了这样的决定:我们希望允许运行工作负载的人员能够将他们需要信任的层数和所有者的数量降至最低。 我们计划使用受信任的执行环境(“ TEE”,请参阅“ ”)提供一种看起来更像这样的架构:
在这样的世界中,您必须信任CPU和固件,并且需要信任某些中间件(Enarx是其中的一部分),但是您不需要信任所有其他层,因为我们将利用以下功能: TEE以确保您的应用程序的完整性和机密性。 Enarx项目将提供TEE的证明,从而使您知道自己在真实可信的TEE上运行,并将提供开放源代码的可审核代码,以帮助您直接信任应用程序下面的层。
最初的代码已经存在-目前正在AMD的SEV TEE上工作-现在我们已经准备好告诉您,它的代码已经足够了。
确保您的应用程序符合您自己的安全要求取决于您。 :-)
了解更多信息的最简单方法是访问 。
我们将在此处添加更多信息(当前仅是代码),但请耐心等待:目前,我们中只有少数人参与该项目。 博客在我们想要拥有的东西清单上,但是我们希望开始。
我们希望社区中的人们参与该项目。 它目前处于底层,需要大量知识才能开始运行,但我们会继续努力。 当然,您将需要一些特定的硬件才能使其正常工作。 哦,如果您是早期启动者或低级KVM黑客,我们特别希望收到您的来信。
我当然会回应对本文的评论。
本文最初发表于 ,经作者许可转载。
翻译自:
负载敏感系统详解