Skip to main content
QUICK REVIEW

[논문 리뷰] Inferring Fine-grained Control Flow Inside SGX Enclaves with Branch Shadowing

Sangho Lee, Ming-Wei Shih|arXiv (Cornell University)|2016. 11. 21.
Security and Verification in Computing참고 문헌 46인용 수 235
한 줄 요약

본 논문은 가지 예측(branch prediction), BTB, LBR를 이용해 SGX 엔클레이브 내부의 미세한 제어 흐름을 드러내는 가지 그림자(side-channel) 공격을 제시하고, Zigzagger를 포함한 대응책을 제안한다.

ABSTRACT

In this paper, we explore a new, yet critical, side-channel attack against Intel Software Guard Extension (SGX), called a branch shadowing attack, which can reveal fine-grained control flows (i.e., each branch) of an enclave program running on real SGX hardware. The root cause of this attack is that Intel SGX does not clear the branch history when switching from enclave mode to non-enclave mode, leaving the fine-grained traces to the outside world through a branch-prediction side channel. However, exploiting the channel is not so straightforward in practice because 1) measuring branch prediction/misprediction penalties based on timing is too inaccurate to distinguish fine-grained control-flow changes and 2) it requires sophisticated control over the enclave execution to force its execution to the interesting code blocks. To overcome these challenges, we developed two novel exploitation techniques: 1) Intel PT- and LBR-based history-inferring techniques and 2) APIC-based technique to control the execution of enclave programs in a fine-grained manner. As a result, we could demonstrate our attack by breaking recent security constructs, including ORAM schemes, Sanctum, SGX-Shield, and T-SGX. Not limiting our work to the attack itself, we thoroughly studied the feasibility of hardware-based solutions (e.g., branch history clearing) and also proposed a software-based countermeasure, called Zigzagger, to mitigate the branch shadowing attack in practice.

연구 동기 및 목표

  • 페이지 수준의 공격을 넘어 미세한 제어 흐름 누출에 대한 SGX 엔클레이브의 보안 위험을 동기 부여하고 평가한다.
  • 가지 그림자(branch shadowing)라는 새로운 사이드 채널을 조사하는데, 이는 가지 예측 이력(branch prediction history)을 이용해 엔클레이브 실행 흔적을 드러낸다.
  • 현재 SGX 방어책에 대한 이 공격을 평가하고 측정된 오버헤드를 가진 실용적 완화책을 제안한다.

제안 방법

  • 엔클레이브 내부의 대상 분기가 실행되었는지와 그 대상 지점을 확인하기 위해 BTB와 LBR를 결합한 가지 그림자 기법을 개발한다.
  • Intel PT 타이밍과 LBR 경과 사이클 데이터를 사용해 잡음이 최소화된 상태로 가지 결과를 정밀하게 추론한다.
  • 정확한 프로빙을 위해 피해 코드와 그림자 코드를 동기화하도록 실행 시각 및 메모리 주소지정(APIC 타이머 및 캐시 제어를 통해)을 조작한다.
  • BTB 충돌과 공유 예측 상태를 가능하게 하도록 그림자와 피해 분기 주소를 하위 주소 비트에서 정렬한다.
  • 조건부, 무조건부, 간접 분기 등 다양한 분기 유형을 탐지하고 LBR과 경과 사이클을 해석해 분기 이력과 대상 지점을 유추한다.
  • 하드웨어 기반 분기 이력 삭제와 소프트웨어 기반 Zigzagger를 포함한 대응책을 제안한다.

실험 결과

연구 질문

  • RQ1OS 제어 하의 공격자가 페이지 수준의 거친 접근 패턴을 넘어 SGX 엔클레이브 내부의 미세한 제어 흐름을 유추할 수 있는가?
  • RQ2BTB와 LBR 기능을 함께 활용해 엔클레이브 내부의 가지 수준 실행 흔적을 드러낼 수 있는 방법은 무엇인가?
  • RQ3수용 가능한 성능 오버헤드로 가지 그림자 공격을 완화하기 위한 실용적 대응책은 무엇인가?

주요 결과

  • 가지 그림자 공격은 기본 블록 수준의 미세한 제어 흐름을 엔클레이브 내부에서 식별할 수 있다.
  • LBR과 Intel PT를 사용하면 이전의 타이밍 방법에 비해 측정 잡음이 감소된 정밀한 가지 이력 정보를 얻을 수 있다.
  • 이 공격은 SGX 애플리케이션에서 민감한 정보를 추출하고 (예: 결정론적 멀티플렉싱, Sanctum, SGX-Shield, T-SGX 등)과 같은 다수의 최첨단 SGX 방어를 우회할 수 있다.
  • 제안된 접근 방식에 대해 하드웨어 및 소프트웨어 기반 대응책은 오버헤드가 1.3배 미만으로 실현 가능하다.
  • 이 공격은 완전한 엔클레이브 실행 흔적을 통해 조건부, 무조건부 및 간접 분기 누출을 모두 보여준다.

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

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

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

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