Kernel Hardening: Protecting the Protection Mechanisms
summary
Implements page-granular memory protections for kernel data: read-only dynamically allocated memory, write-rare statically allocated memory, and a hypervisor-backed remapping path that remaps a protected page to a random writable mapping, updates it, then tears it down. Integrates into list/hlist and protects the IMA measurements list; works end-to-end with a hypervisor, needs work for no-hypervisor ARM64 and no-MMU fallbacks, has multi-remap write cost (four remaps per list insertion) and missing atomic/test coverage.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 2:54Merging upstream: The quest for an example
- 8:05Read Only vs Write Rare
- 8:57Write Protection mechanism: the MMU The MMU works at page level
- 11:00Hypervisor-enforced memory protection
- 16:44Side effects of the protection
- 24:12Example of conversion of a function
- 24:53Missing functionality
- 27:09Performance limitation Example: lists
- 30:35Does it work?
related talks
30mKernel Hardening With Protection Keys
29mThwarting Unknown Bugs: Hardening Features in the Mainline Linux Kernel
46mKernel Hardening for 32-bit Arm Processors
25mKernel Self-Protection Project
18mGuest Memory Protection -- Current Status and Future
39mHeki: Hypervisor-Enforced Kernel Integrity for Linux with KVM
52mKernel Hardening: Ten Years Deep
34mGetting on the Same (Virtual Memory) Page: A Roundtable on Data-only Attack Mitigations
