Windows 10 的核心隔离内存完整性设置是什么?它有什么作用?

sil*_*cer 5 hardware-virtualization windows-10

此设置最近出现在 Windows 10 家庭版中,作为创建者更新 (1709) 的一部分。

然而,除了这个内部预览博客这个帮助页面上的一些粗略信息之外,我找不到任何有关此设置实际效果的信息。

  • 可能对性能产生哪些影响?

  • 可能的兼容性影响有哪些?

  • 这是否可以防止诸如 Meltdown 或 Spectre 之类的攻击?

这可能是我的 Google-foo 的弱点,但我能找到的只有那个博客和帮助页面。他们对内存完整性设置的所有说明是:

核心隔离通过将计算机进程与操作系统和设备隔离,提供针对恶意软件和其他攻击的额外保护。选择核心隔离详细信息链接以更改核心隔离功能的设置。

内存完整性是核心隔离的一个特性。通过将内存完整性设置打开,您可以帮助防止恶意代码在发生攻击时访问高安全性进程。


通过内存完整性保护,内核内存页面只有在安全运行时环境中通过代码完整性检查后才可执行,并且可执行页面本身永远不可写

某些驱动程序可能仍然不兼容。这可能会导致设备或软件出现故障

关于这个主题还有很多其他文章,但它们都只是说如何打开该功能,而不是它的作用。

Aus*_*arn 3

我自己也不太清楚它到底有什么作用,而且我实际上在 IT 行业工作,所以不要因为找不到太多信息而感到难过,它只是不存在。

根据我所知道的,我相信它实际上做了几件事,即:

  • 如果系统具有可用的硬件虚拟化功能(AMD 上的 SVM、Intel 上的 VT-x 或 ARM 上我不记得名称的东西),它会利用它们为每个虚拟内存区域提供更好的隔离。过程。
  • 如果系统具有硬件级内存加密支持(AMD 上的 SME 或 Intel 上的 SGX),它会利用它为每个虚拟内存上下文(通常但不总是与进程相同)提供自己的虚拟内存上下文。真正的(理论上)私人记忆。

回答您的每个具体问题:

  • 对于这两个部分来说,性能影响通常都很低,这是在硬件中执行此操作的优点之一。然而,它们确实具有不同类型的影响。加密部分主要影响原始内存带宽(尽管在我自己在 Linux 上对相同技术进行的测试中,影响并不大,我有时会计算周期以确定性能差异)。不过,虚拟化部分对上下文切换有很大影响(例如,调用各种 WIndows API 或访问硬件)。
  • 就兼容性而言,除非您使用的软件执行了一些极其愚蠢的操作,并且您拥有相对较新的 CPU,否则您不应该看到太多问题。如果您的 CPU 不够新,它将不支持嵌套虚拟化,并且您将无法在系统上正确运行大多数类型的虚拟机(根据官方说法,Windows 10 不支持任何足够旧的 x86 CPU)是一个问题,但它仍然会在此类系统上运行)。
  • 就其保护的内容而言,如果没有对其工作原理的任何具体解释,很难说清楚。我有点怀疑它是否能提供任何实际的保护来防止像 Heartbleed 这样的缓冲区溢出错误,因为这些只能在编程语言中得到适当的保护,而不是在操作系统中。