멜트다운 및 스펙터 취약점 확인

멜트다운과 스펙터

인텔 CPU에 대한 논란과 함께 멜트다운과 스펙터 버그가 발견 되었습니다. 2018년 1월 현재 윈도우를 비롯한 여러 OS에서 보안패치를 제공하고 있지만, 소프트웨어적 결함이 아닌 CPU 자체의 설계 문제이기 때문에 많은 사용자와 서버 관리자들이 예의 주시하고 있는 상황입니다.

CPU가 메모리를 읽고 명령을 실행할 때 분기 예측 및 추측 실행을 통해 성능을 높이게 되는데, 이 과정에서 허점이 발견되어 보안상 중요한 데이터들이 쉽게 노출될 수 있습니다. 메모리에 있는 각종 데이터를 공격자가 쉽게 탈취할 수 있기 때문에 빠른 보안 대책이 필요합니다.

멜트다운 취약점을 이용하면 권한 없는 요청에도 커널 메모리 데이터가 노출됩니다. 대부분의 인텔 CPU가 영향을 받습니다. ARM과 IBM의 일부 CPU도 멜트다운 공격에 취약하다고 확인되고 있으며, 현재까지 AMD 프로세서는 영향을 받지 않는 것으로 알려져 있습니다. 윈도우 패치뿐만 아니라 브라우저도 최신 업데이트 버전을 유지해야 합니다.

반면 스펙터 버그는 인텔, AMD, ARM을 포함한 대부분 시스템에 영향을 미치는 취약점입니다. 멜트다운 버그보다 심각성이 떨어진다고 하지만 OS의 보안 패치를 통해 완전히 해결할 수 없으며, 현재 발매된 모든 고성능 CPU가 가지고 있는 문제이기 때문에 시간을 두고 상황을 지켜봐야 할 것 같습니다. 제조사에서 취약점을 보완한 BIOS를 제공한다면 업데이트하는 것이 좋습니다.





취약점 확인 방법

1. Powershell 모듈 다운로드
PowerShell Gallery에서 관련 스크립트를 다운 받을 수 있습니다. 관리자 권한으로 Powershell 을 열고 다음 명령어를 사용하여 모듈을 설치합니다. 질문이 2개 나타나는데 모두 Y를 입력하여 진행합니다.
Install-Module SpeculationControl

2. Powershell 스크립트 실행 정책 변경
다운로드한 스크립트를 실행할 수 있도록 정책을 변경합니다. 정책은 Restricted / AllSigned / RemoteSigned / Unrestricted 4종류가 있으며 디폴트 값은 모든 스크립트를 불러올 수 없는 Restricted 입니다. RemoteSigned로 변경하여 다운로드한 스크립트를 실행할 수 있습니다.

현재 실행 정책을 백업 합니다.
$SaveExecutionPolicy = Get-ExecutionPolicy
현재 사용자의 실행 정책을 RemoteSigned로 변경합니다.
Set-ExecutionPolicy RemoteSigned -Scope Currentuser

3. 모듈 불러오기
과정 1에서 설치한 모듈을 불러옵니다.
Import-Module SpeculationControl

4. 보호 확인
다음 명령어를 사용하여 보호 여부를 확인합니다.
Get-SpeculationControlSettings

출력 내용은 다음과 같습니다. CVE-2017-5715 [branch target injection]이 스펙터 버그를, 아래 표시된 CVE-2017-5754 [rogue data cache load]는 멜트다운 취약점을 나타냅니다. 취약점에 대응하는 각각의 보호 기능들이 작동하는지 체크할 수 있습니다. 작동하는 보호 기능은 True 로 표시됩니다.
Speculation control settings for CVE-2017-5715 [branch target injection]
For more information about the output below, please refer to https://support.microsoft.com/en-in/help/4074629

Hardware support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is enabled: True
Windows OS support for branch target injection mitigation is disabled by system policy: True
Windows OS support for branch target injection mitigation is disabled by absence of hardware support: True

Speculation control settings for CVE-2017-5754 [rogue data cache load]

Hardware requires kernel VA shadowing: True
Windows OS support for kernel VA shadow is present: True
Windows OS support for kernel VA shadow is enabled: True
Windows OS support for PCID performance optimization is enabled: True

5. Powershell 실행 정책 복원
확인이 끝났으면 저장했던 스크립트 실행 정책을 복원합니다.
Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser
기본 정책은 Restricted 이므로 다음 명령어를 사용하여 디폴트 값으로 변경할 수도 있습니다.
Set-ExecutionPolicy Restricted





테크넷 다운로드를 사용한 확인 방법

파워셸에서 직접 설치할 수 없는 경우 테크넷 사이트를 통해 스크립트를 다운 받을 수 있습니다.

1. 스크립트 다운로드
테크넷 스크립트 센터에서 SpeculationControl.zip을 내려받고 로컬 폴더 (예: C:\ADV180002) 에 압축을 풉니다.

2. Powershell 스크립트 실행 정책 변경
현재 실행 정책 백업 : $SaveExecutionPolicy = Get-ExecutionPolicy
실행 정책 변경 : Set-ExecutionPolicy RemoteSigned -Scope Currentuser

3. 모듈 불러오기
CD C:\ADV180002\SpeculationControl
Import-Module .\SpeculationControl.psd1

4. 보호 확인
다음 명령어를 사용하여 보호 여부를 확인합니다.
Get-SpeculationControlSettings

5. Powershell 실행 정책 복원
확인이 끝나면 저장했던 스크립트 실행 정책을 복원합니다.
이전 정책 복원 : Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser
기본 값 : Set-ExecutionPolicy Restricted





마치며

발표된 로드맵에 의하면 인텔은 당분간 CPU 아키텍처를 변경하기 힘들 것으로 보이며 AMD는 여전히 서버 시장 및 개인 사용자에게 크게 매력적이지 않습니다. 올해 새로운 CPU 제품의 발매와 MS, 구글, 인텔 등의 대응을 통해 이 사태가 어떻게 흘러갈지 지켜봐야 할 것 같습니다.


참고:
https://support.microsoft.com/en-in/help/4074629
https://www.askvg.com/guide-everything-you-need-to-know-about-meltdown-and-spectre-vulnerabilities

댓글