CPUを狙うスペクター、メルトダウンとは 1

2018年初頭に、IT社会に衝撃のニュースが飛び込みました。そのニュースは、脆弱性問題「Meltdown(メルトダウン)」と「Spectre(スペクター)」でした。これは結構、重大な問題なのですが、パソコンに詳しくない方にとっては、そんなに重大なの?と、認識の温度差があるように感じました。それで、今回と次回のブログで、脆弱性問題「Meltdown(メルトダウン)」と「Spectre(スペクター)」についてご紹介したいと思います。

「Meltdown(メルトダウン)」と「Spectre(スペクター)」

2018年初から大騒動になっていたニュースは、パソコン内部のCPUと言われる部分に欠陥があったと発表されたことによります。各種CPUに「Meltdown(メルトダウン)」と「Spectre(スペクター)」という脆弱性(設計ミス)が発見されたと言う訳です。まず、CPUとは、パソコンのどこのパーツ部分なのでしょうか。

CPUとは

CPUとは、プロセッサーとも呼ばれています。CPUとは、Central Processing Unitので略称で、人間の体で例えると頭脳にあたります。小さいパーツなのですが、パソコンには必ず搭載されているパーツ部品です。その性能によって、パソコンの性能や値段に大きく変わります。

CPUのメーカーには、いろいろありますが、CMで一度は聞いたことがあると思いますが、「インテル、入ってる♩」のあのIntel(インテル)があります。その他にADMやIBM、東芝などがあります。

パソコンの頭脳であるCPUに問題があったと言うことは、本当に重大な問題があったと言えます。では、具体的に欠陥内容を見て行きましょう。

CPUの欠陥

ニュースでは、「Meltdown(メルトダウン)」と「Spectre(スペクター)」と名前で呼ばれている2種類の脆弱性(設計ミス)がCPUにあるとのことですが、その2種類の脆弱性は、以下の通りです。
「Meltdown(メルトダウン)」は、Intel製CPUに見られやすい特有の脆弱性と指摘されていますが、どんなプロセッサも対象となります。
「Spectre(スペクター)」は、Intel、AMD、ARM製などのすべてのプロセッサに内在する可能性が指摘されています。

どちらとも、最近のパソコンに搭載されているCPUですから、パソコン利用者は知っておいた方が良さそうです。

Meltdown(メルトダウン)の欠陥

「Meltdown(メルトダウン)」の脆弱性(設計ミス)は、簡単に言うとパソコンに搭載されている高速化のプロセス(実行命令)を悪用するものです。最近のIntel製のCPUには、高速処理を実現するためにチップ内に導入されていて、それが「speculative execution(投機的実行)」と言われる部分です。投機実行とは、ウィキペディアによると、下記のように説明されていました。

投機的実行(とうきてきじっこう、英: speculative execution)とは、コンピュータに必要としないかもしれない仕事をさせることである。この性能最適化技法は、パイプライン化されたプロセッサなどのシステムで使われている

つまり、入力データに応じて命令処理を分岐させ、論理的な「予測」に基づいて処理を事前に行うことで処理速度を高速化されています。予測が正しければ処理はそのまま続行され、予測が間違っていれば処理が中断され分岐点に戻って再実行処理がされいます。ですから、実行されるであろう処理を先回りして実行することで、その一つ前の処理の結果が出るまでの時間を有効活用する「最適化技法」が利用されています。これにより、パソコン利用者は、イライラすることなく処理スピードが早く作業できます。

問題点は、プロセッサが、投機的実行においてプロセスを分離されていないことにあります。つまり、プログラムやデータを記憶しておくメモリ管理内で低い特権と高い特権のそれぞれのデータを区別していないとのことです。それにより、悪意あるプログラムは投機的実行において特権のないコードでメモリにアクセスすることが可能なってしまいます。

要は、この動作が行われるときに、動作処理に必要なメモリ枠の管理が完璧に設計されていなかったと言うことです。

「Meltdown(メルトダウン)」の問題によって具体的にどんな問題が起こるのでしょうか。
調べてみました。一言でいえば、メモリの任意の箇所を、アプリでもデータが読み取れてしまうことがあるようです。

特権付きデータは破棄されるのが通常ですが、高速にアクセスするキャッシュメモリのデータは一時的に保存されています。そこに悪意あるコードがプロセッサの命令を注視してその応答速度から要求データがキャッシュにあるかどうかどうかを判断することができるとのことですから、アクセス不可能だったはずのキャッシュメモリを読み取ることで、悪意あるプログラムはパスワードや個人情報などの機密情報を盗み出せてしまいます。実際、1995年以降のIntel製CPU(2013年以前のItaniumとAtomは例外)で実行可能なことが報告されています。

メルトダウンの対策

家庭用パソコンの多くは、投機的実行のプロセッサが採用されていています。パスワードを含め、あらゆる情報がアプリやサイトから抜き取られてしまう可能性が十分にあります。ですから、怪しいアプリやサイトの利用を控えましょう。使用しているパソコンやスマホのOSのアプリを最新のものに保つことで、脆弱性問題に対応できます。