3年前、インテル社のプロセッサーの多くが、セキュリティ専門家を悩ませたセキュリティ脆弱性「Spectre」に見舞われました。
今回、AMD社のRyzen Zen 3プロセッサーにも、Spectreと同様のセキュリティ脆弱性が存在することが、AMD社のホワイトペーパーで明らかになりました。
AMD Ryzen Zen 3プロセッサーに搭載されたPredictive Store Forwardingソフトウェアがセキュリティの脆弱性を生む
AMD社がZen 3ベースのRyzen & EPYCプロセッサーに導入した新技術、Predictive Store Forwarding(PSF)は、セキュリティ上の脆弱性を生み出しています。
PSFは、ロードとストアの関係を予測することで、コード実行のパフォーマンスを向上させる機能です。
ほとんどの場合、予測は正しいのですが、誤った予測の場合、結果として誤ったCPUスペキュレーションが発生します。
まず、ストアとロードのペアが一時的に依存関係にあったが、その後依存関係がなくなったという可能性があります。これは、プログラムの実行中にストアとロードのどちらかのアドレスが変更された場合に起こりうる。
AMD Zen CPUアーキテクトは、悪質なスペキュレーションはSpectre v4と同じレベルであると表明している。
アイソレーションに伴う固有のリスクは、AMDがPSFで準備しなければならないものだ。上と下の引用文
不正確なPSF予測の2つ目の原因は、PSF予測器の構造にエイリアスがある場合に発生する可能性があります。
PSF予測器は、RIPの一部に基づいてストア/ロードペアを追跡するように設計されています。
依存関係のあるストア/ロードペアが、予測子において、依存関係のない別のストア/ロードペアとエイリアスを形成する可能性がある。
これにより、2番目のストア/ロードペアが実行されたときに、誤った推測が行われる可能性があります。
AMDでは、Predictive Store Forwardingを利用したエクスプロイトや、予測ミスに対して脆弱と考えられるコードの事例を確認していません。
したがって、ほとんどのアプリケーションにおいてセキュリティリスクは低いと考えられます。
AMDは、セキュリティ上の脆弱性があることを認めていますが、この技術は同社のRyzen CPUにパフォーマンス上の利点ももたらします。
AMDは、可能な限り最高のパフォーマンスを得るために、Predictive Store Forwardingをオンにしておくことを公式に推奨しています。
脆弱性を心配される方は、PSFを無効にすることができます。
解説:
Zen3でSpectreと同様のセキュリティリスクが発覚。
こちらはAMDが自ら情報を公開したようですね。
Spectreは残念ながらAMDでもARMでも発覚していますので、仕方ないのかなと言う感じです。
Spectreの詳細は上のリンクから確認できます。
マルチコア、マルチスレッドに対応した現代的なCPUのほとんどが影響を受けると言われています。