Skip to main content
QUICK REVIEW

[논문 리뷰] ERIM: Secure and Efficient In-process Isolation with Memory Protection Keys

Anjo Vahldiek-Oberwagner, Eslam Elnikety|arXiv (Cornell University)|2018. 01. 21.
Security and Verification in Computing참고 문헌 24인용 수 16
한 줄 요약

ERIM은 Intel의 메모리 보호 키(MPK)와 바이너리 리라이팅을 사용하여 하드웨어로 보호되는 고성능 내부 프로세스 격리 기법을 도입함으로써, 신뢰할 수 없는 애플리케이션과 신뢰할 수 있는 보안 라이브러리 간의 안전하고 빈번한 전환을 가능하게 한다. 강력한 하드웨어 기반 격리 보장을 제공하면서도 near-ASLR 성능을 달성하여 CPU 코어당 초당 최대 100만 건의 보안 액세스를 구현하며, 거의 무시할 수 있는 오버헤드를 유발한다.

ABSTRACT

Many applications can benefit from isolating sensitive data in a secure library. Examples include protecting cryptographic keys behind a narrow cryptography API to defend against vulnerabilities like OpenSSL's Heartbleed bug. When such a library is called relatively infrequently, page-based hardware isolation can be used, because the cost of kernel-mediated domain switching is tolerable. However, some applications require very frequent domain switching, such as isolating code pointers to prevent control flow hijack attacks in code-pointer integrity (CPI). These applications have relied on weaker isolation techniques like address-space layout randomization (ASLR), which allow efficient switching but have proved vulnerable to attack. In this paper, we present ERIM, a novel technique that combines the security of hardware-enforced isolation with a switching performance near that of ASRL. ERIM can support sensitive data access up to a million times per CPU core a second with low overhead. The key idea is to combine memory protection keys (MPKs), a feature recently added to Intel CPUs, with binary rewriting to prevent circumvention. ERIM provides three primitives: isolation, call gates, and syscall mediation. We show how to apply ERIM to isolate frequently accessed session keys (not just the long-term keys) in nginx, a high performance web server, and how to isolate sensitive data in CPI. Our measurements indicate a negligible degradation in performance, even with very high rates of switching between the untrusted application and the secure library.

연구 동기 및 목표

  • 고주기 보안 액세스 시나리오에서 전통적인 페이지 기반 격리의 성능 저하 문제를 해결한다.
  • 제어 흐름 무결성 및 암호화 키 보호 분야에서 주소 공간 배치 랜덤화(ASLR)의 보안 한계를 극복한다.
  • 웹 서버 및 CPI 시스템과 같은 성능이 중요한 애플리케이션에서 민감한 데이터를 위한 효율적이고 하드웨어로 보호되는 격리 기능을 제공한다.
  • 강력한 격리 보장을 제공하면서도 전환 비용이 낮아 빈번하고 세밀한 보안 호출에 적합한 시스템을 설계한다.
  • 기존 고성능 소프트웨어 스택에 실제 구현 가능한 보안 솔루션을 제공한다.

제안 방법

  • 신뢰할 수 없는 애플리케이션 코드와 보안 라이브러리 간의 하드웨어 기반 메모리 격리를 구현하기 위해 Intel의 메모리 보호 키(MPK)를 활용한다.
  • 악성 코드가 MPK 명령어 사용을 우회하는 것을 방지하기 위해 애플리케이션을 인STRUMENT하고 MPK 명령어의 정확한 사용을 보장하기 위해 바이너리 리라이팅을 사용한다.
  • 세 가지 핵심 프리미티브를 도입한다: 격리(메모리 보호), 콜 게이트(제어된 전환), 시스템콜 중재(보안 시스템콜 처리).
  • 컴파일 타임에 애플리케이션 바이너리에 MPK 기반 격리를 통합하여 민감한 데이터에 대한 모든 액세스가 보안적으로 모니터링되는 전환을 거치도록 보장한다.
  • 트랩 및 특권 전환 오버헤드를 최소화하여, 자주 전환되는 상황에서도 near-ASLR 성능을 달성한다.
  • 실제 워크로드에 기술을 적용하여 세션 키 보호를 위한 nginx 및 코드 포인터 정합성(CPI) 시스템을 대상으로 한다.

실험 결과

연구 질문

  • RQ1하드웨어 기반 격리가 초당 CPU 코어당 최대 100만 건의 빈번한 보안 호출을 지원할 수 있을 정도로 효율적으로 구현될 수 있는가? 성능 저하가 심각하지 않은가?
  • RQ2메모리 보호 키(MPK)를 바이너리 리라이팅과 효과적으로 조합하여 악용을 방지하고 격리 정확성을 보장할 수 있는가?
  • RQ3고주기 보안 연산에서 MPK 기반 격리는 성능과 보안 측면에서 ASLR보다 얼마나 뛰어나게 성능을 발휘할 수 있는가?
  • RQ4ERIM은 성능에 심각한 영향을 주지 않고 nginx와 같은 실제 고성능 시스템에 효과적으로 도입될 수 있는가?
  • RQ5ERIM의 설계는 코드 재사용 또는 특권 상승 공격을 통해 격리 메커니즘을 우회하는 것을 방지하는가?

주요 결과

  • ERIM은 CPU 코어당 초당 최대 100만 건의 보안 액세스를 달성하여, 강력한 하드웨어 기반 격리 보장을 제공하면서도 near-ASLR 성능을 구현한다.
  • 극한의 워크로드 조건에서도 ERIM의 성능 오버헤드는 거의 무시할 수 있으며, 고주기 시나리오에서 측정 가능한 성능 저하율이 1% 미만이다.
  • 바이너리 리라이팅은 악성 코드가 MPK 보호 기능을 우회하는 것을 효과적으로 방지하여 격리 메커니즘의 무결성을 보장한다.
  • ERIM은 세션 키 보호를 위한 nginx에 성공적으로 적용되어 실제 고성능 웹 서버에서의 실용성을 입증한다.
  • 시스템은 강력한 격리 보장을 유지하면서도 신뢰할 수 없는 코드 영역과 신뢰할 수 있는 코드 영역 간의 빈번하고 효율적인 전환을 가능하게 한다.
  • ERIM의 설계는 암호화 키 관리 및 제어 흐름 무결성(CPI) 사용 사례 모두에 대해 안전하고 저오버헤드 격리를 가능하게 한다.

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

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

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

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