こんにちは。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提供取りやめについて追加しました。)
(1/19更新:Youtube動画と資料を追加しました。)
(1/25更新:Intel社のファームウェア更新後に起こる再起動問題への声明を追加しました。)
(2/5更新:マルウェアが出てきたというニュースへのリンクを追加しました。)
(2/13更新:RHEL5(ELS)対応パッチが出てきたので情報を追加しました。)
ファームウェア更新後に起こる再起動問題への声明(Intel)
Root Cause of Reboot Issue Identified; Updated Guidance for Customers and Partners
HWメーカ情報
OS・ディストリビューション・SW提供情報
Red Hat Enterprise Linux
Kernel Side-Channel Attacks – CVE-2017-5754 CVE-2017-5753 CVE-2017-5715
Impacts of CVE-2017-5754, CVE-2017-5753, and CVE-2017-5715 to Red Hat Virtualization products
投機的実行の脆弱性によるパフォーマンスへの影響: CVE-2017-5754、CVE-2017-5753、および CVE-2017-5715 に対するセキュリティーパッチによるパフォーマンスへの影響
CVE-2017-5715 (バリアント 2) を軽減させるために、microcode_ctl パッケージではどのような CPU マイクロコードが提供されていますか?
SUSE
Ubuntu
Microsoft
Windows Server Guidance to protect against the speculative execution side-channel vulnerabilities
Amazon Linux
Android
Xen
FreeBSD
https://www.freebsd.org/news/newsflash.html#event20180104:01
OpenBSD
OpenBSD devs worked on Meltdown/Spectre fixes eleven years ago
Mozilla Firefox
https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/
Sophos (AntiVirus)
Priority
Important
CVE-2017-5753
CVSS Severity (version 3.0):
CVSS v3 Base Score: 5.6 Medium
Vector: CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
CVSS Severity (version 2.0):
CVSS v2 Base Score: 4.7 MEDIUM
Vector: (AV:L/AC:M/Au:N/C:C/I:N/A:N)
CVE-2017-5754
CVSS Severity (version 3.0):
CVSS v3 Base Score: 5.6 Medium
Vector: CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
CVSS Severity (version 2.0):
CVSS v2 Base Score: 4.7 MEDIUM
Vector: (AV:L/AC:M/Au:N/C:C/I:N/A:N)
CVE-2017-5715
CVSS Severity (version 3.0):
CVSS v3 Base Score: 5.6 Medium
Vector: CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
CVSS Severity (version 2.0):
CVSS v2 Base Score: 4.7 MEDIUM
Vector: (AV:L/AC:M/Au:N/C:C/I:N/A:N)
修正方法
各ディストリビューションの情報を確認してください。
CVE概要(詳細はCVEのサイトをご確認ください)
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5754
Kernelの割り当てたメモリの読み取りの可能性(Meltdown)
重要度 – Important
HW由来の脆弱性(CPUのアウトオブオーダー実行の際に発覚した脆弱性)により、サイドチャネルを通じてアプリケーションが、他の任意のアプリケーションが割り当てたメモリに対して読み込みのアクセスが出来る可能性があります。
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5753
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5715
任意のアプリケーションのメモリの読み取りの可能性(Spectre)
重要度 – Important
HW由来の脆弱性(投機実行の際に発覚した脆弱性)により、サイドチャネルを通じてアプリケーションが、他の任意のアプリケーションが割り当てたメモリに対して読み込みのアクセスが出来る可能性があります。
PoC/Checkerの結果
以下、PoC/Checkerと言われているものの中で、下記の物の結果を列記します。
(注意) 以下のチェックツールを用いて結果が対象外であったとしても、安全のためにカーネル等のソフトウェア・Firmwareのバージョンは更新することを強くお薦めします。
Am-I-affected-by-Meltdownのテスト
Lenovo ThinkPad X250(Intel(R) Core(TM) i7-5600U) + CentOS 7 の場合
更新前(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
更新後(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).
ThinkPad X61(Intel(R) Core(TM)2 Duo CPU) + Ubuntu の場合
古いカーネルのままの状態(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のテスト
Lenovo ThinkPad X250(Intel(R) Core(TM) i7-5600U) + CentOS 7 の場合
更新前(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
更新後(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
ThinkPad X61(Intel(R) Core(TM)2 Duo CPU) + Ubuntu の場合
古いカーネルのままの状態(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 (コアダンプ)
主なディストリビューションの対応状況
詳細は、各ディストリビューションの提供元にご確認ください
Kernel
Debian
https://security-tracker.debian.org/tracker/CVE-2017-5753
Red Hat Enterprise Linux/CentOS
https://access.redhat.com/security/cve/CVE-2017-5753
https://access.redhat.com/security/cve/CVE-2017-5754
https://access.redhat.com/security/cve/CVE-2017-5715
RHEL 7 / CentOS 7 (https://access.redhat.com/errata/RHSA-2018:0007)
RHEL 6 / CentOS 6(https://access.redhat.com/errata/RHSA-2018:0008)
RHEL 5(ELS) (https://access.redhat.com/errata/RHSA-2018:0292)
Ubuntu
https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-5753.html
https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-5754.html
https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-5715.html
SUSE/openSUSE
https://www.suse.com/security/cve/CVE-2017-5753.html
Oracle Linux
Slackware
linux-firmware
Red Hat Enterprise Linux/CentOS
RHEL 7 / CentOS 7(https://access.redhat.com/errata/RHSA-2018:0014)
microcode_ctl
Red Hat Enterprise Linux/CentOS
RHEL 7 / CentOS 7(https://access.redhat.com/errata/RHSA-2018:0012)
RHEL 6 / CentOS 6(https://access.redhat.com/errata/RHSA-2018:0013)
Oracle Linux
libvirt
Red Hat Enterprise Linux/CentOS
RHEL 7 / CentOS 7(https://access.redhat.com/errata/RHSA-2018:0029)
RHEL 6 / CentOS 6(https://access.redhat.com/errata/RHSA-2018:0030)
Oracle Linux
qemu-kvm
Red Hat Enterprise Linux/CentOS
RHEL 7 / CentOS 7(https://access.redhat.com/errata/RHSA-2018:0023)
RHEL 6 / CentOS 6(https://access.redhat.com/errata/RHSA-2018:0024)
Oracle Linux
Xen
Red Hat社は「システムが起動しなくなる恐れがある」として対応済みのmicrocode_ctlとlinux-firmwareの提供を取りやめました。最新のバージョンでは、1 月 3 日に Spectre/Meltdown 制限を解く前のリリースに戻しています。現時点ではCPU OEM ベンダーにお問合せいただき、お使いのプロセッサーに対する最新のマイクロコードおよびファームウェアをダウンロードすることを Red Hat Security チームは推奨しています。
https://access.redhat.com/ja/solutions/3322661
Red Hat社は「システムが起動しなくなる恐れがある」として対応済みのmicrocode_ctlの提供を取りやめました。最新のバージョンでは、1 月 3 日に Spectre/Meltdown 制限を解く前のリリースに戻しています。現時点ではCPU OEM ベンダーにお問合せいただき、お使いのプロセッサーに対する最新のマイクロコードおよびファームウェアをダウンロードすることを Red Hat Security チームは推奨しています。
https://access.redhat.com/ja/solutions/3322661
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat Satelliteを使うと管理が便利でしょう。
Red Hat Satelliteを用いた一般的なErattaの適用は、『Red Hat Satellite 6でerrataを適用してみる』を 参考にして下さい。
また、OSの再起動が発生しますので、pacemakerなどOSSのクラスタ製品やLifeKeeperなどの商用のクラスタリング製品を使うとサービス断の時間を最小限にすることが出来ます。
[参考]
Spectre (CVE-2017-5753 / CVE-2017-5715)
セキュリティ系連載案内
OSSセキュリティ技術の会による日経Linuxでの連載「IoT時代の最新SELinux入門」がITPro上で読めるようになりました。技術の会代表で第一人者である中村さん等による、最新のSELinuxの情報やコマンド類等も更新されているのでお薦めです。
OSSセキュリティ技術の会によるThinkITでの連載「開発者のためのセキュリティ実践講座」がThinkIT上で開始しました。技術の会の中の人間で、最新の代表的なOSSセキュリティ技術を紹介していきます。
OSSセキュリティ技術の会により、ThinkITでLinuxSecuritySummit 2017のレポートが紹介されています。
セミナー情報
2018年05月17日 (木) 15:00から、MKTインターナショナル株式会社 / デジタルアーツ株式会社 / 日本オラクル株式会社 / サイオステクノロジー株式会社で連携してセミナーを開催します。
日本オラクル社からは、 MySQL Global Business Unit Sales Consulting Senior Managerの梶山 隆輔をお招きし、MySQLデータベースのセキュリティソリューションについてお話を頂きます。
https://sios.secure.force.com/webform/SeminarDetail?id=701100000012NsIAAUがプログラム内容と申し込みの詳細になりますので、是非お申し込み下さい。