web-dev-qa-db-ja.com

vt-d仮想化および信頼できる実行テクノロジ

長い間 VirtualBox ユーザーであり、Intelを搭載した新しいラップトップを最近購入した i7 720QM サポートされていることがわかった vt-d

その間に、vt-dには [〜#〜] txt [〜#〜] が付属していることがわかりました。これは、i386アーキテクチャにハードウェアセキュリティの一種を追加したものです。 2つの質問があります。

  • Vt-dがTXTと結合されているのはなぜですか?
  • TXTセキュリティをどのように強化しますか?
7
Alain Pannetier

Trusted Execution Technologyは、最新のIntelチップセットで利用可能なセキュリティ機能のコレクションと組み合わされています。 Trusted Platform Module(TPM)およびその他のDRMのような機能もこのバンドルに含まれています。これの背後にある理由は、抽象化によるものです。抽象化は、より一般的にはソフトウェアアーキテクチャに起因しています。これらすべての機能の共通点は、ソフトウェアへのアクセスを制限することです。これにより、ソフトウェアが複雑さを共有し、結合されます。

これは次の質問につながりますHow does TXT enhance security? TXTの非常に重要な機能は、ゲストVMが使用するメモリを分離することです。ゲストVMに、ホストまたは別のゲストが所有するメモリにアクセスしようとした悪意のあるカーネルがあった場合はどうなりますか?= TXTは、これを防ぐための非常に効率的な方法です。純粋にソフトウェアVMにもこの重要な機能がありますが、オーバーヘッドが大きくなります。TXTマウス/キーボードや大容量記憶装置などのハードウェア周辺機器にアクセスできる人。

9
rook

Joanna Rutkowskaのブログから :(そして私はここで私の理解の端でスケートをしていることを認めます...)

TXTを使用してハイパーバイザーをロードする場合、SENTER命令は、最初にhypervsiorイメージの周りにVT-d保護を適用し、次に測定を実行してから、それをロードします。VT-d保護は引き続き有効です。

そして彼女のより完全な説明:

...以下の仮定をしてみましょう:
1)OS/VMMはIOMMUを適切に使用してネットワークカードを分離します
2)攻撃者がNICファームウェアを制御すると、攻撃者はこのファームウェアが保存されている永続ストレージ(EEPROM)を変更することもできます。これは、ロイックによって確認されています。プライベートなメール交換。
3)システムはSRTMを介してトラステッドブートを実装します。つまり、Intel TXTなしでBIOSとTPMのみを使用します。

これで、攻撃者はEEPROMのファームウェアを変更できるようになり、これにより攻撃者はプラットフォームの再起動後も生き残ることができます。カードのファームウェアは、ブートプロセスの早い段階で、確実にOS/VMMがロードされる前に実行を開始します。ここで、侵害されたNICは、ホストメモリに対してDMA=を実行できるため、VMMのイメージを侵害して、それが( trusted)OSローダー、たとえばTrusted GRUBですが、VMMはそれ以前にも適切なIOMMU/VT-d保護をセットアップする機会がありました。

6
AviD

何でも(DMA対応デバイスなど)で測定を操作できないようにするために分離が必要なため( [〜#〜] toctou [〜#〜] 攻撃のスタイル)。

必要に応じて、これをI/Oおよび割り込みのファイアウォールとして見ることができます。明らかに、そうではありませんが、状況はわかります。 VT-dは、Intelの [〜#〜] iommu [〜#〜] を表す用語です。 AMDはそれをAMD-Viと呼んでいます。このユニットの役割は、デバイスメモリアクセス( [〜#〜] dma [〜#〜] )と割り込み再マッピングを制御することです。

私が説明しなければならない最良の方法は、PCIパススルーの例を使用することです。これが私の簡単な説明です。

DMA対応デバイスを特定の仮想マシン専用にする場合は、ネットワークカードを例にとると、適切なVT-d保護がなければ、このVMは完全なホストメモリにアクセスできます。 VMは、VMコンテナからネットワークカードDMAのビューを通して抜け出すことができます。DMA直接およびcompleteメモリアクセスを提供することを思い出してください(これにはHost/vmmメモリが含まれます) 。VT-dが正しく実装されている場合、ネットワークカードはVMに割り当てられているメモリにしかアクセスできません。他には何もありません。そうであれば、何らかのI/Oファイアウォールが役立ちます。

TXTはVT-dのみを使用して、評価する必要のあるものについて分離を構築します。コードを測定し、後で使用するために一部のTPM保護レジスタ(PCR)でそれらの測定値を送信します(リモート認証、シール解除操作など)。

VT-dの詳細については this を参照してください。

2番目の質問は、TXTが新しいセキュリティ機能(以下を参照)を単独で提供するものではないため、非常にトリッキーです。セキュリティは、それらの機能の使用方法に応じてさまざまな方法で作成できます。想像力次第です。 PrivateCore vCage は良い です。

  • 保護された実行-ハードウェアベースのドメイン分離
  • 保護されたメモリページ-メモリへのアクセス方法に対する保護を提供-ソフトウェア、DMA、GPUカード- [〜#〜] smm [〜#〜] 、および [〜# 〜] amt [〜#〜]
  • シールドストレージ-実行中の環境に基づいてデータを暗号化する、つまり、測定されたもの(TPMに保存されているPCR値に基づいて)
  • 保護された入力-ユーザーと安全な環境との間に信頼できるチャネルを構築します-IFAIKを実装していません
  • 保護されたグラフィック-安全な環境とグラフィックカードの間に信頼できるチャネルを構築します-IFAIKを実装していません
  • 証明-TPMに保存されている測定値(PCR値)を他の関係者に安全に報告します。リモート認証は別名見積もり操作です。

TXTの詳細については このペーパー を参照してください。

6
northox