コンピューターセキュリティの基本に「隔離」という考え方がある。他人が書いた怪しげなコードは信頼せず、きちんと閉鎖された制限のある環境で実行することをいう。そうしないと、ほかのプロセスを盗聴したり、コンピューター全体を調べ回ったりするおそれがあるからだ。

仮にそうした防護壁が、コンピューターの基盤となるハードウェアに潜む欠陥によって破られることがあったとしよう。そうなればコンピューターの拠り所でもある最も基本的な保護機能が無効化され、あらゆる産業にとっての緊急事態が訪れる。

セキュリティ研究者は2018年早々、LinuxやWindowsの開発者が深刻なセキュリティホールに対するアップデートのベータ版として公開し始めた一連の更新情報に注目した。インテルのチップにあった“バグ”により、低い権限レヴェルで実行されているプロセスが、コンピューター上の聖域ともいえるカーネル（OSの中核をなすソフトウェア）が使用するメモリ領域にアクセスできるというのだ。

悪意あるプログラムが秘匿性の高い情報を盗み出す

このバグは、インテルが処理を高速化するために採用した手法に由来するとされる。このバグを突いた攻撃によって理論的には、悪意のあるソフトウェアがコンピューターやスマートフォン上のほかのプロセスやデータに深く入り込み、監視できる可能性がある。

さらに、Google Cloud ServicesやAmazon Web Servicesで動くサーヴァーのように複数のユーザーが利用するコンピューターでは、ハッカーが特定のユーザーのプロセスだけでなく、同一の共有サーバ上で実行されているほかのプロセスの中身までのぞくことさえできるようになる可能性がある。

1月3日（米国時間）の夜、グーグルの「Project Zero」、グラーツ工科大学、ペンシルヴェニア大学、アデレード大学（オーストラリア）などの大学、Cyberus、Rambusなどのセキュリティ企業からなる大規模な研究チームが、この欠陥に由来する2種類の脆弱性の詳細について発表した。この脆弱性は、「Meltdown」「Spectre」と名付けられた。

「ハードウェアのバグによって、コンピューター上で処理されているデータをプログラムが盗み出すことができます」と、研究者が立ち上げたウェブサイトでは、この攻撃について説明されている。「通常のプログラムは、ほかのプログラムのデータを読むことを許可されていませんが、悪意のあるプログラムがMeltdownとSpectreを利用することにより、実行中のほかのプログラムがメモリーに記憶している秘匿性の高い情報を入手できてしまうのです」

いずれの攻撃も基本的には同じ原因によるものである。Meltdownは悪意のあるプログラムによって、メモリー領域にある本来より高い権限レヴェルの情報を読み出せるようにする。これに対してSpectreは、コンピューター上で実行されているほかのアプリケーションのメモリー領域からデータを盗み出す点で異なっている。そして研究者たちによれば、Meltdownはインテル製チップに特有のバグだが、SpectreについてはAMDやARMのプロセッサーでも確認されているという。

アムステルダム自由大学のセキュリティ研究者で、チップレヴェルのハードウェアセキュリティの専門家であるベン・グラスによると、攻撃は根深く深刻なセキュリティ侵害を引き起こすという。「この脆弱性を利用し、攻撃者が何らかの方法でコードを実行できるとすれば、それはもはや手に負えません」と、グラスは指摘する。「信頼されていない、隔離されて実行されるどんなプロセスに関しても、安全性は失われてしまいました。すべてのプロセスがほかのすべてのプロセスを監視し、OSのカーネル内の秘密情報にアクセスできてしまうのです」

鍵を握る「投機的実行」

3日にMeltdownとSpectreについて公式に発表される前のことだ。アムステルダム自由大学のVUSECというセキュリティグループに所属するグラスの同僚、エリック・ボスマンは「投機的実行」と呼ばれるチップの機能を利用し、インテル製チップに対する攻撃の再現に成功した。

最近のインテル製プロセッサーは、コードの実行中にアルゴリズムが入力データ（例えば、口座に取り引きに必要な残高があるか否か）に基づいて2つに分岐するポイントに来ると、「投機的に」分岐先の処理を実行し、処理時間を高速化している。言い換えれば、当てずっぽうであらかじめ命令を実行しているのだ。間違った道を進んでいたことがわかるとプロセッサは分岐点まで戻り、投機的に実行していた結果を破棄する。

VUSECのボスマンは、インテルのプロセッサーが投機的実行を行う際に、カーネルのメモリー領域から信頼されていない権限レヴェルの低いプロセスを、完全には分離できていないことを確認した。これはハッカーがプロセッサーをだまし、権限のないコードが投機的実行を利用し、カーネルのメモリー領域をのぞき込めることを意味している。

「プロセッサーの処理はたいていの場合は先に進みすぎており、実行すべきでない命令を実行しています」と、脆弱性を発見した研究チームのメンバーでグラーツ工科大学のダニエル・グラスは述べた。

特別なメモリー領域から任意のデータを取得することは簡単ではない。プロセッサーが投機的実行による処理を終えてしまえば、処理の結果は削除されてしまうからだ。しかし、消される前には、直近で利用したデータへのアクセスを高速化するためにプロセッサーに設けられた一時的な記憶領域、すなわちキャッシュに記憶される。

これを利用すれば、任意のデータがキャッシュされているかどうか見分けられるコードを、ハッカーがつくれるかもしれない。そして一連の投機的実行とキャッシュの精査により、センシティヴな個人情報やパスワードまでも含むメモリ領域の一部を再構築できる可能性が生じる。

このバグを修正しようとする開発者たちの動きを見ていたセキュリティ研究者の多くは、インテルのセキュリティホールの影響が、ハッカーがアドレス空間配置のランダム化と呼ばれるセキュリティ保護を突破できる程度だろうと考えていた。

しかしボスマンによって、バグがそれ以上に深刻なものであるという説が証明された。「2つの結果が予測されていましたが、実際にはそのうちの悪いほうでした」と、ボスマンは言う。

各社は対応を急ぐ

インテルはMeltdownとSpectreに対する声明で、秘匿性の高い特権つきデータを盗聴することができることは認めたものの、「これらの脆弱性によるデータの破損、修正、消去が生じる可能性はありません」と発表した。声明ではさらに、「多くの種類のコンピューター機器（さまざまなメーカーのプロセッサーやOSを含む）がこの脆弱性の影響を受けます」と指摘し、ARMとAMDのプロセッサーにも言及している。

「ARMは確かにインテルやAMDと協力しており、Cortex-Aを含む特定のハイエンドプロセッサーで使われている投機的実行技術を利用したサイドチャネル解析（ハッキング手法の一種）の手法に対処しています」と、ARMの広報責任者フィル・ヒューズは述べている。「この手法はマルウェアをローカルで実行する必要があり、特権つきのメモリー領域からデータを読み出せる可能性があります」。ヒューズによれば、ARMのIoT向けチップであるCortex-Mシリーズには影響がないという。

一方、AMDは『WIRED』US版に対するメールに対して「管理された専用の研究環境で調査を行っている」としたうえで、プロセッサーのアーキテクチャーから判断して「現時点ではAMDの製品のリスクはほとんどゼロであると確信している」と説明している。

インテルのプロセッサーに大きく依存しているマイクロソフトは、次回のアップデートでこの問題に対応するという。同社は「当社はこの業界全体に影響を及ぼす問題を把握しており、チップメーカーと緊密に連携し、顧客を保護するための対策を開発し、テストしています」との声明を発表した。「クラウドサーヴィスについては対応策を展開中であり、Windowsの利用者向けにセキュリティアップデートをリリースし、AMD、ARMおよびインテルのチップに影響のある脆弱性から保護します。現在のところ当社の顧客に対する攻撃にこの脆弱性が使われたとの情報はありません」

Linuxの開発者はすでに修正版をリリースしている。これは、おそらくグラーツ工科大学の研究者が昨年発表した、OSの大幅な変更を推奨する「KAISER」と呼ばれる論文に基づくものと思われる。同じくインテル製品をノートパソコンやデスクトップPCに使用しているアップルにもコメントを求めたが、回答はなかった。

共有サーヴァーによるクラウドサーヴィスを提供しているアマゾンは、すぐに問題を解決するための措置をとることを明言。「この脆弱性はサーヴァー、デスクトップ、モバイル機器に使われているインテル、AMD、ARMといった現代的なプロセッサーアーキテクチャーに20年以上にわたって存在し続けてきた脆弱性です」との声明を発表した。「現時点ではAmazon EC2で稼働しているすべてのインスタンスのうち、わずか数パーセントしか保護されていません。残りの部分については、あと数時間で完了する予定です」

同様のクラウドサービスを提供しているグーグルにも対応についてコメントを求めたが、即座に回答は得られなかった。

速度低下という「コスト」

インテルのセキュリティホールを修正するOSのパッチによって、コストが発生するかもしれない。カーネルのメモリー領域と特権なしのメモリー領域をきちんと分離するには、特定のプロセスについて大幅な処理速度の低下が発生しかねない。

インテルのセキュリティホールについて最初に報じたRegisterの分析によれば、速度低下は一部のケースでは最大30パーセントになりうるという。ただし、一部のプロセスや新しいプロセッサーの場合には、速度低下の程度は小さくなる傾向があるという。インテルは同社製品に関する声明で「パフォーマンスへの影響は負荷に依存するもので、平均的なユーザーについては大きな影響はありません。徐々に影響は緩和されるでしょう」と述べている。

MeltdownとSpectreを解消するパッチが広く行き渡るまでは、攻撃を無力化させるための速度低下に関するコストがどの程度になるかは明らかでない。しかし、アップデートによってパフォーマンスに影響が出たとしても、安全のためには仕方がないことかもしれない。プロセッサーの速度を抑えるほうが、最高機密の漏洩と比べればまだましだろう。