날짜 |
변경 설명 |
---|---|
2023년 10월 27일 |
완화 B에 대한 참조 추가 |
2023년 7월 17일 |
MMIO 정보 추가됨 |
요약
Microsoft는 예측 실행 부채널 취약성으로 알려진 새로운 변종 공격 클래스를 인지하고 있습니다. 변종은 L1 터미널 결함(L1TF) 및 마이크로아키텍처 데이터 샘플링(MDS)으로 이름이 지정되었습니다. L1TF 또는 MDS 취약성을 악용할 수 있는 공격자는 트러스트 경계를 벗어난 권한 있는 데이터를 읽을 수 있습니다.
2019년 5월 14일에 업데이트됨:Intel은 2019년 5월 14일에 마이크로아키텍처 데이터 샘플링(Microarchitectural Data Sampling)이라는 새로운 종류의 예측 실행 부채널 취약성에 대한 정보를 발표했습니다. 다음 CVE가 할당되었습니다.
2019년 11월 12일에 업데이트됨: 2019년 11월 12일 Intel에서 CVE-2019-11135를 할당하는 Intel® TSX(Intel® Transactional Synchronization Extensions) Transaction Asynchronous Abort 취약성에 관한 기술 권고를 게시했습니다. Microsoft는 이 취약성을 완화하기 위해 업데이트를 발표했습니다. 다음 사항에 유의하십시오.
취약성 개요
가상화 호스트 같이 리소스가 공유되는 환경의 경우 하나의 가상 머신에서 임의의 코드를 실행할 수 있는 공격자는 다른 가상 머신이나 가상화 호스트 자체의 정보에 액세스할 수 있습니다.
Windows Server RDS(원격 데스크톱 서비스) 같은 서버 작업 및 Active Directory 도메인 컨트롤러 같은 전용 역할도 공격받을 위험이 있습니다. 권한 수준에 관계없이 임의의 코드를 실행할 수 있는 공격자는 암호화 키, 암호 및 기타 중요한 데이터 같은 운영 체제 또는 작업 암호에 액세스할 수 있습니다.
Windows 클라이언트 운영 체제도 위험합니다. 특히, 신뢰할 수 없는 코드를 실행할 경우 Windows Defender Credential Guard 등 가상화 기반 보안을 이용하거나 Hyper-V로 가상 머신을 실행합니다.
참고: 이 취약성은 Intel Core 프로세서 및 Intel Xeon 프로세서에만 영향을 미칩니다.
완화 기능 개요
이러한 문제를 해결하기 위해 Microsoft는 Intel과 협력하여 소프트웨어 완화 및 지침을 개발하고 있습니다. 취약성을 완화하는 데 도움이 되는 소프트웨어 업데이트가 릴리스되었습니다. 사용 가능한 모든 보호 기능을 얻으려면 디바이스 OEM의 마이크로코드를 포함할 수 있는 업데이트가 필요할 수 있습니다.
이 문서에서는 다음 취약성을 완화하는 방법을 설명합니다.
-
CVE-2018-3620 | L1 터미널 결함 – OS, SMM
-
CVE-2018-3646 | L1 터미널 결함 – VMM
-
CVE-2018-11091 | MDSUM(마이크로아키텍처 데이터 샘플링 캐시 불가능 메모리)
-
CVE-2018-12126 | MSBDS(마이크로아키텍처 저장소 버퍼 데이터 샘플링)
-
CVE-2018-12127 | MLPDS(마이크로 아키텍처 로드 포트 데이터 샘플링)
-
CVE-2018-12130 | MFBDS(마이크로 아키텍처 채우기 버퍼 데이터 샘플링)
-
CVE-2019-11135 | Windows 커널 정보 유출 취약성
-
CVE-2022-21123 | SBDR(공유 버퍼 데이터 읽기)
-
CVE-2022-21125 | SBDS(공유 버퍼 데이터 샘플링)
-
CVE-2022-21127 | 특수 레지스터 버퍼 데이터 샘플링 업데이트(SRBDS 업데이트)
-
CVE-2022-21166 | DRPW(디바이스 레지스터 부분 쓰기)
취약성에 대해 자세히 알아보려면 다음 보안 공지를 참조하세요.
L1TF: ADV180018 | ADV180018 | L1TF 변형을 완화하기 위한 Microsoft 지침
MDS: ADV190013 | 마이크로아키텍처 데이터 샘플링 취약성 완화를 위한 Microsoft 지침
MMIO: ADV220002 | Intel 프로세서 MMIO 부실 데이터 취약성에 대한 Microsoft 지침
Windows 커널 정보 공개 취약성: CVE-2019-11135 | Windows 커널 정보 공개 취약성
위협 완화에 필요한 조치 확인
다음 절의 내용은 L1TF 및/또는 MDS 취약성의 영향을 받는 시스템을 식별하는 데는 물론, 위험을 이해하고 완화하는 데에도 도움이 될 수 있습니다.
잠재적 성능 영향
테스트 결과, 이러한 완화 기능으로 인해 성능에 어느 정도 영향이 발생하는 것으로 확인되었지만, 이는 시스템 구성 및 필요한 완화 기능에 따라 다릅니다.
일부 고객의 경우 L1TF 및 MDS로 인한 위험을 완전히 해결하기 위해 하이퍼 스레딩(동시 멀티 스레딩 또는 SMT라고도 함)을 사용하지 않도록 설정해야 할 수 있습니다. 하이퍼 스레딩을 사용하지 않도록 설정하면 성능 저하 현상이 발생할 수 있습니다. 이러한 상황은 다음을 사용하는 고객에게 발생합니다.
-
Windows Server 2016 또는 Windows 10 버전 1607(1주년 업데이트)보다 이전인 Hyper-V 버전
-
신뢰할 수 없는 코드의 실행을 허용하는 소프트웨어(예: 빌드 자동화 서버 또는 공유 IIS 호스팅 환경)
영향은 시스템에서 실행되는 작업 및 하드웨어에 따라 다를 수 있습니다. 가장 일반적인 시스템 구성은 하이퍼 스레딩을 사용하도록 설정하는 것입니다. 따라서 시스템에서 하이퍼 스레딩을 사용하지 않도록 설정하는 조치를 취하는 사용자 또는 관리자의 경우 성능상의 영향이 발생하지 않습니다.
참고: 시스템에서 VBS로 보호되는 보안 기능을 사용하는지 여부를 확인하려면 다음 단계를 수행하세요.
-
시작 메뉴에서 MSINFO32를 입력합니다.
참고:시스템 정보 창이 열립니다. -
찾을 내용 상자에 보안을 입력합니다.
-
오른쪽 창에서 스크린샷에서 선택된 두 개의 행을 찾고 값 열에서 가상화 기반 보안이 사용하도록 설정되어 있는지 여부와 실행 중인 가상화 기반 보안 서비스를 확인합니다.
Hyper-V 코어 스케줄러는 하이퍼 스레딩을 계속 사용하도록 설정한 상태로 유지하면서 Hyper-V 가상 머신에 대한 L1TF 및 MDS 공격 벡터를 완화합니다. 코어 스케줄러는 Windows Server 2016 및 Windows 10 버전 1607부터 사용할 수 있습니다. 이것은 가상 머신의 성능에 미치는 영향도 최소화합니다
코어 스케줄러는 VBS로 보호되는 보안 기능에 대해 L1TF 또는 MDS 공격 벡터를 완화하지 않습니다. 자세한 내용은 완화 조치 C 및 다음 가상화 블로그 문서를 참조하세요.
성능상의 영향과 관련하여 Intel에서 공개한 자세한 내용을 보려면 다음 Intel 웹 사이트를 방문하세요.
영향을 받는 시스템 및 필요한 완화 기능 식별
그림 1의 순서도는 영향을 받는 시스템을 식별하고 올바른 조치를 확인하는 데 도움이 될 수 있습니다.
중요: 가상 머신을 사용할 경우 순서도는Hyper-V 호스트와 영향을 받는 각 VM 게스트에 개별적으로 고려해서 적용해야 합니다. 완화 기능이 둘 다에 적용될 수 있기 때문입니다. 특히, Hyper-V 호스트의 경우 순서도의 단계에서는 VM 간 및 호스트 내 보호 기능을 제공합니다. 하지만 이러한 완화 기능을 Hyper-V 호스트에만 적용하는 것으로는 VM 간 보호 기능을 제공하는 데 부족합니다. VM 간 보호 기능을 제공하려면 순서도를 각각의 Windows VM에 적용해야 합니다. 대부분의 경우 이렇게 하면 VM에서 레지스트리 키가 설정됩니다.
순서도를 탐색하면 해당 시스템 구성과 관련된 L1TF 공격 벡터를 완화하는 데 필요한 작업 또는 일련의 작업에 매핑되는 문자가 있는 파란색 원이 나타납니다. 나타나는 각 작업을 적용해야 합니다. 녹색 선이 나타나면 이는 끝으로의 직접 경로를 나타내며 추가 완화 단계는 없습니다.
글자가 있는 각 완화 기능의 간단한 설명은 오른쪽의 범례에 포함되어 있습니다. 단계별 설치 및 구성 지침이 포함되어 있는 각 완화 기능에 대한 자세한 설명은 "완화 기능" 섹션에 제공되어 있습니다.
완화 기능
중요: 다음 섹션에서는 이전 섹션의 그림 1의 순서도에 의해 결정되는 특정 조건에서만 적용해야 하는 완화 기능에 대해 설명합니다. 순서도에서 특정 완화 기능이 필요함을 나타내지 않는 한 이러한 완화 기능을 적용하지 마세요.
소프트웨어 및 마이크로코드 업데이트 외에도 특정 보호 기능을 사용하도록 설정하려면 수동 구성 변경이 필요할 수 있습니다. 또한 엔터프라이즈 고객은 콘텐츠 변경에 대한 알림을 받을 수 있도록 보안 알림 메일러에 등록하는 것이 좋습니다. (Microsoft 기술 보안 알림을 참조하세요.)
완화 조치 A
최신 Windows 업데이트 확보 및 적용
월별 Windows 보안 업데이트를 비롯하여 제공되는 모든 Windows 운영 체제 업데이트를 적용합니다. 영향을 받는 제품의 표는 Microsoft의 L1TF용 보안 공지 | ADV 180018, MDS용 보안 공지 | ADV 190013, MMIO용 보안 공지 | ADV220002 및 Windows 커널 정보 공개 취약성에 대한 보안 취약성 | CVE-2019-11135에서 확인할 수 있습니다.
완화 조치 B
최신 마이크로코드 또는 펌웨어 업데이트 확보 및 적용
최신 Windows 보안 업데이트를 설치하는 것 외에도 프로세서 마이크로코드 또는 펌웨어 업데이트가 필요할 수 있습니다. 디바이스 OEM에서 디바이스에 적합한 최신 마이크로코드 업데이트를 가져오고 적용하는 것이 좋습니다. 마이크로코드 또는 펌웨어 업데이트에 대한 자세한 내용은 다음 참조를 참조하세요.
참고: 중첩된 가상화(게스트 VM에서 Hyper-V 컨테이너 실행 포함)를 사용하는 경우 게스트 VM에 새 마이크로코드 인식 기능을 노출해야 합니다. 이렇게 하려면 VM 구성을 버전 8로 업그레이드해야 할 수 있습니다. 버전 8에는 마이크로코드 개발 사항이 기본적으로 포함되어 있습니다. 자세한 내용 및 필요한 단계는 다음 Microsoft Docs 문서를 참조하세요.
완화 조치 C
HT(하이퍼 스레딩)를 사용하지 않도록 설정해야 하나요?
L1TF 및 MDS 취약성은 Microsoft VBS(가상화 기반 보안)를 통해 유지되는 암호 및 Hyper-V 가상 머신의 기밀성이 부채널 공격으로 침해될 수 있는 위험한 상황의 원인이 됩니다. HT(하이퍼 스레딩)가 사용하도록 설정되어 있으면 Hyper-V와 VBS에서 제공하는 보안 경계가 모두 약화됩니다.
Hyper-V코어 스케줄러(Windows Server 2016 및 Windows 10 버전 1607부터 사용 가능)는 하이퍼스레딩을 계속 사용하도록 설정한상태로 유지하면서 Hyper-V 가상 머신에 대한 L1TF 및 MDS 공격 벡터를 완화합니다. 이렇게 하면 성능에 미치는 영향도 최소화됩니다.
Hyper-V 코어 스케줄러는 VBS 보안 기능에 대해 L1TF 또는 MDS 공격 벡터를 완화하지 않습니다. HT(하이퍼 스레딩)를 사용하도록 설정한 경우 L1TF 및 MDS 취약성은 부채널 공격을 통해 VBS 암호의 기밀성을 손상시켜 VBS가 제공한 보안 경계를 약화시키는 위험을 야기할 수 있습니다. HT를 사용하도록 설정하면 이렇게 위험이 커진 상황에서도 VBS가 보안상의 이점을 제공하며 광범위한 공격을 완화합니다. 따라서 VBS는 계속 HT를 사용하도록 설정한 시스템에서 사용하는 것이 좋습니다. L1TF 및 MDS 취약성이 VBS의 기밀성에 미치는 잠재적 위험을 제거하고자 하는 고객은 이 추가 위험을 완화하기 위해 HT를 사용하지 않도록 설정해야 합니다.
L1TF 및 MDS 취약성으로 인해 Windows Server 2016 이전 Hyper-V 버전의 기밀성에 유발되는 위험이나 VBS 보안 기능에 발생하는 위험을 방지하려는 고객은 신중하게 결정하고 HT를 사용하지 않도록 설정해야 합니다. 일반적으로 이러한 사항을 결정할 때는 다음과 같은 지침을 기준으로 삼아야 합니다.
-
Hyper-V를 실행하지 않고 VBS로 보호되는 보안 기능을 사용하지 않는 Windows 10 버전 1607 및 Windows Server 2016 이상의 시스템의 경우 고객은 HT를 사용하지 않도록 설정해서는 안 됩니다.
-
Hyper-V와 코어 스케줄러를 함께 실행하지만 VBS로 보호되는 보안 기능을 사용하지 않는 Windows 10 버전 1607 및 Windows Server 2016 이상의 시스템의 경우 고객은 HT를 사용하지 않도록 설정해서는 안 됩니다.
-
Hyper-V를 실행하는 Windows 10 버전 1511 및 Windows Server 2012 R2 이하 시스템의 경우 고객은 위험을 완화하기 위해 HT를 사용하지 않도록 설정해야 합니다.
HT를 사용하지 않도록 설정하는 데 필요한 단계는 OEM마다 다릅니다. 하지만 일반적으로 BIOS 또는 펌웨어 설정 및 구성 도구를 통해 수행합니다.
Microsoft는 BIOS 또는 펌웨어 설정 및 구성 도구에서 HT를 비활성화하는 것이 어렵거나 불가능할 경우 소프트웨어 설정을 통해 하이퍼 스레딩 기술을 비활성화하는 기능도 도입했습니다. HT를 비활성화하는 소프트웨어 설정은 BIOS 또는 펌웨어 설정이 불가능할 경우에 사용하며 기본적으로 비활성화되어 있습니다(즉, HT가 BIOS 또는 펌웨어 설정을 따라 갑니다). 이 설정과 이를 사용하여 HT를 비활성화하는 방법은 다음 문서를 참조하세요.
4072698 예측 실행 부채널 취약성 방지를 위한 Windows Server 관련 지침
가능한 경우, HT가 비활성화될 수 있도록 BIOS 또는 펌웨어에서 HT를 비활성화하는 것이 좋습니다.
참고: 하이퍼 스레딩을 비활성화할 경우 CPU 코어가 줄어듭니다. 이로 인해 최소 CPU 코어가 작동하도록 하는 기능에 영향을 미칠 수 있습니다. 예: WDAG(Windows Defender Application Guard).
완화 조치 D
Hyper-V 코어 스케줄러를 사용하도록 설정하고 코어당 VM 하드웨어 스레드 수를 2로 설정
참고: 이 완화 조치는 Windows Server 2016 및 버전 1809 이전의 Windows 10에만 적용됩니다. 코어 스케줄러는 기본적으로 Windows Server 2019 및 Windows 10 버전 1809부터 사용할 수 있습니다.
코어 스케줄러를 사용하려면 먼저 Hyper-V 호스트에서 스케줄러를 사용하도록 설정한 다음 코어당 하드웨어 스레드 수를 2로 설정하여 이를 활용하도록 각 VM을 구성하는 2단계 프로세스를 거쳐야 합니다.
Windows Server 2016 및 Windows 10 버전 1607에 도입된 Hyper-V 코어 스케줄러는 클래식 스케줄러 로직의 새로운 대안입니다. 코어 스케줄러는 HT를 사용하는 Hyper-V 호스트에서 실행되는 VM 내에서 작업의 성능 변화를 줄여줍니다.
Hyper-V 코어 스케줄러에 대한 자세한 설명과 이를 사용하도록 설정하는 단계는 다음 Windows IT Pro Center 문서를 참조하세요.
Hyper-V 하이퍼바이저 스케줄러 유형 이해 및 사용
Windows Server 2016 또는 Windows 10에서 Hyper-V 코어 스케줄러를 사용하도록 설정하려면 다음 명령을 입력합니다.
bcdedit /set HypervisorSchedulerType core
다음으로, 코어당 지정된 VM의 하드웨어 스레드 수를 2(2)로 구성할지 여부를 결정합니다. 가상 프로세서가 게스트 가상 머신에 하이퍼스레딩되어 있다는 사실을 노출하면 VM 운영 체제의 스케줄러와 VM 워크로드가 자체 작업 일정에서 HT를 사용하도록 설정합니다. 이렇게 하려면 다음 PowerShell 명령을 입력합니다. 여기서 <VMName>은 가상 머신의 이름입니다.
Set-VMProcessor -VMName <VMName> -HwThreadCountPerCore 2
완화 조치 E
공지 CVE-2017-5715, CVE-2017-5754, CVE-2019-11135에 대해 완화 기능 사용
참고: 이 완화 기능은 Windows Server 2019 및 Windows 클라이언트 운영 체제에서 기본적으로 사용됩니다.
공지 CVE-2017-5715, CVE-2017-5754, CVE-2019-11135에 대해 완화 기능을 사용하도록 설정하려면 다음 문서의 지침을 따릅니다.
4072698 예측 실행 부채널 취약성으로부터 보호하기 위한 Windows Server 지침
4073119 예측 실행 부채널 취약성으로부터 보호하기 위한 IT 전문가용 Windows 클라이언트 지침
참고: 이러한 완화 기능은 Windows 커널용 완화 기능 및 CVE-2018-3620에 설명된 완화 기능에 대한 안전한 페이지 프레임 비트 완화 기능을 포함하며 이를 자동으로 사용하도록 설정합니다. 안전한 페이지 프레임 비트 완화 기능에 대한 자세한 설명은 다음 Security Research & Defense 블로그 문서를 참조하세요.
참조 문서
Azure에서 예측 실행 부채널 취약성을 완화하기 위한 지침
이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이 제품의 성능이나 신뢰성에 대해 묵시적 또는 명시적으로 어떠한 보증도 하지 않습니다.
Microsoft는 타사 연락처 정보를 제공하여 기술 지원을 받도록 도와줍니다. 이 연락처 정보는 공지 없이 변경될 수 있습니다. Microsoft는 이 타사 정보의 정확성을 보장하지 않습니다.