現在のIntel Meltdownプロセッサの脆弱性は、現在、ページテーブル分離を有効にすることで改善されています。これをオフにする方法について質問があります: Intel CPUセキュリティホールパッチにより失われたパフォーマンスを回復するためにページテーブル分離を無効にする方法?
私の質問は反対です:PTIメカニズムがシステムで有効であり、したがってシステムが保護されているかどうかを実行中のシステムで確認する方法はありますか?私は特にcat /proc/something
またはcat /sys/something
を探していますが、カーネルのバージョンや設定パラメータなどをチェックしていません。
カーネル構成で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).
https://github.com/speed47/spectre-meltdown-checker のツールで確認してください:
cd /tmp
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
Sudo sh /tmp/spectre-meltdown-checker.sh
パッチが適用されたシステムでは、次のように表示されます。
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)
Robie Basakはすでに書いています のように、 buntuのスペクトルとメルトダウンの脆弱性ステータス に関するページがあります。
またあります:
次のコマンドを実行します。
dmesg | grep 'page tables isolation'
有効と表示されている場合、PTIは有効になっています。何も表示されないか、ターミナルに「無効」と表示されている場合、PTIは無効になっています。 Ubuntuはまだパッチを公開していないため、メッセージは表示されません。
「バグ」の下でcat /proc/cpuinfo
を報告する場合、cpu_insecure
で確認でき、PTIが有効になります。
空白の場合(またはcpu_insecure
がリストされていない場合)、まだパッチが適用されていないカーネル(Ubuntuのカーネルではない)を実行しているか、AMDプロセッサを使用している可能性が高い脆弱ではないため、有効にしてください)。
システムのメルトダウン/スペクトルの脆弱性をテストするためのこの素晴らしいshスクリプトを見つけました。
https://github.com/speed47/spectre-meltdown-checker
このスクリプトは、システムを既知のメルトダウンとシステム上のスペクターパッチで確認し、これらの脆弱性がOSによって緩和されているかどうかを通知します
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
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以降である必要があります。