SGXSpectre: プロセッサの最も安全な部分に影響を与える
オハイオ州立大学の 6 人の科学者が新たな脆弱性を発見しました。具体的には、メインの名前はSgxSpectreです。この脆弱性により、プロセッサ メモリ内の保護された実行領域であるIntel SGX (Intel Software Guard eXtensions) エンクレーブへのアクセスが可能になります。エンクレーブはCPU 内の物理的に隔離された領域に配置され、暗号化キーやパスワードなどの非常に機密性の高い情報を処理するために使用されます。
ただし、これまではSGX エンクレーブへのアクセスが許可されていませんでしたが、新しい脆弱性によりこれが可能になります。問題は、開発者がアプリケーションに SGX のサポートを追加できるようにする特定のパターンがライブラリ コードに存在することです。
脆弱な開発キットには、SGX SDK、Rust-SGX、Graphene-SGX などがあります。エンクレーブの実装方法に関係なく、これらの開発キットで作成されたコードはすべて攻撃の影響を受けます。コードの実行を繰り返すことで、パターンを直感的に理解し、それぞれのバリエーションを確認して、エンクレーブの機密性に影響を与えることができます。
MeltdownPrime と SpectrePrime もあります
これらの脆弱性は、攻撃者が回避できるため、最新の Spectre および Meltdown パッチでも機能します。現時点では、インテル SGX SDK 開発キットには、3 月 16 日からこれらの脆弱性に対するパッチが追加されます。開発者は、パッチが適用されるように、この新しい SDK を SGX 対応アプリケーションに統合する必要があります。 Google の Retpoline ガイドを使用している場合、原則として安全です。
次のビデオでは、この脆弱性がどのように機能するかを確認できます。研究者らは、これを利用するために必要なコードをGitHub ページで公開しました。
研究者らは、SGXSpectre に加えて、 MeltdownPrime と SpectrePrimeと呼ばれる他の 2 つの脆弱性を発見しました。これらの脆弱性では、カーネルや他のアプリケーションからデータを取得できますが、これまでに知られている方法よりも高速な方法が使用されます。幸いなことに、すでに Meltdown と Spectre のパッチを持っている場合は、すでに保護されています。ただし、これらの脆弱性に対するハードウェア レベルの解決策は、プロセッサの将来のバージョンでは異なります。
参考資料一覧
- https://github.com/osusecLab/SgxPectre

