2つの脆弱性「メルトダウン」と「スペクター」

ハンク・グリーン氏:「メルトダウン」と「スペクター」をご存知でしょうか。知らなければ、ジェームズ・ボンドの悪役のような名前に聞こえるかもしれません。

しかし「メルトダウン」と「スペクター」は、コンピュータ、スマートフォン、タブレットなどにある近代CPUの脆弱性です。基本的なことを説明すると、スペクターとメルトダウン、この2つの脆弱性の特徴は異なっています。CPUは中央管理室のような場所で、コンピュータに計算する能力を与えています。

CPUはさまざまなプログラムが動くように指示を出します。簡単な計算式であったり、ロジックが必要な計算です。例えば、2つの数字を比べて、誰かが飛行機のチケットを買うのに充分なお金を持っているかを確認し、その取引を完了させるような処理です。

CPUは複数のタスクを何度も繰り返し実行しています。メモリストレージからデータを取り出し、指示を実行し、その後メモリに新しい情報を送り返すという作業です。これらのプロセスによりテキストファイルを開いたり、ブラウザを読み込んだり、ゲームができます。すべてのプログラムはCPUに依存しています。

CPUが実行する「投機的実行」と「分岐予測」

情報を送ったり、送り返したりするのはCPUの処理の中ではもっとも時間と手間がかかります。そのため最近のCPUはさまざまなトリックを使って仕事を早くできるようにデザインされています。そうすればプログラムが素早く動けるようになるのです。そのトリックの一つは「投機的実行」と呼ばれます。

結局のところ、プログラムは一連の指示でしかないので、近年のCPUは次に何をするのかを推測するようにできています。それを「分岐予測」と言います。

「投機的実行」とは、CPUがデータを得てから、分岐するであろう可能性の中でいくつかの指示を実行するという意味です。日常生活の場面でたとえるなら、あなたのパートナーが朝にコーヒーを欲しいだろうと予測して、あなたはコーヒーを余分に作ります。

予測が間違っていれば、その分岐は破棄され、指示に沿ったプロセスが他の分岐に続いていきます。パートナーが「カフェイン抜きがいい」と言うので、あなたは余分に作ったコーヒーを捨て、代わりにオレンジジュースを注いであげるのと同じことです。

しかし、あなたの予測が正しければ、パートナーは家を出るのがもっと早くなるのです。それと同様に、あなたのCPUの予測が正しければ、次の指示を素早く始めることができます。

しかし、このシステムにエラーが生じる可能性もありますし、これがメルトダウンやスペクターのような安全面での問題となるのです。コンピュータ内のほとんどのプログラムはすべてのメモリにあるすべてのデータにアクセスすることは許されていません。

iTunesがMP3のファイルは取り出せるのに、スマホのパスワードを読み込めないのと同じです。これにより基本的なセキュリティは守られます。しかし研究者はCPUが投機的実行を行うことにより、アクシデント的に抜け道を見つけてしまうと言うことに気がつきました。

賢いコードを設定することにより、実行されるはずだった指示が的外れで、その結果が使われなかったとしても余分な計算をしてしまうCPUの傾向を逆手にとられました。

そのため、見てはいけないはずのコンピュータのメモリの一部に直接アクセスできないとしても、送った指示に沿ってCPUが行ってきたことを逆に辿っていくと、そのメモリに何が保存されているのか、予測できてしまうのです。

このような脆弱性を利用するのはややこしい。そのため、ここでいうのは非常に簡略化した説明です。しかし重要なのは、誰かがある会社の最も繊細な情報、例えばパスワード、電子メール、暗唱かコードなどにアクセスできる可能性があります。

2つの脆弱性は似ている

これを発見した研究者によれば、メルトダウンとスペクターは全く異なる脆弱性ですが、とても似ています。メルトダウンはオペレーションシステムという、コンピュータすべての活動を司る主なプログラムを巻き込みます。

そうすると、いつでも、すべてのメモリにアクセスすることができてしまいます。メルトダウンは各プログラムとオペレーティングシステムの核との間の壁を壊してしまうので、プログラムが本来よりもずっと多くのメモリにアクセスできる可能性が出てきます。

名前の通り、セキュリティバリアをメルトダウンします。つまり溶かしてしまうのです。あなたのオペレーションシステムが何であれ、ほとんどすべての1995年以降のインテルプロフェッサと、QualcommやARMという会社により製造された製品はメルトダウンに太刀打ちできません。そのため、あなたが使っているのがMacであれ、Linuxであれ、ほとんどの人に影響があるということです。

そしてスペクターはプログラム同士の間をいくつかの方法により破壊することができてしまいます。それにより、攻撃する人はもしかするとある一つのプログラムを使って他の人が使ったメモリを覗くことができてしまうかもしれません。

これは投機的実行を意味する「Speculative execution」からとってつけられた名前で、投機的実行のせいでこれらの欠陥が起きてしまうのです。これも悪用するのも大変ですが、解決するのも大変で、研究者たちはこの問題は長きにわたり私たちに取り憑く問題になるであろうと言っています。

スペクターはIntel、Qualcomm、ARM、そしてAMDによって製造されたプロセッサに影響を及ぼすと言われていますが、それが組み込まれたすべてのコンピュータ、スマートフォン、タブレットに脆弱性があるという意味です。

そうなると膨大な機械に影響が及びます。

アップデートを行うべし

初めの頃、コンピュータ科学者たちはこのセキュリティの問題に対処するには、すべての攻撃可能なCPUを物理的に置き換えるしか方法がないと考えていましたが、そこまでしなくてもできることがいくつかあるということがわかりました。

メルトダウンはパッチと呼ばれるソフトウェアのアップデートをすることによって防げます。そのアップデートは異なるプログラムとオペレーションシステムの一部との間のメモリ共用を制限します。

スペクターは扱いにくいです。完全に抹殺するには実際のハードウェアのアップグレードが必要になるかもしれません。しかしIT企業は今のところ、力を尽くしてソフトウェアでの解決をはかっています。

Microsoft、Apple、Google、そしてLinuxはすでにソストウェアパッチをリリースし、セキュリティリスクを最小限に抑えようとしています。そしてインテルはそのファームウェアのアップデートを発表し、プロセッサの中ある読み取り専用ソフトとなっています。

今のところメルトダウンやスペクターを用いたセキュリティ攻撃は確認されていませんが、それらがどのような働きをするかに関しては明らかになっています。

そのため、あなたのオペレーションシステムやブラウザがアップデートされているか、もう一度確認してください。もちろんあなたのウイルス対策ソフトも確認してください。そうすれば有害なプログラムが入り込んだり、これらの欠点を悪用するのを防ぐことができます。

そしてもし、そのようなアップデートがぐっとあなたのコンピュータの動作を遅くさせると聞いたとしても、心配はしないでください。もちろん、異なるコンピュータの部分がメモリを共有するのに制限をかけるとパフォーマンスに影響が出るのは確かです。

なぜなら投機的実行のおかげで動作が速くなるからです。しかし、その違いに気づかれることはほとんどないでしょう。CPUの力をたくさん必要とするプログラム、ビデオをレンダリングするプログラムなどが他のプログラムより大きな影響を受けるでしょう。

しかし最新の研究では、通常のユーザーにとってはそれは大きな違いではないと言われています。そのため、アップデートしない言い訳は通用しません。

後回しにしているスマートフォンやラップトップのアップデートのダウンロードをするのは今です! WannaCryとEquifaxの間ではコンピュータセキュリティ侵害の見出しが2017年にたくさん見られました。

2018年も同じ状態が続きそうです。何が起こるにせよ、みなさんがアップデートするかのように、我々もみなさんに新しい情報を提供し続けます。