(57)【特許請求の範囲】
【請求項１】
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積するライブラリ呼び出し履歴情報蓄積手段と、
ファイルの実行の可否に関する情報であるファイル実行可否情報を提供するファイル実行可否情報提供手段と、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出し、抽出された前記ライブラリに対応する前記ファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行うアプリケーション起動制御手段とを備え、
前記ライブラリ呼び出し履歴情報蓄積手段が、当該ライブラリの累積呼び出し回数をさらに蓄積し、
前記アプリケーション起動制御手段が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて当該アプリケーションの前記起動制御処理を行うライブラリ実行管理システム。
【請求項２】
前記アプリケーション起動制御手段が、前記起動制御処理において、前記アプリケーションの起動を中止する請求項１に記載のライブラリ実行管理システム。
【請求項３】
前記アプリケーション起動制御手段が、前記起動制御処理において、前記アプリケーションより呼び出される可能性がある前記ライブラリに関して警告する請求項１又は２に記載のライブラリ実行管理システム。
【請求項４】
履歴情報蓄積手段が、ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積し、
ファイル実行可否情報提供手段が、前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出し、
アプリケーション起動制御手段が、抽出された前記ライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行う動作を、前記履歴情報蓄積手段と、前記ファイル実行可否情報提供手段と、前記アプリケーション起動制御手段とを備えるライブラリ実行管理システムに実行させ、
前記ライブラリ呼び出し履歴情報が、当該ライブラリの累積呼び出し回数をさらに含み、
前記アプリケーションの起動制御処理が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて行われるライブラリ実行管理方法。
【請求項５】
前記アプリケーションの起動制御処理が、前記アプリケーションの起動を中止する処理である請求項４に記載のライブラリ実行管理方法。
【請求項６】
コンピュータに、
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積する機能と、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出する機能と、
抽出された前記ライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行う機能とを実現させ、
前記ライブラリ呼び出し履歴情報が、当該ライブラリの累積呼び出し回数をさらに含み、
前記アプリケーションの起動制御処理が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて行われるプログラム。
【請求項７】
前記アプリケーションの起動制御処理が、前記アプリケーションの起動を中止する処理である請求項６に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライブラリ実行管理システム、ライブラリ実行管理方法およびプログラムに関し、特にライブラリを使用するアプリケーションの実行をアプリケーションの起動に際して制御するライブラリ実行管理システム、ライブラリ実行管理方法およびプログラムに関する。
【背景技術】
【０００２】
アプリケーションソフトウェア（以下「アプリケーション」と称する）は、コンピュータに何らかの処理を実行させるソフトウェア・プログラムであり、実行可能ファイルとして提供される。ライブラリは、一般的に汎用性の高いプログラムが再利用可能な形で提供されたものであり、他のプログラムから呼び出され、実行される。ライブラリの例としてＤＬＬ(Dynamic Link Library)が挙げられる。アプリケーションは、起動時もしくは実行中にライブラリを呼び出し、読み込むことによって、ライブラリの機能を使用することができる。
【０００３】
アプリケーションやライブラリにセキュリティ的な脆弱性が存在する場合、そのまま使用すると、不正アクセスやウィルス感染の原因となることがある。このような脆弱性はセキュリティパッチを適用することによって解消できるが、セキュリティパッチの適用は再起動を必要とする等システムに影響を与えるため、運用の都合上即座に実施することが難しい場合がある。また、セキュリティパッチがリリースされていない場合には脆弱性を解消することができない。
【０００４】
上記のような問題点を解決する技術が特許文献１に記載されている。特許文献１記載のセキュリティ管理装置は、脆弱性を持つライブラリを使用するアプリケーションを起動しようとした際に、アプリケーションの実行を停止する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２４１８０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したセキュリティ管理装置は、アプリケーションを実行する前に、アプリケーションが使用するライブラリを特定するための解析処理が必要であるという問題点がある。また、アプリケーションの実行中に動的に読み込まれるライブラリの脆弱性については対応できないという問題点もある。
【０００７】
本発明の目的は、上述した課題を解決し、利用状況に応じてライブラリの実行管理を行うライブラリ実行管理システム、ライブラリ実行管理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係るライブラリ実行管理システムは、
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積するライブラリ呼び出し履歴情報蓄積手段と、
ファイルの実行の可否に関する情報であるファイル実行可否情報を提供するファイル実行可否情報提供手段と、
アプリケーションの起動に際して、ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性があるライブラリを抽出し、抽出されたライブラリに対応するファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行うアプリケーション起動制御手段とを備える。
【０００９】
本発明に係るライブラリ実行管理方法は、
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積し、
アプリケーションの起動に際して、ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性があるライブラリを抽出し、
抽出されたライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行う。
【００１０】
本発明に係るプログラムは、
コンピュータに、
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積する機能と、
アプリケーションの起動に際して、ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性があるライブラリを抽出する機能と、
抽出されたライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行う機能とを実現させる。
【発明の効果】
【００１１】
本発明に係るライブラリ実行管理システム、ライブラリ実行管理方法およびプログラムは、利用状況に応じたライブラリの実行管理を可能にする。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。
【図２】本発明の第１の実施形態における、アプリケーションおよびライブラリの呼び出し関係を表す図である。
【図３】本発明の第１の実施形態における、ライブラリ呼び出し履歴情報１６１のデータ内容を表す表である。
【図４】本発明の第１の実施形態における、ファイル実行可否情報１７１のデータ内容を表す表である。
【図５】本発明の第１の実施形態に係るライブラリ実行管理システム１００において、ライブラリが呼び出された際の処理動作を説明するシーケンス図である。
【図６】本発明の第１の実施形態に係るライブラリ実行管理システム１００において、アプリケーションが起動された際の処理動作を説明するシーケンス図である。
【図７】本発明の第２の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。
【図８】本発明の第２の実施形態における、アプリケーションおよびライブラリの呼び出し関係を表す図である。
【図９】本発明の第２の実施形態における、ライブラリ呼び出し履歴情報１６１のデータ内容を表す表である。
【図１０】本発明の第２の実施形態における、ファイル危険度情報１７２のデータ内容を表す表である。
【図１１】本発明の第２の実施形態における、実行可否判定基準情報１７３のデータ内容を表す表である。
【図１２】本発明の第２の実施形態に係るライブラリ実行管理システム１００において、ライブラリが呼び出された際の処理動作を説明するシーケンス図である。
【図１３】本発明の第２の実施形態に係るライブラリ実行管理システム１００において、アプリケーションが起動された際の処理動作を説明するシーケンス図である。
【図１４】本発明の第３の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。
【図１５】コンピュータを構成する要素の例を表すブロック構成図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００１４】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。図１に示すライブラリ実行管理システム１００は、ライブラリ呼び出し検知部１１０と、ライブラリ呼び出し履歴情報蓄積部１２０と、ライブラリ読み込み制御部１３０と、アプリケーション起動検知部１４０と、アプリケーション起動制御部１５０と、記憶装置１６０と、ファイル実行可否情報提供部１７０とを備えている。
【００１５】
ライブラリ呼び出し検知部１１０は、ライブラリに対する、アプリケーションや他のライブラリからの呼び出しを検知する。
【００１６】
ライブラリ呼び出し履歴情報蓄積部１２０は、ライブラリ呼び出し検知部１１０が検知した呼び出しに関するライブラリ呼び出し履歴情報１６１を記憶装置１６０に出力し、蓄積する。ライブラリ呼び出し履歴情報１６１は、呼び出した側であるアプリケーションまたはライブラリを示す情報（例えばファイル名）と、呼び出された側であるライブラリを示す情報（例えばファイル名）を含む。記憶装置１６０は、磁気ディスク装置のようなストレージ媒体でもよいし、メモリ装置のような半導体記憶装置でもよい。
【００１７】
ファイル実行可否情報提供部１７０は、ファイル実行可否情報１７１を提供する。ファイル実行可否情報提供部１７０は、記憶装置等にファイル実行可否情報１７１を保持していてもよい。あるいは、ファイル実行可否情報提供部１７０は、外部の装置からデータ通信等を用いてファイル実行可否情報１７１を取得してもよい。
【００１８】
ファイル実行可否情報１７１は、個々のファイルについての、実行の可否や実行に際しての条件など、ファイルの実行に関する情報である。ここでのファイルとは、コンピュータで実行されるファイルであり、ライブラリ等が含まれる。例えば、ファイル実行可否情報１７１は、対象ファイルの実行の禁止を表す情報を含む。また、例えば、ファイル実行可否情報１７１は、対象ファイルを実行するときに警告メッセージを表示したり、実行記録を保存したりすること等の、対象ファイルの実行に際しての条件を表す情報を含む。
【００１９】
ファイル実行可否情報１７１は、ファイルの脆弱性に対する対処を表す情報であってもよい。この場合、第１の実施形態に係るライブラリ実行管理システムは、脆弱性が存在するライブラリの実行を禁止したり、脆弱性が存在するライブラリの実行に際して利用者に警告を発したりすることができる。また、ファイル実行可否情報１７１は、それ以外の理由に基づく対処を表す情報であってもよい。例えば、ファイル実行可否情報１７１は、利用者が指定するファイルの実行の禁止や、実行に際しての条件を表す情報であってもよい。この場合、第１の実施形態に係るライブラリ実行管理システムは、利用者の指定に従ったライブラリの実行制御を行うことができる。
【００２０】
ライブラリ読み込み制御部１３０は、ライブラリ呼び出し検知部１１０がライブラリの呼び出しを検知すると、当該ライブラリに対応するファイル実行可否情報１７１を参照し、参照したファイル実行可否情報１７１に基づいた制御を行う。例えば、当該ライブラリの実行が禁止されていた場合、ライブラリ読み込み制御部１３０は当該ライブラリの読み込みを中断する。また、例えば、実行するときに警告を出力するように指定されていた場合、ライブラリ読み込み制御部１３０は当該ライブラリの読み込みに際して警告メッセージの表示を行う。
【００２１】
アプリケーション起動検知部１４０は、アプリケーションに対する起動要求を検知する。
【００２２】
アプリケーション起動制御部１５０は、アプリケーション起動検知部１４０がアプリケーションの起動要求を検知すると、ライブラリ呼び出し履歴情報１６１を参照する。そして、当該アプリケーションより呼び出されたことがあるライブラリを、呼び出される可能性があるライブラリとして抽出する。また、呼び出されたライブラリがさらに呼び出したライブラリも、大本の当該アプリケーションより呼び出される可能性があるライブラリとして同様に抽出する。
【００２３】
次に、アプリケーション起動制御部１５０は、上記抽出されたライブラリに対応するファイル実行可否情報１７１を参照し、参照したファイル実行可否情報１７１に基づいた制御を行う。例えば、上記抽出されたライブラリに実行が禁止されているライブラリが含まれていた場合、アプリケーション起動制御部１５０は当該アプリケーションの起動を中断する。また、例えば、実行するときに警告を出力するように指定されているライブラリが含まれていた場合、アプリケーション起動制御部１５０は当該アプリケーションの起動に際して当該ライブラリに関する警告メッセージの表示を行う。
【００２４】
図２は、本発明の第１の実施形態における、アプリケーションおよびライブラリの呼び出し関係を表す図である。図２では、矢印がつなぐ四角が、呼び出した側と呼び出された側のアプリケーションまたはライブラリを表している。Ａ．ｅｘｅ，Ｂ．ｅｘｅおよびＣ．ｅｘｅはアプリケーションであり、ａ．ｄｌｌ，ｂ．ｄｌｌ，ｃ．ｄｌｌ，ｄ．ｄｌｌおよびｅ．ｄｌｌはライブラリである。また、矢印の向きは、呼び出した側から呼び出された側に向かっている。例えば、アプリケーションＡ．ｅｘｅは、アプリケーションａ．ｄｌｌを呼び出している。
【００２５】
図３は、本発明の第１の実施形態における、ライブラリ呼び出し履歴情報１６１のデータ内容を表す表であり、図２に対応している。
【００２６】
図４は、本発明の第１の実施形態における、ファイル実行可否情報１７１のデータ内容を表す表である。
【００２７】
ライブラリ呼び出し履歴情報１６１およびファイル実行可否情報１７１は、図３および図４の表の各行を項目として含むレコードからなるデータベースに格納されていてもよい。
【００２８】
図５は、本発明の第１の実施形態に係るライブラリ実行管理システム１００において、ライブラリが呼び出された際の処理動作を説明するシーケンス図である。以下、ライブラリが呼び出された際の、第１の実施形態に係るライブラリ実行管理システム１００の処理動作について図３および図５を参照して説明する。
【００２９】
まず、ライブラリ呼び出し検知部１１０が、ライブラリが呼び出されたことを検知する（ステップＳ５０１）。
【００３０】
次に、ライブラリ呼び出し履歴情報蓄積部１２０が、ライブラリ呼び出し履歴情報１６１を記憶装置１６０に出力し、蓄積する（ステップＳ５０２）。ライブラリ呼び出し履歴情報蓄積部１２０が出力するライブラリ呼び出し履歴情報１６１は、呼び出した側であるアプリケーションまたはライブラリのファイル名と、呼び出された側であるライブラリのファイル名を含む。例えば、ライブラリｂ．ｄｌｌがライブラリｄ．ｄｌｌを呼び出した場合、ライブラリ呼び出し履歴情報蓄積部１２０は、図３の連番５のレコードを記憶装置１６０に出力する。
【００３１】
一方で、ステップＳ５０１の後、ライブラリ読み込み制御部１３０が、呼び出されたライブラリに対応するファイル実行可否情報１７１を、ファイル実行可否情報提供部１７０より参照する（ステップＳ５０３）。
【００３２】
次に、ライブラリ読み込み制御部１３０は、ステップＳ５０３で参照したファイル実行可否情報１７１に基づいて、呼び出されたライブラリの制御方法を決定する。すなわち、ライブラリ読み込み制御部１３０は、ファイル実行可否情報１７１に基づいて、ライブラリの読み込みの中断や、読み込みに際しての警告メッセージの出力などを行うことを決定する。そして、ライブラリ読み込み制御部１３０は、決定した制御方法に従い、呼び出されたライブラリの読み込み制御を実行する（ステップＳ５０４）。
【００３３】
なお、ステップＳ５０３で呼び出されたライブラリに対応するファイル実行可否情報１７１が存在しなかった場合、ライブラリ読み込み制御部１３０は、通常通りのライブラリ読み込みを行ってもよい。
【００３４】
図６は、本発明の第１の実施形態に係るライブラリ実行管理システム１００において、アプリケーションが起動された際の処理動作を説明するシーケンス図である。以下、アプリケーションが起動された際の、第１の実施形態に係るライブラリ実行管理システム１００の処理動作について図３，図４および図６を参照して説明する。
【００３５】
まず、アプリケーション起動検知部１４０が、アプリケーションが起動されたことを検知する（ステップＳ６０１）。
【００３６】
次に、アプリケーション起動制御部１５０が、記憶装置１６０よりライブラリ呼び出し履歴情報１６１を参照し、起動されたアプリケーションから過去に呼び出されたことがあるライブラリを抽出する（ステップＳ６０２）。
【００３７】
例えば、アプリケーションＡ．ｅｘｅが起動された場合、図３の連番１のレコードと連番４のレコードが参照され、ライブラリａ．ｄｌｌとｄ．ｄｌｌが抽出される。このように、ライブラリ呼び出し履歴情報１６１のレコードを、呼び出された側のライブラリが呼び出しているライブラリをキーとして順次検索することにより、過去に呼び出されたことがあるライブラリを抽出することができる。
【００３８】
次に、アプリケーション起動制御部１５０は、ステップＳ６０２で抽出したライブラリに対応するファイル実行可否情報１７１を、ファイル実行可否情報提供部１７０より参照する（ステップＳ６０３）。
【００３９】
次に、アプリケーション起動制御部１５０は、ステップＳ６０３で参照したファイル実行可否情報１７１に基づいて、起動されたアプリケーションの制御方法を決定する。すなわち、アプリケーション起動制御部１５０は、ファイル実行可否情報１７１に基づいて、アプリケーションの起動の中断や、起動に際しての警告メッセージの出力などを行うことを決定する。そして、アプリケーション起動制御部１５０は、決定した制御方法に従い、起動されたアプリケーションの起動制御を実行する（ステップＳ６０４）。
【００４０】
例えば、アプリケーションＡ．ｅｘｅが起動され、ステップＳ６０２でライブラリａ．ｄｌｌとｄ．ｄｌｌが抽出された場合、ｄ．ｄｌｌに対応する図４の連番２のレコードが参照される。そして、アプリケーション起動制御部１５０は、参照したファイル実行可否情報１７１、即ち「実行禁止」に従い、アプリケーションＡ．ｅｘｅの起動を中断する。
【００４１】
なお、ステップＳ６０２で、起動されたアプリケーションから過去に呼び出されたことがあるライブラリが存在しなかった場合、アプリケーション起動制御部１５０は、通常通りのアプリケーション起動を行ってもよい。同様に、ステップＳ６０３で、過去に呼び出されたライブラリに対応するファイル実行可否情報１７１が存在しなかった場合も、アプリケーション起動制御部１５０は、通常通りのアプリケーション起動を行ってもよい。
【００４２】
ステップＳ６０２では、複数のライブラリが抽出されてもよい。また、ステップＳ６０３では、複数のファイル実行可否情報１７１が参照されてもよい。複数のファイル実行可否情報１７１が参照された場合、アプリケーション起動制御部１５０は、参照された全ての実行可否情報に基づいて起動制御を行ってもよいし、その一部の実行可否情報に基づいて行ってもよい。一部の実行可否情報に基づいて起動制御を行う場合、あるファイル実行可否情報１７１が表す起動制御を、他のファイル実行可否情報１７１が表すものに優先して行ってもよい。例えば、あるライブラリを実行するときに警告を表示することを表す情報と、他のあるライブラリの実行を禁止する情報が参照されたとする。この場合、アプリケーション起動制御部１５０は、実行の禁止を優先し、警告の表示を行わず、アプリケーションの起動を中断してもよい。
【００４３】
実行するときに警告を表示することを表すファイル実行可否情報１７１が参照された場合、アプリケーション起動制御部１５０は、アプリケーション起動に際して警告を表示すると共に、利用者の承認入力を受け付けてもよい。そして、アプリケーション起動制御部１５０は、利用者が実行を承認した場合はアプリケーションを起動し、承認しなかった場合は起動を中断してもよい。あるいは、アプリケーション起動制御部１５０は、利用者がコンピュータにログイン中であれば警告の表示、承認入力またはその両方を行い、ログイン中でなければ起動を中断してもよい。
【００４４】
このように、本発明の第１の実施形態に係るライブラリ実行管理システム１００は、事前にアプリケーションを解析すること無しに、実行が禁止されているライブラリの実行を防止することができる。なぜならば、ライブラリ呼び出し履歴情報１６１とファイル実行可否情報１７１に基づいて、アプリケーション起動制御部１５０がアプリケーションの起動制御を行うからである。すなわち、過去に呼び出されたことがあるライブラリを抽出し、それらのライブラリの実行可否を参照して、アプリケーション起動制御部１５０がアプリケーションの起動制御を行うからである。
【００４５】
また、本発明の第１の実施形態に係るライブラリ実行管理システム１００は、動的に呼び出されるライブラリに対しても、実行が禁止されているライブラリの実行を防止することができる。すなわち、アプリケーションに記載されていないライブラリであっても、実行が禁止されているライブラリの実行を防止することができる。
【００４６】
さらに、本発明の第１の実施形態に係るライブラリ実行管理システム１００は、利用状況に応じたライブラリの実行管理を可能にする。すなわち、例えば、実際に呼び出されたライブラリに限って、そのライブラリに対応する実行可否情報に基づいたライブラリの実行管理を行うことができる。
【００４７】
なお、図５の処理において、ライブラリが呼び出された際に、ライブラリ呼び出し履歴情報１６１を蓄積する処理（ステップＳ５０２）のみが行われてもよい。すなわち、ライブラリ読み込み制御部１３０が、呼び出されたライブラリの制御をファイル実行可否情報１７１に基づいて行う処理（ステップＳ５０３〜Ｓ５０４）を行わず、常に通常通りのライブラリ読み込み制御を行ってもよい。この場合、過去に実行されたことがないライブラリの制御を行うことができない反面、アプリケーションの実行途中における、ライブラリの読み込みが中断されることによるアプリケーションの異常終了の発生を防止できる。
【００４８】
［第２の実施形態］
次に、本発明の第２の実施形態を説明する。
【００４９】
図７は、本発明の第２の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。図７に示すライブラリ実行管理システム１００は、図１と同様に、ライブラリ呼び出し検知部１１０と、ライブラリ呼び出し履歴情報蓄積部１２０と、ライブラリ読み込み制御部１３０と、アプリケーション起動検知部１４０と、アプリケーション起動制御部１５０と、記憶装置１６０と、ファイル実行可否情報提供部１７０とを備えている。
【００５０】
第２の実施形態におけるライブラリ呼び出し履歴情報蓄積部１２０は、図１と同様に、ライブラリ呼び出し検知部１１０が検知した呼び出しに関するライブラリ呼び出し履歴情報１６１を記憶装置１６０に出力し、蓄積する。ただし、第２の実施形態におけるライブラリ呼び出し履歴情報１６１は、呼び出した側であるアプリケーションまたはライブラリを示す情報と呼び出された側であるライブラリを示す情報に加え、累積呼び出し回数を含む。
【００５１】
第２の実施形態におけるファイル実行可否情報提供部１７０は、図１のファイル実行可否情報１７１の代わりに、ファイル危険度情報１７２と実行可否判定基準情報１７３を提供する。ファイル実行可否情報提供部１７０は、第１の実施形態と同様に、記憶装置等にファイル危険度情報１７２と実行可否判定基準情報１７３を保持していてもよい。あるいは、ファイル実行可否情報提供部１７０は、外部の装置からデータ通信等を用いてファイル危険度情報１７２と実行可否判定基準情報１７３を取得してもよい。
【００５２】
ファイル危険度情報１７２は、個々のファイルについての、実行におけるファイルの危険度を表す情報である。危険度とは、例えば、ファイルを実行することにより、ファイルの脆弱性に起因する攻撃を受ける可能性や、攻撃を受けることにより発生する損害の重大さを表す。
【００５３】
実行可否判定基準情報１７３は、ファイルの実行に際して、ファイルの危険度などに基づいてどのような制御を行うかの判定基準を表す情報である。例えば、実行可否判定基準情報１７３は、危険度が大きなファイルの実行の禁止を表す情報を含む。また、例えば、実行可否判定基準情報１７３は、危険度が小さなファイルを実行するときに警告メッセージを表示したり、実行記録を保存したりすること等の、実行に際しての条件を表す情報を含む。
【００５４】
第２の実施形態におけるライブラリ読み込み制御部１３０は、図１のファイル実行可否情報１７１の代わりに、ファイル危険度情報１７２と実行可否判定基準情報１７３を参照する。そして、ライブラリ読み込み制御部１３０は、参照したこれらの情報に基づいた制御を行う。
【００５５】
同様に、第２の実施形態におけるアプリケーション起動制御部１５０も、図１のファイル実行可否情報１７１の代わりに、ファイル危険度情報１７２と実行可否判定基準情報１７３を参照する。そして、アプリケーション起動制御部１５０は、参照したこれらの情報に基づいた制御を行う。
【００５６】
第２の実施形態におけるライブラリ呼び出し検知部１１０、アプリケーション起動検知部１４０および記憶装置１６０については図１と同様であるため、説明を省略する。
【００５７】
図８は、本発明の第２の実施形態における、アプリケーションおよびライブラリの呼び出し関係を表す図である。図８では、図２の内容に加えて、矢印の近傍の数字が、ライブラリの累積呼び出し回数を表している。例えば、アプリケーションＡ．ｅｘｅによるアプリケーションａ．ｄｌｌの累積呼び出し回数は、１５回である。
【００５８】
図９は、本発明の第２の実施形態における、ライブラリ呼び出し履歴情報１６１のデータ内容を表す表であり、図８に対応している。
【００５９】
図１０は、本発明の第２の実施形態における、ファイル危険度情報１７２のデータ内容を表す表である。
【００６０】
図１１は、本発明の第２の実施形態における、実行可否判定基準情報１７３のデータ内容を表す表である。図１１において、累積呼び出し回数の「−」は、累積呼び出し回数が何回であっても構わないことを表している。例えば、連番１のレコードは、危険度が「大」の場合、累積呼び出し回数が何回であっても「実行禁止」であることを表している。
【００６１】
図１２は、本発明の第２の実施形態に係るライブラリ実行管理システム１００において、ライブラリが呼び出された際の処理動作を説明するシーケンス図である。以下、ライブラリが呼び出された際の、第２の実施形態に係るライブラリ実行管理システム１００の処理動作について図９および図１２を参照して説明する。
【００６２】
まず、ライブラリ呼び出し検知部１１０が、ライブラリが呼び出されたことを検知する（ステップＳ１２０１）。これは図５と同様である。
【００６３】
次に、ライブラリ呼び出し履歴情報蓄積部１２０が、ライブラリ呼び出し履歴情報１６１を記憶装置１６０に出力し、蓄積する（ステップＳ１２０２）。ライブラリ呼び出し履歴情報蓄積部１２０が出力するライブラリ呼び出し履歴情報１６１は、呼び出した側であるアプリケーションまたはライブラリのファイル名と、呼び出された側であるライブラリのファイル名と、累積呼び出し回数を含む。
【００６４】
該当するライブラリに関するライブラリ呼び出し履歴情報１６１が既に存在している場合、ライブラリ呼び出し履歴情報蓄積部１２０は、「累積呼び出し回数」の値を１加算して更新する。例えば、図９の状態において、ライブラリｂ．ｄｌｌがライブラリｄ．ｄｌｌを呼び出した場合、ライブラリ呼び出し履歴情報蓄積部１２０は、当該ライブラリに対応する図９の連番５のレコードの「累積呼び出し回数」の値を６から７に更新する。
【００６５】
逆に、該当するライブラリに関するライブラリ呼び出し履歴情報１６１が存在しない場合、ライブラリ呼び出し履歴情報蓄積部１２０は、「呼び出した側」および「呼び出された側」の値が該当するライブラリのファイル名であり、「累積呼び出し回数」の値が１であるレコードを新規に登録する。例えば、図９の状態において、ライブラリｄ．ｄｌｌがライブラリｆ．ｄｌｌ（図示しない）を呼び出し、かつ、当該ライブラリに対応するレコードが存在しなかったとする。この場合、ライブラリ呼び出し履歴情報蓄積部１２０は、「呼び出した側」がｄ．ｄｌｌ，「呼び出された側」がｆ．ｄｌｌ，「累積呼び出し回数」が１であるレコードを新規に登録する。
【００６６】
一方で、ステップＳ１２０１の後、ライブラリ読み込み制御部１３０が、呼び出されたライブラリに対応するファイル危険度情報１７２と、実行可否判定基準情報１７３を、ファイル実行可否情報提供部１７０より参照する（ステップＳ１２０３）。
【００６７】
次に、ライブラリ読み込み制御部１３０は、ステップＳ１２０３で参照したファイル危険度情報１７２および実行可否判定基準情報１７３に基づいて、呼び出されたライブラリの制御方法を決定する。すなわち、ライブラリ読み込み制御部１３０は、ファイル危険度情報１７２および実行可否判定基準情報１７３に基づいて、ライブラリの読み込みの中断や、読み込みに際しての警告メッセージの出力などを行うことを決定する。そして、ライブラリ読み込み制御部１３０は、決定した制御方法に従い、呼び出されたライブラリの読み込み制御を実行する（ステップＳ１２０４）。
【００６８】
なお、ステップＳ１２０３で呼び出されたライブラリに対応するファイル危険度情報１７２が存在しなかった場合、ライブラリ読み込み制御部１３０は、通常通りのライブラリ読み込みを行ってもよい。
【００６９】
図１３は、本発明の第２の実施形態に係るライブラリ実行管理システム１００において、アプリケーションが起動された際の処理動作を説明するシーケンス図である。以下、アプリケーションが起動された際の、第２の実施形態に係るライブラリ実行管理システム１００の処理動作について図９，図１０，図１１および図１３を参照して説明する。
【００７０】
まず、アプリケーション起動検知部１４０が、アプリケーションが起動されたことを検知する（ステップＳ１３０１）。これは図６と同様である。
【００７１】
次に、アプリケーション起動制御部１５０が、記憶装置１６０よりライブラリ呼び出し履歴情報１６１を参照し、起動されたアプリケーションから過去に呼び出されたことがあるライブラリと、その累積呼び出し回数を抽出する（ステップＳ１３０２）。
【００７２】
例えば、アプリケーションＡ．ｅｘｅが起動された場合、図９の連番１のレコードと連番４のレコードが参照され、ライブラリａ．ｄｌｌと累積呼び出し回数１５，ライブラリｄ．ｄｌｌと累積呼び出し回数１２が抽出される。
【００７３】
次に、アプリケーション起動制御部１５０は、ステップＳ１３０２で抽出したライブラリに対応するファイル危険度情報１７２と、実行可否判定基準情報１７３を、ファイル実行可否情報提供部１７０より参照する（ステップＳ１３０３）。ここで、アプリケーション起動制御部１５０は、ステップＳ１３０２で抽出した累積呼び出し回数に基づいて実行可否判定基準情報１７３を参照する。具体的には、例えば、抽出したライブラリの危険度が「中」であった場合、図１１の連番２のレコードと連番３のレコードにおいて、累積呼び出し回数
に基づいてどちらかのレコードを選択する。
【００７４】
次に、アプリケーション起動制御部１５０は、ステップＳ１３０３で参照したファイル危険度情報１７２と実行可否判定基準情報１７３に基づいて、起動されたアプリケーションの制御方法を決定する。すなわち、アプリケーション起動制御部１５０は、ファイル危険度情報１７２と実行可否判定基準情報１７３に基づいて、アプリケーションの起動の中断や、起動に際しての警告メッセージの出力などを行うことを決定する。そして、アプリケーション起動制御部１５０は、決定した制御方法に従い、起動されたアプリケーションの起動制御を実行する（ステップＳ１３０４）。
【００７５】
例えば、アプリケーションＡ．ｅｘｅが起動され、ステップＳ１３０２でライブラリａ．ｄｌｌとｄ．ｄｌｌが抽出された場合、ａ．ｄｌｌとｄ．ｄｌｌに対応する図１０の連番１のレコードと連番３のレコードが参照される。次に、アプリケーション起動制御部１５０は、参照したファイル危険度情報１７２、即ち危険度「小」および「中」に対応する実行可否判定基準情報１７３を参照する。ここで、危険度「小」には図１１の連番４のレコードが該当する。危険度「中」には図１１の連番２と連番３のレコードが該当するが、ｄ．ｄｌｌの累積呼び出し回数「１２」に従い、連番２のレコードが選択される。最終的に、アプリケーション起動制御部１５０は、図１１の連番２のレコードと連番４のレコードを参照する。そして、アプリケーション起動制御部１５０は、参照した実行可否判定基準情報１７３、即ち「実行禁止」と「警告」に従い、アプリケーションＡ．ｅｘｅの起動を中断する。
【００７６】
なお、ステップＳ１３０２で、起動されたアプリケーションから過去に呼び出されたことがあるライブラリが存在しなかった場合、アプリケーション起動制御部１５０は、通常通りのアプリケーション起動を行ってもよい。同様に、ステップＳ１３０３で、過去に呼び出されたライブラリに対応するファイル危険度情報１７２が存在しなかった場合も、アプリケーション起動制御部１５０は、通常通りのアプリケーション起動を行ってもよい。
【００７７】
ステップＳ１３０２では、複数のライブラリが抽出されてもよい。また、ステップＳ１３０３では、複数のファイル危険度情報１７２および実行可否判定基準情報１７３が参照されてもよい。複数の実行可否判定基準情報１７３が参照された場合、アプリケーション起動制御部１５０は、参照された全ての実行可否情報に基づいて起動制御を行ってもよいし、その一部の実行可否情報に基づいて行ってもよい。一部の実行可否情報に基づいて起動制御を行う場合、ある実行可否判定基準情報１７３が表す起動制御を、他の実行可否判定基準情報１７３が表すものに優先して行ってもよい。例えば、あるライブラリを実行するときに警告を表示することを表す情報と、他のあるライブラリの実行を禁止する情報が参照されたとする。この場合、アプリケーション起動制御部１５０は、実行の禁止を優先し、警告の表示を行わず、アプリケーションの起動を中断してもよい。
【００７８】
実行するときに警告を表示することを表す実行可否判定基準情報１７３が参照された場合、アプリケーション起動制御部１５０は、アプリケーション起動に際して警告を表示すると共に、利用者の承認入力を受け付けてもよい。そして、アプリケーション起動制御部１５０は、利用者が実行を承認した場合はアプリケーションを起動し、承認しなかった場合は起動を中断してもよい。あるいは、アプリケーション起動制御部１５０は、利用者がコンピュータにログイン中であれば警告の表示、承認入力またはその両方を行い、ログイン中でなければ起動を中断してもよい。
【００７９】
このように、本発明の第２の実施形態に係るライブラリ実行管理システム１００は、第１の実施形態と同様の効果を有しながら、ライブラリの呼び出し回数に応じた柔軟なライブラリの実行管理を行うことができる。なぜならば、ライブラリ呼び出し履歴情報１６１，ファイル危険度情報１７２および実行可否判定基準情報１７３に加え、ライブラリの累積呼び出し回数に基づいて、アプリケーション起動制御部１５０がアプリケーションの起動制御を行うからである。このことにより、ライブラリの利用頻度に応じたライブラリの実行管理が可能になる。
【００８０】
なお、図１２の処理において、ライブラリが呼び出された際に、ライブラリ呼び出し履歴情報１６１を蓄積する処理（ステップＳ１２０２）のみが行われてもよい。すなわち、ライブラリ読み込み制御部１３０が、呼び出されたライブラリの制御をファイル危険度情報１７２および実行可否判定基準情報１７３に基づいて行う処理（ステップＳ１２０３〜Ｓ１２０４）を行わず、常に通常通りのライブラリ読み込み制御を行ってもよい。この場合、過去に実行されたことがないライブラリの制御を行うことができない反面、アプリケーションの実行途中における、ライブラリの読み込みが中断されることによるアプリケーションの異常終了の発生を防止できる。
【００８１】
ライブラリ呼び出し履歴情報１６１の累積呼び出し回数は、大本の呼び出し側であるアプリケーション単位に計数されてもよい。第２の実施形態においては、図８および図９を参照すると、例えばｄ．ｄｌｌからｅ．ｄｌｌへの累積呼び出し回数９は、大本のアプリケーションであるＡ．ｅｘｅとＢ．ｅｘｅからの呼び出し回数の合計となっている。これを、例えば図９の表に「大本のアプリケーション」の項目を追加することにより、Ａ．ｅｘｅとＢ．ｅｘｅ別に計数してもよい。この場合、大本のアプリケーション単位にライブラリの呼び出しの有無および頻度を管理することができる。すなわち、アプリケーション毎のライブラリの呼び出しの有無および頻度に基づいたライブラリの実行管理を行うことができる。
【００８２】
［第３の実施形態］
次に、本発明の第３の実施形態を説明する。
【００８３】
図１４は、本発明の第３の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。図１４に示すライブラリ実行管理システム１００は、ライブラリ呼び出し履歴情報蓄積部１２０と、アプリケーション起動制御部１５０と、ファイル実行可否情報提供部１７０とを備えている。
【００８４】
ライブラリ呼び出し履歴情報蓄積部１２０は、ライブラリがアプリケーションや他のライブラリから呼び出されると、ライブラリ呼び出し履歴情報１６１を記憶装置等に出力し、蓄積する。ライブラリ呼び出し履歴情報１６１は、呼び出した側であるアプリケーションまたはライブラリを示す情報と、呼び出された側であるライブラリを示す情報を含む。
【００８５】
ファイル実行可否情報提供部１７０は、ファイル実行可否情報１７１を提供する。ファイル実行可否情報１７１は、個々のファイルについての、実行の可否や実行に際しての条件など、ファイルの実行に関する情報である。
【００８６】
アプリケーション起動制御部１５０は、アプリケーションの起動が要求されると、ライブラリ呼び出し履歴情報１６１を参照する。そして、当該アプリケーションより呼び出されたことがあるライブラリを、呼び出される可能性があるライブラリとして抽出する。また、呼び出されたライブラリがさらに呼び出したライブラリも、大本の当該アプリケーションより呼び出される可能性があるライブラリとして同様に抽出する。次に、アプリケーション起動制御部１５０は、上記抽出されたライブラリに対応するファイル実行可否情報１７１を参照し、参照したファイル実行可否情報１７１に基づいた制御を行う。
【００８７】
このように、本発明の第３の実施形態に係るライブラリ実行管理システム１００は、事前にアプリケーションを解析すること無しに、実行が禁止されているライブラリの実行を防止することができる。なぜならば、ライブラリ呼び出し履歴情報１６１とファイル実行可否情報１７１に基づいて、アプリケーション起動制御部１５０がアプリケーションの起動制御を行うからである。すなわち、過去に呼び出されたことがあるライブラリを抽出し、それらのライブラリの実行可否を参照して、アプリケーション起動制御部１５０がアプリケーションの起動制御を行うからである。
【００８８】
また、本発明の第３の実施形態に係るライブラリ実行管理システム１００は、動的に呼び出されるライブラリに対しても、実行が禁止されているライブラリの実行を防止することができる。すなわち、アプリケーションに記載されていないライブラリであっても、実行が禁止されているライブラリの実行を防止することができる。
【００８９】
さらに、本発明の第３の実施形態に係るライブラリ実行管理システム１００は、利用状況に応じたライブラリの実行管理を可能にする。すなわち、例えば、実際に呼び出されたライブラリに限って、そのライブラリに対応する実行可否情報に基づいたライブラリの実行管理を行うことができる。
【００９０】
上記の第１〜第３の実施形態におけるライブラリ実行管理システムは、専用のハードウェアによって実現されてもよいし、コンピュータによって実現されてもよい。
【００９１】
図１５は、コンピュータを構成する要素の例を表すブロック構成図である。図１５のコンピュータ９００は、ＣＰＵ(Central Processing Unit)９１０と、ＲＡＭ(Random Access Memory)９２０と、ＲＯＭ(Read Only Memory)９３０と、ストレージ媒体９４０と、通信インタフェース９５０を備えている。前述したライブラリ実行管理システムの構成要素は、プログラムがコンピュータ９００において実行されることにより実現されてもよい。具体的には、前述した図１，図７および図１４に記載のライブラリ実行管理システムの構成要素は、ＣＰＵ９１０がＲＯＭ９３０あるいはストレージ媒体９４０からプログラムを読み込んで実行することにより実現されてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
【００９２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００９３】
（付記１）
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積するライブラリ呼び出し履歴情報蓄積手段と、
ファイルの実行の可否に関する情報であるファイル実行可否情報を提供するファイル実行可否情報提供手段と、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出し、抽出された前記ライブラリに対応する前記ファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行うアプリケーション起動制御手段とを備えたライブラリ実行管理システム。
【００９４】
（付記２）
前記ライブラリ呼び出し履歴情報蓄積手段が、当該ライブラリの累積呼び出し回数をさらに蓄積し、
前記アプリケーション起動制御手段が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて当該アプリケーションの前記起動制御処理を行う付記１に記載のライブラリ実行管理システム。
【００９５】
（付記３）
前記アプリケーション起動制御手段が、前記起動制御処理において、前記アプリケーションの起動を中止する付記１または２に記載のライブラリ実行管理システム。
【００９６】
（付記４）
前記アプリケーション起動制御手段が、前記起動制御処理において、前記アプリケーションより呼び出される可能性がある前記ライブラリに関して警告する付記１乃至３のいずれかに記載のライブラリ実行管理システム。
【００９７】
（付記５）
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積し、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出し、
抽出された前記ライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行うライブラリ実行管理方法。
【００９８】
（付記６）
前記ライブラリ呼び出し履歴情報が、当該ライブラリの累積呼び出し回数をさらに含み、
前記アプリケーションの起動制御処理が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて行われる付記５に記載のライブラリ実行管理方法。
【００９９】
（付記７）
前記アプリケーションの起動制御処理が、前記アプリケーションの起動を中止する処理である付記５または６に記載のライブラリ実行管理方法。
【０１００】
（付記８）
前記アプリケーションの起動制御処理が、前記アプリケーションより呼び出される可能性がある前記ライブラリに関して警告する処理である付記５乃至７に記載のライブラリ実行管理方法。
【０１０１】
（付記９）
コンピュータに、
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積する機能と、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出する機能と、
抽出された前記ライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行う機能とを実現させるプログラム。
【０１０２】
（付記１０）
前記ライブラリ呼び出し履歴情報が、当該ライブラリの累積呼び出し回数をさらに含み、
前記アプリケーションの起動制御処理が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて行われる付記９に記載のプログラム。
【０１０３】
（付記１１）
前記アプリケーションの起動制御処理が、前記アプリケーションの起動を中止する処理である付記９または１０に記載のプログラム。
【０１０４】
（付記１２）
前記アプリケーションの起動制御処理が、前記アプリケーションより呼び出される可能性がある前記ライブラリに関して警告する処理である付記９乃至１１に記載のプログラム。
【符号の説明】
【０１０５】
１００    ライブラリ実行管理システム
１１０    ライブラリ呼び出し検知部
１２０    ライブラリ呼び出し履歴情報蓄積部
１３０    ライブラリ読み込み制御部
１４０    アプリケーション起動検知部
１５０    アプリケーション起動制御部
１６０    記憶装置
１６１    ライブラリ呼び出し履歴情報
１７０    ファイル実行可否情報提供部
１７１    ファイル実行可否情報
１７２    ファイル危険度情報
１７３    実行可否判定基準情報
９００    コンピュータ
９１０    ＣＰＵ
９２０    ＲＡＭ
９３０    ＲＯＭ
９４０    ストレージ媒体
９５０    通信インタフェース
【図１】
0005585303.tif 000002
【図２】
0005585303.tif 000003
【図３】
0005585303.tif 000004
【図４】
0005585303.tif 000005
【図５】
0005585303.tif 000006
【図６】
0005585303.tif 000007
【図７】
0005585303.tif 000008
【図８】
0005585303.tif 000009
【図９】
0005585303.tif 000010
【図１０】
0005585303.tif 000011
【図１１】
0005585303.tif 000012
【図１２】
0005585303.tif 000013
【図１３】
0005585303.tif 000014
【図１４】
0005585303.tif 000015
【図１５】
0005585303.tif 000016