cwe - 1316: Fabric-Address地图允许编程毫无根据的重叠的受保护的和不受保护的范围
描述
片上的地址地图织物受保护的和不受保护的区域重叠,允许攻击者绕过访问控制的重叠部分受保护的地区。
扩展描述
各种系统地址映射中定义的范围可以在内存或Memory-Mapped-IO (MMIO)空间。这些范围通常使用特殊的范围定义寄存器包含信息,如基地址和大小。地址译码的过程确定的范围的事务是注定的。为了确保隔离,范围包含秘密数据访问控制保护。
偶尔,这些范围可以重叠。重叠可能是有意的(例如,由于数量有限的范围寄存器或有限的选择在选择范围的大小)或意外(如引入的错误)。一些硬件设计允许动态重新映射的地址范围分配给外围MMIO范围。在这种设计,故意地址重叠可以通过恶意软件错误配置创建。当受保护的和不受保护的范围重叠,攻击者可能发送一个事务和妥协的保护,违反最小特权原则。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示范例子
示例1
一个芯片上的织物支持64 kb内存映射的地址空间。织物有两个寄存器范围,支持创建两个受保护的范围与特定的大小限制,4 kb、8 kb、16 kb或32 kb。资产属于用户需要4 kb,和用户B需要20 kb。寄存器和其他资产不安全敏感需要40 kb。一个范围登记程序配置为4 kb保护用户的资产。无法创建以来20 kb范围与给定大小的限制,注册用户B的资产配置范围为32 kb。其余的地址空间开放。因此,一些不可信的一部分,open-address空间与用户B范围。
面料不支持最小特权,攻击者可以发送一个事务的重叠区域篡改用户B的数据。
因为范围B只需要20 kb但分配32 kb,有12 kb的预留空间。用户B数据重叠的这个地区,没有资产,与不受信任的空间将防止攻击者篡改用户B数据。
观察到的例子
参考 |
描述 |
|
攻击者可以修改MCHBAR attacker-controlled区域重叠,注册,修改阻止发送指令正确应用VT-d保护而测量发射环境正在启动。 |
潜在的缓解措施
阶段:体系结构和设计
当架构芯片的地址映射,保证受保护的和不受保护的范围是孤立和不重叠。当设计,确保范围硬编码在过户水平(RTL)不重叠。 |
实施阶段:
范围由固件配置不应重叠。如果是强制性的,因为重叠约束,如有限数量的寄存器,然后确保不出现在重叠部分资产。 |
测试阶段:
验证减排措施与健壮的测试。 |
检测方法
自动动态分析
检查地址映射规范是否存在重叠的范围。
|
人工静态分析
负面测试的访问控制重叠范围。
|
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这CWE条目底部的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
笔记
引用
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|