명령1을 실행하면서 명령2에 필요한 데이터를 준비해 놓는다. |
명령2를 실행하면서 명령3에 필요한 데이터를 준비해 놓는다. |
명령3을 실행하면서 명령4에 필요한 메모리를 CPU에 로드해 놓는다 |
캐시 메모리 중의 데이터를 읽는다. |
명령1을 실행하면서 명령2에 필요한 데이터를 준비해 놓는다. |
명령2를 실행하면서 명령3에 필요한 데이터를 준비해 놓는다. |
명령3을 실행 오류, 명령4에 필요한 메모리를 CPU에 로드해 놓는다 |
실행 오류 |
그 이유는, CPU는 CPU 캐시에서 레지스터로 전송까지 일련의 매커니즘을 통하여 주소의 적합성 여부를 판단하는데, CPU 분기 예측 과정에서 오류가 발생하였고, CPU 캐시메모리로의 로드 까지만 실행되었으며 레지스터로의 전송 과정(즉 일련의 매커니즘)이 완료되지 않았기 때문에, 해당 캐시 메모리에 대한 어떠한 비정상적인 접근도 모두 허용하게 되는 것입니다.
Meltdown 취약점
Meltdown 취약점은 권한상승 취약점으로 현재까지는 인텔에서 생산된 CPU에만 존재하는 것으로 알려져 있습니다.
멜트다운은 인텔 microarchitectural을 타겟으로 하는 공격으로서, 비순차적인 실행 방법을 이용하는 사용자의 커널 메모리를 유출시킬 수 있습니다.
공격자는 멜트다운 취약점을 이용해 프로세서에 있는 권한 상승 취약점을 공격합니다. CPU의 예측 실행 기능을 이용하면 공격자가 메모리 보호를 우회할 수 있기 때문입니다
해당 취약점을 이용하면 사용자 공간에서 커널 메모리에 접근하도록 허용합니다. 이는 즉 사용자가 시스템 내부에 존재하는 보안 매커니즘(심지어 커널에 포함되어 있는 내용)과 관련된 다양한 코드 등에 접근할 수 있도록 허용하여 다양한 정보들이 유출될 가능성이 있습니다.
Spectre 취약점
Spectre 취약점은 Intel, ARM 및 AMD 프로세서에 존재하는 취약점으로, 프로세서로 하여금 실행해서는 안되는 코드를 실행하도록 유도하여 다른 어플리케이션 메모리 공간에 존재하는 정보를 유출시킬 수 있는 취약점입니다.
프로세서는 일부 조건 분기, 예를 들어 if else가 성립되지 않는 상황 등에서는 먼저 해당 조건 안에 있는 코드를 먼저 실행하며, 발생 조건이 맞지 않는다면 해당 결과를 버리게 됩니다.
Spectre 취약점은 이러한 특성을 이용한 것입니다. CPU가 분기가 맞는지 맞지 않는지 판단을 하기 전에 분기 내부에 포함되어 있는 코드(즉 공격자가 악의적인 목적으로 작성해놓은 코드)를 실행시킨다면 결과적으로 일부 데이터가 L1 cache에 저장되게 됩니다. 그 후 이 데이터에 접근한 시간을 통하여 어떠한 데이터가 캐시에 저장되었는지 추측한 후, 다시 역순으로 실행을 통해 자신의 메모리 경계선을 넘어 메모리를 읽어올 수 있습니다.
Meltdown 취약점과 Spectre 취약점 차이점
Meltdown 취약점과 Spectre 취약점은 모두 CPU 취약점 이지만, 두 취약점의 차이점은 분명합니다.
|
Meltdown 취약점 |
Spectre 취약점 |
아키텍쳐 |
인텔 |
인텔,ARM,AMD |
엔트리 |
해당 시스템에서 코드 실행 |
해당 시스템에서 코드 실행 |
메서드 |
인텔 권한 상승 + 예측 실행 |
브랜치 예측 + 예측 실행 |
영향 |
사용자 공간에서 커널 메모리 읽기 |
프로그램을 실행하는 다른 사용자로부터 메모리 읽기 |
대응 |
소프트웨어 패치 |
소프트웨어 패치 |
윈도우 사용자들은 2017년 1월 3일날 발표된 보안패치 KB40568XX를 적용하면 Meltdown 취약점과 Spectre 취약점을 해결할 수 있습니다.
하지만 해당 보안패치 적용 시 일부 제품들과 호환성 문제 때문에 BSOD가 발생하는 경우가 확인되었고, 이에 MS에서는 자동업데이트가 아닌 레지스트리가 셋팅되어 있는 고객들에 한해서만 패치를 내려준다고 밝혔습니다.
레지스트리값 :
Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" Value="cadca5fe-87d3-4b96-b7fb-a231484277cc" Type="REG_DWORD"
만약 해당 레지스트리 셋팅 프로그램 실행 후 블루스크린이 발생한다면 해당 업데이트 파일을 삭제해 주시면 됩니다.
삭제방법
1. 안전모드로 부팅 (▶컴퓨터 안전모드로 부팅하는 방법 보러가기)
2. 제어판 – 프로그램 제거 클릭
3. Kb4056892 업데이트 제거 (Windows 10 Version 1709 for 32-bit Systems 기준)
* 다른 버전 OS의 KB 번호는 해당 링크 참고
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002
- Windows 10 RS3 Version 1709 운영 체제 : KB4056892
- Windows 10 RS2 Version 1703 운영 체제 : KB4056891
- Windows 10 RS1 Version 1607 운영 체제 : KB4056890
주요 제품군 패치 대응 상황 공유
▶ 레드헷(Redhat)
레드햇에서 제공하는 업데이트 패치 적용
▶ 구글 크롬(Chrome) 브라우저
1) 크롬 브라우저를 실행합니다.
2) 주소창에 chrome://flags/#enable-site-per-process를 입력합니다.
3) 사이트 격리 옆에있는 ‘활성화’ 버튼을 클릭합니다(해당 버튼이 안보일 경우 크롬 업데이트 필요)
4) 크롬 브라우저를 재시작 합니다.
▶ VMware
ESXi 5.5, 6.0 및 6.5 버전은 VMware에서 제공하는 패치 설치
Workstation 12.x는 12.5.8 버전으로 업데이트
Fusion 8.x는 8.5.9 버전으로 업데이트
▶기타 벤더사들 관련 보안공지
Intel
https://newsroom.intel.com/news/intel-responds-to-security-research-findings/
https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00088&languageid=en-fr
Microsoft
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002
Amazon
https://aws.amazon.com/de/security/security-bulletins/AWS-2018-013/
ARM
https://developer.arm.com/support/security-update
Android
https://source.android.com/security/bulletin/2018-01-01
https://googleprojectzero.blogspot.co.at/2018/01/reading-privileged-memory-with-side.html
https://www.chromium.org/Home/chromium-security/ssca
MITRE
http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2017-5715
http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2017-5753
http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2017-5754
Xen
http://xenbits.xen.org/xsa/advisory-254.html
Mozilla
https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/
AMD
https://www.amd.com/en/corporate/speculative-execution
NVIDIA
공감 버튼누르기 어렵지 않아요~~~!!! ^.^
♡♥ 공감 ♥♡ 버튼 눌러주세요
'Security > Vulnerabilities' 카테고리의 다른 글
[취약점] Web Server Predictable Session ID (0) | 2014.07.18 |
---|---|
[취약점] OpenSSL Multiple Remote Security Vulnerabilities_ heartbleed 취약점 (0) | 2014.07.17 |