CPUに脆弱性ってどういうこと?影響と対策は?

記事全体のイメージ

こんにちは、さきです!
インテル性のプロセッサー脆弱性について発表されて、色々な情報が出ていたので、公開されている「現状と対策」についてまとめてみました!

※(1/9)対応状況を追記しました!

どんな脆弱性?

どんなデータも、必ずCPUで処理されます。どうでもいいデータも、重要なデータも全てCPUが処理します。

今回の脆弱性は、特定の条件下において、CPUで処理中のデータを盗み見たりすることができてしまう、という内容でした。(現在、被害報告はまだ無いようです)

問題箇所はソフトではなく、ハード

今回のCPU脆弱性は、ソフトウェアではなく、ハードウェアに問題があるそうです。影響を受けるのはCPUを搭載している機器で、パソコン、スマートフォン、タブレットなどです。

2つの脆弱性、「Spectre」と「Meltdown」

今回発見された脆弱性は大きくわけて2種類あるようです(細かく言うなら3つですが、この記事では細かくは説明しません)。ひとつは「Spectre」、もうひとつが「Meltdown」と命名されました。どんな脆弱性なのかもう少しだけ詳しく触れてみます。

Spectre

Spectre(スペクター)は、アプリケーションとアプリケーションの間の壁を越えて情報を盗み見ることができる脆弱性です。どういうことかというと、例えば今、「悪意のある電卓アプリ」と、「買い物をするためにクレジットカード番号を入力中のブラウザ」を同時に開いていたとします。すると、「悪意のある電卓アプリ」側から、クレジットカード番号を盗み見ることができてしまうという事です。
spectreのイメージ

また、「悪意のあるページ」を開いているブラウザの別タブでクレジットカード情報を入力していたとして、それも「悪意のあるページ」から盗み見れてしまう可能性があります。

ただ現実問題としては、悪用するのが非常に難しい脆弱性だそうです。かと言って100%大丈夫とは言い切れないので、対策しておくに越したことはなさそうです。

Meltdown

Meltdown(メルトダウン)は、アプリケーションとOS間の壁を越えて情報を盗み見ることができる脆弱性です。何の権限も持っていない普通のアプリケーションが、OSレベルの権限が無ければアクセスできない領域の情報にアクセスできてしまうんですね。
meltdownのイメージ

これで何が起こるかというと、例えば「仮想環境」に対する悪意ある行為です。

近頃よく耳にする「VPS(バーチャル・プライベート・サーバー)」。1台のサーバーマシンの中に、仮想的に複数台のマシンを用意して、現実には1台しかマシンが無いのに、複数台のサーバーを運用することができる技術があります。現実のマシンに入っているOSを「ホストOS」、仮想マシンに入っているOSを「ゲストOS」と呼びます。

例えば、50個のゲストOSを仮想状態で運用しているマシンがあったとします。このゲストOSの中のひとつにアクセスし、脆弱性「Meltdown」をもって不正アクセスすると、マシンの物理メモリを盗み見ることができます。その結果、物理的なメモリやCPUは共用で使っているわけですから、アクセスされたひとつのゲストOSだけでなく、残り49のゲストOS、さらにはホストOSがメモリに展開しているデータを全て盗み見ることができてしまいます。

Meltdownに関しては、実際に実証実験を行ない、ゲストOS側からホストOSのメモリへアクセスすることに成功したそうです。

どのCPUに脆弱性が?

メーカーを問わず、現代のほとんどのCPUに見られる脆弱性が「Spectre」、現時点ではIntel製CPUとARM製の一部のCPUに見られる脆弱性が「Meltdown」だということでした。表にまとめてみました。

項目 Spectre Meltdown
対象のCPU ほぼ全てのCPU Intel製CPU、ARM製CPUの一部
脆弱性の内容 アプリ間の不正アクセス アプリが不正に高い権限を持つ

悪意ある行為の踏み台となるケースも

ただ情報を「盗み見る」だけならば、例えば重要なデータ・情報を全く入れていない、入れる予定もないマシンであれば気にする必要はないのかもしれません。

しかし、ハッキング・クラッキングの手口のひとつに「メモリ上のデータを正しく把握することで、不正なコードが実行可能となり、悪意ある行為を行なう」というものがあります。少し前に遠隔操作ウイルス事件がありましたが、同じように、自分のマシンが知らない間にどこかの誰かに対して攻撃行為を行なっている、なんてことになる可能性も。

対策方法

ソフトウェア側で対策が可能!

現状では、ソフトウェアのアップデートをかけることで、上記の脆弱性の危険を回避できます。
各社が順次対応して、修正アップデートをリリースしているようです!

Spectreの対策

Spectreについては、アプリケーション自身で強固なセキュリティを持つことが大切なんだそうです。なので、例えばブラウザの内容を盗み見られたくないのならセキュリティの高いブラウザを使用する、といった対策になります。
spectre対策のイメージ

主要なブラウザの対応状況です。

ブラウザ名 対応状況
Google Chrome 1/23のアップデートで対策予定
Firefox 最新版にて対策済
safari 近日中に対策予定
IE11、Edge 最新アップデートにて対策済

なるべく悪意のあるアプリを使用しないためには、信頼できるストアや配信元を選ぶことが大切です。
配信元のイメージ

Meltdownの対策

Meltdownについては、OSのセキュリティを高めることで対策します。
meltdown対策のイメージ

PC用のOS、スマホ用のOSがありますが、こちらも次々とアップデートがリリースされているようです。主要なOSを載せておきます。

PC向けのOS対応状況

OS名 対応状況
Windows10 最新アップデートにて対策済
Windows7/8.1 最新アップデートにて対策済(1/9追記)
Mac OS Sierra10.13.2にて一部対策済
ubuntu 対策予定(日付は未定)
Red Hat 最新カーネルにて対策済
CentOS 6、7共に最新カーネルにて対策済
debian 最新カーネルにて対策済

スマホ向けのOS対応状況

OS名 対応状況
iOS iOS11.2で対策済
Android 今月(1月)のセキュリティパッチで対策済

Androidはセキュリティパッチの配布タイミングがメーカーによって異なるので注意ですね!

また、アップデートにあたり若干はパフォーマンスの性能低下は起こるらしいです。現状出ている情報だと、「体感ではほぼ変わらない」という感想が多いのでそこまで心配することは無いのかもしれません!中には30%程度のパフォーマンス低下が見られたという報告もあり、環境によるのかもです。

VPSのゲストOSに関しては、カーネルを更新すると不具合を起こすサービスもありますので、ご自身の使っているVPSサービスをよく調べることが大切ですね!

ラズパイへの影響は…?

気になるRaspberry Piへの影響ですが、公式の見解を発見しました!

Why Raspberry Pi isn’t vulnerable to Spectre or Meltdown


こちらのページによると、そもそもラズパイに搭載されているCPUは今回の脆弱性とは無関係なCPUで、影響は無いそうです!よかった!

最後に

それではまたね!さき