ソフトウェア
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 を参照してください。