本文提出 CHERI-D Reincarnate(简称 Reinc),一种面向 CHERI 能力架构的时序内存安全(temporal memory safety)硬件扩展,目标是以可扩展、低开销的方式缓解释放后使用(use-after-free, UAF)问题。背景上,此前工作 CHERI-D 为每个分配对象关联一个有限位宽的 generation ID,并存放在固定位置;当该 ID 被耗尽(回绕)时,为避免不同生命周期对象共用同一 ID 而产生误判,必须把该对象所在的整个内存槽位隔离(quarantine),待清扫(sweep)后才能复用。这带来两个代价:一是清扫频率高,二是高分配率场景下隔离区会占用大量内存。 Reinc 的核心思想是“分配重生”(allocation reincarnation):当某个槽位当前 ID 耗尽时,不再隔离内存,而是为该槽位动态分配一个新的 ID;被耗尽的 ID 本身进入隔离并延后回收,而底层物理内存可立即重新分配给新对象。也就是说,隔离的对象由“内存”变为“ID”,使常见情况下内存可连续复用,从而显著降低清扫频率与隔离区内存开销。Reinc 在保持完全去中心化 ID 组织的同时引入一致性 ID 缓存(coherent ID caching),时序元数据仍与其所保护的内存同址存放,既保留局部性又避免集中式元数据结构。针对多核执行,Reinc 通过轻量级反向映射(reverse-map)与过滤机制,把物理一致性事件与按虚拟地址索引的 ObjID buffer 关联起来,以跨核维护一致的 ID 视图。 作者以软硬件协同设计方式实现了 Reinc,覆盖 CHERI-Toooba(超标量 FPGA 软核)、QEMU、LLVM/Clang 与 CheriBSD 全栈,并进行了评测。结果显示,在所选负载上 Reinc 大幅降低了内存清扫频率与隔离内存占用,同时仅引入较低的性能开销与硬件开销。该工作对体系结构、硬件安全、内存安全及操作系统方向的研究者具有参考价值。
💡 推荐理由: UAF 是内存安全漏洞的主要类型之一,CHERI 是当前主流的能力式防御路线,但既有 generation ID 方案在 ID 耗尽时必须隔离内存,代价高昂。Reinc 把被隔离对象从内存换成 ID,为 CHERI 平台提供更低开销的时序安全实现路径,且覆盖硬件、编译器和 OS 全栈,落地参考价值较高。
🎯 建议动作: 研究跟进