安全研究员Christopher Domas发布了一个名为skitter-creek-bath-salts的开源硬件安全项目,直接把矛头指向了物理内存层次结构的最底层。这个工具打破了传统CPU权限边界的假设——通过操纵内存控制器转换寄存器,它能在硬件逻辑层动态修改物理地址与DRAM地址的映射关系,让没有特权的软件也能访问隔离的平台内存区域,而且不会触发上游架构的内存屏障或故障异常。
换句话说,你以为是铜墙铁壁的CPU内存隔离,在某个寄存器位翻转之后,可能就变成了纸糊的窗户。
![]()
安全边界为什么失效了?
现代处理器安全架构有一个核心假设:物理地址会确定性地映射到特定的硅基存储位置。基于这个假设,标准安全边界——包括虚拟机管理程序的扩展页表、系统管理模式(SMM)的TSEG范围限制、平台安全处理器(PSP)的私有预留区——都运行在CPU内核与系统总线互联层,处于内存流量抵达内存控制器之前的路径上。
Domas的发现恰恰击中了这个假设的盲区:内存控制器转换寄存器位于这些访问控制屏障之下。通过操纵BankSwizzleMode等配置位,可以从根本上改变控制器计算DRAM存储体、行和列坐标的逻辑。由于上游安全过滤器只对未经转换的物理地址进行验证,这些位翻转操作使得标准内存访问能够悄无声息地进入受保护的硬件安全区。
攻击是怎么一步步实现的?
为了在不破坏主机操作系统稳定性的前提下从被扰乱的内存中提取数据,这个漏洞利用程序采用了一个多阶段软件管道:
- 一个定制的Linux内核模块将非引导CPU内核置于离线状态,清空系统缓存,预热转换后备缓冲区,并禁用中断,确保内存重连过程中的稳定性
- 自动探测脚本利用“优惠券收集者”启发式算法,结合有针对性的用户空间读取操作,对地址位冲突进行分类整理
- 配套工具链利用伽罗瓦域算术完成物理地址置换建模,并采用SMT求解器推导出精确的位级映射关系
一旦映射关系确定,该漏洞利用程序便会对先前无法渗透的隔离区执行定向读写突发操作,包括系统管理模式(SMM)RAM、PSP固件表、CC6处理器睡眠保存区以及微码补丁缓冲区。
这个漏洞暴露了什么架构问题?
这些发现揭示了一个关键的架构盲点:如果下游内存控制器逻辑允许动态地址替换,那么上游的安全检查就无法保证完整性。这给裸机云和机密计算带来了现实风险。
更值得关注的是CPU特权与平台特权之间的关键区别。AMD 14h、15h和16h系列处理器允许Ring 0软件操作这些配置。这种访问级别存在根本性的不足——它将内核视为完全可信的主体。但在面对恶意内核的现实情况下,对安全关键的平台配置进行管理时,必须采用高于CPU级特权的防护边界。
社区怎么看?
Reddit硬件安全和逆向工程社区(如r/asm和r/blueteamsec)以及SANS ISC Stormcast等播客都对这个项目表现出了浓厚兴趣。讨论主要围绕这一发现对架构的影响展开。有专家指出,由于平台安全隔离区位于内存控制器之上,所以它们对原始物理坐标的扰码行为一无所知。
专家们也强调了该漏洞利用的实际局限性:它需要攻击者先获取到Ring 0权限,而且主要针对相对老旧的AMD Family 15h和16h处理器上才可访问的寄存器。这意味着它不是一种远程攻击手段,而是本地提权后的深度渗透工具。
对于硬件团队来说,这个项目的启示很直接:必须在启动过程中严格锁定内存控制器转换寄存器。安全边界不能只建立在“内核是可信的”这个假设上——当内核本身成为攻击者时,一切都需要重新审视。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.