예측 실행 부채널 취약성 방지를 위한 Windows Server 관련 지침

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

요약


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

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

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

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

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

이 취약성 종류에 대해 자세히 알아보려면 ADV180002 및 ADV180012를 참조하세요.

이 문서에 포함된 다른 공급업체의 연락처 정보는 기술 지원을 받는 데 도움을 주기 위한 것입니다. 이 연락처 정보는 예고 없이 변경될 수 있습니다. Microsoft는 이러한 다른 공급업체 연락처 정보의 정확성을 보증하지 않습니다.

권장 조치


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

  1. 월별 Windows 보안 업데이트를 비롯하여 제공되는 모든 Windows 운영 체제 업데이트를 적용합니다. 이러한 업데이트를  사용하도록 설정하는 방법에 대한 자세한 내용은 Microsoft 기술 자료 문서 4072699를 참조하세요.
  2. 장치 제조업체(OEM)에서 제공하는 해당 펌웨어(마이크로코드) 업데이트를 적용합니다.
  3. Microsoft 보안 공지 ADV180002ADV180012에 제공된 정보 및 이 기술 자료 문서의 내용에 따라 환경에 발생할 수 있는 위험을 평가합니다.
  4. 이 기술 자료 문서에 제공된 레지스트리 키 정보 및 공지 내용을 활용하여 필요한 조치를 취합니다.

Windows Server에서 보호 기능을 사용하도록 설정


CVE-2017-5753에 대한 완화 기능은 Windows Server에서 기본적으로 사용하도록 설정되며 이를 사용하지 않도록 설정하는 관리자 옵션은 없습니다. 이 문서에 설명된 다른 세 가지 취약성에 대한 완화 기능은 기본적으로 사용하지 않도록 설정됩니다. 이러한 취약성에 대해 사용 가능한 보호 기능을 모두 사용하려는 고객은 레지스트리 키를 변경하여  이러한 완화 기능을 사용하도록 설정해야 합니다.

이러한 완화 기능은 사용하도록 설정하는 경우 성능에 영향을 줄 수 있습니다. 성능에 미치는 영향은 물리적 호스트의 특정 칩셋 및 실행 중인 작업 같은 여러 요인에 따라 달라집니다. 고객은 작업 중인 환경의 성능에 대한 영향을 평가하여 필요한 조정을 수행하는 것이 좋습니다.

다음 범주 중 하나에 속하는 서버의 경우 취약성이 발생할 위험성이 더 높습니다.

  • Hyper-V 호스트 – VM 간 공격 및 VM과 호스트 간 공격으로부터 보호해야 합니다.
  • RDSH(원격 데스크톱 서비스 호스트) – 세션 간 공격 또는 세션과 호스트 간 공격으로부터 보호해야 합니다.
  • 데이터베이스용 컨테이너/신뢰할 수 없는 확장, 신뢰할 수 없는 웹 콘텐츠, 외부 원본에서 제공되는 코드를 실행하는 작업 등 신뢰할 수 없는 코드를 실행 중인 물리적 호스트나 가상 머신. 여기에는 신뢰할 수 없는 프로세스와 다른 프로세스 간 또는 신뢰할 수 없는 프로세스와 커널 공격 간 보호 기능이 필요합니다.

다음 레지스트리 키 설정을 사용하여 서버에서 완화 기능을 사용하도록 설정하고 변경 내용이 적용되도록 시스템을 다시 시작합니다.

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


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

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

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

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

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

변경 내용이 적용되도록 서버를 다시 시작합니다.

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

변경 내용이 적용되도록 서버를 다시 시작합니다.

MinVmVersionForCpuBasedMitigations는 변경할 필요가 없습니다.


참고

CVE-2017-5715(두 번째 변종 스펙터)에 대한 완화 기능 사용 안 함


Intel에서 새 마이크로코드를 테스트 및 업데이트하고 배포하는 동안, Microsoft는 고급 사용자들이 영향을 받는 장치에서 레지스트리 설정을 직접 변경하여 두 번째 변종인 스펙터(Spectre)(CVE-2017-5715 – “분기 대상 삽입”)에 대한 완화 기능을 개별적으로  사용하거나 사용하지 않도록 설정하는 새 옵션을 제공하게 되었습니다.

마이크로코드를 설치했지만 예기치 않은 다시 시작 또는 시스템 안정성 문제로 인해 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 – "분기 대상 삽입") 완화 기능:

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

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


참고
 레지스트리 설정을 변경하여 두 번째 변종 완화 기능을 사용하도록 설정하거나 사용하지 않도록 설정하려면 관리 권한이 필요하며 시스템을 재부팅해야 합니다.

AMD 프로세서(CPU)에 대한 두 번째 변종인 스펙터(Spectre)에 대비하여 IBPB(간접 분기 예측 차단) 사용


일부 AMD 프로세서(CPU)에서는 IBPB(간접 분기 예측 차단) 메커니즘을 통해 간접 분기 대상 삽입 공격을 완화하도록 설계된 간접 분기 제어 기능을 제공합니다. 자세한 내용은 ADV180002의 FAQ #15와 간접 분기 제어와 관련된 AMD 아키텍처 지침AMD 보안 업데이트를 참조하세요.

사용자 컨텍스트에서 커널 컨텍스트로 전환하는 경우 다음 지침에 따라 IBPB를 제어합니다.

사용자 컨텍스트에서 커널 컨텍스트로 전환할 때 IBPB(간접 분기 예측 차단)를 사용하도록 설정하려면:

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


참고
 레지스트리 설정을 변경하여  IBPB(간접 분기 예측 차단)를 사용하도록 설정하려면 관리자 권한이 필요하며 컴퓨터를 다시 시작해야 합니다.

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

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

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


참고
이러한 레지스트리 변경 작업은 관리자 권한으로 실행하고 컴퓨터를 다시 시작해야 합니다.

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


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 확인(이전 OS 버전/이전 WMF 버전)

Technet ScriptCenter에서 PowerShell 모듈 설치:

  1. https://aka.ms/SpeculationControlPS로 이동합니다.
  2. SpeculationControl.zip을 로컬 폴더에 다운로드합니다.
  3. 로컬 폴더에 내용의 압축을 풉니다. 예를 들면 다음과 같습니다. 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를 참조하세요. 

질문과 대답


참조