나는 Debian Stretch를 실행하는 컴퓨터에서 Spectre 변종 2를 패치하려고 합니다. intel-microcode
패키지를 설치했습니다strech-backports
https://packages.debian.org/stretch-backports/intel-microcode
여기에는 Intel의 2018-03-12 마이크로코드 업데이트가 포함됩니다. 재부팅 후 나는 실행 sudo dmesg | grep 'microcode'
하고
[ 1.180101] microcode: sig=0x30678, pf=0x8, revision=0x831
[ 1.180418] microcode: Microcode Update Driver: v2.01
<[email protected]>, Peter Oruba
내가 아는 한 이것은 내 프로세서의 최신 버전이 아닙니다. 내 프로세서는 Bay Trail 시리즈의 일부인 Intel Celeron N2840입니다. ~에 따르면
https://newsroom.intel.com/wp-content/uploads/sites/11/2018/03/microcode-update-guidance.pdf
모든 Bay Trails는 마이크로코드 업데이트를 받아야 하지만 어떤 개정판도 내 것과 동일하지 않습니다. 또한 spectre-meltdown-checker.sh
스크립트는 다음과 같이 말합니다.
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigated according to the /sys interface: YES (Mitigation: Full
generic retpoline - vulnerable module loaded)
* Mitigation 1
* Kernel is compiled with IBRS support: NO
* IBRS enabled and active: UNKNOWN
* Kernel is compiled with IBPB support: YES
* IBPB enabled and active: NO
* Mitigation 2
* Kernel has branch predictor hardening (arm): NO
* Kernel compiled with retpoline option: YES
* Kernel compiled with a retpoline-aware compiler: YES (kernel
reports full retpoline compilation)
> STATUS: VULNERABLE (IBRS+IBPB or retpoline+IBPB is needed to mitigate
the vulnerability)
마이크로코드 업데이트가 올바르게 설치되고 사용되는지 어떻게 확인합니까?
몇 시간 후에 수정하세요.
저는 Intel Core i5-5200U 프로세서(Broadwell)를 탑재한 컴퓨터와 Debian Stretch에서 위에서 설명한 프로세스를 수행했습니다. 해당 컴퓨터에서 스크립트는 "취약하지 않음"이라고 말하고 Spectre v2를 완화하는 마이크로코드가 있습니다. dmesg | grep 'microcode'
또한 위에 링크된 Intel 문서에 언급된 개정판이 있음을 나타냅니다.
또한 이전 Intel Core 2 Duo Penryn 프로세서가 장착된 컴퓨터에서 이 절차를 수행했습니다. Intel은 Spectre v2를 완화하기 위한 마이크로코드를 제공하지 않습니다. 이것은 이 컴퓨터의 스크립트 결과입니다.
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigated according to the /sys interface: YES (Mitigation: Full generic retpoline)
* Mitigation 1
* Kernel is compiled with IBRS support: NO
* IBRS enabled and active: UNKNOWN
* Kernel is compiled with IBPB support: YES
* IBPB enabled and active: NO
* Mitigation 2
* Kernel has branch predictor hardening (arm): NO
* Kernel compiled with retpoline option: YES
* Kernel compiled with a retpoline-aware compiler: YES (kernel reports full retpoline compilation)
> STATUS: NOT VULNERABLE (Full retpoline is mitigating the vulnerability)
IBPB is considered as a good addition to retpoline for Variant 2 mitigation, but your CPU microcode doesn't support it
나는 이것을 Spectre v2(커널 전용 공격, 맞죠?)를 완화하는 렙톨라인으로 해석하지만 IBPB는 마이크로코드 업데이트를 수행하는 것이 좋습니다.
내 첫 번째 컴퓨터(Intel Celeron N2840 프로세서가 탑재된 컴퓨터)에는적어도내 마지막 컴퓨터와 동일한 렙톨라인 완화인가요? 그렇지 않습니까?반품중간 컴퓨터로서 마이크로코드 완화가 있습니까?
답변1
Skylake 및 최신 프로세서의 경우 리트폴린은 Spectre V2를 완전히 완화하는 데 충분하지 않습니다. Bay Trail이 데스크톱 프로세서 세대와 어떻게 비교되는지는 모르겠지만 Skylake와 유사한 예측 논리를 사용할 수 있습니다.
또한 마이크로코드 가이드 PDF에는 Celeron Nxxxx 시리즈용 마이크로코드가 "생산 중"이라고 명시되어 있지만 Linux 마이크로코드 파일의 최신 릴리스에는 포함되지 않은 것으로 보입니다. 어떤 사람들은 이것에 대해 매우 냉담합니다. https://communities.intel.com/thread/124308