[논문 리뷰] MeltdownPrime and SpectrePrime: Automatically-Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols
본 논문은 보안 라이팅 테스트를 생성하기 위해 마이크로아키텍처 인식 프로그램을 합성하는 자동화 도구를 제시하여 MeltdownPrime과 SpectrePrime—Prime+Probe 변형이 coherence 프로토콜의 캐시 무효화를 이용해 취약점을 발견하고, 실하드웨어 증거 개념이 원래 Meltdown/Spectre와 거의 동일한 정확성을 보임을 보여준다.
The recent Meltdown and Spectre attacks highlight the importance of automated verification techniques for identifying hardware security vulnerabilities. We have developed a tool for synthesizing microarchitecture-specific programs capable of producing any user-specified hardware execution pattern of interest. Our tool takes two inputs: a formal description of (i) a microarchitecture in a domain-specific language, and (ii) a microarchitectural execution pattern of interest, e.g. a threat pattern. All programs synthesized by our tool are capable of producing the specified execution pattern on the supplied microarchitecture. We used our tool to specify a hardware execution pattern common to Flush+Reload attacks and automatically synthesized security litmus tests representative of those that have been publicly disclosed for conducting Meltdown and Spectre attacks. We also formulated a Prime+Probe threat pattern, enabling our tool to synthesize a new variant of each---MeltdownPrime and SpectrePrime. Both of these new exploits use Prime+Probe approaches to conduct the timing attack. They are both also novel in that they are 2-core attacks which leverage the cache line invalidation mechanism in modern cache coherence protocols. These are the first proposed Prime+Probe variants of Meltdown and Spectre. But more importantly, both Prime attacks exploit invalidation-based coherence protocols to achieve the same level of precision as a Flush+Reload attack. While mitigation techniques in software (e.g., barriers that prevent speculation) will likely be the same for our Prime variants as for original Spectre and Meltdown, we believe that hardware protection against them will be distinct. As a proof of concept, we implemented SpectrePrime as a C program and ran it on an Intel x86 processor, averaging about the same accuracy as Spectre over 100 runs---97.9% for Spectre and 99.95% for SpectrePrime.
연구 동기 및 목표
- 마이크로아키텍처 최적화에서 발생하는 하드웨어 보안 취약점을 자동 검증으로 식별하려는 동기를 제시한다.
- 마이크로아키텍처 설명 및 위협 패턴에서 구현 인식 어셈블리 프로그램을 합성하는 도구를 소개한다.
- Meltdown/Spectre 유사 공격에 대한 보안 리트럼 테스트의 합성과 Prime+Probe 변형의 도출을 입증한다.
- 무효화 기반 캐시 상호 배제 프로토콜을 이용한 MeltdownPrime/SpectrePrime 공격의 이중 코어를 시연한다.
제안 방법
- 마이크로아키텍처 μ spec 및 위협 패턴을 설명하는 도메인 특화 언어를 사용하여 원하는 실행 패턴을 인코딩한다.
- Relational model-finding(Alloy/Kodkod)을 적용하여 보안 익스플로잇을 나타내는 프로그램 그래프를 합성한다.
- Value in Cache Lifetime (ViCL) 추상화를 사용하여 캐시 점유 dynamics를 포착하고 마이크로아키텍처 이벤트를 모델링한다.
- 공격자/피해자 프로세스, 프라이빗/공유 공간, 추측, 그리고 일관성 메시지를 포함하도록 Check 모델링를 확장한다.
- 무효화를 활용하는 coherence 프로토콜의 Prime+Probe 변형 두 가지를 합성한다.
- SpectrePrime을 Intel x86 하드웨어에 구현하고 원래 Spectre와의 정확성을 비교하여 검증한다.
실험 결과
연구 질문
- RQ1자동 합성이 주어진 마이크로아키텍처에서 사용자 정의 위협 패턴과 일치하는 보안 익스플로잇을 생성할 수 있는가?
- RQ2무효화 기반의 일관성 프로토콜을 이용하는 Prime+Probe 변형이 Flush+Reload 기반 공격과 비교해 유사한 정밀도를 달성하는가?
- RQ3보안 리트럼 테스트가 Meltdown/Spectre 익스플로잇을 추상적으로 표현하고 이를 전체 공격으로 확장할 수 있는가?
- RQ4소프트웨어 수준 방어에 대해 이러한 Prime 변형에 대해 효과적인 하드웨어 차원의 완화책은 무엇인가?
주요 결과
- 자동 합성은 Meltdown/Spectre 유사 패턴에 대한 보안 리트럼 테스트를 생성할 수 있다.
- MeltdownPrime과 SpectrePrime은 캐시 일관성 무효화를 이용해 높은 정밀도의 타이밍 기반 누출을 달성하는 이중 코어 공격이다.
- SpectrePrime은 2.4 GHz Intel Core i7에서 100회 실행 시 평균 정확도 99.95%를 달성하여 동일 하드웨어의 Spectre의 97.9%와 일치한다.
- MacBook 하드웨어에서 SpectrePrime은 coherence-invalidations 기반 Prime+Probe 공격의 실행 가능성을 보여준다.
- mfence/lfence와 같은 차단 장치가 실험에서 Spectre와 SpectrePrime 모두를 완화시켰으며, Prime 변형에 대해 소프트웨어 방어가 충분할 수 있음을 시사하고 하드웨어 특정 완화책은 다를 수 있다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.