この脆弱性を完全に軽減するには、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. オプションの1つ(例: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無効を含む)について説明します。ランタイム時、再起動したりシステム構成を変更したりする必要はありません。

関連情報