一句话:提出 HerQules,用硬件强制的消息队列保护程序,规避软件运行时元数据更新与复杂硬件监控的缺陷。
许多程序使用不安全指针直接操作内存,容易引入内存安全漏洞。已有运行时防御包括内存安全检查,以及 NX、影子栈和 CFI 等控制流保护手段,但基于软件的设计为提升精度需更新进程内运行时元数据,难以同时做到精确、高效和安全;基于硬件的细粒度指令监控虽将元数据保存在专用硬件中,却设计复杂且需大幅修改微架构。为此,作者提出 HerQules,利用硬件强制的消息队列来保护程序,试图规避上述两类方案的局限。摘要未报告具体实现细节与实验评估结果。
Many computer programs directly manipulate memory using unsafe pointers, which may introduce memory safety bugs. In response, past work has developed various runtime defenses, including memory safety checks, as well as mitigations like no-execute memory, shadow stacks, and control-flow integrity (CFI), which aim to prevent attackers from obtaining program control. However, software-based designs often need to update in-process runtime metadata to maximize accuracy, which is difficult to do precisely, efficiently, and securely. Hardware-based fine-grained instruction monitoring avoids this problem by maintaining metadata in special-purpose hardware, but suffers from high design complexity and requires significant microarchitectural changes.
@inproceedings{paperbot6130,
title = {HerQules: securing programs via hardware-enforced message queues},
author = {Daming D. Chen and Wen Shih Lim and Mohammad Bakhshalipour and Phillip B. Gibbons and James C. Hoe and Bryan Parno},
booktitle = {ASPLOS},
year = {2021},
doi = {10.1145/3445814.3446736}
}