Securing the Hypervisor with Control-Flow Integrity
summary
Adds clang's CFI and SafeStack to QEMU, with upstream patches that work but require clang and LTO for whole-binary jump tables. Implements SafeStack per coroutine (manual allocation and pointer updates) and iCFI via ordered jump tables to block ROP and indirect-call hijacks. Results show about mitigates ~33% of vulnerabilities (35% are overflows) and blocks many zero-day integrity chains, but modules and shared libraries are unsupported and requires clang + LTO (heavy CI/build cost); cross-DSO CFI is future work.
AI-written summary · about
chapters (13)
- 0:00Intro
- 0:29Outline
- 0:49Why Control-Flow Integrity
- 6:02Implementing Control-Flow Integrity
- 6:42Protecting the Stack - Shadow Stack The standard protection against Stack Smashing
- 7:45Protecting the Stack - Safe Stack
- 8:25Shadow Stack vs Safe Stack
- 9:37Implementing Safe Stack in QEMU
- 10:38Protecting Function Pointers
- 13:20Implementing icall CFI in QEMU
- 15:44Status of patches
- 16:59Did we accomplish something?
- 17:27What's next?
related talks
45mControl Flow Integrity in the Linux Kernel
35mControl Flow Integrity on RISC-V Linux
39mControl Flow Integrity in the Linux Kernel
41mRISC-V Control-Flow Integrity (CFI)
01h 46mA little Introduction to Control Flow Integrity
01h 34mA Little Introduction to Control Flow Integrity in C++
27mControl Flow Integrity on RISC-V
20mControl Flow Integrity on RISCV
