Skip to main navigation Skip to search Skip to main content

KŘX: Comprehensive kernel protection against just-in-time code reuse

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

64 Scopus citations

Abstract

The abundance of memory corruption and disclosure vulnerabilities in kernel code necessitates the deployment of hardening techniques to prevent privilege escalation attacks. As more strict memory isolation mechanisms between the kernel and user space, like Intel's SMEP, become commonplace, attackers increasingly rely on code reuse techniques to exploit kernel vulnerabilities. Contrary to similar attacks in more restrictive settings, such as web browsers, in kernel exploitation, non-privileged local adversaries have great flexibility in abusing memory disclosure vulnerabilities to dynamically discover, or infer, the location of certain code snippets and construct code-reuse payloads. Recent studies have shown that the coupling of code diversification with the enforcement of a "read XOR execute" (ŘX) memory safety policy is an effective defense against the exploitation of userland software, but so far this approach has not been applied for the protection of the kernel itself. In this paper, we fill this gap by presenting kŘX: a kernel hardening scheme based on execute-only memory and code diversification. We study a previously unexplored point in the design space, where a hypervisor or a super-privileged component is not required. Implemented mostly as a set of GCC plugins, kŘX is readily applicable to the x86-64 Linux kernel and can benefit from hardware support (e.g., MPX on modern Intel CPUs) to optimize performance. In full protection mode, kŘX incurs a low runtime overhead of 4.04%, which drops to 2.32% when MPX is available.

Original languageEnglish
Title of host publicationProceedings of the 12th European Conference on Computer Systems, EuroSys 2017
PublisherAssociation for Computing Machinery, Inc
Pages420-436
Number of pages17
ISBN (Electronic)9781450349383
DOIs
StatePublished - Apr 23 2017
Event12th European Conference on Computer Systems, EuroSys 2017 - Belgrade, Serbia
Duration: Apr 23 2017Apr 26 2017

Publication series

NameProceedings of the 12th European Conference on Computer Systems, EuroSys 2017

Conference

Conference12th European Conference on Computer Systems, EuroSys 2017
Country/TerritorySerbia
CityBelgrade
Period04/23/1704/26/17

Keywords

  • Code diversification
  • Execute-only memory

Fingerprint

Dive into the research topics of 'KŘX: Comprehensive kernel protection against just-in-time code reuse'. Together they form a unique fingerprint.

Cite this