Skip to main content
QUICK REVIEW

[论文解读] The Endokernel: Fast, Secure, and Programmable Subprocess Virtualization

B.M. Im, Fangfei Yang|arXiv (Cornell University)|Aug 8, 2021
Security and Verification in Computing参考文献 56被引用 12
一句话总结

Endokernel 架构引入了一种自隔离的用户级监控器,通过在一个进程中虚拟化系统资源(内存、信号、系统调用),实现了快速、安全且可编程的子进程虚拟化。其原型 Intravirt 利用 Intel® MPK 和一种安全的系统调用网关(nexpoline),仅带来 2–40% 的开销,便消除了先前系统中存在的关键底层绕过漏洞。

ABSTRACT

Commodity applications contain more and more combinations of interacting components (user, application, library, and system) and exhibit increasingly diverse tradeoffs between isolation, performance, and programmability. We argue that the challenge of future runtime isolation is best met by embracing the multi-principle nature of applications, rethinking process architecture for fast and extensible intra-process isolation. We present, the Endokernel, a new process model and security architecture that nests an extensible monitor into the standard process for building efficient least-authority abstractions. The Endokernel introduces a new virtual machine abstraction for representing subprocess authority, which is enforced by an efficient self-isolating monitor that maps the abstraction to system level objects (processes, threads, files, and signals). We show how the Endokernel can be used to develop specialized separation abstractions using an exokernel-like organization to provide virtual privilege rings, which we use to reorganize and secure NGINX. Our prototype, includes a new syscall monitor, the nexpoline, and explores the tradeoffs of implementing it with diverse mechanisms, including Intel Control Enhancement Technology. Overall, we believe sub-process isolation is a must and that the Endokernel exposes an essential set of abstractions for realizing this in a simple and feasible way.

研究动机与目标

  • 为现代应用中具有多样化组件的细粒度、高效且可扩展的进程内隔离提供支持。
  • 克服现有解决方案(如 ptrace、LSM 和 Seccomp)的局限性——这些方案无法完全虚拟化系统资源,或引入过高开销。
  • 设计一种安全、高效且可扩展的架构,将子进程权限映射到系统级对象,而无需依赖内核级权限切换。
  • 通过将 Endokernel 应用于 NGINX 等实际系统,证明子进程隔离既安全又高效。

提出的方法

  • 提出 Endokernel 架构,一种新型进程模型,通过在标准进程中嵌入一个自隔离监控器,强制实施子进程级别的隔离。
  • 使用内存保护键(MPK)实现高效的内存隔离,并引入一种新的安全系统调用网关 nexpoline,以拦截并虚拟化所有系统调用。
  • 通过插入间接层将信号虚拟化,将信号映射到正确的子进程域,从而克服内核接口的复杂性。
  • 采用用户级监控器来中介对所有系统资源(文件、线程、信号、内存)的访问,确保不会因内核级绕过而造成泄漏。
  • 将该架构应用于 NGINX 的重构,将其划分为多个隔离域(如 HTTP 解析器、OpenSSL),强制实施最小权限原则。
  • 使用多种低层机制(如 Intel® 控制增强技术)评估不同实现方案之间的权衡,以构建监控器和网关。

实验结果

研究问题

  • RQ1是否能够通过用户级监控器,在不依赖内核级权限切换的前提下,高效且安全地虚拟化单个进程内的所有系统资源(内存、信号、系统调用)?
  • RQ2如何使子进程隔离既具备可扩展性又支持组合性,从而在不牺牲性能的前提下支持特定于应用的保护抽象?
  • RQ3现有子进程隔离技术中存在哪些低层威胁会绕过传统安全边界,以及如何加以缓解?
  • RQ4系统调用和信号虚拟化在多大程度上可以防止利用内核接口或 ptrace 类机制的绕过攻击?
  • RQ5是否能够构建一种安全、高性能的子进程虚拟化模型,支持并发和写时复制语义,同时不泄露权限?

主要发现

  • Intravirt 在强制实施子进程隔离时,性能开销为 2–40%,部分配置下仅比原生性能低 5%。
  • nexpoline 系统调用网关成功防止了未经授权的系统调用调用,确保只有监控器能够触发系统调用,从而关闭了一个主要的绕过向量。
  • Intravirt 防止了利用写时复制语义绕过隔离策略的多进程式攻击。
  • 该架构检测并缓解了来自域切换机制的低层威胁,包括侧信道攻击和权限提升攻击。
  • 通过间接机制虚拟化信号,实现了对子进程的细粒度信号路由,克服了内核接口的限制。
  • 该原型成功将 NGINX 重构为多个隔离域,对其中的 HTTP 解析器和 OpenSSL 组件强制实施最小权限原则,证明了其在真实场景中的适用性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。