• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
26
0
0

読み込み中.... (全文を見る)

全文

(1)

セキュアVM「BitVisor」の

アーキテクチャ概要

2008年11月18日(火) セキュアVMワークショップ (公開用修正版) 筑波大学 講師 品川高廣

(2)

背景と目的

情報漏洩事件の増加

PC・USBメモリ等の紛失・盗難

インターネット経由

ウィルスやファイル交換ソフトなど

仮想マシンモニタ(VMM)による安全性向上

暗号化・認証をVMMで強制する

ストレージ及びネットワークの暗号化

ICカードによる認証・鍵管理

(3)

BitVisorの機能構成

ストレージ管理

HDD・USBメモリの暗号化

ネットワーク管理

IPsecでVPN接続

ID管理

ICカードで認証・鍵管理

VMMコア

CPU・デバイスの仮想化

アクセス制御

VMM ハードウェア ゲストOS ネットワーク管理 ストレージ管理 ID 管理 認証 鍵管理 VPN 暗号化 VMMコア CPU・デバイス仮想化,アクセス制御

(4)

VMMを使う利点

暗号化を確実に実施できる

強力・強制的な実施

ユーザが勝手にセキュリティを無効にできない

たとえOSが脆弱でも大丈夫

透過的な実施

OSの機能や設定には依存しない

統一した暗号化システムを実現できる

HDD, USBメモリを一括管理

ICカードの活用

(5)

VMMの信頼性

VMM自身に脆弱性がないことが重要

暗号化を無効される危険性がある

VMMを乗っ取られる,暗号化を回避される,…

VMMにセキュリティパッチは当てたくない

OSとVMMの両方を管理するのは「二重苦」

(TCBの)コードサイズ最小化が有効

バグの数はコードサイズに比例する

小さいほど安全性の検証が容易になる

(6)

従来のVMM

Type II 型(ホスト型)

TCB=ホストOS+VMM

Linux 5,600万行+QEMU31万行

Type I 型(ハイパーバイザ型)

VMMがデバイスを管理

VMWare ESX Server’s hypervisor=20万行

ドライバVM型

Xen hypervisor=10万行

hardware Host OS VMM VM VM hardware VMM VM VM Device Driver Device Model Device Driver Device Model hardware VMM Driver VM VM Device Driver Device Model

(7)

準パススルー型アーキテクチャ

可能な限りパススルー

デバイスを仮想化しない

▪ ゲストOSがデバイスを直接制御

必要最小限の監視・変換

制御I/Oの監視

▪ 状態把握とアクセス制御

データI/Oの変換

▪ データの暗号化 ハードウェア ゲストOS デバイス デバイスドライバ 準パススルーVMM アクセス制御 暗号化

制御I/O その他I/O データI/O パススルー

(8)

準パススルー方式の制約

ゲストOSは複数同時に稼働しない

1つのゲストOSがデバイスを直接制御している

複数ゲストOS間での共有・保護は難しい

必ずしも複数ゲストOS稼働は必要ではない

デスクトップ環境のセキュリティ(暗号化)が目的

対応するマシン環境が限定される

制御I/O及びデータI/Oはデバイス依存

通常のデバイスドライバよりはサイズが小さい

ドライバが必要なのは一部のデバイスのみ

グラフィックスやサウンドは(完全)パススルー

(9)

準パススルー方式の利点

コードサイズを小さくできる

完全なデバイスドライバを持たなくてよい

▪ ゲストOSのデバイスドライバを活用している

複数ゲストOS間の共有機能を削減できる

▪ スケジューリング,資源管理機能などが不要

開発コストを削減できる

デバイスドライバの数を削減できる

オーバーヘッドを低減できる

デバイスへのアクセスが準パススルー

VM間のスケジューリングなどが不要

(10)

監視・変換するI/O

制御I/O

デバイスへのデータ転送を制御するI/O

(例)LBAの指定,R/Wの指定,転送の開始・終了,…

アクセス制御をおこないつつパススルー

制御自体はゲストOSのデバイスドライバが行う

データI/O

実際のデータの転送をおこなうI/O

ディスクデータの読み書き,ネットワークパケットの送受信

VMMで捕捉して変換する(encrypt/decrypt)

メモリ上でのデータの書き換え

(11)

名前空間とアクセス制御

原則ハードウェアの名前空間と同じ

デバイスをゲストOSに直接見せる

ゲスト物理アドレス=マシン物理アドレス

I/Oアドレス,ストレージLBA,PCIバスアドレス,…

アクセス制御のみをおこなう

VMMの保護

VMMのメモリ領域,ディスク領域への読み書き禁止

IOMMUによるDMAアクセス制御

(12)

BitVisorの構成

ATAホストコントローラ (IDE) USBホストコントローラ (UHCI, EHCI) NIC (Intel Pro100など) ストレージ 暗号化 (AES-XTS) ID管理 IPsec ハードウェア VMM

ゲストOS ATAドライバ USBドライバ NICドライバ

IKE VMMコア NIC準パススルー ドライバ ATA準パススルー ドライバ USB準パススルー ドライバ UDP/IP 各種ドライバ (画面,サウンドなど) 各種デバイス (画面,サウンドなど) IOMMU ドライバ

(13)

I/Oデバイスへのアクセス

I/O命令

I/Oアドレス空間(16bit)へのアクセス

専用の命令(IN, OUT)によるI/O

Ex. “in dx, al”, “out dx, al”, ...

MMIO(メモリマップドI/O)

物理メモリ空間(32bit or 64bit)へのアクセス

メモリアクセス命令によるI/O

Ex. “mov al, [edx]”, “mov [edx], al”

DMA

(14)

ATAホストコントローラ

Offset Size Name(read) Name(write)

0 16bit Data Data

1 8bit Error Features

2 8bit Sector Count Sector Count 3 8bit LBA Low LBA Low 4 8bit LBA Mid LBA Mid 5 8bit LBA High LBA High

6 8bit Device Device

7 8bit Status Command

I/O Addr 0x1F0 LBA 0 01001101 00110101 Command Block Registers

0x20: READ SECTOR 0x30: WRITE SECTOR 0xC8: READ DMA

(15)

PIOアクセスの暗号化・復号

Read

Write

rep insw

rep outsw

ハードウェア VMM ゲストOS シャドウ バッファ (512byte) シャドウ バッファ (512byte)

rep insw

rep outsw

(16)

テーブル構造のDMAディスクリプタ

PRD(Physical Region Descriptor)のテーブルをメモリ上に保持

テーブルへのアドレスをレジスタに指定

Command Register の Start Bit に 1 を書き込むとDMA転送開始

DMAディスクリプタ

Memory Region Physical Base Address[31:1] 0

EOT reserved Byte Count[15:1] 0

… 0

… … … 0

1

Bus Master IDE Controller Physical Region Descriptor Table

オフセット 機能

00h Command Register

02h Status Register

(17)

シャドウDMAディスクリプタ

DMAディスクリプタのシャドウを作る

データだけVMMで横取りする

制御はゲストOSにさせる

ホストコントローラ バッファアドレス バイト数 ステータス 0xF0004000 16384 OK ベースアドレスレジスタ インデックス シャドウDMAディスクリプタ

+

バッファアドレス バイト数 ステータス 0x08086000 4096 OK 0x04004000 8192 OK 0x00386000 4096 Ready DMAディスクリプタ VMMの領域

(18)

DMA転送データの暗号化

ベースアドレス バイト数 0x08086000 4096 0x04004000 8192 0x00386000 4096 DMAディスクリプタ 物理メモリ ベースアドレス バイト数 0xF0004000 16384 シャドウDMAディスクリプタ VMM ゲストOS VMMによる暗号化/復号化+コピー

(19)

評価

内容

コードサイズ

コードサイズが削減できていることの確認

オーバーヘッド

VMMによるオーバーヘッドの測定

環境

ハードウェア:Intel Core 2 Duo E6850(3.0GHz),メモリ2GB,

ディスク74GB(10,000rpm)

ゲストOS:Fedora 8 (Linux 2.6.25.9-40.fc8)

(20)

VMMのコードサイズ

コア

総数:21,582行

実行時:13,789行

命令エミュレーション:2,239行,シャドウページ管理:1,130行

初期化:2,062行

デバッグ:5,781行

ATAドライバ

総数:1,287行

※最新バージョンでは実行時789行

(21)

VMMのコードサイズ

0 5000 10000 15000 20000 25000 VMMコア 13789 2062 5781 デバッグ 初期化 実行時 0 200 400 600 800 1000 1200 1400 ATA ドライバ ATA ドライバ (最新) 1279 789 デバッグ 初期化 実行時

(22)

Lmbenchの結果

0 5 10 15 20 25 30 35 40

null fork exec prot page ctx

オ ー バ ー ヘ ッ ド ( %

BitVisor

(23)

ストレージのオーバーヘッド(lmdd)

0 20 40 60 80 100 120 140 4KB 64KB 512KB 10MB 転送速度( MB/ s ブロックサイズ Linux BitVisorコア +ドライバ +暗号化

(24)

WindowsXPの起動時間

0 2 4 6 8 10 12 14 VMMなし BitVisorコア +ATAドライバ +暗号化 起動時間(秒)

WindowsXP

(25)

まとめ

準パススルー型VMM「BitVisor」の概要

VMMのサイズを非常に小さく出来る

ゲストOSのデバイスドライバを活用

必要最小限のI/OのみをVMMで監視・変換

準パススルー方式の実現手法を示した

制御I/OとデータI/Oの捕捉によるアクセス制御・暗号化

シャドウDMAディスクリプタによるDMA転送の監視

(26)

ダウンロード

近日公開予定

BitVisor 0.7

参照

関連したドキュメント

SUSE® Linux Enterprise Server 15 for AMD64 & Intel64 15S SLES SUSE® Linux Enterprise Server 12 for AMD64 & Intel64 12S. VMware vSphere® 7

管理画面へのログイン ID について 管理画面のログイン ID について、 希望の ID がある場合は備考欄にご記載下さい。アルファベット小文字、 数字お よび記号 「_ (アンダーライン)

事  業  名  所  管  事  業  概  要  日本文化交流事業  総務課   ※内容は「国際化担当の事業実績」参照 

自動車や鉄道などの運輸機関は、大都市東京の

Josef Isensee, Grundrecht als A bwehrrecht und als staatliche Schutzpflicht, in: Isensee/ Kirchhof ( Hrsg... 六八五憲法における構成要件の理論(工藤) des

[r]

概要/⑥主要穀物の生産量.

FortiAP セキュアな アクセスポイント FortiManager 集中セキュリティ 管理.