보안 / 퍼스널 컴퓨팅

인텔 SGX 인클레이브 노리는 신종 CPU 공격 기법 LVI, 기존 완화책 무력화해

Lucian Constantin  | CSO 2020.03.12
인텔 CPU를 표적으로커널 영역, 가상머신, 하이퍼바이저 같은 보안 경계 내부 전반에 걸쳐 특수 권한 프로세스로 (최소한 이론적으로는)SGX 시큐어 인클레이브에 저장된 민감한 정보를 유출할 수 있는 새로운 공격이 발견했다. LVI(Load Value Injection)라는 명칭이 붙여진 새 공격은 스펙터(Spectre), 멜트다운(Meltdown), MDS(Microarchitectural Data Sampling) 같은 CPU 취약점에서 사용된 기법에 기반을 두고 있지만, 이러한 취약점을 극복하기 위해 마련된 완화책을 무력화한다는 점에서 차이가 있다.

KU루벤(KU Leuven), 우스터 폴리테크닉 대학(Worcester Polytechnic Institute), 그라즈 기술 대학(Graz University of Technology), 미시간 대학(University of Michigan) 연구원들로 구성된 팀은 새 익스플로잇에 대한 정보를 제공하는 웹사이트에서 “LVI는 기존 공격보다 완화가 훨씬 더 어렵다는 것이 중요하다. 사실상 모든 메모리 액세스에 영향을 미칠 수 있기 때문이다. LVI는 기존 멜트다운 유형 공격과 다르게, 기존 프로세서에서 쉽게 완화할 수 없으며, 값비싼 소프트웨어 패치가 필요하다. 이는 인텔 SGX 인클레이브 연산 속도를 최대 19배까지 낮춘다”고 설명했다.

이 연구팀은 약 1년 전인 2019년 4월 인텔에 이 공격을 알렸다. 인텔의 요청으로 이 문제를 공개하지 않았고, 인텔은 완화책을 개발할 수 있었다. 2월, 보안 업체 비트디펜더 연구원도 LVI-LFB(Load Value Injection in the Line Fill Buffers)로 불리는 LVI 변종 하나를 발견해 인텔에 알렸다.
 

LVI 취약점의 작동 원리

LVI는 멜트다운 및 스펙터처럼 현대적인 CPU의 임시 실행과 예측 실행 관련 취약점을 공격한다. CPU가 가능한 결과를 예측해 현재 명령을 끝내기 전에 명령을 연산하는 성능 강화 기능이다. 시간 절약에 목적이 있으며, 예측이 틀릴 경우에는 사전에 실행한 명령의 결과를 무시한다.

그러나 이런 예측 실행은 CPU 내부 캐시나 버퍼에 자취를 남길 수 있다. 그리고 공격자는 흔적을 부채널로 이용해 민감한 데이터를 재구성한다. 공격자가 실행 대상을 제어할 수 없다면, 예측 실행이 캐시나 버퍼에 남긴 자취가 크게 나쁠 것은 없다. 그러나 공격자는 스펙터와 멜트다운 같은 취약점을 이용, 분기 예측에 영향을 미쳐서 관심을 가졌던 데이터를 생성할 수 있다. LVI는 이런 공격을 완전히 뒤집어 생각하게 만든다.

연구원들은 “피해자에게서 직접 데이터를 유출하지 않고, 반대 방향으로 진행을 했다. 우리는 공격자 데이터를 숨겨진 프로세서 버퍼를 통해 표적의 프로그램에 주입하고, 임시 실행을 하이재킹해 지문과 암호 같은 민감한 정보를 탈취했다”고 설명했다.

공격자는 선택한 값으로 숨겨진 프로세서 버퍼를 마비시킨 후, 피해자 프로그램에서 ‘오류’나 ‘지원 로드’를 유발한다. 메모리의 피해자 프로그램이 이미 로딩한 코드 가젯(명령 시퀀스)이 악성 값을 로딩 하도록 만들기 위해서다. 악성 값으로 가젯을 실행하면 CPU가 오류를 감지해 작업을 롤백하기 전에 알려진 부채널을 통해 획득할 수 있는 비밀에 종속적인 흔적이 남는다.

SGX는 운영체제가 완전히 침해된 경우조차 암호 작업을 위한 기밀성과 무결성을 제공하도록 되어 있는, 최신 인텔 CPU에 탑재된 신뢰할 수 있는 실행 환경이다. SGX 인클레이브를 사용하는 애플리케이션은 호스트 운영체제가 아닌 인클레이브만 읽을 수 있는 메모리 페이지 내부에서 암호 작업을 수행한다. 이후 그 결과를 반환하게 된다. 이는 암호 키가 운영체제 메모리에 노출되는 일이 없다는 의미이다.

그런데 LVI의 경우, (예를 들면)공격자가 CPU 버퍼에 많은 0을 주입해서 SGX가 AES 암호화 라운드에 대한 키로 0을 사용하도록 강제한 후, 부채널을 통해 생성된 암호문을 캡처할 수 있다. AES 암호화는 라운드(단계)로 수행된다. 그리고 모든 라운드의 아웃풋은 다음 라운드와 연결이 된다. 라운드 키와 생성된 암호문은 공격자가 마스터 키를 복구하는 데 도움을 준다. 연구원들은 이 공격을 시연하는 장면을 담은 영상을 공개했다.
 

LVI 취약점이 초래하는 영향

LVI 공격은 표적 프로세스에서 오류나 지원 로드를 트리거하거나, 이 프로세스의 메모리에서 익스플로잇 공격이 가능한 특정 가젯을 찾아야 가능해진다. SGX에서는 이렇게 할 수 있지만, 다른 프로세스에서는 쉽지 않다. 운영체제가 알려진 공격과 취약점을 극복하기 위해 탑재한 다양한 방어책 때문이다. 아예 불가능하다는 의미는 아니지만, 아직 입증된 적은 없다.

연구원들은 “현재 평가 결과에 따르면, LVI만 인텔 SGX 인클레이브와 주로 관련이 있다. 그러나 학술 보고서를 통해, 인텔 SGX에만 고유한 LVI 요소들은 하나도 없다는 점을 보여줬다. 즉, 원칙적으로 SGX가 아닌 전통적인 크로스-프로세스, 크로스-가상머신, 사용자-커널 환경에도 LVI 공격을 적용할 수 있다. 하지만 실제 익스플로잇 공격이 가능한 LVI 가젯을 찾지 못했다. 우리가 LVI 가젯을 주입하는 인위적 시나리오에서만 SGX가 아닌 표적에 대한 공격만 연구했다”고 설명했다.

LVI-LFB 변종을 발견해 보고한 비트디펜더 연구원인 안드레이 루타스와 댄 루타스는 보고서를 통해, 이 기법을 사용해 커널 영역에서 사용자 영역으로, 또는 하이퍼바이저 같은 보안 경계로 유출을 시킬 수 있다고 믿는다고 밝혔다. 또한, 인위적인 개념 증명을 구현했다. 피해자 프로세스가 공격자 프로세서가 버퍼에 주입한 악성 값을 사용하는 것을 증명하는 테스트 목적의 공격자 프로세스, 피해자 프로세스를 만들었다는 의미다. 그러나 실험의 필요에 부합하도록 피해자 프로세스와 가젯을 만들었기 때문에, 실제 애플리케이션에 대한 익스플로잇 공격을 증명한 것은 아니다.

인텔은 보안 권고를 통해, “현재 인텔이 파악한 내용에 따르면, 애플리케이션에서 운영체제로, 가상머신에서 VMM(Virtual Machine Manager)으로, 가상 환경 게스트 간, 여러 애플리케이션 간, 특정 애플리케이션 내부에서 로드 값을 주입하는 보편적, 비보편적 가젯은 존재하지 않는다. 따라서 이런 환경을 위한 추가적인 완화책을 릴리즈하지 않고 있다. 다만 모범 사례의 일환으로, 시스템 업체가 제공하는 최신 운영체제와 VMM으로 업데이트할 것을 권장한다”고 설명했다.
 

LVI 완화책

인텔은 애플리케이션 개발자가 SGX 인클레이브 구현에 사용하는 SGX SDK와 SGX PSW(Platform Software)에 대한 업데이트를 릴리즈했다. 인텔은 개발자를 위한 소프트웨어 완화 기법을 공개했고, 이런 공격으로부터 애플리케이션을 더욱 견고히 보호하는 컴파일러 옵션을 추가 도입하기 위해 다른 업체와 협력하고 있다.

인텔은 LVI 심층 분석 자료에서 “인텔 SGX 인클레이브 워크로드의 실행 속성에 따라(예, CPU 바운드 대 I/O 바운드, 캐시 로컬리티), 로드+전송, 로드+로드+전송, 로드+분기 가젯을 완화했을 때 성능에 미치는 영향은 워크로드에 따라 크게 다를 것이다. 그러나 일부 경우에는 아주 심각할 수 있다. 이런 로드를 모두 완화하는 데 따른 오버로드를 수용할 수 없고, 특정 위협 모델이 이를 허용하는 경우, ISV(Independent Software Vendors)는 부분적인 완화책만 적용하는 방법을 선택할 수도 있다”고 설명했다.

인텔은 이런 완화책이 성능에 미치는 영향에 대한 구체적인 통계를 발표하지 않았다. 그러나 연구 팀이 수행한 테스트에 따르면, 완화책을 적용했을 때 SGX 연산이 2~19배 지연되었다.

LVI는 새로운 공격 기법이며 관련 연구가 이제 막 시작된 단계라는 점을 염두에 둘 필요가 있다. 스펙터와 멜트다운이 공개된 지 2년이 지나면서 이들 취약점의 변종이 많이 등장했고 일부는 초기 완화책을 무력화한다. LVI도 다르지 않을 것이다. 무엇보다 SGX를 넘어 영향을 미칠 가능성이 있고, 스펙터 및 멜트다운보다 완화가 어렵고, 연산 측면에서 비용이 많이 들기 때문이다. editor@itworld.co.kr 
 Tags 인텔 cpu SGX LVI

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.