ソフトウェア

BitVisor のアーキテクチャとコンポーネント紹介

BitVisor ハイパーバイザ

BitVisor は x86_64 (Intel VT-x / AMD-V) および AArch64 (v3.0〜) で動作する Type-1 ハイパーバイザです。 ゲスト OS に改変を加えることなく透過的に動作し、 Windows や Linux をゲスト OS として実行できます。

ソースコードは SourceForge で公開しています。 GNU global によるソースコード閲覧 も利用できます。

アーキテクチャ

BitVisor は parapass-through(パラパススルー) アーキテクチャを採用しています。 ゲスト OS からのほとんどの I/O アクセスはハイパーバイザを素通りして直接ハードウェアに届き、 セキュリティ上重要な I/O アクセスだけをハイパーバイザが仲介します。 ゲスト OS のデバイスドライバをそのまま活用するため、 大規模なデバイスエミュレーション層を持たず、 TCB(Trusted Computing Base)を最小限に抑えることができます。

また BitVisor はシングル VM 専用設計であり、複数 VM の同時実行はサポートしません。 この設計により VM 間のリソース管理機構が不要となり、コードサイズのさらなる削減を実現しています。

コンポーネント

コア

  • Intel VT-x / AMD-V による CPU 仮想化
  • Intel VT-d / AMD-Vi(IOMMU)による I/O 仮想化・DMA 保護
  • UEFI 64-bit ブートローダ(loadvmm.efi)
  • 保護ドメイン機能:ハイパーバイザコアと各セキュリティモジュール間のメモリ隔離
  • Kconfig ベースのビルド設定(make config)

ストレージドライバ

ドライバ 説明
ATA / ATAPI IDE インターフェース。ストレージ暗号化の最初の対象
AHCI SATA ホストコントローラ対応。v1.1 で追加
NVMe NVMe SSD の I/O フィルタリング。高速ストレージに対応

ネットワークドライバ

ドライバ 説明
Intel PRO/1000 (e1000) I210・I217-V・I350 など多数の Intel GbE NIC に対応
Realtek RTL816x Realtek NIC 対応(experimental)
virtio-net 仮想 NIC 対応
AQC107 Aquantia 製 10GbE NIC 対応

ネットワーク層には lwIP TCP/IP スタックを内蔵しています。

USB

  • UHCI / EHCI ドライバによる USB デバイスのフィルタリングと制御

VPN・暗号化通信

機能 説明
IPsec VPN NICT 提供の IPsec クライアントモジュール(メインモード対応)
WireGuard 軽量・高速な最新 VPN プロトコル。v3.0 前後で追加
Mbed-TLS TLS/SSL 対応の組み込み向け暗号ライブラリ。長期サポート版を採用

セキュリティ機能

  • ストレージ暗号化: ATA・AHCI・NVMe レベルでの透過的なディスク暗号化
  • デバイスフィルタリング: USB・ネットワークデバイスへのアクセス制御
  • DMA 保護: IOMMU を用いた不正 DMA アクセスの防止
  • PCI デバイス隠蔽: 指定した PCI デバイスをゲスト OS から隠蔽

ダウンロード

最新版 (v3.0) は ダウンロードページ を参照してください。

ビルド手順は Getting Started を参照してください。