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

admin 2023年1月30日00:42:06评论56 views字数 4815阅读16分3秒阅读模式

用于内存保护的现代硬件扩展

此外,虽然分段大多已失效,但除了分页之外,还有许多其他形式的硬件支持用于内存保护。例如,许多机器都支持缓冲区边界检查,有些可以追溯到四分之一世纪或更长时间。但是,为了说明相应的基元,我们将看看现代通用处理器中可用的内容,主要关注英特尔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知识领域中找到。



网络安全的下一步是什么
网络安全等级保护:第三级网络安全设计技术要求整理汇总
网络安全等级保护:信息安全服务提供方管理要求
网络安全对抗行为(十八):用于了解恶意操作的模型及攻击归因和结论
网络安全对抗行为(十九):词汇表
网络安全培训:如何建立网络意识的企业文化
网络安全取证(九)操作系统分析之存储取证
网络安全取证(十)操作系统分析之存储取证
网络安全取证(十二)数据恢复和文件内容雕刻
网络安全取证(十六)云取证
网络安全取证(十七)伪影分析
网络安全取证(十三)数据恢复和文件内容雕刻(下)
网络安全取证(十一)操作系统分析之块设备分析
网络安全运营和事件管理(二十):执行-缓解和对策之拒绝服务
网络安全运营和事件管理(二十二):执行-缓解和对策之站点可靠性工程
网络安全运营和事件管理(二十六):知识-智能和分析之态势感知
网络安全运营和事件管理(二十七):人为因素:事件管理
网络安全运营和事件管理(二十三):知识-智能和分析之网络安全知识管理
网络安全运营和事件管理(二十四):知识-智能和分析之蜜罐和蜜网
网络安全运营和事件管理(二十五):知识-智能和分析之网络威胁情报
网络安全运营和事件管理(二十一):执行-缓解和对策之SIEM平台和对策
网络安全运营和事件管理(十八):计划-警报关联
网络安全运营和事件管理(十九):执行-缓解和对策之入侵防御系统
网络安全运营和事件管理(十六):分析之基准利率谬误
网络安全运营和事件管理(十七):计划-安全信息和事件管理及数据收集
网络安全运营和事件管理(一):简介
网络安全之事件管理
网络安全之云计算的安全风险
网络安全知识:什么是社会工程学
网络安全知识体系1.1对抗行为(十七):用于了解恶意操作的模型之地下经济建模为资本流动
网络安全知识体系1.1对抗行为(十三):恶意操作的要素之支付方式
网络安全知识体系1.1恶意软件和攻击技术(六):恶意软件分析
网络安全知识体系1.1恶意软件和攻击技术(十三):恶意软件响应及中断
网络安全知识体系1.1法律法规(二十)信息系统犯罪的执法与处罚
网络安全知识体系1.1法律法规(二十八)法律约束—合同
网络安全知识体系1.1法律法规(二十九)侵权行为
网络安全知识体系1.1法律法规(二十六)违约和补救措施
网络安全知识体系1.1法律法规(二十七)合同对非缔约方的影响
网络安全知识体系1.1法律法规(二十五)责任限制和责任排除
网络安全知识体系1.1法律法规(二十一)不受欢迎的自助:软件锁定和黑客攻击
网络安全知识体系1.1法律法规(九)数据主权问题
网络安全知识体系1.1法律法规(三十)  对缺陷产品严格负责
网络安全知识体系1.1法律法规(三十八)国际待遇和法律冲突
网络安全知识体系1.1法律法规(三十二)赔偿责任的数额
网络安全知识体系1.1法律法规(三十九)互联网中介机构-免于承担责任和撤销程序
网络安全知识体系1.1法律法规(三十六)执行–补救措施
网络安全知识体系1.1法律法规(三十七)逆向工程
网络安全知识体系1.1法律法规(三十三)
网络安全知识体系1.1法律法规(三十三)归因、分摊和减少侵权责任
网络安全知识体系1.1法律法规(三十四)法律冲突–侵权行为
网络安全知识体系1.1法律法规(三十五)知识产权
网络安全知识体系1.1法律法规(三十一)  限制责任范围:法律因果关系
网络安全知识体系1.1法律法规(十)国际人权法的基础
网络安全知识体系1.1法律法规(十八)执行和处罚
网络安全知识体系1.1法律法规(十二)国家以外的人的拦截
网络安全知识体系1.1法律法规(十九)电脑犯罪
网络安全知识体系1.1法律法规(十六)国际数据传输
网络安全知识体系1.1法律法规(十七)  个人数据泄露通知
网络安全知识体系1.1法律法规(十三)数据保护
网络安全知识体系1.1法律法规(十四)核心监管原则
网络安全知识体系1.1法律法规(十五)适当的安全措施
网络安全知识体系1.1法律法规(十一)国家拦截
网络安全知识体系1.1法律法规(四十)文件非物质化和电子信托服务
网络安全知识体系1.1法律法规(四十二)国际公法
网络安全知识体系1.1法律法规(四十三)其他监管事项
网络安全知识体系1.1法律法规(四十四)结论:法律风险管理
网络安全知识体系1.1法律法规(四十一)  伦理学
网络安全知识体系1.1风险管理和治理(八)安全度量
网络安全知识体系1.1风险管理和治理(九)业务连续性
网络安全知识体系1.1风险管理和治理(六)脆弱性管理
网络安全知识体系1.1风险管理和治理(七)风险评估和管理
网络安全知识体系1.1风险管理和治理(十)结论
网络安全知识体系1.1风险管理和治理(五)风险评估与管理方法(下)
网络安全知识体系1.1人为因素(二):可用的安全性——基础
网络安全知识体系1.1人为因素(一):了解安全中的人类行为
网络安全知识体系1.1隐私和在线权利(八):隐私作为透明度及基于反馈的透明度
网络安全知识体系1.1隐私和在线权利(九):隐私作为透明度及基于审计的透明度
网络安全知识体系1.1隐私和在线权利(六):隐私作为控制之支持隐私设置配置
网络安全知识体系1.1隐私和在线权利(七):隐私作为控制之支持隐私政策谈判和可解释性

原文始发于微信公众号(河南等级保护测评):操作系统/虚拟化安全知识域:用于内存保护的现代硬件扩展

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月30日00:42:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   操作系统/虚拟化安全知识域:用于内存保护的现代硬件扩展https://cn-sec.com/archives/1528800.html

发表评论

匿名网友 填写信息