PlunderVolt, 인텔 CPU SGX 해킹 취약점

CVE-2019-11157

Intel CPU의 보안 영역인 SGX Enclave에서 암호화 키 등 중요 정보를 추출할 수 있는 취약점이 발견됐다. 6세대 이후의 코어 시리즈를 비롯해 SGX 기능을 지원하는 CPU들이 해당된다.

근래의 CPU는 소프트웨어를 통해 클럭(frequency)과 전압(voltage)을 조절할 수 있다. 최대 성능에서는 발열과 전력 소모가 심하기 때문에, 평상시에는 성능과 절전이 균형을 이루는 수준을 유지하고, 필요에 따라 성능 수준을 조절할 수 있도록 한 것이다.

CPU 클럭과 전압은 비례 관계에 있기 때문에, 안정적인 작동을 위해 허용되는 조합이 정해져 있다. 그런데 PlunderVolt 취약점을 발견한 연구팀은 CPU에 부적절한 클럭/전압의 조합을 강제하면, SGX enclave의 기능에 오류를 일으켜 정보를 빼낼 수 있다는 것을 밝혀냈다.

SGX를 공격하는 기법은 이전에도 여럿 있었지만, 플런더볼트는 이들보다 빠른 속도로 정보를 추출할 수 있어서 훨씬 실용적이라는 것이 연구팀의 주장이다.

인텔은 이에 대응해 microcode(CPU의 펌웨어)와 BIOS 업데이트를 내놨다. 이 둘을 함께 적용해, CPU의 클럭과 전압을 기본값으로 고정시켜야 취약점이 해결된다. 문제는 이렇게 하면 오버클럭 유틸리티 등 CPU 클럭을 조절하는 정상 프로그램도 작동하지 않는다는 것이다.

마이크로코드 업데이트는 Windows update를 통해 제공되기 때문에 문제가 없다. 그러나 바이오스 업데이트는 메인보드 제조사에서 제공하는데, 출시된 지 조금 오래된 보드에는 잘 제공하지 않는 경우도 있다.

관리자 권한 필요

PlunderVolt는 소프트웨어적인 방법만을 사용하기 때문에, 해커가 PC에 물리적으로 접근할 필요는 없다. 즉 원격 실행이 가능하다. 다만 CPU의 클럭과 전압을 조절하는 프로그램은 관리자 권한으로 실행돼야 하기 때문에, 해커는 먼저 다른 방법으로 표적 PC를 해킹해야 한다.

그러나 이 점이 플런더볼트를 평가절하할 이유는 되지 못한다. 보안 영역의 존재 이유가, PC가 악성코드에 감염됐더라도 중요 정보를 보호할 수 있다는 점에 있기 때문이다.

여러 취약점을 한꺼번에 악용하는 exploit chain이 보편화된 점도 문제이다. 전형적인 예로 원격코드 실행 취약점으로 일단 악성코드를 실행하고, 권한상승 취약점을 이용해 관리자 권한을 얻는 식이다.

일반적인 악성코드로는 어렵다

부채널 공격(side-channel attack)이 대부분 그러하듯이, PlunderVolt 역시 자동화된 대규모 공격은 어렵다. 악성코드 제작자들의 흥미를 떨어뜨리는 요인이다. VIP에 대한 정밀 타격에나 요긴할 것이다.

또한 PlunderVolt는 가상화 환경에서는 작동하지 않는다. host 운영체제가 guest 운영체제에 관리자 권한을 허용하지 않기 때문이다. 따라서 클라우드 서비스는 일단 안전하다고 한다. 그러나 내 생각에는 가상화 프로그램에도 권한상승 취약점이 있을 수 있기 때문에, 그리 수긍이 가지는 않는다.

인텔이든 ARM(스마트폰용 CPU)이든 보안 영역도 해킹 안전 지대는 아니다. 그러나 웬만한 악성코드로는 침투할 수 없는 것도 사실이다. 보안 영역에 대한 맹신도, 과도한 걱정도 모두 바람직하지 않다.


관련 자료
  1. 포어섀도우(Foreshadow), 인텔 CPU 보안영역 해킹 취약점
  2. 안드로이드 보안영역 해킹 취약점

참고 자료
  1. Plundervolt: New Attack Targets Intel's Overclocking Mechanisms
  2. New Plundervolt attack impacts Intel CPUs

댓글

이 블로그의 인기 게시물

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

가정에서도 망 분리를 해보자

잉크젯 프린터 전원은 항상 켜 놓아야 좋다