2018年1月23日火曜日

OSがMeltdownとSpectreに対応しているか確認する

CPU脆弱性のMeltdownとSpectre
最近CPUの脆弱性(MeltdownとSpectre)が発見され、話題になっている。MeltdownとSpectreはそれぞれ以下のようなCPUの脆弱性。根本的な解決は、CPUの交換が必要。
  • Meltdown:主に、Intel製CPUに影響。プログラムのメモリに保存されている秘密情報が、別のプログラムによって窃取される恐れがある。CVEは、CVE-2017-5754(不正データキャッシュ読み込み)が、割り当てられている。
  • Spectre:Intel、AMD、ARM製CPUに影響。 あるプログラムのメモリ内の任意の場所に、他のアプリケーションをアクセスするよう仕向けさせる。Meltdownと比べて悪用は難しい。CVE-2017-5753(バウンズチェックバイパス)、CVE-2017-5715(ブランチターゲットインジェクション)が割り当てられている。
※CVEは、Common Vulnerabilities and Exposures(共通脆弱性識別子)の略。脆弱性に割り当てられたID。


MeltdownとSpectreに対応しているか、Webで確認する
使用しているOSやアプリケーションが、MeltdownとSpectreが悪用されないようにアップデートされているか確認するには、Webの情報を参考にするのが一番正確だと思う。それぞれのOSやアプリケーションによって、影響があるか、さらに、影響がある場合対応が済んでいるか異なるため。

例えば、Meltdownの脆弱性(CVE-2017-5754)の場合、Arch Linuxの現在の状況は以下の様になっている。影響を受けるパッケージの中で、対応が済んでいるのはカーネル関連のパッケージ。その他のパッケージは、未対応となっている。(2018年1月22日、時点)


最新のMeltdownとSpectreに対する対応状況等は、以下のリンクから確認できる。

ただし、このリンク中に記載されていないアプリケーションも、実際は影響を受けており個別に対応が必要。Firefox(57.0.4にて対応済み)やVMware(パッチのインストールが必要)は、リストアップされていなかった。

LinuxカーネルがMeltdownとSpectreに対応しているか、チェッカーで確認する
Linuxに対しては、チェッカー(spectre-meltdown-checker.sh)が作成されており、チェッカーをrootから実行することで、MeltdownとSpectreの脆弱性に対して対応が済んでいるかどうか確認できる。

Arch Linuxの場合、AUR からインストールできる。
$ packer -S spectre-meltdown-checker

使用しているディストリビューションでパッケージが提供されていなかったら、githubからダウンロードする。
$ wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh

実行してみると、以下のような結果であった。ちなみに、カーネルをアップデートしていても、再起動しないとアップデートは適用されない。カーネルのアップデート後に、チェッカーで確認をしたい場合は、チェッカーを実行する前に再起動する。
# spectre-meltdown-checker.sh (githubからダウンロードした場合は、# sh ./spectre-meltdown-checker.sh)

Spectre and Meltdown mitigation detection tool v0.32

Checking for vulnerabilities against running kernel Linux 4.14.14-1-ARCH #1 SMP PREEMPT Fri Jan 19 18:42:04 UTC 2018 x86_64
CPU is  Intel(R) Core(TM) i7-3770S CPU @ 3.10GHz

CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking whether we're safe according to the /sys interface:  NO  (kernel confirms your system is vulnerable)
> STATUS:  VULNERABLE  (Vulnerable)

CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Checking whether we're safe according to the /sys interface:  YES  (kernel confirms that the mitigation is active)
> STATUS:  NOT VULNERABLE  (Mitigation: Full generic retpoline)

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Checking whether we're safe according to the /sys interface:  YES  (kernel confirms that the mitigation is active)
> STATUS:  NOT VULNERABLE  (Mitigation: PTI)

A false sense of security is worse than no security at all, see --disclaimer

CVE-2017-5753に対しての対応は未対応(VULNERABLE)となっている。Webの情報でも未対応となっているので、Webの情報と一致している。

このチェッカーは、おそらくLinuxカーネルの対応状況のみを表示している。その他のアプリケーションの対応状況はそれぞれのアプリケーションごとに、使用しているバージョンが脆弱性に対応したバージョンか確認する必要がある。


参考:
[1]CVE-2017-5754 - nvidia-340xx-dkms linux nvidia-dkms nvidia-340xx-lts linux-hardened linux-lts nvidia-340xx nvidia linux-zen nvidia-lts - Arch Linux
[2]CVE-2017-5715 - nvidia-340xx-dkms linux nvidia-dkms nvidia-340xx-lts linux-hardened linux-lts nvidia-340xx linux-firmware nvidia linux-zen intel-ucode nvidia-lts - Arch Linux
[3]CVE-2017-5753 - nvidia-340xx-dkms linux nvidia-dkms nvidia-340xx-lts linux-hardened linux-lts nvidia-340xx nvidia linux-zen nvidia-lts - Arch Linux

スポンサーリンク

スポンサーリンク

0 件のコメント:

コメントを投稿