Skip to main content
QUICK REVIEW

[논문 리뷰] The Endokernel: Fast, Secure, and Programmable Subprocess Virtualization

B.M. Im, Fangfei Yang|arXiv (Cornell University)|2021. 08. 08.
Security and Verification in Computing참고 문헌 56인용 수 12
한 줄 요약

엔도커널 아키텍처는 단일 프로세스 내에서 시스템 자원(메모리, 시그널, 시스템콜)을 가상화함으로써 빠르고 안전하며 프로그래머블한 서브프로세스 가상화를 가능하게 하는 자기 격리형 사용자 수준 모니터를 도입한다. 그 프로토타입인 인트라버트(Intravirt)는 인텔® 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와 같은 기존 솔루션들이 시스템 자원을 완전히 가상화하지 못하거나 높은 오버헤드를 유발한다는 한계를 극복하기 위해.
  • 커널 수준의 권한 전환에 의존하지 않고 서브프로세스 권한을 시스템 수준의 객체에 매핑할 수 있는 안전하고 효율적이며 확장 가능한 아키텍처를 설계하기 위해.
  • 엔도커널을 실제 시스템(예: NGINX)에 적용하여 서브프로세스 격리가 안전하고 성능 면에서도 충족될 수 있음을 입증하기 위해.

제안 방법

  • 자기 격리형 모니터를 표준 프로세스 내에 통합하는 새로운 프로세스 모델인 엔도커널 아키텍처를 도입하여 서브프로세스 수준의 격리를 강제한다.
  • 효율적인 메모리 격리를 위해 메모리 보호 키(MPK)를 사용하고, 모든 시스템콜을 가로채고 가상화하기 위한 새로운 안전한 시스템콜 호출 게이트(nexpoline)를 도입한다.
  • 커널 인터페이스의 복잡성을 극복하기 위해 시그널을 정의하는 간접성 레이어를 삽입하여 시그널을 올바른 서브프로세스 도메인으로 매핑한다.
  • 모든 시스템 자원(파일, 스레드, 시그널, 메모리)에 대한 액세스를 중재하기 위해 사용자 수준 모니터를 활용하여 커널 수준의 우회 공격으로 인한 누출을 방지한다.
  • 엔도커널 아키텍처를 적용하여 NGINX를 여러 개의 격리된 도메인(예: HTTP 파서, OpenSSL)으로 재구조화하고 최소 권한 원칙을 적용한다.
  • 모니터와 호출 게이트를 구현하기 위해 다양한 저수준 메커니즘(예: 인텔® 제어 강화 기술)을 사용하여 성능-보안 트레이드오프를 평가한다.

실험 결과

연구 질문

  • RQ1커널 수준의 권한 전환에 의존하지 않고, 단일 프로세스 내에서 모든 시스템 자원(메모리, 시그널, 시스템콜)을 효율적이고 안전하게 가상화할 수 있는가?
  • RQ2서브프로세스 격리는 어떻게 확장 가능하고 조합 가능하게 만들 수 있으며, 성능을 희생시키지 않고 애플리케이션 전용 보호 추상화를 지원할 수 있는가?
  • RQ3기존의 서브프로세스 격리 기법에는 어떤 저수준 위협이 존재하여 전통적인 보안 경계를 우회하는가? 이러한 위협은 어떻게 완화할 수 있는가?
  • RQ4시스템콜 및 시그널 가상화는 커널 인터페이스나 ptrace 유사 메커니즘을 악용하는 우회 공격을 어느 정도 방지할 수 있는가?
  • RQ5복제 시 복사(Copy-on-Write) 의미 체계를 지원하고 동시성을 보장하면서도 권한 누출 없이 안전하고 고성능의 서브프로세스 가상화 모델을 구축할 수 있는가?

주요 결과

  • 인트라버트는 서브프로세스 격리 기능을 구현할 때 2–40%의 성능 오버헤드를 기록하며, 일부 설정에서는 네이티브 성능에 5% 이내로 수렴한다.
  • nexpoline 시스템콜 게이트는 오직 모니터만 시스템콜을 트리거할 수 있도록 보장하여 불법적인 시스템콜 호출을 완전히 차단하여 주요 우회 공격 경로를 차단했다.
  • 인트라버트는 복제 시 복사 의미 체계를 악용하여 격리 정책을 우회하는 다중 프로세스 스타일 공격을 방지한다.
  • 도메인 전환 메커니즘으로부터 발생하는 저수준 위협(예: 측면채널 공격, 권한 상승 공격)을 탐지하고 완화하는 데 성공했다.
  • 간접성 레이어를 통한 시그널 가상화로 서브프로세스에 대한 세밀한 신호 라우팅이 가능해졌으며, 커널 인터페이스의 제약을 극복했다.
  • 프로토타입은 NGINX를 격리된 도메인으로 성공적으로 재구조화하여 HTTP 파서 및 OpenSSL 구성 요소에 최소 권한 원칙을 적용함으로써 실제 적용 가능성을 입증했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.