現在位置: ホーム / セキュリティ ブログ / CPU由来の脆弱性情報(Meltdown and Spectre Vulnerability : CVE-2017-5753, CVE-2017-5754, CVE-2017-5715)

CPU由来の脆弱性情報(Meltdown and Spectre Vulnerability : CVE-2017-5753, CVE-2017-5754, CVE-2017-5715)

01/03/2018にIntel/AMD/ARMを含むCPUのHW由来の脆弱性(Meltdown and Spectre Vulnerability)が公開されました。それに伴い、Linux Kernel等にも脆弱性情報の公開と修正情報(CVE-2017-5753, CVE-2017-5754, CVE-2017-5715)が公開されています。今回はこれらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。 (1/5更新:linux-firmware, microcode_ctl, libvirt, qemu-kvm, Xenの情報も追加しました。) (1/6更新:OpenBSD, FreeBSD, Oracle Linuxの情報も追加しました。) (1/7更新:Mozilla Firefoxの情報も追加しました。) (1/8更新:対象CPU情報、PoC/Checkerのサンプル結果を追加しました。) (1/9更新:対応製品情報にSophosを追加しました。) (1/10更新:Red Hat社の「投機的実行の脆弱性によるパフォーマンスへの影響: CVE-2017-5754、CVE-2017-5753、および CVE-2017-5715 に対するセキュリティーパッチによるパフォーマンスへの影響 」を追加しました。) (1/14更新:Intel社による、"脆弱性対策パッチ適用によるパフォーマンスへの影響のベンチマーク"資料へのリンクを追加しました。) (1/17更新:Slackwareの情報を追加しました。) (1/18更新 : Red Hat社のmicrocode_ctlとlinux-firmware提供取りやめについて追加しました。)

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

01/03/2018にIntel/AMD/ARMを含むCPUのHW由来の脆弱性(Meltdown and Spectre Vulnerability)が公開されました。それに伴い、Linux Kernel等にも脆弱性情報の公開と修正情報(CVE-2017-5753, CVE-2017-5754, CVE-2017-5715)が公開されています。今回はこれらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。

情報が未だ錯綜していますので、逐次情報は更新していく予定です。

(1/5更新:linux-firmware, microcode_ctl, libvirt, qemu-kvm, Xenの情報も追加しました。)

(1/6更新:OpenBSD, FreeBSD, Oracle Linuxの情報も追加しました。)

(1/7更新:Mozilla Firefoxの情報も追加しました。)

(1/8更新:対象CPU情報、PoC/Checkerのサンプル結果を追加しました。)

(1/9更新:対応製品情報にSophosを追加しました。)

(1/10更新:Red Hat社の「投機的実行の脆弱性によるパフォーマンスへの影響: CVE-2017-5754、CVE-2017-5753、および CVE-2017-5715 に対するセキュリティーパッチによるパフォーマンスへの影響 」を追加しました。)

(1/14更新:Intel社による、"脆弱性対策パッチ適用によるパフォーマンスへの影響のベンチマーク"資料へのリンクを追加しました。)

(1/17更新:Slackwareの情報を追加しました。)

(1/18更新 : Red Hat社のmicrocode_ctlとlinux-firmware提供取りやめについて追加しました。)



OS・ディストリビューション・SW提供情報


対象となるCPU

Intel

AMD

ARM


Priority

Important

修正方法

各ディストリビューションの情報を確認してください。

CVE概要(詳細はCVEのサイトをご確認ください)


PoC/Checkerの結果

以下、PoC/Checkerと言われているものの中で、下記の物の結果を列記します。

(注意) 以下のチェックツールを用いて結果が対象外であったとしても、安全のためにカーネル等のソフトウェア・Firmwareのバージョンは更新することを強くお薦めします。


Am-I-affected-by-Meltdownのテスト

  1. Lenovo ThinkPad X250(Intel(R) Core(TM) i7-5600U) + CentOS 7 の場合

    1. 更新前(Meltdown/Spectre問題が影響するカーネルの場合)

      [sios@sios-x250 Am-I-affected-by-Meltdown]$ uname -a
      Linux sios-x250.localdomain 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
      
      [sios@sios-x250 Am-I-affected-by-Meltdown]$ ls
      LICENSE   README.md          images            meltdown_checker.cc
      Makefile  assembly_utils.hh  meltdown-checker  meltdown_checker.o
      [sios@sios-x250 Am-I-affected-by-Meltdown]$ ./meltdown-checker
      Checking whether system is affected by Variant 3: rogue data cache load (CVE-2017-5754), a.k.a MELTDOWN ...
      Checking syscall table (sys_call_table) found at address 0xffffffff816beee0 ...
      0xffffffff812019f0 -> That's SyS_read
      
      System affected! Please consider upgrading your kernel to one that is patched with KPTI/KAISER
      Check https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html for more details
      
    2. 更新後(Meltdown/Spectre対策済みのカーネルの場合)

      [sios@sios-x250 Am-I-affected-by-Meltdown]$ uname -a
      Linux sios-x250.localdomain 3.10.0-693.11.6.el7.x86_64 #1 SMP Thu Jan 4 01:06:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
      [sios@sios-x250 Am-I-affected-by-Meltdown]$ ./
      .git/             images/           meltdown-checker
      [sios@sios-x250 Am-I-affected-by-Meltdown]$ ./meltdown-checker
      Checking whether system is affected by Variant 3: rogue data cache load (CVE-2017-5754), a.k.a MELTDOWN ...
      Checking syscall table (sys_call_table) found at address 0xffffffff816c6ee0 ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      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).
      
  2. ThinkPad X61(Intel(R) Core(TM)2 Duo CPU) + Ubuntu の場合

    1. 古いカーネルのままの状態(CPUが対象外のように見える)

      Ubuntuの場合は、/proc/sys/kernel/kptr_restrictが掛かっているため、この値を最初に0にする。

      sios@sios-X61:~/Meltdown/Am-I-affected-by-Meltdown$ sudo sh -c "echo 0  > /proc/sys/kernel/kptr_restrict"
      [sudo] sios のパスワード:
      sios@sios-X61:~/Meltdown/Am-I-affected-by-Meltdown$ ./meltdown-checker Checking whether system is affected by Variant 3: rogue data cache load (CVE-2017-5754), a.k.a MELTDOWN ...
      Checking syscall table (sys_call_table) found at address 0xffffffffafe00240 ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      so far so good (i.e. meltdown safe) ...
      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 Proof-of-Conceptのテスト

  1. Lenovo ThinkPad X250(Intel(R) Core(TM) i7-5600U) + CentOS 7 の場合

    1. 更新前(Meltdown/Spectre問題が影響するカーネルの場合)

      [sios@sios-x250 spectre-meltdown-poc]$ ls
      Makefile  README.md  btb.c  poc  poc.c  poc_poison  poc_rand  poc_vis
      [sios@sios-x250 spectre-meltdown-poc]$ ./poc ffffffff8f800180
      cutoff: 96
      0xffffffff8f800180 | 00   7.478190082193e-29 00^C
      [sios@sios-x250 spectre-meltdown-poc]$ grep ^C
      [sios@sios-x250 spectre-meltdown-poc]$ grep ' sys_call_table' /proc/kallsyms
      ffffffff816beee0 R sys_call_table
      [sios@sios-x250 spectre-meltdown-poc]$ ./poc ffffffff816beee0
      cutoff: 96
      0xffffffff816beee0 | f0 19 20 81 ff ff ff ff d0 1a 20 81ff ^C  
      
    2. 更新後(Meltdown/Spectre対策済みのカーネルの場合)

      [sios@sios-x250 spectre-meltdown-poc]$ grep ' sys_call_table' /proc/kallsyms
      ffffffff816c6ee0 R sys_call_table
      [sios@sios-x250 spectre-meltdown-poc]$ ./poc ffffffff816c6ee0
      cutoff: 108
      0xffffffff816c6ee0 |   1.667961324371e-28 00^C
      
  2. ThinkPad X61(Intel(R) Core(TM)2 Duo CPU) + Ubuntu の場合

    1. 古いカーネルのままの状態(CPUが対象外のように見える)

      Kernel Address Display Restrictionが掛かっているため、最初に無効化してからsys_call_tableのアドレスを見つける。

      sios@sios-X61:~/Meltdown/spectre-meltdown-poc$  sudo sysctl -w kernel.kptr_restrict=0
      [sudo] sios のパスワード: 
      kernel.kptr_restrict = 0
      sios@sios-X61:~/Meltdown/spectre-meltdown-poc$ grep ' sys_call_table' /proc/kallsyms
      ffffffff98a00240 R sys_call_table
      sios@sios-X61:~/Meltdown/spectre-meltdown-poc$ ./poc ffffffff98a00240
      Illegal instruction (コアダンプ)
      

主なディストリビューションの対応状況

詳細は、各ディストリビューションの提供元にご確認ください



対処方法

各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat Satelliteを使うと管理が便利でしょう。

Red Hat Satelliteを用いた一般的なErattaの適用は、『Red Hat Satellite 6でerrataを適用してみる』を 参考にして下さい。

また、OSの再起動が発生しますので、pacemakerなどOSSのクラスタ製品LifeKeeperなどの商用のクラスタリング製品を使うとサービス断の時間を最小限にすることが出来ます。

[参考]

Meltdown (CVE-2017-5754)

Spectre (CVE-2017-5753 / CVE-2017-5715)

セキュリティ系連載案内

OSSに関するお困りごとは サイオス OSSよろず相談室まで

サイオスOSSよろず相談室 では、OSSを利用する中で発生する問題に対し、長年培ってきた技術力・サポート力をもって企業のOSS活用を強力に支援します。Red Hat Enterprise Linux のほか、CentOS をご利用されている環境でのサポートも提供いたします。

タグ: