操作系统/虚拟化安全知识域:用于内存保护的现代硬件扩展

  发布时间:2025-12-07 19:49:46   作者:玩站小弟   我要评论
用于内存保护的现代硬件扩展此外,虽然分段大多已失效,但除了分页之外,还有许多其他形式的硬件支持用于内存保护。例如,许多机器都支持缓冲区边界检查,有些可以追溯到四分之一世纪或更长时间。但是,为了说明相应 。
用于内存保护的操作现代硬件扩展

此外,虽然分段大多已失效,系统虚拟但除了分页之外,化安还有许多其他形式的全知硬件支持用于内存保护 。例如 ,识域许多机器都支持缓冲区边界检查,用于有些可以追溯到四分之一世纪或更长时间。内存但是保护 ,为了说明相应的现代硬基元,我们将看看现代通用处理器中可用的操作内容,主要关注英特尔x86家族。系统虚拟这里的云计算化安重点不是我们认为这个处理器更重要 ,甚至不是全知功能X或Y在未来会非常重要(这是有争议的和很难预测) ,而是识域说明这仍然是当今硬件开发的一个非常活跃的领域 。

作为第一个示例 ,用于考虑一下有点命运多舛的英特尔内存保护扩展(MPX) ,它增强了英特尔的主力处理器,源码下载以确保阵列指针不会偏离阵列边界(阻止缓冲区溢出等漏洞被利用)。为此,一小组新寄存器可以存储少量数组的下限和上限,而在取消引用指针之前 ,新的MPX指令检查数组指针的值是否存在边界冲突。即使在仅在用户空间中使用MPX的系统中,操作系统也起着作用 ,例如 ,处理硬件在遇到缓冲区边界时引发的异常违反。MPX因这些边界寄存器太少而受到严厉批评 ,源码库导致性能开销很大 。此外,MPX不支持多线程 ,这可能会导致旧代码中的数据竞争。有人可能会说 ,MPX是硬件供应商尝试为其CPU添加新内存安全功能的一个很好的例子,不幸的是 ,这并不总是成功的 。亿华云

最近,英特尔在其处理器9中添加了内存保护密钥(MPK) 。英特尔MPK允许将PTE(图2)中以前未使用的四个位设置为16个“键”值之一 。此外 ,它还添加了一个新的32位寄存器 ,每个密钥包含2位,以指示是否允许使用该密钥标记的页面进行读写 。MPK允许开发人员在少量(在本例中为16个)保护域中对内存进行分区,例如,仅允许特定的加密库访问加密钥匙 。虽然非特权用户进程可能会更新寄存器的模板下载值 ,但只有特权操作系统代码才能使用密钥标记内存页。

一些处理器设计支持更高级的内存保护  ,使用ARM术语,我们将称为内存标记扩展(MTE10)。这个想法简单而强大 。处理器为每个对齐的内存块(其中块是16字节)分配一个硬件中的所谓“标签” 。同样,每个指针也会获取一个标记。标签通常不是很大,比如4位 ,高防服务器所以它们可以存储在64位指针值的最顶端字节中,反正我们并不真正使用(事实上 ,ARM支持顶字节忽略功能,使硬件显式屏蔽最上面的字节)。每当程序分配N个字节的内存时,分配器都会将分配四舍五入为16个字节的倍数 ,并为其分配一个随机标记 。它还将相同的标记分配给指向内存的指针。从现在开始,仅当指针中的标记与其引用的内存的标记匹配时,才允许取消引用指针,从而有效地阻止大多数空间和时间内存错误。

同时 ,一些处理器,尤其是低功耗设备中的处理器 ,甚至根本没有成熟的MMU。相反 ,它们有一个更简单的内存保护单元(MPU) ,仅用于保护内存  ,其方式类似于上面讨论的MPK功能 。在MPU设计中 ,操作系统定义了许多具有特定内存访问权限和内存属性的内存区域。例如,ARMv8-M处理器上的MPU最多支持16个区域。同时,MPU监控处理器的所有内存访问(包括指令提取和数据访问),并在检测到访问冲突时触发异常 。

请注意,在上面 ,我们假设操作系统需要保护免受不受信任的用户应用程序的侵害 。当操作本身不受信任时 ,会出现特殊情况  。也许您正在受感染的操作系统或云中运行安全敏感型应用程序,您不确定是否要信任云提供商 。在一般情况下,您可能希望在不信任任何其他软件的情况下保护您的数据和应用程序。为此 ,处理器可以提供硬件支持 ,以便在安全、隔离的环境中运行极其敏感的代码 ,在ARM的“信任区”中称为可信执行环境 ,或者英特尔软件防护扩展(SGX)中的飞地。它们提供的基元略有不同 。例如,在SGX安全区中运行的代码旨在成为正常用户进程的一部分 。它使用的内存总是在离开处理器后立即加密 。此外 ,SGX还提供硬件支持来执行证明,以便(可能是远程)方可以验证代码是否在安全区中运行以及它是正确的代码。另一方面,ARMTrustZone将运行正常操作系统和用户应用程序的“正常世界”与通常运行自己的较小操作系统以及少量安全敏感应用程序的“安全世界”隔离开来  。正常世界中的代码可以调用安全世界中的代码,其方式类似于应用程序调用操作系统的方式。特殊环境(如ARMTrustZone)(或英特尔的SMM模式 ,稍后讨论)的一个有趣应用是使用它来监控常规操作系统的完整性-希望在它造成严重损害之前检测到任何隐形恶意软件或rootkit。尽管这些受信任环境的各个方面与操作系统安全性明显重叠,但我们认为它们大多超出了此知识领域的范围 。我们还应该注意到,近年来,硬件可信执行环境提供的安全性一再被各种侧信道刺穿 ,这些侧信道从所谓的安全世界泄漏信息 。

再次切换齿轮 ,可能是操作系统没问题 ,但硬件不是。恶意或故障硬件可能会使用系统的直接内存访问(DMA)来读取或覆盖内存中它们无法访问的敏感数据 。此外 ,对于某些标准(例如USB-C上的Thunderbolt) ,计算机的PCIe链路可能会直接暴露在用户插入计算机的设备中 。不幸的是 ,对于用户来说,很难确定看起来像显示器电缆或电源适配器的东西不包含一些旨在破坏计算机的恶意电路。作为部分补救措施 ,如今大多数架构都带有特殊的MMU,用于与设备之间传输的数据。该硬件称为IOMMU ,用于将设备虚拟地址映射到物理地址,完全模仿图2中所示的基于页面的保护 。2,但现在用于DMA设备  。换句话说,设备可以访问虚拟内存地址,IOMMU将其转换为实际物理地址 ,检查权限,并在页面未映射到设备或保护位与请求的访问不匹配时停止 。虽然这样做提供了一些针对恶意设备(或驱动程序)的保护措施 ,但重要的是要认识到IOMMU旨在促进虚拟化,实际上不应被视为适当的安全解决方案。有很多事情可能会出错。例如 ,管理员可能想要撤销设备对内存页面的访问权限。由于更新IOMMU页表是一个缓慢的操作 ,因此操作系统延迟此操作并将其与其他操作一起批处理的情况并不少见 。结果是 ,可能有一小段时间窗口 ,在此期间设备仍然可以访问内存页面 ,即使它看起来这些权利已被撤销 。

最后,我们可以观察到 ,每个表面积的晶体管数量不断增加 ,使CPU供应商能够在其芯片上放置越来越多的硬件扩展,而上面讨论的那些绝不是现代处理器中唯一与安全相关的扩展 。其他示例包括加密单元  、内存加密 、有效切换扩展页表的说明以及指针身份验证(硬件检测到指针值的修改) 。毫无疑问,未来几代将出现更多功能,操作系统将不得不进行调整才能以有意义的方式使用它们 。这些问题的更广泛观点可以在硬件安全CyBOK知识领域中找到  。

  • Tag:

相关文章

  • 2022 Gartner安全运营技术成熟度曲线发布,XDR登顶受争议

    近日,知名咨询机构Gartner正式发布了2022安全运营技术成熟度曲线Hype Cycle),正如业界大多数人所预测的那样,XDR终于站上了Peak of Inflated Expectations
    2025-12-07
  • 利用HTTP2,新型DDoS攻击峰值破纪录

    亚马逊、Cloudflare 和谷歌周二联合发布消息称,一种依赖于 HTTP/2 快速重置技术的攻击行为对它们造成了破纪录的分布式拒绝服务 (DDoS) 攻击。根据披露的信息,该攻击自8月下旬以来便一
    2025-12-07
  • 随着攻击者瞄准零日漏洞,勒索软件受害者的数量激增

    根据云计算安全供应商Akamai公司日前发布的一份研究报告,零日漏洞和单日漏洞的使用导致勒索软件受害者总数在2022年第一季度至2023年第一季度增加了143%。该公司发布的这份名为《移动中的勒索软件
    2025-12-07
  • 优秀的首席信息安全官如何利用人才和技术而成为超级明星

    在DevSecOps大肆宣传的时代,人们常说安全是每个人的责任。但是,未经培训和缺乏动力的员工(尤其是那些不从事IT工作的员工)在安全方面能够做的事情是有限的,难以使他们所在的公司更安全地抵御网络威胁
    2025-12-07
  • 安卓用户当心: CERT-IN 发布高危漏洞警告

    印度计算机应急响应小组CERT-IN)在最近发布的一份公告中,就影响印度安卓用户的新安卓漏洞发出了重要警告。该警告对使用安卓 11、12、12L、13 和 14 版本的用户尤为重要,这些版本在目前使用
    2025-12-07
  • 确保智能家居网络的安全:物联网的风险

    网络安全专业人士表示,物联网更像是威胁互联网。这是为什么。近年来,随着用户对连接和远程管理的需求飙升,物联网(IoT)呈爆炸式增长,这反过来又推动了智能家居市场的发展,并使家居系统更容易使用和管理。从
    2025-12-07

最新评论