web-dev-qa-db-ja.com

仮想化インフラストラクチャオペレーターは、リング0 SMMエクスプロイトについて何ができますか?

見たばかり this リング0からSMMへの新しい特権昇格。

内部の人々が好きなように実行できるように小さなVM /クラウドインフラストラクチャを運用しているとしましょう。この脆弱性が悪用されるのを防ぐ方法はありますか?たぶん、マスクアウトするいくつかのCPUIDビット?

3
billc.cn

この脆弱性はVMエスケープでは悪用できません。

攻撃は大まかに次のように機能します。

  • 攻撃者はオフセット0に悪意のあるGDTを作成します。
  • 攻撃者は、IA32_APIC_BASE MSRを変更することにより、APICMMIO領域をSMRAMに再マップします。これは、SMMGDTを復元するためにSMIハンドラーによって使用されるSMMのDSC構造を「上書き」します。
  • SMIが発生すると、SMIハンドラーは悪意のあるGDTを使用するため、制御フローが乗っ取られる可能性があります。

要するに、このタイプの攻撃は、攻撃者がIA32_APIC_BASEMSRを制御できる場合にのみ実行可能であるということです。

「ハードウェアでサポートされている」VM(VMX非ルートモード)を実行しているとすると、a VM)からMSRを書き込もうとすると、通常はVM exit、これはVMMによって処理されます。APICMMIOリマップを処理する「通常の」方法は、それを無視するか、VMMでリマッピングをエミュレートすることですが、これによってホストのAPIC範囲が再マップされることはありません。
私が考えることができる唯一の例外は、VMMがMSRビットマップ(特定のMSRを「ホワイトリスト」に登録してVM exits)を引き起こさないようにするために使用できます)を使用する場合です。ゲストがIA32_APIC_BASEを変更できるように、そのビットマップを誤って計算します(ネストされた仮想化を使用している場合、MSRビットマップをマージするプロセスである可能性があります)が、VMM自体の脆弱性になります。

そうは言っても、この脆弱性は悪用後も役立つ可能性があります。VMMが危険にさらされた場合、攻撃者はそれを使用してTXTをバイパスするか、検出が非常に難しいルートキットをインストールできます。

この脆弱性が悪用されるのを防ぐ方法はありますか?

実際、1つの方法は仮想化を使用することです。または、公式パッチを待つこともできます(Intelはそれに取り組んでいると言われています)。

Jacob Torreyには、このトピックに関する興味深いブログ投稿もあります。
http://blog.jacobtorrey.com/mitigations-to-the-memory-sinkhole

2
eax