IskiOS: Lightweight Defense Against Kernel-Level Code-Reuse Attacks
Spyridoula Gravani, Mohammad Hadi Hedayati, John Criswell, Michael Lee Scott
Abstract
Open-access reader
Spyridoula Gravani, Mohammad Hadi Hedayati, John Criswell, Michael Lee Scott
Abstract
Open-access reader
Commodity operating systems such as Windows, Linux, and MacOS X form the Trusted Computing Base (TCB) of today’s computing systems. However, since they are written in C and C++, they have memory safety errors and are vulnerable to kernel-level code reuse attacks. This paper presents IskiOS: a system that helps to thwart such attacks by providing both execute-only memory and an efficient shadow stack for operating system kernels on the x86 processor. Execute-only memory hides the code segment from buffer overread attacks, strengthening code randomization techniques. Shadow stacks protect return addresses from corruption. IskiOS leverages Intel’s Memory Protection Keys (MPK, a.k.a. PKU) and Kernel Page Table Isolation (KPTI) to protect kernel memory from buffer overwrite and overread attacks and to prevent corruption of the shadow stack. Unlike previous work, IskiOS places no restrictions on virtual address space layout, allowing the operating system to achieve higher diversification entropy by placing kernel stacks and kernel code in arbitrary locations within the virtual address space. IskiOS incurs virtually no performance overhead for execute-only memory. Its shadow stacks incur a geometric mean slowdown of 12.3% in our experiments.
OpenAlex reports 8 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Commodity operating systems such as Windows, Linux, and MacOS X form the Trusted Computing Base (TCB) of today’s computing systems. However, since they are written in C and C++, they have memory safety errors and are vulnerable to kernel-level code reuse attacks. This paper presents IskiOS: a system that helps to thwart such attacks by providing both execute-only memory and an efficient shadow stack for operating system kernels on the x86 processor. Execute-only memory hides the code segment from buffer overread attacks, strengthening code randomization techniques. Shadow stacks protect return addresses from corruption. IskiOS leverages Intel’s Memory Protection Keys (MPK, a.k.a. PKU) and Kernel Page Table Isolation (KPTI) to protect kernel memory from buffer overwrite and overread attacks and to prevent corruption of the shadow stack. Unlike previous work, IskiOS places no restrictions on virtual address space layout, allowing the operating system to achieve higher diversification entropy by placing kernel stacks and kernel code in arbitrary locations within the virtual address space. IskiOS incurs virtually no performance overhead for execute-only memory. Its shadow stacks incur a geometric mean slowdown of 12.3% in our experiments.
Key concepts: Computer science, Memory protection, Operating system, Memory safety, sysfs, Code reuse, Pointer (user interface), x86