一般利用者向けスペクター・メルトダウンまとめ。正しく知って正しくビビろう。

こんにちは。不可思議絵の具です。

新年早々、超ド級のニュースがIT業界を賑わせています。
色々なメディアで取り上げられているので、ご存じの方も沢山おられることでしょう。

パソコン・スマホ・タブレットなどのIT機器の心臓部であるCPUに「Spectre(以下スペクター)」「Meltdown(以下メルトダウン)」というバグ(脆弱性)が発見されました

半端ない取り上げられようなので、これが「ヤバい」ということは伝わるかと思いますが、内容が難しくてピンと来ない方も多いのではないでしょうか。

また、「ヤバそうなのはわかったが、じゃあ、どうしたらいいの?
という思いが渦巻くと思います。

そこで、本記事では技術的な正しさは一旦置いておいて、

  1. どうヤバいのか(なぜ大きく取り上げられるのか)
  2. 結局どうしたらいいのか(どんな対策を取ればよいか)

の2点に集中して、一般的な利用者にできるだけ平たい言葉で解説してみようと思います。

正しく理解して、正しくビビりましょう。

まあ、結論としては

通常のOSやアプリによるバグ(脆弱性)と変わらず、
こまめにOSを(できればBIOSも)アップデートしましょう

という話に行き着きますが…。

技術的詳細を極力省略してザックリと説明しますので、識者にとっては物足りなく、歯がゆい内容になっているかも知れませんが、そこはお目こぼしください。

スポンサーリンク

どういう問題なのか

昨年末、セキュリティの専門家によってCPUに関する3つの脆弱性が発見されました。

これを総称したものが、「スペクター」「メルトダウン」と呼ばれています。

番号英語名
(共通脆弱性識別子)
日本語名通称
1bounds check bypass
(CVE-2017-5753)
配列の境界チェックバイパススペクター
(Spectre)
2branch target injection
(CVE-2017-5715)
分岐ターゲットインジェクション
3rogue data cache load
(CVE-2017-5754)
不正なデータキャッシュ読み込みメルトダウン
(Meltdown)

参考 Googleセキュリティチームのレポート(英語)

アプリ間のバリアーにCPU機能が必要不可欠

この後の理解のために、少しだけコンピュータの原理の話をします。

スマホを含む、現代的なコンピュータは、

  • OSとアプリの間
  • アプリとアプリの間

「バリアー」が張られており、お互いが干渉できないようになっています。

※OS…Windows、macOS、Androidなど。コンピュータを管理するプログラム
※アプリ…ブラウザ、Office、Photoshopなど。普通のプログラム

これのおかげで

  1. アプリがバグで止まってもシステム全体は無事で済む
  2. アプリが他のアプリに影響を与えずに済む
  3. 「機密情報を持つアプリ」と「そうでないアプリ」が安全に共存する

こういった便利さを実現しています。
(今回のCPUバグの影響を受けるのは③)

これらバリアー機能は、OSだけでは処理性能の問題が起きる上、安全の担保のためにハードウェアの協力が必要不可欠なため、CPUが持つ「特権機構」を利用して実現されています。

スペクターとメルトダウンはバリアーを無効化してしまう

が、スペクターとメルトダウンを上手く組み合わせると、

悪意のあるアプリが、バリアー(CPUの特権機構)をすり抜けて
OSや他のアプリが保持する機密情報を読み取れる

ということが判明しました。

すると何が起きるのか

この脆弱性を利用した悪意のあるアプリ(以下ウイルス)を実行すると、同一マシン上の機密情報を盗み読まれてしまいます

具体的にはこういったものです。

  • ID・パスワード
  • クレジットカード情報
  • 暗証番号(銀行・暗号通貨など)
まあ、原理上、読み取ろうと思えばどんなデータでも読み取れるんですが、ウイルス作者だってせっかく苦労して作るなら、金目の情報をもらいたいですよねw

どうヤバいのか

スポンサーリンク

クラウド・レンタルサーバー事業者に超特大インパクト

昨今では「クラウド・コンピューティング」といって、インターネット上に置かれたサーバーを利用することが流行っています。
(特に業務用。サーバーの運用・保守を業者に丸投げできるため)

クラウドでは1台のサーバーを複数の利用者が同居して利用しています。

ここで、悪意のある人間が今回の脆弱性を利用したウイルスをサーバー上で実行したらどうなるか?

  1. サーバー管理用のID・パスワードが盗まれる
  2. 他の利用者の機密情報が盗まれる
  3. 管理権を盗まれたサーバーが次の攻撃に利用される(踏み台)

こういった事故が発生します。

「クラウド」や「レンタルサーバー」は不特定多数にサーバーを貸し出す形態である上、業務利用が多い(=金目の情報が多い)ので、真っ先にクラッカーに狙われる分野です。

そこで、これらサーバー事業者は大急ぎで対策を進めています。

参考 マイクロソフト、CPUの脆弱性対策でAzureの計画メンテを前倒し、全リージョンの仮想マシンを今朝から強制再起動。Googleは対策済みと発表 (Publickey)

参考 CPU の脆弱性から Azure のお客様を保護するために (Microsoft)

参考 【重要】MeltdownおよびSpectre(CPUの脆弱性)による弊社サービスへの影響について (さくらインターネット)

当サイトが入っているエックスサーバーも昨日(1/6)早朝、緊急メンテナンスが行われました。
内容は明かされていませんが、恐らくこの件だと思います。

問題の影響範囲が広い

このスペクターとメルトダウン、冒頭では省略しましたが、CPUの持つ「投機実行」機能の不具合を悪用してバリアーを無効化します。

この「投機実行」機能は、CPUの処理能力向上には欠かせない技術で、現代のあらゆる種類のCPUに備えられており、影響範囲が非常に広いのが特徴です。

下記の表は各脆弱性と、影響を受けるCPUの対応表です。

番号英語名
日本語名
(共通脆弱性識別子)
通称影響
Intel製
CPU
AMD製
CPU
Arm製
CPU
1bounds check bypass
配列の境界チェックバイパス
(CVE-2017-5753)
スペクター
(Spectre)
2branch target injection
分岐ターゲットインジェクション
(CVE-2017-5715)
3rogue data cache load
不正なデータキャッシュ読み込み
(CVE-2017-5754)
メルトダウン
(Meltdown)
Cortex-A75
のみ有
影響を受ける機種(OS)Windows
Mac
Linux
Windows
Linux
Android
iOS
Linux

Intel製CPUはWindowsパソコンはもちろん、Macにも使われています。
また、サーバー用途では圧倒的シェアで使われています(前述のクラウド問題と強い関係)。

AMD製CPUはWindowsの自作パソコンではよく使われています。

Arm製CPUは昨今のスマホ・タブレットには、ほぼ搭載されています。
Androidだけでなく、iOS(iPhone, iPad, iPod)にも影響があります。
(ただしCortex-A75はまだ販売されていないので、メルトダウンの影響は実質ありません

一般的に流通している「パソコン」「スマホ」「タブレット」全てに影響があると言って過言ではありません。

しかもIntel製CPUに至っては最新型(第8世代:Coffe Lake)を含め、相当昔からある問題らしいのです。

少なくとも

  • Ivy Bridge(第3世代:2012年頃発売)
  • Haswell(第4世代:2013年頃発売)
  • Skylake(第6世代:2015年頃発売)

で問題確認済みとのこと。
(下手するとCore2まで遡るんじゃね!?>系譜

とにかく、影響範囲がメチャクチャ大きいのです。

「投機実行」の詳細(クリック・タップで表示)

「CPUが命令を実行する」という行為を細かく見ると、

  1. メモリから命令を読み込む
  2. 読み込んだ命令を解読する
  3. 解読した命令を実行する
  4. 実行結果をメモリに書き込む

という4つのステップを踏んでいます。

基本的にこれを直列に行わなければなりませんが、それでは処理性能の向上がすぐ頭打ちになってしまうので、近代的なCPUでは「命令を実行しながら別の命令を前もって読み込む」といった具合に、ある程度並列に処理するよう作られています。

また、アプリ(=プログラム)は「条件がAならばBを実行。そうでなければCを実行」というように条件分岐をひんぱんにしています。
なので、条件比較の結果が何であれ即座に結果を返せるよう、条件を無視してBもCも実行する場合があります。

これを「投機実行」と呼びます。

今回のスペクターとメルトダウンは投機実行時に特権機構(バリア)を超えてメモリを読めてしまうCPUの不具合を利用しています。

4Gamer.netに、とても分かりやすい説明が載っています。
(ってかここ、ゲーム情報サイトだよな…? 扱う内容が濃ゆくね?)

参照 Googleが発見した「CPUの脆弱性」とは何なのか。ゲーマーに捧ぐ「正しく恐れる」その方法まとめ (4Gamer.net)

対応が難しい

OSやアプリの脆弱性であれば更新すれば済む問題ですが、CPUはハードウェアなので変更ができません

正確には
「微調整ならBIOS更新で対応できなくはないが、
今回の問題は根本的すぎて設計から直さなきゃ無理
です。

よって、CPUを対策品に取り替えることでしか根本解決できません

脆弱性対策済みの新設計CPUにするまでは、OSやBIOS側で問題を回避しなければならず、いわゆる対処療法を続けるしかありません。

しかも対策品の準備は1日2日でできるものではありません。

対策品を設計して、動作検証して、製造工場を確保して、生産して……となると、絶対に年単位の時間がかかるハズです。

問題の完全な解消には相当な時間がかかります。

対応に処理速度の犠牲を伴う

OSやBIOS側で問題を回避(対処療法)するということは、本来しなくても良いチェックや、バリア機能の代替処理を追加するということです。

つまり処理速度が落ちます

対処療法に一番処理コストが掛かるのがメルトダウンで、AMD製のCPUは原理的にメルトダウンの影響を受けませんが、Intel製のCPUに関しては5%~30%の性能低下が想定されると言われています。

特にメモリに高頻度でアクセスする、下記のようなシステムに悪影響が想定されます。

  • データベースシステム
  • 多人数が同時アクセスするWebサーバー・ゲームサーバー
  • RAMディスク

高速性・即応性が求められるシステムでは例外なく、高速なメモリにデータを貯めて使う作り(キャッシュ)になっていますので、システムエンジニアにとって頭の痛い問題です。

参考 CPUの脆弱性対策パッチでSSDのランダムアクセスが大幅減速?影響をチェックしてみた (AKIBA PC Hotline!)

参考 「CPUの脆弱性」対策パッチで,ゲーム性能はどれだけ低下するのか。Intel製CPUを使って取り急ぎ現状を確認してみた (4Gamer.net)

結局どうしたらいいのか

スポンサーリンク

すみません。ここまでえらく長くなってしまいました。

一番知りたいのは

「で、何すればいいわけ?」

だと思います。

一般的な利用者はどんなアクションを起こせば良いのか?

影響範囲が大きいので騒がれてはいますが、結局のところ一般利用者目線では

通常のウイルス対策と一緒

です。

そもそも、攻撃の可能性が示されただけで、実際のウイルスが出回ったわけでもありません。

なので、ヒステリックになる必要はありません

そりゃあ、対策すると処理速度が落ちるなんてのは気持ちのいい話ではありませんが…。

【大前提】怪しいアプリ・サイトは開かない

  • 影響範囲が広く、
  • CPU交換しか根本対策が無い
    (しかも今まで誰もが信頼しきっていたCPUでの不具合)

という特徴から、ニュースサイトなどではセンセーショナルに取り扱われていますが、結局のところ、個人利用のレベルでは悪意のあるアプリをわざわざ実行しなければ発症しないわけで、通常のウイルス対策とやるべきことは何ら変わりありません。

  1. 出どころが不明なアプリは実行しない
  2. 知らない人からのメールの添付ファイルは開かない
  3. USBメモリをむやみやたらと差し込まない
  4. 怪しいサイトは見ない、クリックしない

こういったウイルス対策の鉄則を守っていれば、怖いものではありません。

ただし、そうは言ってもミスしてしまうのが人間ですので、OS・ブラウザー・BIOSを最新にして二重・三重の防御をします。

【優先度:★★★】OSを最新に更新

対策の基本は、OSを対策品にアップデートすることです。

Windows10には既に更新が配布されています(KB4056892)。

Windows7にも更新が配布されています(KB不明)。

Mac関連ではmacOS High Sierraでは10.13.2、iOSでは11.2で修正されています。
ただしこれはメルトダウン対策で、スペクター対策はまだのようです。

参照 ARM や Intel の CPU の投機的実行の脆弱性について(Apple)

Androidでの状況は不明です。

ただ、3大キャリアが販売するスマホは、すぐにOSアップデートが打ち切られるので、厳しいでしょうね。

恐らく、ブラウザーを最新版に更新するのが出来る限りの対策でしょう。

いずれにせよ、OSを可能な限り最新に更新することが必要不可欠です。

前述したようにOSを対策品にすると多少処理速度が低下しますが、致し方ありません。

【優先度:★★★】Webブラウザーを最新に更新

スペクター・メルトダウンを使ったウイルスはWebブラウザー(JavaScript)でも動作すると言われています。

要するに、変なページと銀行のページを一緒に開いていると、口座からお金を抜かれるなんてことがあり得るということです。

Google ChromeやFirefoxなどの著名なブラウザーは近日中に対策を施すと発表していますので、しばらくは特にこまめに更新しましょう。

【優先度:★★★】ウイルス対策ソフトを最新に更新

スペクター・メルトダウンによる攻撃は、ウイルス対策ソフトでは完璧な検知ができません

主な理由は2つあります。

  1. バリアーを破壊する行為(機密領域へのアクセス)が意図的なものなのか、ただのプログラムミスなのか区別が付きにくい
  2. CPU内部で行われる「投機実行」の不具合を利用しているため、所詮はOS上で動くアプリに過ぎないウイルス対策ソフトでは攻撃を直接認識できない

もちろん、攻撃っぽい動きの挙動をつかんで警戒する位はできるでしょうが、誤検出が増えるので感度の調整が難しそうです。

この件に関してはウイルス対策ソフトにできることは少ないといって良いでしょう。

しかし、だからといって何もしなくて良いわけではありません。
ウイルス対策ソフトをこまめに更新しましょう。

【優先度:★★☆】BIOSを最新に更新

難易度が高まるので星2つですが、さらに対応を強固にするにはBIOSの更新が必要です。

※BIOSはOSよりも下位に存在する、ハードウェアを制御するソフトです。

メーカー製PCを使っている人は各製造メーカーのサイトを、自作PCを使っている人は各マザーボードメーカーのサイトで更新状況を確認する必要があります。

【優先度:☆☆☆】AMD製CPUを検討する

まぁ現実簡単じゃないし、パソコンの話になりますが…。

AMD製のCPUは原理上、メルトダウンの影響を受けません

つまり、唯一、大幅な性能低下がないパソコン用CPUということになります。

スペクターの影響は受けますが、その対策による性能低下は軽微とのことです。

参考 An Update on AMD Processor Security(AMD・英語)

CPUを換えるとなるとマザーボードも、下手するとメモリも換えなければいけませんので、買い替え時でも無ければ、まず無理ですけどね(^_^;)

対策の確認

ここでチェックツールが公開されています。

参照 「CPUの脆弱性」に手元のゲームPCは対策できているのか。Windows環境で簡単にチェックできるツールを作ってみた (4Gamer.net)

チェックツールを使わず、手動でやりたい方はこちら
(やっていることは上の記事と一緒だと思います)

記事公開後の動き(2018/01/29追記)

本記事を公開した後、各種修正プログラム(パッチ)が提供されましたが、状況は混沌としています。

OSを更新すると再起動を繰り返したり、

参照 脆弱性対策パッチの導入中止を――「リブート問題」でIntelが呼び掛け (ITmedia エンタープライズ)

原因は特定したはずが、

参照 Intel、脆弱性対処でHaswell/Broadwellシステムが予期せぬ再起動をする原因を特定 (PC Watch)

メーカーから「ん~、なんか胡散臭いから当面入れんといて」と言われたり。

参照 デルとHP、バグを含むインテルの「Spectre」向けパッチの提供を停止 (ZDNet Japan)

AMDのパソコンがとばっちりを受けたり、

参照 Windowsパッチで一部AMDマシンに不具合、Microsoftが対応説明 (ITmedia エンタープライズ) → その後直った

コトを穏便に済まそうと、Linuxに筋の悪い修正をしようとしたら代表から一喝されたり。

参照 LinuxのリーダーLinus TorvaldsがIntelのMeltdown/Spectre対策を“完全なごみ”と酷評 (TechCrunch Japan)

グダグダです。

こういうこと言うとネットのセキュリティ警察に怒られそうですが、OSやブラウザーはともかく、BIOSの更新についてはこのニュースに関して誰も何も言わなくなった頃(=安定)くらいでちょうど良いかもしれません。

まとめ

スポンサーリンク

以上、スペクターとメルトダウンの一般利用者目線での解説でした。

更に深く知りたい方は下記ページが最高の情報源になるでしょう。

参照 CPUの脆弱性 MeltdownとSpectreについてまとめてみた (piyolog)

事実を淡々と記録しているので難しそうに見えますが、メーカー別の状況・事件の時系列・周辺の動きなどが丁寧にまとめられており、とてもわかり易いです。

余談

ここからはパソコンオタクの独り言で、本題とは関係ありません(^^ゞ

余談1

私、

一昨年8月にCore i5(Skylake=不具合あり)のデスクトップを、
去年の12月にはCore i7(KabyLake=不具合あり)のノートを

買ったばっかですよ…勘弁して(TдT)

余談2

現在、パソコン向けCPUはメーカー製、自作問わずIntelの独壇場です。

しかし、私が初めてK6-2で自作PCを作った頃…。
AMDは……それはそれは熱い存在でした。
自作erにとっては、今風に言うとでした。
(20年ほど前は、自作がPCを格安購入できる唯一の手段だった)

近年は、安かろう悪かろうで全くパッとしませんでしたが、昨年久し振りに熱いやつ(Ryzen)が出てきましたし、ここの所、Intel製CPUは今回の不具合を含め、他にも色々問題が起こっています。

関連記事 Intel製CPU(Skylake・Kaby Lake)にハイパースレッディングのバグ発覚

参考 Intel MEの脆弱性バックドア疑惑(PC Watch)

今回のメルトダウン対策によってIntel製だと性能劣化があるとなると、最高性能を求めるゲーマーなんかは特に、Ryzenを検討する人が増えるかもですね。

参考 公式サイト

参考 価格相場

ある意味AMDにとっては、ココ数年、最高・最後の追い風かもw

OSパッチ当ての前後でベンチマークを取ってみたが…(2018/01/12追記)

ちょうど、KB4056892パッチを当てる前のThinkpad X1 Carbonがあったのでベンチマークを取ってみましたが、パッチ前よりもパッチ後のほうが数字が良いという謎の結果に。

ベンチマークソフトOSパッチ当て前OSパッチ当て後
PC Mark 10 v1.0.141331253242
CPU-Z 1.82.1.x64Single:309.3
Multi:963.3
Single:367.8
Multi:1043.7
geekbench 4.2.0Single:4095
Multi:7665
OpenCL:20133
Single:4186
Multi:8303
OpenCL:20267
3DMark v2.4.4180372384
CrystalDiskMark 6.0.0画像画像

関連記事 Thinkpad X1 Carbon(2017) ベンチマーク結果

測り方がマズかったのでしょう。
ちょっと、意味が良く分からない結果になってしまいました。
(通説によれば、必ず数字が悪くなるはず)

BIOSを更新したら、また測ってみようと思います。

では(^O^)/