Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Touch but Don't Look - Running the Kernel in Execute Only Memory

Linux Plumbers Conference via YouTube

Overview

Explore the concept of execute-only memory and its implementation in the Linux kernel through this informative conference talk from the Linux Plumbers Conference. Dive into the benefits of execute-only memory for protecting against code-reading attacks and its potential impact on kernel security. Learn about the novel implementation approach across QEMU, KVM, and the guest Linux Kernel, which involves manipulating physical address bits to create execute-only guest virtual memory. Discover the proposed APIs for utilizing execute-only memory in userspace and the necessary changes to the Linux kernel to support this feature. Gain insights into the challenges and considerations for running the kernel in execute-only memory, including code patterns that may need to be avoided in future kernel development. Understand the implications for features like KASLR, ASLR, and fine-grained ASLR, as well as the potential impact on performance and reliability.

Syllabus

Intro
Why use execute-only memory
Control flow attacks
JIT-ROP
Discovering text - XO is not a lock box
Mitigations: Cost vs Benefit
XO memory CPU support
Trick for XO memory for VMS (2)
Qemu/KVM implementation
Userspace XO support
X86 Kernel Text Permission Lifecycle
XB6 patching methods
So what broke?
Text patching features
Toolchain Mixing Data and Code
Performance
Making this reliable
XO faults
Implementing non-strict mode
Fixing guest page tables
Future - Not reading text as a new rule in the kernel?
Plans
Summary

Taught by

Linux Plumbers Conference

Reviews

Start your review of Touch but Don't Look - Running the Kernel in Execute Only Memory

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.