"CPU게이트"의 두 판 사이의 차이

DH 교육용 위키
이동: 둘러보기, 검색
139번째 줄: 139번째 줄:
 
구글의 보안 조직, 프로젝트 제로에 소속된 연구원 Jann Horn은 2017년 4월부터 프로세서 칩셋들의 메뉴얼들을 읽기 시작했음. 원래의 목적은 그가 만든 수치 처리 코드를 컴퓨터 하드웨어가 처리할 수 있는지 확인하기 위한 것이었으나, 어느 순간 칩이 추측 실행을 처리하는 방식과 요구된 데이터를 가져오는 것에 주의를 기울이게 된 Horn은, 그들이 작업하던 코드 패턴이 잠재적으로 숨겨진 데이터를 유출할 수도 있다는 것을 알게 되었고 취약점으로 이어지는 추가적인 조사가 필요할 것이라 생각함. 그라츠 공대의 팀을 포함해 취리히의 구글 연구진들과 단계적인 절차를 논의했는데, 이들은 이후 Horn과 취약점을 기술하는 문서를 공동 집필하게 됨. 인텔, ARM, AMD 등 주요 하드웨어 제조사들과의 물밑 접촉은 6월부터 시작되었으나 제대로 된 대책이 마련되기까지 작업을 비밀리에 진행할 수밖에 없었고, 이러한 이유로 실제 취약점의 공개는 엠바고가 풀린 다음 해인 2018년 1월에 이루어졌음. 취약점의 공개는 다음의 과정들을 포함하였음.
 
구글의 보안 조직, 프로젝트 제로에 소속된 연구원 Jann Horn은 2017년 4월부터 프로세서 칩셋들의 메뉴얼들을 읽기 시작했음. 원래의 목적은 그가 만든 수치 처리 코드를 컴퓨터 하드웨어가 처리할 수 있는지 확인하기 위한 것이었으나, 어느 순간 칩이 추측 실행을 처리하는 방식과 요구된 데이터를 가져오는 것에 주의를 기울이게 된 Horn은, 그들이 작업하던 코드 패턴이 잠재적으로 숨겨진 데이터를 유출할 수도 있다는 것을 알게 되었고 취약점으로 이어지는 추가적인 조사가 필요할 것이라 생각함. 그라츠 공대의 팀을 포함해 취리히의 구글 연구진들과 단계적인 절차를 논의했는데, 이들은 이후 Horn과 취약점을 기술하는 문서를 공동 집필하게 됨. 인텔, ARM, AMD 등 주요 하드웨어 제조사들과의 물밑 접촉은 6월부터 시작되었으나 제대로 된 대책이 마련되기까지 작업을 비밀리에 진행할 수밖에 없었고, 이러한 이유로 실제 취약점의 공개는 엠바고가 풀린 다음 해인 2018년 1월에 이루어졌음. 취약점의 공개는 다음의 과정들을 포함하였음.
  
* 보고서 공개 : <Spectre Attacks: Exploiting Speculative Execution>, <Meltdown: Reading Kernel Memory from User Space>
+
* 보고서 공개
* CVE ID 발행 : CVE-2017-5753, CVE-2017-5715, CVE-2017-5754의
+
** 스펙터 : <Spectre Attacks: Exploiting Speculative Execution>
 +
** 멜트다운 : <Meltdown: Reading Kernel Memory from User Space>
 +
* CVE ID 발행
 +
** 스펙터 : CVE-2017-5753, CVE-2017-5715
 +
** 멜트다운 : CVE-2017-5754
  
 
===공격 원리 파헤치기===
 
===공격 원리 파헤치기===

2019년 6월 21일 (금) 19:01 판

주제

Spectre&Meltdown.jpg

  • 2018년초 발생한 최대의 하드웨어 보안 이슈인 'CPU게이트'.

기획의도

평소에 관심 있던 분야인 하드웨어 보안과 관련해 최근 가장 큰 영향을 미친 사건, CPU게이트의 전모를 세 부분으로 나누어 알아보고자 함.

  • 스펙터와 멜트다운 취약점의 발견과 공론화 과정.
  • 하드웨어 관점에서의, 스펙터와 멜트다운 공격의 원리.
  • 스펙터와 멜트다운 공격에 영향받는 제품군, 그리고 사건이 '인텔 CPU게이트'라고도 불리는 이유.

온톨로지


클래스(Class)

클래스 설명 노드
아키텍처 하드웨어 제조사의 마이크로아키텍처 중, 사건에서 논의되는 아키텍처들만 모아 이 클래스에 정리하였음. 아이비브릿지, 하스웰, 브로드웰, 스카이레이크, 카비레이크, 젠, Cortex-A57.
하드웨어 프로세서 내에서 명령어 처리에 참여하는 부분들, 그 중에서도 스펙터와 멜트다운 공격이 목표로 삼는 부분들을 클래스로 정리하였음. 프로세서, 캐시, 분기 예측기, 리오더 버퍼, 명령어 대기열.
기술 현대 프로세서는 성능 향상을 목표로 하는 수많은 기술들의 산물임. 스펙터와 멜트다운 공격은 다음 주요 기술들의 취약점을 노림. 분기 예측, 추측 실행, 비순차적 명령어 처리.
공격 CPU게이트의 중심에 있는 스펙터, 멜트다운 공격과, 공격 과정에서 부가적으로 활용되는 다른 공격 기법들을 함께 정리하였음. 스펙터, 멜트다운, ROP, 부채널 공격.
취약점 마이터 코퍼레이션이 감독하는 취약점 데이터베이스인 CVE에 등록된 스펙터와 멜트다운 취약점들을 이 클래스에 정리하였음. CVE-2017-5753, CVE-2017-5715, CVE-2017-5754.
문서 스펙터와 멜트다운 취약점 공개와 함께 배포된 문서들을 모아두었음. Spectre Attacks: Exploiting Speculative Execution, Meltdown: Reading Kernel Memory from User Space.
인물 스펙터와 멜트다운 취약점에 직간접적으로 관련되는 인물들을 모아두었음. Jann Horn, Robert Tomasulo.
조직 인물이 속한 조직, 그리고 사태에 영향받는 하드웨어 제조사들을 이 클래스에 정리하였음. 구글 프로젝트 제로, 인텔, AMD, ARM.

관계성(Relation)

  • 는 -를 적용한다
    • 설명: 마이크로아키텍처가 적용하는 프로세서 기술을 나타낸다.
    • 해당노드:
      1. 아이비브릿지 → 분기 예측
      2. 하스웰 → 분기 예측
      3. 브로드웰 → 분기 예측
      4. 스카이레이크 → 분기 예측
      5. 카비레이크 → 분기 예측
      6. 젠 → 분기 예측
      7. Cortex-A57 → 분기 예측
      8. 아이비브릿지 → 추측 실행
      9. 하스웰 → 추측 실행
      10. 브로드웰 → 추측 실행
      11. 스카이레이크 → 추측 실행
      12. 카비레이크 → 추측 실행
      13. 젠 → 추측 실행
      14. Cortex-A57 → 추측 실행
      15. 아이비브릿지 → 비순차적 명령어 처리
      16. 하스웰 → 비순차적 명령어 처리
      17. 브로드웰 → 비순차적 명령어 처리
      18. 스카이레이크 → 비순차적 명령어 처리
      19. 카비레이크 → 비순차적 명령어 처리
      20. 젠 → 비순차적 명령어 처리
      21. Cortex-A57 → 비순차적 명령어 처리
  • 는 -가 개발했다
    • 설명: 마이크로아키텍처를 개발한 하드웨어 제조사를 나타낸다.
    • 해당노드:
      1. 아이비브릿지 → 인텔
      2. 하스웰 → 인텔
      3. 브로드웰 → 인텔
      4. 스카이레이크 → 인텔
      5. 카비레이크 → 인텔
      6. 젠 → AMD
      7. Cortex-A57 → ARM
  • 는 -의 구현이다
    • 설명: 하드웨어 부분이 구현하는 프로세서 기술을 나타낸다.
    • 해당노드:
      1. 분기 예측기 → 분기 예측
      2. 리오더 버퍼 → 비순차적 명령어 처리
      3. 명령어 대기열 → 비순차적 명령어 처리
  • 는 -의 일부이다
    • 설명: 하드웨어 부분이 속하는 하드웨어를 나타낸다.
    • 해당노드:
      1. 캐시 → 프로세서
      2. 분기 예측기 → 프로세서
      3. 리오더 버퍼 → 프로세서
      4. 명령어 대기열 → 프로세서
  • 는 -를 공격한다
    • 설명: 공격이 목표로 삼는 취약점, 그리고 하드웨어 부분을 나타낸다.
    • 해당노드:
      1. 스펙터 → CVE-2017-5753
      2. 스펙터 → CVE-2017-5715
      3. 멜트다운 → CVE-2017-5754
      4. 부채널 공격 → 캐시
  • 는 -의 취약점이다
    • 설명: 취약점을 내포하는 하드웨어 기술을 나타낸다.
    • 해당노드:
      1. CVE-2017-5753 → 분기 예측
      2. CVE-2017-5753 → 추측 실행
      3. CVE-2017-5715 → 분기 예측
      4. CVE-2017-5715 → 추측 실행
      5. CVE-2017-5754 → 비순차적 명령어 처리
  • 는 -를 활용한다
    • 설명: 취약점의 노출에 부가적으로 활용되는 공격을 나타낸다.
    • 해당노드:
      1. CVE-2017-5753 → 부채널 공격
      2. CVE-2017-5715 → 부채널 공격
      3. CVE-2017-5715 → ROP
      4. CVE-2017-5754 → 부채널 공격
  • 는 -가 최초 발견했다
    • 설명: 취약점을 최초로 발견한 인물을 나타낸다.
    • 해당노드:
      1. CVE-2017-5753 → Jann Horn
      2. CVE-2017-5715 → Jann Horn
      3. CVE-2017-5754 → Jann Horn
  • 는 -가 작성했다
    • 설명: 문서의 작성자를 나타낸다.
    • 해당노드:
      1. Spectre Attacks: Exploiting Speculative Execution → Jann Horn
      2. Spectre Attacks: Exploiting Speculative Execution → 구글 프로젝트 제로
      3. Meltdown: Reading Kernel Memory from User Space → Jann Horn
      4. Meltdown: Reading Kernel Memory from User Space → 구글 프로젝트 제로
  • 는 -를 기술한다
    • 설명: 문서가 기술하는 대상을 나타낸다.
    • 해당노드:
      1. Spectre Attacks: Exploiting Speculative Execution → 스펙터
      2. Meltdown: Reading Kernel Memory from User Space → 멜트다운
  • 는 -의 소속이다
    • 설명: 조직에 소속된 구성원을 나타낸다.
    • 해당노드:
      1. 구글 프로젝트 제로 → Jann Horn
  • 는 -가 도입했다
    • 설명: 하드웨어 기술을 도입한 인물을 나타낸다.
    • 해당노드:
      1. 비순차적 명령어 처리 → Robert Tomasulo
  • 는 -에게 무력하다
    • 설명: 공격이 무력한 마이크로아키텍처를 나타낸다..
    • 해당노드:
      1. 멜트다운 → 젠

스토리

스펙터와 멜트다운의 발견


구글의 보안 조직, 프로젝트 제로에 소속된 연구원 Jann Horn은 2017년 4월부터 프로세서 칩셋들의 메뉴얼들을 읽기 시작했음. 원래의 목적은 그가 만든 수치 처리 코드를 컴퓨터 하드웨어가 처리할 수 있는지 확인하기 위한 것이었으나, 어느 순간 칩이 추측 실행을 처리하는 방식과 요구된 데이터를 가져오는 것에 주의를 기울이게 된 Horn은, 그들이 작업하던 코드 패턴이 잠재적으로 숨겨진 데이터를 유출할 수도 있다는 것을 알게 되었고 취약점으로 이어지는 추가적인 조사가 필요할 것이라 생각함. 그라츠 공대의 팀을 포함해 취리히의 구글 연구진들과 단계적인 절차를 논의했는데, 이들은 이후 Horn과 취약점을 기술하는 문서를 공동 집필하게 됨. 인텔, ARM, AMD 등 주요 하드웨어 제조사들과의 물밑 접촉은 6월부터 시작되었으나 제대로 된 대책이 마련되기까지 작업을 비밀리에 진행할 수밖에 없었고, 이러한 이유로 실제 취약점의 공개는 엠바고가 풀린 다음 해인 2018년 1월에 이루어졌음. 취약점의 공개는 다음의 과정들을 포함하였음.

  • 보고서 공개
    • 스펙터 : <Spectre Attacks: Exploiting Speculative Execution>
    • 멜트다운 : <Meltdown: Reading Kernel Memory from User Space>
  • CVE ID 발행
    • 스펙터 : CVE-2017-5753, CVE-2017-5715
    • 멜트다운 : CVE-2017-5754

공격 원리 파헤치기


"인텔" CPU게이트