Alapfogalmak
控制流證明 (CFA) 能夠有效地檢測出傳統遠端驗證無法識別的執行時攻擊,但前提是驗證方 (Vrf) 能夠有效地分析收到的證據並修復漏洞。
Kivonat
基於控制流證明證據的驗證與漏洞修復
這篇研究論文探討了控制流證明 (CFA) 在嵌入式系統安全中的應用。CFA 作為一種遠端運行時驗證方法,能夠提供比傳統遠端驗證 (RA) 更精確的執行證據,從而檢測出傳統 RA 無法識別的運行時攻擊,例如控制流劫持。
現有 CFA 技術的局限性
儘管 CFA 具備強大的潛力,但現有研究大多集中在如何安全地設計和實現證明方 (Prv) 的信任根 (RoT),而忽略了驗證方 (Vrf) 在整個安全服務中的作用。具體來說,現有 CFA 技術缺乏對 Vrf 如何有效分析接收到的證據並修復漏洞的深入研究。
本文貢獻
為了解決上述問題,本文提出了一種基於 CFA 證據的安全分析和二進制修復引擎,稱為 SABRE。SABRE 的主要貢獻包括:
- 分析和分類現有 CFA RoT 生成的運行時證據類型: 本文將現有 CFA 證據分為三種類型:基於哈希的證據 (E1)、逐字記錄的證據 (E2) 和混合證據 (E3),並詳細分析了它們在支持 Vrf 遠端檢測和修復漏洞方面的優缺點。
- 提出 SABRE: SABRE 結合了二進制分析和 CFA 運行時證據,能夠在沒有源代碼的情況下自動定位和修補緩衝區溢出和釋放後使用漏洞。
- 開發 SABRE 原型: 本文開發了一個功能齊全的開源 SABRE 原型,支持 TI MSP430 和 ARM Cortex-M MCU 系列的二進制文件。該原型還與現有的基於可信執行環境 (TEE) 和定制硬件的開源運行時證明 RoT 生成的運行時證據直接兼容。
SABRE 工作流程
SABRE 的工作流程包括五個內部模塊:
- 靜態分析: 分析應用程序二進制文件 (App.elf) 並生成控制流圖 (CFG)。
- 路徑驗證器: 根據 CFG 和影子堆棧 (SS) 驗證 CFLog 是否構成有效的控制流路徑。
- 漏洞定位器: 定位導致控制流攻擊的漏洞根源,例如緩衝區溢出或釋放後使用漏洞。
- 補丁生成器: 根據檢測到的漏洞類型生成二進制補丁。
- 補丁驗證器: 驗證生成的補丁是否有效。
結論
本文的研究表明,逐字記錄的 CFA 證據 (E2) 最能支持 Vrf 基於 CFLog 進行審計和漏洞根源分析。SABRE 作為一個基於 E2 證據的案例研究,展示了 Vrf 如何在沒有源代碼的情況下利用 CFA 證據分析攻擊行為、定位漏洞根源並自動生成二進制補丁。