포트스매시(PortSmash), CPU 하이퍼스레딩의 취약점 해킹

SMT의 취약점

SMT(Simultaneous Multi-Threading)는 하나의 물리적인 CPU 코어를 여러 개의 논리적 코어로 분할 이용해서 효율성을 높이는 기술이다. 일찍이 Intel이 하이퍼 스레딩(HT, Hyper-Threading)이란 이름으로 구현했고, AMD도 라이젠부터 SMT를 적용했다.

SMT에서 한 스레드의 프로세스는 기본적으로 독자적인 명령과 데이터를 갖는다. 그러나 다른 스레드의 프로세스와 일부 하드웨어 자원을 공유하기도 한다. 이런 특징으로 인해 다른 프로세스의 데이터를 훔치는 공격 가능성이 열려 있다.

CVE-2018-5407: Timing attack

포트스매시는 시간측정 공격(Timing attack, 타이밍 공격)이라는 부채널 공격(Side-channel attack)의 일종이다. 시간측정 공격은 어떤 명령이 처리되는 시간을 측정하고, 이를 분석해 입력한 데이터를 알아내는 기법이다.

포트스매시 공격술을 고안한 연구팀은, 하이퍼 스레딩의 취약점과 시간측정 공격을 통해, 다른 스레드에서 실행중인 OpenSSL의 개인 키를 알아내는 데 성공했다. 이들은 이 공격술이 인텔의 스카이레이크와 카비레이크 CPU에서 작동함을 확인했다. 하지만 AMD의 라이젠을 비롯해 하이퍼스레딩을 지원하는 CPU에서 두루 통할 것으로 예상했다.

OpenSSL은 이에 대해 패치한 1.1.0i 버전과 1.1.1 버전을 내놓았다. 그러나 연구팀에 따르면 이 공격술은 특정 소프트웨어에만 작동하는 것은 아니다. 다른 프로그램들도 표적이 될 수 있다는 것이다.

TLBleed가 원조

하이퍼스레딩의 취약점과 이를 이용한 시간측정 공격의 가능성은 이미 6월에 TLBleed라는 이름으로 알려졌다. 이로 인해 OpenBSD 운영팀은 하이퍼스레딩 지원을 중단했다.

이런 공격에 대한 대응책은 현재로선 하이퍼스레딩 기능을 끄는 수밖에 없다. BIOS 설정에서 끌 수 있는데, 기종에 따라선 이를 끄는 기능이 없는 경우도 있다.


참고 자료
  1. New PortSmash Hyper-Threading CPU Vuln Can Steal Decryption Keys
  2. OpenBSD Disables Intel CPU Hyper-Threading Due to Security Concerns
  3. New Intel CPU Flaw Exploits Hyper-Threading to Steal Encrypted Data

댓글

이 블로그의 인기 게시물

마이크로소프트 4K 무선 디스플레이 어댑터(MS WDA 3) 리뷰

와이파이(Wi-Fi) 보안 설정

엑셀 필터 상태에서 복사와 잘라내기