Skip to main content

Fujitsu

Japan

CPUの脆弱性「Spectre(スペクター)」と「Meltdown(メルトダウン)」

2018年の年明け早々からCPUの脆弱性「Spectre」と「Meltdown」が公開され、話題となりました。
「Spectre」と「Meltdown」の脆弱性は、OSやアプリケーションのように限定的なソフトウェアにおけるバグに起因するものではなく、CPUのアーキテクチャーにかかわるハードウェアレベルの脆弱性であり、現在稼働している幅広いコンピュータ機器に影響があることからメディアなどでも大きく取り上げられ世間を騒がせることとなりました。

これらの脆弱性は、CPUの高速化手法である「投機的実行(speculative execution)」と「アウトオブオーダー実行(out-of-orderexecution)」の機能に存在していました。この機能がどのようにして高速化を実現しているかを説明します。

  • 投機的実行(speculative execution)
    何らかの分岐処理がある場合、分岐条件が確定する前に、一方もしくは複数の分岐後の処理を先読みして実行します。先読みすることでCPUが遊んでいる時間を減らし、高速化を実現している技術です。先読みが外れた場合は、先読みした処理は取り消されます。
  • アウトオブオーダー実行(out-of-orderexecution)
    その名のとおり、処理順序を守らずに、直前の処理が終わっていない状態で次の処理に着手する技術です。例外の発生などによって前の処理が中断されると、先に実行した処理は取り消されます。

このような高速化手法において存在する脆弱性「Spectre」と「Meltdown」は、それぞれ以下のような手順による悪用が想定されています。

  • Spectre(スペクター)
    1. あるプロセスの投機的実行で、読まれてはいけない情報をCPUのキャッシュメモリに読み込むように仕向ける
    2. 別プロセスでキャッシュの情報を参照することで、読まれてはいけない情報を読むことが可能となる
  • Meltdown(メルトダウン)
    1. ある程度時間がかかる繰り返し処理などで、一定時間後アクセスが禁止されている領域をアクセスするような処理を書いておく
    2. 例外が発生するであろう処理の後に、アクセス履歴をCPUのキャッシュ内に残すような処理を書いておく
    3. アクセスが禁止されている領域にアクセスすると、例外が発生して処理が中断される
    4. アウトオブオーダー実行により、例外発生前に2.の処理が実行される
    5. 4.のCPUのキャッシュを読み取ることにより、物理メモリのどの場所にアクセスが禁止されている情報があるかを判断して、参照することが可能となる

これらのCPUの設計上の脆弱性を根本的に解決することは事実上難しく、当面の対策としてはOSなどソフトウェアの修正プログラムを適用することで影響を緩和することを狙っています。ただし、配布された一部の修正プログラムに不具合が存在したため、使用中止を呼びかけるといった混乱も発生していることから、今後も注意して情報収集を行う必要があります。

今回の脆弱性のように、OSやソフトウェア以外の思いもよらないところに脆弱性が存在し、大騒ぎとなるケースが今後も発生するかもしれません。
継続的に情報収集・分析を進めることで、自組織にとって必要な対応を冷静に見極めて、影響を最小限に抑える、被害を極小化するための施策を講じるといった取り組みが必要と考えます。

合わせて読みたいホワイトペーパー

関連ソリューション

お問い合わせはこちら

Webでのお問い合わせ

入力フォーム

当社はセキュリティ保護の観点からSSL技術を使用しております。

お電話でのお問い合わせ

0120-933-200 富士通コンタクトライン(総合窓口)

受付時間 9時~17時30分
(土曜・日曜・祝日・当社指定の休業日を除く)