更新:未来を予測することの計算上のリスクをさらに実証するものとして、科学者らは、Intel CPU の投機的実行を悪用して、実行中のアプリケーションから秘密やその他のデータを盗む別の方法を発見しました。
このセキュリティ上の欠陥は、ウェブブラウザのタブ内の悪意のあるJavaScript、システム上で実行されるマルウェア、あるいは不正なログインユーザーによって悪用され、メモリからパスワード、キー、その他のデータが抽出される可能性があります。したがって、攻撃者がこれを実行するには、マシン内に何らかの足掛かりが必要です。この脆弱性は、シリコンレベルでの大幅な再設計なしには、簡単に修正または軽減できないようです。
投機的実行とは、プロセッサが他の計算の完了を待つ間に、必要かどうかわからない将来の作業を実行できるようにする手法であり、これが昨年初めに明らかになった Spectre の脆弱性を可能にした。
今月、プレプリントサービス ArXiv を通じて配布された研究論文「ネタバレ: 投機的ロードハザードが Rowhammer 攻撃とキャッシュ攻撃を強化」の中で、米国のウースター工科大学とドイツのリューベック大学のコンピューター科学者らが、パフォーマンス向上を悪用する新しい方法について説明している。
研究者のサアド・イスラム氏、アフマド・モギミ氏、イダ・ブルンス氏、モーリッツ・クレベル氏、ベルク・グルメゾグル氏、トーマス・アイゼンバース氏、ベルク・スナール氏は、「インテル独自のメモリサブシステム実装のアドレス推測における脆弱性」によってメモリレイアウトデータが公開され、Rowhammerのような他の攻撃の実行がはるかに容易になることを発見した。
研究者らはArmとAMDのプロセッサコアも調査したが、同様の動作は見られなかった。
「我々は、物理ページとユーザー空間のプロセスとのマッピングに関する重要な情報を明らかにする、新たなマイクロアーキテクチャの漏洩を発見した」と研究者らは説明している。
「この漏洩は、第 1 世代の Intel Core プロセッサから始まるすべての世代の Intel 製品で確認できる、限られた命令セットによって悪用される可能性があります。OS とは独立しており、仮想マシンやサンドボックス環境内からも動作します。」
データを吐き出すSpectreチップの欠陥はソフトウェアだけでは修正できないとGoogleの研究者は結論づけた
続きを読む
この問題はSpectre脆弱性とは別物であり、既存の緩和策では対処できません。昇格権限を必要とせず、ユーザー空間から悪用される可能性があります。
SPOILERは何の略語でもありません。The Registerへのメールで、Daniel (Ahmad) Moghimi氏は次のように説明しています。「投機的実行による問題であり、現代のCPUにおける既存のセキュリティの前提をある程度損なう可能性があるため、『Sp』で始まる名前を選択しました。」
SPOILER は、投機的なロードおよびストア操作のタイミングを測定し、メモリ レイアウトを明らかにする矛盾を探すことによって、仮想メモリと物理メモリの関係を識別する手法について説明します。
「この問題の根本的な原因は、メモリ操作が投機的に実行され、プロセッサが物理アドレスビット全体が利用可能になった時点で依存関係を解決することにあります」とモギミ氏は述べた。「物理アドレスビットはセキュリティ上重要な情報であり、ユーザー空間で利用可能になると、ユーザーが他のマイクロアーキテクチャ攻撃を実行できるようになります。」
記憶の狂気
現代のプロセッサは、メモリオーダーバッファを使用してRAMへの読み書きを管理し、操作を追跡します。このバッファは、ストア命令(CPUレジスタからメインメモリへのデータのコピー)を実行コードに記述された順序で実行し、ロード命令(メインメモリからレジスタへのデータのコピー)をアウトオブオーダー、つまり投機的に実行するために使われます。これにより、ロード命令がまだ完了していない以前のストア命令に依存しているなどの依存関係の問題がない場合、プロセッサは先読みしてRAMからレジスタに情報を投機的にフェッチすることができます。
物理アドレス情報が利用できない場合、ロード操作の推測は誤った依存関係をもたらす可能性があります。Intel のチップは、誤った推測によって生じる無効なデータに基づく計算を防ぐために、メモリの曖昧性解消を実行します。
そもそも、それほどうまくいっていないのです。「SPOILERの根本的な原因は、Intel独自のメモリサブシステム実装におけるアドレス投機の脆弱性であり、物理アドレスの競合によってタイミング動作が直接リークされる」と論文は説明しています。
「私たちのアルゴリズムは、プロセッサ内のストアバッファを、オフセットは同じだが仮想ページが異なるアドレスで埋めます」とモギミ氏は述べた。「次に、オフセットは同じだがメモリページが異なるアドレスでメモリロードを実行し、ロード時間を測定します。多数の仮想ページを反復処理することで、複数の段階での依存関係解決の失敗に関する情報が明らかになります。」
新たな恐怖への準備はできていますか?今日のコンピュータチップのSpectre脆弱性は、ステルスマルウェアを隠蔽・実行するために悪用される可能性があります。
続きを読む
研究者らによると、SPOILERは既存のRowhammer攻撃やキャッシュ攻撃を容易にし、JavaScriptを利用した攻撃をより実行可能にする。数週間かかっていたRowhammer攻撃は、わずか数秒で完了する可能性がある。モギミ氏によると、この論文ではJavaScriptベースのキャッシュプライム+プローブ技術が説明されており、クリックするだけで起動し、キャッシュタイミング攻撃から保護されていない個人データや暗号鍵を漏洩させることができるという。
緩和策を見つけるのは難しいかもしれない。「この問題を完全に解消できるソフトウェアによる緩和策は存在しない」と研究者らは述べている。チップアーキテクチャの修正は有効かもしれないが、パフォーマンスを犠牲にする必要があると付け加えている。
インテルは2018年12月1日にこの調査結果を知らされたとされている。同社はコメント要請にすぐには応じなかった。この論文の公開は、セキュリティコミュニティにおいて責任ある情報開示のために一般的に認められている90日間の猶予期間を過ぎてから行われた。
モギミ氏は、インテルが現実的な対応策を持っているかどうか疑問視している。「私の個人的な意見としては、メモリサブシステムに関しては変更を加えるのが非常に難しく、マイクロコードで簡単にパッチを当ててもパフォーマンスを大幅に損なうようなことは不可能だ」と同氏は述べた。
「ですから、今後 5 年間でこの種の攻撃に対するパッチがリリースされることはないと思います。これが CVE が発行されていない理由かもしれません。」®
追加更新
インテルの広報担当者は、記事掲載後に、将来的にはSPOILER攻撃を防御するアプリケーションが構築されるか、ハードウェア保護が導入されることを期待していると語った。