中国、シンガポール、スイスの大学の研究者らは、インテルSGXエンクレイブを破り、インテルCPUの安全な領域から機密データを盗むことができる新たな攻撃方法を発見したと発表しました
SmashExと名付けられたこの攻撃は、Intel Software Guard eXtensions(通称Intel SGX)に影響があります。
Intel SGXは、最新のIntelプロセッサのほとんどに搭載されている機能で、OSやアプリケーションが機密データや操作をCPUの「エンクレイブ」と呼ばれる暗号化された安全な領域内に置くことが可能です。
SmashEx攻撃は、同じOS上で動作する敵対的なソフトウェアがCPUがSGXの動作を一時停止する機能を悪用してエンクレイブに侵入し、データを取得するものです。
SGXは、ユーザーレベルのエンクレイブコードを、敵対的または危険なOSソフトウェアから保護するように設計されています。
正常に機能するために、SGXの設計では、OSが任意の時点で設定可能なハーウェア例外を通じてエンクレイブの実行を中断することができます。
この機能により、エンクレイブのランタイム(Intel SGX SDKやMicrosoft Open Enclaveなど)がエンクレイブ内の例外処理やシグナル処理をサポートできるようになりますが、エンクレイブがリエントランシーバグにさらされることになります。
SmashExは、SGXでは複雑な例外処理を安全に行うために、リエントランシーを注意深く処理していないエンクレイブSDKを悪用する攻撃です。
SmashExの概念実証のためのエクスプロイトは、脆弱なエンクレイブ・ランタイムで構築されたエンクレイブにおいて、コードの再利用(例:ROP)や機密データの開示攻撃を可能にします。
研究者によると、実施したテストで、サーバーがHTTPSトラフィックを暗号化するために使用しているインテルSGXエンクレイブの内部からRSA暗号鍵を取り出すことに成功し、Azureサーバーで使用されているエンクレイブソフトウェアのツールキットであるMicrosoft Open Enclaveの内部からcURLアプリが処理するコンテンツをダンプすることができたとのことです。
過去数年にわたり、SGXのエンクレイブを破壊してデータを取得する同様の攻撃がありました。過去の例としては、PlunderVolt、SgxSpectre、Foreshadow、BranchScope、Platypus、V0LTpwn、Game of Threads、AsyncShock、The Guard’s Dilemma、Iagoなどがあります。
また、2019年に行われた人気の高い8つのエンクレイブソフトウェア開発キット(アプリメーカーがアプリをエンクレイブ内でやり取りしたりデータを保存したりするために使用するソフトウェアライブラリ)の調査では、SGXを含むテスト済みのすべてのSDKに35種類の脆弱性が見つかりました。
しかし研究者によると、SmashExの攻撃は、単にSGXエンクレイブ内のデータを漏洩させるだけでなく、必要に応じてデータを破損させることもできるため、上記の攻撃よりもはるかに危険であるとのことです。
パッチの提供
今回のSmashEx攻撃の詳細は、インテル社とマイクロソフト社がそれぞれのSDK(Intel SGX SDK(CVE-2021-0186)とOpen Enclave SDK(CVE-2021-33767)に対応するパッチをリリースした後、専用のウェブサイトで公開されました。
攻撃を防ぐために、SGXエンクレーブ内に機密情報を保存するようなアプリケーションは、これらのアップデートをコードに組み込む必要があります。
ただし、SmashEx攻撃の影響を受けるSDKは他にも多数あり、Google、Apache、ArmなどのSGX SDKも含めて、開発者が独自にパッチを発行する必要があると研究チームは述べています。
- インテル SGX SDK インテル SGX2
- Open Enclave Microsoft SGX1およびSGX2
- Google Asylo Google SGX2
- EdgelessRT Edgeless Systems SGX1およびSGX2
- Rust SGX SDK Apache SGX2
- Teaclave Apache SGX2
- SGX-LKL インペリアル・カレッジ・ロンドン SGX1およびSGX2
- CoSMIX テクニオン SGX2
- Veracruz ARM SGX2
Comments