Microsoft PowerPoint - 4 horie.ppt



Similar documents
Microsoft PowerPoint - IO_Pass-through_XenSummitTokyo2008_jp.ppt

セキュアVMの アーキテクチャ概要

第6期末セミナー2006-1rev1.ppt

Microsoft PowerPoint - OS08 [互換モード]

<4D F736F F D2095CA8E A90DA91B18C9F93A289F1939A8F D8288B3816A5F E646F63>

目 次 1. はじめに 3 2. システム 要 件 4 3. HDD Password Tool のインストール 5 Windows の 場 合 5 Mac の 場 合 8 4. HDD Password Tool の 使 い 方 HDD Password Tool を 起 動 する

独立行政法人国立病院機構呉医療センター医療機器安全管理規程

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

<819A955D89BF92B28F BC690ED97AA8EBA81418FA48BC682CC8A8890AB89BB816A32322E786C7378>

<4D F736F F F696E74202D2093FA8C6F939D8D EA68E9197BF>

する ( 評 定 の 時 期 ) 第 条 成 績 評 定 の 時 期 は 第 3 次 評 定 者 にあっては 完 成 検 査 及 び 部 分 引 渡 しに 伴 う 検 査 の 時 とし 第 次 評 定 者 及 び 第 次 評 定 者 にあっては 工 事 の 完 成 の 時 とする ( 成 績 評 定

その 他 事 業 推 進 体 制 平 成 20 年 3 月 26 日 に 石 垣 島 国 営 土 地 改 良 事 業 推 進 協 議 会 を 設 立 し 事 業 を 推 進 ( 構 成 : 石 垣 市 石 垣 市 議 会 石 垣 島 土 地 改 良 区 石 垣 市 農 業 委 員 会 沖 縄 県 農

スライド 1

1

<4D F736F F D F8D828D5A939982CC8EF68BC697BF96B38F9E89BB82CC8A6791E52E646F63>

Imperva_page01_B52

PRIMERGY RX200 S8 未サポートOS動作検証確認情報

はじめに この 資 料 は データ デデュプリケーション 機 能 を 検 討 いただくにあたり ディス ク 使 用 率 とバックアップ パフォーマンスについて データ デデュプリケーション デバイス( 以 降 DDD と 記 述 )とファイル システム デバイス ( 以 降 FSD と 記 述 )

弁護士報酬規定(抜粋)

Microsoft PowerPoint - Re-ValuePC説明1018.ppt

住宅改修の手引き(初版)

CTX-6114AI Citrix Access Suite 4

利用のためのPC環境設定

ファイルサーバー(NFS) 構築ガイド

IO Linux Vyatta PC

Microsoft Word - 目次.doc

今週の進捗

<6D313588EF8FE991E58A778D9191E5834B C8EAE DC58F4992F18F6F816A F990B32E786C73>

積 載 せず かつ 燃 料 冷 却 水 及 び 潤 滑 油 の 全 量 を 搭 載 し 自 動 車 製 作 者 が 定 める 工 具 及 び 付 属 品 (スペアタイヤを 含 む )を 全 て 装 備 した 状 態 をいう この 場 合 に おいて 燃 料 の 全 量 を 搭 載 するとは 燃 料

エンドポイントにおける Web コントロール 概要ガイド

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

1 総 合 設 計 一 定 規 模 以 上 の 敷 地 面 積 及 び 一 定 割 合 以 上 の 空 地 を 有 する 建 築 計 画 について 特 定 行 政 庁 の 許 可 により 容 積 率 斜 線 制 限 などの 制 限 を 緩 和 する 制 度 である 建 築 敷 地 の 共 同 化 や

PowerPoint プレゼンテーション

は 固 定 流 動 及 び 繰 延 に 区 分 することとし 減 価 償 却 を 行 うべき 固 定 の 取 得 又 は 改 良 に 充 てるための 補 助 金 等 の 交 付 を 受 けた 場 合 にお いては その 交 付 を 受 けた 金 額 に 相 当 する 額 を 長 期 前 受 金 とし

4 参 加 資 格 要 件 本 提 案 への 参 加 予 定 者 は 以 下 の 条 件 を 全 て 満 たすこと 1 地 方 自 治 法 施 行 令 ( 昭 和 22 年 政 令 第 16 号 ) 第 167 条 の4 第 1 項 各 号 の 規 定 に 該 当 しない 者 であること 2 会 社

大田市固定資産台帳整備業務(プロポーザル審査要項)


一般競争入札について

平成25年度 独立行政法人日本学生支援機構の役職員の報酬・給与等について

入 札 参 加 者 は 入 札 の 執 行 完 了 に 至 るまではいつでも 入 札 を 辞 退 することができ これを 理 由 として 以 降 の 指 名 等 において 不 利 益 な 取 扱 いを 受 けることはない 12 入 札 保 証 金 免 除 13 契 約 保 証 金 免 除 14 入

データコピーとは データコピーは 古 い NAS のデータを 新 しい HDL-Z シリーズに 簡 単 にコピーできます 環 境 例 本 製 品 は 以 下 の 用 途 の 際 に 最 適 です 古 い HDL-Z シリーズから 新 しい HDL-Z シリーズへのコピー 古 い HDL-Z シリーズ

<4D F736F F D208DE3905F8D8291AC8B5A8CA48A948EAE89EF8ED0208BC696B18BA492CA8E64976C8F BD90AC E378C8E89FC92F994C5816A>

<4D F736F F D F93878CA797708F4390B3816A819A95CA8B4C976C8EAE91E682538B4C8DDA97E12E646F6378>


VMware VirtualCenter: Virtual Infrastructure Management Software

Transcription:

BitvisorとI/O 仮 想 化 技 術 筑 波 大 学 大 学 院 システム 情 報 工 学 研 究 科 研 究 員 保 理 江 高 志

はじめに Bitvisor 最 大 の 特 徴 である 準 パススルー 型 アーキテクチャ へのI/O 仮 想 化 技 術 "Intel Virtualization Technology for Directed I/O"に 基 づく 機 能 拡 張 について 技 術 的 側 面 を 解 説 本 資 料 内 記 載 の 会 社 名 製 品 名 は 各 社 の 登 録 商 標 または 商 標 です

アジェンダ ハードウェアによるI/O 仮 想 化 支 援 概 要 ハードウェア 機 能 IOMMUとは? Intel Virtualization Technology for Directed I/O 技 術 解 説 利 用 プログラミングにあたってのノウハウ BitvisorとIntel VT-d Para-passthroughアーキテクチャ 想 定 脅 威 プロテクションストラテジー

ハードウェアによるI/O 仮 想 化 支 援 I/O 仮 想 化 I/O Virtualization 種 々のハードウェア 仮 想 化 支 援 技 術 適 合 プロダクト PCI-SIG IOV 各 ハイパバイザでのVT-dサポート IOMMUが 提 供 する 機 能 IOMMUの 利 用 シナリオ bounce buffer malicious DMAの 防 止

I/O 仮 想 化 I/O Virtualization 広 義 の I/O 仮 想 化 I/Oデバイスエミュレーション VMが 物 理 的 資 源 (ハードウェアデバイス)への 直 接 的 な 操 作 を 行 わ ないよう 仲 介 となる 仮 想 的 な 資 源 をVMMが 提 供 仮 想 的 なI/O 資 源 のエミュレーション 仮 想 デバイス(ストレージ NIC etc..) I/Oエミュレータ 割 り 込 みコントローラ 狭 義 の I/O 仮 想 化 I/Oメモリ 仮 想 化 I/O Memory Management Unit (IOMMU) デバイスからのDMAリクエストの 際 I/Oアドレス 物 理 アドレス 間 の マッピングを 管 理 する 機 構 cf) MMU : CPUからのメモリ 参 照 時 仮 想 アドレス 物 理 アドレス 間 の マッピングを 管 理 する 機 構

cf) IOMMU GART Graphics Address Remapping Table グラフィックスカード 向 け(AGP, PCIe) aperture を 介 したシンプルなアドレス 変 換 Calgary IBM xseries (x86_64 based) 向 け Remapping, デバイスのIsolation, パーミッション 制 御 DVMA Device Virtual Memory Address Sun MicrosystemsのSbus 向 け バスサイクル 中 にRemappingフェーズを 有 する DART Device Address Relocation Table PowerPC970 向 け Cell IOMMU Segmented translation model 2つのローカルキャッシュ IOSLB(セグメントエントリ)とIOTLB(ページテーブルエントリ)

種 々のハードウェア 仮 想 化 支 援 技 術 Intel VT-x (Virtualization Technology for IA-32) x86/64 向 けプロセッサ 仮 想 化 支 援 技 術 Intel VT-i (Virtualization Technology for IA-64) Itanium 2 向 けプロセッサ 仮 想 化 支 援 技 術 Intel VT-d (Virtualization Technology for Directed I/O) I/O 仮 想 化 支 援 技 術 Intel VT-c (Virtualization Technology for Connectivity) Virtual Machine Device Queues, I/O Acceleration Technology, SR-IOV 等 の 統 合 技 術 VMware ESX Server + 対 応 NIC (Intel 10GbE AT Server Adapter, etc..) AMD-V AMDプロセッサ 仮 想 化 支 援 技 術 AMD-IOMMU AMDのI/O 仮 想 化 支 援 技 術

適 合 プロダクト VT-d is enabled on the following chipsets: Intel Q35 GMCH with ICH9 DO (Bearlake chipset) Intel Q45 (Eaglelake) The following chipsets have VT-d capability, but OEMs may not have enabled in systems based on these: Intel X38 Intel X48 For Intel Desktop Boards, these have VT-d support enabled: Intel DQ35JO Intel DQ35MP Intel DX38BT Intel DX48BT2 Intel DQ45CB 2008/9リリース Intel DQ45EK For ASUS Desktop Boards, these have VT-d support enabled: ASUS P5E-VM DO (Intel Q35 chipset) AMD IOMMU Add IOMMU support to RD890/RD880 chipsets (2009~?)

PCI-SIG IOV PCI-SIG I/O Virtualization PCIeデバイス 側 での 仮 想 化 サポート 複 数 のゲストOS 間 でのネイティヴなデバイス 共 有 に 向 けた 仕 様 Address Translation Service (ATS) released March 2007 IOMMUによるアドレス 変 換 キャッシュ 機 構 について Single-Root IOV (SR-IOV) released October 2007 単 一 システム 内 でのDirected I/Oについて Multi-Root IOV (MR-IOV) released May 2008 Blade 環 境 でのFCバックボーンを 介 したDirected I/Oについて

各 ハイパバイザ( 及 びカーネル)のサポート Xen (3.2.1~) Secure MILS Hypervisor (LynxWorks) Parallels Server Padded Cell (Green Hills Software) VirtualLogix VLX VMware ESX Server ( 次 期 リリース) Linux Kernel (2.6.26 時 点 ) intel_iommu_init() @ drivers/pci/intel-iommu.c config DMAR bool "Support for DMA Remapping Devices (EXPERIMENTAL)" depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL help DMA remapping (DMAR) devices support enables independent address translations for Direct Memory Access (DMA) from devices. These DMA remapping devices are reported via ACPI tables and include PCI device scope covered by these DMA remapping devices.

IOMMUが 提 供 する 機 能 Remapping と Isolation I/Oアドレス 空 間 のリマッピング デバイス 側 物 理 メモリ 間 のメモリマッピング 管 理 (IOMMU) キャッシュ 機 構 を 備 える(e.g. IOTLB) 割 り 込 みのリマッピング I/Oアドレス 空 間 のIsolation 隔 離 デバイス 毎 異 なるI/Oアドレスマッピングを 適 用 し 参 照 すべきで ない 物 理 メモリを 保 護 する MMUとIOMMU プロセッサ or デバイス 主 記 憶 間 でのアドレス 変 換 ページテーブルマッピング 管 理 アクセス 制 御 キャッシュ 機 構 (TLB or IOTLB) プロセス 毎 or デバイス 毎 独 立 したアドレス 空 間 を 提 供

CPU 側 からのメモリ 参 照 Address Bus 0x0a000 MMU 0x0aa000 CPU Mem Controller Memory I/O Controller I/O Data Bus リニアアドレスで 対 象 を 指 定 MMUにより 物 理 アドレスに 変 換 アドレスバスに 送 出 プロセス 毎 独 立 したアドレス 空 間 Privilegeによるメモリプロテクション

デバイス 側 からのメモリ 参 照 (IOMMU 無 し) Address Bus 0x0a000 MMU Mem Controller I/O Controller 0x0a000 CPU Memory I/O Data Bus フラットな 物 理 アドレス 空 間 としてメモリを 参 照 物 理 アドレスをそのままアドレスバスに 送 出 全 てのデバイスが1つのアドレス 空 間 を 共 有 メモリは 保 護 されない

IOMMUの 利 用 シナリオ ~ Bounce Buffer CPU #1 (64-bit) CPU #2 (64-bit) MMU MMU low-mem Bounce Buffer memcpy DRAM high-mem I/O Memory メモリコピーによる オーバーヘッド High-mem 領 域 にDMAできない Legacy Device Device Device

IOMMUの 利 用 シナリオ ~ I/Oメモリ 保 護 インスタンス #1 インスタンス #2 Malicious DMA Drv. CPU #1 CPU #2 MMU MMU デバイスドライバのバグ 不 正 なバッファアドレス メモリマッピング インスタンス #1 のリソース DRAM Device Device Device

DMAに 纏 わる 脆 弱 性 Malicious DMA ~ DMAバッファのロケーションを 不 正 に 操 作 することで ホスト 側 物 理 メモリへの 参 照 改 ざんが 行 われる 例 ) winlockpwn FireWire 経 由 でメインメモリに 直 接 アクセス Windowsパスワードを 迂 回 し 管 理 者 権 限 を 奪 取 可 能 システムソフトウェア 側 での 対 処? 可 能 (known caseであれば) DMAの 制 御 I/Oを 監 視 バッファのロケーション サイズをチェックする 但 し 設 定 の 流 儀 はデバイス 毎 異 なる 要 個 別 対 応 メモリ 管 理 が 複 雑 化 し オーバーヘッドも 発 生 winlockpwnのようなケースにはなす 術 がない (バグというより 仕 様 ) FireWire, OHCIのDisable 新 しいマシンに 買 い 替 える (FireWireポートの 無 いマシン FireWire I/OメモリをVirtualize 可 能 なG5 Mac or Sun WS)

仮 想 化 技 術 との 協 調 Directed I/O ~ VMへのデバイスの 直 接 的 な 割 り 当 て 互 換 性 Nativeなデバイスドライバを 利 用 可 能 ( Paravirtualization) パフォーマンス 低 オーバーヘッド I/O 仮 想 化 に 関 するVMM 側 処 理 をハードウェアレベルで 実 現 スケーラビリティの 改 善 I/Oドメイン(cf. Dom-0)への 負 荷 集 中 が 回 避 される セキュリティ 信 頼 性 Fine-grain Device Access Control によるI/Oメモリ 保 護 フォルトハンドリング ログ 取 得 VMMの 設 計 実 装 がシンプルに

Intel Virtualization Technology for Directed I/O ハードウェア 構 成 アドレス 変 換 方 式 の 比 較 (CPU 側 / デバイス 側 ) デバイスコンテキストの 選 択 I/O page table walk データのキャッシング / Invalidation フォルトハンドリング Remapping ハードウェアレジスタ

ハードウェア 構 成 チップセット 機 能 ( プロセッサ 機 能 ではない) North Bridgeに 実 装 複 数 の Remapping Unit からなる IOTLB ~ キャッシュ 機 構 を 備 える Intel VT-d Specificationより AMD IOMMU Specificationより

ページング 方 式 の 比 較 (CPU 側 / デバイス 側 ) Control Register Page Directory Page Table Page Table 物 理 メモリ CR3 Root-Entry Table Address Register RTADDR DMA buffer ASR(Address Space Root) bus #0 devfn 00:0 bus #1 devfn 00:1 Root-Entry Table Context-Entry Table I/O Page Table I/O Page Table I/O Page Table

フォルトハンドリング 下 記 フォルトに 大 別 可 能 DMAリクエストの 不 正 不 正 なアドレス 参 照 (GAW 範 囲 外 へのDMAリクエスト etc..) アドレス 変 換 時 のエラー Context Entry Table, I/O Page Table 内 容 の 不 整 合 不 正 なアドレス 参 照 (I/O page table walk 時 ) present でないエントリ パーミッションエラー ハードウェア 異 常 IOTLB invalidation 時 のステータス 異 常 タイムアウト etc.. フォルト 時 の 挙 動 DMAリクエストはブロックされる CPU 割 り 込 みを 発 生 DMAトランザクションの 回 復 処 理 は 不 可 フォルトロギング Fault Status Registerより Fault Reason を 得 られる

Remapping ハードウェアレジスタ Memory Mapped Register ベースアドレス ACPI Description Tableから 取 得 ( 後 述 ) ステータス 系 CAP : Capability Register ECAP : Extended Capability Register GSTS : Global Status Register FSTS : Fault Status Register コマンド 系 GCMD : Global Command Register CCMD : Context Command Register IOTLB : IOTLB Register 制 御 パラメータ RTADDR : Root-entry Table Address Register IRTA : Interrupt Remapping Table Address Register IVA : Invalidate Address Register

VT-d 利 用 手 順 実 装 概 要 ハードウェアチェック Remappingテーブルの 設 定

実 装 概 要 ハードウェアチェック VT-dサポートの 検 出 ハードウェア 定 義 のチェック PCIデバイスのプローブ Remappingテーブルの 設 定 Remapping Policy コンテキスト 情 報 (Root-Entry table / Context-Entry table) I/Oページテーブル インタラプトリマッピングテーブル リマッピング 有 効 化 各 ステータスのチェック 各 レジスタの 初 期 化 機 能 の 活 性 化

ハードウェアチェック DMAR Parseの 例 ( Intel DQ35JOE) Host Address Width : 35 4つのリマッピングユニット Unit #1 Base Address : 0xFEB00000 Device Scope : 00:1b:0 HD Audio Controller Unit #2 Base Address : 0xFEB01000 Device Scope : 00:2:0 Integrated Graphics Controller 00:2:1 Unit #3 Base Address : 0xFEB02000 Device Scope : NULL ( ) Unit #4 Base Address : 0xFEB03000 Device Scope : INCLUDE_ALL ( その 他 すべてのデバイス)

Remappingテーブルの 設 定 Hypervisor 用 メモリにテーブル 領 域 確 保 ゲストOSからの 保 護 コンテキストテーブル 参 照 するI/OページテーブルのASRを 登 録 デバイスとI/Oページテーブルマッピングとの 関 連 付 け I/Oページテーブル ゲストOS デバイス 双 方 から 参 照 可 能 な 物 理 ページを 介 してDMA ゲスト 物 理 アドレスマッピング(GPA-HPA) と I/Oメモリマッピング(DVA-HPA) の 整 合 性 がとられていること 不 正 なDMAの 防 止 ゲストOSに 割 り 当 てられたデバイスは そのゲストOSの 管 理 しない メモリを 参 照 できてはならない Hypervisor 及 び 他 ゲストOSのメモリ 保 護

BitvisorとVT-d Para-passthroughアーキテクチャ Malicious DMAのリスク プロテクションのストラテジー Hypervisorの 保 護 Shadow DMAに 関 するパーミッション 実 装 ビルドオプション 起 動 例

Para-passthroughアーキテクチャ Passthrough I/O と Intercepted I/O の 併 用 Passthrough I/Oのケース 非 暗 号 化 デバイス: ゲストOS デバイス 間 で 透 過 的 にI/O 例 )ビデオカード キーボード Intercepted I/Oのケース 暗 号 化 デバイス Hypervisorがモニタ データ 暗 号 化 復 号 化 制 御 ステータスに 関 するI/Oの 監 視 データに 関 するI/Oについては 暗 号 化 適 用 Shadow Bufferの 適 用 例 )HDD NIC,USBストレージ

Para-passthroughアーキテクチャ Guest OS BitVisor System Resource monitor Control I/O Device Driver Device Driver encrypt Intercepted Device Data decrypt Device Driver Passthrough Device

Malicious DMAのリスク Guest OS BitVisor System Resource monitor Control I/O Device Driver Device Driver encrypt Intercepted Device Data decrypt Device Driver Passthrough Device

Malicious DMAのリスク Guest OS BitVisor System Resource IOMMU monitor Control I/O Device Driver Device Driver encrypt Intercepted Device Data decrypt Device Driver Passthrough Device

プロテクションのストラテジー 0xFFFFFFFF GPA-HPA mapping DVA-HPA mapping Malicious memory access Hypervisor region Malicious DMA Device B Guest OS BitVisor IOMMU DMA Buf. B DMA Buf. A Device A 0x00000000

プロテクションのストラテジー DVA-HPA mapping shadow DMA region encryption /decryption Hypervisor region Malicious DMA Device B Guest OS BitVisor IOMMU DMA Buf. B DMA Buf. A Device A

まとめ 開 発 状 況 リリーススケジュール 課 題 Future Works 開 発 実 験 環 境 詳 細 参 考

開 発 の 状 況 リリーススケジュール VT-dハードウェアドライバ 開 発 make config 時 のビルドオプション VTD_TRANS で 選 択 規 模 : 約 3K 行 (C, アセンブラ) 周 辺 処 理 との 関 連 ACPI description tableのパース PCIデバイスの 検 出 実 現 されている 機 能 非 暗 号 化 デバイス (Hypervisor 保 護 ) ATA Driver (Shadow DMA 領 域 限 定 化 ) リリーススケジュール 次 期 リリースより 統 合 ( 予 定 )

課 題 課 題 Future Works プロテクションの 拡 充 ATA Driver ( 済 ) NIC ( 未 ) UHCI ( 未 ) 対 応 動 作 確 認 ハードウェアの 拡 充 Q45 Chipset AMD-IOMMU 評 価 性 能 試 験 Malicious DMAに 対 する 検 知 防 御 FireWireのケース

Motherboard : Intel DQ35JOE 開 発 実 験 環 境 の 詳 細 Firmware : JOQ3510J.86A.0942.2008.0807.1958 Processor : Intel Core 2 Duo E6750 (2.66GHz) Memery : 4GB (1GB x 4) Tested Operating Systems : Fedora 7/8/9 (32/64bit) Microsoft Windows XP Microsoft Windows Vista Tested Devices : IDE interface: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller on-board Ethernet controller: Intel Corporation 82566DM-2 Gigabit Network Connection on-board VGA compatible controller: Intel Corporation 82Q35 Express Integrated Graphics Controller on-board Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet

参 考 Intel Virtualization Technology for Directed I/O Architecture Specification AMD I/O Virtualization Technology (IOMMU) Specification xen.org http://www.xen.org Subverting the Xen hypervisor, Wojtczuk (Black Hat USA 2008) Preventing and Detecting Xen Hypervisor Subversions, Rutkowska,Wojtczuk (Black Hat USA 2008) http://invisiblethingslab.com/bh08/ SecVisor: A Tiny Hypervisor to Provide Lifetime Kernel Code Integrity for Commodity OSes, Seshadri, Luk et al. (SOSP 2007) http://www.sosp2007.org/papers/sosp079-seshadri.pdf Utilizing IOMMUs for Virtualization in Linux and Xen, Ben-Yehuda, Mason et al. (Ottawa Linux Symposium 2006)

参 考 www.storm.net.nz/projects/firewire, DMA & Windows http://storm.net.nz/projects/16 Wikipedia IEEE 1394 interface ( Security issues ) http://en.wikipedia.org/wiki/firewire BitVisor: A Thin Hypervisor for Enforcing I/O Device Security, Shinagawa, et al. (VEE 2009)