본문으로 이동

소프트웨어 가드 익스텐션

위키백과, 우리 모두의 백과사전.
(Software Guard Extensions에서 넘어옴)

인텔 소프트웨어 가드 익스텐션(Intel Software Guard Extensions, SGX)은 일부 인텔 중앙 처리 장치(CPU)에 내장된 신뢰 실행 환경을 구현하는 명령어 집합이다. 이를 통해 사용자 수준운영체제 코드가 인클레이브(enclave)라고 불리는 보호된 개인 메모리 영역을 정의할 수 있다.[1][2] SGX는 보안 원격 컴퓨팅, 보안 웹 브라우징디지털 권리 관리(DRM) 구현에 유용하도록 설계되었다.[3] 다른 응용 프로그램으로는 사유 알고리즘암호화 키 숨기기가 있다.[4]

SGX는 CPU가 메모리 일부(인클레이브)를 암호화하는 것을 포함한다. 인클레이브에서 생성된 데이터와 코드는 CPU 내에서 실시간으로 복호화되어[4] 다른 코드, 즉 운영체제 및 기본 하이퍼바이저와 같은 더 높은 권한 수준에서 실행되는 코드에 의해 검사되거나 읽히는 것을 방지한다.[1][4][2] 이는 많은 종류의 공격을 완화할 수 있지만, 부채널 공격으로부터는 보호하지 못한다.[5]

2021년 인텔의 정책 변경으로 11세대 및 12세대 인텔 코어 프로세서에서 SGX가 사용 중단되었지만, 클라우드 및 엔터프라이즈용 인텔 제온에서는 계속 개발되고 있다.[6][7]

자세한 내용

[편집]

SGX는 2015년에 스카이레이크 마이크로아키텍처 기반의 6세대 인텔 코어 마이크로프로세서와 함께 처음 도입되었다.

CPU의 SGX 지원은 CPUID "구조화 확장 기능 리프(Structured Extended feature Leaf)", EBX 비트 02에 표시되지만,[8] 애플리케이션에서 사용하려면 바이오스/통합 확장 펌웨어 인터페이스 지원 및 선택적 활성화가 필요하며 이는 CPUID 비트에 반영되지 않는다. 이로 인해 애플리케이션의 기능 감지 로직이 복잡해진다.[9]

SGX 에뮬레이션은 2014년에 QEMU 시스템 에뮬레이터의 실험 버전에서 추가되었다.[10] 2015년 조지아 공과대학교 연구원들은 "OpenSGX"라는 오픈 소스 시뮬레이터를 발표했다.[11]

SGX가 보안에 사용된 한 가지 예는 울프SSL[12] 암호화 알고리즘을 위한 데모 애플리케이션이었다.

인텔 골드몬트 플러스(제미니 레이크) 마이크로아키텍처도 인텔 SGX를 지원한다.[13]

11세대12세대 인텔 코어 프로세서 모두에서 SGX는 "사용 중단"으로 표시되어 "클라이언트 플랫폼" 프로세서에서는 지원되지 않는다.[6][14][15] 이로 인해 파워DVD와 같이 공식적으로 라이선스가 부여된 소프트웨어에서 울트라 HD 블루레이 디스크 재생 지원이 중단되었다.[16][17][18]

SGX 취약점 목록

[편집]

프라임+프로브 공격

[편집]

2017년 3월 27일, 오스트리아 그라츠 공과대학교의 연구원들은 세분화된 타이머 대신 특정 CPU 명령어를 사용하여 캐시 DRAM 부채널을 악용함으로써 동일 시스템에서 실행되는 SGX 인클레이브로부터 RSA 키를 5분 이내에 획득할 수 있는 개념 증명을 개발했다.[19][20] 이 유형의 공격에 대한 한 가지 대응책은 2017년 USENIX 보안 심포지엄에서 다니엘 그루스 등이 발표했다.[21] 다른 공개된 대응책 중 하나로, 2017년 9월 28일에 컴파일러 기반 도구인 DR.SGX가 발표되었는데,[22] 이는 다른 제안된 솔루션의 구현 복잡성을 제거하면서도 우수한 성능을 제공한다고 주장한다.

스펙터 유사 공격

[편집]

임페리얼 칼리지 런던의 LSDS 그룹은 스펙터 투기적 실행 보안 취약점을 안전한 인클레이브 공격에 적용할 수 있다는 개념 증명을 제시했다.[23] 2018년 8월에 공개된 포어섀도 공격은 투기적 실행과 버퍼 오버플로를 결합하여 SGX를 우회한다.[24] L1 터미널 폴트라고도 불리는 이 공격에 대한 보안 권고 및 완화책은 원래 2018년 8월 14일에 발표되었고 2021년 5월 11일에 업데이트되었다.[25]

인클레이브 공격

[편집]

2019년 2월 8일, 오스트리아 그라츠 공과대학교 연구원들은 일부 경우 인클레이브 자체 내에서 악성 코드를 실행할 수 있음을 보여주는 연구 결과를 발표했다.[26] 이 익스플로잇은 페이로드를 재구성하기 위해 프로세스 메모리를 스캔한 다음 시스템에서 코드를 실행할 수 있다. 논문은 인클레이브의 기밀하고 보호된 특성 때문에 바이러스 백신 소프트웨어가 그 안에 있는 악성 코드를 탐지하고 제거하는 것이 불가능하다고 주장한다. 인텔은 이 공격이 SGX의 위협 모델 범위를 벗어났으며, 사용자가 실행하는 코드가 신뢰할 수 있는 소스에서 온 것임을 보장할 수 없으며, 소비자에게 신뢰할 수 있는 코드만 실행하도록 촉구한다는 성명을 발표했다.[27]

마이크로스코프 리플레이 공격

[편집]

최신 컴퓨터 아키텍처를 괴롭히는 부채널 공격이 확산되고 있다. 이러한 공격 중 다수는 코드 실행의 미세하고 비결정적인 변동을 측정하므로, 공격자는 비밀을 알아내기 위해 많은 측정값(수만 개일 수도 있음)이 필요하다. 그러나 마이크로스코프 공격은 악성 OS가 프로그램의 실제 구조와 상관없이 코드를 임의의 횟수만큼 재생할 수 있게 하여 수십 가지의 부채널 공격을 가능하게 한다.[28] 2022년 7월, 인텔은 SGX 인클레이브 프로그래머가 이러한 유형의 이벤트를 처리할 핸들러를 작성할 수 있도록 AEX-Notify라는 리눅스 패치를 제출했다.[29]

플런더볼트

[편집]

보안 연구원들은 인클레이브 내 실행에 타이밍 특정 결함을 주입하여 정보 유출을 초래할 수 있었다. 이 공격은 원격으로 실행될 수 있지만, 프로세서의 전압과 주파수에 대한 특권 제어에 접근해야 한다.[30] 이 공격에 대한 보안 권고 및 완화책은 원래 2018년 8월 14일에 발표되었고 2020년 3월 20일에 업데이트되었다.[31]

LVI

[편집]

로드 값 주입(Load Value Injection)[32][33]은 메모리에서 로드된 값을 대체하기 위해 프로그램에 데이터를 주입하는 것을 목표로 한다. 이 값은 오류가 발견되고 롤백되기 전까지 잠시 사용되며, 그 동안 LVI는 데이터 및 제어 흐름을 제어한다. 이 공격에 대한 보안 권고 및 완화책은 원래 2020년 3월 10일에 발표되었고 2021년 5월 11일에 업데이트되었다.[34]

SGAxe

[편집]

2020년에 발표된 SGX 취약점인 SGAxe[35]는 캐시에 대한 투기적 실행 공격을 확장하여[36] 인클레이브의 내용을 유출한다. 이를 통해 공격자는 원격 인증에 사용되는 개인 CPU 키에 접근할 수 있다.[37] 다시 말해, 위협 행위자는 인텔의 대응책을 우회하여 SGX 인클레이브의 기밀성을 침해할 수 있다. SGAxe 공격은 인텔이 서명한 SGX의 개인 인용 인클레이브에서 인증 키를 추출하여 수행된다. 공격자는 그 다음 임의의 SGX 인증 인용에 서명함으로써 합법적인 인텔 기계로 위장할 수 있다.[38] 프로세서 데이터 유출 또는 캐시 이빅션(Cache Eviction)이라고도 불리는 이 공격에 대한 보안 권고 및 완화책은 원래 2020년 1월 27일에 발표되었고 2021년 5월 11일에 업데이트되었다.[39]

ÆPIC 누출

[편집]

2022년 보안 연구원들은 고급 프로그래머블 인터럽트 컨트롤러(APIC)에서 취약점을 발견했는데, 이는 루트/관리자 권한을 가진 공격자가 L1 및 L2 캐시의 데이터 전송을 검사하여 APIC를 통해 암호화 키에 접근할 수 있도록 한다.[40] 이 취약점은 X86 CPU에서 발견된 최초의 아키텍처 공격이다. 이는 시끄러운 부채널을 사용하는 스펙터 및 멜트다운과는 다르다. 이 익스플로잇은 현재 인텔 코어 10세대, 11세대, 12세대 및 제온 아이스 레이크 마이크로프로세서에 영향을 미친다.[41][42]

개인 키 추출

[편집]

코드 서명은 인클레이브에만 있는 개인 키로 생성된다. 개인 키는 칩의 "퓨즈" 요소를 통해 인코딩된다. 이 과정에서 비트가 타버려 이진 값 0이 된다. 이 개인 키는 하드웨어에 인코딩되어 추출할 수 없다. 마크 에르몰로프(Mark Ermolov), 막심 고랴치(Maxim Goryachy), 드미트리 스클랴로프(Dmitry Sklyarov)는 https://github.com/chip-red-pill/glm-ucode#에서 SGX 개념의 신뢰성에 대한 주장을 반박했다.

SGX 악성 코드 주장

[편집]

SGX가 우수한 악성 코드 생성을 가능하게 하는지에 대한 오랜 논쟁이 있었다. 옥스퍼드 대학교 연구원들은 2022년 10월에 발표한 논문에서[43] 악성 코드 개발을 위해 SGX를 오용할 경우 공격자에게 잠재적인 장단점을 고려했다. 연구원들은 SGX 생태계에서 악용될 수 있는 일시적인 제로데이 취약점이 있을 수 있지만, 신뢰 실행 환경(TEE)의 핵심 원칙과 설계 특징은 악성 코드를 야생의 악성 코드보다 약하게 만들며, TEE는 그렇지 않은 경우 악성 코드에 크게 기여하지 않는다고 결론 내렸다.

같이 보기

[편집]

각주

[편집]
  1. “Intel SGX for Dummies (Intel SGX Design Objectives)”. 《intel.com》. 2013년 9월 26일. 2014년 4월 29일에 원본 문서에서 보존된 문서. 2015년 4월 20일에 확인함. 
  2. johnm (2017년 8월 8일). “Properly Detecting Intel® Software Guard Extensions (Intel® SGX) in Your Applications”. 《software.intel.com》 (영어). 2019년 4월 24일에 원본 문서에서 보존된 문서. 2019년 2월 15일에 확인함. 
  3. “Intel SGX Details”. 《intel.com》. 2017년 7월 5일. 
  4. “Researchers Use Intel SGX To Put Malware Beyond the Reach of Antivirus Software - Slashdot”. 《it.slashdot.org》. 2019년 2월 12일. 2021년 10월 26일에 원본 문서에서 보존된 문서. 2019년 4월 19일에 확인함. 
  5. “Intel SGX and Side-Channels”. 《intel.com》. 2020년 2월 28일. 2020년 2월 28일에 원본 문서에서 보존된 문서. 2020년 2월 28일에 확인함. 
  6. “New Intel chips won't play Blu-ray disks due to SGX deprecation”. 2022년 1월 16일에 원본 문서에서 보존된 문서. 2022년 1월 17일에 확인함. 
  7. anrilr (2022년 1월 20일). “Rising to the Challenge — Data Security with Intel Confidential Computing”. 《community.intel.com》 (영어). 2022년 5월 19일에 원본 문서에서 보존된 문서. 2022년 4월 20일에 확인함. 
  8. Intel Architecture Instruction Set Extensions Programming Reference 보관됨 2015-09-28 - 웨이백 머신, Intel, AUGUST 2015, page 36 "Structured Extended feature Leaf EAX=07h, EBX Bit 02: SGX"
  9. “Properly Detecting Intel Software Guard Extensions in Your Applications”. 《intel.com》. 2016년 5월 13일. 2019년 4월 24일에 원본 문서에서 보존된 문서. 2016년 5월 13일에 확인함. 
  10. “Intel SGX Emulation using QEMU” (PDF). 《tc.gtisc.gatech.edu》. 2018년 11월 2일에 확인함. 
  11. “sslab-gatech/opensgx”. 《깃허브》. 2018년 6월 11일에 원본 문서에서 보존된 문서. 2016년 8월 15일에 확인함. 
  12. “wolfSSL At IDF”. 《wolfssl》. 2016년 8월 11일. 
  13. “Intel® Pentium® Silver J5005 Processor”. 2020년 7월 10일에 확인함. 
  14. “11th Generation Intel Core Processor Datasheet”. 2022년 1월 15일에 확인함. 
  15. “12th Generation Intel Core Processors Datasheet”. 2022년 1월 15일에 확인함. 
  16. Mary Stone (2022년 1월 21일). “Intel discontinues support for UHD Blu-ray discs in its newest PC chips”. 《whathifi》. 2023년 3월 22일에 원본 문서에서 보존된 문서. 2022년 12월 8일에 확인함. 
  17. “CyberLink Support Center”. 
  18. “CyberLink Support Center”. 《www.cyberlink.com》. 2024년 9월 11일에 확인함. 
  19. Chirgwin, Richard (2017년 3월 7일). “Boffins show Intel's SGX can leak crypto keys”. The Register. 2019년 7월 11일에 원본 문서에서 보존된 문서. 2017년 5월 1일에 확인함. 
  20. Schwarz, Michael; Weiser, Samuel; Gruss, Daniel; Maurice, Clémentine; Mangard, Stefan (2017). “Malware Guard Extension: Using SGX to Conceal Cache Attacks”. arXiv:1702.08719 [cs.CR]. 
  21. “Strong and Efficient Cache Side-Channel Protection using Hardware Transactional Memory” (PDF). 《USENIX》. 2017년 8월 16일. 2020년 7월 27일에 원본 문서 (PDF)에서 보존된 문서. 2017년 10월 26일에 확인함. 
  22. Brasser, Ferdinand; Capkun, Srdjan; Dmitrienko, Alexandra; Frassetto, Tommaso; Kostiainen, Kari; Müller, Urs; Sadeghi, Ahmad-Reza (2017년 9월 28일). 《DR.SGX: Hardening SGX Enclaves against Cache Attacks with Data Location Randomization》. ACSAC '19: Proceedings of the 35th Annual Computer Security Applications Conference December 2019. 788–800쪽. arXiv:1709.09917. doi:10.1145/3359789.3359809. S2CID 19364841. 
  23. 《Sample code demonstrating a Spectre-like attack against an Intel SGX enclave.》, 2021년 12월 19일, 2020년 5월 7일에 원본 문서에서 보존된 문서, 2018년 1월 12일에 확인함 
  24. Peter Bright - Jul 10, 2018 9:00 pm UTC (2018년 7월 10일). “New Spectre-like attack uses speculative execution to overflow buffers”. Ars Technica. 2018년 11월 23일에 원본 문서에서 보존된 문서. 2018년 11월 2일에 확인함. 
  25. “CVE - CVE-2018-3615”. 《cve.mitre.org》. 2022년 10월 17일에 원본 문서에서 보존된 문서. 2022년 10월 17일에 확인함. 
  26. Schwarz, Michael; Weiser, Samuel; Gruss, Daniel (2019년 2월 8일). “Practical Enclave Malware with Intel SGX”. arXiv:1902.03256 [cs.CR]. 
  27. Bright, Peter (2019년 2월 12일). “Researchers use Intel SGX to put malware beyond the reach of antivirus software”. 《Ars Technica》 (미국 영어). 2019년 2월 15일에 원본 문서에서 보존된 문서. 2019년 2월 15일에 확인함. 
  28. Skarlatos, Dimitrios; Yan, Mengjia; Gopireddy, Bhargava; Sprabery, Read; Torrellas, Josep; Fletcher, Christopher W. (2019). 〈MicroScope〉. 《Proceedings of the 46th International Symposium on Computer Architecture》. Isca '19 (영어). Phoenix, Arizona: ACM Press. 318–331쪽. doi:10.1145/3307650.3322228. ISBN 978-1-4503-6669-4. 
  29. “[PATCH] x86/sgx: Allow enclaves to use Asynchrounous Exit Notification”. 《lore.kernel.org》. 2022년 10월 17일에 원본 문서에서 보존된 문서. 2022년 10월 17일에 확인함. 
  30. “Plundervolt steals keys from cryptographic algorithms”. 《Rambus Blog》 (미국 영어). 2019년 12월 11일. 2021년 10월 23일에 원본 문서에서 보존된 문서. 2020년 3월 20일에 확인함. 
  31. “CVE - CVE-2019-11157”. 《cve.mitre.org》. 2022년 10월 17일에 확인함. 
  32. “LVI: Hijacking Transient Execution with Load Value Injection”. 《lviattack.eu》. 2022년 1월 1일에 원본 문서에서 보존된 문서. 2020년 3월 12일에 확인함. 
  33. “Load Value Injection”. 《software.intel.com》. 2020년 7월 12일에 원본 문서에서 보존된 문서. 2020년 3월 12일에 확인함. 
  34. “CVE - CVE-2020-0551”. 《cve.mitre.org》. 2022년 10월 17일에 확인함. 
  35. “SGAxe”. 《sgaxe.com》. 2020년 6월 10일에 원본 문서에서 보존된 문서. 2020년 6월 10일에 확인함. 
  36. “CacheOut”. 《cacheoutattack.com》. 
  37. “Towards Formalization of Enhanced Privacy ID (EPID)-based Remote Attestation in Intel SGX”. 
  38. “SGAxe & CrossTalk Attacks: New Intel SGX Vulnerability Leaks Data”. 《Hack Reports》 (영어). 2020년 6월 12일. 2020년 7월 16일에 원본 문서에서 보존된 문서. 2020년 6월 12일에 확인함. 
  39. “CVE - CVE-2020-0549”. 《cve.mitre.org》. 2022년 10월 17일에 확인함. 
  40. “Intel SGX: Not So Safe After All, ÆPIC Leak”. 《The New Stack》 (미국 영어). 2022년 8월 16일. 2022년 8월 29일에 원본 문서에서 보존된 문서. 2022년 8월 29일에 확인함. 
  41. Wilson, Jason R. (2022년 8월 11일). “ÆPIC Leak is an Architectural CPU Bug Affecting 10th, 11th, and 12th Gen Intel Core CPUs”. 《Wccftech》 (미국 영어). 2022년 8월 29일에 원본 문서에서 보존된 문서. 2022년 8월 29일에 확인함. 
  42. “ÆPIC Leak”. 《aepicleak.com》. 2022년 8월 29일에 원본 문서에서 보존된 문서. 2022년 8월 29일에 확인함. 
  43. Küçük, Kubilay Ahmet; et, al. (October 2022). “SoK: How 'Not' to Architect Your Next-Generation TEE Malware”. Hardware and Architectural Support for Security and Privacy (HASP) 2022. 2023년 4월 21일에 원본 문서에서 보존된 문서. 2023년 4월 17일에 확인함. 

외부 링크

[편집]