libmpk: Software Abstraction for Intel Memory Protection Keys (Intel MPK)
Talkat USENIX ATC '19 · on Wednesday, 2019-07-10· at 16:10· USENIX ATC Track II: Grand Ballroom VII–IX·
summary
libmpk virtualizes Intel MPK so 16 hardware keys become an unlimited virtual key space, prevents protection-key-use-after-free by managing and protecting metadata, and adds a lazy inter-thread key synchronization syscall to propagate PKRU updates. Library modifies few lines in real apps (OpenSSL 83 lines, ChakraCore ~10, Memcached ~117) and shows ~1% overhead vs unprotected and ~8.1× speedup over mprotect-based protection; source code is publicly available.
AI-written summary · about
chapters (13)
- 0:00Intro
- 0:24SECURITY CRITICAL MEMORY REGIONS NEED PROTECTION
- 1:15EXAMPLE 1 - HEARTBLEED ATTACK
- 1:49EXAMPLE 1. EXISTING SOLUTION TO PROTECT MEMORY Process separation
- 3:01PROBLEMS OF EXISTING SOLUTIONS
- 3:38OUTLINE
- 4:44UNDERLINE IMPLEMENTATION
- 5:26EXAMPLE - JIT PAGE WAX PROTECTION
- 7:05ASYNCHRONOUS PERMISSION CHANGE - PROS
- 11:36LATENCY - KEY VIRTUALIZATION
- 14:13RELATED WORK
- 14:55CONCLUSION
- 15:57DISCUSSION Rogue data cache load (Meltdown)
related talks
19mEPK: Scalable and Efficient Memory Protection Keys
50mMPK/PKS Linux Kernel Compartmentalization
30mKernel Hardening With Protection Keys
20mLimitations and Opportunities of Modern Hardware Isolation Mechanisms
25mPIkit: A New Kernel-Independent Processor-Interconnect Rootkit
23mIMIX: In-Process Memory Isolation EXtension
16mUsing PMP, ePMP and Rust to Protect Embedded Kernels, Even from Themselves
38mTaking Kernel Hardening to the Next Level
