Vision

メルトダウンとスペクターとは?GeekWireによる世界のコンピューターチップの問題点ガイド

メルトダウンとスペクターとは?GeekWireによる世界のコンピューターチップの問題点ガイド
ビッグストックフォト

メルトダウンとスペクター。おそらくこれらの言葉をよく耳にしたことがあるでしょう。これらは、私たちのコンピューターやデバイスだけでなく、データセンターやクラウドでも使用されている多くのコンピュータープロセッサで発見された脆弱性です。

では、これらは一体何なのか、テクノロジー業界にとって何を意味するのか、そして私たちはどう対処すべきなのか。GeekWireのクラウド&エンタープライズ担当エディター、トム・クレイジットが、GeekWireポッドキャスト特別版でその入門編をお届けします。

以下を聞いて、編集された要約を読み続けてください。

Meltdown と Spectre とは何ですか?

これらは、昨年6月にGoogleと複数の大学の研究者によって発見された2つの脆弱性です。非常に複雑なシステムですが、基本的には、誰かが最新のプロセッサの命令実行方法を悪用し、パスワードなどの機密情報が保存されているチップの保護領域にアクセスする方法を発見したというものです。Meltdownではまさにそれが可能でした。誰かのコンピュータでアプリを実行できれば、理論的にはパスワードの一部にアクセスできてしまう可能性があります。Meltdownはパッチ適用可能で、全員がシステムをアップデートすればすぐに収束すると思われます。一方、Spectreは少し異なります。Spectreは似たようなタイプの脆弱性ですが、包括的なパッチはありません。実装を困難にしたり、影響を軽減したりする方法がありますが、唯一の真の解決策は、この脆弱性を回避するためにプロセッサを再設計することであり、それには何年もかかるでしょう。

その間、特に Spectre に関しては、すぐにパッチがリリースされない場合、何が起こるのでしょうか?

脆弱性の悪用を困難にするパッチがいくつか適用されています。Spectreの特徴は、通常のアプリケーションではアクセスできないはずのコンピュータの階層にアクセスするための、極めて斬新なアプローチであることです。それほど斬新であるため、これを成功させるには高度な専門知識を持つ人物が必要になります。今週、概念実証攻撃がいくつか公開されました。しかし、概念実証と実際の攻撃は全く異なるものであり、多くのセキュリティ研究者はSpectreの短期的な影響はこれらのパッチで対処できるとかなり自信を持っているようです。しかし、これらの脆弱性が放置される時間が長くなればなるほど、より多くの犯罪者がこの脆弱性を実際に実装して悪用する方法を見つけ出そうとすることになり、長期的な軍拡競争はまさに始まったばかりです。

6月にはすでにこの事実が発覚していたのに、なぜ今になって明らかになったのでしょうか?なぜ業界の多くの人々にとって驚きなのでしょうか?

これは実は、世界の大手テクノロジー企業における重大な脆弱性へのアプローチとして、ごく一般的な方法です。もしGoogleの研究者や大学の研究者が、誰にも相談することなく6月に発見事項を発表していたら、その脆弱性を悪用して犯罪を企む者たちが行動を起こすのはずっと容易だったでしょう。これらのサーバーを多数運用する企業や大手クラウドプロバイダーに通知しなければ、パッチは提供されません。多くの人々が攻撃にさらされることになります。Intelやサーバーベンダー、クラウドベンダーに何らかの秘密保持契約を結んだ上で情報開示し、全員が協力してパッチを開発できるようにすることが、責任ある行動と言えるでしょう。

今週起きた問題は、情報が漏れ始めたことです。オープンソースプロジェクトであるLinuxにパッチを当てる場合、パッチはすでに利用可能であり、人々は何が起こっているのかを理解し始めます。そのため、展開はもう少しスムーズに進む可能性がありました。関係者全員がおそらくこれに同意すると思いますが、6か月の遅延により、Amazon Web ServicesやMicrosoftなどの企業は、この新しい現実に対応できるようにシステムにパッチを当てる時間を持つことになります。実際、Amazonは今週、このバグが公開される前から、影響を受ける可能性のあるシステムの大部分にパッチを適用しており、残りのパッチも今週中に完了すると発表しました。Microsoft Azureも同様のペースで進んでおり、来週初めまでにはすべて完了するはずです。Googleは、この問題を6か月前に発見したため、クラウドサーバーにすぐにパッチを当てました。

人々は何をすべきでしょうか?

どちらにもパッチは存在します。ただ、メルトダウンのパッチの方がはるかに信頼されているという点が異なります。メルトダウンに関して誰にとっても覚えておくべき重要なことは、コンピューターにパッチを適用し、ソフトウェアをアップデートすれば、個人のラップトップユーザーであろうと、大規模データセンターの責任者であろうと、ほとんどの場合問題ないということです。

Spectre は少し異なります。平均的なコンピュータユーザーにとって、Spectre についてはあまり心配する必要はないと思います。大量の消費者を狙った攻撃には利用されませんが、クラウドベンダーで働いている方や、機密情報を多く扱うデータセンターで働いている方にとっては、今後何年も注意を払う必要がある脆弱性です。

これまでにプロセッサでこれほどの規模のものを見たことがあるでしょうか?

約20年前、Intelのチップに重大なバグ、ハードウェアのバグが発生し、Intelは大規模なリコールを余儀なくされました。その結果、10億ドル近くの損失を被ったと思います。これは非常に大きな問題でした。この件でIntelは、その問題について非常に慎重に説明しました。彼らの立場は、これはエラーではない、チップは設計通りに動作している、というものでした。つまり、誰かがそれまで誰も考えつかなかった手法を考案し、業界関係者を驚かせたのです。なぜなら、この脆弱性を悪用する方法は、現代のプロセッサ設計や、現代のアプリケーションの要求に応えるためのごく一般的な方法だからです。関係者は皆、チップにこの脆弱性を実装することでシステムを完全に安全に保てると長年信じてきましたが、実際にはそうではなかったのです。

昨年6月以前に、この手法を用いて実際にシステムを悪用した者がいたかどうかは、誰にも完全には分かりません。現時点でそれを知る方法はありません。しかし、オペレーティングシステムは、このセキュリティ対策をチップが担っているという前提で設計されていました。しかし、チップは誰もが考えていたようにはセキュリティ対策を講じることができず、ソフトウェアで修正を実装する必要がありました。そのため、一部のシステムでパフォーマンスが低下するのではないかと懸念されていました。オペレーティングシステムにコードが追加されることになり、場合によっては実行に時間がかかる可能性があるからです。

インテルは強力すぎる、強すぎる、したがって脆弱すぎる、という主張は成り立つだろうか?

インテルについては、20年間も前から同様の主張が続いています。特にサーバー・データセンター市場においては、今まさに興味深い局面を迎えていると思います。AMDが先日、性能面でかなり優れた新しいサーバーチップをリリースしたばかりです。チップコアを設計するARMも、ついに多くの人が利益を生むと見ているサーバー用プロセッサをリリースしました。インテルはデータセンター市場の約95%を占めており、この市場で圧倒的なシェアを誇っています。たとえシェアを失っても、収益に大きな影響はないでしょう。今回の出来事が、これまで自社製品を購入する理由がなかった競合他社にチャンスをもたらすかどうか、非常に興味深いところです。さて、データセンターサーバーを購入する場合、あるいは自社製品用のサーバーを購入する場合、インテルの対応に少し不安があるという理由だけで、AMDやARMを検討するかもしれません。しかし、それが現実になるには何年もかかるでしょう。そして、何が起こるかは私たちにも正確には分かりません。

これは、Microsoft Windowsに対する脆弱性が次々と報道され、人々がデスクトップにMac、あるいはLinuxを、より安全な代替手段として検討していた時代と似ているように思えます。もっとも、その論理には多少の誤りがあるとはいえ。そこに類似点を見出すことはありますか?

ここで問題となるのは、複雑さと、この脆弱性を悪用してシステムを実際に攻撃することの難しさです。Windows XPや類似製品には多くの欠陥があり、簡単に攻撃できました。Word文書をクリックするだけで、あっという間にシステムを乗っ取られてしまうのです。これははるかに複雑な手法であり、特に全員がパッチを適用した場合、これほど広範囲にわたる影響を与えるとは考えられません。これは、Intelをはじめとするプロセッサメーカーの想像力の欠如によるものです。Spectreに関しては、この点を明確にする必要があります。パフォーマンスを向上させるための斬新な手法が、実際にはシステムに対して悪用される可能性があることを理解できなかったのは、想像力の欠如でした。そのためには変更が必要であり、Intelもそれを認めています。つまり、今後はこの点を考慮してプロセッサの設計を変更するということです。

実際のチップ設計についてほとんど知識のない人にとって、これらの脆弱性を悪用する手法とはどのようなものでしょうか?この業界に精通していない人にも理解しやすいように説明する方法はあるでしょうか?

プロセッサが一連の命令を実行する際、つまりコンピュータに何かを指示すると、オペレーティングシステムはプロセッサに「今すぐこれを実行する必要があります」という信号を送ります。プロセッサは「OK」と応答し、それを実行し、処理が実行されます。もちろん、これらはすべて数ミリ秒単位で行われます。最新のプロセッサは、パフォーマンスを向上させるために「投機的実行」と呼ばれる手法を採用しています。コンピュータで行う多くの処理では、常に同じ処理を繰り返しています。アプリケーションを切り替えたり、アプリケーションを起動したりします。コンピュータで行う処理のかなりの部分は、何度も何度も繰り返されます。プロセッサ設計者は、ユーザーが何をするかを予測し、その処理のための命令を事前にロードできることに気づきました。なぜなら、ユーザーがすぐに同じ処理を繰り返す可能性が高いと分かっているからです。これを「投機的実行」と呼びます。

基本的に誰かが、実行したい命令をメモリキャッシュに取り込むことで、投機的実行を偽装する方法を編み出したのです。今週、この件について話しているのを目にした多くの人が、Googleの研究者をはじめとする、この手法を編み出した人々の専門知識に驚嘆していました。あまりにも斬新な手法だからです。「すごい!これはまさにコンピュータサイエンスのオタクの技だ」と、多くの人が言っています。

これは非常に複雑な問題です。実際に悪用するには、膨大な専門知識が必要になると思います。しかし、ここ数年で明らかになったように、犯罪組織や外国政府のために活動する非常に有能なハッカーが多数存在し、彼らは間違いなく今、この問題の解明に多大な時間を費やしています。

「メルトダウン」と「スペクター」という名前は不吉です。人々はこれについてどれほど懸念すべきでしょうか?そして、エンドユーザーにとっての長期的な影響は何でしょうか?

個々のデバイスユーザーは、ソフトウェアをアップデートするだけで問題ありません。大規模なデータセンターサーバーを管理している場合、パッチ適用は当然のことであり、今回のケースについても当然行うべきです。しかし、一部の人にとっては、面倒すぎるパッチ適用によってパフォーマンスが低下するかどうかが問題となります。彼らは、データセンターをどのように設計し、どう運用するかについて、戦略的な判断を下さなければなりません。世界有数のセキュリティ組織であるComputer Emergency Readiness Team(CERT)は、この問題を解決する唯一の現実的な方法はハードウェアを撤去して新しいチップを搭載することだと支持者に推奨しています。Amazon、Microsoft、Googleは、Intelが新しいチップをリリースするのに合わせて、新しいチップへの切り替えを加速させるため、おそらく既にその計画を立て始めているでしょう。Intelは今年後半にこの脆弱性を回避したチップをリリースする予定です。ですから、実際にはそれほど長くはかからないかもしれません。しかし、Spectreの問題の一つは、現時点ではそれがどれほど長期的な脅威なのかがまだよく分かっていないことです。ほとんどの人がその存在を知ってからまだ数日しか経っていません。そのため、セキュリティ研究者は今年中この問題に取り組み続けるでしょう。おそらく年央頃には、長期的な影響についてより明確な見通しが得られるでしょう。

クラウドとセキュリティ テクノロジーの詳細については、GeekWire の Cloud Tech チャンネルをフォローし、毎週の Cloud Tech ニュースレターにサインアップして、6 月の Cloud Tech Summit にご参加ください。