IntelのCPUで新たに発見された脆弱性「Foreshadow」の解説ムービーをRedHatが公開中
Intelのプロセッサーに「Forshadow(L1 Terminal Fault)」と呼ばれる深刻な脆弱性が発見されました。この脆弱性を突かれた場合、OSやOS上で動作する仮想マシンのメモリなどの情報を第三者に盗み取られる可能性があるとのこと。この脆弱性が一体どのようなものなのか、RedHatが解説しています。
L1TF Explained in 3 Minutes from Red Hat - YouTube
IntelのプロセッサーからSpectreとMeltdownのバグが発見されたことから、多くのセキュリティ研究者が他に同様のバグが存在しないか調査してきました。そして、新たに発見されたのがL1 Terminal Faultです。このバグが悪用されてしまうと、多くの企業が使用するクラウドサービスから機密情報が盗まれてしまう可能性があります。
記事作成時点で各ソフトウェアベンダは、被害を最小限に抑えるための修正パッチを作成しており、多くの企業はパッチを適用する必要があります。
ここで、L1 Terminal Faultとはどのようなものなのか、ホテルに例えて説明してみます。
ホテルにチェックインすると、あなたは自分の氏名が書かれた宿泊する部屋のカードキーをフロントで受け取ります。
そして、このホテルでは食事などの費用を全てチェックアウト時に一括で精算するシステムだったとします。すると、あなたがホテルのレストランなどで行った食事を行ったときは、ホテルの従業員にカードキーを提示するだけで、チェックアウト時の料金に食事代が追加されることになります。
しかし、あなたが別の部屋に宿泊している人の名前とカード番号を知っていたとします。そして、食事後に本物そっくりの他人のカードキーを従業員に提示したら、食事代を他人に押し付けることができてしまいます。そして、この問題は別の部屋を借りている人がチェックアウトした時に初めて明るみになりますが、その時点ではだいぶ時間が過ぎているため犯人逮捕が困難になってしまいます。
サイバー犯罪者は、これと似たようなことをインテル製プロセッサーを搭載したサーバー上で起こすことができてしまいます。
CPUはメモリ(RAM)の情報を取得して計算処理を行いますが、メモリのデータアクセス速度は非常に低速です。このため、CPU自体がどんなに高速に処理したとしても、メモリの速度で実効性能が悪くなる問題があります。そこで、CPUには高速にアクセスできるキャッシュメモリと呼ばれるメモリが搭載され、実効性能を高める工夫が施されています。
CPUに最も近いL1キャッシュの各バイトにはメモリの物理アドレスと仮想アドレスを持っています。そして、OSはこの2つのアドレスの対応表であるページテーブルを持っています。プロセッサーはこのページテーブルを読み込んで、さまざまな処理を行っていきます。しかし、ページテーブルの参照は「順番通り行わないと正しい計算結果を得られない可能性がある」という問題を抱えており、パイプライン処理などの並列処理を駆使して高速に処理することができませんでした。
そこで、過去の多くのCPU開発者たちは「事前に値を推測しておけば、順番を無視して実行することが可能になる」と考えました。順番を無視して実行できるということは、処理の順序が入れ替わる可能性のある並列処理が可能になるということになり、CPUの処理を大きく高速化できるようになります。この値を推測して実行することは投機的実行と呼ばれており、「あらかじめ値を予想しておき、その後の処理で使用されないのであれば、ゴミとして捨てれば良い」というシンプルな発想でかつ効果が高いことから、多くのCPUで採用されるようになりました。
このため、「投機的実行」の考え方はCPUの高速化技法として、非常に優れたものなのですが、1つ大きな問題を抱えています。それは、データがゴミとして扱われる前に第三者がOSをだまして、データをページテーブルに不正にロードすることで、機密情報を盗み取ることができてしまうという点です。
そして、この問題は多くのクラウドコンピューティング環境で使用されるハイパーバイザー型の仮想環境にも適用することができ、多くの仮想マシンから情報を盗めてしまうという危険性が存在します。
既に多くのハイパーバイザー型の仮想環境向けにソフトウェアパッチが開発されています。このパッチは第三者によってページテーブルに不正なデータをロードできないようにするもので、投機的実行自体を邪魔することはほとんどありません。このため、パフォーマンスへの影響はほとんどないとされています。
パッチは仮想マシンとして動作するOS向けにも開発されています。このパッチは仮想マシンの切り替えなどのタイミングでL1キャッシュをきれいに初期化するというもの。これにより、第三者にキャッシュ情報が盗み出されてしまう心配がなくなります。
しかし、サポート対象外の仮想マシンを実行している場合、Intelプロセッサーに搭載されているハイパースレッディング機能を停止させる必要があります。このため、サーバーのパフォーマンスが大幅に低下する可能性があるので、注意が必要です。
パッチ適用はすべての企業が必ずしも実施する必要はありません。事前にパッチ適用の影響有無などをベンダーやサポートに確認して、適用可否を判断するようにしてください。
・関連記事
CPUに内在する脆弱性「Spectre」に新種「Variant 4」が登場、Intel・AMD・ARMは対応策を発表 - GIGAZINE
IntelのCPUに新たな8つの脆弱性が発見される、内4つは「高い危険性」との評価 - GIGAZINE
CPUの脆弱性「Meltdown」対策の2018年1月と2月のWindows用パッチは別の事態悪化を招く可能性 - GIGAZINE
CPUに内在する脆弱性問題「メルトダウン」「スペクター」への各社の対応まとめ - GIGAZINE
Intel製CPUに内在する脆弱性問題の根は深く「すべてのプロセッサが安全性と高速性を両立できない問題を抱える」との指摘 - GIGAZINE
・関連コンテンツ