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.
翻译:如 Windows、 Linux 和 MacOS X 等商品操作系统组成了当今计算机系统信任的电子计算基地(TCB) 。 但是,由于它们以 C 和 C++ 形式写成, 它们有记忆安全错误, 容易受到内核代码再利用攻击。 本文展示了 IskiOS : 一种通过在 x86 处理器上为操作系统内核提供只执行的内存和高效的影子堆叠来帮助挫败这类攻击的系统。 与以往的工作不同, IskiOS 对虚拟地址空间布局没有限制, 允许操作系统通过在任意地点安装内核堆和内核代码实现更高的多样化, 保护回地址。 IskiOS 利用 Intel 的记忆保护密钥( MPK, a. k. a. a. PKU) 和 Kernel Page Page 表隔离( KPTI) 来保护内核内核内核记忆, 防止缓冲覆盖和过量攻击, 防止黑堆的腐败。 IskiOS 对虚拟地址布局设置限制, 允许操作系统通过在任意地点放置内核堆和内核内核内核密码密码来实现更多样化。 Iskistel 。 Iskis 的软化实验运行运行运行运行运行运行运行运行。