Ubuntu 18.04LTS에서 Spectre 및 Meltdown 완화를 비활성화할 수 있습니까?
Linux에서 이 두 기능을 비활성화하면 성능이 얼마나 향상되는지 테스트하고 규모가 크면 영구적으로 유지하고 싶습니다.
답변1
다양한 커널 부팅 매개변수를 사용하여 하드웨어 취약성 완화를 비활성화하거나 미세 조정할 수 있습니다.
- Spectre v1 및 v2에서 사용 가능:
nospectre_v1
(x86, PowerPC),nospectre_v2
(x86, PowerPC, S/390, ARM64),spectre_v2_user=off
(x86) - SSB의 경우:
spec_store_bypass_disable=off
(x86, PowerPC),ssbd=force-off
(ARM64) - L1TF의 경우:
l1tf=off
(x86) - MDS의 경우:
mds=off
(x86) - TAA의 경우:
tsx_async_abort=off
- iTLB 다중 히트의 경우:
kvm.nx_huge_pages=off
- SRBDS의 경우:
srbds=off
- 재출혈의 경우:
retbleed=off
- KPTI
nopti
kpti=0
(x86, PowerPC) 또는 (ARM64)를 통해 비활성화할 수 있습니다.
mitigations
메타 매개변수가 도입되었습니다.5.2에서5.1.2, 5.0.16 및 4.19.43(및 기타 버전)으로 백포트되었습니다. 다음과 같이 모든 아키텍처의 모든 완화를 제어하는 데 사용할 수 있습니다.
mitigations=off
모든 선택적 CPU 완화가 비활성화됩니다.mitigations=auto
(기본값) 알려진 모든 CPU 취약성을 완화하지만 SMT를 활성화된 상태로 유지합니다(활성화된 경우).mitigations=auto,nosmt
알려진 모든 CPU 취약점이 완화되고 적절한 경우 SMT가 비활성화됩니다.
이들 중 일부는 런타임에 전환될 수 있습니다. 자세한 내용은 링크된 문서를 참조하세요.
답변2
커널 5.1.13 이상 사용:
시작 매개변수에서 다음을 사용할 수 있습니다.
mitigations=off
5.1.13 이전 커널 사용:
noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off mitigations=off
mitigations=off
파일에 하나 이상의 긴 한 줄을 추가 /etc/sysconfig/grub
하고 다음을 사용하여 grub의 구성 파일을 다시 생성하십시오.
grub2-mkconfig
(귀하의 할당 절차는 다양합니다).
Debian/Ubuntu 파생 배포판:
파일을 편집 /etc/default/grub
하고 실행하세요.
update-grub
답변3
Fedora 37에서는 새로운 커널을 사용하여 /sys/devices/system/cpu/vulnerabilities/
.
$ grep . /sys/devices/system/cpu/vulnerabilities/*
/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Mitigation: VMX disabled
/sys/devices/system/cpu/vulnerabilities/l1tf:Not affected
/sys/devices/system/cpu/vulnerabilities/mds:Not affected
/sys/devices/system/cpu/vulnerabilities/meltdown:Not affected
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data:Mitigation: Clear CPU buffers; SMT vulnerable
/sys/devices/system/cpu/vulnerabilities/retbleed:Mitigation: Enhanced IBRS
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Mitigation: Speculative Store Bypass disabled via prctl
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: usercopy/swapgs barriers and __user pointer sanitization
/sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: Enhanced IBRS, IBPB: conditional, RSB filling, PBRSB-eIBRS: SW sequence
/sys/devices/system/cpu/vulnerabilities/srbds:Mitigation: Microcode
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Not affected
완화를 한 번에 비활성화하려면 다음을 수행하십시오.
sudo grubby --update-kernel=ALL --args="mitigations=off"
재부팅 후 인쇄물이 어떻게 변경되는지 확인
$ grep . /sys/devices/system/cpu/vulnerabilities/*
/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Mitigation: VMX disabled
/sys/devices/system/cpu/vulnerabilities/l1tf:Not affected
/sys/devices/system/cpu/vulnerabilities/mds:Not affected
/sys/devices/system/cpu/vulnerabilities/meltdown:Not affected
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data:Vulnerable
/sys/devices/system/cpu/vulnerabilities/retbleed:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers
/sys/devices/system/cpu/vulnerabilities/spectre_v2:Vulnerable, IBPB: disabled, STIBP: disabled, PBRSB-eIBRS: Vulnerable
/sys/devices/system/cpu/vulnerabilities/srbds:Vulnerable
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Not affected
주의: Spectre 개념 증명 취약점은 브라우저 JavaScript에서 실행됩니다.
~처럼Leaky.page 개념 증명이 취약점이 브라우저 JavaScript 코드에서 악용될 수 있음을 보여줍니다. 따라서 웹 브라우저를 사용하는 한 완화 기능을 그대로 유지하는 것이 좋습니다.