'Security/Vulnerabilities' + 3

2018년 1월 4일, 인텔 CPU 취약점 발표

사실 이 취약점으로 클라이언트 공격하느니... 웹브라우저 취약점을 통해 공격하는게 훨씬 수월할듯 하지만....
언론에 노출이 많이되고있따... 대응을 해야한다 우리도

*알약 블로그를 참조했으며 중간중간 확인한 부분 덧붙였습니다.



원문 참고 : https://meltdownattack.com/

Jann Horn 등 보안연구원들은 ”Meltdown (붕괴)”(CVE-2017-5754)과 ”Spectre (유령)”(CVE-2017-5753 & CVE-2017-5715) 라고 명명된 2개의 CPU 취약점을 공개, 악용된다면 로컬 메모리의 데이터가 유출되므로 암호화 되지 않은 데이터가 그대로 유출되어 중요정보가 탈취될 수 있다.

보통은 임의로 시스템 메모리에 액세스 하지 못하지만 Meltdown 으로 메모리에 접근 못하도록 하는것을 파괴하여 액세스 가능하도록 하며, 
Spectre 으로 메모리 위치에 접근하여 정보를 탈취를 합니다. 


        

        



CPU 취약점 동작원리

최신 CPU들은 처리 속도를 조금이라도 더 향상시키기 위해서 여러 기술들을 도입하였는데,
그것들 중에서 이번 이슈와 관련되는 기술은 예측실행(Speculative Execution)과 분기 예측(Indirect Branch Prediction) 기술

이 기술은 이미 약 20년 전(1995년) 부터 사용하기 시작

프로세서는 한가지 명령에 대한 처리가 끝나면 다른 명령을 받기 전까지 어떠한 작업도 하지 않는다.
하지만 최적화 기술이 적용된 최신 프로세서들은 명령을 받지 않아도 다음에 실행될 명령들을 예측하여 해당 명령을 처리하기 위해
필요한 데이터들을 CPU 캐시에 로드해 놓는 방법을 통해 CPU성능을 향상한다.


[ 정상적인 프로세스 과정 ]

명령1을 실행하면서 명령2에 필요한 데이터를 준비해 놓는다.

명령2를 실행하면서 명령3에 필요한 데이터를 준비해 놓는다.

명령3을 실행하면서 명령4에 필요한 메모리를 CPU에 로드해 놓는다

캐시 메모리 중의 데이터를 읽는다.


이 과정에서,
만약 컴퓨터가 올바르게 예측하여 예측한 명령이 처리된다면 CPU의 속도가 빨라지겠지만,
잘못 예측을 하였다면 해당 작업을 취소하고 예측 전의 단계로 돌아가게 됩니다. 


하지만 프로세서들의 파이프 라인이 예측 전의 상태로 돌아가지만,
예측한 명령을 실행하기 위해 CPU캐시에 로드해 놓았던 데이터들은 여전히 남아있게 됩니다. 



[ 프로세스 과정 중 오류 발생 ]

명령1을 실행하면서 명령2에 필요한 데이터를 준비해 놓는다.

명령2를 실행하면서 명령3에 필요한 데이터를 준비해 놓는다.

명령3을 실행 오류, 명령4에 필요한 메모리를 CPU에 로드해 놓는다

실행 오류


예측실행 기능을 가진 CPU의 실행과정 중,
명령 4가 필요한 메모리 로드 사이클은 명령 3이 정상 실행 여부와는 상관없이 예측하여 메모리 캐시에 로드시켜 놓습니다.
 > 이 과정에서 메모리의 적합성 여부는 판단하지 않습니다. 


만약 명령 3의 예측과정에서 오류가 발생한다면,
명령 4는 실행되지 않지만, 명령 4를 수행하기 위해 필요한 데이터들은 이미 CPU 캐시에 로드되어 있는 상태가 됩니다.

 > 이렇게 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


Google

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

https://forums.geforce.com/default/topic/1033210/geforce-drivers/nvidias-response-to-speculative-side-channels-cve-2017-5753-cve-2017-5715-and-cve-2017-5754/



윈도우 10
레지스트리는 있지만 업데이트 리스트에는 확인되지 않고있음...
업데이트 기록에도 없고 이미 설치된 기록에도 없고









윈도우 서버 2012














공감 버튼누르기 어렵지 않아요~~~!!! ^.^


♡♥ 공감 ♥♡ 버튼 눌러주세요 










,

 

 

 

참고 블로그 : http://hyunmini.tistory.com/28

 

,

개요

  • 통신 구간 암호화를 위해 많이 사용하는 OpenSSL 라이브러리에서 서버에 저장된 중요 메모리 데이터가 노출되는 HeartBleed라고 명명된 심각한 버그가 발견되어 시스템 및 소프트웨어에 대한 신속한 취약점 조치를 권고

취약점 정보

  • 시스템 메모리 정보 노출 취약점
    • CVE-2014-0160 (2014.04.07.)
  • 영향 받는 버전
    • OpenSSL 1.0.1 ~ OpenSSL 1.0.1f
    • OpenSSL 1.0.2-beta, OpenSSL 1.0.2-beta1
  • 영향 받는 시스템 및 소프트웨어
    • 취약한 OpenSSL 버전이 탑재된 시스템
      • 서버(웹서버, VPN 서버 등), 네트워크 장비, 모바일 단말 등 다양한 시스템이 해당될 수 있음
    • 취약한 OpenSSL 라이브러리가 내장된 소프트웨어 제품
  • 영향 받지 않는 소프트웨어
    • OpenSSL 0.9.x 대 버전
    • OpenSSL 1.0.0 대 버전
    • OpenSSL 1.0.1g

취약점 내용

  • OpenSSL 암호화 라이브러리의 하트비트(Heartbeat)라는 확장 모듈에서 클라이언트 요청 메시지를 처리할 때 데이터 길이 검증을 수행하지 않아 시스템 메모리에 저장된 64KB 크기의 데이터를 외부에서 아무런 제한 없이 탈취할 수 있는 취약점
    • 하트비트 : 클라이언트와 서버 간의 연결 상태 체크를 위한 OpenSSL 확장 모듈

공격 형태

  • 본 취약점은 원격에서 발생 가능한 취약점으로, 공격자는 메시지 길이 정보가 변조된 HeartBeat Request 패킷을 취약한 OpenSSL 버전을  사용하는 서버에 전송할 경우, 정해진 버퍼 밖의 데이터를 공격자에게 전송하게 되어 시스템 메모리에 저장된 개인정보 및 인증 정보 등을 탈취할 수 있음

     

    공격방법

                           ※ 노출 가능한 정보: SSL 서버 비밀키, 세션키, 쿠키  및 개인정보(ID/PW, 이메일주소 등) 등
                           ※ 노출되는 정보는 서비스 환경에 따라 다를 수 있음

  •  

     

  •  

    점검

      • OpenSSL 하트비트(HeartBeat) 활성화 여부 확인
        • 취약한 버전의 OpenSSL을 사용하는 시스템 중 HeartBeat 기능 사용 여부 확인 방법 (단, 패치된 최신 버전(1.0.1g)은 활성화 여부를 확인할 필요 없음)
        • 취약한 버전이 HeartBeat를 사용하지 않은 경우 취약점에 영향 받지 않음   

    점검2

                           ※ 명령어 실행 방법 : domain.com에 점검 대상 URL 정보로 수정

                           ※ HeartBeat 기능이 활성화되어 있는 경우 heartbeat 문자열이 검색됨

     

  •  

    점검3

                           ※ HeartBeat 기능이 활성화되지 않은 경우 heartbeat 문자열이 검색되지 않음

    점검4

      • OpenSSL에서 사용하는 소스코드 확인
        • OpenSSL 취약점이 발생된 소스코드를 열람하여 아래와 같이 보안 패치 코드가 추가되었는지 확인을 통해 취약 여부 판별
        • 패치된 버전에서는 아래와 같이 사용자 요청 메시지에 대한 길이를 검사하도록 코드가 추가됨

    소스코드

                            ※ 참고 사이트 : http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=96db902

      • KISA(한국인터넷진흥원)를 통한 취약점 여부 확인
        • 자체적인 확인이 어려울 경우 KISA 전문가로부터 점검을 요청

     

  •  

     

  •  

     

,