Secure and efficient in-process monitor (and library) protection with Intel MPK

EuroSys '20: Fifteenth EuroSys Conference 2020 Heraklion Greece April, 2020(2020)

引用 13|浏览34
暂无评分
摘要
The process reference monitor is a common technique to enforce security policies for application execution. Reference monitors can be used to detect attacks, enforce access control, check program integrity and even transform program state. Deciding where the monitor resides involves a trade-off between strong monitor isolation and low switching overheads. Running the monitor in the same address space as the protected/traced application (in-process monitors) allows for low overhead but raises isolation concerns. Thus, existing work place monitors in a separate address space, which leads to expensive monitor invocation latencies. We present MonGuard, a system in which a high-performance in-process monitor is efficiently isolated from the rest of the application. To that aim, we leverage the Intel Memory Protection Key (MPK) technology to enforce execute-only memory, combined with code randomization to protect and hide the monitor. MonGuard instruments around sensitive instructions to further prevent possible code reuse attacks. The carefully constructed monitor call gate switches the monitor memory permission in a context-sensitive way. We have built a prototype of MonGuard mostly as a loader extension and implemented a multi-variant execution (MVX) monitor. The evaluation shows MonGuard performs faster than the out-of-process monitor approach.
更多
查看译文
关键词
Memory Protection, In-process Monitor, Software Security, Multi-Variant Execution
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要