grasys blog
grasysブログ

GCE VMのCentOS7とCentOS6のMeltdown, Spectre対応状況まとめ

grasys加藤です。

2018年が始まってすぐに数多のエンジニアを恐怖させたCPUの実装に関連する3つのCVE=通称MeltDown, Spectreバグ。

CVE-2017-5753CVE-2017-5715CVE-2017-5754

本当はすべて終わってから記事にしようと思いましたが時間がかかりそうなので一旦まとめることにして、随時更新をしていきます。

2018-03-14 kernel情報更新 ひょっとしてCentOS7はSpectreも対応完了?!

背景やその技術的な説明は各所でなされているのでここで繰り返すつもりはありませんが、Google Project Zeroはとんでもないバグを掘り起こしていまいました(賞賛です)。

Project Zero: Reading privileged memory with a side-channel

この記事ではこの対応状況を追っていきたいと思います。

尚、 未だSpectre Variant 2は解消されていません 。 ちなみにこの脆弱性への攻撃はかなり難しいです。

脆弱性診断ツール

nixCraft社製の診断ツールを入れて測定します。素晴らしいスクリプト。

3つのCVE全てについて診断してくれます。

git clone https://github.com/speed47/spectre-meltdown-checker.git
cd spectre-meltdown-checker/
sudo sh spectre-meltdown-checker.sh

こちらはCentOS以外、DebianやUbuntuでも動作するようです(未確認)


CentOS7 imageの対応状況

バージョン : 3.10.0 リリース : 693.21.1.el7

2018-03-14 現在の最新image

yum update kernel してrebootすると自動的にこのカーネルになります。

Spectre Variant 2 のMitigation2: Retpolineを使用したコンパイルカーネルがYESになりました。 おぉ結局Retpoline採用したんですかね?関連記事見つけられませんでした。 しかし惜しいかなretpoline-aware compilerを使ったかUNKNOWNということでVulnerableなままです。

Retpolineについての詳細は こちら

でもこれ、だいぶ前進したんじゃないですかね?!

$ uname -a
Linux kato 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

バージョン : 3.10.0 リリース : 693.17.1.el7

本脆弱性については前バージョンと変化なし。

$ uname -a
Linux kato 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_6

バージョン : 3.10.0 リリース : 693.11.6.el7

こちらで Spectre Variant 1 と Meltdown の対策がなされました。 コンパイルされたのは1月4日です。

Linux Kernel開発者たちの対応のおかげです。もう足を向けて眠れません(だいぶ前から)

Meltdown and Spectre Linux Kernel Status

$ uname -a
Linux kato 3.10.0-693.11.6.el7.x86_64 #1 SMP Thu Jan 4 01:06:37 UTC 2018 x86_64 x86_64

バージョン : 3.10.0 リリース : 693.el7

昨年8月から提供されているバージョンがこちら。脆弱性があります!!

$ uname -a
Linux kato 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86

CentOS6 imageの対応状況

バージョン : 2.6.32 リリース : 696.20.1.el6

2018-01-31 現在の最新image

yum update kernel してrebootすると自動的にこのカーネルになります。

$ uname -a
Linux kyouhei 2.6.32-696.20.1.el6.x86_64 #1 SMP Fri Jan 26 17:51:45 UTC 2018 x86_64 x86

バージョン : 2.6.32 リリース : 696.18.7.el6

el6の脆弱性対応カーネル。

$ uname -a
Linux kyouhei 2.6.32-696.18.7.el6.x86_64 #1 SMP Thu Jan 4 17:31:22 UTC 2018 x86_64 x86_64

バージョン : 2.6.32 リリース : 696.16.1.el6

昨年11月から提供されているバージョンがこちら。脆弱性があります!!

$ uname -a
Linux kyouhei 2.6.32-696.16.1.el6.x86_64 #1 SMP Wed Nov 15 16:51:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

対策について

Google側が管理するホストマシーンはすでにMeltdownはもちろん、Spectreにも対応済みです。 この対策にはRetpolineという新しいテクノロジーが使われています。Retpolineはカーネルコンパイル用のコードが配布されているので試すことができますし、今回使った脆弱性診断ツールも対応しています。

ただしユーザのVMには対策が必要です。しかし、カーネルアップデートはデリケートな問題です。 もちろん脆弱性などない環境に越したことはありませんが、システム停止につながってしまっては本末転倒。十分に検証を行ってからアップデートを行いましょう。


株式会社grasys(グラシス)は、技術が好きで一緒に夢中になれる仲間を募集しています。

grasysは、大規模・高負荷・高集積・高密度なシステムを多く扱っているITインフラの会社です。Google Cloud、Amazon Web Services (AWS)、Microsoft Azureの最先端技術を活用してクラウドインフラやデータ分析基盤など、ITシステムの重要な基盤を設計・構築し、改善を続けながら運用しています。

お客様の課題解決をしながら技術を広げたい方、攻めのインフラ技術を習得したい方、とことん技術を追求したい方にとって素晴らしい環境が、grasysにはあります。
お気軽にご連絡ください。

株式会社grasys | 採用情報