Skip to main content
QUICK REVIEW

[논문 리뷰] Leaking Control Flow Information via the Hardware Prefetcher

Yun Chen, Lingfeng Pei|arXiv (Cornell University)|2021. 09. 01.
Security and Verification in Computing참고 문헌 51인용 수 8
한 줄 요약

AfterImage는 Intel의 지시어 포인터 기반 스트라이드 프리패처를 악용하여 코드 영역, 프로세스, 사용자-커널 경계를 넘어서 제어 흐름 정보를 泄露하는 새로운 하드웨어 프리패처 사이드채널 공격이다. 한 실행 도메인에서 프리패처를 훈련시키고 다른 도메인에서 이를 트리거함으로써, 사전 실행이나 분기 예측 조작에 의존하지 않고도 비밀 정보를 泄露하는 데 성공률이 최대 99%에 이른다.

ABSTRACT

Modern processor designs use a variety of microarchitectural methods to achieve high performance. Unfortunately, new side-channels have often been uncovered that exploit these enhanced designs. One area that has received little attention from a security perspective is the processor's hard-ware prefetcher, a critical component used to mitigate DRAM latency in today's systems. Prefetchers, like branch predictors, hold critical state related to the execution of the application, and have the potential to leak secret information. But up to now, there has not been a demonstration of a generic prefetcher side-channel that could be actively exploited in today's hardware. In this paper, we present AfterImage, a new side-channel that exploits the Intel Instruction Pointer-based stride prefetcher. We observe that, when the execution of the processor switches between different private domains, the prefetcher trained by one domain can be triggered in another. To the best of our knowledge, this work is the first to publicly demonstrate a methodology that is both algorithm-agnostic and also able to leak kernel data into userspace. AfterImage is different from previous works, as it leaks data on the non-speculative path of execution. Because of this, a large class of work that has focused on protecting transient, branch-outcome-based data will be unable to block this side-channel. By reverse-engineering the IP-stride prefetcher in modern Intel processors, we have successfully developed three variants of AfterImage to leak control flow information across code regions, processes and the user-kernel boundary. We find a high level of accuracy in leaking information with our methodology (from 91%, up to 99%), and propose two mitigation techniques to block this side-channel, one of which can be used on hardware systems today.

연구 동기 및 목표

  • Intel IP-스트라이드 프리패처를 악용하는 일반적이고 알고리즘에 구애받지 않는 사이드채널 공격을 입증하기 위해.
  • 현대 Intel 프로세서의 IP-스트라이드 프리패처의 동작 및 비공식 기능을 역공학적으로 분석하기 위해.
  • 단지 하드웨어 프리패칭을 이용하여 코드 영역, 프로세스 경계, 사용자-커널 전환 간에 제어 흐름 정보가 어떻게 泄露될 수 있는지 보여주기 위해.
  • 기존 하드웨어 시스템에서 효과적인 보완 기법을 개발하기 위해.
  • 비사전 실행, 비분기 기반 사이드채널이 마이크로아ーキ테크처적 泄露로부터 안전하다는 가정을 도전하기 위해.

제안 방법

  • 맞춤형 마이크로벤치마크를 사용하여 프리패처의 구조, 즉 입력 형식, 인덱싱, 교체 및 신뢰도 업데이트 정책을 역공학적으로 분석하였다.
  • 중첩된 로드 명령어를 사용하여 지시어 포인터의 가장 낮은 비트를 조작하고 특정 스트라이드로 프리패처를 훈련시켰다.
  • if 및 else 분기의 서로 다른 스트라이드를 사용하여 제어 흐름 결정을 프리패처 상태에 인코딩하기 위해 훈련 단계를 수행하였다.
  • 동일한 IP 및 스트라이드 패턴을 새로운 실행 컨텍스트에서 재사용하여, 도메인 경계(예: 사용자에서 커널으로)를 넘어서 훈련된 프리패처를 트리거하였다.
  • 클러스터링 및 타이밍 분석을 통해 프리패칭 이벤트에서 발생하는 캐시 접근 패턴을 관련지어 비밀 제어 흐름 결정을 추론하였다.
  • 두 가지 보완 기법을 제안하였다: 하나는 하드웨어 프리패처 비활성화 기반이고, 다른 하나는 페이지 경계 인식 프리패칭을 사용하여 페이지 간 프리패칭을 차단하는 것이다.

실험 결과

연구 질문

  • RQ1IP-스트라이드 프리패처는 고립된 실행 도메인 간에 제어 흐름 정보를 사이드채널로 泄露하는 데 악용될 수 있는가?
  • RQ2프리패처의 상태가 사용자-커널 및 프로세스 경계를 넘어서 얼마나 오랫동안 유지되고 전파되는가?
  • RQ3학습 시간, 정밀도, ASLR에 대한 저항성 측면에서 프리패처의 동작 방식은 분기 예측기와 어떻게 다를까?
  • RQ4사전 실행 경로를 이용하지 않는 사이드채널을 구축할 수 있는가? 이는 사전 실행 공격을 대비한 방어 조치를 우회할 수 있는가?
  • RQ5IP-스트라이드 프리패처의 비공식 기능 중 어떤 것이 도메인 간 정보 泄露를 가능하게 하는가?

주요 결과

  • AfterImage는 코드 영역 간 제어 흐름 정보를 91%에서 99%의 성공률로 성공적으로 泄露하였다.
  • IP-스트라이드 프리패처는 가상 페이지 경계를 넘어 프리패칭할 수 있어, 페이지 간 및 도메인 간 정보 泄露가 가능하다.
  • 프리패처의 훈련 과정은 분기 예측기보다 빠르고 정밀도가 높으며, IP의 가장 낮은 8비트만 사용하기 때문에 ASLR의 영향을 덜 받는다.
  • 공격은 비사전 실행 경로에서 작동하므로, 기존의 사전 실행 공격 방어 조치의 대부분이 무력화된다.
  • 역공학적으로 분석한 프리패처 모델은 확인되지 않은 기능을 드러내었으며, 이는 신뢰도 카운터 메커니즘과 페이지 체크 정책을 포함한다.
  • 기존 하드웨어 시스템에 배포할 수 있는 보완 기법 하나는 크로스페이지 프리패칭을 비활성화하여 사이드채널을 차단할 수 있다.

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

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

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

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