Skip to main content
QUICK REVIEW

[论文解读] MultiK: A Framework for Orchestrating Multiple Specialized Kernels

Hsuan-Chi Kuo, Akshith Gunasekaran|arXiv (Cornell University)|Mar 16, 2019
Security and Verification in Computing参考文献 20被引用 8
一句话总结

MultiK 是一个基于 Linux 的框架,通过为每个应用程序量身定制多个专用内核来协调工作,以近乎零的运行时开销显著减少内核攻击面。它利用 D-Kut 和 S-Kut 等性能分析工具实现细粒度的代码缩减(最低至基本块级别),实现 93.68% 的代码缩减率,并仅带来 0.19% 的性能开销,成功消除了 19/23 个已知漏洞。

ABSTRACT

We present, MultiK, a Linux-based framework 1 that reduces the attack surface for operating system kernels by reducing code bloat. MultiK "orchestrates" multiple kernels that are specialized for individual applications in a transparent manner. This framework is flexible to accommodate different kernel code reduction techniques and, most importantly, run the specialized kernels with near-zero additional runtime overheads. MultiK avoids the overheads of virtualization and runs natively on the system. For instance, an Apache instance is shown to run on a kernel that has (a) 93.68% of its code reduced, (b) 19 of 23 known kernel vulnerabilities eliminated and (c) with negligible performance overheads (0.19%). MultiK is a framework that can integrate with existing code reduction and OS security techniques. We demonstrate this by using D-KUT and S-KUT -- two methods to profile and eliminate unwanted kernel code. The whole process is transparent to the user applications because MultiK does not require a recompilation of the application.

研究动机与目标

  • 解决单体式操作系统内核中因存在未使用且易受攻击的代码而导致的攻击面不断扩大的问题。
  • 克服现有内核专业化技术的局限性,这些技术通常需要手动配置、重新编译,或引入较高的运行时开销。
  • 实现在细粒度(如基本块级别)的、透明的、对应用程序透明的内核专业化,且无需虚拟化支持。
  • 支持在同一系统上共存多个专用内核与完整内核,以适应异构工作负载。
  • 与现有的代码缩减和操作系统安全技术集成,以最小的性能代价提升系统整体安全性。

提出的方法

  • 使用 D-Kut(函数/符号级与基本块粒度分析)和 S-Kut(系统调用级分析)等性能分析工具对应用程序进行运行时剖析,以识别必要的内核代码。
  • 利用剖析数据为每个应用程序的实际系统调用和代码使用情况生成定制化、最小化的内核二进制文件。
  • 在运行时透明地为每个应用程序启动其专属的专用内核,对应用程序完全透明。
  • 所有专用内核均在基础(原生)内核上原生运行,避免虚拟化带来的开销。
  • 支持多种专业化技术与粒度(页、函数、基本块),且不引入性能惩罚。
  • 与 Docker 等容器化系统集成,实现每个容器独立的专用内核,且无需修改应用程序。

实验结果

研究问题

  • RQ1是否可以在不牺牲性能或不需重新编译应用程序的前提下,显著减少内核攻击面?
  • RQ2是否可行实现细粒度的内核专业化(如基本块级别)且仅带来极低的运行时开销?
  • RQ3多个专用内核是否可以在同一系统上高效共存并被协调管理?
  • RQ4在不同工作负载和不同代码缩减粒度下,应用特定内核的性能与完整内核相比如何?
  • RQ5该框架是否可以无需修改应用程序,就与现有的操作系统安全和代码缩减技术无缝集成?

主要发现

  • 对于 Apache 实例,MultiK 实现了 93.68% 的内核代码大小缩减,显著缩小了攻击面。
  • 该框架在相同 Apache 部署中成功消除了 23 个已知内核漏洞中的 19 个,证明了其强大的安全加固能力。
  • Apache 工作负载的性能开销仅为 0.19%,证实了细粒度专业化下接近原生性能的表现。
  • 该框架支持多种专业化技术(D-Kut、S-Kut),并可在包括基本块级别在内的多种粒度下运行,且无性能惩罚。
  • MultiK 实现了透明的、对应用程序透明的内核专业化,并可无缝集成至基于容器的部署(如 Docker)中,无需修改应用程序。
  • 该框架避免了虚拟化开销,原生运行,在所有评估的配置和粒度下均实现了低于 1% 的运行时开销。

更好的研究,从现在开始

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

无需绑定信用卡

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