2018年に報告されたSpectreというプロセッサのハードウェア実装に関する脆弱性は、最悪の場合攻撃者がメモリ内の任意のアドレスのデータを読み出せるため非常に深刻である。本脆弱性を利用したSpectre攻撃は現実的な対策技術が提案されておらず、その対策は重要な課題となっている。本研究はSpectre攻撃の解析、およびそれに基づいた研究(例えばハードウェアへの変更および性能オーバーヘッドを極力抑えたSpectre対策技術)を提案・開発する足がかりを作ることを目的としている。Spectre攻撃はプロセッサの高性能化手法である投機実行によりプロセッサが誤った命令列を実行した際に、本来アクセスできないデータにアクセスし得ることを利用する。具体的には、攻撃者は分岐命令における分岐予測器の予測ミスを誘発することでSpectre攻撃を実行する。アクセスされた秘匿データは、秘匿データに基づいたアドレスへとさらに書き込まれ、後に(前述の例の場合はキャッシュ)サイドチャネル攻撃を用いて読み出される。本研究課題ではこれまでに、既存のSpectre攻撃の振る舞いの詳細な解析を行なってきた。この解析を通して、プログラムを実行する際にプロセッサに意図的に誤った分岐方向の実行を(投機的に)させること(およびファジングと呼ばれるソフトウェアのテスト手法)を利用した、Spectreガジェット(Spectre攻撃に用いることが可能なら命令列)の検出機構を構想するに至った。
|