内内核:快速、安全和可编程的子进程虚拟化
The Endokernel: Fast, Secure, and Programmable Subprocess Virtualization
摘要:
商用应用程序包含越来越多的交互组件(用户、应用程序、库和系统)的组合,并在隔离、性能和可编程性之间表现出越来越多样化的权衡。我们认为,未来的运行时隔离的挑战是最好的满足拥抱应用程序的多原则的性质,重新思考快速和可扩展的进程内隔离的进程架构。我们提出,Endokernel,一个新的过程模型和安全体系结构,嵌套一个可扩展的监视器到标准的过程中,建立高效的最低权限的抽象。Endokernel引入了一个新的虚拟机抽象来表示子进程权限,这是由一个高效的自隔离监视器执行的,该监视器将抽象映射到系统级对象(进程、线程、文件和信号)。我们展示了如何使用Endokernel来开发专门的分离抽象,使用类似exokernel的组织来提供虚拟特权环,我们使用它来重组和保护NGINX。我们的原型,包括一个新的系统调用监视器,nespoline,并探讨了权衡实现它与不同的机制,包括英特尔控制增强技术。总的来说,我们相信子进程隔离是必须的,并且Endokernel公开了一组基本的抽象,以简单可行的方式实现这一点。
英文摘要:
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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。