Talk Description:
Until recently, systems would allocate writable memory as executable by default. W^X is a memory protection policy that states that a page of memory should not be writable and executable at the same time. For many years OpenBSD has had user-mode support for W^X, but until recently the kernel support for W^X on amd64 and i386 platforms had received less attention. This talk will contain a brief history of W^X protection mechanisms present in OpenBSD and detail the recent effort to make the kernel W^X support as robust as possible. The talk will describe the challenges faced in both identifying the regions to be protected, and ensuring the W^X policy was enforced across all of them. The talk will also detail the special challenges faced while upgrading the i386 hardware platform’s legacy page table format to a version that supports W^X more easily.
Presented by:
Hackfest communication - http://www.hackfest.ca