포스팅 내용

국내외 보안동향

인텔 CPU, 새로운 'SGAxe'및 'CrossTalk' 부채널 공격에 취약해

Intel CPUs Vulnerable to New 'SGAxe' and 'CrossTalk' Side-Channel Attacks 


신 인텔 프로세서를 악용해 CPU의 신뢰할 수 있는 실행 환경 (TEE)에서 민감 정보를 유출하는 두 가지 공격이 발견되었습니다. 


SGAxe라 명명된 첫 번째 공격은 올해 초에 발견된 CacheOut (CVE-2020-0549) 공격에서 진화된 버전으로 악용시 CPU L1 캐시에서 콘텐츠 검색을 허용합니다. 


전문가에 따르면, 인텔에서 제공하고 서명한 아키텍처 SGX 엔클레이브를 타깃으로 하는 확장 공격을 사용하여 네트워크를 통해 엔클레이브의 진위 여부를 증명하는 데 사용하는 비밀키를 검색하여 가짜 엔클레이브를 정상인 것처럼 위장하여 전달할 수 있습니다.


CrossTalk라 명명된 두 번째 공격은 하나의 CPU 코어에서 실행되는 공격자 제어 코드를 사용하여 완전히 다른 코어에서 실행되는 SGX 엔클레이브를 타깃으로 하며 엔클레이브의 개인키를 알아낼 수 있습니다.


인텔의 SGX (Software Guard Extensions)와 같은 TEE는 코드와 데이터의 기밀성과 무결성을 보장하는 프로세서 영역인 보안 엔클레이브를 의미합니다. 


TEE는 가상 머신을 침투한 공격자가 중요 소프트웨어 및 데이터를 수정하지 못하도록 방지합니다.  



SGAxe 공격 : SGX 엔클레이브에서 민감 데이터 추출


SGAxe는 CacheOut '예측실행' 공격을 통해 SGX 데이터를 탈취합니다. 


연구원들에 따르면, 인텔은 몇 번의 마이크로 코드 업데이트와 새로운 아키텍처를 통해 SGX에 대한 사이드 채널 공격을 해결하기 위한 조치를 취했지만 완화 효과는 미흡한 것으로 확인되었습니다. 


결과적으로 해당 익스플로잇은 인텔의 인증 서버에서 신뢰하는 완전히 업데이트 된 인텔 컴퓨터에서 SGX 암호화 키를 복구할 수 있는 일시적 실행 공격(Transient Execution Attacks)을 발생시킵니다. 


검증은 SGX의 일부로 제공되는 메커니즘으로, 엔클레이브는 타사가 정품 인텔 프로세서에서 적절하게 초기화되었음을 검증합니다. 


CPU 내부에서 실행되는 소프트웨어가 손상되지 않고 소프트웨어가 엔클레이브 내부에서 실행되고 있음을 확인시켜주기 위함입니다.


연구원들은 다음과 같이 설명했습니다. 


"CacheOut을 사용해 인텔의 생산 쿼팅 엔클레이브의 주소 공간에서 밀봉 키를 복구합니다. 복구된 밀봉키를 사용해 장기 저장된 쿼팅 엔클레이브를 복호화하고 기기 EPID 검증 키를 획득합니다."



<이미지 출처: https://thehackernews.com/2020/06/intel-sgaxe-crosstalk-attacks.html>



SGAxe 이러한 신뢰 기반 시스템을 무력화함으로써 공격자가 인텔의 검증 메커니즘을 통과하는 악성 엔클레이브를 생성하도록 허용하여 보안 검증의 손실을 발생시킵니다.


연구원들은 다음과 같이 덧붙였습니다.


"기기 생산 검증키가 손상될 경우 클라이언트의 신뢰할 수 없는 호스트 애플리케이션에서 서버에서 제공하는 기밀 데이터에 접근할 수 있고, 클라이언트에서 실행되는 엔클레이브에서 생성한 출력 결과의 신뢰성이 저하되며, 이는 프로비저닝된 기밀 정보를 간단히 복구할 수 있게 하므로 SGX 기반 DRM 애플리케이션을 손쉽게 무용지물로 만들 수 있습니다."


인텔은 지난 1월, OEM 벤더에 제공되는 마이크로코드 업데이트 및 엔드 유저에 제공되는 BIOS 업데이트를 통해 CacheOut에 대한 패치를 발행했으나, SGAxe 공격으로 인한 피해를 완화하기 위해서는 CacheOut (L1D Eviction Sampling)에 대한 근본 원인부터 패치해야 합니다.


인텔의 보안 권고에 따르면, SGAxe 공격은 마이크로코드 업데이트를 통해 완화된 취약점(CVE-2020-0549)을 이용해 유포되었습니다. 


인텔은 또한 '신뢰 컴퓨팅 기반(TCB, Trusted Computing Base)' 복구 작업을 통해 이전에 서명된 검증키를 무효화시킬 예정입니다. 


이러한 복구 과정을 통해 사용자 시스템이 원격 검증을 사용할 수 있는 안전한 상태가 될 것입니다. 



CrossTalk 공격: CPU 코어에서 정보 유출


두 번째 SGX 익스플로잇인 CrossTalk (CVE-2020-0543)은 VU 대학 연구팀에 의해 MDS 공격이라 명명되었습니다. 


모든 CPU 코어에서 읽기 가능한 "스테이징" 버퍼를 활용해 코어 전체에 일시적 실행 공격을 마운트하고 별도의 CPU 코어에서 실행되는 보안 엔클레이브의 전체 ECDSA 개인키를 추출합니다. 


"스테이징 버퍼는 모든 CPU 코어에서 이전에 실행된 오프코어 명령의 결과를 유지합니다. 예를 들어 오프코어 하드웨어 DRNG, 부트카드 상태 해시, 기타 민감 정보가 반환하는 난수를 포함합니다."



<이미지 출처: https://thehackernews.com/2020/06/intel-sgaxe-crosstalk-attacks.html>



즉, CrossTalk 공격은 이전에 실행된 피해자 명령에 의해 접근되는 민감 정보를 유출하기 위해 일시적 실행 과정에서 스테이징 버퍼를 읽는 방식으로 동작합니다. 


버퍼가 RDRAND 및 RDSEED 명령 출력을 유지함으로써 권한이 없는 사용자는 생성된 난수를 추정할 수 있고 이를 통해 앞서 언급한 원격 검증 프로세스를 포함하여 SGX 엔클레이브의 기반이 되는 암호화 작업을 손상시킬 수 있게 됩니다. 


VU 대학교 연구원들은 2015년부터 2019년까지 출시된 Xeon E3 및 E CPU를 포함하여 공격에 취약한 인텔 CPU를 사용해 2018년 9월에 스테이징 버퍼 콘텐츠 유출을 증명하는 PoC와 2019년 7월에는 크로스코어 RDRAND/RDSEED 유출을 구현하는 PoC를 인텔에 공유했습니다. 


기존의 일시적 실행 공격에 대한 완화 조치는 거의 효과가 없었습니다. 


현재 완화 조치의 대부부은 이러한 공격의 크로스 코어 특성으로 인해 더이상 적용이 불가능한 경계의 일부 격리 조치가 수반되어야 합니다. 


이러한 명령에 대해 전체 메모리 버스를 잠그는 새로운 마이크로코드 업데이트는 공격으로 인한 영향을 완화할 수 있습니다. 


그러나 아직 발견되지 않은 유사한 문제가 없다는 전제 하에 가능합니다.


인텔은 패치를 구현하는 데 어려움이 있어 21개월의 기간 연장 후에 소프트웨어 벤더들에 유포된 마이크로코드 업데이트 결함을 해결했습니다. 


또한 취약한 프로세서 사용자들에게는 시스템 제조 업체에서 제공한 최신 버전의 펌웨어 업데이트를 통해 취약점을 해결할 것을 권고했습니다.





출처:

https://thehackernews.com/2020/06/intel-sgaxe-crosstalk-attacks.html

티스토리 방명록 작성
name password homepage