cheri

3 posts

你的 C 代码无需全面 rewrite 即可在 capability 硬件上运行

CHERI 的 hybrid ABI 让你可以逐步将 C 代码移植到 capability 硬件上。本文介绍如何编译、哪些代码会出问题,以及如何在不 rewrite 整个 codebase 的情况下修复它们。

你有一个用 C 编写的codebase,它大到无法全部用 Rust rewrite,又关键到不能任由缓冲区溢出威胁。CHERI capability 硬件承诺在 CPU 层面捕获内存安全违规,但网上一直有人说 CHERI 指针是 128 位的,而你的代码默认指针是 64 位。 好消息是,CHERI…

权能硬件没有失败。它只是提前 40 年到来。

自 1970 年代以来,硬件层面的内存安全性就已可行。以下是权能架构为何一直败给扁平内存模型,以及为什么 CHERI 终于正在改变这一等式。

70% 的 CVE 是内存安全缺陷。缓冲区溢出、释放后使用、重复释放。这类漏洞让攻击者可以从一张畸形 JPEG 一路提权到 root 访问。 自 1975 年以来,我们就知道如何在硬件层面阻止其中的大部分。剑桥 CAP 计算机使用了基于权能的寻址。卡内基梅隆大学的 Hydra…

缓冲区溢出之所以反复发生,是因为我们在软件层面修复它

CHERI是一种硬件扩展,它将每个指针转变为带有边界的权能。本文介绍它如何在CPU层面阻止缓冲区溢出、代价几何,以及如何在真实硬件上试用。

缓冲区溢出在CWE Top 25榜单上盘踞了二十年之久。我们拥有栈金丝雀、ASLR、DEP、控制流完整性以及内存安全语言,然而它们仍然不断出现在关键代码中。原因很简单:这些缓解措施无一不是在软件中运行的,而软件可以被绕过、被错误配置,或者干脆未被启用。 倘若硬件本身拒绝让你读取数组末尾之后的数据呢?…