JP2009223776A - 情報処理システム及び情報処理システム用プログラム並びにクライアント装置のアクセス制御方法 - Google Patents

情報処理システム及び情報処理システム用プログラム並びにクライアント装置のアクセス制御方法 Download PDF

Info

Publication number
JP2009223776A
JP2009223776A JP2008069675A JP2008069675A JP2009223776A JP 2009223776 A JP2009223776 A JP 2009223776A JP 2008069675 A JP2008069675 A JP 2008069675A JP 2008069675 A JP2008069675 A JP 2008069675A JP 2009223776 A JP2009223776 A JP 2009223776A
Authority
JP
Japan
Prior art keywords
access
virtual machine
machine monitor
necessary
realizing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2008069675A
Other languages
English (en)
Inventor
Takahiro Shinagawa
高廣 品川
Hideki Eiraku
英樹 榮樂
Kazunari Men
和成 面
Koichi Tanimoto
幸一 谷本
Shoichi Hasegawa
晶一 長谷川
Takashi Horie
高志 保理江
Kazuhiko Kato
和彦 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Tsukuba NUC
Original Assignee
University of Tsukuba NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Tsukuba NUC filed Critical University of Tsukuba NUC
Priority to JP2008069675A priority Critical patent/JP2009223776A/ja
Publication of JP2009223776A publication Critical patent/JP2009223776A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】 仮想マシンモニタを複雑化することなく、しかもセキュリティの高い情報処理システムを提供する。
【解決手段】 クライアント装置2は、1つのゲストオペレーティングシステムOSと複数のデバイスDを備えたハードウェアHWとの間に1つの仮想マシンモニタVMを備えている。仮想マシンモニタVMは、ゲストオペレーティングシステムOSからのアクセスを受け入れるが、セキュリティ機能を実現するために必要なアクセスだけを捕捉し、セキュリティ機能の実現に必要のないアクセスはハードウェアHWに対して素通しとするように構成されている。
【選択図】図1

Description

本発明は、仮想マシンモニタを用いて一定のセキュリティを保つことができる情報処理システム及び情報処理システム用プログラム並びにクライアント装置のアクセス制御方法に関するものである。
仮想マシン技術はメインフレームなどで古くから使われてきた技術であるが、近年のコンピュータ性能の向上により、安価なパーソナルコンピュータ上でも利用可能になってきている。これに伴い、従来のように高価なコンピュータを共有利用して有効活用するという目的だけでなく、コンピュータにセキュリティ機能などを追加する目的で仮想マシン技術が使われることが増えつつある[非特許文献1及び非特許文献2]。仮想マシンによりセキュリティ機能を実現する背景としては、近年のオペレーティングシステム(以下OSと言う場合がある)の複雑化がある。例えば、Linux(登録商標)の2.4.1では1,000行あたり6個以上のバグが含まれていることが知られている[非特許文献3]。そのためOS自身にバグがないことを保証することは極めて困難になってきている。仮想マシンでは、ハードウェアの機能を活用することで比較的強固な保護機構を実現することが可能であり、例えOSにバグがあったとしても一定のセキュリティを保つことができるという利点がある。
このような利点を利用した技術の一つとして、特開2008−33584号公報[特許文献1]に示された情報処理システムに関する技術がある。この情報処理システムでは、プログラムを起動する前及び起動した後のいずれにおいても、クライアント装置内のオペレーティングシステムとプログラムとの間にセキュリティ仮想マシンを配置する。そしてセキュリティ仮想マシンは、プログラムが発行するファイルアクセスに関するシステムコールの内容を暗号化する等のセキュアな内容に改変してオペレーティングシステムに渡している。
「A Virtual Machine-Based Platform for Trusted Computing」 Proc. 19th ACM Symposium on Operating Systems Principles(SOSP ’03)、pp. 193−206 (2003). 「A Tiny Hypervisor to Provide Lifetime Kernel Code Integrity for Commodity OSes」Proc.21st ACM Symposium on Operating Systems Principles(SOSP ’07), pp. 335−350 (2007). 「An Empirical Study of Operating Systems Errors」,Proc.18th ACM Symposium on Operating Systems Principles(SOSP ’01), pp. 73−88 (2001). 特開2008−33584号公報
仮想マシンモニタ(virtual machine monitor)でセキュリティ機能を実現する場合、仮想マシンモニタ自身にバグがないことが重要となる。一般にバグの数はコードの行数に比例するといわれており、仮想マシンモニタ自身をシンプルかつ小さく保つことが必要である。しかし従来の仮想マシンモニタでは、仮想マシンモニタ自身を小さくすることは容易ではない。例えばTypeII型の仮想マシンモニタでは、ホストOSの上に仮想マシンモニタを構築するため、ホストOSにバグがあるとセキュリティ上の問題が生じる。一方TypeI型、もしくはハイパーバイザ型と呼ばれる方式の仮想マシンモニタでは、ハードウェアを直接制御するためホストOSは不要になるものの、複数の仮想マシンモニタを動作させるためには依然として複雑な機能が必要となる。例えば、複数仮想マシンモニタVM間のスケジューリングやメモリ等の資源管理、各種I/Oデバイスの仮想化などが必要となり、OSに匹敵するほど複雑になる傾向がある。
また特許文献3に示された情報処理システムのように、仮想マシンモニタをOSの上位に置いた場合には、OS自身にバグが存在している場合に生じるセキュリティ上の問題を解消することができない。
本発明の目的は、仮想マシンモニタを複雑化することなく、しかもセキュリティの高い情報処理システムを提供することにある。
本発明の目的は、仮想マシンモニタを複雑化することなく、しかもシステムのセキュリティを高めた情報処理システムを構築するために使用できるクライアント装置のための情報処理システム用プログラムを提供することにある。
本発明の目的は、仮想マシンモニタを複雑化することなく、しかもシステムのセキュリティを高めることができるクライアント装置のアクセス制御方法を提供することにある。
本発明は、クライアント装置とウエブサーバ装置とが通信網で接続された情報処理システムを対象とする。本発明では、クライアント装置が、1つのゲストオペレーティングシステムと複数のデバイスを備えたハードウェアとの間に1つの仮想マシンモニタを備えている。そして仮想マシンモニタは、ゲストオペレーティングシステムからのアクセスを受け入れるが、セキュリティ機能を実現するために必要なアクセスだけを捕捉し、セキュリティ機能の実現に必要のないアクセスはハードウェアに対して素通しとするように構成されている。
このように、仮想マシンモニタが、セキュリティ機能を実現するために必要なアクセスだけを捕捉し、セキュリティ機能の実現に必要のないアクセスはハードウェアに対して素通しとすると、仮想マシンモニタを小さく保ちつつセキュリティ機能を実現することができる。本発明で用いる仮想マシンモニタでは、ゲストオペレーティングシステムからハードウェアへのアクセスは基本的には素通しとして、直接アクセス可能とする。一方セキュリティ機能の実現に必要なアクセス制御や暗号化等を行うために最小限必要なアクセスだけを仮想マシンモニタで監視・捕捉する。これにより、仮想マシンモニタがハードウェア資源を完全に管理する必要がなくなる。また複数のオペレーティングシステムを同時に動かすためのスケジューリングやデバイスの多重化等の処理が不要となり、仮想マシンモニタを大幅にシンプルな構造にすることができる。
特に、仮想マシンモニタを、セキュリティ機能を実現するために必要な制御及び暗号化を行うために必要なアクセスだけを捕捉するように構成すると、ゲストオペレーティングシステムには依存しない形でアクセス制御を行って、しかも確実・強制的に暗号化を行うことができる。
なお仮想マシンモニタは、ゲストオペレーティングシステムからのアクセスを監視し、セキュリティ機能を実現するために必要なアクセスか否かを判断する監視部と、監視部が捕捉の必要性がないと判断したアクセスをハードウェアの1以上のデバイスに素通しさせる素通しパスと、監視部が捕捉の必要性があると判断したアクセスを捕捉してセキュリティ機能を実現するために必要な内容に改変する処理を実行してハードウェアの1以上のデバイスに渡す捕捉改変部とを備えた構成とすることができる。仮想マシンモニタをこのような構成要素で構成すると、仮想マシンモニタは非常にシンプルなものとなる。
本発明は、1つのゲストオペレーティングシステムと複数のデバイスを備えたハードウェアとの間に1つの仮想マシンモニタを備え且つウエブサーバ装置と通信網で接続されたクライアント装置のアクセス制御方法としても把握することができる。本発明のアクセス制御方法では、仮想マシンモニタを用いて、ゲストオペレーティングシステムからのアクセスを受け入れ、セキュリティ機能を実現するために必要なアクセスだけを捕捉し、セキュリティ機能の実現に必要のないアクセスはハードウェアに対して素通しとするようにアクセスを制御する。
また本発明を、コンピュータを備えたクライアント装置において実施するためのプログラムは、1つのゲストオペレーティングシステムと複数のデバイスを備えたハードウェアとの間に1つの仮想マシンモニタを構築する手順と、仮想マシンモニタに、ゲストオペレーティングシステムからのアクセスを受け入れるが、セキュリティ機能を実現するために必要なアクセスだけを捕捉し、セキュリティ機能の実現に必要のないアクセスはハードウェアに対して素通しとする機能を実行させる手順とをコンピュータに実行させる。
そしてこのプログラムは、前述の監視部と、素通しパスと、捕捉改変部とを前記仮想マシンモニタ内に構築する。
なお本発明の情報処理システム用プログラムがコンピュータ読み取り可能な記憶媒体に記憶されていてもよいのは勿論である。
本発明によれば、仮想マシンモニタを複雑化することなく、しかもセキュリティの高い情報処理システム、情報処理システム用プログラム及びクライアント装置のアクセス制御方法を提供することができる。
以下、図面を参照して本発明を実施するための最良の形態の一例を説明する。図1は、本発明を実施した情報処理システムの構成の概略を示す図である。図1において、符号1で示したものはウエブサーバ装置であり、符号2で示したものはインターネット等の通信網3を介してウエブサーバ装置1に接続されたクライアント装置である。クライアント装置2は、ゲストオペレーティングシステムOSと、仮想マシンモニタVMと、複数のデバイスDを含むハードウェアHWとから構成されている。クライアント装置2は、1つのゲストオペレーティングシステムOSと複数のデバイスDを備えたハードウェアHWとの間に1つの仮想マシンモニタVMを備えている。この例では、ゲストオペレーティングシステムOSは、カーネル(オペレーティングシステムの基本機能を受け持つプログラム)によってデバイスドライバを構成しているものとする。そして仮想マシンモニタVMは、ゲストオペレーティングシステムOSからのアクセスを受け入れるが、セキュリティ機能を実現するために必要なアクセスだけを捕捉し、セキュリティ機能の実現に必要のないアクセスはハードウェアHWに対して素通しとするように構成されている。発明者は、このような機能を有する仮想マシンモニタVMを、準透過型仮想マシンモニタと命名している。特に、本実施の形態で用いる仮想マシンモニタVMは、セキュリティ機能を実現するために必要なアクセス制御及び暗号化を行うために必要なアクセスだけを捕捉するように構成されている。そのため、ゲストオペレーティングシステムOSには依存しない形でアクセス制御を行って、しかも確実・強制的に暗号化を行うことができる。本発明で用いる仮想マシンモニタVMは、図2に示すように、ハードウェア的に見た場合には、監視部Mと、素通しパスPTと、捕捉改変部Cとから構成されているものと考えることができる。監視部Mは、ゲストオペレーティングシステムOSからのアクセスを監視して、セキュリティ機能を実現するために必要なアクセスか否かを判断する。素通しパスPTは、監視部Mが捕捉の必要性がないと判断したアクセスをハードウェアHWの1以上のデバイスDに素通しさせる。そして捕捉改変部Cは、監視部Mが捕捉の必要性があると判断したアクセスを捕捉してセキュリティ機能を実現するために必要な内容に改変する処理を実行し、改変したアクセスの内容をハードウェアHWの1以上のデバイスDに渡す。
図3は、本発明のクライアント装置のアクセス制御を実行するプログラムのアルゴリズムを示すフローチャートである。まずステップST1では、仮想マシンモニタVMを用いて、ゲストオペレーティングシステムOSからのアクセスを受け入れる。次にステップST2で、セキュリティ機能を実現するために必要なアクセスか否かの判定を行う。そしてステップST2で、セキュリティ機能を実現するために必要なアクセスであると判定した場合には、そのアクセスを捕捉し、ステップST3へと進む。ステップST2で、セキュリティ機能を実現するために必要なアクセスではないと判定した場合には、ステップST4へと進んで、そのアクセスを対応するデバイスDにそのまま渡す。ステップST3では、捕捉したアクセスをセキュリティ機能を実現するために必要な内容に改変する処理を実行する。その後ステップST4で、改変したアクセスの内容をハードウェアの1以上のデバイスDに渡す。このアルゴリズムでは、ステップST1及びステップST2により監視部Mが構成され、ステップST2乃至ステップST4により捕捉改変部Cが構成され、ステップST2及びステップST4により素通しパスが構成されている。
次に、本実施の形態で用いる仮想マシンモニタVMで採用する準透過型方式の概要を説明する。準透過型の仮想マシンモニタVMでは、ゲストオペレーティングシステムOSからハードウェアHWへのアクセスは基本的には素通しとする。一方、セキュリティ機能を実現するために最低限必要なアクセスだけを仮想マシンモニタVMで捕捉する。例えば図1では、ゲストオペレーティングシステムOSのカーネル内で動作しているデバイスドライバが、ハードウェアHWのデバイスDに対する各種入出力要求(I/O要求)を出している様子を表している。アクセスの多くは仮想マシンモニタVMで捕捉されることなくデバイスDに直接アクセスしている。一方、セキュリティ機能を実現するためには、主に制御入出力(以下制御I/Oと言う)とデータ入出力(以下データI/Oと言う)の2種類が仮想マシンモニタVMによって捕らえる必要がある。
ここで制御I/Oとは、アクセスの対象となるデバイスDの場所やアクセスの方法などを指定するためI/Oである。例えばディスクであれば、セクタのアドレスやセクタ数、読み込みと書き込みのどちらか等の情報がある。制御I/Oを仮想マシンモニタVMで捕捉する目的は、主に2つある。まず1つ目は、ゲストオペレーティングシステムOSから仮想マシンモニタVMが使用するメモリやディスクなどの資源に対する不正アクセスを防止するために、ゲストオペレーティングシステムOSが発行する制御I/Oに対してアクセス制御を行うことである。2つ目は、デバイスDへのデータの読み書きの内容やタイミングを確実に捕らえて、漏れなく暗号化などの処理を行うために、ゲストオペレーティングシステムOSが発行した制御I/Oを記録することである。制御I/Oの捕捉は、アクセス制御やデバイスDの状態把握が目的であるため、基本的にはI/Oの内容は改変されることなくそのままデバイスDに送られる。
またデータI/Oとは、実際にデバイスDに読み書きされるデータをやり取りするためのI/Oである。例えば、ディスクであれば読み書きするセクタの内容であり、ネットワークであればイーサネット(登録商標)のパケットなどが相当する。データI/Oについては、内容のバイト列を暗号化するなど内容を書き換える処理が必要となるため、仮想マシンモニタVMでいったん受け取ってから暗号化/復号化を施すという操作を行う。また、必要に応じてデバイスDへのアクセスをエミュレーションする。
準透過型方式では、ゲストオペレーティングシステムOSは基本的にハードウェアHWの名前空間をそのまま使用する。例えば、ゲストオペレーティングシステムOSから見えるメモリの物理アドレス(ゲスト物理アドレス)は、ハードウェアHWの物理アドレス(マシン物理アドレス)と同じである。通常の仮想マシンモニタVMでは、複数のゲストオペレーティングシステムOSを同時に動かすために、ゲスト物理アドレスとマシン物理アドレスは異なるものを使用し、仮想マシンモニタVMによってアドレスの変換を行う。しかし準透過型方式では、ゲスト物理アドレスはマシン物理アドレスと原則として一致しているため、変換のオーバーヘッドを削減できる。ハードウェアHWの名前空間をそのまま使用するものとしては、物理アドレス、I/Oアドレス、ストレージの論理ブロックアドレス、各種バス(PCI バスやUSB バスなど)のアドレスなどがある。
次に各種I/Oアクセスの方法に対して、準透過型を実現する手法を説明する。ソフトウェアからI/O要求をデバイスDに出す方法としては、主にI/O命令、メモリマップドI/O、DMA(Direct Memory Access)の3つが挙げられる。準透過型方式では、この3つのそれぞれの方法に対して、必要に応じてアクセスを捕らえて、アクセス制御や暗号化を行う。以下、それぞれの方式について、仮想マシンモニタVMでアクセスを捕捉する方式について述べる。
まずI/O命令は、I/Oアクセス専用のCPU 命令である。例えば、インテル社の32ビットのマイクロプロセッサで用いられているマイクロアーキテクチャーであるIA-32ではIN 命令やOUT 命令によってI/O命令が行われる。IN 命令やOUT 命令では、I/O命令を行うI/O空間のアドレスを指定して、1命令毎に1〜4バイトの単位でデバイスDへのアクセスを行う。多くの仮想マシンモニタVMでは、通常ゲストオペレーティングシステムOSから発行されたI/O命令を捕捉する機能を実現している。これはI/O命令は特権命令であるため、セキュリティやデバイスDの仮想化を実現するためは仮想マシンモニタVMで捕捉することが必須であるためである。準透過型仮想マシンモニタVMでも、セキュリティ機能を実現するために必要な制御I/OやデータI/Oの捕捉を行う。一方、その他のI/Oに関しては仮想化の必要がないため、デバイスDに対してそのままI/O要求を送る。これは仮想マシンモニタVMがゲストオペレーティングシステムOSの代わりにI/O命令を代行したり、可能であればハードウェアHWの仮想化機能を活用して、仮想マシンモニタVMを経由せずに直接デバイスDに送られるように設定する。I/O命令によるアクセスの場合、同じI/Oアドレスへのアクセスであっても、読み込み時と書き込み時で実際にアクセスするレジスタが異なる場合がある。このため、必要に応じてゲストオペレーティングシステムOSからレジスタへの書き込みを捕捉して、その値を仮想マシンモニタVMのメモリ領域に保存しておく必要がある。I/O命令がデータI/Oであった場合、その内容は暗号化などの変換処理をする必要がある。しかし暗号化は一般にバイト単位ではなく、セクタ単位などある程度まとまった単位で行う必要がある。そこで、複数の連続するI/Oを仮想マシンモニタVMでバッファリングしてから暗号化/復号化などの変換を行い、その後I/Oをエミュレーションする必要がある。
メモリマップドI/Oは、専用のI/O命令を使わずに、通常のメモリアクセス命令によってI/Oを行う仕組みである。メモリマップドI/Oは、後述するシャドウページテーブルの仕組みを用いて、アクセスを捉える。すなわちメモリマップドI/Oとして設定されている物理アドレスに対しては、ページテーブルのエントリにおいて必要に応じて読み込み及び書き込みのいずれか、または両方を禁止する。これにより、ゲストオペレーティングシステムOSがメモリマップドI/Oの物理アドレス領域にアクセスを行うと、仮想マシンモニタVMに制御が渡される。仮想マシンモニタVMはアクセスしようとしてるアドレスと内容を命令エミュレーション等によって判別し、必要なアクセス制御や暗号化などの処理を行う。メモリマップドI/Oの捕捉はシャドウページテーブルによって行うため、アクセスの単位はページ単位となる。従って、仮想マシンモニタVMで捕捉する必要のないアクセスも捕捉されてしまう可能性がある。すなわち1つのデバイスDの中でも捕捉が必要な場合とそうでない場合がある。2つのデバイスDのMMIOが1つのページに載ってしまうこともある。これは性能低下を招く可能性があるが、セキュリティ上は問題はない。性能については、メモリマップドI/Oで用いるアドレスの配置を工夫するなどによって最適化できる場合がある。
DMA (Direct Memory Access )は、CPU が介在することなく直接デバイスDとメモリ間でデータのやり取りをするための仕組みである。すなわちDMA とは、機械語の命令群によらず、メモリとメモリまたはメモリとI/Oデバイスの間で直接データを転送することである。そのためDMA は、デバイスD及びメモリバスと接続されており、CPU から予め転送元と転送先の内容を設定したうえで、DMA の動作を開始すると、デバイスDとメモリ間で自動的にデータ転送を行う。最近のDMA 転送では、メモリ上に置かれたディスクリプタの内容に従って自動的にDMA を繰り返し行う機能を持っているものが多い。図4にディスクリプタを用いたDMA 転送の例を示す。デバイスDを制御するホストコントローラは、メモリ上におかれたDMA ディスクリプタの内容を参照して、転送先のメモリのアドレスや転送サイズを取得し、デバイスDからのデータ転送をDMA ハードウェアHWで行う。ディスクリプタには複数のエントリがあり、1つのエントリ分の転送が終わるとホストコントローラは自動的に次のエントリに進むようになっている。転送の終了は割り込みやポーリングによってOSに通知される。準透過型仮想マシンモニタVMでは、アクセス制御やディスクの暗号化などを行うために、DMAによって転送されるデータの中身を捕捉・変換する必要がある。しかし、DMA 転送はハードウェアHWによって行われてしまうため、純粋な透過型では仮想マシンモニタVMで内容を捕捉することができない。
そこで準透過型では、図5に示すような、シャドウDMAディスクリプタという仕組みを用いる。シャドウDMAディスクリプタは、仮想マシンモニタVMが管理するDMAディスクリプタで、ゲストオペレーティングシステムOSが作成したDMAディスクリプタ(ゲストDMAディスクリプタ)の代わりとしてホストコントローラに設定する。シャドウDMAディスクリプタには、仮想マシンモニタVM内部のメモリ領域がアドレスとして設定されており、デバイスDとのデータ転送は、実際には仮想マシンモニタVMが管理するメモリ領域との間で行われる。仮想マシンモニタVMはゲストオペレーティングシステムOSが設定したDMAディスクリプタを適宜参照して、仮想的にホストコントローラの機能を実現する。すなわち、ゲストDMAディスクリプタの内容を解釈して、仮想マシンモニタVMのメモリ領域とゲストオペレーティングシステムOSのメモリ領域との間でデータのコピーを行う。このとき、データ転送はソフトウェア的に行うため、暗号化・復号化などの処理を行うことができる。仮想マシンモニタVMによる転送を行うためには、何らかのタイミングでゲストオペレーティングシステムOSから仮想マシンモニタVMに制御が移る必要があるが、これは読み込みと書き込みでタイミングが異なる。読み込み時には、デバイスDから仮想マシンモニタVMのメモリへのデータ転送が先であるため、仮想マシンモニタVMではゲストオペレーティングシステムOSによるDMA 転送開始を支持する制御I/Oを捕捉する。このとき仮想マシンモニタVMは転送サイズを調べてシャドウDMA ディスクリプタの内容を適切に設定した後で、DMA 転送開始のI/OをハードウェアHWに渡す。DMA 転送が終わると、ゲストオペレーティングシステムOSは割り込みやステータスレジスタの参照などの方法で転送が正常に終了したことを確認する必要があるため、これを仮想マシンモニタVMで捕捉して、ゲストDMAディスクリプタに従ってデータを変換・転送する。書き込み時には、データの変換・転送が先であるため、DMAの開始を仮想マシンモニタVMで捕捉したときに、ゲストDMAディスクリプタを参照してゲストオペレーティングシステムOSのメモリ領域から仮想マシンモニタVMのメモリ領域にデータを転送・変換する。また、同時にシャドウDMAディスクリプタの内容も適切に設定する。その後DMA 転送の開始をハードウェアHWに通知する。DMA 転送の終了時には特に処理を行う必要はない。準透過型では、制御I/Oは監視するだけで基本的にはハードウェアHWに素通しとなるため、DMA におけるタイミングなどのパラメータ設定や転送開始などの制御は、基本的にはゲストオペレーティングシステムOSによって行われる。従って、仮想マシンモニタVMではDMA の制御をすべて行う必要はないため、仮想マシンモニタVMを簡略化できる。また、シャドウDMAディスクリプタは仮想マシンモニタVMのメモリ内に存在するため、ゲストオペレーティングシステムOSが不正に内容を書き換えることは出来ない。
準透過型仮想マシンモニタVMでは、メモリの仮想化を行うために、他の仮想マシンモニタVMでも用いられているシャドウページテーブルという方式を用いる。このシャドウページテーブルについては、「Xen and the Art of Virtualization」[Proc. 19th ACM Symposium on Operating Systems Principles (SOSP ’03)、 New York、 NY、 USA、 ACM、 pp. 164−177 (2003)]に詳しく説明されている。シャドウページテーブルでは、ゲストオペレーティングシステムOSが管理しているページテーブルに対して、シャドウと呼ばれるコピーを作成して仮想マシンモニタVMのメモリ領域内に保持する。プロセッサのハードウェアHWが用いるページテーブルは実際にはこのシャドウページテーブルを参照する。仮想マシンモニタVMは、必要に応じてゲストオペレーティングシステムOSのページテーブルの内容をシャドウページテーブルに反映させることにより、メモリの仮想化を行う。複数のゲストオペレーティングシステムOSをサポートする仮想マシンモニタVMでは、1つの物理アドレス空間を共有するために、ゲストオペレーティングシステムOSが使用する物理アドレス空間を実際のハードウェアHWの物理アドレス空間に変換する処理を行う必要がある。しかし準透過型の仮想マシンモニタVMでは、ゲストオペレーティングシステムOSが使用する物理アドレス空間は基本的には実際の物理アドレス空間と一致するため、この変換を行うオーバーヘッドを削減することができる。準透過型で仮想マシンモニタVM自身が使用している物理メモリ領域へのアクセスを禁止するために、ゲストオペレーティングシステムOSのページテーブルの内容をシャドウページテーブルに反映する際にアクセス制御を行う。具体的には、ページテーブルのエントリに書かれている物理アドレスの値を検査して、仮想マシンモニタVMが使用している領域であったら、他の未使用領域のアドレスに変換してページフォルトが発生するようにする。また、起動時にOSに対して利用可能な物理アドレス領域を通知する仕組みを用いて、仮想マシンモニタVMが使用している領域は使用できないことを通知しておくことにより、意図的に仮想マシンモニタVMの領域にアクセスしようとしない限りは、従来のOSを改変なしにそのまま動作させることができる。
準透過型仮想マシンモニタVMでは、1つのゲストオペレーティングシステムOSと仮想マシンモニタVMがそれぞれ独立して動作している。そこでゲストオペレーティングシステムOSが行ったアクセスが仮想マシンモニタVMによって捉えられる場合や、その後に、仮想マシンモニタVMを動作させるためにはメモリやプロセッサなどの仮想化も必要となる。なおこの点は、本発明の要旨とは直接関係がないため説明を省略する。
本発明を実施した情報処理システムの構成の概略を示す図である。 仮想マシンモニタ内に構成される手段を示す図である。 本発明のクライアント装置のアクセス制御を実行するプログラムのアルゴリズムを示すフローチャートである。 DMAによるデータ伝送の様子を示す図である。 シャドウDMAディスクリプタによるデータ伝送の様子を示す図である。
符号の説明
1 ウエブサーバ装置
2 クライアント装置
3 通信網
OS ゲストオペレーティングシステム
VM 仮想マシンモニタ
HW ハードウェア
D デバイス
M 監視部
C 捕捉改変部
PT 素通しパス

Claims (9)

  1. クライアント装置とウエブサーバ装置とが通信網で接続された情報処理システムであって、
    前記クライアント装置は、1つのゲストオペレーティングシステムと複数のデバイスを備えたハードウェアとの間に1つの仮想マシンモニタを備えており、
    前記仮想マシンモニタが、前記ゲストオペレーティングシステムからのアクセスを受け入れるが、セキュリティ機能を実現するために必要なアクセスだけを捕捉し、前記セキュリティ機能の実現に必要のないアクセスは前記ハードウェアに対して素通しとするように構成されていることを特徴とする情報処理システム。
  2. 前記仮想マシンモニタは、前記セキュリティ機能を実現するために必要な制御及び暗号化を行うために必要なアクセスだけを捕捉するように構成されている請求項1に記載の情報処理システム。
  3. 前記仮想マシンモニタは、前記ゲストオペレーティングシステムからのアクセスを監視し、前記セキュリティ機能を実現するために必要なアクセスか否かを判断する監視部と、
    前記監視部が捕捉の必要性がないと判断したアクセスを前記ハードウェアの1以上の前記デバイスに素通しさせる素通しパスと、
    前記監視部が捕捉の必要性があると判断したアクセスを捕捉して前記セキュリティ機能を実現するために必要な内容に改変する処理を実行して前記ハードウェアの1以上の前記デバイスに渡す捕捉改変部とを備えている請求項1または2に記載の情報処理システム。
  4. 1つのゲストオペレーティングシステムと複数のデバイスを備えたハードウェアとの間に1つの仮想マシンモニタを備え且つウエブサーバ装置と通信網で接続されたクライアント装置のアクセス制御方法であって、
    前記仮想マシンモニタを用いて、前記ゲストオペレーティングシステムからのアクセスを受け入れ、セキュリティ機能を実現するために必要なアクセスだけを捕捉し、前記セキュリティ機能の実現に必要のないアクセスは前記ハードウェアに対して素通しとするようにアクセスを制御することを特徴とするクライアント装置のアクセス制御方法。
  5. 前記仮想マシンモニタは、前記セキュリティ機能を実現するために必要な制御及び暗号化を行うために必要なアクセスだけを捕捉することを特徴とする請求項4に記載のクライアント装置のアクセス制御方法。
  6. コンピュータを備えたクライアント装置において、1つのゲストオペレーティングシステムと複数のデバイスを備えたハードウェアとの間に1つの仮想マシンモニタを構築する手順と、
    前記仮想マシンモニタに、前記ゲストオペレーティングシステムからのアクセスを受け入れるが、セキュリティ機能を実現するために必要なアクセスだけを捕捉し、前記セキュリティ機能の実現に必要のないアクセスは前記ハードウェアに対して素通しとする機能を実行させる手順とを前記コンピュータに実行させるための情報処理システム用プログラム。
  7. 前記仮想マシンモニタを、前記セキュリティ機能を実現するために必要な制御及び暗号化を行うために必要なアクセスだけを捕捉するように構築する請求項6に記載の情報処理システム用プログラム。
  8. 前記ゲストオペレーティングシステムからのアクセスを監視し、前記セキュリティ機能を実現するために必要なアクセスか否かを判断する監視部と、
    前記監視部が捕捉の必要性がないと判断したアクセスを前記ハードウェアの1以上の前記デバイスに素通しさせる素通しパスと、
    前記監視部が捕捉の必要性があると判断したアクセスを捕捉して前記セキュリティ機能を実現するために必要な内容に改変する処理を実行して前記ハードウェアの1以上の前記デバイスに渡す捕捉改変部とを前記仮想マシンモニタ内に構築する請求項6または7に記載の情報処理システム用プログラム。
  9. 前記請求項6乃至8のいずれか1項に記載の情報処理システム用プログラムが記憶されたコンピュータ読み取り可能な記憶媒体。
JP2008069675A 2008-03-18 2008-03-18 情報処理システム及び情報処理システム用プログラム並びにクライアント装置のアクセス制御方法 Withdrawn JP2009223776A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008069675A JP2009223776A (ja) 2008-03-18 2008-03-18 情報処理システム及び情報処理システム用プログラム並びにクライアント装置のアクセス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008069675A JP2009223776A (ja) 2008-03-18 2008-03-18 情報処理システム及び情報処理システム用プログラム並びにクライアント装置のアクセス制御方法

Publications (1)

Publication Number Publication Date
JP2009223776A true JP2009223776A (ja) 2009-10-01

Family

ID=41240453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008069675A Withdrawn JP2009223776A (ja) 2008-03-18 2008-03-18 情報処理システム及び情報処理システム用プログラム並びにクライアント装置のアクセス制御方法

Country Status (1)

Country Link
JP (1) JP2009223776A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013534001A (ja) * 2010-06-28 2013-08-29 インテル・コーポレーション 仮想化を用いた動画コンテンツの保護
JP2014525612A (ja) * 2011-08-10 2014-09-29 クアルコム,インコーポレイテッド モバイルデバイス上にセキュア仮想環境を提供するための方法および装置
JP2014529272A (ja) * 2011-09-29 2014-10-30 アマゾン テクノロジーズ インコーポレイテッド サポートシステムにおけるセキュア通信の実行
JP2015022344A (ja) * 2013-07-16 2015-02-02 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
JP7374548B2 (ja) 2019-09-24 2023-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想化環境で情報を覆い隠すこと

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013534001A (ja) * 2010-06-28 2013-08-29 インテル・コーポレーション 仮想化を用いた動画コンテンツの保護
JP2014525612A (ja) * 2011-08-10 2014-09-29 クアルコム,インコーポレイテッド モバイルデバイス上にセキュア仮想環境を提供するための方法および装置
JP2014529272A (ja) * 2011-09-29 2014-10-30 アマゾン テクノロジーズ インコーポレイテッド サポートシステムにおけるセキュア通信の実行
US9037511B2 (en) 2011-09-29 2015-05-19 Amazon Technologies, Inc. Implementation of secure communications in a support system
US9607162B2 (en) 2011-09-29 2017-03-28 Amazon Technologies, Inc. Implementation of secure communications in a support system
JP2015022344A (ja) * 2013-07-16 2015-02-02 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
JP7374548B2 (ja) 2019-09-24 2023-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想化環境で情報を覆い隠すこと

Similar Documents

Publication Publication Date Title
KR102255767B1 (ko) 가상 머신 감사를 위한 시스템 및 방법들
JP6411494B2 (ja) 仮想マシンにおけるページフォールトインジェクション
US8990934B2 (en) Automated protection against computer exploits
Shinagawa et al. Bitvisor: a thin hypervisor for enforcing i/o device security
US8612633B2 (en) Virtual machine fast emulation assist
US8225317B1 (en) Insertion and invocation of virtual appliance agents through exception handling regions of virtual machines
TWI697805B (zh) 載入和虛擬化密碼金鑰
JP5981845B2 (ja) 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路
CN110622138B (zh) 一种数据迁移方法及装置
US20060010440A1 (en) Optimizing system behavior in a virtual machine environment
US20140068612A1 (en) Facilitating execution of a self-modifying executable
JP6530723B2 (ja) コンピュータシステム内における複数のハイパーバイザーの共同運用を容易にするためのシステムおよび方法
Tan et al. iKernel: Isolating buggy and malicious device drivers using hardware virtualization support
US20120005676A1 (en) Computing Machine and Method of Updating Virtual Machine
Omote et al. Improving agility and elasticity in bare-metal clouds
US20160232354A1 (en) System memory integrity monitoring
Oyama et al. Detecting malware signatures in a thin hypervisor
Chubachi et al. Hypervisor-based prevention of persistent rootkits
Hetzelt et al. Via: Analyzing device interfaces of protected virtual machines
JP2009223776A (ja) 情報処理システム及び情報処理システム用プログラム並びにクライアント装置のアクセス制御方法
Anderson et al. Towards trustworthy virtualisation environments: Xen library os security service infrastructure
Li et al. Iso-UniK: lightweight multi-process unikernel through memory protection keys
JP2018526720A (ja) 仮想マシンの状態情報の保護
Im et al. On-demand virtualization for live migration in bare metal cloud
US11513825B2 (en) System and method for implementing trusted execution environment on PCI device

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110607