cheri

3 posts

你的 C 程式碼可以在 capability 硬體上執行,而且不需要全面 rewrite

CHERI 的 hybrid ABI 讓你逐步將 C 程式碼移植到 capability 硬體上。以下介紹如何編譯、會遇到什麼問題,以及如何在不 rewrite 整個 codebase 的情況下修復它們。

你手上有一份龐大到無法用 Rust rewrite、卻又關鍵到不能放任緩衝區溢位風險的 C codebase。CHERI capability 硬體承諾在 CPU 層級攔截記憶體安全違規,但網路上不斷有人告訴你 CHERI 指標是 128 位元,而你的程式碼假設它是 64 位元。 好消息是,CHERI…

Capability 硬體沒有失敗,它只是早了四十年

硬體層級的記憶體安全性自 1970 年代就已可行。以下是 capability 架構為何一再敗給扁平記憶體模型,以及 CHERI 為何終於改變了這道算式。

七成 CVE 是記憶體安全性錯誤。buffer overflow、釋放後使用、重複釋放。這類漏洞讓攻擊者得以從一張損毀的 JPEG 取得 root 權限。 我們自 1975 年起就知道如何在硬體層面阻止絕大多數這類問題。劍橋 CAP 電腦採用了 capability 定址。卡內基美隆大學的 Hydra…

buffer overflow之所以反覆發生,是因為我們在軟體層面修復它

CHERI是一種硬體擴展,它將每個指標轉變為帶有邊界的權能。本文介紹它如何在CPU層面阻止buffer overflow、代價幾何,以及如何在真實硬體上試用。

buffer overflow在CWE Top 25榜單上盤踞了二十年之久。我們擁有堆疊金絲雀、ASLR、DEP、控制流完整性以及記憶體安全語言,然而它們仍然不斷出現在關鍵程式碼中。原因很簡單:這些緩解措施無一不是在軟體中執行的,而軟體可以被繞過、被錯誤配置,或者根本未被啟用。…