Skip to main content
QUICK REVIEW

[논문 리뷰] In-Kernel Control-Flow Integrity on Commodity OSes using ARM Pointer Authentication

Sungbae Yoo, Jinbum Park|arXiv (Cornell University)|2021. 12. 14.
Security and Verification in Computing인용 수 8
한 줄 요약

이 논문은 ARM 포인터 인증(PA)을 사용하여 Linux 및 FreeBSD와 같은 일반 소프트웨어 운영체제를 위한 하드웨어 지원 기반 인-커널 제어 흐름 정합성(CFI) 메커니즘인 PAL을 제안한다. PAL은 자동 context-aware 정밀 조정을 통해 CFI 정밀도를 향상시키고, 정적 검증기를 통해 정확성을 보장하여 Apache에서 <1%, Linux perf에서 3–5%의 거의 영향 없는 성능 오버헤드를 달성하면서 iOS 및 기타 PA 기반 시스템에서 새로운 공격 벡터를 드러낸다.

ABSTRACT

This paper presents an in-kernel, hardware-based control-flow integrity (CFI) protection, called PAL, that utilizes ARM's Pointer Authentication (PA). It provides three important benefits over commercial, state-of-the-art PA-based CFIs like iOS's: 1) enhancing CFI precision via automated refinement techniques, 2) addressing hindsight problems of PA for in kernel uses such as preemptive hijacking and brute-forcing attacks, and 3) assuring the algorithmic or implementation correctness via post validation. PAL achieves these goals in an OS-agnostic manner, so could be applied to commodity OSes like Linux and FreeBSD. The precision of the CFI protection can be adjusted for better performance or improved for better security with minimal engineering efforts if a user opts in to. Our evaluation shows that PAL incurs negligible performance overhead: e.g., &lt;1% overhead for Apache benchmark and 3~5% overhead for Linux perf benchmark on the latest Mac mini (M1). Our post-validation approach helps us ensure the security invariant required for the safe uses of PA inside the kernel, which also reveals new attack vectors on the iOS kernel. PAL as well as the CFI-protected kernels will be open sourced.

연구 동기 및 목표

  • Linux 및 FreeBSD와 같은 일반 소프트웨어 운영체제를 위한 정밀하고 구현 가능한 인-커널 CFI의 부재를 해결하기 위해 ARM 포인터 인증을 활용한 기반 기술을 제안한다.
  • 기존의 PA 기반 CFI 체계가 가지는 정밀도 부족 및 후회 공격에 취약한 문제점을 해결하기 위해 자동화된, 운영체제에 종속되지 않는 정밀 조정 기법을 도입한다.
  • 컴파일러 최적화의 함정과 커널 이미지 내의 실수를 탐지할 수 있는 정적 검증기를 통해 PA 기반 CFI의 정확성과 보안성을 확보한다.
  • 강력한 보안 보장을 유지하면서도 실용적인 구현을 가능하게 하기 위해 성능 오버헤드를 최소화한다.
  • 체계적 위협 모델링을 통해 기존의 PA 기반 보호 체계(예: iOS 커널)에서 발생하는 새로운 공격 벡터를 폭 드러내고 분석한다.

제안 방법

  • 런타임에 제어 흐름 이동을 인증하기 위해 ARM 포인터 인증(PA)을 활용해 서명된 함수 포인터를 생성한다.
  • 자신들만의 커널 특화 패턴과 설계 패턴(예: 객체 불변성, 호출 컨텍스트)을 자동으로 추론하는 컨텍스트 분석기를 구현하여 간접 호출 대상의 정밀도를 향상시킨다.
  • 모든 PA 서명된 포인터가 최종 커널 이미지에서 보안 불변성을 유지하는지 검증하기 위해 정적 검증기를 사용한다. 이는 조기 포인터 저장이나 최적화에 의한 무력화와 같은 문제를 탐지할 수 있다.
  • GCC 컴파일러 파이프라인의 GIMPLE 중간 표현(IR) 수준에서 CFI 메커니즘을 통합함으로써 커널 소스 코드를 수정하지 않고도 운영체제에 종속되지 않는 배포를 가능하게 한다.
  • 커널 보호를 위한 하나의 PA 키와 사용자 영역을 위한 다른 키를 할당하고, 응용 프로그램 별 키 멀티플렉싱을 통해 키 재사용 공격을 방지한다.
  • 런타임에 원시 포인터 또는 인증 실패를 탐지하기 위해 후처리 검증을 수행함으로써 에지 케이스와 컴파일러 오버헤드에 대한 강건성을 확보한다.

실험 결과

연구 질문

  • RQ1어떻게 하면 ARM 포인터 인증 기반 CFI를 일반 소프트웨어 커널(예: Linux 및 FreeBSD)에 배포 가능한 정밀도와 효율성으로 적용할 수 있는가?
  • RQ2컴파일러 최적화 또는 오용으로 인해 발생하는 PA 기반 인-커널 CFI 환경에서 새로운 공격 벡터는 무엇이며, 그 원인은 무엇인가?
  • RQ3커널 설계 패턴 기반 자동 정밀 조정 기법이 수동 인스트루멘테이션 없이도 CFI 정밀도를 크게 향상시킬 수 있는가?
  • RQ4정적 검증기가 런타임 검사로는 감지되지 않는 PA 보호 커널 이미지 내의 미묘한 보안 결함을 어느 정도 탐지할 수 있는가?
  • RQ5실제 워크로드에서 PA 기반 인-커널 CFI가 초래하는 성능 오버헤드는 얼마이며, 이를 실사용 환경에서 실용적으로 간주할 수 있는가?

주요 결과

  • PAL은 간접 호출 중 100개 이상의 대상이 존재하는 경우를 7.0%에서 0.08%로 감소시켜 CFI 정밀도 향상의 뚜렷한 성과를 보였다.
  • Apache 벤치마크에서는 1% 미만의 성능 오버헤드를 기록했고, Linux perf 벤치마크에서는 3–5%의 오버헤드를 기록하여 실제 하드웨어(M1 매킨토시 미니)에서 거의 영향이 없는 성능 영향을 보였다.
  • 정적 검증기가 최신 iOS 커널에서 새로운 공격 벡터를 드러내었고, 기존의 PA 기반 체계인 PARTS와 애플의 CFI에서 버그를 발견했다.
  • PAL의 접근 방식은 운영체제에 종속되지 않으며, Linux 및 FreeBSD에 대해 최소한의 공학적 노력으로 적용 가능하여 자동 컨텍스트 분석을 통한 고정밀 CFI를 실현한다.
  • 정적 및 런타임 검증을 통해 엄격한 불변성을 강제함으로써 일반적인 PA 관련 공격(예: 사전 탈취, 브루트 포스 공격)을 성공적으로 방지하였다.
  • PAL은 컴파일러 플러그인, 정적 검증기, Linux 및 FreeBSD용 CFI 강화 커널을 포함하여 오픈소스로 공개되어 재현 가능성과 향후 연구를 가능하게 한다.

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

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

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

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