説明

ライブラリ実行管理システム、ライブラリ実行管理方法およびプログラム

【課題】
利用状況に応じてライブラリの実行管理を行う。
【解決手段】
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積するライブラリ呼び出し履歴情報蓄積手段と、ファイルの実行の可否に関する情報であるファイル実行可否情報を提供するファイル実行可否情報提供手段と、アプリケーションの起動に際して、ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性があるライブラリを抽出し、抽出されたライブラリに対応するファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行うアプリケーション起動制御手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ライブラリ実行管理システム、ライブラリ実行管理方法およびプログラムに関し、特にライブラリを使用するアプリケーションの実行をアプリケーションの起動に際して制御するライブラリ実行管理システム、ライブラリ実行管理方法およびプログラムに関する。
【背景技術】
【0002】
アプリケーションソフトウェア(以下「アプリケーション」と称する)は、コンピュータに何らかの処理を実行させるソフトウェア・プログラムであり、実行可能ファイルとして提供される。ライブラリは、一般的に汎用性の高いプログラムが再利用可能な形で提供されたものであり、他のプログラムから呼び出され、実行される。ライブラリの例としてDLL(Dynamic Link Library)が挙げられる。アプリケーションは、起動時もしくは実行中にライブラリを呼び出し、読み込むことによって、ライブラリの機能を使用することができる。
【0003】
アプリケーションやライブラリにセキュリティ的な脆弱性が存在する場合、そのまま使用すると、不正アクセスやウィルス感染の原因となることがある。このような脆弱性はセキュリティパッチを適用することによって解消できるが、セキュリティパッチの適用は再起動を必要とする等システムに影響を与えるため、運用の都合上即座に実施することが難しい場合がある。また、セキュリティパッチがリリースされていない場合には脆弱性を解消することができない。
【0004】
上記のような問題点を解決する技術が特許文献1に記載されている。特許文献1記載のセキュリティ管理装置は、脆弱性を持つライブラリを使用するアプリケーションを起動しようとした際に、アプリケーションの実行を停止する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−241803号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したセキュリティ管理装置は、アプリケーションを実行する前に、アプリケーションが使用するライブラリを特定するための解析処理が必要であるという問題点がある。また、アプリケーションの実行中に動的に読み込まれるライブラリの脆弱性については対応できないという問題点もある。
【0007】
本発明の目的は、上述した課題を解決し、利用状況に応じてライブラリの実行管理を行うライブラリ実行管理システム、ライブラリ実行管理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0008】
本発明に係るライブラリ実行管理システムは、
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積するライブラリ呼び出し履歴情報蓄積手段と、
ファイルの実行の可否に関する情報であるファイル実行可否情報を提供するファイル実行可否情報提供手段と、
アプリケーションの起動に際して、ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性があるライブラリを抽出し、抽出されたライブラリに対応するファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行うアプリケーション起動制御手段とを備える。
【0009】
本発明に係るライブラリ実行管理方法は、
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積し、
アプリケーションの起動に際して、ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性があるライブラリを抽出し、
抽出されたライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行う。
【0010】
本発明に係るプログラムは、
コンピュータに、
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積する機能と、
アプリケーションの起動に際して、ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性があるライブラリを抽出する機能と、
抽出されたライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行う機能とを実現させる。
【発明の効果】
【0011】
本発明に係るライブラリ実行管理システム、ライブラリ実行管理方法およびプログラムは、利用状況に応じたライブラリの実行管理を可能にする。
【図面の簡単な説明】
【0012】
【図1】本発明の第1の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。
【図2】本発明の第1の実施形態における、アプリケーションおよびライブラリの呼び出し関係を表す図である。
【図3】本発明の第1の実施形態における、ライブラリ呼び出し履歴情報161のデータ内容を表す表である。
【図4】本発明の第1の実施形態における、ファイル実行可否情報171のデータ内容を表す表である。
【図5】本発明の第1の実施形態に係るライブラリ実行管理システム100において、ライブラリが呼び出された際の処理動作を説明するシーケンス図である。
【図6】本発明の第1の実施形態に係るライブラリ実行管理システム100において、アプリケーションが起動された際の処理動作を説明するシーケンス図である。
【図7】本発明の第2の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。
【図8】本発明の第2の実施形態における、アプリケーションおよびライブラリの呼び出し関係を表す図である。
【図9】本発明の第2の実施形態における、ライブラリ呼び出し履歴情報161のデータ内容を表す表である。
【図10】本発明の第2の実施形態における、ファイル危険度情報172のデータ内容を表す表である。
【図11】本発明の第2の実施形態における、実行可否判定基準情報173のデータ内容を表す表である。
【図12】本発明の第2の実施形態に係るライブラリ実行管理システム100において、ライブラリが呼び出された際の処理動作を説明するシーケンス図である。
【図13】本発明の第2の実施形態に係るライブラリ実行管理システム100において、アプリケーションが起動された際の処理動作を説明するシーケンス図である。
【図14】本発明の第3の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。
【図15】コンピュータを構成する要素の例を表すブロック構成図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【0014】
[第1の実施形態]
図1は、本発明の第1の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。図1に示すライブラリ実行管理システム100は、ライブラリ呼び出し検知部110と、ライブラリ呼び出し履歴情報蓄積部120と、ライブラリ読み込み制御部130と、アプリケーション起動検知部140と、アプリケーション起動制御部150と、記憶装置160と、ファイル実行可否情報提供部170とを備えている。
【0015】
ライブラリ呼び出し検知部110は、ライブラリに対する、アプリケーションや他のライブラリからの呼び出しを検知する。
【0016】
ライブラリ呼び出し履歴情報蓄積部120は、ライブラリ呼び出し検知部110が検知した呼び出しに関するライブラリ呼び出し履歴情報161を記憶装置160に出力し、蓄積する。ライブラリ呼び出し履歴情報161は、呼び出した側であるアプリケーションまたはライブラリを示す情報(例えばファイル名)と、呼び出された側であるライブラリを示す情報(例えばファイル名)を含む。記憶装置160は、磁気ディスク装置のようなストレージ媒体でもよいし、メモリ装置のような半導体記憶装置でもよい。
【0017】
ファイル実行可否情報提供部170は、ファイル実行可否情報171を提供する。ファイル実行可否情報提供部170は、記憶装置等にファイル実行可否情報171を保持していてもよい。あるいは、ファイル実行可否情報提供部170は、外部の装置からデータ通信等を用いてファイル実行可否情報171を取得してもよい。
【0018】
ファイル実行可否情報171は、個々のファイルについての、実行の可否や実行に際しての条件など、ファイルの実行に関する情報である。ここでのファイルとは、コンピュータで実行されるファイルであり、ライブラリ等が含まれる。例えば、ファイル実行可否情報171は、対象ファイルの実行の禁止を表す情報を含む。また、例えば、ファイル実行可否情報171は、対象ファイルを実行するときに警告メッセージを表示したり、実行記録を保存したりすること等の、対象ファイルの実行に際しての条件を表す情報を含む。
【0019】
ファイル実行可否情報171は、ファイルの脆弱性に対する対処を表す情報であってもよい。この場合、第1の実施形態に係るライブラリ実行管理システムは、脆弱性が存在するライブラリの実行を禁止したり、脆弱性が存在するライブラリの実行に際して利用者に警告を発したりすることができる。また、ファイル実行可否情報171は、それ以外の理由に基づく対処を表す情報であってもよい。例えば、ファイル実行可否情報171は、利用者が指定するファイルの実行の禁止や、実行に際しての条件を表す情報であってもよい。この場合、第1の実施形態に係るライブラリ実行管理システムは、利用者の指定に従ったライブラリの実行制御を行うことができる。
【0020】
ライブラリ読み込み制御部130は、ライブラリ呼び出し検知部110がライブラリの呼び出しを検知すると、当該ライブラリに対応するファイル実行可否情報171を参照し、参照したファイル実行可否情報171に基づいた制御を行う。例えば、当該ライブラリの実行が禁止されていた場合、ライブラリ読み込み制御部130は当該ライブラリの読み込みを中断する。また、例えば、実行するときに警告を出力するように指定されていた場合、ライブラリ読み込み制御部130は当該ライブラリの読み込みに際して警告メッセージの表示を行う。
【0021】
アプリケーション起動検知部140は、アプリケーションに対する起動要求を検知する。
【0022】
アプリケーション起動制御部150は、アプリケーション起動検知部140がアプリケーションの起動要求を検知すると、ライブラリ呼び出し履歴情報161を参照する。そして、当該アプリケーションより呼び出されたことがあるライブラリを、呼び出される可能性があるライブラリとして抽出する。また、呼び出されたライブラリがさらに呼び出したライブラリも、大本の当該アプリケーションより呼び出される可能性があるライブラリとして同様に抽出する。
【0023】
次に、アプリケーション起動制御部150は、上記抽出されたライブラリに対応するファイル実行可否情報171を参照し、参照したファイル実行可否情報171に基づいた制御を行う。例えば、上記抽出されたライブラリに実行が禁止されているライブラリが含まれていた場合、アプリケーション起動制御部150は当該アプリケーションの起動を中断する。また、例えば、実行するときに警告を出力するように指定されているライブラリが含まれていた場合、アプリケーション起動制御部150は当該アプリケーションの起動に際して当該ライブラリに関する警告メッセージの表示を行う。
【0024】
図2は、本発明の第1の実施形態における、アプリケーションおよびライブラリの呼び出し関係を表す図である。図2では、矢印がつなぐ四角が、呼び出した側と呼び出された側のアプリケーションまたはライブラリを表している。A.exe,B.exeおよびC.exeはアプリケーションであり、a.dll,b.dll,c.dll,d.dllおよびe.dllはライブラリである。また、矢印の向きは、呼び出した側から呼び出された側に向かっている。例えば、アプリケーションA.exeは、アプリケーションa.dllを呼び出している。
【0025】
図3は、本発明の第1の実施形態における、ライブラリ呼び出し履歴情報161のデータ内容を表す表であり、図2に対応している。
【0026】
図4は、本発明の第1の実施形態における、ファイル実行可否情報171のデータ内容を表す表である。
【0027】
ライブラリ呼び出し履歴情報161およびファイル実行可否情報171は、図3および図4の表の各行を項目として含むレコードからなるデータベースに格納されていてもよい。
【0028】
図5は、本発明の第1の実施形態に係るライブラリ実行管理システム100において、ライブラリが呼び出された際の処理動作を説明するシーケンス図である。以下、ライブラリが呼び出された際の、第1の実施形態に係るライブラリ実行管理システム100の処理動作について図3および図5を参照して説明する。
【0029】
まず、ライブラリ呼び出し検知部110が、ライブラリが呼び出されたことを検知する(ステップS501)。
【0030】
次に、ライブラリ呼び出し履歴情報蓄積部120が、ライブラリ呼び出し履歴情報161を記憶装置160に出力し、蓄積する(ステップS502)。ライブラリ呼び出し履歴情報蓄積部120が出力するライブラリ呼び出し履歴情報161は、呼び出した側であるアプリケーションまたはライブラリのファイル名と、呼び出された側であるライブラリのファイル名を含む。例えば、ライブラリb.dllがライブラリd.dllを呼び出した場合、ライブラリ呼び出し履歴情報蓄積部120は、図3の連番5のレコードを記憶装置160に出力する。
【0031】
一方で、ステップS501の後、ライブラリ読み込み制御部130が、呼び出されたライブラリに対応するファイル実行可否情報171を、ファイル実行可否情報提供部170より参照する(ステップS503)。
【0032】
次に、ライブラリ読み込み制御部130は、ステップS503で参照したファイル実行可否情報171に基づいて、呼び出されたライブラリの制御方法を決定する。すなわち、ライブラリ読み込み制御部130は、ファイル実行可否情報171に基づいて、ライブラリの読み込みの中断や、読み込みに際しての警告メッセージの出力などを行うことを決定する。そして、ライブラリ読み込み制御部130は、決定した制御方法に従い、呼び出されたライブラリの読み込み制御を実行する(ステップS504)。
【0033】
なお、ステップS503で呼び出されたライブラリに対応するファイル実行可否情報171が存在しなかった場合、ライブラリ読み込み制御部130は、通常通りのライブラリ読み込みを行ってもよい。
【0034】
図6は、本発明の第1の実施形態に係るライブラリ実行管理システム100において、アプリケーションが起動された際の処理動作を説明するシーケンス図である。以下、アプリケーションが起動された際の、第1の実施形態に係るライブラリ実行管理システム100の処理動作について図3,図4および図6を参照して説明する。
【0035】
まず、アプリケーション起動検知部140が、アプリケーションが起動されたことを検知する(ステップS601)。
【0036】
次に、アプリケーション起動制御部150が、記憶装置160よりライブラリ呼び出し履歴情報161を参照し、起動されたアプリケーションから過去に呼び出されたことがあるライブラリを抽出する(ステップS602)。
【0037】
例えば、アプリケーションA.exeが起動された場合、図3の連番1のレコードと連番4のレコードが参照され、ライブラリa.dllとd.dllが抽出される。このように、ライブラリ呼び出し履歴情報161のレコードを、呼び出された側のライブラリが呼び出しているライブラリをキーとして順次検索することにより、過去に呼び出されたことがあるライブラリを抽出することができる。
【0038】
次に、アプリケーション起動制御部150は、ステップS602で抽出したライブラリに対応するファイル実行可否情報171を、ファイル実行可否情報提供部170より参照する(ステップS603)。
【0039】
次に、アプリケーション起動制御部150は、ステップS603で参照したファイル実行可否情報171に基づいて、起動されたアプリケーションの制御方法を決定する。すなわち、アプリケーション起動制御部150は、ファイル実行可否情報171に基づいて、アプリケーションの起動の中断や、起動に際しての警告メッセージの出力などを行うことを決定する。そして、アプリケーション起動制御部150は、決定した制御方法に従い、起動されたアプリケーションの起動制御を実行する(ステップS604)。
【0040】
例えば、アプリケーションA.exeが起動され、ステップS602でライブラリa.dllとd.dllが抽出された場合、d.dllに対応する図4の連番2のレコードが参照される。そして、アプリケーション起動制御部150は、参照したファイル実行可否情報171、即ち「実行禁止」に従い、アプリケーションA.exeの起動を中断する。
【0041】
なお、ステップS602で、起動されたアプリケーションから過去に呼び出されたことがあるライブラリが存在しなかった場合、アプリケーション起動制御部150は、通常通りのアプリケーション起動を行ってもよい。同様に、ステップS603で、過去に呼び出されたライブラリに対応するファイル実行可否情報171が存在しなかった場合も、アプリケーション起動制御部150は、通常通りのアプリケーション起動を行ってもよい。
【0042】
ステップS602では、複数のライブラリが抽出されてもよい。また、ステップS603では、複数のファイル実行可否情報171が参照されてもよい。複数のファイル実行可否情報171が参照された場合、アプリケーション起動制御部150は、参照された全ての実行可否情報に基づいて起動制御を行ってもよいし、その一部の実行可否情報に基づいて行ってもよい。一部の実行可否情報に基づいて起動制御を行う場合、あるファイル実行可否情報171が表す起動制御を、他のファイル実行可否情報171が表すものに優先して行ってもよい。例えば、あるライブラリを実行するときに警告を表示することを表す情報と、他のあるライブラリの実行を禁止する情報が参照されたとする。この場合、アプリケーション起動制御部150は、実行の禁止を優先し、警告の表示を行わず、アプリケーションの起動を中断してもよい。
【0043】
実行するときに警告を表示することを表すファイル実行可否情報171が参照された場合、アプリケーション起動制御部150は、アプリケーション起動に際して警告を表示すると共に、利用者の承認入力を受け付けてもよい。そして、アプリケーション起動制御部150は、利用者が実行を承認した場合はアプリケーションを起動し、承認しなかった場合は起動を中断してもよい。あるいは、アプリケーション起動制御部150は、利用者がコンピュータにログイン中であれば警告の表示、承認入力またはその両方を行い、ログイン中でなければ起動を中断してもよい。
【0044】
このように、本発明の第1の実施形態に係るライブラリ実行管理システム100は、事前にアプリケーションを解析すること無しに、実行が禁止されているライブラリの実行を防止することができる。なぜならば、ライブラリ呼び出し履歴情報161とファイル実行可否情報171に基づいて、アプリケーション起動制御部150がアプリケーションの起動制御を行うからである。すなわち、過去に呼び出されたことがあるライブラリを抽出し、それらのライブラリの実行可否を参照して、アプリケーション起動制御部150がアプリケーションの起動制御を行うからである。
【0045】
また、本発明の第1の実施形態に係るライブラリ実行管理システム100は、動的に呼び出されるライブラリに対しても、実行が禁止されているライブラリの実行を防止することができる。すなわち、アプリケーションに記載されていないライブラリであっても、実行が禁止されているライブラリの実行を防止することができる。
【0046】
さらに、本発明の第1の実施形態に係るライブラリ実行管理システム100は、利用状況に応じたライブラリの実行管理を可能にする。すなわち、例えば、実際に呼び出されたライブラリに限って、そのライブラリに対応する実行可否情報に基づいたライブラリの実行管理を行うことができる。
【0047】
なお、図5の処理において、ライブラリが呼び出された際に、ライブラリ呼び出し履歴情報161を蓄積する処理(ステップS502)のみが行われてもよい。すなわち、ライブラリ読み込み制御部130が、呼び出されたライブラリの制御をファイル実行可否情報171に基づいて行う処理(ステップS503〜S504)を行わず、常に通常通りのライブラリ読み込み制御を行ってもよい。この場合、過去に実行されたことがないライブラリの制御を行うことができない反面、アプリケーションの実行途中における、ライブラリの読み込みが中断されることによるアプリケーションの異常終了の発生を防止できる。
【0048】
[第2の実施形態]
次に、本発明の第2の実施形態を説明する。
【0049】
図7は、本発明の第2の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。図7に示すライブラリ実行管理システム100は、図1と同様に、ライブラリ呼び出し検知部110と、ライブラリ呼び出し履歴情報蓄積部120と、ライブラリ読み込み制御部130と、アプリケーション起動検知部140と、アプリケーション起動制御部150と、記憶装置160と、ファイル実行可否情報提供部170とを備えている。
【0050】
第2の実施形態におけるライブラリ呼び出し履歴情報蓄積部120は、図1と同様に、ライブラリ呼び出し検知部110が検知した呼び出しに関するライブラリ呼び出し履歴情報161を記憶装置160に出力し、蓄積する。ただし、第2の実施形態におけるライブラリ呼び出し履歴情報161は、呼び出した側であるアプリケーションまたはライブラリを示す情報と呼び出された側であるライブラリを示す情報に加え、累積呼び出し回数を含む。
【0051】
第2の実施形態におけるファイル実行可否情報提供部170は、図1のファイル実行可否情報171の代わりに、ファイル危険度情報172と実行可否判定基準情報173を提供する。ファイル実行可否情報提供部170は、第1の実施形態と同様に、記憶装置等にファイル危険度情報172と実行可否判定基準情報173を保持していてもよい。あるいは、ファイル実行可否情報提供部170は、外部の装置からデータ通信等を用いてファイル危険度情報172と実行可否判定基準情報173を取得してもよい。
【0052】
ファイル危険度情報172は、個々のファイルについての、実行におけるファイルの危険度を表す情報である。危険度とは、例えば、ファイルを実行することにより、ファイルの脆弱性に起因する攻撃を受ける可能性や、攻撃を受けることにより発生する損害の重大さを表す。
【0053】
実行可否判定基準情報173は、ファイルの実行に際して、ファイルの危険度などに基づいてどのような制御を行うかの判定基準を表す情報である。例えば、実行可否判定基準情報173は、危険度が大きなファイルの実行の禁止を表す情報を含む。また、例えば、実行可否判定基準情報173は、危険度が小さなファイルを実行するときに警告メッセージを表示したり、実行記録を保存したりすること等の、実行に際しての条件を表す情報を含む。
【0054】
第2の実施形態におけるライブラリ読み込み制御部130は、図1のファイル実行可否情報171の代わりに、ファイル危険度情報172と実行可否判定基準情報173を参照する。そして、ライブラリ読み込み制御部130は、参照したこれらの情報に基づいた制御を行う。
【0055】
同様に、第2の実施形態におけるアプリケーション起動制御部150も、図1のファイル実行可否情報171の代わりに、ファイル危険度情報172と実行可否判定基準情報173を参照する。そして、アプリケーション起動制御部150は、参照したこれらの情報に基づいた制御を行う。
【0056】
第2の実施形態におけるライブラリ呼び出し検知部110、アプリケーション起動検知部140および記憶装置160については図1と同様であるため、説明を省略する。
【0057】
図8は、本発明の第2の実施形態における、アプリケーションおよびライブラリの呼び出し関係を表す図である。図8では、図2の内容に加えて、矢印の近傍の数字が、ライブラリの累積呼び出し回数を表している。例えば、アプリケーションA.exeによるアプリケーションa.dllの累積呼び出し回数は、15回である。
【0058】
図9は、本発明の第2の実施形態における、ライブラリ呼び出し履歴情報161のデータ内容を表す表であり、図8に対応している。
【0059】
図10は、本発明の第2の実施形態における、ファイル危険度情報172のデータ内容を表す表である。
【0060】
図11は、本発明の第2の実施形態における、実行可否判定基準情報173のデータ内容を表す表である。図11において、累積呼び出し回数の「−」は、累積呼び出し回数が何回であっても構わないことを表している。例えば、連番1のレコードは、危険度が「大」の場合、累積呼び出し回数が何回であっても「実行禁止」であることを表している。
【0061】
図12は、本発明の第2の実施形態に係るライブラリ実行管理システム100において、ライブラリが呼び出された際の処理動作を説明するシーケンス図である。以下、ライブラリが呼び出された際の、第2の実施形態に係るライブラリ実行管理システム100の処理動作について図9および図12を参照して説明する。
【0062】
まず、ライブラリ呼び出し検知部110が、ライブラリが呼び出されたことを検知する(ステップS1201)。これは図5と同様である。
【0063】
次に、ライブラリ呼び出し履歴情報蓄積部120が、ライブラリ呼び出し履歴情報161を記憶装置160に出力し、蓄積する(ステップS1202)。ライブラリ呼び出し履歴情報蓄積部120が出力するライブラリ呼び出し履歴情報161は、呼び出した側であるアプリケーションまたはライブラリのファイル名と、呼び出された側であるライブラリのファイル名と、累積呼び出し回数を含む。
【0064】
該当するライブラリに関するライブラリ呼び出し履歴情報161が既に存在している場合、ライブラリ呼び出し履歴情報蓄積部120は、「累積呼び出し回数」の値を1加算して更新する。例えば、図9の状態において、ライブラリb.dllがライブラリd.dllを呼び出した場合、ライブラリ呼び出し履歴情報蓄積部120は、当該ライブラリに対応する図9の連番5のレコードの「累積呼び出し回数」の値を6から7に更新する。
【0065】
逆に、該当するライブラリに関するライブラリ呼び出し履歴情報161が存在しない場合、ライブラリ呼び出し履歴情報蓄積部120は、「呼び出した側」および「呼び出された側」の値が該当するライブラリのファイル名であり、「累積呼び出し回数」の値が1であるレコードを新規に登録する。例えば、図9の状態において、ライブラリd.dllがライブラリf.dll(図示しない)を呼び出し、かつ、当該ライブラリに対応するレコードが存在しなかったとする。この場合、ライブラリ呼び出し履歴情報蓄積部120は、「呼び出した側」がd.dll,「呼び出された側」がf.dll,「累積呼び出し回数」が1であるレコードを新規に登録する。
【0066】
一方で、ステップS1201の後、ライブラリ読み込み制御部130が、呼び出されたライブラリに対応するファイル危険度情報172と、実行可否判定基準情報173を、ファイル実行可否情報提供部170より参照する(ステップS1203)。
【0067】
次に、ライブラリ読み込み制御部130は、ステップS1203で参照したファイル危険度情報172および実行可否判定基準情報173に基づいて、呼び出されたライブラリの制御方法を決定する。すなわち、ライブラリ読み込み制御部130は、ファイル危険度情報172および実行可否判定基準情報173に基づいて、ライブラリの読み込みの中断や、読み込みに際しての警告メッセージの出力などを行うことを決定する。そして、ライブラリ読み込み制御部130は、決定した制御方法に従い、呼び出されたライブラリの読み込み制御を実行する(ステップS1204)。
【0068】
なお、ステップS1203で呼び出されたライブラリに対応するファイル危険度情報172が存在しなかった場合、ライブラリ読み込み制御部130は、通常通りのライブラリ読み込みを行ってもよい。
【0069】
図13は、本発明の第2の実施形態に係るライブラリ実行管理システム100において、アプリケーションが起動された際の処理動作を説明するシーケンス図である。以下、アプリケーションが起動された際の、第2の実施形態に係るライブラリ実行管理システム100の処理動作について図9,図10,図11および図13を参照して説明する。
【0070】
まず、アプリケーション起動検知部140が、アプリケーションが起動されたことを検知する(ステップS1301)。これは図6と同様である。
【0071】
次に、アプリケーション起動制御部150が、記憶装置160よりライブラリ呼び出し履歴情報161を参照し、起動されたアプリケーションから過去に呼び出されたことがあるライブラリと、その累積呼び出し回数を抽出する(ステップS1302)。
【0072】
例えば、アプリケーションA.exeが起動された場合、図9の連番1のレコードと連番4のレコードが参照され、ライブラリa.dllと累積呼び出し回数15,ライブラリd.dllと累積呼び出し回数12が抽出される。
【0073】
次に、アプリケーション起動制御部150は、ステップS1302で抽出したライブラリに対応するファイル危険度情報172と、実行可否判定基準情報173を、ファイル実行可否情報提供部170より参照する(ステップS1303)。ここで、アプリケーション起動制御部150は、ステップS1302で抽出した累積呼び出し回数に基づいて実行可否判定基準情報173を参照する。具体的には、例えば、抽出したライブラリの危険度が「中」であった場合、図11の連番2のレコードと連番3のレコードにおいて、累積呼び出し回数
に基づいてどちらかのレコードを選択する。
【0074】
次に、アプリケーション起動制御部150は、ステップS1303で参照したファイル危険度情報172と実行可否判定基準情報173に基づいて、起動されたアプリケーションの制御方法を決定する。すなわち、アプリケーション起動制御部150は、ファイル危険度情報172と実行可否判定基準情報173に基づいて、アプリケーションの起動の中断や、起動に際しての警告メッセージの出力などを行うことを決定する。そして、アプリケーション起動制御部150は、決定した制御方法に従い、起動されたアプリケーションの起動制御を実行する(ステップS1304)。
【0075】
例えば、アプリケーションA.exeが起動され、ステップS1302でライブラリa.dllとd.dllが抽出された場合、a.dllとd.dllに対応する図10の連番1のレコードと連番3のレコードが参照される。次に、アプリケーション起動制御部150は、参照したファイル危険度情報172、即ち危険度「小」および「中」に対応する実行可否判定基準情報173を参照する。ここで、危険度「小」には図11の連番4のレコードが該当する。危険度「中」には図11の連番2と連番3のレコードが該当するが、d.dllの累積呼び出し回数「12」に従い、連番2のレコードが選択される。最終的に、アプリケーション起動制御部150は、図11の連番2のレコードと連番4のレコードを参照する。そして、アプリケーション起動制御部150は、参照した実行可否判定基準情報173、即ち「実行禁止」と「警告」に従い、アプリケーションA.exeの起動を中断する。
【0076】
なお、ステップS1302で、起動されたアプリケーションから過去に呼び出されたことがあるライブラリが存在しなかった場合、アプリケーション起動制御部150は、通常通りのアプリケーション起動を行ってもよい。同様に、ステップS1303で、過去に呼び出されたライブラリに対応するファイル危険度情報172が存在しなかった場合も、アプリケーション起動制御部150は、通常通りのアプリケーション起動を行ってもよい。
【0077】
ステップS1302では、複数のライブラリが抽出されてもよい。また、ステップS1303では、複数のファイル危険度情報172および実行可否判定基準情報173が参照されてもよい。複数の実行可否判定基準情報173が参照された場合、アプリケーション起動制御部150は、参照された全ての実行可否情報に基づいて起動制御を行ってもよいし、その一部の実行可否情報に基づいて行ってもよい。一部の実行可否情報に基づいて起動制御を行う場合、ある実行可否判定基準情報173が表す起動制御を、他の実行可否判定基準情報173が表すものに優先して行ってもよい。例えば、あるライブラリを実行するときに警告を表示することを表す情報と、他のあるライブラリの実行を禁止する情報が参照されたとする。この場合、アプリケーション起動制御部150は、実行の禁止を優先し、警告の表示を行わず、アプリケーションの起動を中断してもよい。
【0078】
実行するときに警告を表示することを表す実行可否判定基準情報173が参照された場合、アプリケーション起動制御部150は、アプリケーション起動に際して警告を表示すると共に、利用者の承認入力を受け付けてもよい。そして、アプリケーション起動制御部150は、利用者が実行を承認した場合はアプリケーションを起動し、承認しなかった場合は起動を中断してもよい。あるいは、アプリケーション起動制御部150は、利用者がコンピュータにログイン中であれば警告の表示、承認入力またはその両方を行い、ログイン中でなければ起動を中断してもよい。
【0079】
このように、本発明の第2の実施形態に係るライブラリ実行管理システム100は、第1の実施形態と同様の効果を有しながら、ライブラリの呼び出し回数に応じた柔軟なライブラリの実行管理を行うことができる。なぜならば、ライブラリ呼び出し履歴情報161,ファイル危険度情報172および実行可否判定基準情報173に加え、ライブラリの累積呼び出し回数に基づいて、アプリケーション起動制御部150がアプリケーションの起動制御を行うからである。このことにより、ライブラリの利用頻度に応じたライブラリの実行管理が可能になる。
【0080】
なお、図12の処理において、ライブラリが呼び出された際に、ライブラリ呼び出し履歴情報161を蓄積する処理(ステップS1202)のみが行われてもよい。すなわち、ライブラリ読み込み制御部130が、呼び出されたライブラリの制御をファイル危険度情報172および実行可否判定基準情報173に基づいて行う処理(ステップS1203〜S1204)を行わず、常に通常通りのライブラリ読み込み制御を行ってもよい。この場合、過去に実行されたことがないライブラリの制御を行うことができない反面、アプリケーションの実行途中における、ライブラリの読み込みが中断されることによるアプリケーションの異常終了の発生を防止できる。
【0081】
ライブラリ呼び出し履歴情報161の累積呼び出し回数は、大本の呼び出し側であるアプリケーション単位に計数されてもよい。第2の実施形態においては、図8および図9を参照すると、例えばd.dllからe.dllへの累積呼び出し回数9は、大本のアプリケーションであるA.exeとB.exeからの呼び出し回数の合計となっている。これを、例えば図9の表に「大本のアプリケーション」の項目を追加することにより、A.exeとB.exe別に計数してもよい。この場合、大本のアプリケーション単位にライブラリの呼び出しの有無および頻度を管理することができる。すなわち、アプリケーション毎のライブラリの呼び出しの有無および頻度に基づいたライブラリの実行管理を行うことができる。
【0082】
[第3の実施形態]
次に、本発明の第3の実施形態を説明する。
【0083】
図14は、本発明の第3の実施形態に係るライブラリ実行管理システムの構成を示すブロック図である。図14に示すライブラリ実行管理システム100は、ライブラリ呼び出し履歴情報蓄積部120と、アプリケーション起動制御部150と、ファイル実行可否情報提供部170とを備えている。
【0084】
ライブラリ呼び出し履歴情報蓄積部120は、ライブラリがアプリケーションや他のライブラリから呼び出されると、ライブラリ呼び出し履歴情報161を記憶装置等に出力し、蓄積する。ライブラリ呼び出し履歴情報161は、呼び出した側であるアプリケーションまたはライブラリを示す情報と、呼び出された側であるライブラリを示す情報を含む。
【0085】
ファイル実行可否情報提供部170は、ファイル実行可否情報171を提供する。ファイル実行可否情報171は、個々のファイルについての、実行の可否や実行に際しての条件など、ファイルの実行に関する情報である。
【0086】
アプリケーション起動制御部150は、アプリケーションの起動が要求されると、ライブラリ呼び出し履歴情報161を参照する。そして、当該アプリケーションより呼び出されたことがあるライブラリを、呼び出される可能性があるライブラリとして抽出する。また、呼び出されたライブラリがさらに呼び出したライブラリも、大本の当該アプリケーションより呼び出される可能性があるライブラリとして同様に抽出する。次に、アプリケーション起動制御部150は、上記抽出されたライブラリに対応するファイル実行可否情報171を参照し、参照したファイル実行可否情報171に基づいた制御を行う。
【0087】
このように、本発明の第3の実施形態に係るライブラリ実行管理システム100は、事前にアプリケーションを解析すること無しに、実行が禁止されているライブラリの実行を防止することができる。なぜならば、ライブラリ呼び出し履歴情報161とファイル実行可否情報171に基づいて、アプリケーション起動制御部150がアプリケーションの起動制御を行うからである。すなわち、過去に呼び出されたことがあるライブラリを抽出し、それらのライブラリの実行可否を参照して、アプリケーション起動制御部150がアプリケーションの起動制御を行うからである。
【0088】
また、本発明の第3の実施形態に係るライブラリ実行管理システム100は、動的に呼び出されるライブラリに対しても、実行が禁止されているライブラリの実行を防止することができる。すなわち、アプリケーションに記載されていないライブラリであっても、実行が禁止されているライブラリの実行を防止することができる。
【0089】
さらに、本発明の第3の実施形態に係るライブラリ実行管理システム100は、利用状況に応じたライブラリの実行管理を可能にする。すなわち、例えば、実際に呼び出されたライブラリに限って、そのライブラリに対応する実行可否情報に基づいたライブラリの実行管理を行うことができる。
【0090】
上記の第1〜第3の実施形態におけるライブラリ実行管理システムは、専用のハードウェアによって実現されてもよいし、コンピュータによって実現されてもよい。
【0091】
図15は、コンピュータを構成する要素の例を表すブロック構成図である。図15のコンピュータ900は、CPU(Central Processing Unit)910と、RAM(Random Access Memory)920と、ROM(Read Only Memory)930と、ストレージ媒体940と、通信インタフェース950を備えている。前述したライブラリ実行管理システムの構成要素は、プログラムがコンピュータ900において実行されることにより実現されてもよい。具体的には、前述した図1,図7および図14に記載のライブラリ実行管理システムの構成要素は、CPU910がROM930あるいはストレージ媒体940からプログラムを読み込んで実行することにより実現されてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
【0092】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0093】
(付記1)
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積するライブラリ呼び出し履歴情報蓄積手段と、
ファイルの実行の可否に関する情報であるファイル実行可否情報を提供するファイル実行可否情報提供手段と、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出し、抽出された前記ライブラリに対応する前記ファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行うアプリケーション起動制御手段とを備えたライブラリ実行管理システム。
【0094】
(付記2)
前記ライブラリ呼び出し履歴情報蓄積手段が、当該ライブラリの累積呼び出し回数をさらに蓄積し、
前記アプリケーション起動制御手段が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて当該アプリケーションの前記起動制御処理を行う付記1に記載のライブラリ実行管理システム。
【0095】
(付記3)
前記アプリケーション起動制御手段が、前記起動制御処理において、前記アプリケーションの起動を中止する付記1または2に記載のライブラリ実行管理システム。
【0096】
(付記4)
前記アプリケーション起動制御手段が、前記起動制御処理において、前記アプリケーションより呼び出される可能性がある前記ライブラリに関して警告する付記1乃至3のいずれかに記載のライブラリ実行管理システム。
【0097】
(付記5)
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積し、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出し、
抽出された前記ライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行うライブラリ実行管理方法。
【0098】
(付記6)
前記ライブラリ呼び出し履歴情報が、当該ライブラリの累積呼び出し回数をさらに含み、
前記アプリケーションの起動制御処理が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて行われる付記5に記載のライブラリ実行管理方法。
【0099】
(付記7)
前記アプリケーションの起動制御処理が、前記アプリケーションの起動を中止する処理である付記5または6に記載のライブラリ実行管理方法。
【0100】
(付記8)
前記アプリケーションの起動制御処理が、前記アプリケーションより呼び出される可能性がある前記ライブラリに関して警告する処理である付記5乃至7に記載のライブラリ実行管理方法。
【0101】
(付記9)
コンピュータに、
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積する機能と、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出する機能と、
抽出された前記ライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行う機能とを実現させるプログラム。
【0102】
(付記10)
前記ライブラリ呼び出し履歴情報が、当該ライブラリの累積呼び出し回数をさらに含み、
前記アプリケーションの起動制御処理が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて行われる付記9に記載のプログラム。
【0103】
(付記11)
前記アプリケーションの起動制御処理が、前記アプリケーションの起動を中止する処理である付記9または10に記載のプログラム。
【0104】
(付記12)
前記アプリケーションの起動制御処理が、前記アプリケーションより呼び出される可能性がある前記ライブラリに関して警告する処理である付記9乃至11に記載のプログラム。
【符号の説明】
【0105】
100 ライブラリ実行管理システム
110 ライブラリ呼び出し検知部
120 ライブラリ呼び出し履歴情報蓄積部
130 ライブラリ読み込み制御部
140 アプリケーション起動検知部
150 アプリケーション起動制御部
160 記憶装置
161 ライブラリ呼び出し履歴情報
170 ファイル実行可否情報提供部
171 ファイル実行可否情報
172 ファイル危険度情報
173 実行可否判定基準情報
900 コンピュータ
910 CPU
920 RAM
930 ROM
940 ストレージ媒体
950 通信インタフェース

【特許請求の範囲】
【請求項1】
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積するライブラリ呼び出し履歴情報蓄積手段と、
ファイルの実行の可否に関する情報であるファイル実行可否情報を提供するファイル実行可否情報提供手段と、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出し、抽出された前記ライブラリに対応する前記ファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行うアプリケーション起動制御手段とを備えたライブラリ実行管理システム。
【請求項2】
前記ライブラリ呼び出し履歴情報蓄積手段が、当該ライブラリの累積呼び出し回数をさらに蓄積し、
前記アプリケーション起動制御手段が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて当該アプリケーションの前記起動制御処理を行う請求項1に記載のライブラリ実行管理システム。
【請求項3】
前記アプリケーション起動制御手段が、前記起動制御処理において、前記アプリケーションの起動を中止する請求項1または2に記載のライブラリ実行管理システム。
【請求項4】
前記アプリケーション起動制御手段が、前記起動制御処理において、前記アプリケーションより呼び出される可能性がある前記ライブラリに関して警告する請求項1乃至3のいずれかに記載のライブラリ実行管理システム。
【請求項5】
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積し、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出し、
抽出された前記ライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行うライブラリ実行管理方法。
【請求項6】
前記ライブラリ呼び出し履歴情報が、当該ライブラリの累積呼び出し回数をさらに含み、
前記アプリケーションの起動制御処理が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて行われる請求項5に記載のライブラリ実行管理方法。
【請求項7】
前記アプリケーションの起動制御処理が、前記アプリケーションの起動を中止する処理である請求項5または6に記載のライブラリ実行管理方法。
【請求項8】
コンピュータに、
ライブラリがアプリケーションまたは他のライブラリから呼び出されたことを検知し、呼び出した当該アプリケーションまたは当該ライブラリと呼び出された当該ライブラリを表すライブラリ呼び出し履歴情報を蓄積する機能と、
前記アプリケーションの起動に際して、前記ライブラリ呼び出し履歴情報を参照して当該アプリケーションより呼び出される可能性がある前記ライブラリを抽出する機能と、
抽出された前記ライブラリに対応する、ファイルの実行の可否に関する情報であるファイル実行可否情報に基づいて当該アプリケーションの起動制御処理を行う機能とを実現させるプログラム。
【請求項9】
前記ライブラリ呼び出し履歴情報が、当該ライブラリの累積呼び出し回数をさらに含み、
前記アプリケーションの起動制御処理が、前記ファイル実行可否情報と前記ライブラリの累積呼び出し回数に基づいて行われる請求項8に記載のプログラム。
【請求項10】
前記アプリケーションの起動制御処理が、前記アプリケーションの起動を中止する処理である請求項8または9に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−48342(P2012−48342A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−187901(P2010−187901)
【出願日】平成22年8月25日(2010.8.25)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】