Skip to main content
QUICK REVIEW

[논문 리뷰] IskiOS: Intra-kernel Isolation and Security using Memory Protection Keys

Spyridoula Gravani, Mohammad Hedayati|arXiv (Cornell University)|2019. 03. 11.
Security and Verification in Computing참고 문헌 70인용 수 2
한 줄 요약

이 논문은 IskiOS를 소개한다. IskiOS는 기존 x86-64 하드웨어에서 기존의 사용자 모드 보호 키(PKU)를 활용하여 커널 모드에서 작동하는 새로운 메커니즘인 커널스페이스용 보호 키(PKK)를 통해 보호 키를 사용자 모드에서 커널 모드로 확장함으로써 효율적인 인트라 커널 격리 기능을 제공한다. 이를 통해 코드 실행을 쓰기 가능한 메모리에서 방지하는 실행 전용 메모리(XOM)와 경쟁 조건이 없는 샤페론 스택을 실현하며, 마이크로 벤치마크에서 평균 11%의 오버헤드, 전체 애플리케이션 워크로드에서는 5% 미만의 오버헤드를 기록한다.

ABSTRACT

Operating system (OS) kernels such as Windows, Linux, and MacOS are vulnerable to control-flow hijacking. Defenses exist, but many require efficient intra-address space isolation. For example, execute-only memory requires read protection of code segments, and shadow stacks require write protection from buffer overwrites. Intel's Protection Keys for Userspace (PKU) could, in principle, provide the intra-kernel isolation needed to implement such features, but, when used as designed, it applies only to user-mode application code. This paper presents an unconventional approach to memory protection, allowing PKU to be used within the OS kernel on existing Intel hardware, replacing the traditional user/kernel isolation mechanism and, simultaneously, enabling efficient intra-kernel isolation. We call the resulting mechanism Protection Keys for Kernelspace (PKK). To demonstrate its utility and efficiency, we present a system we call IskiOS: a Linux variant featuring execute-only memory (XOM) and the first-ever race-free shadow stacks for x86-64. Experiments with the LMBench kernel microbenchmarks display an average overhead of about 11% for PKK and no additional overhead for XOM. IskiOS's shadow stacks bring the total to 22%. For full applications, experiments with the system benchmarks of the Phoronix test suite display negligible overhead for PKK and XOM, and less than 5% for shadow stacks.

연구 동기 및 목표

  • 운영 체제 커널이 제어 흐름 탈취 공격에 취약한 문제를 해결하기 위해.
  • 실행 전용 메모리 및 샤페론 스택과 같은 보안 메커니즘을 위한 효율적인 인트라 커널 격리 기능을 제공하기 위해.
  • 기존 x86-64 하드웨어에서 기존의 사용자 모드 보호 키(PKU)를 커널 내부에서 사용할 수 있도록 적응시키기 위해.
  • 기존의 사용자/커널 격리 방식을 통합적이고 더 안전한 메모리 보호 모델로 대체하기 위해.
  • 보안 강화된 커널 기능에 대해 실용적인 성능을 보장하며 최소한의 런타임 오버헤드를 제공하기 위해.

제안 방법

  • Intel의 사용자 모드 보호 키(PKU)를 커널 모드 메모리 보호를 위해 재사용하여, 새로운 메커니즘인 커널스페이스용 보호 키(PKK)를 개발한다.
  • 커널의 메모리 관리 기능을 수정하여 커널 텍스트 및 데이터 세그먼트에 보호 키를 할당하고, 읽기, 쓰기, 실행 권한을 강제 적용한다.
  • PKK를 사용하여 코드 세그먼트에 읽기 보호를 적용함으로써 실행 전용 메모리(XOM)를 구현한다. 이는 쓰기 가능한 메모리에서 코드 실행을 방지한다.
  • 스택 메모리에 쓰기 보호를 적용하여 경쟁 조건이 없는 샤페론 스택을 구성함으로써 버퍼 오버플로우 공격에 대한 무결성을 확보한다.
  • 기존 코드에 최소한의 변경만으로 Linux 커널에 PKK를 통합하여 기존 하드웨어 및 시스템 호출과의 호환성을 유지한다.
  • LMBench 마이크로벤치마크와 Phoronix 테스트 세트 워크로드를 사용하여 성능을 평가함으로써 보안 기능을 통한 오버헤드를 측정한다.

실험 결과

연구 질문

  • RQ1Intel의 사용자 모드 보호 키(PKU)를 인트라 커널 메모리 보호에 효과적으로 재사용할 수 있는가?
  • RQ2PKK를 사용하여 커널 내에서 실행 전용 메모리(XOM)와 경쟁 조건이 없는 샤페론 스택을 활성화했을 때의 성능 오버헤드는 얼마인가?
  • RQ3PKK는 기존의 사용자/커널 격리 방식을 대체할 수 있으며, 보안 수준을 유지하거나 향상시킬 수 있는가?
  • RQ4마이크로벤치마크와 실제 애플리케이션 워크로드 간에 PKK 및 그 보안 기능의 오버헤드는 어떻게 비교되는가?
  • RQ5기존 하드웨어 보호 메커니즘을 활용하여 x86-64 아키텍처에서 경쟁 조건이 없는 샤페론 스택을 실제로 구현할 수 있는가?

주요 결과

  • PKK 메커니즘은 PKK와 실행 전용 메모리(XOM)를 함께 사용할 경우 LMBench 커널 마이크로벤치마크에서 평균 11%의 오버헤드를 기록한다.
  • 실행 전용 메모리(XOM)는 PKK 외에 추가 오버헤드가 없으며, 보호 키를 통한 효율적인 강제 적용을 입증한다.
  • Phoronix 테스트 세트를 사용한 전체 애플리케이션 벤치마크에서 샤페론 스택은 5% 미만의 오버헤드를 기록하여 높은 실용성을 입증한다.
  • 시스템은 x86-64 아키텍처에서 처음으로 경쟁 조건이 없는 샤페론 스택을 실현하였으며, 이를 정밀한 쓰기 보호를 통해 PKK를 통해 달성하였다.
  • PKK는 새로운 하드웨어가 필요 없이 기존의 Intel x86-64 시스템에서도 구현 가능하여 실질적인 배포가 가능하다.
  • 성능 결과는 실제 워크로드에서 PKK 및 XOM에 대해 거의 무시할 수 없는 오버헤드를 기록하며, 이는 생산 환경에서의 적용 가능성을 검증한다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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