Skip to main content
QUICK REVIEW

[논문 리뷰] MultiK: A Framework for Orchestrating Multiple Specialized Kernels

Hsuan-Chi Kuo, Akshith Gunasekaran|arXiv (Cornell University)|2019. 03. 16.
Security and Verification in Computing참고 문헌 20인용 수 8
한 줄 요약

MultiK는 응용프로그램별로 특화된 여러 전용 커널을 조율하는 리눅스 기반 프레임워크로, 거의 영향을 주지 않는 런타임 오버헤드를 통해 커널 공격 표면을 줄인다. D-Kut 및 S-Kut와 같은 프로파일링 도구를 활용해 기초 블록 수준까지 세밀한 코드 감소를 가능하게 하며, 93.68%의 코드 감소와 23개 중 19개의 취약성 제거를 달성했고, 성능 오버헤드는 오직 0.19%에 그친다.

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가 만들고, 인간 에디터가 검토했습니다.