解决内存漏洞以通过设计实现数字安全
扫描二维码
随时随地手机看文章
这是一次有趣的旅程,因为就像我说的那样,学术界在 70 年代开始关注计算机时,因为它们真正开始变得易于使用,开始写论文说这里存在问题。这将导致人们利用和影响机器操作的能力是他们使用的单词类型。这确实启动了一些早期研究,包括 70 年代后期在剑桥围绕所谓的能力系统进行的一些研究,这些研究在采用方面并没有真正取得进展。另外,当时的行业只是在遵循摩尔定律来构建越来越快的处理器。安全不是一个大问题,我们在 80 年代没有遭遇过大规模的网络犯罪之类的事情。
到了十年之交,它开始成为一个问题。然后在 10 年前,也就是 2010 年,剑桥启动了另一个项目,即 CHERI 项目,实际上在这一点上是 DARPA 投入了资金,并说看起来,我们可以做些什么来使计算机系统更安全,然后花了最后一笔钱10 年弄清楚它的样子。最后四五个,所以从 2015 年年中左右开始,我们开始在 Arm 中与他们合作,以评估它的外观。这种变化不能与处理器的持续开发同时进行。
在某些方面,它比我必须用多核做的还要糟糕。回到 2000 年,我们不得不说,好吧,我需要将多核引入嵌入式和移动。没有操作系统,没有多线程代码,我锁定了它。当时的嵌入式系统非常不同,它都是基于优先级或事件的。我们不得不改变它,显然我亲自做过那种事情。
我们正在重新审视它。我们如何改变?因此,我们现在所处的位置是 DSbD 程序自 2019 年以来一直在运行,这让合作伙伴有时间研究 CHERI 的哪些部分,围绕它的额外部分,概念,这在 Arm 架构中意味着什么。Arm 已经构建了一个原型板,所以我们帮助资助了它的生成,我们称之为技术原型。这是什么,是应用于 Arm 架构的 CHERI 概念。它关注的是他们的高性能,那种芯片——多核无序高性能处理器。它包含了这些 CHERI 概念,到 2022 年第一季度,该板将可用。我们一直在将其作为我们研究计划的一部分进行推广,UKRI 一直资助的现有项目将交付给他们。然后还会有一些计划,我们可以让更广泛的行业和研究人员了解这一根本性变化对他们的影响。可能值得我们看看这些变化是什么,我们对开发人员的要求是什么,但我认为这可以让您了解今天的状态。
我认为我们正在尝试讨论并提高认识以使人们意识到的最大问题是,这与往常不同,好的。这与大多数从事 ICT 和技术工作的人一生中发生的任何事情都截然不同。如果你今天对构建计算机的人说,“虚拟内存是如何产生的以及它是如何使用的”,他们会说,“哦,那只是计算机的一部分”。
你今天可以看到,当你知道人们在编写应用程序时,他们谈论硬件不可知论者,他们真的不认为他们下面的东西可能有根本的不同。这就是我们在这里谈论的内容。
真的,是的,它根本不同,但这是否意味着我所做的一切都被浪费了,这绝对不是我在这里要说的。这是一个渐进的过程,能够改变人们隐式做某事或明确做某事的方式。我的意思是,计算机本身具有这些设计安全的功能,它实际上在两个领域发挥作用。一个是围绕指针,确保指针的能力,即计算机本身具有新数据类型,这是一个受保护的指针。好的,所以今天你已经有了跨越不同数学的数据类型——你知道整数和浮点数等等——还有一个指针,它实际上是一个数学单位,但你不再需要了,你有一个叫做指针。
我们在 2021 年让英国的一些中小企业对此进行了研究,他们基本上说,“当我们打开时,这对我们的软件意味着什么?” 还有一些很好的例子,其中一家公司在编译状态下发现了一些第三方代码中的漏洞,他们只是看着它,“哦,亲爱的,你知道,我们采用了一些第三方代码”。它实际上也是商业代码,它在指针周围的数学中存在漏洞。如果黑客发现他们会找到进入其安全系统的途径。
所以,仅仅为了编译阶段,打开它解决了一些问题。现在是不允许打开它吗?不,因为就像我说的那样,程序员通常假设指针是整数数据类型,有时他们会对其进行数学运算等等。但是到目前为止,该程序发现,如果我们要在 Windows 中执行整个图形堆栈,代码行会发生变化,大约 0.03% 到 1% 最坏情况和小数百分比。但它们基本上是相当规范的编译器错误。
这是我们让人们知道的技术介绍的第一部分。另一个实际上是使用该指针以细粒度的方式对代码进行分区。当我有处理器和安全区域、TEE 和所有其他东西时,我为什么要这样做?好吧,这是细粮。这意味着在这些受保护域之间进行上下文切换要快大约两个数量级。
这意味着,例如 log4j 可以,如果它在这些容器之一中,它实际上不可能进入日志系统以外的东西。因此,开发人员然后可以构建他们的软件并将他们的软件架构为默认情况下更安全,他们可以真正进入这个过程,并说,“看加密库,我不希望加密库靠近任何其他内存系统。我不想让我的钥匙靠近系统中的任何地方”,而这实际上是另一家英国中小企业所做的。他们创建了按需软件 TEE,即受信任的执行环境,然后他们可以使用全局保护——我忘了确切的名称是什么——但他们用于 TEE 的 API 能够在硬件保护环境中与之对话。
所以,我们真正要做的是让这个可用,并意识到从“我希望能够编译并消除这 70% 的持续漏洞,这意味着什么?”的变化水平。这意味着企业不必从零开始就修补所有系统并找到他们正在做的事情。它可能运行停止,至少它没有运行和被利用。那种事。因此,这将带来更广泛的需求,而实际构建产品和服务的人开始关注,“我将如何重新划分这个系统?我如何从这种更快的处理器间通信中获益?我怎样才能使用第三方代码,而不是成为我不知道的任何东西的奴隶?”
这确实是将在 2022 年第一季度宣布的计划,我们基本上开始向遇到此类问题的人提供这些板,并开始在这方面对其进行评估,所以这确实是该计划的目标在 2022 年初,这将持续到 2022 年剩余时间到 2023 年。我们可能会在 2023-24 年的时间框架内制定计划,如果您愿意,终端市场将开始了解这意味着什么到他们的业务。
目前,我们真的在努力与技术部门的人们合作,到 2022-23 年,通过这些委员会,让他们评估如何通过设计提高安全性,同时了解他们如何在没有性能成本,我们相信无需在其他机制中做一些努力。因为很明显,如果您总是在资源使用方面与性能作斗争,那么在默认情况下使用这些技术来制作商店安全产品会容易得多。
所以这是在工业应用研究阶段的研究,显然理解这对我刚刚描述的人意味着什么是反馈步骤的一部分。我认为微软有一个名为 Verona 的程序,这是一种新的内存安全语言,他们显然正在研究这意味着什么。谷歌将研究这对他们的移动环境意味着什么,然后 Arm 显然已经评估了这对他们处理器的实施成本意味着什么。这需要关闭那种工业研究反馈循环,以便可以照常创建新产品。
老实说,如果有人说一个概念从硬件到下一部手机需要多长时间,我们会讨论,如果他们要在 2022 年开始。我们说的是 2026 年。所以这个不是明天就能解决的问题,所以零漏洞。这些事情需要时间。我们谈论的是通过操作系统将计算机内部数据类型的相当基本的架构更改转移到库中,然后显然构建系统的人员会在其之上。
我认为 Arm 引用了 64 位处理的引入是一个 10 年的计划,他们已经进行了几年,所以我们可能还有五年的时间,直到我们开始看到显着的市场接受度一个装置。显然,通过 DSbD 计划与开发人员社区以及工业部门合作,创造需求将有助于加速这一进程。
我们知道政府说这是个好主意是一回事。企业说你的意思是你可以摆脱我刚刚花费的数百万的成本,因为我不得不匆匆忙忙地修复最新的补丁。