New feature新機能

UEFI Support UEFIサポート

BitVisor now supports UEFI, running on some Mac machines. 一部の Mac でも動作します。

Bug Fixes and Small Improvements バグ fix と機能改善

A lot of bugs are fixed. 多くのバグが修正されました。


Press Release

プレスリリース

ドリームニュース社(配信代行)

2014年5月15日 報道関係者各位

株式会社イーゲル
東京大学情報基盤センター

「純国産セキュリティ対策仮想マシンモニタBitVisor、UEFIに対応したVersion1.4をリリース」

株式会社イーゲル(代表取締役社長:端山 貴也、以下イーゲル)と、東京大学情報基盤センターの品川高廣准教授らの研究グループは、純国産の仮想マシンモニタBitVisorの最新版であるVersion 1.4を2014年5月15日にリリースしました。

BitVisorは、セキュリティ対策を主たる目的として開発された仮想マシンモニタです。デスクトップPCやノートPCなどにBitVisorを導入することで、既存のOSに特別な変更を加えることなく、ハードディスク、CD/DVD-ROM ドライブ、USBメモリの暗号化、ICカードによるID管理及びUSBやIEEE1394などの物理ポートに対するアクセス制御を実現します。BitVisorは、OS上で動作する類似ソフトウェアと異なり、これらの機能を仮想マシンモニタ内で行うことによって、ユーザーにセキュリティソフトウェアの存在を意識させることなく、より高速に、かつ、安全に動作します。BitVisorは、インテル(R) ヴァーチャライゼーション・テクノロジー(Intel VT)、及び AMD Virtualization (AMD-V) Technologyに対応するプロセッサを備えた環境にて利用することができます。

新バージョンでは、UEFI対応(※1)が追加されました。UEFIは、PC環境で従来より用いられているBIOS(※2)を、よりセキュア、かつ、利便性の高いものに置き換える仕様です。 UEFIは、近年のPC環境(Windows8デスクトップ・ノートPC、Macintosh等)において、標準になりつつあります。UEFI対応により、OSの高速起動、2.2TB以上の大容量ハードディスクからのOS起動、GUIによるシステム基本設定などのUEFIの利点を活かした最新のPC環境においてもBitVisorの利用が可能になりました。

BitVisorのソースコードは、修正BSDライセンスにより、オープンソースとして公開されており、最新版(Version 1.4)は、公式サイト(http://www.bitvisor.org)よりダウンロードできます。また、同ライセンスに基づき、自由に改変、自社製品に応用することが可能です。

新バージョンのリリースに併せて、5月14日から5月16日まで東京ビッグサイトで開催される、組込みシステム開発技術展(ESEC)にBitVisorの導入事例を展示します。

BitVisor用途例

業務用として社内/組織内に配備されるタブレット端末、モバイル端末及びデスクトップPCのUSBメモリ、ハードディスクの暗号化による情報漏えい対策

不特定多数が使う学校等の教室に配備されるパソコンのUSBポートを無効化し、USBメモリなどの不正な利用による情報漏えい及び不正ソフトウェア混入の防止

在宅勤務用パソコン本体及び社内システムとの通信経路を強制的にVPN接続し、ユーザーにVPN接続を意識させることなく、確実に情報漏えいを防止

営業部門やフィールド部門等、外出先作業の多い業務従事者用モバイル情報端末本体のストレージを暗号化、社内システムとの通信経路をOS設定に関わらず強制的にVPN接続、確実に情報漏えいを防止

既存のセキュリティ対策ソフトウェアでは満たせない自社独自のセキュリティシステム開発のための基盤としての利用

OS上に新たにソフトウェアをインストールすることなくハードウエア設定を管理するツールのベースとして応用

Intel VT、AMD-V技術を利用した新たなソフトウェア製品開発における基礎技術としての応用


BitVisor製品背景

BitVisorは、高度なセキュリティ機能を組み込んだクライアント向けの仮想マシン環境を実現します。政府が進める情報セキュリティ対策「セキュア・ジャパン」の中で構想され、筑波大学を中心としたセキュアVMプロジェクトにおいて、一から開発が進められました。プロジェクト終了後、その成果を受け継ぎ、東京大学情報基盤センターの研究グループ(研究責任者:品川 高廣)と、イーゲル(企業責任者:松原 克弥)により研究開発と、成果の公開が継続されています。 また、近年のクラウドコンピューティングの需要増に対応した実用性の高い研究を行うため、科学技術振興機構(略称JST)の競争的資金である研究成果最適展開支援プログラム(A-STEP)(※3)のハイリスク挑戦タイプによる支援を受けています。(採択課題:高セキュリティ・高信頼度のクラウドコンピューティング環境実現に向けた基盤システムソフトウェア「BitVisor」の研究開発)


BitVisor製品特徴

OS非依存
 Windows Vista/7/8、Linux、FreeBSD、MacOS等のOSを修正することなく利用可能

軽量
 ハードウェア仮想化支援機能(Intel VT、AMD-V)を活用した仮想化オーバヘッドの最小化
 (管理が必要なデバイスアクセスのみを処理するBitVisor独自の準パススルー方式)

純国産オープンソース
 スクラッチから実装し、コードを公開

BitVisor基本機能

ストレージ管理
 HDD、光学メディア(CD/DVD-ROM)及びUSBメモリの暗号化
ID管理
 ICカードによる鍵管理・認証
ネットワーク管理
 IPsecによるVPN接続の強制化
物理ポート制御
 USB、IEEE1394などの物理ポートへのアクセス制限
サスペンド対応
 ゲストOSのスリープ動作への対応
Trusted Boot
 Trusted Boot(※4)に対応し、TPM(※5)によるシステム改竄の検出に対応


※1 32ビットUEFI環境は、未対応。
※2 BIOS(Basic Input/Output System)
 PCの電源を投入した直後、最初に起動してハードウェアと直接、入出力を行うソフトウェア。BIOSは、
 Windows、Linux、MacintoshなどのOS起動時の段階においてハードウェアを制御するために用いられる。
※3 独立行政法人科学技術振興機構(略称JST) 研究成果展開事業 研究成果最適展開支援プログラム(A-STEP)
 http://www.jst.go.jp/a-step
※4 Trusted Boot
 Trusted Bootは、起動に必要なソフトウェアの改竄をハッシュ値により検出する機構。
 それらのソフトウェアのハッシュ値は、TPMに保管され、その値の正当性を確認することで改竄の検出を行う。
※5 TPM(Trusted Platform Module)
 国際的な業界団体TCG(Trusted Computing Group)により規格策定されたセキュリティーチップ。
 RSA暗号、SHA-1ハッシュの生成・保管機能、乱数生成機能、内部構造解析への耐性などの機能を持つ。


本リリースにおける関連団体

株式会社イーゲル

所在地: 〒180-0006 東京都武蔵野市中町1-16-10 日本生命武蔵野ビル5F
主要業務: IT技術、システム設計・構築に関するコンサルテーションと開発業務
設立: 1998年8月13日
資本金: 11,000,000円
ホームページ:http://www.igel.co.jp


東京大学情報基盤センター情報メディア教育研究部門

所在地: 〒113-8658 東京都文京区弥生2-11-16 東京大学情報基盤センター
ホームページ:http://www.itc.u-tokyo.ac.jp/


本件に関するお問い合わせ先

担当: 株式会社イーゲル 北村、松原
TEL: 0422-50-2810
FAX: 0422-50-2811
E-mail: bitvisor@igel.co.jp

Release Note

リリースノート

1. UEFI Support Add UEFI support. However, there are some limitations: - 32-bit UEFI environment is not yet supported - Authentication programs, such as login-simple, are not yet supported - Device drivers are not yet tested - Calling TCG BIOS is not yet supported To start with UEFI, build a program in the boot/uefi-loader/ directory (a UEFI application that loads the bitvisor.elf). Then put the generated binary (loadvmm.efi) and the bitvisor.elf in a directory that can be accessed by UEFI. After that, make the loadvmm.efi executed before an OS loader by using EFI Shell or UEFI firmware functions. 2. Bug Fixes and Small Improvements - Core - Make a binary smaller than before by including no bss section to data section. - No NMI messages. - acpi: Add Suspend-to-RAM (S3) support on PCs that have different FACP and FACS in RSDT and XSDT. This is necessary on some AMD PCs. - acpi: Parse SSDT in addition to DSDT. - acpi: Clear DMAR to prevent guest OS from using iommu. - acpi: Implement a workaround to failure of parsing ACPI DSDT provided by some BIOSes. This is necessary on recent Intel NUC PCs. - ap: Make INIT-SIPI-SIPI edge trigger according to the processor manual. - cache: Resetting MTRRs when resuming from Suspend-to-RAM (S3). Previously cache was not properly used after resuming on Lenovo ThinkPad X200 with 4GiB RAM. - cache: Cache passthrough when CONFIG_CPU_MMU_SPT_DISABLE=1. - cache: Fixed range MTRRs passthrough on AMD-V environment to support extended attributes that are used by UEFI firmware. - cpuid: Conceal PCID that is not yet supported in the paging implementation in the VMM. - cpuid: Conceal 64bit if the VMM is 32bit. - exint_pass: External interrupts are intercepted only if config.vmm.no_intr_intercept=0. - main: CONFIG_SHIFT_KEY_DEBUG can enable/disable a function that executes dbgsh if Shift key was pressed when the VMM started. - mm: Fix a bug that the guest OS could access most part of the VMM region. - mm: Improve the performance of accessing memory by physical address. - mm: Change CR4.PGE to flush TLB entries properly. - mmio: Fix a bug in matching address. - mmio: Improve performance of matching address. - process: Fix a bug that the memory pointed by cr3 might be freed. - reboot: If config.vmm.auto_reboot=1, reboot immediately without printing messages when rebooting. - svm: Fix a bug that invalid memory was accessed when an NMI generated between a vmload instruction and a vmrun instruction. - time: Remove spinlocks in get_cpu_time(). - time: Fix a bug that get_cpu_time() returned incorrect value after Suspend-to-RAM and resume. - time: TSC has priority over ACPI PM Timer if config.vmm.ignore_tsc_invariant=0 and TSC invariant. - timer: Start timer thread only when necessary. - vmmcall: Fix a bug that accesses NULL pointer if a specified number is not registered. - vt: Use EFER save/load feature if available. This makes the VMM work on a virtual machine of VMware products. - vt: Organize accesses to 64-bit fields in VMCS into functions. - vt: Use EPT and unrestricted guest if available When CONFIG_CPU_MMU_SPT_DISABLE=1 and the guest OS disables paging. - vt, cpuid: Add XCR0.AVX support. - PCI - Add memory-mapped configuration support. - ATA - Add WRITE DMA FUA EXT command support. - AHCI driver: Fix a panic if the PxCI register is written first. - AHCI driver: Add 4MiB transfer support. - NIC - PRO/1000 driver: Add recent devices support such as I210, I217-V, I350, etc. - PRO/1000 driver: Fix incommunicable bug after Suspend-to-RAM and resume. - PRO/1000 driver: Fix NULL pointer dereference after VPN module initialization failure. - USB - EHCI driver: Fix a bug that the VMM may not update shadow if qTD is modified by the guest OS during making shadow of qTD. - EHCI driver: Update current qTD pointer properly. - EHCI driver: Conceal 64-bit addressing capability. - EHCI driver: Check buffer length of every register access. - Crypto - OpenSSL: Update to 1.0.0l. - VPN - Add main mode support, contributed by Mikhael S at Scientific Technical Center "Altras". - Boot - boot/loader: The space for bss section is allocated during installation. - boot/loader: Make bootloader simpler than before by adding 16-bit code to the bitvisor.elf. - Tools - common: Fix a bug that macros in call_vmm.h did not work properly depending on address. - common: Fix a bug that 64-bit binaries did not work properly. - iccard: Fix a bug that error handling did not work properly. - iccard: Fix a bug that the program did not work properly on AMD-V environment. - dbgsh: Add NUL input/output support. - dbgsh: Quit by exit command. - dbgsh: Output error message when config.vmm.dbgsh=0. - dbgsh: Output error message when calling VMM fails. - Others - Remove files that are not used. - Fix compilation errors when using x86_64-elf-gcc in MacPorts. - Fix improper memory operand constraint of inline assembly.
1. UEFI 対応 UEFI に対応した。ただし、以下のような制約がある。 - 32 ビットの UEFI 環境未対応 - Login-simple などの認証プログラム未対応 - デバイスドライバーの動作未確認 - TCG BIOS 呼び出し未対応 UEFI で起動するには、まず、boot/uefi-loader/ ディレクトリに含まれる プログラム (bitvisor.elf を読み込む UEFI アプリケーション) をビルド する。次に、生成されたバイナリ (loadvmm.efi) と bitvisor.elf を UEFI からアクセスできるファイルシステムの同一のディレクトリに置く。 そして、EFI Shell または UEFI ファームウェアの機能を用いて OS のロー ダーの前に loadvmm.efi が実行されるようにする。 2. バグ fix と機能改善 - Core - bss section を data section に含めないようにすることで、バ イナリが小さくなるようにした。 - NMI メッセージを出力しないようにした。 - acpi: RSDT と XSDT でそれぞれ異なる FACP および FACS が存在 する PC での Suspend-to-RAM (S3) に対応した。いくつかの AMD PC においてこの修正が必要なことが確認されている。 - acpi: DSDT に加えて SSDT も解釈するようにした。 - acpi: ゲスト OS が IOMMU を使用できないようにするため、DMAR をクリアするようにした。 - acpi: 一部 BIOS の持つ ACPI DSDT の解釈に失敗する問題の 回避策を実装した。この修正は最近の Intel NUC PC において 必要である。 - ap: INIT-SIPI-SIPI をプロセッサーマニュアルに従ってエッジト リガーとした。 - cache: Suspend-to-RAM (S3) から復帰した時に MTRR を再設定す るようにした。以前は、4GiB RAM を搭載した Lenovo ThinkPad X200 において、復帰後キャッシュが適切に行われなくなっていた。 - cache: CONFIG_CPU_MMU_SPT_DISABLE=1 の時にはキャッシュ設定 がパススルーになるようにした。 - cache: AMD-V 環境では、UEFI ファームウェアが使用する拡張属 性に対応するため、fixed range MTRR がパススルーになるように した。 - cpuid: VMM のページング実装において未対応の機能 PCID を隠蔽 するようにした。 - cpuid: もし VMM が 32bit ならば 64bit を隠蔽するようにした。 - exint_pass: config.vmm.no_intr_intercept=0 の場合のみ外部割 り込みを横取りするようにした。 - main: VMM が起動された時に Shift キーが押されていると dbgsh を実行する機能を、CONFIG_SHIFT_KEY_DEBUG によって有効 にしたり無効にしたりできるようにした。 - mm: ゲスト OS が VMM 領域の大部分に直接アクセスできていたバ グを修正した。 - mm: 物理アドレスによるメモリアクセスを高速化した。 - mm: CR4.PGE を変更し適切に TLB フラッシュを行うようにした。 - mmio: アドレスマッチングのバグを修正した。 - mmio: アドレスマッチングを高速化した。 - process: cr3 が指すメモリを解放することがあるバグを修正した。 - reboot: config.vmm.auto_reboot=1 であれば、再起動時にメッセー ジを表示せずにすぐに再起動するようにした。 - svm: vmload 命令が実行されてから vmrun 命令が実行されるまで の間に NMI が発生すると、不正なメモリアクセスが行われるバグ を修正した。 - time: get_cpu_time() のスピンロックをなくした。 - time: get_cpu_time() が Suspend-to-RAM の後不正な値を返す バグを修正した。 - time: config.vmm.ignore_tsc_invariant=0 かつ TSC invariant であれば ACPI PM Timer よりも TSC を優先するようにした。 - timer: タイマースレッドを必要になった時に開始するようにした。 - vmmcall: 指定された番号が未登録の場合に NULL ポインターへア クセスするバグを修正した。 - vt: EFER のセーブ/ロード機能があれば使うようにした。これに よって、VMware 製品の仮想マシン上で VMM が動作するようになっ た。 - vt: VMCS の中の 64 ビットフィールドに対するアクセスを関数に まとめた。 - vt: CONFIG_CPU_MMU_SPT_DISABLE=1 で、かつ、ゲスト OS がペー ジングをオフにしている時、EPT と unrestricted guest が利用 可能であれば使うようにした。 - vt, cpuid: XCR0.AVX に対応した。 - PCI - Memory-mapped configuration に対応した。 - ATA - WRITE DMA FUA EXT コマンドに対応した。 - AHCI driver: 最初に PxCI レジスターへの書き込みが行われると panic する問題を修正した。 - AHCI driver: 4MiB 転送に対応した。 - NIC - PRO/1000 driver: I210, I217-V, I350 等の新しいデバイスに 対応した。 - PRO/1000 driver: Suspend-to-RAM の後に通信できなくなるバグ を修正した。 - PRO/1000 driver: VPN モジュールの初期化失敗後の NULL ポインターアクセスを修正した。 - USB - EHCI driver: qTD のシャドウ生成中にゲスト OS が qTD を変更 すると、VMM がシャドウを更新しなくなることがあるバグを修正 した。 - EHCI driver: Current qTD pointer を正しく更新するように した。 - EHCI driver: 64-bit addressing capability を隠蔽するよう にした。 - EHCI driver: レジスターアクセスのバッファー長をチェックするよう にした。 - Crypto - OpenSSL: バージョン 1.0.0l に更新した。 - VPN - Main mode に対応した (Scentific Technical Center "Altras" の Mikael S さんからのコントリビュート)。 - Boot - boot/loader: インストール時に bss section のサイズの分のス ペースを確保するようにした。 - boot/loader: bitvisor.elf 側に 16 ビットコードを含めること により、bootloader をよりシンプルにした。 - Tools - common: call_vmm.h のマクロが展開されるアドレスによって正し く動作しなかったバグを修正した。 - common: 64 ビットバイナリが正しく動作しなかった問題を修正し た。 - iccard: エラー処理が機能しなかった問題を修正した。 - iccard: AMD-V 環境でプログラムが正しく動作しなかった問題を 修正した。 - dbgsh: NUL の入出力に対応した。 - dbgsh: exit コマンドで終了するようにした。 - dbgsh: config.vmm.dbgsh=0 の時、エラーメッセージを出力する ようにした。 - dbgsh: VMM 呼び出しに失敗した時にエラーメッセージを出力する ようにした。 - その他 - 使われていないファイルを削除した。 - MacPorts に含まれる x86_64-elf-gcc を使用すると発生する コンパイルエラーを修正した。 - インラインアセンブリの不適切な memory operand constraint を 修正した。

News

  • 2014/ 5/15: BitVisor 1.4 is released.
  • 2012/ 9/26: BitVisor 1.3 is released.
  • 2012/ 9/24: The BitVisor Summit page is opened.
  • 2011/10/28: BitVisor 1.2 is released.
  • 2010/12/24: BitVisor 1.1.1 is released.
  • 2010/12/21: A manual for BitVisor 1.1, written by IGEL Co.,Ltd, is released.
  • 2010/ 6/ 4: BitVisor 1.1 is released.
  • 2009/ 8/ 7: BitVisor 1.0.1 is released.
  • 2009/ 3/31: BitVisor 1.0 is released.

ニュース

  • 2014/ 5/15: BitVisor 1.4 をリリースしました。
  • 2012/11/13: BitVisor Summit の参加募集を開始しました.
  • 2012/ 9/26: BitVisor 1.3 をリリースしました。
  • 2012/ 9/24: BitVisor Summit のページを公開しました。
  • 2011/10/28: 株式会社イーゲルがプレスリリースを発表しました。
  • 2011/10/28: BitVisor 1.2 をリリースしました。
  • 2010/12/21: 株式会社イーゲル作成による BitVisor 1.1 のマニュアルをリリースしました。
  • 2010/ 6/ 4: BitVisor 1.1 をリリースしました。
  • 2009/ 8/ 7: BitVisor 1.0.1 をリリースしました。
  • 2009/ 3/31: BitVisor 1.0 をリリースしました。

Overview of BitVisor

BitVisor の概要

「BitVisor」は、PC のセキュリティ向上を目的とした
ハイパーバイザ(仮想マシンモニタ)です。

What's BitVisor

BitVisor とは

セキュリティ目的のハイパーバイザ

BitVisor (ビットバイザー)は、PC のセキュリティ向上を目的として開発されたハイパーバイザ(仮想マシンモニタ)と呼ばれるシステムソフトウェアです。

強力なセキュリティの実現

BitVisor は、仮想マシンモニタとして OS よりも下で動作することにより、ユーザの操作やOSの機能に影響を受けることなく、確実かつ強制的にセキュリティ機能を実施することが出来ます。

純国産オープンソース・ソフトウェア

BitVisor は、ゼロからフルスクラッチで開発された純国産のソフトウェアで、バイナリ及びソースコードは BSD ライセンスで公開されています。

セキュアVMプロジェクトによる開発

BitVisor は、筑波大学を中心に実施された「セキュアVMプロジェクト」において、約2年間かけて開発され、平成21年3月31日にはバージョン 1.0 がリリースされています。

SecureVM Project

セキュアVMプロジェクトとは

BitVisor was initially developed by the SecureVM project, an R&D project in Japan initiated by NISC (National Information Security Center) and executed by several organizations centered around the University of Tsukuba. The purpose of the project is to prevent information leakages from desktop/laptop PCs which are commonplace in both government and corporate organizations.

セキュアVMプロジェクトとは、内閣官房情報セキュリティセンター(NISC)の主導のもと、文部科学省の競争的研究資金である科学技術振興調整費に採択された課題「高セキュリティ機能を実現する次世代OS環境の開発」の一環として実施された研究開発プロジェクトのことです。

セキュアVMプロジェクトは、大学(筑波大学、電気通信大学、慶應大学、東京工業大学、奈良先端科学技術大学院大学、豊田工業高等専門学校)、企業(NTTデータ、NEC, 富士通、日立製作所、ソフトイーサ、イーゲルほか)、政府機関(内閣官房情報セキュリティセンター、情報通信研究機構、情報処理推進機構ほか)の連携により実施されました。

Goals of BitVisor

BitVisor の目的

「BitVisor」の目的は、
PC 環境からの情報漏洩を防止することです。

Goals: "Preventing Information Leakage from PC"

情報漏洩の問題

情報漏洩の多発

近年、様々な組織(企業や官公庁、学校、病院など)において、個人情報などの機密性の高い情報が大量にコンピュータで管理されるようになっています。しかし、これらの情報が第3者に漏洩してしまう事件が頻繁に発生しており、非常に大きな問題となっています。

例えば、NPO 日本ネットワークセキュリティ協会(JNSA)の調査によると、2007年度に発生した個人情報漏洩事件は864件、情報が漏洩した人数は3,053万人に上り、想定損害賠償総額は2兆2,000億円以上とされています(「2007年度 情報セキュリティインシデントに関する調査報告書」より)。

PCからの情報漏洩

BitVisor では、このような多発している情報漏洩の問題のうち、特にデスクトップPCやノートPCなどのような、PC環境からの情報漏洩を防止することを目的としています。

PCはユーザの手元で使用されるため、サーバなどに比べるとセキュリティ管理が十分に行われていないことが多くなっており、情報漏洩が多発する要因の一つとなっています。

Goals: "Two Major Reasons of Information Leakage"

情報漏洩の原因

情報漏洩の2大原因

PC環境からの情報漏洩の主な原因には、大きく分けると「ストレージからの情報漏洩」と「ネットワークからの情報漏洩」の2つがあります(図1参照)。

PC環境からの情報漏洩

図1:PC環境からの情報漏洩

ストレージからの情報漏洩

ストレージからの情報漏洩は、PC本体やUSBメモリなどの紛失・盗難によって発生します。ストレージとは、情報を保存するための記憶媒体のことで、ストレージが第3者の手に渡ると、内部に保存されている個人情報などが読み取られてしまいます。

このようなストレージの紛失・盗難は、情報漏洩が発生する大きな原因の一つとなっており、JNSAの調査では2007年度において漏洩原因の37.1%を占めています。

ネットワークからの情報漏洩

ネットワークからの情報漏洩は、個人情報を含んだPCがウィルスに感染した場合などに発生します。日本においてもっとも顕著な例はWinnyなどのファイル共有ソフトを経由した情報漏洩で、PC内に格納された情報が無作為にインターネットに配布されてしまいます。

ファイル共有ソフトに起因する情報漏洩事件は依然として続いており、JNSAの調査では2007年度において総件数の16.1%を占めています。

Functions

BitVisor の機能と構成

「BitVisor」は、
仮想マシンモニタで暗号化と認証をおこない、
情報漏洩を確実に防止します。

Encryption and Authentication

情報の暗号化と認証

BitVisor では、ストレージ及びネットワークからの情報漏洩を防止するために、暗号化及び認証技術を用います。

ストレージの暗号化
ストレージ暗号化

ストレージからの情報漏洩を防止するために、ハードディスクや USB メモリ、CD-R/DVD-R などの内容を強制的に暗号化します。これにより、仮に PC や USB メモリが紛失したり盗難にあっても、復号するための鍵が無い限りその情報を読み取ることができなくなります。

ネットワークの暗号化・接続先の限定
ネットワーク暗号化

ネットワークからの情報漏洩を防止するために、VPN(仮想専用線)接続を利用して、PCからのパケットを強制的に暗号化します。また、VPN の接続先をあらかじめ指定したサーバに限定します。これにより、ネットワークの盗聴やウィルスによるインターネットへの情報漏洩を確実に防止することができます。

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

暗号化の鍵の管理やVPN接続の認証を安全におこなうために、国家公務員身分証明書でも用いられている Type B と呼ばれる方式の IC カードを用います。これにより、暗号化や認証の鍵を安全に保管できるほか、仮に IC カードまで紛失しても PIN を知らない限り鍵を使えないようにすることができます。

Security with Virtual Machine

仮想マシンによるセキュリティ

セキュアVMプロジェクトでは、既存の Windows などのOS(オペレーティングシステム)やアプリケーションをそのまま使えるようにするために、上記の暗号化・認証機能を OS やアプリケーションには一切依存しない形で実現します。これにより、従来の環境を大きく変えることなく情報漏洩を防止することができるようになるほか、例え OS にセキュリティ上の脆弱性があったとしても、暗号化・認証機能が損なわれることが無いことを保証できるようになります。

これを実現するために、セキュアVMプロジェクトでは、Windows などの OS は『セキュアVM』と呼ばれる安全な仮想マシン環境の中で動作させます(図2参照)。

SecureVM

図2:セキュアVMの構成

仮想マシン(VM: Virtual Machine)とは、ソフトウェアによって仮想的に作り出されたコンピュータのことです。仮想マシンは、OS から見るとあたかも本物のコンピュータと同じであるかのように見えるため、既存の OS やアプリケーションを改変することなくそのまま動作させることが可能です。

仮想マシンは、仮想マシンモニタ(VMM: Virtual Machine Monitor)と呼ばれるソフトウェアによって実現されます。仮想マシンモニタとは、OSと物理的なハードウェアの間に入って動作するソフトウェアのことです。従来のPC環境では、OSは物理的なハードウェアに直接アクセスしていたのに対して、仮想マシン環境では、OSは仮想マシンモニタが提供する仮想ハードウェアを通じてのみ物理的なハードウェアにアクセスすることができます。

『セキュアVM』では、仮想マシンモニタの機能で仮想マシンに対して暗号化などのセキュリティ機能を付加することにより、あたかもセキュリティ機能を最初から装備しているかのような「安全なコンピュータ」を仮想的に作り出しています。

また、『セキュアVM』は仮想マシンモニタやハードウェアからは完全に隔離された環境になっているため、仮想マシンモニタはセキュアVM内で動作する OS の脆弱性などに影響を受けることなく、安全かつ確実にセキュリティ機能を実現することができます。特に近年では、OS を丸ごと乗っ取ることが出来てしまう攻撃手法が増えつつあるほか、OS の高機能化・複雑化に伴って OS 自身の安全性を保つことが困難になりつつあることから、仮想マシンモニタのレイヤで根本的なセキュリティを実現する手法はますます有効になりつつあります。

Usecase

利用例

「BitVisor」を用いると、
USBメモリなどで情報を安全に持ち出したり、
社内LANなどの情報に安全にアクセスすることが出来ます。

Use Case

利用例

BitVisor を用いた場合のシステム構成例を図3に示します。

ユーザは、組織内のネットワークに接続されたPCから情報にアクセスすることが出来るほか、これらの情報を安全に外に持ち出してノートPCなどでアクセスすることも出来ます。

例えば、組織内のPCで情報をUSBメモリに格納すると、その情報は自動的・強制的に暗号化されます。従って、仮にUSBメモリを外部に持ち出して紛失したり盗難されたりしても、暗号化のカギを知られない限りは情報を読み取られることが無いため、情報漏洩は発生しません。

Structure

BitVisor の構成

「BitVisor」の構成は、
3つの「セキュリティモジュール」と、
デバイスを制御する各種「ドライバ」と、
仮想マシンモニタの「コア」からなります。

Functions

機能

セキュアVMプロジェクトで開発した仮想マシンモニタ「BitVisor」では、情報漏洩の防止を目的として、(1)ストレージ管理、(2)ネットワーク管理、(3)ID管理、の3種類のセキュリティ管理モジュールを内蔵しています(図1参照)。

ストレージ管理では、内蔵ハードディスク(ATA)やUSBメモリ、CD-R/DVD-Rなどのストレージデバイスの内容を暗号化します。暗号アルゴリズムには、IEEE で標準化されたストレージ向けの暗号規格である AES の XTS モード(IEEE 1619)を用いています。

ネットワーク管理では、VPN 接続を用いてネットワークパケットの暗号化及び接続先サーバとの認証をおこないます。VPN 接続のプロトコルには、IETF で標準化された IPsec (IPv4, IPv6) を用いています。

ID管理では、ICカードを用いてストレージ管理の暗号鍵や IPsec における公開鍵暗号認証の秘密鍵を安全に保管します。ICカードには、ISO/IEC で標準化された Type B と呼ばれる規格を用いています。

また、BitVisorには、上記の3種類のセキュリティモジュールを実行するための基盤となる、仮想マシンモニタのコア機能が含まれています。コア機能では、Intel VT という CPU の仮想化支援機構を利用して、仮想マシンモニタの機能を安全かつ効率よく実装しています。また、AMD-V という仮想化支援機構も実験的にサポートしており、Intel 社及び AMD 社の両方のマシンで動作します。

Feature

BitVisor の特徴

「BitVisor」の特徴は、
「準パススルー型」というユニークな構造により、
仮想マシンモニタを極めて小さく安全にできる点です。

BitVisor is a tiny hypervisor (Virtual Machine Monitor) for enhancing the security of desktop computers. It can be used as a basis for implementing various security services, such as intrusion detection and access control, in addition to built-in security services that can enforce encryption of storage and networks for preventing information leakages, by providing a facility for security services to intercept and manipulate I/O access from the guest OS in a secure and reliable fasion.

BitVisor(ビットバイザー)は、デスクトップPCやノートPCのセキュリティを向上させるための、非常に小さなハイパーバイザー(仮想マシンモニタ)です。ハイパーバイザー内のセキュリティモジュールでゲストOSからのI/Oアクセスを監視・変換する機能によって、ストレージやネットワークの強制的な暗号化、侵入検知、アクセス制御などの様々なセキュリティ機能を実施することが可能になります。ハイパーバイザー自身を極めて小さく保つことにより、ハイパーバイザー自身のセキュリティ・信頼性の向上及びオーバーヘッドの低減を実現しています。

The architecture of BitVisor

Figure 1: The architecture of BitVisor

The BitVisor hyperver is designed to minimize the size of the hypervisor, and hence the size of TCB (Trusted Computing Base), to improve the reliability of the hypervisor itself. Its unique architecture, called parapass-through, allows that most of the I/O access from the guest operating system to pass-through the hypervisor while I/O access critical to the security is completely mediated by security modules in the hypervisor.

The hypervisor requires no modification to guest OSs: Windows Vista/XP, Linux, FreeBSD, and other OSs can run on it. However, it depends on the specific hardwares, such as processors (with Intel VT or AMD-V), and I/O devices (currenty IDE, UHCI, Intel PRO/1000 devices to encrypt storage and networks). Since the purpose of the hypervisor is to enhance the security of desktop OSs, it does not support multiple VMs to run simultaneously.

Comparison

他方式との比較

OSによる暗号化

シンクライアント

仮想マシンモニタ

Download

ダウンロード

NameDateDescriptionDownload
BitVisor 1.4 2014/5/15 The latest BitVisor hypervisor bitvisor-1.4.tar.gz
BitVisor 1.3 bgenc 2012/9/26 The patch for background encryption bitvisor-1.3-bgenc.tar.gz
BitVisor 1.3 2012/9/26 The previous BitVisor hypervisor bitvisor-1.3.tar.gz
VPN (IPv4) 2008/3/19 A VPN (IPsec) client module for IP version 4 vpn_ipv4_only.tar.gz
VPN (IPv6) 2009/3/19 A VPN (IPsec) client module for IP version 6 vpn_ipv6_only.tar.gz

Sourceforge Download Page

Document

ドキュメント

NameDateDescriptionDownload
BitVisor Manual BitVisor マニュアル 2010/12/24 A manual for BitVisor 1.1 BitVisor 1.1 のマニュアル bitvisor-1.1-manual.pdf bitvisor-1.1-manual-japanese.pdf

Sourceforge Download Page

License

ライセンス

BitVisor is distributed under the terms of the modified BSD license.

BitVisor は修正版 BSD ライセンスの基で配布されます。

Copyright (c) 2007, University of Tsukuba All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the University of Tsukuba nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Derivation

派生物

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)

本製品は OpenSSL プロジェクトによって開発された、OpenSSL Toolkit で利用するためのソフトウェアを含んでいます (http://www.openssl.org/)。

Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================== This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). This product includes software written by Tim Hudson (tjh@cryptsoft.com). ====================================================================

Patent

特許

Trademark

商標

BitVisor® は日本及び米国における筑波大学の登録商標です。

BitVisor® is a registered trademark of the University of Tsukuba in Japan and United States.

Support

サポート

Mailing List

メーリングリスト

Currently we have mailing lists for users and developers (both in English). Please feel free to join us.

* Please note that we can not guarantee to respond your questions and requests due to limited human resources.

ユーザ向けと開発者向けのメーリングリスト(日本語)がありますので、ご自由に議論にご参加ください。

※現在の参加者は非常に少ないので、応答が得られない可能性もあります。予めご了承ください。

連絡先・問い合わせ先

有償サポート

株式会社イーゲルがBitVisorの導入支援及びコンサルティングなどの有償サービスを提供しています。ご興味のある方は、下記までお問い合わせください。

株式会社イーゲル  所在地: 〒180-0006 東京都武蔵野市中町1-13-3 ホーメスト武蔵野ビル8F  主要業務: IT技術、システム設計・構築に関するコンサルテーションと開発業務  設立:  1998年8月13日  資本金: 11,000,000円  ホームページ:http://www.igel.co.jp BitVisorに関するお問い合わせ先  担当: 株式会社イーゲル 北村、松原  TEL: 0422-50-2810  FAX: 0422-50-2811  E-mail: contact atmark igel.co.jp
研究内容

BitVisorの研究に関するお問い合わせは、下記までお願いいたします。

東京大学情報基盤センター 情報メディア教育研究部門 品川高廣(准教授) ホームページ: http://www.os.ecc.u-tokyo.ac.jp E-mail: shina atmark ecc.u-tokyo.ac.jp
本ホームページ

本ホームページに関するお問い合わせは、下記までお願いいたします。

E-mail: webmaster atmark bitvisor.org