Skip to main content
QUICK REVIEW

[논문 리뷰] SMoTherSpectre: exploiting speculative execution through port contention

Atri Bhattacharyya, Alexandra Sandulescu|arXiv (Cornell University)|2019. 03. 05.
Security and Verification in Computing참고 문헌 27인용 수 16
한 줄 요약

SMoTherSpectre는 동시 다중 스레딩(SMT) 프로세서에서 발생하는 포트 경쟁을 이용하여 캐시 기반 외의 사이드 채널을 통해 사용자 공간 응용 프로그램의 기밀 정보를 泄露하는 사전 실행 공격을 제안한다. 이는 공격자 제공 코드가 없이도 OpenSSH와 OpenSSL에 대해 실질적인 공격을 성공적으로 수행함으로써, 캐시 사이드 채널 방지 조치가 이러한 사이드 채널에 대해 부적절하다는 것을 입증한다.

ABSTRACT

Spectre, Meltdown, and related attacks have demonstrated that kernels, hypervisors, trusted execution environments, and browsers are prone to information disclosure through micro-architectural weaknesses. However, it remains unclear as to what extent other applications, in particular those that do not load attacker-provided code, may be impacted. It also remains unclear as to what extent these attacks are reliant on cache-based side channels. We introduce SMoTherSpectre, a speculative code-reuse attack that leverages port-contention in simultaneously multi-threaded processors (SMoTher) as a side channel to leak information from a victim process. SMoTher is a fine-grained side channel that detects contention based on a single victim instruction. To discover real-world gadgets, we describe a methodology and build a tool that locates SMoTher-gadgets in popular libraries. In an evaluation on glibc, we found hundreds of gadgets that can be used to leak information. Finally, we demonstrate proof-of-concept attacks against the OpenSSH server, creating oracles for determining four host key bits, and against an application performing encryption using the OpenSSL library, creating an oracle which can differentiate a bit of the plaintext through gadgets in libcrypto and glibc.

연구 동기 및 목표

  • 사전 실행 공격이 캐시 기반 사이드 채널 방어를 우회할 수 있는지, 대체적인 마이크로아ーキ테크처 사이드 채널(예: 포트 경쟁)을 활용하여 조사하는 것.
  • SMT 프로세서에서의 포트 경쟁이 사전 실행 중 정보 유출을 위한 세밀하고 효과적인 사이드 채널로 기능할 수 있는지 입증하는 것.
  • glibc 및 libcrypto와 같은 널리 사용되는 라이브러리에서 공격 가능한 코드 가젯(SMoTher-gadgets)을 자동으로 탐지하는 방법론과 도구를 개발하는 것.
  • 공격자 코드 삽입 없이도 기존 코드만을 사용하여 실제 서비스인 OpenSSH 및 OpenSSL에 대해 종단 간 개념 증명 공격을 구축하는 것.
  • 아키텍처적 방어 조치가 사전 실행 상태 복구 또는 캐시 사이드 채널 완화에만 의존할 경우, 포트 경쟁 기반 사이드 채널에 대해 충분하지 않다는 것을 보여주는 것.

제안 방법

  • 동시 다중 스레딩(SMT)을 활용하여 공유 실행 단위에서 피해자 스레드와 공격자 스레드 간에 제어된 포트 경쟁을 유도하는 것.
  • 브랜치 대상 인젝션(BTI)을 사용하여 기존 바이너리의 유해하지 않은 코드 경로로 사전 실행을 유도함으로써, 코드 삽입 없이도 정보 유출을 가능하게 하는 것.
  • 포트 경쟁으로 인한 성능 저하를 측정하는 새로운 사이드 채널을 도입하여, 이는 피해자의 명령어 실행과 상관관계가 있음을 이용하는 것.
  • 사전 실행 시에 측정 가능한 포트 경쟁을 유도하는 명령어 시퀀스를 찾기 위해 바이너리를 정적 분석하는 가젯 탐지 도구를 개발하는 것.
  • 포트 경쟁의 시간 차이를 관찰하여 오라클을 구성함으로써 비밀 비트를 추론하는 것—예: OpenSSH의 RSA 키 비트 또는 OpenSSL 암호화 중 평문 비트.
  • 최신 버전의 OpenSSH 및 OpenSSL에서 공격을 검증하여, 피해 코드에 알려진 취약점이 없더라도 비트 수준의 유출이 성공적으로 이루어졌음을 입증하는 것.

실험 결과

연구 질문

  • RQ1캐시 기반 사이드 채널에 의존하지 않고, 포트 경쟁과 같은 대체 마이크로아키텍처 사이드 채널을 활용하여 사전 실행 공격을 수행할 수 있는가?
  • RQ2SMT 프로세서에서의 포트 경쟁이 사전 실행 중 정보 유출을 위한 세밀한 사이드 채널로 얼마나 효과적으로 기능할 수 있는가?
  • RQ3glibc 및 libcrypto와 같은 널리 사용되는 라이브러리에 포트 경쟁을 통해 기밀 정보를 유출할 수 있는 공격 가능한 코드 시퀀스(가젯)가 존재하는가?
  • RQ4기존 코드만을 사용하고 코드 삽입 없이도 OpenSSH 및 OpenSSL과 같은 실제 서비스에 대해 실질적인 공격을 수행할 수 있는가?
  • RQ5커널 페이지 테이블 격리 또는 사전 실행 상태 복구와 같은 기존 방어 조치가 포트 경쟁 기반 사이드 채널에 효과적인가?

주요 결과

  • SMT 프로세서에서의 포트 경쟁은 캐시 동작과 무관하게 정밀하고 효과적인 사이드 채널로 활용될 수 있으며, 사전 실행 공격에 유용하다.
  • glibc에 수백 개의 공격 가능한 SMoTher-gadget이 발견되어 일반 사용자 공간 라이브러리에서 이러한 공격의 광범위한 잠재력을 보여준다.
  • OpenSSH 호스트 RSA 키에서 4비트의 기밀 정보를 포트 경쟁과 BTI만을 사용하여 성공적으로 유출한 개념 증명 공격이 수행되었으며, 취약한 코드 패tern이 필요하지 않았다.
  • 다른 개념 증명 공격은 libcrypto 및 glibc의 가젯을 활용하여 OpenSSL 암호화 중 평문 데이터의 비트 수준에서의 유출을 성공적으로 입증하였다.
  • 캐시 기반 사이드 채널이 완화된 환경에서도 공격이 효과를 유지함으로써, 캐시 사이드 채널 완화에만 의존하는 방어 조치가 부족함을 입증하였다.
  • 연구 결과에 따르면, 사전 실행 상태 복구만을 고려하는 아키텍처적 방어 조치는 포트 경쟁 기반 사이드 채널에 대해 효과가 없으며, 유출가 발생하는 시점이 사전 실행 완료 이전이기 때문이다.

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

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

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

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