it-gundan.com

붕괴 및 스펙터 공격

2018 년 1 월 정식 질문은 멜트 다운 및 스펙터 공격을 공개했습니다. 다른 동일하거나 상당히 유사한 질문은이 질문의 복제본으로 닫아야합니다.

주요 관심사

  • 투기 적 실행이란 무엇이며 어떤 역할을합니까?
  • Meltdown과 Spectre의 차이점은 무엇입니까?
    • Meltdown은 어떻게 작동합니까?
    • 스펙터는 어떻게 작동합니까?
  • 자신을 어떻게 보호합니까?
  • KPTI/KAISER 패치는 컴퓨터를 보호하기에 충분합니까?
  • 이 패치는 성능 손실을 유발한다고 주장합니다. 사실입니까? 이것은 얼마를 의미합니까?
  • 성능 손실이 걱정되는 경우 새 패치를 비활성화 할 수 있습니까? 위험은 무엇입니까?
  • 어떤 플랫폼과 CPU가 취약합니까?
  • 가상 머신/컨테이너를 실행하고 있습니다. 내가 어느 정도 취약한가?
  • 컴퓨터에서 Meltdown/Spectre 공격을 탐지 할 수 있습니까?
  • 이러한 공격은 원격 코드 실행 취약점입니까?
  • 소프트웨어/웹 사이트를 패치해야합니까?
  • 웹 사이트를 방문하는 동안 영향을받을 수 있습니까?
  • 이미지로 이것을 설명 할 수 있습니까?

참고 문헌 :

165
M'vy

이 답변은 단순히 주요 관심사를 해결하려는 시도입니다. 여기에있는 세부 사항은 정확하지 않거나 완전하지 않을 수 있습니다. 가능하면 더 자세한 설명에 연결하려고합니다.

투기 적 실행이란 무엇이며 어떤 역할을합니까?

추론 적 실행은 최적화 된 최신 프로세서의 기능입니다. 프로세서 파이프 라인으로의 명령어의 병렬 처리를 허용하기 위해, 분기 예측, 값 예측 또는 메모리 프리 페치와 같은 기술을 사용하여 명령어를 미리 처리 할 수 ​​있습니다. 그런 다음 명령이 잘못된 순서로 실행될 수 있습니다.

이는 프로세서를 유휴 상태로 유지하지 않고 다음에 발생할 상황을 정확하게 예측하여 시간을 확보하는 방법입니다. 예측이 실패하면 명령이 롤백됩니다.

Meltdown과 Spectre의 차이점은 무엇입니까?

Meltdown 공격은 Spectre보다 전 세계적으로 구현하기가 더 쉽습니다.

Meltdown은 비 순차적 명령어에서 메모리 읽기를 이용하고 Specter는 분기 예측 메커니즘에 작용합니다.

Specter는 크로스/인트라 프로세스 메모리 공개를 허용하고, Meltdown은 커널 메모리를 사용자 공간 프로세스에 공개 할 수있게합니다 (일반적으로 액세스 할 수 없음).

Meltdown에는 알려진 소프트웨어 완화 기능이 있습니다.

둘 다 캐시 사이드 채널 공격에 의존하는데, 이는 특정 메모리 블록에 액세스 할 때 다른 방법으로 알려지지 않은 정보를 추론 할 때의 타이밍 차이를 측정 한 것입니다.

Meltdown은 어떻게 작동합니까?

간단히 말해서 Meltdown은 프로세서가 사용자 공간 프로그램이 액세스 할 수없는 메모리를로드하도록 요청함으로써 작동합니다. 메모리는 비 순차적으로 읽혀지고 캐시에 저장됩니다. 캐시에서 사이드 채널 공격 (실행 시간 측정)을 사용하면 해당 메모리 위치의 값을 유추 할 수 있습니다.

스펙터는 어떻게 작동합니까?

스펙터는 다른 레벨에서 작동하며 사용자 공간에서 커널 공간 데이터에 액세스 할 수 없습니다. 이 공격에서 공격자는 추측 실행을 예측하여 명령을 잘못 실행합니다. 간단히 말해서 예측자는 특정 분기 결과 (예 :-> true)를 예측하도록 강요되며, 이로 인해 희생자 프로세스가 일반적으로 요청하지 않은 범위를 벗어난 메모리 액세스를 요구하여 잘못된 추론 실행이 발생합니다. 그런 다음 사이드 채널에서이 메모리의 값을 검색합니다. 이러한 방식으로, 대상 프로세스에 속하는 메모리가 악성 프로세스로 유출됩니다.

자신을 어떻게 보호합니까?

운영 체제 및/또는 하이퍼 바이저를 업데이트하십시오.

기본 운영 체제 배포자는 KPTI/KAISER 동작을 구현하기위한 패치를 이미 릴리스했습니다. 이는 프로세서가 작동하는 데 꼭 필요한 커널의 사용자 메모리 매핑을 제거하여 공격 영역을 줄이는 수단입니다.

마이크로 코드 (펌웨어) 업데이트는 언젠가 릴리스 될 수 있습니다.

KPTI/KAISER 패치는 컴퓨터를 보호하기에 충분합니까?

아니요. Meltdown 만 다루고 있습니다.

문제는 프로세서의 아키텍처 설계에 있습니다. 문제를 완전히 (또는 Spectre의 경우 부분적으로) 해결하려면 최소한 펌웨어 업데이트가 필요합니다. 이 설계 결함이없는 프로세서를 최신 모델로 교체해야 할 수도 있습니다.

이 패치는 성능 손실을 유발한다고 주장합니다. 사실입니까? 이것은 얼마를 의미합니까?

예. 그러나 발생하는 손실은 소프트웨어 워크 플로에 따라 다릅니다. 시스템 호출이 소프트웨어에 의존하는 방식에 따라 5 %에서 30 %까지 손실이 발생할 수 있습니다. 데이터베이스와 같이 커널에서 사용자 공간으로의 전환이 많은 벤치 마크가 가장 큰 영향을받는 것으로보고되었습니다.

아직 조사 중이며 예비 보고서가 작성되었습니다 (링크 참조). 그러나 응용 프로그램에 따라 영향이 다르므로 일반적인 벤치 마크에 의존하지 않고 환경에 대한 성능 영향을 테스트해야합니다.

예비 결과 (독립 ??) :

공식 발표 :

성능 손실이 걱정되면 새 패치를 비활성화해야합니까? 위험은 무엇입니까?

아니요. 가능하지만 반드시 권장하지는 않습니다.

우선, 다른 사람의 데이터를 관리하는 경우 클라이언트를 데이터 도난에 취약하게 만듭니다.

그런 다음 성능 손실을 여전히 적절하게 평가해야하며 특정 워크 플로에 따라 크게 달라집니다. 성능이 30 % 나 떨어지지 않았습니다.

KPTI를 비활성화하면 기밀 데이터가 유출 될 위험이 있습니다.

어떤 플랫폼과 어떤 CPU가 취약합니까?

Intel CPU 대부분은 두 가지 공격에 취약합니다. AMD CPU는 Spectre에 의해서만 영향을받는 것 같습니다 . 일부 ARM Cortex 프로세서 영향을받는 반면, 다른 모든 ARM 프로세서는 영향을받지 않습니다. POWER 7, POWER 8 및 POWER 9의 PowerPC 프로세서 가족 영향을 받고 다른 사람들도 영향을받을 수 있습니다.

(자세한 내용은 링크 참조).

가상 머신/컨테이너를 실행하고 있는데 어느 정도 취약합니까?

Steffen Ullrich의 답변에 따라

  • 멜트 다운 공격은 VM을 교차하지 않고 로컬 프로세스에 커널 메모리 만 누출시킵니다.
  • Spectre는 여러 VM에서 작동 할 수 있습니다.

또한 컨테이너가 호스트 커널에 의존하기 때문에 Steffen 다시 부터 Meltdown 및 Specter는 컨테이너와 함께 작동합니다.

컴퓨터에서 Meltdown/Spectre 공격을 탐지 할 수 있습니까?

가능하다면 매우 어렵다.

Meltdown과 Specter는 항상 무해한 프로그램에 의해 트리거되는 CPU의 설계된 속성을 사용하여 악의적 인 프로그램을 양성 프로그램과 구별하기 어렵게 만듭니다.

이러한 공격은 원격 코드 실행 취약점입니까?

아닙니다.

이 공격을 적용하려면 공격자가 대상 호스트에서 코드를 실행할 수 있어야합니다. 그러나 파일 업로드 또는 사이트 간 스크립팅 익스플로잇과 같은 다른 공격 경로와 결합 된 경우 원격으로 실행할 가능성이 있습니다.

소프트웨어/웹 사이트를 패치해야합니까?

이상적인 세상에서는 그렇지 않습니다.

실제로 일부 브라우저 공급 업체는 이미 부 채널 공격을 완화하기 위해 시간 정확도 측정 감소를 구현했습니다. KPTI는 이미 네이티브 시스템 호출을 사용하는 프로그램에 대해 충분한 수정을 제공해야합니다.

웹 사이트를 방문하는 동안 영향을받을 수 있습니까?

예, Spectre에 대한 Javascript 익스플로잇의 개념 증명이 이미 있습니다 (전용).

이미지로 이것을 설명 할 수 있습니까?

아니요,하지만 랜달 먼로는

XKCD #1938 - Meltdown and Spectre

[출처 XKCD : https : //xkcd.com/1938/ ]

119
M'vy

간단한 팁

M'vy 's excellent answer 외에도이 질문에 답하고 싶습니다.

안전을 위해 무엇을 할 수 있습니까?

  • Spectre, Meltdown 및 Rowhammer는 CPU 개념 버그이므로 소프트웨어 업데이트로 올바르게 패치 할 수 없습니다. 실제 software 패치는 대부분 시스템 (Windows, Linux of MacOS)의 전반적인 성능을 저하시킵니다.
  • 이 버그들은 격리에도 관련이 있습니다. 그것을 아는 것은:

    모두 격리 기능 (sandbox, containers, virtual Hostusers privileges) 이제주의를 기울여야합니다!

    올바른 사고 방식입니다!

  • 다음과 같은 오래된 보안 습관이 유용합니다.
    • 모든 민감한 응용 프로그램을 물리적으로 전용 호스트에 배치
    • 각 민감한 고객 (제공자)에 대해 하나의 물리적 호스트가 있어야합니다.
    • 백업과 같은 중요한 데이터와 암호 또는 비밀과 같은 중요한 데이터를 분리 된 (전용) 호스트에 저장합니다.
    • 전용 호스트에서 네트워크를 찾아보고 전체 데스크톱 재부팅 이상 : 다른 (전용) 호스트에서 뱅킹을 수행하십시오!

당신이 isolation를 사용하면 다른 하드웨어 호스트, 추측 적 실행 그리고 최신 CPU에서 제공하는 다른 Nice 기능들 (아직 알려지지 않은 다른 버그들도 포함)을 안전하게 사용할 수 있습니다. 시스템 성능을 저하시킬 필요가 없습니다!

(그렇다면 업그레이드가 더 좋은 방법이 아닐 수도 있습니다 ... ;-)

하드웨어 분리/전용이 유용할까요?

2013 년 4 월 17 일에 발행 된이 여행을보십시오! (5 년 전 근처)

출처 : xkcd.com/12

XKCD 1200

7
F. Hauri

이 답변은 Spectre Next Generation 공격에만 해당되며 새로운 정보가 제공되는 즉시 업데이트됩니다.

5 월 22 일 업데이트 :

첫 번째 패치가 다가오고 있으며 새로운 취약점에 대한 추가 정보가 있습니다.

인텔은 2018 년 5 월 21 일 this 문을 발표하여 스펙터 변형 3a 및 4에 대한 개요를 제공합니다.
각 CVE는 다음과 같습니다.

  • CVE-2018-3639 -예측 저장소 우회 (SSB) – 변형 4라고도 함
  • CVE-2018-364 -RSRE (Rogue System Register Read) – 변형 3a라고도 함

지난 10 년 동안 제조 된 거의 모든 인텔 프로세서가이 두 가지 취약점의 영향을받습니다. 마이크로 코드 업데이트는 OS 공급 업체에서 제공되므로 곧 고객에게 제공 될 것입니다. Linux 사용자 should 최근에 커널을 업데이트하고 배포판에서 리포 틀린을 사용하는 경우 안전합니다.[인용 필요]

기술적 세부 사항에 대해 더 자세히 알고 싶다면 Intel 's whitepaper Specter and Meltdown 공격 이후에 공개 된 추론 적 실행 측 채널을 분석하여 변형 3a 및 4를 포함하도록 확장되었습니다. 완화에 관한 이 백서 의 경우에도 마찬가지입니다.

더 읽을 거리 :
Jann Horn의 원본 공개 메일
AMD는 SSB에 취약한 제품이 없음
ARM 블로그 게시물
데비안 보안 추적기
Intel 블로그Microsoft의 SSB 분석
Red Hat CVE DB
Red Hat 취약성 응답
SUSE 보안 블로그
우분투 보안 공지
미국 CERT 취약점 참고
VMWare Knowdlege Base article


5 월 7 일 업데이트 :

인텔이 필요한 마이크로 코드 업데이트 개발을 완료 할 수 없었기 때문에 기술적 인 세부 사항의 계획된 게시는 적어도 5 월 21 일까지 그리고 아마도 더 오래 지연되었습니다.
그러나 오늘 발표 된 새로운 정보 중 8 가지 새로운 취약점 중 2 가지 이상에 영향을받는 프로세서 목록이 있습니다.

  • 2010 년 이후 모든 i-X 프로세서 및 해당 Xeon 파생 제품 ( '6'에 설명 된 취약점의 영향을 받음)
  • 원자 기반 펜티엄, 셀러론 및 Atom 2013 년 이후 프로세서

이러한 첫 번째 프로세서 유형은 the 데스크톱 PC, 노트북 및 서버에서 일반적으로 사용됩니다. 두 번째는 태블릿, 스마트 폰 및 내장 장치에 사용됩니다.
아직 CVE와 눈에 띄는 이름이 없습니다.


5 월 3 일 IT 전문가 인 독일 잡지 c't는 연구원들이 Intel CPU에서 Spectre와 유사한 공격을 가능하게하는 여덟 가지 추가 취약점을 발견했다고보고했습니다. 이러한 모든 새로운 취약점은 Spectre V1 및 V2에서 악용 된 취약점과 동일한 설계 결함을 기반으로합니다.

이러한 취약점 중 하나를 다루는 첫 번째 기술 및 심층 보고서는 5 월 7 일 Google Project Zero에서 발표 될 것입니다. 그러나 다른 연구원이나 독립 기관이 더 일찍 보고서를 발표 할 수도 있습니다.

우리가 지금까지 알고있는 것 :

  1. 8 가지 새로운 취약점이 있습니다.
  2. 각각은 자체 CVE를받습니다.
  3. 각각에는 고유 한 패치가 필요합니다. 지금까지 패치 개발 과정에 대한 지식은 거의 없습니다. Ctt에 따르면 인텔은 두 가지 패치를 계획하고있다. 하나는 5 월과 다른 하나는 8 월이다.
  4. 영향을받는 프로세서 목록이 아직 없습니다. 인텔 프로세서가 대부분 영향을받습니다. 일부 ARM CPU도 영향을받는 것 같습니다. 지금까지 AMD CPU가 영향을 받는지 확실하지 않습니다.
  5. 인텔은 8 가지 취약점 중 4 가지를 "높은 위험"으로 분류하고 다른 4 가지는 "중간 위험"으로 분류합니다.
  6. 새로운 취약점 중 하나는 매우 쉬운 크로스 시스템 공격을 허용합니다. 공격자는 호스트 VM 또는 소스 VM에서 다른 VM을 공격 할 수 있습니다. 이는 클라우드 공급자에게 특히 위험합니다. 이와 같은 공격은 이전에 가능했지만 매우 복잡했습니다. 새로운 취약점은 악용하기 쉬워 보입니다. 다른 모든 공격 경로는 Spectre V1 및 V2와 매우 유사합니다.

결론 : 우리는 지금까지 거의 아는 것이 없으며 우리가 아는 것은 단지 새로운 취약점에 대한 추상적 인 설명 일뿐입니다. Spectre와 Meltdown은 매우 복잡한 공격이며 근본적인 취약점은 그다지 복잡하지 않습니다. 모든 기술적 인 세부 사항은 앞으로 몇 주 동안 서서히 담론으로 흘러 들어갑니다. 그러나 CPU 벤더들에게 정보가 제공되고 있으며 그들과 커널 개발자들은 이미 솔루션을 개발하고있는 것 같습니다. 인내심을 가지십시오.

출처 : https://www.heise.de/ct/artikel/Super-GAU-fuer-Intel-Weitere-Spectre-Luecken-im-Anflug-4039134.html

5
Tom K.