[논문 리뷰] EnclaveDom: Privilege Separation for Large-TCB Applications in Trusted Execution Environments
EnclaveDom은 Intel SGX 신뢰할 수 있는 실행 환경에서 대규모 TCB 애플리케이션을 위한 하드웨어 지원 기반의 특권 분리 시스템으로, 메모리 보호 키(MPK)를 사용해 에인클레이브를 태그된 메모리 영역으로 분할하고 기능 수준에서 세밀한 액세스 제어를 구현한다. 이는 신뢰할 수 없는 애플리케이션 코드가 라이브러리 OS의 민감한 내부 데이터 구조를 변조하는 것을 방지하며, Graphene-SGX에서의 프로토타입 평가에서 최소한의 성능 및 메모리 오버헤드를 기록한다.
Trusted executions environments (TEEs) such as Intel(R) SGX provide hardware-isolated execution areas in memory, called enclaves. By running only the most trusted application components in the enclave, TEEs enable developers to minimize the TCB of their applications thereby helping to protect sensitive application data. However, porting existing applications to TEEs often requires considerable refactoring efforts, as TEEs provide a restricted interface to standard OS features. To ease development efforts, TEE application developers often choose to run their unmodified application in a library OS container that provides a full in-enclave OS interface. Yet, this large-TCB development approach now leaves sensitive in-enclave data exposed to potential bugs or vulnerabilities in third-party code imported into the application. Importantly, because the TEE libOS and the application run in the same enclave address space, even the libOS management data structures (e.g. file descriptor table) may be vulnerable to attack, where in traditional OSes these data structures may be protected via privilege isolation. We present EnclaveDom, a privilege separation system for large-TCB TEE applications that partitions an enclave into tagged memory regions, and enforces per-region access rules at the granularity of individual in-enclave functions. EnclaveDom is implemented on Intel SGX using Memory Protection Keys (MPK) for memory tagging. To evaluate the security and performance impact of EnclaveDom, we integrated EnclaveDom with the Graphene-SGX library OS. While no product or component can be absolutely secure, our prototype helps protect internal libOS management data structures against tampering by application-level code. At every libOS system call, EnclaveDom then only grants access to those internal data structures which the syscall needs to perform its task.
연구 동기 및 목표
- 신뢰할 수 없는 제3자 코드가 라이브러리 OS의 민감한 내부 데이터 구조에 액세스하고 손상시킬 수 있는 위험을 해결하기 위해.
- 다중 에인클레이브 아키텍처의 복잡성을 피하기 위해 단일 에인클레이브 내에서 세밀한 특권 분리를 제공하기 위해.
- 파일 디스크립터 테이블과 같은 민감한 내부 데이터 구조를 애플리케이션 수준 코드의 변조로부터 보호하기 위해.
- 개별 내부 함수 수준에서 최소 권한 액세스 제어를 가능하게 하여 성능을 희생시키지 않은 채 보안을 향상시키기 위해.
- 특히 Graphene-SGX와 같은 컨테이너 기반 라이브러리 OS와의 통합을 용이하게 하여 기존 TEE 애플리케이션 개발 모델에 원활하게 통합하기 위해.
제안 방법
- Intel SGX의 메모리 보호 키(MPK)를 사용해 단일 에인클레이브 내 메모리 영역을 태그하여 하드웨어 기반 액세스 제어를 구현하기 위해.
- 특정 특권 수준 또는 액세스 정책과 연결된 여러 메모리 도메인으로 에인클레이브를 분할하기 위해.
- 기능 수준에서 액세스 규칙을 강제 적용하여 각 시스템 호출이 자신이 필요로 하는 최소한의 내부 데이터 구조만 액세스할 수 있도록 하기 위해.
- 개발자가 민감한 데이터 객체와 내부 libOS 구조를 주석 처리하고 보호할 수 있도록 사용자 공간 API로 통합하기 위해.
- EnclaveDom을 Graphene-SGX 라이브러리 OS에 통합하여 보안성과 성능의 상호 조정을 실험적으로 평가하기 위해.
- 가상화나 프로세스 기반 격리의 성능 비용을 피하기 위해 기존 하드웨어 지원 메모리 보호 기능을 활용하기 위해.
실험 결과
연구 질문
- RQ1MPK를 통한 하드웨어 지원 기반 메모리 태깅이 단일 Intel SGX 에인클레이브 내에서 특권 분리를 효과적으로 구현할 수 있는가?
- RQ2EnclaveDom은 신뢰할 수 없는 애플리케이션 코드가 라이브러리 OS의 민감한 내부 데이터 구조를 변조하는 것을 방지할 수 있는가?
- RQ3EnclaveDom이 실세계 TEE 라이브러리 OS인 Graphene-SGX에 통합되었을 때 수용 가능한 성능 및 메모리 오버헤드를 유발하는가?
- RQ4응용 프로그램을 여러 프로세스로 재구성하지 않아도 EnclaveDom이 기능 수준에서 세밀한 액세스 제어를 제공할 수 있는가?
- RQ5EnclaveDom은 신뢰할 수 없는 제3자 라이브러리가 포함된 공급망 공격에 대응하는 데 기존 접근 방식과 비교해 어떻게 성능을 발휘하는가?
주요 결과
- EnclaveDom은 Graphene-SGX 라이브러리 OS 내 민감한 내부 데이터 구조를 신뢰할 수 없는 애플리케이션 코드로부터 효과적으로 격리하여 무단 액세스 및 변조를 방지한다.
- 프로토타입은 성능 및 메모리 오버헤드가 매우 미미하여 대규모 TCB TEE 애플리케이션의 실세계 구현에 실용적임을 입증한다.
- 기능 수준에서 최소 권한 액세스를 강제 적용함으로써 각 시스템 호출이 자신의 작업을 수행하는 데 필요한 최소한의 데이터 구조만 액세스함을 보장한다.
- MPK의 사용은 가상화나 프로세스 격리 없이도 효율적이고 하드웨어 기반의 메모리 보호를 가능하게 한다.
- EnclaveDom은 다중 에인클레이브 아키텍처의 대안으로서 개발 복잡성을 줄이면서도 보안성을 향상시킨다.
- 평가 결과, EnclaveDom이 파일 디스크립터 테이블과 같은 libOS 관리 데이터 구조를 악성 또는 취약한 제3자 코드의 손상으로부터 보호함을 확인했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.