본문 바로가기
HW Knowledge/Hewlett-Packard Enterprise

Intel Microprocessor 보안 취약 이슈 - Foreshadow

by 스쳐가는인연 2018. 8. 23.

Intel Microprocessor 보안 취약 이슈

 

 

이슈 및 원인

Foreshadow

CVE-2018-3615 - L1 Terminal Fault – SGX

 

Foreshadow-Next Generation(NG)

CVE-2018-3620 - L1 Terminal Fault - OS, SMM

CVE-2018-3646 - L1 Terminal Fault - VMM

 

 

Intel Software Guard Extensions (SGX) 기능은 Intel에서 2015년경 Skylake platform에 적용한 보안 관련 기능으로, Firmware 통해, 특정 Application에서 사용 중인 Data를 다른 Application에서 침입할 수 없도록(Sandbox 역할) 해주는 기능.

 

기존에 알려진, Meltdown Spectre 공격을 통하더라도, SGX로 보호된 영역은 침투할 수 없었음(다고함...)

 

그러나, Foreshadow 공격은, Intel CPU의 투기적 예측 실행(speculative execution side channel vulnerabilities)을 이용하여, 임의의 Termial fault를 일으키고, 이를 악용하여, L1 Data cache를 접근하는 것으로, SGX로 보호되어 Meltdown (캐시 메모리 주소를 임의로 특정하여, 접근하고, 해당 영역의 메모리 내용(Data)에 접근)으로 공격이 실패 했을 때도, 해당 L1 캐시의 영역을 SGX로 보호되지 않는 영역으로 임의적 복제 및 우회 접근하여 데이터를 접근 가능한 것으로 확인됨.

 

Foreshadow-Next Generation(NG) 공격은, Foreshadow 공격을 조사 중에 추가 확인된 보안 취약점으로, 역시 Terminal fault를 임의로 일으킨 뒤, L1 Data Cache 영역을 임의로 접근하여 다른 Application의 정보를 접근하는 공격이다.

이 공격은 기존 Meltdown Spectre 패치를 적용했다고 해도, 방어할 수 없기에 추가적인 OS 측의 패치가 필요함.

 

이 취약점으로 공격이 가능한 항목은,

System Management Mode (SMM) – 일반적으로 BIOSOS가 상호 접근/동작하는 SW 영역

Operating System, or hypervisor (VMM) – OS VM

 

 

본 공격을 예방 조치 하기 위해서는, 최신 버전의 MicrocodeOS 패치를 적용 하는 것이다.

예를 들자면, App 1CPU를 사용하다 App 2가 사용하기 전, L1 캐시를 플러시(삭제)하여, 다음 동작 App이 기존 L1 Data를 접근할 수 없도록 하는 것.

CPUOwnership을 드물게 교체하는 경우, 예상되는/발생되는 Overhead는 미미할 것으로 예측되나, 반대로 자주 교체하는 상황인 경우, 각 App이 CPU를 점유할 때, L2 캐시로부터 L1으로 자료를 로드하고, 동작 후 CPUrelease 할 때, L1 캐시를 삭제하는 상황이 반복 될 수 있겠다.

 

 

Intel Hyper-Threading (HT) 기능은 Simultaneous Multi-Threading (SMT)의 한 형태로, 여러 App이 동시에 실행되어 실행 시간을 단축(성능 향상)할 수 있도록 해주는 기술이다.

 

하지만, SMT 기능은, 동일 CPU를 사용하는 App 간에 L1 Data Cache를 공유하게 되어, 현재 이슈가 되고 있는 보안 취약점에 노출 될 수 있다.

 

일부 최신 Hypervisor/OE는 이미 코어 스케쥴링 기능을 포함하고 있으며, SMT 환경에서, App 또는 VM간에 CPU를 공유하지 않도록 격리 하는 것으로 이해하면 된다.

 

코어 스케쥴링을 지원하지 않고, 다뤄지는 정보가 민감한 시스템이라면 SMT 기능 자체를 사용하지 않을 수 있다.

(위에 언급한 사유로 성능 저하에 많은 영향을 줄 수 있다)

 

Foreshadow의 조치 방안은 적용 시 고객 솔루션 성능에 영향을 줄 수 있는 항목들이 많기에, OS 제조사/지원사와 충분히 검토 후 필요한 조치가 적용되어야 한다.

 

환경

·    Server : Intel에서 제조한 Microprocessor를 사용하는 현존 대부분의 ProLiant 서버

 

HPE 보안 게시판:

Bulletin: HPE ProLiant, Synergy, and Moonshot Systems – L1 Terminal Fault – SGX (CVE-2018-3615), L1 Terminal Fault – OS, SMM (CVE-2018-3620), L1 Terminal Fault – VMM (CVE-2018-3646) Security Vulnerabilities

https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-a00053708en_us

Impacted Server 부분 목록 참조

 

참고) 본 이슈는 AMD 프로세서는 해당되지 않음

참고) 현 기준 아이태니엄 프로세서 및 Phi 7200 시리즈 프로세서는 해당되지 않음

참고) 현 기준 L1 Terminal Fault – SGX 이슈는 m710x 서버 카트리지 (Moonshot or EdgeLine) 외 해당되지 않음

        (다른 ProLiant 시스템들은 SGX 기능을 사용하지 않음)

 

참고) 영향 받는 CPU 목록은 아래 위치 참고. (영향을 받는 부품은 지속 업데이트 중으로 변경될 수 있음)

Affected products:

https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00161.html

 

 

솔루션

문제 보완/해소를 위해 OS 및 하드웨어 패치를 함께 진행해야 함

HPE recommends installing mitigations to these security vulnerabilities for impacted products.

This includes updating to the revision of the System ROM that includes the Intel microcode that supports mitigation of these vulnerabilities as well as updating the OS and/or Hypervisor with a revision that supports mitigation.

 

Updated System ROMs including the Intel microcode that supports mitigation of these vulnerabilities are already available for all HPE ProLiant, Synergy, and Moonshot platforms impacted by these vulnerabilities.

 

Gen10, 수정된 1.42 버전이 발표됨

Gen9, 수정된 2.60 버전이 발표됨

G6 - Gen8, 수정된 버전(5/21/2018)이 발표됨

 

 

Action Item 1.

What: 운영 중인 시스템의 최신 System ROM(BIOS) 적용

 

Action Item 2.

What: 현재 운영 중인 OS의 관련 패치 확인 및 적용

To do.

상세 패치 정보는 아래 각 OS 제조사의 패치 Page를 통해 확인 가능함

(변경될 수 있기에 적용 전, 아래 Page를 통해 또는 OS 지원사를 통해 최신 패치 정보의 확인을 권장)

RHEL

L1TF - L1 Terminal Fault Attack - CVE-2018-3620 & CVE-2018-3646

https://access.redhat.com/security/vulnerabilities/L1TF

 

CVE-2018-3615

https://access.redhat.com/security/cve/cve-2018-3615

 

SLES

Security Vulnerability: "L1 Terminal Fault" (L1TF) aka CVE-2018-3615, CVE-2018-3620 & CVE-2018-3646

https://www.suse.com/support/kb/doc/?id=7023077

 

Windows Server guidance to protect against L1 terminal fault

https://support.microsoft.com/en-us/help/4457951/windows-server-guidance-to-protect-against-l1-terminal-fault

 

ADV180018 | Microsoft Guidance to mitigate L1TF variant

https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/adv180018

 

VMware vSphere, Workstation, and Fusion updates enable Hypervisor-Specific Mitigations for L1 Terminal Fault - VMM vulnerability.

https://www.vmware.com/security/advisories/VMSA-2018-0020.html

 

주)

Sandbox:

샌드박스란 미국에서 어린아이를 보호하기 위해 모래통(Sandbox)에서만 놀도록 하는데서 유래한 보안 모델로서,

외부로부터 받은 파일을 바로 실행하지 않고, 지정된/보호된 영역에서 실행시켜 봄으로써, 외부로부터 들어온(받은) 파일과 프로그램이 내부 시스템에 악영향을 주는 것을 미연에 방지하는 기술

 

Speculative execution side channel vulnerabilities

CPU의 동작 알고리즘(분기 예측, branch prediction / A 명령 수행 후 그 결과에 따라 다음 수행될 명령을 예측/준비)을 이용하여, 임의의 특정 코드를 수행하여, 메모리 영역을 접근 가능함이 확인됨

(기존에 Spectre로 인해 널리(?) 알려진 취약점)

 

L1 Terminal Fault

특정 프로그램이 메모리 영역에 접근을 시도하면 시스템 내부에서, 논리 메모리 영역을 물리 메모리 영역으로 변환을 한다. 이 때, 물리 메모리와 매핑되지 않은 다른 메모리 공간/주소에 대하여 임의의 접근 시도가 있으면, Terminal fault가 발생된다. 일단 Terminal fault를 경험하면 CPU가 이를 바로잡기 위한 동작을 취하기 전까지 작은 틈이 생기게 되는 데, 이 틈의 시간 동안 CPUL1D(L1 Data Cache)의 임의로 (모든 공간의) 접근이 가능하고, 알려진 공격 방법을 통해 보호된 자료들을 예측 가능하도록 노출/방치(?) 한다.

이 취약점을 이용한 공격 방법을 L1TF라고 구분함.

 

 

내용 및 이미지 출처: 인터넷 - L1TF 문서 및 자료들에서...

 

Understanding L1 Terminal Fault (L1TF)
https://www.youtube.com/watch?v=n_pa2AisRUs

 

Foreshadow (security vulnerability)
https://en.wikipedia.org/wiki/Foreshadow_(security_vulnerability)

 

Foreshadow
https://foreshadowattack.eu/

반응형