이 취약점을 완전히 완화하려면 L1D 무조건 새로 고침을 활성화해야 합니다(CVE-2018-3646).

이 취약점을 완전히 완화하려면 L1D 무조건 새로 고침을 활성화해야 합니다(CVE-2018-3646).

내가 사용하는 것은spectre-meltdown-checker, 버전 0.42, 옵션 없음모두 녹색결과. 그러나 도움말 페이지에서 이 --paranoid스위치를 발견했는데, 이로 인해 이후 CVE의 약 절반이 빨간색으로 변했습니다. 나는 완전한 안도감을 얻으려면 다음과 같은 조치를 취해야 한다는 내용을 읽었습니다.하이퍼스레딩 비활성화, 조금 무섭기 때문에 이렇게 하는 것이 좋습니다. 결과는 다음과 같습니다.단 하나나머지 위험 신호는 CVE-2018-3646입니다. =이 취약점을 완전히 완화하려면 L1D 무조건 새로 고침을 활성화해야 합니다..


노트북: 최신 BIOS(1.8.0,상세정보 링크).

프로세서: Intel© Core™ i7-7700HQ(링크:인텔 아크).

Linux 커널: 4.15.0-65-일반 uname -a:

Linux dell-7577 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

완전성을 위해 스위치 도움말의 정보를 추가했습니다 --paranoid.

--paranoid      require IBPB to deem Variant 2 as mitigated
                also require SMT disabled + unconditional L1D flush to deem Foreshadow-NG VMM as mitigated
                also require SMT disabled to deem MDS vulnerabilities mitigated

CVE-2018-3646 aka 'Foreshadow-NG (VMM), L1 terminal fault'
* Information from the /sys interface: Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
* This system is a host running a hypervisor:  YES  (paranoid mode)
* Mitigation 1 (KVM)
  * EPT is disabled:  NO 
* Mitigation 2
  * L1D flush is supported by kernel:  YES  (found flush_l1d in /proc/cpuinfo)
  * L1D flush enabled:  YES  (conditional flushes)
  * Hardware-backed L1D flush supported:  YES  (performance impact of the mitigation will be greatly reduced)
  * Hyper-Threading (SMT) is enabled:  YES 
> STATUS:  VULNERABLE  (enable L1D unconditional flushing and disable Hyper-Threading to fully mitigate the vulnerability)

실제적인 문제

하이퍼스레딩을 비활성화하는 것 외에도 활성화하는 방법무조건 L1D 플러시?

답변1

좀 더 자세히 조사해 본 결과 문서에 있는 이 취약점의 이름은 다음과 같습니다.

L1TF = L1 단자 오류

사실 내가 찾았어직접 커널 문서, 인용하다:

l1tf=   [X86] Control mitigation of the L1TF vulnerability on
        affected CPUs

        The kernel PTE inversion protection is unconditionally
        enabled and cannot be disabled.

        full
            Provides all available mitigations for the
            L1TF vulnerability. Disables SMT and
            enables all mitigations in the
            hypervisors, i.e. unconditional L1D flush.

            SMT control and L1D flush control via the
            sysfs interface is still possible after
            boot.  Hypervisors will issue a warning
            when the first VM is started in a
            potentially insecure configuration,
            i.e. SMT enabled or L1D flush disabled.

        full,force
            Same as 'full', but disables SMT and L1D
            flush runtime control. Implies the
            'nosmt=force' command line option.
            (i.e. sysfs control of SMT is disabled.)

        flush
            Leaves SMT enabled and enables the default
            hypervisor mitigation, i.e. conditional
            L1D flush.

            SMT control and L1D flush control via the
            sysfs interface is still possible after
            boot.  Hypervisors will issue a warning
            when the first VM is started in a
            potentially insecure configuration,
            i.e. SMT enabled or L1D flush disabled.

        flush,nosmt

            Disables SMT and enables the default
            hypervisor mitigation.

            SMT control and L1D flush control via the
            sysfs interface is still possible after
            boot.  Hypervisors will issue a warning
            when the first VM is started in a
            potentially insecure configuration,
            i.e. SMT enabled or L1D flush disabled.

        flush,nowarn
            Same as 'flush', but hypervisors will not
            warn when a VM is started in a potentially
            insecure configuration.

        off
            Disables hypervisor mitigations and doesn't
            emit any warnings.
            It also drops the swap size and available
            RAM limit restriction on both hypervisor and
            bare metal.

        Default is 'flush'.

        For details see: Documentation/admin-guide/hw-vuln/l1tf.rst

나는 이러한 옵션 중 일부를 시도하고 마침내 얻었습니다 full,force. 그러나 그것은 단지 내 개인적인 선택입니다.


사용하는 방법

이제 사용 방법(무엇을 편집해야 하는지)을 묻는다면 대답은 다음과 같습니다.

  1. 즐겨 사용하는 텍스트 편집기를 사용하여 다음 파일을 편집하세요.

    /etc/default/grub
    
  2. 옵션 중 하나(예: let me use )를 l1tf=full,force다음 줄에 추가합니다.

    GRUB_CMDLINE_LINUX_DEFAULT="... l1tf=full,force"
    
  3. 다음 명령어를 사용하여 부트로더 구성을 업데이트합니다.

    sudo update-grub
    
  4. 재부팅 후 변경 사항이 적용됩니다.

    reboot --reboot
    

결과

이 솔루션을 계속 테스트하기로 결정했다면 다음과 같은 결과가 나올 것입니다.

CVE-2018-3646 aka 'Foreshadow-NG (VMM), L1 terminal fault'
* Information from the /sys interface: Mitigation: PTE Inversion; VMX: cache flushes, SMT disabled
* This system is a host running a hypervisor:  YES  (paranoid mode)
* Mitigation 1 (KVM)
  * EPT is disabled:  NO 
* Mitigation 2
  * L1D flush is supported by kernel:  YES  (found flush_l1d in /proc/cpuinfo)
  * L1D flush enabled:  YES  (unconditional flushes)
  * Hardware-backed L1D flush supported:  YES  (performance impact of the mitigation will be greatly reduced)
  * Hyper-Threading (SMT) is enabled:  NO 
> STATUS:  NOT VULNERABLE  (L1D unconditional flushing and Hyper-Threading disabled are mitigating the vulnerability)

Ultra HD 이미지를 확대할 수 있습니다:

L1TF - 완화


스티븐 지터노트

L1TF 특정 콘텐츠도 읽을 가치가 있습니다커널 문서- 취약점과 완화 방법을 자세히 설명하고 완화 기능을 활성화 및 비활성화하는 방법(SMT 비활성화 포함)을 설명합니다.런타임 시, 재부팅하거나 시스템 구성을 변경할 필요가 없습니다.

관련 정보