JP4972046B2 - アクセス監視システムおよびアクセス監視方法 - Google Patents

アクセス監視システムおよびアクセス監視方法 Download PDF

Info

Publication number
JP4972046B2
JP4972046B2 JP2008183008A JP2008183008A JP4972046B2 JP 4972046 B2 JP4972046 B2 JP 4972046B2 JP 2008183008 A JP2008183008 A JP 2008183008A JP 2008183008 A JP2008183008 A JP 2008183008A JP 4972046 B2 JP4972046 B2 JP 4972046B2
Authority
JP
Japan
Prior art keywords
resource
access
access request
program
created
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.)
Active
Application number
JP2008183008A
Other languages
English (en)
Other versions
JP2010020713A (ja
Inventor
裕平 川古谷
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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2008183008A priority Critical patent/JP4972046B2/ja
Publication of JP2010020713A publication Critical patent/JP2010020713A/ja
Application granted granted Critical
Publication of JP4972046B2 publication Critical patent/JP4972046B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

この発明は、コンピュータ上で動作するプログラムから当該コンピュータの資源へのアクセスを監視するアクセス監視システムおよびアクセス監視方法に関する。
従来、コンピュータウィルスやワームなどの悪性プログラムや、脆弱性を有する可能性がある信頼できないプログラムなどを仮想マシン上に構築したOS(Operating System)環境で実行し、それらの振る舞いを監視する手法が知られている(「仮想マシン」については、たとえば、非特許文献1または2参照)。仮想マシン上のOS環境で不正プログラムを実行することによって、不正プログラムが破壊的な振る舞いをしたとしても、その影響がホストシステムにまで及ばないようにすることができる。すなわち、ホストシステムから隔離された環境で、不正プログラムを実行することができる。
一方、プロセス単位で、信頼できないプロセスとその実行環境であるホストシステムを隔離する手法も存在している。この手法では、所定のサブディレクトリを仮想的なルートディレクトリとして監視対象プロセスに見せかけ、そのルートディレクトリ構造以外のファイルへのアクセスは一切禁止することにより、プロセスと、その実行環境を提供しているホストシステムとの隔離を実現している(たとえば、非特許文献3参照)。
Paul Barham、Boris Dragovic、Keir Fraser、Steven Hand、Tim Harris、Alex Ho、Rolf Neugebauer、Ian Pratt、Andrew Warfield、"Xen and the Art of Virtualization"、University of Cambridge Computer Laboratory、[online]、[平成20年6月5日検索]、インターネット<URL:http://www.cl.cam.ac.uk/research/srg/netos/papers/2003-xensosp.pdf> "VMware workstation"、[online]、ヴイエムウェア株式会社、[平成20年6月5日検索]、インターネット<URL:http://www.vmware.com/jp/virtualization/> FreeBSD、「jail」、[online]、[平成20年6月5日検索]、インターネット<URL:http://www.freebsd.org/cgi/man.cgi?query=jail&format=html>
しかしながら、仮想マシン上にOS環境を構築して実行環境を作成する手法は、隔離といった点では有用ではあるが、プログラム一つを実行するためにOS環境一つを用意する必要があり、多大なコスト(コンピュータ資源に要するコスト)がかかる。そのため、大量のプログラムを監視するには適していない。
また、プロセス単位で隔離する手法では、完全に隔離された不自然なコンピュータ環境上でプログラムが実行されるため、隔離された環境で実行されていることが不正プログラムによって容易に検知されてしまい、正常な振る舞いを期待できないことが多い。また、隔離された環境で不正プログラムを正常に動作させるには、その不正プログラムが利用する資源環境(ファイルやレジストリなど)と同一の環境を用意する必要があり、これも非常にコストがかかる。そのため、やはり大量のプログラムを監視するには適していない。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、多大なコストをかけることなく大量のプログラムを監視することができるアクセス監視システムおよびアクセス監視方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、コンピュータ上で動作するプログラムから当該コンピュータの資源へのアクセスを監視するアクセス監視システムであって、監視対象のプログラムから前記コンピュータの資源へのアクセス要求をプログラムごとに検知する検知手段と、前記検知手段によって前記アクセス要求が検知された場合に、当該アクセス要求の種類に基づいて、当該アクセス要求が前記コンピュータの資源に影響を与えるものであるか否かを判定する判定手段と、前記判定手段によって前記アクセス要求が前記資源に影響を与えるものでないと判定された場合には、当該アクセス要求によって要求された資源に対応し、かつ、当該アクセス要求の要求元のプログラムに対応する仮想資源がすでに作成されているか否かを判定し、作成されていたときには、要求された資源の代わりに、当該アクセス要求の要求元のプログラムに対応する仮想資源に当該プログラムをアクセスさせ、作成されていないときには、要求された資源に当該プログラムをアクセスさせ、一方、前記資源に影響を与えるものであると判定された場合には、当該アクセス要求によって要求された資源に対応し、かつ、当該アクセス要求の要求元のプログラムに対応する仮想資源がすでに作成されているか否かを判定し、作成されていたときには、要求された資源の代わりに、当該アクセス要求の要求元のプログラムに対応する仮想資源に当該プログラムをアクセスさせ、作成されていないときには、当該アクセス要求によって要求された資源と同一の仮想資源を当該アクセス要求の要求元のプログラムごとに作成し、要求された資源の代わりに、作成した仮想資源に当該プログラムをアクセスさせる制御手段と、を備えたことを特徴とする。
また、本発明は、上記の発明において、前記検知手段は、プログラム単位あるいは前記プログラムを構成するモジュール単位で前記アクセス要求を検知し、前記制御手段は、前記プログラム単位あるいは前記モジュール単位で、前記アクセス要求によって要求された資源あるいは前記仮想資源へ前記プログラムをアクセスさせることを特徴とする。
また、本発明は、上記の発明において、前記制御手段は、前記アクセス要求が前記資源を新規に作成するものであった場合には、当該資源に対応する仮想資源を新規に作成することを特徴とする。
また、本発明は、上記の発明において、前記制御手段は、前記アクセス要求が既存の資源を改変するものであった場合には、当該資源の複製を作成し、作成した複製に対応する仮想資源とすることを特徴とする。
また、本発明は、上記の発明において、前記制御手段は、前記アクセス要求が既存の資源を改変するものであった場合に、当該資源の複製を作成する前に、当該資源に対応する仮想資源が過去に作成または改変されているか否かを確認し、作成または改変されていた場合には、当該仮想資源に前記プログラムをアクセスさせることを特徴とする。
また、本発明は、上記の発明において、前記制御手段は、前記資源に対応する仮想資源が過去に作成または改変されているか否かを確認する際に、実行中のプログラムの生存期間内で当該仮想資源が作成または改変されているか否かを確認することを特徴とする。
また、本発明は、上記の発明において、前記制御手段は、前記資源に対応する仮想資源が過去に作成または改変されているか否かを確認する際に、操作者から指定された期間内で当該仮想資源が作成または改変されているか否かを確認することを特徴とする。
また、本発明は、コンピュータ上で動作するプログラムから当該コンピュータの資源へのアクセスを監視するアクセス監視方法であって、監視対象のプログラムから前記コンピュータの資源へのアクセス要求をプログラムごとに検知する検知工程と、前記検知工程によって前記アクセス要求が検知された場合に、当該アクセス要求の種類に基づいて、当該アクセス要求が前記コンピュータの資源に影響を与えるものであるか否かを判定する判定工程と、前記判定工程によって前記アクセス要求が前記資源に影響を与えるものでないと判定された場合には、当該アクセス要求によって要求された資源に対応し、かつ、当該アクセス要求の要求元のプログラムに対応する仮想資源がすでに作成されているか否かを判定し、作成されていたときには、要求された資源の代わりに、当該アクセス要求の要求元のプログラムに対応する仮想資源に当該プログラムをアクセスさせ、作成されていないときには、要求された資源に当該プログラムをアクセスさせ、一方、前記資源に影響を与えるものであると判定された場合には、当該アクセス要求によって要求された資源に対応し、かつ、当該アクセス要求の要求元のプログラムに対応する仮想資源がすでに作成されているか否かを判定し、作成されていたときには、要求された資源の代わりに、当該アクセス要求の要求元のプログラムに対応する仮想資源に当該プログラムをアクセスさせ、作成されていないときには、当該アクセス要求によって要求された資源と同一の仮想資源を当該アクセス要求の要求元のプログラムごとに作成し、要求された資源の代わりに、作成した仮想資源に当該プログラムをアクセスさせる制御工程と、を含んだことを特徴とする。
本発明によれば、プログラムから資源へのアクセス要求を検知し、アクセス要求が検知された場合に、当該アクセス要求の種類に基づいて、当該アクセス要求がコンピュータの資源に影響を与えるものであるか否かを判定し、アクセス要求が資源に影響を与えるものでないと判定された場合には、当該アクセス要求によって要求された資源にプログラムをアクセスさせ、一方、資源に影響を与えるものであると判定された場合には、当該アクセス要求によって要求された資源の代わりに、当該資源と同一になるように作成した仮想資源にプログラムをアクセスさせるので、多大なコストをかけることなく大量のプログラムを監視することができるという効果を奏する。
また、本発明によれば、プログラム単位あるいはプログラムを構成するモジュール単位でアクセス要求を検知し、プログラム単位あるいはモジュール単位で、アクセス要求によって要求された資源あるいは仮想資源へプログラムをアクセスさせるので、監視対象のプログラムが複数のモジュールで構成されている場合であっても、各モジュールの動作を阻害することなくプログラムを監視することができるという効果を奏する。
また、本発明によれば、アクセス要求が資源を新規に作成するものであった場合には、当該資源に対応する仮想資源を新規に作成するので、安全に大量のプログラムを監視することができるという効果を奏する。
また、本発明によれば、アクセス要求が既存の資源を改変するものであった場合には、当該資源の複製を作成し、作成した複製を当該資源に対応する仮想資源とするので、資源環境の用意にかかるコストを削減することができるとともに、容易に大量のプログラムを監視することができるという効果を奏する。
また、本発明によれば、アクセス要求が既存の資源を改変するものであった場合に、当該資源の複製を作成する前に、当該資源に対応する仮想資源が過去に作成または改変されているか否かを確認し、作成または改変されていた場合には、当該仮想資源にプログラムをアクセスさせるので、同じホスト資源が何度も改変される処理が行われるような場合でも、ホスト資源を正常に改変しているように見せかけることができ、監視対象のプログラムに対して処理の整合性を保証することができるという効果を奏する。
また、本発明によれば、資源に対応する仮想資源が過去に作成または改変されているか否かを確認する際に、実行中のプログラムの生存期間内で当該仮想資源が作成または改変されているか否かを確認するので、監視対象のプログラムに対し、プログラム単位で処理の整合性を保証することができるという効果を奏する。
また、本発明によれば、資源に対応する仮想資源が過去に作成または改変されているか否かを確認する際に、操作者から指定された期間内で当該仮想資源が作成または改変されているか否かを確認するので、監視対象のプログラムに対し、操作者から指定された監視期間内で処理の整合性を保証することができる。
以下に添付図面を参照して、この発明に係るアクセス監視システムおよびアクセス監視方法の好適な実施例を詳細に説明する。
まず、図1を用いて、本実施例に係るアクセス監視システムの概要について説明する。図1は、本実施例に係るアクセス監視システムの概要を説明するための説明図である。同図に示すように、本実施例に係るアクセス監視システムは、ホストシステム10と、アクセス監視部20と、監視対象プログラム30とを備える。
ホストシステム10は、各種プログラムを動作させるためのOSや各種の資源が実装されたコンピュータである。ここで、「資源」とは、ホストシステム10上でプログラムをOS上で動作させるために必要な各種のリソースであり、たとえば、ファイルやレジストリ、カーネルデータ構造体などである。なお、以下では、ホストシステム10に実装されている資源を「ホスト資源」と呼ぶ。
アクセス監視部20は、ホストシステム10上で動作するプログラムであり、監視対象プログラム30からホスト資源へのアクセスを監視する。たとえば、このアクセス監視部20は、複数のモジュールから構成されるモジュールライブラリとして実装される。
監視対象プログラム30は、アクセス監視システムによる監視の対象となるプログラムであり、アクセス監視部20の上で動作する。たとえば、この監視対象プログラム30は、コンピュータウィルスやワームなどの悪性プログラムや、脆弱性を有する可能性がある信頼できないプログラムなどである。
このような構成のもと、本実施例では、アクセス監視部20が、半透過的な仮想隔離環境で監視対象プログラム30を動作させて、その動作を監視する。具体的には、アクセス監視部20は、監視対象プログラム30からホスト資源へのアクセス要求を検知する(同図の(1)を参照)。そして、アクセス要求を検知した場合には、アクセス監視部20は、検知したアクセス要求の種類に基づいて、そのアクセス要求がホスト資源に影響を与えるものであるか否かを判定する(同図の(2)を参照)。
ここで、ホスト資源に影響を与えるアクセス要求とは、ホストシステム10を破壊する可能性があるアクセス要求であり、たとえば、ファイルやレジストリ、カーネルデータ構造体などの資源に対して書き込みや削除を行うようなアクセス要求である。一方、ホスト資源に影響を与えないアクセス要求とは、ホストシステム10を破壊する可能性がないアクセス要求であり、たとえば、資源に対して読み取りのみを行うようなアクセス要求である。
そして、アクセス監視部20は、検知したアクセス要求がホスト資源に影響を与えるものでないと判定した場合には、そのアクセス要求によって要求されたホスト資源に監視対象プログラム30をアクセスさせる(同図の(3)を参照)。
一方、アクセス監視部20は、検知したアクセス要求がホスト資源に影響を与えるものであると判定した場合には、そのアクセス要求によって要求されたホスト資源の代わりに、当該ホスト資源と同一になるように作成した「仮想資源」に監視対象プログラム30をアクセスさせる(同図の(4)を参照)。このとき、アクセス監視部20は、アクセス要求がホスト資源を新規に作成するものであった場合には、そのホスト資源に対応する仮想資源を新規に作成する。
このように、本実施例では、アクセス監視部20が、監視対象プログラム30からホスト資源へのアクセス要求を検知した場合に、そのアクセス要求の種類に基づいて、要求されたホスト資源またはそのホスト資源と同一になるように作成した仮想資源のいずれかに監視対象プログラム30をアクセスさせる。
かかるアクセスの制御は、全て、アクセス監視部20の内部、すなわち、監視対象プログラム30の外部で行われる。そのため、監視対象プログラム30に対しては、あたかもホスト資源に正常にアクセスできているように見せかけることができるので、監視によって監視対象プログラム30の動作が妨げられることはない。
以上のように、本実施例によれば、仮想OSを用いることなく、プログラムの動作を監視することができる。また、監視対象プログラム30の動作に必要な仮想資源が動的に作成されるので、監視対象プログラム30が利用する資源環境をあらかじめ用意しておく必要もない。したがって、本実施例によれば、多大なコストをかけることなく大量のプログラムを監視することができるようになる。
なお、ここでは説明の便宜上、1つのアクセス監視部20のみを示したが、ホストシステム10上では、複数のアクセス監視部20を並列して動作させることが可能である。また、ここでは説明の便宜上、1つの監視対象プログラム30のみを示したが、アクセス監視部20上では、複数の監視対象プログラム30を動作させることが可能である。
次に、図2および3を用いて、本実施例に係るアクセス監視システムの構成について説明する。図2は、本実施例に係るアクセス監視システムの構成を示すブロック図である。同図に示すように、このアクセス監視システムは、ホストシステム10と、ホストシステム10上で動作する複数のアクセス監視部20と、各アクセス監視部20上で動作する複数の監視対象プログラム30とを備える。
ここで、監視対象プログラム30は、それぞれ複数のモジュール31から構成されている。そして、各アクセス監視部20は、プロセス単位(プログラム単位)またはモジュール単位で、監視対象プログラム30の動作を監視する。
図3は、プロセス単位またはモジュール単位での監視を示す図である。同図に示すように、たとえば、アクセス監視システムは、監視対象プログラム30を構成する複数のモジュールのうち、一部のモジュール32をホストシステム10上で通常に動作させ、他のモジュール31はアクセス監視部20上で動作させる。この場合、いずれのモジュールをホストシステム10上、あるいは、アクセス監視部20上で動作させるかは、監視対象プログラム30を起動する際に操作者に選択させてもよいし、システムの稼動前にモジュールごとにあらかじめ設定しておいてもよい。
なお、ここで説明する構成はあくまで一例であり、アクセス監視システムは他のさまざまな形態でも実施が可能である。アクセス監視システムの他の実施形態については、後に例をあげて説明する。
次に、図4を用いて、アクセス監視部20の構成について説明する。図4は、アクセス監視部20の構成を示す機能ブロック図である。同図に示すように、アクセス監視部20は、特に、プログラム実行部21と、資源アクセス監視部22と、資源アクセス制御部23と、動作ログ保存部24と、仮想資源処理部25とを有する。なお、ここでは、各機能部が有する機能の概要について説明し、各機能部によって行われる処理については、後に詳細に説明する。
プログラム実行部21は、アクセス監視部20によって提供される半透過的な仮想隔離環境で監視対象プログラム30を動作させるためのモジュールである。このプログラム実行部21は、後述する監視用モジュールを監視対象プログラム30に挿入することによって、アクセス監視システムが提供する半透過的な仮想隔離環境で監視対象プログラム30を実行させる。
具体的には、プログラム実行部21は、メモリ空間において、監視対象プログラム30のコードに監視用モジュールのコードを挿入し、そのうえで、監視対象プログラム30を実行する。または、監視モジュールをDLL(Dynamic Link Library)の一部としてホストシステム10側に実装させておき、監視対象プログラム30には、各監視モジュールを呼び出すためのAPI(Application Programming Interface)が記述されたコードを監視対象プログラム30に挿入し、これにより、監視対象プログラム30が実行時に監視モジュールを呼び出すようにしてもよい。
資源アクセス監視部22は、監視対象プログラム30からホスト資源へのアクセス要求を検知する監視用モジュールである。なお、資源アクセス監視部22は、操作者によって、監視対象プログラムを構成するモジュールの中から監視対象のモジュールが指定されていた場合には、モジュール単位でアクセス要求を検知する。
資源アクセス制御部23は、資源アクセス監視部22によってアクセス要求が検知された場合に、当該アクセス要求の種類に基づいて、当該アクセス要求がホスト資源に影響を与えるものであるか否かを判定する監視用モジュールである。
動作ログ保存部24は、仮想資源処理部25によるアクセス制御の履歴を動作ログとして保存する記憶部である。具体的には、この動作ログ保存部24は、監視対象プログラム30からアクセス要求によって要求されたホスト資源と、当該ホスト資源に対応するものとして作成された仮想資源とを対応付けた情報を動作ログとして保存する。
仮想資源処理部25は、資源アクセス制御部23による判定の結果に基づいて、監視対象プログラム30からホストシステム10へのアクセスを制御する監視用モジュールである。
具体的には、仮想資源処理部25は、資源アクセス制御部23によって、監視対象プログラム30からのアクセス要求がホスト資源に影響を与えるものでないと判定された場合には、当該アクセス要求によって要求されたホスト資源に監視対象プログラム30をアクセスさせる。
一方、仮想資源処理部25は、資源アクセス制御部23によって、監視対象プログラム30からのアクセス要求がホスト資源に影響を与えるものであると判定された場合には、当該アクセス要求によって要求されたホスト資源の代わりに、当該ホスト資源と同一になるように作成した仮想資源に監視対象プログラム30をアクセスさせる。
そして、仮想資源処理部25は、上記したアクセス制御を行った場合には、監視対象プログラム30からアクセス要求によって要求されたホスト資源と、実際に監視対象プログラム30をアクセスさせた仮想資源とを対応付けた情報を動作ログとして動作ログ保存部24に保存する。
なお、仮想資源処理部25は、操作者によって、監視対象プログラム30を構成するモジュール31の中から監視対象のモジュールが指定されていた場合には、指定されたモジュールについて、アクセス要求によって要求されたホスト資源または仮想資源へのアクセスを制御する。
次に、図5および6を用いて、上述した各機能部によって行われる処理の詳細について説明する。まず、図5を用いて、プログラム実行部21によって行われる処理の処理手順について説明する。図5は、プログラム実行部21によって行われる処理の処理手順を示すフローチャートである。
なお、ここでは、アクセス監視システムの利用者に監視対象プログラム30を指定させることにより、アクセス監視部20上で監視対象プログラム30を起動させる場合について説明する。
同図に示すように、この場合には、プログラム実行部21は、利用者によって監視対象プログラム30が指定されると(ステップS101,Yes)、続いて、指定された監視対象プログラム30全体を監視するか、監視対象プログラム30を構成するモジュール単位で監視するかを利用者に選択させる。
そして、モジュール単位で監視すると選択された場合には(ステップS102,Yes)、プログラム実行部21は、さらに、利用者に監視対象のモジュールを指定させる。
ここで、監視対象のモジュールが指定された場合(ステップS103,Yes)、または、監視対象プログラム30全体を監視すると選択されていた場合(ステップS102,No)には、プログラム実行部21は、すでに指定されている監視対象プログラム30に対して監視用モジュール(資源アクセス監視部22、資源アクセス制御部23、仮想資源処理部25)を挿入する(ステップS104)。
そして、プログラム実行部21は、監視用モジュールを挿入した監視対象プログラム30をアクセス監視部20上で起動させる(ステップS105)。
次に、図6を用いて、資源アクセス監視部22、資源アクセス制御部23および仮想資源処理部25によって行われる処理の処理手順について説明する。図6は、資源アクセス監視部22、資源アクセス制御部23および仮想資源処理部25によって行われる処理の処理手順を示すフローチャートである。なお、ここで説明する処理手順は、図5に示した処理手順で監視対象プログラム30が起動された後に実行される。
同図に示すように、資源アクセス監視部22が、ホスト資源へのアクセス要求を検知した場合には(ステップS201,Yes)、資源アクセス制御部23が、当該アクセス要求の種類に基づいて、当該アクセス要求がホスト資源に影響を与えるものであるか否かを判定する(ステップS202)。
そして、資源アクセス制御部23によって、アクセス要求がホスト資源に影響を与えるものであると判定された場合には(ステップS202,Yes)、仮想資源処理部25が、そのアクセス要求がホスト資源を新規に作成するものであるか否かを判定する(ステップS203)。
そして、アクセス要求がホスト資源を新規に作成するものであった場合には(ステップS203,Yes)、仮想資源処理部25が、所定の格納場所に、当該ホスト資源に対応する仮想資源を新規に作成する(ステップS204)。その後、仮想資源処理部25は、アクセス要求によって要求されたホスト資源の代わりに、作成した仮想資源に監視対象プログラム30をアクセスさせる(ステップS205)。
たとえば、アクセス要求が、ホストシステム10のCドライブに「test.txt」というファイルを作成することを要求するものであったとする。その場合には、アクセス要求仮想資源処理部25は、たとえばCドライブの「virt」フォルダに、「test.txt」と同じ内容の「virtual_test.txt」というファイルを作成する。そして、仮想資源処理部25は、作成した「virtual_test.txt」に監視対象プログラム30をアクセスさせる。
この場合には、後述するステップS210の処理において、「C:¥test.txt」と「C:¥virt¥virtual_test.txt」とを対応付けた情報が動作ログ保存部24に作成される。
一方、アクセス要求が既存のホスト資源を改変するものであった場合には(ステップS203,No)、仮想資源処理部25は、動作ログ保存部24に保存されている動作ログを参照し、アクセスを要求されたホスト資源に対応する仮想資源が過去に作成されているか否かを判定する(ステップS206)。
そして、仮想資源が作成されていた場合には(ステップS206,Yes)、仮想資源処理部25は、アクセス要求によって要求されたホスト資源の代わりに、すでに作成されている仮想資源に監視対象プログラム30をアクセスさせる(ステップS205)。
たとえば、動作ログ保存部24に、「C:¥test.txt」と「C:¥virt¥virtual_test.txt」とを対応付けた情報が保存されていたとする。また、アクセス要求が、Cドライブの「test.txt」に”this is test”というデータを書き込むことを要求するものであったとする。その場合には、仮想資源処理部25は、Cドライブの「virt」フォルダにある「virtual_test.txt」に監視対象プログラム30をアクセスさせる。この結果、「virtual_test.txt」に”this is test”が書き込まれる。
一方、仮想資源が作成されていなかった場合には(ステップS206,No)、仮想資源処理部25は、アクセスを要求されたホスト資源(たとえば、ファイルなど)を所定の格納場所にコピーし、コピーした資源を仮想資源とする(ステップS207)。その後、仮想資源処理部25は、アクセス要求によって要求されたホスト資源の代わりに、コピーにより作成した仮想資源に監視対象プログラム30をアクセスさせる(ステップS205)。
また、資源アクセス制御部23によって、アクセス要求がホスト資源に影響を与えるものでないと判定された場合には(ステップS202,No)、仮想資源処理部25は、動作ログ保存部24に保存されている動作ログを参照して、アクセスを要求されたホスト資源に対応する仮想資源が作成されているか否かを判定する(ステップS208)。
そして、仮想資源が作成されていた場合には(ステップS208,Yes)、仮想資源処理部25は、アクセス要求によって要求されたホスト資源の代わりに、すでに作成されている仮想資源に監視対象プログラム30をアクセスさせる(ステップS205)。
一方、仮想資源が作成されていなかった場合には(ステップS208,No)、仮想資源処理部25は、アクセスを要求されたホスト資源に監視対象プログラム30をアクセスさせる(ステップS209)。
こうして、監視対象プログラム30をホスト資源または仮想資源にアクセスさせた後に、仮想資源処理部25は、それぞれのアクセスの履歴を動作ログとして動作ログ保存部24に保存する(ステップS210)。
なお、上記の処理手順では、仮想資源処理部25が、アクセス要求が既存のホスト資源を改変するものであった場合に、そのホスト資源をコピーする前に、当該ホスト資源に対応する仮想資源が過去に作成または改変されているか否かを確認することとした。
このとき、たとえば、仮想資源処理部25は、実行中のプロセスの生存期間内で、その仮想資源が作成または改変されているか否かを確認する。または、たとえば、仮想資源処理部25は、操作者から指定された期間内で当該仮想資源が作成または改変されているか否かを確認するようにしてもよい。
上述してきたように、本実施例では、資源アクセス監視部22が、監視対象プログラム30からホスト資源へのアクセス要求を検知し、資源アクセス制御部23が、資源アクセス監視部22によってアクセス要求が検知された場合に、当該アクセス要求の種類に基づいて、当該アクセス要求がホスト資源に影響を与えるものであるか否かを判定する。そして、仮想資源処理部25が、資源アクセス制御部23によってアクセス要求がホスト資源に影響を与えるものでないと判定された場合には、当該アクセス要求によって要求されたホスト資源に監視対象プログラム30をアクセスさせ、一方、ホスト資源に影響を与えるものであると判定された場合には、当該アクセス要求によって要求されたホスト資源の代わりに、当該ホスト資源と同一になるように作成した仮想資源に監視対象プログラム30をアクセスさせる。したがって、本実施例によれば、仮想OSを用いることなく、プログラムの動作を監視することができる。また、監視対象プログラム30の動作に必要な仮想資源が動的に作成されるので、監視対象プログラム30が利用する資源環境をあらかじめ用意しておく必要もない。したがって、本実施例によれば、多大なコストをかけることなく大量のプログラムを監視することができる。
また、本実施例では、資源アクセス監視部22が、プロセス単位あるいは監視対象プログラム30を構成するモジュール単位でアクセス要求を検知し、仮想資源処理部25が、プロセス単位あるいはモジュール単位で、アクセス要求によって要求されたホスト資源あるいは仮想資源に監視対象プログラム30をアクセスさせる。したがって、本実施例によれば、監視対象のプログラムが複数のモジュールで構成されている場合であっても、各モジュールの動作を阻害することなくプログラムを監視することができる。
また、本実施例では、仮想資源処理部25が、監視対象プログラム30からのアクセス要求がホスト資源を新規に作成するものであった場合には、当該ホスト資源に対応する仮想資源を新規に作成する。したがって、本実施例によれば、ホスト資源に影響を与えるアクセス要求が発生した場合でも、監視対象プログラム30に対して、あたかもホスト資源に正常にアクセスできているように見せかけることができる。また、ホストホストシステム10とは隔離された環境で監視対象プログラム30を実行させることができるので、安全に大量のプログラムを監視することができる。
また、本実施例では、仮想資源処理部25が、監視対象プログラム30からのアクセス要求が既存のホスト資源を改変するものであった場合には、当該ホスト資源の複製を作成し、作成した複製を当該ホスト資源に対応する仮想資源とする。したがって、ホスト資源に影響を与えるアクセス要求が発生した場合でも、監視対象プログラム30に対して、あたかもホスト資源に正常にアクセスできているように見せかけることができる。また、監視対象プログラム30が利用する資源環境と同一の環境をあらかじめ用意しておかなくとも、必要な仮想資源が自動的に作成されるので、資源環境の用意にかかるコストを削減することができるとともに、容易に大量のプログラムを監視することができる。
また、本実施例では、仮想資源処理部25が、アクセス要求が既存のホスト資源を改変するものであった場合に、そのホスト資源をコピーする前に、当該ホスト資源に対応する仮想資源が過去に作成または改変されているか否かを確認し、作成または改変されていた場合には、当該仮想資源に監視対象プログラム30をアクセスさせる。これにより、同じホスト資源が何度も改変される処理が行われるような場合でも、ホスト資源を正常に改変しているように見せかけることができ、監視対象プログラム30に対して処理の整合性を保証することができる。
また、本実施例では、仮想資源処理部25が、ホスト資源に対応する仮想資源が過去に作成または改変されているか否かを確認する際に、実行中のプロセスの生存期間内で当該仮想資源が作成または改変されているか否かを確認することとした。これにより、監視対象プログラム30に対し、プロセス単位で処理の整合性を保証することができる。
また、本実施例では、仮想資源処理部25が、ホスト資源に対応する仮想資源が過去に作成または改変されているか否かを確認する際に、操作者から指定された期間内で当該仮想資源が作成または改変されているか否かを確認してもよいとした。これにより、たとえば、操作者から監視期間が指定された場合に、監視対象プログラム30に対し、監視期間内で処理の整合性を保証することができる。
ところで、上記実施例では、アクセス監視部20をホストシステム10上で動作させる場合について説明した。しかしながら、本発明に係るアクセス監視システムの実施形態はこれに限られるわけではなく、他のさまざまな形態でも実施が可能である。
図6は、アクセス監視システムの他の実施形態を示す図である。たとえば、同図に示すように、アクセス監視部20の一部をホストシステム10の一部として動作させてもよい。この場合、具体的には、アクセス監視部20が有するモジュール(プログラム実行部21、資源アクセス監視部22、資源アクセス制御部23、仮想資源処理部25)のうち、1つまたは2つ以上のモジュールを、カーネルモジュールとしてホストシステム10内で動作させる。
ここで、アクセス監視部20が有するモジュールを全てホストシステム10内で動作させるか、一部を動作させるかは、システム全体の実装の形態に依存する。そして、監視対象プログラム30は、ホストシステム10上、または、アクセス監視部20の一部の上で動作させる。
これまでに説明してきたように、アクセス監視システムによれば、1つのプログラムを解析するのに必要なコストを低く抑えることができる。また、実環境に近い環境で監視対象プログラム30を動作させることができるので、監視対象プログラムの動作を阻害することがない。したがって、大量かつ正確にプログラムを解析することが可能になる。
かかるアクセス監視システムは、コンピュータウィルスやワームといった悪性プログラムの解析や、脆弱性を有するプログラムなどの信頼できないプログラムの解析などに利用することができる。また、脆弱性を有するアクセス監視システム上で動作させることによって、ハニーポットとして利用することも可能である。この他、軽量な仮想マシンとして利用するなど、アクセス監視システムは、ここで説明した例に限られず、他にも各種の形態で利用することが可能である。
以上のように、本発明に係るアクセス監視システムおよびアクセス監視方法は、コンピュータ上で動作するプログラムから当該コンピュータの資源へのアクセスを監視するに有用であり、特に、多大なコストをかけることなく大量のプログラムを監視することが求められる場合に適している。
本実施例に係るアクセス監視システムの概要を説明するための説明図である。 本実施例に係るアクセス監視システムの構成を示すブロック図である。 プロセス単位またはモジュール単位での監視を示す図である。 アクセス監視部の構成を示す機能ブロック図である。 プログラム実行部によって行われる処理の処理手順を示すフローチャートである。 資源アクセス監視部、資源アクセス制御部および仮想資源処理部によって行われる処理の処理手順を示すフローチャートである。 アクセス監視システムの他の実施形態を示す図である。
符号の説明
10 ホストシステム
20 アクセス監視部
21 プログラム実行部
22 資源アクセス監視部
23 資源アクセス制御部
24 動作ログ保存部
25 仮想資源処理部
30 監視対象プログラム
31,32 モジュール

Claims (8)

  1. コンピュータ上で動作するプログラムから当該コンピュータの資源へのアクセスを監視するアクセス監視システムであって、
    監視対象のプログラムから前記コンピュータの資源へのアクセス要求をプログラムごとに検知する検知手段と、
    前記検知手段によって前記アクセス要求が検知された場合に、当該アクセス要求の種類に基づいて、当該アクセス要求が前記コンピュータの資源に影響を与えるものであるか否かを判定する判定手段と、
    前記判定手段によって前記アクセス要求が前記資源に影響を与えるものでないと判定された場合には、当該アクセス要求によって要求された資源に対応し、かつ、当該アクセス要求の要求元のプログラムに対応する仮想資源がすでに作成されているか否かを判定し、作成されていたときには、要求された資源の代わりに、当該アクセス要求の要求元のプログラムに対応する仮想資源に当該プログラムをアクセスさせ、作成されていないときには、要求された資源に当該プログラムをアクセスさせ、一方、前記資源に影響を与えるものであると判定された場合には、当該アクセス要求によって要求された資源に対応し、かつ、当該アクセス要求の要求元のプログラムに対応する仮想資源がすでに作成されているか否かを判定し、作成されていたときには、要求された資源の代わりに、当該アクセス要求の要求元のプログラムに対応する仮想資源に当該プログラムをアクセスさせ、作成されていないときには、当該アクセス要求によって要求された資源と同一の仮想資源を当該アクセス要求の要求元のプログラムごとに作成し、要求された資源の代わりに、作成した仮想資源に当該プログラムをアクセスさせる制御手段と、
    を備えたことを特徴とするアクセス監視システム。
  2. 前記検知手段は、プログラム単位あるいは前記プログラムを構成するモジュール単位で前記アクセス要求を検知し、
    前記制御手段は、前記プログラム単位あるいはモジュール単位で、前記アクセス要求によって要求された資源あるいは前記仮想資源へ前記プログラムをアクセスさせることを特徴とする請求項1に記載のアクセス監視システム。
  3. 前記制御手段は、前記アクセス要求が前記資源を新規に作成するものであった場合には、当該資源に対応する仮想資源を新規に作成することを特徴とする請求項1または2に記載のアクセス監視システム。
  4. 前記制御手段は、前記アクセス要求が既存の資源を改変するものであった場合には、当該資源の複製を作成し、作成した複製を当該資源に対応する仮想資源とすることを特徴とする請求項1、2または3に記載のアクセス監視システム。
  5. 前記制御手段は、前記アクセス要求が既存の資源を改変するものであった場合に、当該資源の複製を作成する前に、当該資源に対応する仮想資源が過去に作成または改変されているか否かを確認し、作成または改変されていた場合には、当該仮想資源に前記プログラムをアクセスさせることを特徴とする請求項3または4に記載のアクセス監視システム。
  6. 前記制御手段は、前記資源に対応する仮想資源が過去に作成または改変されているか否かを確認する際に、実行中のプログラムの生存期間内で当該仮想資源が作成または改変されているか否かを確認することを特徴とする請求項5に記載のアクセス監視システム。
  7. 前記制御手段は、前記資源に対応する仮想資源が過去に作成または改変されているか否かを確認する際に、操作者から指定された期間内で当該仮想資源が作成または改変されているか否かを確認することを特徴とする請求項5に記載のアクセス監視システム。
  8. コンピュータ上で動作するプログラムから当該コンピュータの資源へのアクセスを監視するアクセス監視方法であって、
    監視対象のプログラムから前記コンピュータの資源へのアクセス要求をプログラムごとに検知する検知工程と、
    前記検知工程によって前記アクセス要求が検知された場合に、当該アクセス要求の種類に基づいて、当該アクセス要求が前記コンピュータの資源に影響を与えるものであるか否かを判定する判定工程と、
    前記判定工程によって前記アクセス要求が前記資源に影響を与えるものでないと判定された場合には、当該アクセス要求によって要求された資源に対応し、かつ、当該アクセス要求の要求元のプログラムに対応する仮想資源がすでに作成されているか否かを判定し、作成されていたときには、要求された資源の代わりに、当該アクセス要求の要求元のプログラムに対応する仮想資源に当該プログラムをアクセスさせ、作成されていないときには、要求された資源に当該プログラムをアクセスさせ、一方、前記資源に影響を与えるものであると判定された場合には、当該アクセス要求によって要求された資源に対応し、かつ、当該アクセス要求の要求元のプログラムに対応する仮想資源がすでに作成されているか否かを判定し、作成されていたときには、要求された資源の代わりに、当該アクセス要求の要求元のプログラムに対応する仮想資源に当該プログラムをアクセスさせ、作成されていないときには、当該アクセス要求によって要求された資源と同一の仮想資源を当該アクセス要求の要求元のプログラムごとに作成し、要求された資源の代わりに、作成した仮想資源に当該プログラムをアクセスさせる制御工程と、
    を含んだことを特徴とするアクセス監視方法。
JP2008183008A 2008-07-14 2008-07-14 アクセス監視システムおよびアクセス監視方法 Active JP4972046B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008183008A JP4972046B2 (ja) 2008-07-14 2008-07-14 アクセス監視システムおよびアクセス監視方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008183008A JP4972046B2 (ja) 2008-07-14 2008-07-14 アクセス監視システムおよびアクセス監視方法

Publications (2)

Publication Number Publication Date
JP2010020713A JP2010020713A (ja) 2010-01-28
JP4972046B2 true JP4972046B2 (ja) 2012-07-11

Family

ID=41705508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008183008A Active JP4972046B2 (ja) 2008-07-14 2008-07-14 アクセス監視システムおよびアクセス監視方法

Country Status (1)

Country Link
JP (1) JP4972046B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4725635B2 (ja) * 2008-11-13 2011-07-13 富士ゼロックス株式会社 情報処理装置およびプログラム
KR101122646B1 (ko) 2010-04-28 2012-03-09 한국전자통신연구원 위장 가상 머신 정보를 이용한 인텔리전트 봇 대응 방법 및 장치
DE112017006701T5 (de) 2016-12-30 2019-09-19 Intel Corporation Internet der Dinge

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675725A (en) * 1993-07-19 1997-10-07 Cheyenne Advanced Technology Limited Computer backup system operable with open files
JP3194900B2 (ja) * 1997-11-13 2001-08-06 ▲ゆい▼ 徳 呉 ハードディスクドライブを有するコンピュータのメモリ管理方法
JP4128348B2 (ja) * 2001-10-25 2008-07-30 富士通株式会社 データ管理システム
JP2005352535A (ja) * 2004-06-08 2005-12-22 Ark Joho Systems:Kk データを保護する方法
JP4636607B2 (ja) * 2005-06-29 2011-02-23 株式会社日立ソリューションズ セキュリティ対策アプリケーションの機密ファイル保護方法
JP4737762B2 (ja) * 2006-06-12 2011-08-03 株式会社日立ソリューションズ 機密情報の管理プログラム

Also Published As

Publication number Publication date
JP2010020713A (ja) 2010-01-28

Similar Documents

Publication Publication Date Title
US8839228B2 (en) System and method for updating an offline virtual machine
US10853047B2 (en) Method for virtualizing software applications
RU2510074C2 (ru) Система и способ проверки исполняемого кода перед его выполнением
JP5065295B2 (ja) 異なる仮想マシン・イメージ間でファイルを共有するための方法、システム、およびコンピュータ読み取り可能媒体
US8479174B2 (en) Method, computer program and computer for analyzing an executable computer file
US8078740B2 (en) Running internet applications with low rights
KR101475987B1 (ko) 오프라인 가상 환경의 개선 또는 오프라인 가상 환경에 관련된 방법 및 시스템
US20050081053A1 (en) Systems and methods for efficient computer virus detection
US20070106993A1 (en) Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US20100223613A1 (en) Per process virtual machines
US20140259169A1 (en) Virtual machines
CN103154961A (zh) 用于病毒扫描的虚拟机
US8930894B2 (en) Method and system for executing an executable file
JP2005129066A (ja) オペレーティングシステムリソース保護
US20100070971A1 (en) Method for enabling the installation of software applications on locked-down computers
WO2003048925A1 (en) System and method for isolating applications from each other
EP2985716B1 (en) Information processing device and identifying method
JP2010049627A (ja) コンピュータウィルス検出システム
van de Ven New security enhancements in red hat enterprise linux v. 3, update 3
JP4972046B2 (ja) アクセス監視システムおよびアクセス監視方法
US8065730B1 (en) Anti-malware scanning in a virtualized file system environment
JP5411966B2 (ja) 監視装置および監視方法
CN107203410B (zh) 一种基于系统调用重定向的vmi方法及系统
US10389747B2 (en) Facilitating scanning of protected resources
US9342694B2 (en) Security method and apparatus

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110520

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120406

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4972046

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350