[논문 리뷰] Malware Guard Extension: Using SGX to Conceal Cache Attacks
이 논문은 악성 Intel SGX 에누스 내에서 실행되는 최초의 실용적 캐시 사이드채널 공격을 입증한다. 이 공격은 SGX의 격리 기능을 우회하여 단일 트레이스에서 4096비트 RSA 개인키의 96%를 추출하고, 5분 이내로 11개의 트레이스를 통해 전체 키를 복원한다. 이 공격은 타이머, 대용량 페이지, 물리적 주소를 사용하지 않고도 DRAM 및 캐시 사이드채널을 활용하며, 악성 소프트웨어가 SGX 자체의 보안 기능을 이용해 숨겨진 채로 작동한다.
In modern computer systems, user processes are isolated from each other by the operating system and the hardware. Additionally, in a cloud scenario it is crucial that the hypervisor isolates tenants from other tenants that are co-located on the same physical machine. However, the hypervisor does not protect tenants against the cloud provider and thus the supplied operating system and hardware. Intel SGX provides a mechanism that addresses this scenario. It aims at protecting user-level software from attacks from other processes, the operating system, and even physical attackers. In this paper, we demonstrate fine-grained software-based side-channel attacks from a malicious SGX enclave targeting co-located enclaves. Our attack is the first malware running on real SGX hardware, abusing SGX protection features to conceal itself. Furthermore, we demonstrate our attack both in a native environment and across multiple Docker containers. We perform a Prime+Probe cache side-channel attack on a co-located SGX enclave running an up-to-date RSA implementation that uses a constant-time multiplication primitive. The attack works although in SGX enclaves there are no timers, no large pages, no physical addresses, and no shared memory. In a semi-synchronous attack, we extract 96% of an RSA private key from a single trace. We extract the full RSA private key in an automated attack from 11 traces within 5 minutes.
연구 동기 및 목표
- 하드웨어 제약 조건이 존재하는 바에도 불구하고, SGX 에누스 내부에서 캐시 사이드채널 공격이 가능한지 조사하는 것.
- 공동 배치된 에누스에서 기밀 정보를 추출할 수 있는 탐지되지 않는 악성 소프트웨어를 SGX 에누스에 배치할 수 있음을 입증하는 것.
- 타임스탬프 카운터에 접근할 수 없음에도 불구하고, 사이드채널 공격을 수행할 수 있는 정밀도를 확보한 타이밍 측정 기법을 개발하는 것.
- SGX에서 물리적 주소 및 대용량 페이지가 없음을 고려하여, DRAM 및 캐시 사이드채널을 조합함으로써 이를 극복하는 것.
- 실제로 사용되는 일정 시간 처리 방식의 RSA 구현체(mbedTLS)를 대상으로, 현실적인 격리 조건 하에서 공격의 효과성을 평가하는 것.
제안 방법
- CPU 사이클 카운팅과 캐시 접근 패턴을 활용한 새로운 타이밍 측정 기법을 개발하여, 기존 타임스탬프 카운터보다 높은 정밀도를 확보했다.
- 2MB 페이지나 물리적 주소 노출에 의존하지 않고도, DRAM 및 캐시 사이드채널을 조합하여 물리적 주소 비트를 복원했다.
- mbedTLS의 일정 시간 처리 RSA 구현체를 실행하는 공동 배치된 SGX 에누스를 대상으로 Prime+Probe 공격을 구현했다.
- OS 수준의 캐시 세트 할당 편향을 고려하여, 캐시 세트 접근을 정확히 추론하기 위해 캐시 세트 할당을 무작위화했다.
- 다양한 트레이스를 분석하고 관측된 캐시 접근 패턴에서 RSA 개인키를 재구성함으로써 키 복원을 자동화했다.
- SGX의 하드웨어 암호화 및 격리 기능을 활용하여 악성 소프트웨어를 OS 및 성능 카운터를 포함한 탐지 메커니즘으로부터 숨겼다.
실험 결과
연구 질문
- RQ1타이머, 물리적 주소, 공유 메모리가 없는 상황에서도 SGX 에누스 내부에서 캐시 사이드채널 공격를 수행할 수 있는가?
- RQ2대용량 페이지가 없는 상황에서 DRAM 사이드채널 정보를 얼마나 잘 활용하여 물리적 주소 비트를 복원할 수 있는가?
- RQ3타임스탬프 카운터에 접근할 수 없음에도 불구하고, SGX에서 충분한 정밀도로 타이밍 측정을 수행할 수 있는가?
- RQ4타겟이 일정 시간 처리 방식을 사용하더라도, 오직 사이드채널 정보만으로 암호화 키를 추출할 수 있는가?
- RQ5이러한 공격이 운영 체제 및 하드웨어 모니터링 도구(성능 카운터 포함)에 의해 탐지되지 않을 수 있는가?
주요 결과
- 공격은 공동 배치된 SGX 에누스에서 단일 Prime+Probe 트레이스를 통해 4096비트 RSA 개인키의 96%를 성공적으로 추출했다.
- 자동화된 공격 파이프라인을 사용하여 5분 이내로 11개의 트레이스에서 전체 RSA 개인키를 복원했다.
- 타이밍 측정 기법은 기존 타임스탬프 카운터보다 더 높은 정밀도를 확보하여 정밀한 사이드채널 분석을 가능하게 했다.
- 공격은 운영 체제에 의해 탐지되지 않았으며, Intel이 SGX 활동을 성능 카운터에서 의도적으로 제외하기 때문에 성능 카운터로도 관찰되지 않았다.
- 2MB 페이지나 직접적인 물리적 주소 접근에 의존하지 않고도, DRAM 및 캐시 사이드채널의 조합을 통해 물리적 주소 비트를 성공적으로 복원했다.
- 공격은 타겟 에누스가 Docker 컨테이너 내에서 실행되어도 효과가 있었으며, 이는 컨테이너화가 에누스 간 사이드채널 공격을 방지하지 못한다는 것을 보여준다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.