Linux 시스템에서 Spectre 및 Meltdown 취약점을 완화하는 방법은 무엇입니까?


34

보안 연구원들은 Project Zero 에 프로그램이 다른 프로그램의 메모리에서 정보를 훔칠 수있는 Specter and Meltdown이라는 새로운 취약점 을 발표했습니다 . 인텔, AMD 및 ARM 아키텍처에 영향을줍니다.

이 결함은 JavaScript 웹 사이트를 방문하여 원격으로 악용 될 수 있습니다. 기술 정보는 redhat 웹 사이트 , Ubuntu 보안 팀 에서 찾을 수 있습니다 .

추측 실행 측 채널 공격을 통한 정보 유출 (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754 일명 스펙터 및 멜트 다운)

새로운 클래스의 사이드 채널 공격이 인텔, AMD 및 ARM의 프로세서를 포함한 대부분의 프로세서에 영향을주는 것으로 밝혀졌습니다. 이 공격을 통해 악의적 인 사용자 공간 프로세스가 게스트의 커널 메모리 및 악의적 인 코드를 읽고 하이퍼 바이저 메모리를 읽을 수 있습니다. 이 문제를 해결하려면 Ubuntu 커널 및 프로세서 마이크로 코드에 대한 업데이트가 필요합니다. 이 업데이트는 향후 Ubuntu 보안 공지에서 발표 될 예정입니다.

JavaScript에서의 구현 예

개념 증명으로, JavaScript 코드는 Google Chrome 브라우저에서 실행될 때 JavaScript가 실행되는 프로세스에서 개인 메모리를 읽을 수 있도록 작성되었습니다.

내 시스템은 스펙터 취약점의 영향을받는 것 같습니다. 이 개념 증명 ( spectre.c) 을 편집하고 실행했습니다 .

시스템 정보:

$ uname -a
4.13.0-0.bpo.1-amd64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux

$ cat /proc/cpuinfo
model name  : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz

$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516

Linux 시스템에서 Spectre 및 Meldown 취약성을 완화하는 방법은 무엇입니까?

추가 정보 : Meltdown을 사용하여 실시간으로 암호를 훔치기 .

최신 정보

데비안 스트레치에서 cve-2017-5754를 완화 할 수있는 보안 업데이트가 제공되므로 @Carlos Pasqualini 답변 다음 커널 버전으로 Spectre & Meltdown Checker전환 한 후 사용 4.9.0-5:

CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel:  NO  (only 31 opcodes found, should be >= 70)
> STATUS:  VULNERABLE  (heuristic to be improved when official patches become available)

CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
*   Hardware (CPU microcode) support for mitigation:  NO 
*   Kernel support for IBRS:  NO 
*   IBRS enabled for Kernel space:  NO 
*   IBRS enabled for User space:  NO 
* Mitigation 2
*   Kernel compiled with retpoline option:  NO 
*   Kernel compiled with a retpoline-aware compiler:  NO 
> STATUS:  VULNERABLE  (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI):  YES 
* PTI enabled and active:  YES 
> STATUS:  NOT VULNERABLE  (PTI mitigates the vulnerability)

2018 년 1 월 25 일 업데이트

spectre-meltdown-checker스크립트는 공식적으로 debian 패키지로 제공되며 백 포트 저장소, Buster 및 Sid를 통해 Debian Stretch에서 사용할 수 있습니다 .

2018 년 5 월 22 일 업데이트

SSB (추측 저장 우회) – 변형 4라고도 함

모든 이전 메모리 쓰기의 주소가 알려지기 전에 메모리 실행의 추론 적 실행 및 추론 적 실행을 이용하는 마이크로 프로세서를 가진 시스템은 사이드 채널 분석을 통해 로컬 사용자 액세스 권한을 가진 공격자에게 정보의 무단 공개를 허용 할 수 있습니다.

RSRE (Rogue System Register Read) – 변형 3a라고도 함

추론 적 실행을 활용하고 시스템 레지스터의 추론 적 판독을 수행하는 마이크로 프로세서가있는 시스템은 사이드 채널 분석을 통해 로컬 사용자 액세스 권한을 가진 공격자에게 시스템 매개 변수를 무단으로 공개 할 수 있습니다.

2018 년 7 월 27 일 편집

NetSpectre : 네트워크를 통한 임의 메모리 읽기

이 백서에서는 Specter 변형 1을 기반으로하는 새로운 공격 인 NetSpectre를 제시합니다. 따라서 대상 장치에서 공격자 제어 코드가 필요하지 않으므로 수십억 개의 장치에 영향을줍니다. 로컬 스펙터 공격과 마찬가지로 원격 공격에는 대상 코드에 스펙터 가젯이 있어야합니다. 노출 된 네트워크 인터페이스 또는 API에 필요한 Spectre 가젯이 포함 된 시스템은 일반적인 원격 Spectre 공격으로 공격을받을 수 있으므로 네트워크를 통해 임의의 메모리를 읽을 수 있습니다. 공격자는 일련의 조작 된 요청 만 피해자에게 보내고 응답 시간을 측정하여 희생자의 메모리에서 비밀 값을 유출합니다.



1
이 Q가 모든 Linux에 적용되도록 데비안 태그를 제거했습니다 (제목에 따라). 데비안에 초점을 맞추려는 의도라면 되 돌리십시오.
Jeff Schaller

답변:


12

Alan Cox는 AMD 블로그 ( https://www.amd.com/en/corporate/speculative-execution) 에서 링크를 공유했습니다.

변형 1 : 경계 확인 우회

소프트웨어 / OS 업데이트로 해결되어 시스템 공급 업체 및 제조업체에서 제공합니다. 무시할만한 성능 영향이 예상됩니다.

변형 2 : 분기 대상 주입

AMD 아키텍처의 차이점은이 변종의 악용 위험이 거의 없음을 의미합니다. 변형 2에 대한 취약점은 현재까지 AMD 프로세서에서 입증되지 않았습니다.

변형 3 : 불량 데이터 캐시로드

AMD 아키텍처 차이로 인한 AMD 취약점이 없습니다.

그래도 타사의 AMD의 진술을 확인하는 것이 좋습니다.

영향을받는 시스템의 '완화'에는 새로운 커널과 재부팅이 필요하지만 많은 배포판에는 수정 사항이 포함 된 패키지가 아직 릴리스되지 않았습니다.

데비안 :

내가 찾은 다른 정보 출처 :


12
모든 AMD 정보는 CPU가 인텔 코어 인 질문자를 도울 수 없습니다.
JdeBP

4
Linux 커널의 경우 Greg Kroah-Hartman의 게시물 : kroah.com/log/blog/2018/01/06/meltdown-status
alanc

위에 링크 된 데비안 페이지 (및 링크 된 페이지)에 따르면 담당 공급 업체가 마이크로 코드를 게시 할 때 커널 패치가 배포되는 것으로 보입니다. 그러나 security-tracker.debian.org/tracker/CVE-2017-5754 (현재까지 고정 된 유일한 버전)에서는 안정적이고 불안정한 릴리스에서만 수정 사항을 사용할 수있는 것으로 보입니다. 우리가 oldstable ( "jessie")에 대한 수정을 기대할 수 있는지 아는 사람이 있습니까? 이 문제에 관해 데비안 또는 데비안 보안 팀의 진술을 찾지 못했습니다 ...
Shevek

11

2018 년 1 월 27 일 인텔 마이크로 코드, 일부 시스템 중단

추측 실행 분기 보안 취약점을 해결하기 위한 인텔 마이크로 코드 업데이트 2018-01-08 은 일부 시스템을 손상 시켰 습니다. 이것은 1 월 8 일부터 1 월 21 일까지 많은 우분투 시스템에 영향을 미쳤습니다. 2018 년 1 월 22 일 우분투는 2017-07-07부터 이전 마이크로 코드를 되 돌리는 업데이트를 발표했습니다.

업데이트 관련 문제가 발생하여 Ubuntu를 다시 설치하고 2018-01-08과 2018-01-22 사이의 업데이트를 해제 한 경우 Ubuntu 자동 업데이트를 다시 시도 할 수 있습니다.

4.14.14 및 4.9.77의 2018 년 1 월 16 일 업데이트 스펙터

이미 커널 버전을 4.14.13 또는 4.9.76를 실행하는 경우 나는 그것을 설치하는 생각할 필요 없다 생각처럼 4.14.14그리고 4.9.77그들은 며칠에서 나올 때 유령 보안 구멍을 완화 할 수 있습니다. 이 수정의 이름은 Retpoline 이며 이전에 추측 한 심각한 성능 저하가 없습니다.

Greg Kroah-Hartman은 현재 Linux 4.9 및 4.14 포인트 릴리스에 대한 최신 패치를 발송했으며 여기에는 Retpoline 지원이 포함됩니다.

이 X86_FEATURE_RETPOLINE은 모든 AMD / Intel CPU에서 활성화됩니다. 완전한 지원을 위해서는 -mindirect-branch = thunk-extern 지원을 포함하는 최신 GCC 컴파일러로 커널을 빌드해야합니다. GCC 변경은 어제 GCC 8.0에 착륙했으며 GCC 7.3으로 백 포트 될 가능성이 있습니다.

Retpoline 지원을 비활성화하려는 경우 패치 된 커널을 noretpoline으로 부팅 할 수 있습니다 .

JavaScript에 대한 세부 정보를 얻지 않고 Meltdown 구멍을 즉시 피하는 방법은 다음과 같습니다 (2018 년 1 월 10 일 기준, 스펙터 보호).

2018 년 1 월 12 일 업데이트

Spectre의 초기 보호 기능 은 여기에 있으며 앞으로 몇 주 및 몇 개월 내에 개선 될 것입니다.

Linux 커널 4.14.13, 4.9.76 LTS 및 4.4.111 LTS

Softpedia 기사에서 :

Linux 커널 4.14.13, 4.9.76 LTS 및 4.4.111 LTS는 이제 kernel.org에서 다운로드 할 수 있으며 스펙터 보안 취약점에 대한 추가 수정 사항과 Linux 4.14.12, 4.9의 일부 회귀를 포함합니다. 일부보고 된 사소한 문제로 .75 LTS 및 4.4.110 LTS 커널이 지난 주에 릴리스되었습니다.

이러한 문제는 현재 해결 된 것으로 보이므로 더 많은 x86 업데이트, 일부 PA-RISC, s390 및 PowerPC (PPC) 수정, 다양한 개선 사항 등 Linux 기반 운영 체제를 오늘 출시 된 새로운 커널 버전으로 업데이트하는 것이 안전합니다. 드라이버 (Intel i915, crypto, IOMMU, MTD) 및 일반적인 mm 및 코어 커널 변경.

많은 사용자가 2018 년 1 월 4 일과 2018 년 1 월 10 일에 Ubuntu LTS 업데이트에 문제가있었습니다 . YMMV4.14.13 지만 아무런 문제없이 며칠 동안 사용 했습니다 .


2018 년 1 월 7 일 업데이트

Greg Kroah-Hartman 은 어제 Meltdown 및 Spectre Linux Kernel 보안 취약점에 대한 상태 업데이트 를 작성했습니다 . 일부는 그를 리눅스 세계에서 Linus 바로 옆에서 두 번째로 강력한 인물이라고 부를 수도 있습니다. 이 기사는 대부분의 우분투 사용자가 가지고있는 안정적인 커널 (아래에서 논의 됨)과 LTS 커널에 대해 설명합니다.


Linux 커널 4.14.11, 4.9.74, 4.4.109, 3.16.52 및 3.2.97 패치 멜트 다운 결함

에서 이 문서 :

사용자는 즉시 시스템을 업데이트해야합니다

2018 년 1 월 4 일 01:42 GMT · 마리우스 네스터

Linux 커널 유지 관리인 Greg Kroah-Hartman과 Ben Hutchings는 최신 버전의 Linux 4.14, 4.9, 4.4, 3.16, 3.18 및 3.12 LTS (Long Term Support) 커널 시리즈를 출시하여 가장 현대에 영향을 미치는 두 가지 중요한 보안 결함 중 하나를 패치했습니다. 프로세서.

Linux 4.14.11, 4.9.74, 4.4.109, 3.16.52, 3.18.91 및 3.2.97 커널은 이제 kernel.org 웹 사이트에서 다운로드 할 수 있으며 사용자는 GNU / Linux 배포판을 업데이트해야합니다. 커널 시리즈를 즉시 실행하는 경우이 새 버전으로 왜 업데이트해야합니까? 그들은 분명히 Meltdown이라는 중요한 취약점을 패치하기 때문입니다.

앞서보고 한 것처럼 Meltdown과 Specter는 지난 25 년 동안 출시 된 최신 프로세서 (CPU)로 구동되는 거의 모든 장치에 영향을주는 두 가지 악용입니다. 예, 거의 모든 휴대 전화와 개인용 컴퓨터를 의미합니다. 권한이없는 공격자는 멜트 다운을 악용하여 커널 메모리에 저장된 중요한 정보를 악의적으로 얻을 수 있습니다.

여전히 작동중인 Spectre 취약점 패치

Meltdown은 암호 및 암호화 키를 포함하여 비밀 데이터를 노출시킬 수있는 심각한 취약점이지만 Specter는 더 나빠서 쉽게 고칠 수 없습니다. 보안 연구원들은 그것이 꽤 오랫동안 우리를 괴롭힐 것이라고 말합니다. Specter는 최신 CPU에서 성능을 최적화하기 위해 사용하는 추측 실행 기술을 이용하는 것으로 알려져 있습니다.

스펙터 버그가 패치 될 때까지 최소한 GNU / Linux 배포판을 새로 릴리스 된 Linux 커널 버전으로 업데이트하는 것이 좋습니다. 따라서 좋아하는 배포판의 소프트웨어 저장소에서 새 커널 업데이트를 검색하여 가능한 빨리 설치하십시오. 너무 늦을 때까지 기다리지 말고 지금하십시오!


나는 일주일 동안 Kernel 4.14.10을 사용하고 있었으므로 Ubuntu Mainline Kernel 버전 4.14.11 을 다운로드하고 부팅 하는 것은 나에게별로 중요하지 않았습니다.

Ubuntu 16.04 사용자는 4.14.11과 동시에 릴리스 된 4.4.109 또는 4.9.74 커널 버전에 더 익숙 할 수 있습니다.

정기 업데이트가 커널 버전을 설치하지 않으면 다음 우분투 요청 답변을 따라 수동으로 수행 할 수 있습니다. https://askubuntu.com/questions/879888/how-do-i-update-kernel-to-the-latest -mainline-version / 879920 # 879920


4.14.12-하루의 차이점

초기 응답 후 24 시간 이내에 패치가 릴리스되어 4.14.11 커널 버전을 수정했습니다. 모든 4.14.11 사용자에게 4.14.12 로 업그레이드하는 것이 좋습니다. 그렉 -KH의 말 :

4.14.12 커널 릴리스를 발표합니다.

4.14 커널 시리즈의 모든 사용자는 업그레이드해야합니다.

이 릴리스에는 여전히 알려진 몇 가지 사소한 문제가 있습니다. 패치가 Linus의 나무에 떨어지지 않았기 때문에 이번 주말에 해결 될 것입니다.

지금처럼 항상 환경에서 테스트하십시오.

이 업데이트를 살펴보면 소스 코드 라인이 그리 많지 않았습니다.


1
Meltdown에 대한 솔루션이 현재을 통해 제공됩니다 apt-get dist-upgrade.
luchonacho

1
내 전화에서 지금 LTS를 업데이트하면 2018 년 10 월 1 일에 커널 패닉이 발생합니다. Ask Ubuntu를 참조하십시오.
WinEunuuchs2Unix

1
운 좋게 나는 109로 업데이트했습니다 (108은 커널 패닉을줍니다). 그래서 그 문제는 없었습니다. 잘 작동합니다.
luchonacho

1
@ WinEunuuchs2Unix 여기에 업데이트가 있습니다 USN-3531-2 : Intel Microcode regression
GAD3R

1
@ GAD3R 링크 감사합니다. Ask Ubuntu에 많은 사람들을 도울 수있는 답변을 게시하는 데 도움이됩니다. askubuntu.com/questions/998471/…
WinEunuuchs2Unix

6

이 결함은 JavaScript 웹 사이트를 방문하여 원격으로 악용 될 수 있습니다.

과연. 따라서 현명한 완화 방법 중 하나는 웹 브라우저에서 JavaScript를 비활성화하거나 JavaScript를 지원하지 않는 웹 브라우저를 사용하는 것입니다.

JavaScript를 지원하는 대부분의 브라우저에는 사용하지 않도록 설정되어 있습니다. 또는 JavaScript를 허용 할 사이트 또는 도메인의 화이트리스트를 유지하려는 경우 uBlock OriginNoScript 와 같이 지원할 수있는 다양한 애드온이 있습니다 .

NB 자바 스크립트를 비활성화 / 제한하는 것이 유일한 완화책이 되어서는 안됩니다 . 관련 커널 픽스 및 기타 보안 업데이트가 작성, 테스트 및 게시되면 추가로 검토하고 적용해야합니다. 데비안에서 파생 된 배포판 에서는 ,, 및 같은 명령을 사용하십시오 .sudo apt updatesudo apt list-upgradablesudo apt upgrade

업데이트 : 내 말을하지 마십시오. Alan Cox 는 다음과 같이 말합니다.

웹 페이지의 javascript가 익스플로잇을 원격으로 사용하여 시스템 메모리에서 물건을 훔칠 수 있기 때문에 큰 시간 을 걱정 해야하는 것은 javascript입니다. ... Adblockers 같은 것들과 noscript와 같은 확장 프로그램을 고려하여 처음부터 많은 정크를 막을 수 있습니다. 최대한 빨리 해 OS 업데이트가 나타나면 적용하십시오. ( 소스 )


5
실례합니다 .JS 없이는 attac에 도움이되지만 여기에 답을 남길 수 없었습니다. 이 조언은 "인터넷 사용 중지"(2018 년)와 유사합니다.
Moritz 둘 다

4
고맙게도 많은 사이트가 JS없이 잘 작동합니다. 안타깝게도 StackExchange에는 게시를 위해 JS가 필요합니다. 그것은 SE의 (심각한!) 단점입니다. (
sampablokuper

3
FireFox의 경우 addon과 같은 noScript 는 모호한 사이트에서 JavaScript 사용을 줄이는 데 도움이 될 수 있습니다. FF Quantum (V57)이 최근에 변경 한 사항은 전체 FF 애드온 풀에 매우 큰
영향을 미쳤습니다

2
Quantum이 출시 된 이래로 정확히 이런 이유로 Pale Moon으로 전환했습니다. NoScript와 Cookie Masters (한 번 Cookie Monster)를 포함하여 정말 잘 작동합니다.
머피

2
@MoritzBoth JS를 비활성화하면 "웹 사용을 중지"하고 "인터넷 사용을 중지" 한다고 생각하지 않습니다 . 그러나 지금은 일부 웹 컨텐츠 제공자가 JS에 보편적으로 의존하는 문제에 대한 인식을 높이기에 좋은시기 입니다.
Tobia Tesan

5

이것이 JavaScript를 사용하여 악용 될 수 있다는 사실이 주요 요점이 아니며 주요 관심사가되어서는 안됩니다. 비록 원격 코드를 시스템에서 쉽게 실행할 수 있기 때문에 중요한 것은 아니지만 이것이 유일한 것은 아닙니다. 이런 일이 일어날 수 있습니다).

Javascript 및 / 또는 브라우저에 중점을 두어서는 안됩니다. 이상적으로는 CPU를 패치해야합니다. 불행히도, 현재 버그의 대부분은 이것이 불가능한 것 같습니다. 데비안은 다른 모든 OS 제공 당사자들과 함께 결함이없는 CPU를 권장하지 않는 유일한 다른 방법을 취할 것입니다. 이러한 패치는 문제를 해결하지 않습니다. 대신, OS는 사용자가 컴퓨터에서 실행하는 모든 프로그램 (및 브라우저)에서 최상의 성능을 숨 깁니다.

이러한 은닉은 추가 계산 작업이므로 전체 시스템 성능이없는 것보다 낮습니다. 이 프로그램이 정확히 무엇을 수행 하느냐에 따라 크게 낮아질 수 있습니다.

이를 염두에두고 데비안 시스템을 보호하기 위해 할 수있는 일은 보안 업데이트를 설치하는 것입니다. 필자는 데비안이 이러한 버그에 비추어 가능한 모든 기능을 수행하여 고유 한 CPU 결함에도 불구하고 가능한 한 안전하게 데비안을 실행할 것이라고 믿습니다.

모든 종류의 대기업이 이미이 문제를 해결하고 있으며 수많은 하드웨어 및 Linux 전문가도 있습니다. 나는 당신이 무언가를 시도하거나 일반적인 노력을 돕지 못하도록 절대로 당신을 붙잡고 싶지 않습니다. 그러나 자신의 보안과 적시 수정이 관심있는 모든 것이라면, 지금보다 더 짧은 시간 안에 더 나은 솔루션을 찾을 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.