web-dev-qa-db-ja.com

UbuntuでKPTIが有効になっていることを確認する方法は?

現在のIntel Meltdownプロセッサの脆弱性は、現在、ページテーブル分離を有効にすることで改善されています。これをオフにする方法について質問があります: Intel CPUセキュリティホールパッチにより失われたパフォーマンスを回復するためにページテーブル分離を無効にする方法?

私の質問は反対です:PTIメカニズムがシステムで有効であり、したがってシステムが保護されているかどうかを実行中のシステムで確認する方法はありますか?私は特にcat /proc/somethingまたはcat /sys/somethingを探していますが、カーネルのバージョンや設定パラメータなどをチェックしていません。

61
Martin Vysny
  • カーネル構成でCONFIG_PAGE_TABLE_ISOLATIONを Ranizの提案 としてグレッピングしても、デスクトップUbuntuでは役立ちませんが、クラウドインスタンスでは役立つ場合があります。

    grep CONFIG_PAGE_TABLE_ISOLATION=y /boot/config-`uname -r` && \
    echo "patched :)" || echo "unpatched :("
    

  • JonasCz推奨 のように/proc/cpuinfoで確認できます:

    grep -q "cpu_insecure\|cpu_meltdown\|kaiser" /proc/cpuinfo && echo "patched :)" \
    || echo "unpatched :("
    

  • またはdmesgから(Jason Creightonに感謝):

    dmesg | grep -q "Kernel/User page tables isolation: enabled" \
    && echo "patched :)" || echo "unpatched :("
    

  • メルトダウン検出のために Raphael Carvalho からテストプログラムをコンパイルできます:

    Sudo apt-get install git build-essential
    cd /tmp
    git clone https://github.com/raphaelsc/Am-I-affected-by-Meltdown.git
    cd Am-I-affected-by-Meltdown
    make
    Sudo sh -c "echo 0  > /proc/sys/kernel/kptr_restrict"
    ./meltdown-checker
    

パッチを適用したシステムでは、出力で終了するはずです

...
so far so good (i.e. meltdown safe) ...

System not affected (take it with a grain of salt though as false negative
may be reported for specific environments; Please consider running it once again).

パッチが適用されたシステムでは、次のように表示されます。

Spectre and Meltdown mitigation detection tool v0.27

Checking for vulnerabilities against live running kernel Linux 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64
...
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)

Xenialに4.4.0-108-genericをインストールしないでください!それ boot/reboot/shutdown/suspend機能を壊します

4.4.0-109-generic( 詳細についてはUSN-3522-3を参照 )をインストールしてください!


Robie Basakはすでに書いています のように、 buntuのスペクトルとメルトダウンの脆弱性ステータス に関するページがあります。

またあります:

63
N0rbert

次のコマンドを実行します。

dmesg | grep 'page tables isolation'

有効と表示されている場合、PTIは有効になっています。何も表示されないか、ターミナルに「無効」と表示されている場合、PTIは無効になっています。 Ubuntuはまだパッチを公開していないため、メッセージは表示されません。

18
Aadhil RF

「バグ」の下でcat /proc/cpuinfoを報告する場合、cpu_insecureで確認でき、PTIが有効になります。

空白の場合(またはcpu_insecureがリストされていない場合)、まだパッチが適用されていないカーネル(Ubuntuのカーネルではない)を実行しているか、AMDプロセッサを使用している可能性が高い脆弱ではないため、有効にしてください)。

現在、 最新の4.15カーネルでは、すべてのCPUが脆弱であるとして扱われます

12
JonasCz

システムのメルトダウン/スペクトルの脆弱性をテストするためのこの素晴らしいshスクリプトを見つけました。

https://github.com/speed47/spectre-meltdown-checker

このスクリプトは、システムを既知のメルトダウンとシステム上のスペクターパッチで確認し、これらの脆弱性がOSによって緩和されているかどうかを通知します

8
Compte droid

CONFIG_PAGE_TABLE_ISOLATION=yの-​​/ proc/config.gzを確認できます。これは、カーネルがKPTIでコンパイルされたことを意味します。

これは、4.14.11-1を実行しているパッチを適用したArch Linuxシステム上にあります。

$ zgrep CONFIG_PAGE_TABLE_ISOLATION /proc/config.gz 
CONFIG_PAGE_TABLE_ISOLATION=y
2
Raniz

AWS Ubuntu 14.04.5 LTS EC2インスタンスで実行しました

grep CONFIG_PAGE_TABLE_ISOLATION /boot/config-$(uname -r)

それは言うべきです:

CONFIG_PAGE_TABLE_ISOLATION=y

更新のために:

Sudo apt-get update && Sudo apt-get install linux-image-generic

これも問題ないと思います:

Sudo apt-get update
Sudo apt-get dist-upgrade

カーネルのバージョンを確認するには:

uname -r

.13.0-139-generic以降である必要があります。

1
drKreso