예측 실행 부채널 취약성 방지를 위한 IT 전문가용 Windows 클라이언트 지침

적용 대상: Windows Server 2016 Version 1709Windows Server 2012 R2 StandardWindows Server 2012 Standard

요약


Intel, AMD, VIA, ARM을 포함하여 많은 최신 프로세서에 영향을 주는 “예측 실행 부채널 공격”이라는 공개적으로 보고된 취약성 종류가 확인되었습니다. 

참고: 이 문제는 Android, Chrome, iOS, macOS 같은 다른 운영 체제에도 영향을 미칩니다. 따라서 해당하는 공급업체로부터  지침을 받는 것이 좋습니다.

Microsoft에서는 이러한 취약성을 완화할 수 있도록 다수의 업데이트를 출시했으며 클라우드 서비스 보호를 위한 조치도 취했습니다. 자세한 내용은 다음 절을 참조하세요.

이러한 취약성이 고객을 공격하는 데 사용되었음을 나타내는 정보는 아직 입수되지 않은 상태입니다. Microsoft는 고객을 보호하기 위해 칩 제조업체, 하드웨어 OEM, 앱 공급업체 등의 업계 파트너와 긴밀하게 협조하고 있습니다. 가능한 많은 보호를 받으려면 펌웨어(마이크로코드) 및 소프트웨어 업데이트를 해야 합니다. 여기에는 장치 OEM의 마이크로코드가 포함되며, 일부의 경우에는 바이러스 백신 소프트웨어 업데이트도 포함됩니다.

이 문서에서는 다음 취약성에 대해 설명합니다.

Windows 업데이트에서도 Internet Explorer 및 Edge 관련 완화 기능을 제공합니다. Microsoft는 해당 취약성 클래스를 방지할 수 있도록 이러한 완화 기능을 지속적으로 개선할 예정입니다.

이 취약성 종류에 대해 자세히 알아보려면 다음을 참조하세요.

2019년 5월 14일 업데이트: Intel은 2019년 5월 14일에 마이크로아키텍처 데이터 샘플링(Microarchitectural Data Sampling)이라는 새로운 종류의 예측 실행 부채널 취약성에 대한 정보를 발표했습니다. 다음 CVE가 할당되었습니다.

중요: 이러한 문제는 Android, Chrome, iOS, MacOS 같은 다른 시스템에 영향을 미칩니다. 고객은 해당 공급업체로부터 관련 지침을 받는 것이 좋습니다.

Microsoft는 이러한 취약성을 완화하기 위해 업데이트를 발표했으며, 가능한 많은 보호를 받으려면 펌웨어(마이크로코드) 및 소프트웨어 업데이트를 해야 합니다. 여기에는 장치 OEM의 마이크로코드가 포함될 수도 있습니다. 경우에 따라 이러한 업데이트를 설치하면 성능에 영향이 발생하기도 합니다. 클라우드 서비스를 보호하는 조치도 취했습니다. 이 업데이트를 배포할 것을 강력히 권장합니다.

이 문제에 대한 자세한 내용은 다음 보안 공지를 참고하고, 시나리오 기반의 지침을 참고하여 위협을 완화하는 데 필요한 조치를 결정합니다.

참고 마이크로코드 업데이트를 설치하기 전에 Windows 업데이트에서 최신 업데이트를 모두 설치하는 것이 좋습니다.

2019년 8월 6일 업데이트: 2019년 8월 6일 Intel에서 Windows 커널 정보 유출 취약성에 대한 자세한 내용을 공개했습니다. 이 취약성은 스펙터 변종 1 예측 실행 사이드 채널 취약성의 변종이며 CVE-2019-1125로 지정되었습니다.

2019년 7월 9일 Microsoft는 이 문제를 완화할 수 있도록 이 Windows 운영 체제에 대한 보안 업데이트를 공개했습니다. Microsoft는 2019년 8월 6일 화요일에 업계와 함께 공개할 때까지 이 완화 대책을 공개하는 것을 연기했습니다.

Windows 업데이트를 사용하도록 설정했고 2019년 9월 9일 보안 업데이트를 적용한 고객은 자동으로 보호됩니다. 더 이상 구성할 것이 없습니다.

참고 이 취약성은 장치 제조업체(OEM)에서 마이크로코드를 업데이트할 필요는 없습니다.

이 취약성 및 해당 업데이트에 대한 자세한 내용은 Microsoft 보안 업데이트 가이드를 참조하세요.  CVE-2019-1125 | Windows 커널 정보 유출 취약성.

 

 

권장 조치


고객은 취약성 발생을 방지할 수 있도록 다음 조치를 취해야 합니다.

  1. 월별 Windows 보안 업데이트를 비롯하여 제공되는 모든 Windows 운영 체제 업데이트를 적용합니다.
  2. 장치 제조업체에서 제공하는 해당 펌웨어(마이크로코드) 업데이트를 적용합니다.
  3. Microsoft 보안 공지 ADV180002, ADV180012, ADV190013, 그리고 이 기술 자료 문서에 있는 정보를 토대로 환경에 대한 위험을 평가합니다.
  4. 이 기술 자료 문서에 제공된 레지스트리 키 정보 및 공지 내용을 활용하여 필요한 조치를 취합니다.

참고: Surface 고객의 경우 Windows 업데이트를 통해 마이크로코드 업데이트를 받을 수 있습니다. 최신 Surface 장치 펌웨어(마이크로코드) 업데이트 목록은 KB 4073065를 참조하세요.

Windows 클라이언트에 대한 완화 기능 설정


보안 공지 ADV180002ADV180012, ADV190013에서는 이러한 취약성으로 인해 발생하는 위험에 대한 정보를 제공하고, Windows Server 시스템에 대한 기본적인 완화 기능 상태를 식별하도록 도와줍니다. 다음 표에는 CPU 마이크로코드의 요구 사항과 Windows 클라이언트의 기본 완화 기능 상태가 요약되어 있습니다.

CVE

CPU 마이크로코드/펌웨어의 필요 여부

완화 기능 기본 상태

CVE-2017-5753

아니요

기본적으로 사용(사용하지 않도록 설정하는 옵션 없음)

자세한 내용은 ADV180002를 참조하세요.

CVE-2017-5715

기본적으로 사용. AMD 프로세서 기반 시스템 사용자는 ADV180002의 FAQ #15를, ARM 프로세서 사용자는 FAQ #20을 참고하여 추가 조치 및 해당 레지스트리 키 설정의 이 KB 문서를 확인해야 합니다.

참고: 두 번째 변종 스펙터(CVE-2017-5715)가 사용된 경우 “Retpoline”은 Windows 10 버전 1809 이상이 탑재된 장치에서 기본적으로 사용됩니다. “Retpoline”에 대한 자세한 내용은 Windows의 Retpoline을 통해 두 번째 변종 스펙터 완화 블로그 게시물에 있는 지침을 참조하세요.

CVE-2017-5754

아니요

기본적으로 사용

자세한 내용은 ADV180002를 참조하세요.

CVE-2018-3639

Intel: 예
AMD: 아니요
ARM: 예

Intel 및 AMD: 기본적으로 사용 안 함. ADV180012에서 자세한 내용을 확인하고 이 KB 문서에서 관련 레지스트리 키 설정을 참조하세요.

ARM: 기본적으로 사용(사용하지 않도록 설정하는 옵션 없음).

CVE-2018-11091 Intel: 예

기본적으로 사용.

ADV190013에서 자세한 내용을 확인하고 이 KB 문서에서 관련 레지스트리 키 설정을 참조하세요.
CVE-2018-12126  Intel: 예

기본적으로 사용.

ADV190013에서 자세한 내용을 확인하고 이 KB 문서에서 관련 레지스트리 키 설정을 참조하세요.
CVE-2018-12127  Intel: 예

기본적으로 사용.

ADV190013에서 자세한 내용을 확인하고 이 KB 문서에서 관련 레지스트리 키 설정을 참조하세요.
CVE-2018-12130 Intel: 예

기본적으로 사용.

ADV190013에서 자세한 내용을 확인하고 이 KB 문서에서 관련 레지스트리 키 설정을 참조하세요.


참고: 기본적으로 설정이 해제된 완화 기능을 사용하도록 설정하면 성능에 영향이 발생할 수 있습니다. 실제 성능에 미치는 영향은 장치의 특정 칩셋 및 실행 중인 작업 같은 여러 요인에 따라 달라집니다.

레지스트리 설정


다음 레지스트리 정보는 보안 공지 ADV180002ADV180012에 설명된 대로 기본적으로 사용하도록 설정되지 않은 완화 기능을 사용하도록 설정하기 위해 제공되는 것입니다. 또한 Microsoft는 Windows 클라이언트에 대한 CVE-2017-5715 및 CVE-2017-5754와 관련된 완화 기능을 사용하지 않도록 설정하려는 고객을 위해 레지스트리 키 설정도 제공하고 있습니다.

중요: 이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 주의하여 수행해야 합니다. 추가 보호 조치로 레지스트리를 수정하기 전에 해당 레지스트리를 백업하는 것이 좋습니다. 이렇게 하면 문제가 발생하는 경우 레지스트리를 복원할 수 있습니다. 레지스트리 백업 및 복원 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하세요.

KB 322756 "Windows에서 레지스트리를 백업 및 복원하는 방법" 참조

CVE-2017-5715(두 번째 변종 스펙터) 및 CVE-2017-5754(멜트다운)에 대한 완화 기능 관리


중요 참고: 두 번째 변종 스펙터(CVE-2017-5715)가 사용된 경우 Retpoline은 Windows 10, 버전 1809 장치에서 기본적으로 사용됩니다. 최신 버전의 Windows 10에서 Retpoline을 사용하면 Windows 10, 버전 1809가 탑재된 장치에서 두 번째 변종 스펙터에 대해 성능이 향상될 수도 있습니다(특히 구형 프로세서).

CVE-2017-5715(두 번째 변종 스펙터) 및 CVE-2017-5754(멜트다운)에 대한 기본 완화 기능을 사용하도록 설정하려면

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

CVE-2017-5715(두 번째 변종 스펙터) 및 CVE-2017-5754(멜트다운)에 대한 완화 기능을 사용하지 않도록 설정하려면

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

참고 "사용" 및 "사용 안 함" 설정 모두에 대해 FeatureSettingsOverrideMask를 3으로 설정하는 것이 정확합니다. 레지스트리 키에 대한 자세한 내용은 “FAQ” 절을 참조하세요.

CVE-2017-5715(두 번째 변종 스펙터)에 대한 완화 기능 관리


CVE-2017-5715(두 번째 변종 스펙터)에 대한 완화 기능을 사용하지 않도록 설정하려면:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 1 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

CVE-2017-5715(두 번째 변종 스펙터) 및 CVE-2017-5754(멜트다운)에 대한 기본 완화 기능을 사용하도록 설정하려면:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

AMD 및 ARM 프로세서만 해당: CVE-2017-5715(두 번째 변종 스펙터)에 대한 전체 완화 기능 사용


기본적으로, CVE-2017-5715에 대한 사용자-커널 보호 기능은 AMD 및 ARM CPU에 대해 사용하지 않도록 설정됩니다. CVE-2017-5715에 대한 추가 보호 기능을 수신하려는 고객은 완화 기능을 사용하도록 설정해야 합니다. 자세한 내용은 AMD 프로세서의 경우 ADV180002의 FAQ #15를, ARM 프로세서의 경우 ADV180002의 FAQ #20을 참조하세요.

AMD 및 ARM 프로세서에 대한 사용자-커널 보호 기능과 CVE 2017-5715에 대한 기타 보호 기능 사용:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 64 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

CVE-2018-3639(예측 저장 우회) CVE-2017-5715(두 번째 변종 스펙터) 및 CVE-2017-5754(멜트다운)에 대한 완화 기능 관리


CVE-2018-3639(예측 저장 우회)에 대한 완화 기능과 CVE-2017-5715(두 번째 변종 스펙터) 및 CVE-2017-5754(멜트다운)에 대한 기본 완화 기능을 사용하도록 설정하려면:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

참고: AMD 프로세서는 CVE-2017-5754(멜트다운)에 취약하지 않습니다. 이 레지스트리 키는 AMD 프로세서가 탑재된 시스템에서 AMD 프로세서의 CVE-2017-5715에 대한 기본 완화 기능과 CVE-2018-3639에 대한 완화 기능을 사용하도록 설정하는 데 사용됩니다.

CVE-2018-3639(예측 저장 우회), CVE-2017-5715(두 번째 변종 스펙터) *및* CVE-2017-5754(멜트다운)에 대한 완화 기능을 사용하지 않도록 설정하려면

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

AMD 프로세서만 해당: CVE-2017-5715(두 번째 변종 스펙터) 및 CVE 2018-3639(예측 저장 우회)에 대한 전체 완화 기능 사용


기본적으로, CVE-2017-5715에 대한 사용자-커널 보호 기능은 AMD 프로세서에 대해 사용하지 않도록 설정됩니다. CVE-2017-5715에 대한 추가 보호 기능을 수신하려는 고객은 완화 기능을 사용하도록 설정해야 합니다.  자세한 내용은 ADV180002의 FAQ #15를 참조하세요.

AMD 프로세서에 대한 사용자-커널 보호 기능과 CVE 2017-5715에 대한 기타 보호 기능 및 CVE 2018-3639(예측 저장 우회)에 대한 보호 기능 사용:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 72 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

예측 저장 우회 사용 안 함(SSBD)(CVE-2018-3639) 및 L1 터미널 결함(L1TF)(CVE-2018-3615, CVE-2018-3620, CVE-2018-3646) 등 스펙터(CVE-2017-5753 및 CVE-2017-5715) 및 멜트다운(CVE-2017-5754) 변종과 함께 마이크로아키텍처 데이터 샘플링 관리(CVE-2018-11091, CVE-2018-12126, CVE-2018-12127, CVE-2018-12130)


하이퍼 스레딩을 비활성화하지 않은 상태에서 예측 저장 우회 사용 안 함(SSBD)(CVE-2018-3639) 및 L1 터미널 결함(L1TF)(CVE-2018-3615, CVE-2018-3620, CVE-2018-3646) 등 스펙터(CVE-2017-5753 및 CVE-2017-5715) 및 멜트다운(CVE-2017-5754) 변종과 함께 마이크로아키텍처 데이터 샘플링(CVE-2018-11091, CVE-2018-12126, CVE-2018-12127, CVE-2018-12130)에 완화 기능을 사용하는 방법:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 72 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

Hyper-V 기능이 설치된 경우 다음 레지스트리 설정을 추가합니다.

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

Hyper-V 호스트이고 펌웨어 업데이트를 적용한 경우: 모든 가상 머신을 완전히 종료합니다. 이렇게 하면 VM을 시작하기 전에 펌웨어 관련 완화 기능을 호스트에 적용할 수 있습니다. 그에 따라 VM도 다시 시작할 때 업데이트됩니다.

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

하이퍼 스레딩을 비활성화한 상태에서 예측 저장 우회 사용 안 함(SSBD)(CVE-2018-3639) 및 L1 터미널 결함(L1TF)(CVE-2018-3615, CVE-2018-3620, CVE-2018-3646) 등 스펙터(CVE-2017-5753 및 CVE-2017-5715) 및 멜트다운(CVE-2017-5754) 변종과 함께 마이크로아키텍처 데이터 샘플링(CVE-2018-11091, CVE-2018-12126, CVE-2018-12127, CVE-2018-12130)에 완화 기능을 사용하는 방법:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8264 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

Hyper-V 기능이 설치된 경우 다음 레지스트리 설정을 추가합니다.

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

Hyper-V 호스트이고 펌웨어 업데이트를 적용한 경우: 모든 가상 머신을 완전히 종료합니다. 이렇게 하면 VM을 시작하기 전에 펌웨어 관련 완화 기능을 호스트에 적용할 수 있습니다. 그에 따라 VM도 다시 시작할 때 업데이트됩니다.

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

예측 저장 우회 사용 안 함(SSBD)(CVE-2018-3639) 및 L1 터미널 결함(L1TF)(CVE-2018-3615, CVE-2018-3620, CVE-2018-3646) 등 스펙터(CVE-2017-5753 및 CVE-2017-5715) 및 멜트다운(CVE-2017-5754) 변종과 함께 마이크로아키텍처 데이터 샘플링(CVE-2018-11091, CVE-2018-12126, CVE-2018-12127, CVE-2018-12130)에 완화 기능을 사용하지 않는 방법:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

변경 내용이 적용되도록 컴퓨터를 다시 시작합니다.

보호 기능이 사용하도록 설정되었는지 확인


Microsoft는 보호 기능이 사용하도록 설정되었는지를 고객이 확인할 수 있도록 고객이 시스템에서 실행 가능한 PowerShell 스크립트를 게시했습니다. 다음 명령을 실행하여 스크립트를 설치하고 실행합니다.

PowerShell 갤러리를 사용한 PowerShell 확인(Windows Server 2016 또는 WMF 5.0/5.1)

PowerShell 모듈 설치:

PS> Install-Module SpeculationControl

PowerShell 모듈을 실행하여 보호 기능이 사용하도록 설정되었는지 확인:

PS> # Save the current execution policy so it can be reset

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> Import-Module SpeculationControl

PS> Get-SpeculationControlSettings

PS> # Reset the execution policy to the original state

PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

Technet의 다운로드를 사용한 PowerShell 확인(이전 운영 체제 버전 및 이전 WMF 버전)

Technet ScriptCenter에서 PowerShell 모듈 설치:

https://aka.ms/SpeculationControlPS로 이동

로컬 폴더로 SpeculationControl.zip 다운로드

로컬 폴더(예: C:\ADV180002)에 내용의 압축 풀기

PowerShell 모듈을 실행하여 보호 기능이 사용하도록 설정되었는지 확인:

PowerShell을 시작한 다음 이전 예제를 사용하여 다음 명령을 복사하고 실행합니다.

PS> # Save the current execution policy so it can be reset

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> CD C:\ADV180002\SpeculationControl

PS> Import-Module .\SpeculationControl.psd1

PS> Get-SpeculationControlSettings

PS> # Reset the execution policy to the original state

PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser


PowerShell 스크립트 출력에 대한 자세한 설명은 기술 자료 문서 4074629를 참조하세요.

질문과 대답