(57)【要約】【課題】安全な実行環境を容易に実現でき、且つ、アクセス条件の収集を効率良く実行し得る、検証装置、検証方法、及びプログラムを提供する。【解決手段】検証装置１０は、コンピュータ１上で実行される実行ファイルを検証するため、指定された実行ファイルを予め実行して、指定された実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リスト７に記録する、経路収集部５と、指定された実行ファイルについて、その経路が、経路リスト７に記録された正当な経路であるかどうかを判定し、正当な経路であると判定する場合に、指定された実行ファイルの実行を許可する、経路検証部６と、を備えていることを特徴とする。【選択図】図１
2014164536.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で実行される実行ファイルを検証するための装置であって、
指定された実行ファイルを予め実行して、指定された前記実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リストに記録する、経路収集部と、
指定された実行ファイルについて、その経路が、前記経路リストに記録された正当な経路であるかどうかを判定し、正当な経路であると判定する場合に、指定された前記実行ファイルの実行を許可する、経路検証部と、
を備えていることを特徴とする検証装置。
【請求項２】
前記経路収集部が、経路として、指定された前記実行ファイルのプロセスについての生成に至るまでの生成経路を収集し、収集した前記生成経路を、経路リストに記録し、
前記経路検証部が、指定された前記実行ファイルのプロセスについての生成に至るまでの生成経路が、経路リストに記録された正当な生成経路であるかどうかを判定する、
請求項１に記載の検証装置。
【請求項３】
前記経路収集部が、前記生成経路の収集の際に、指定された前記実行ファイルのプロセスからその上位のプロセスまでの各プロセスについて、実行ファイルの名称とそのハッシュ値とを取得し、そして、取得した実行ファイルの名称とハッシュ値とを、正当な経路の定義として、経路リストに記録し、
前記経路検証部が、指定された前記実行ファイルのプロセスからその上位のプロセスまでの、実行ファイルの名称とそのハッシュ値とが、前記経路リストに記録されているかどうかを判定し、記録されている場合に正当な生成経路であると判定する、
請求項２に記載の検証装置。
【請求項４】
前記コンピュータが、
生成経路の収集の対象として指定されたプロセスを記録する収集対象リストに基づいて、前記経路収集部に対して前記実行ファイルを指定し、
前記経路リストに記録されている実行ファイルを実行する場合に、前記経路検証部に対して、実行の対象となっている前記実行ファイルを指定する、
請求項２または３に記載の検証装置。
【請求項５】
前記経路収集部が、収集した生成経路に対して正規化処理を行って、親プロセスと子プロセスとの関係のみを含む複数の生成経路を生成し、生成した生成経路を前記経路リストに記録する、
請求項２〜４のいずれかに記載の検証装置。
【請求項６】
コンピュータ上で実行される実行ファイルを検証するための方法であって、
（ａ）指定された実行ファイルを予め実行して、指定された前記実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リストに記録する、ステップと、
（ｂ）指定された実行ファイルについて、その経路が、前記経路リストに記録された正当な経路であるかどうかを判定し、正当な経路であると判定する場合に、指定された前記実行ファイルの実行を許可する、ステップと、
を有することを特徴とする検証方法。
【請求項７】
コンピュータ上で実行される実行ファイルを前記コンピュータによって検証するためのプログラムであって、
前記コンピュータに、
（ａ）指定された実行ファイルを予め実行して、指定された前記実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リストに記録する、ステップと、
（ｂ）指定された実行ファイルについて、その経路が、前記経路リストに記録された正当な経路であるかどうかを判定し、正当な経路であると判定する場合に、指定された前記実行ファイルの実行を許可する、ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実行ファイルの実行可否を検証するための、検証装置、検証方法、及びこれらを実現するためのプログラムに関する。
【背景技術】
【０００２】
近年、安全な実行環境を確立するために、ファイルアクセス時及びファイル実行時におけるセキュリティの向上を図る手法が求められている。このような手法としては、例えば、コンピュータシステムにおいて、ポリシー定義によるアクセス制御を実装することが知られている。
【０００３】
ここで、アクセス制御とは、必要最低限のアクセスだけが認められるようにアクセス条件の定義（ポリシー定義）を定め、この定義に基づいて厳格にアクセスを制御することをいう。但し、正しいアクセス条件をもれなく定義することは困難である。定義が不十分であると、不必要なアクセスが許容されて、セキュリティ上の脆弱性（セキュリティホール）が発生してしまう場合がある。逆に、本来必要なアクセスが制限されて、アプリケーションが動作しなくなる場合もある。
【０００４】
これらの問題を解決するために、従来から、複雑なアクセス条件の定義（ポリシー定義）を自動的に収集するシステムが提案されている（特許文献１及び２参照）。具体的には、特許文献１には、正常時のプロセス生成経路をアクセスログとして記録し、ファイルのアクセス条件の定義として、記録されたプロセス生成経路を利用するシステムが開示されている。
【０００５】
また、特許文献２には、ファイルにアクセスするプログラムを逆アセンブルしたり、ファイルにアクセスするプログラム毎にそれに作用するプロパティ定義（環境定義）などを分析したり、することにより、正規のアクセス条件を取得するシステムが開示されている。
【０００６】
なお、特許文献３には、既存のアプリケーションの実行ファイルを勝手に書き換えて、そこに不正なコードを忍び込ませる、ウィルスについての記載が開示されている。上述したアクセス制御は、このようなウィルスの攻撃に対抗するために不可欠である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１２８６２３号公報
【特許文献２】特開２０１２−０４８６０９号公報
【特許文献３】特開２００７−１４０７９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１に開示されたシステムでは、ファイルのアクセス権の検証をすべき対象が、ごく一部のファイルであったときも、全てのプロセス生成時のアクセスログを記録する必要がある。このため、情報収集を効率的に行なうことが難しいという問題が発生してしまう。また、ファイル名のみに基づいてアクセス権の検証が行なわれるため、ファイルが不正に置換されたときに不正検出ができないという問題点もある。
【０００９】
一方、上記特許文献２に開示されたシステムでは、上記特許文献１に比べて効率的にアクセス条件を取得でき、また不正検出も可能になると考えられる。しかし、上記特許文献２のシステムでは、逆アセンブルという高度な技術が必要となる。また、プログラム毎に異なる環境定義それぞれに対応した解析手段を実装する必要もある。このため、上記特許文献２のシステムを採用した場合は、安全な実行環境を実現するための難易度が非常に高いという問題がある。
【００１０】
本発明の目的の一例は、上記問題を解消し、安全な実行環境を容易に実現でき、且つ、アクセス条件の収集を効率良く実行し得る、検証装置、検証方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の一側面における検証装置は、コンピュータ上で実行される実行ファイルを検証するための装置であって、
指定された実行ファイルを予め実行して、指定された前記実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リストに記録する、経路収集部と、
指定された実行ファイルについて、その経路が、前記経路リストに記録された正当な経路であるかどうかを判定し、正当な経路であると判定する場合に、指定された前記実行ファイルの実行を許可する、経路検証部と、
を備えていることを特徴とする。
【００１２】
また、上記目的を達成するため、本発明の一側面における検証方法は、コンピュータ上で実行される実行ファイルを検証するための方法であって、
（ａ）指定された実行ファイルを予め実行して、指定された前記実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リストに記録する、ステップと、
（ｂ）指定された実行ファイルについて、その経路が、前記経路リストに記録された正当な経路であるかどうかを判定し、正当な経路であると判定する場合に、指定された前記実行ファイルの実行を許可する、ステップと、
を有することを特徴とする。
【００１３】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータ上で実行される実行ファイルを前記コンピュータによって検証するためのプログラムであって、
前記コンピュータに、
（ａ）指定された実行ファイルを予め実行して、指定された前記実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リストに記録する、ステップと、
（ｂ）指定された実行ファイルについて、その経路が、前記経路リストに記録された正当な経路であるかどうかを判定し、正当な経路であると判定する場合に、指定された前記実行ファイルの実行を許可する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１４】
以上のように本発明によれば、安全な実行環境を容易に実現でき、且つ、アクセス条件の収集を効率良く実行することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の実施の形態１における検証装置１０の概略構成を示すブロック図である。
【図２】図２は、図１に示した検証装置を更に具体的示すブロック図である。
【図３】図３は、本実施の形態１で用いられる収集対象リストの一例を示す図である。
【図４】図４は、本実施の形態１で用いられる経路リストの一例を示す図である。
【図５】図５は、プロセスの親子関係の一例を示す図である。
【図６】図６は、本発明の実施の形態１における検証装置の動作を示すフロー図である。
【図７】図７は、図６に示すプロセスの生成経路の取得処理を詳細に示すフロー図である。
【図８】図８（ａ）は、正規化前の経路リストの一例を示す図であり、図８（ｂ）は、正規化後の経路リストの一例を示す図である。
【図９】図９は、本発明の実施の形態２における検証装置の動作を示すフロー図である。
【図１０】図１０は、図９に示すプロセスの生成経路の正規化処理を詳細に示すフロー図である。
【図１１】図１１は、本実施の形態２で検証されるプロセスの親子関係の一例を示す図である。
【図１２】図１２は、本発明の実施の形態１及び２における検証装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１６】
（実施の形態１）
以下、本発明の実施の形態１における、検証装置、検証方法、及びプログラムについて、図１〜図７を参照しながら説明する。
【００１７】
［装置構成］
最初に、図１を用いて本実施の形態１における検証装置の構成について説明する。図１は、本発明の実施の形態１における検証装置１０の概略構成を示すブロック図である。
【００１８】
図１に示すように、本実施の形態１における検証装置１０は、コンピュータ１上で実行される実行ファイルを検証するための装置である。検証装置１０は、経路収集部５と、経路検証部６とを備えている。また、本実施の形態１では、検証装置１０は、コンピュータ１のオペレーティングシステム上にプログラムによって構築されている。
【００１９】
経路収集部５は、コンピュータ１によって指定された実行ファイルを予め実行して、指定された実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リスト７に記録する。
【００２０】
また、経路検証部６は、コンピュータ１によって実行ファイルが指定されると、指定された実行ファイルについて、その経路が、経路リスト７に記録された正当な経路であるかどうかを判定する。そして、経路検証部６は、正当な経路であると判定する場合は、指定された前記実行ファイルの実行を許可する。
【００２１】
このように、本実施の形態１では、指定された実行ファイルについてのみ予めダミー実行が行われ、その経路が収集されるので、アクセス条件の収集が効率良く行われることになる。また、正当な経路が定義された経路リストに基づいて、実行ファイルの実行の可否が判断されるので、安全な実行環境が容易に実現されることになる。
【００２２】
続いて、図２〜図５を用いて本実施の形態１における検証装置の構成について更に具体的に説明する。図２は、図１に示した検証装置を更に具体的示すブロック図である。
【００２３】
図２に示すように、コンピュータ１は、プロセス生成部２を備えている。プロセス生成部２は、実行ファイル８を実行してプロセスを生成する。また、プロセス生成部２は、一般的なプロセス生成（fork/exec方式など）を行ない、例えば、既に実行しているプロセスを親プロセスとして、新しいプロセス（子プロセス）を生成する。
【００２４】
また、本実施の形態１では、経路収集部５は、経路として、指定された実行ファイルのプロセスについての生成に至るまでの生成経路を収集し、収集した生成経路を、経路リスト７に記録する。更に、本実施の形態１では、経路検証部６は、指定された実行ファイルのプロセスについての生成に至るまでの生成経路が、経路リストに記録された正当な経路であるかどうかを判定する。
【００２５】
また、図２に示すように、本実施の形態１では、検証装置１０は、経路収集部５及び経路検証部６に加えて、収集対象定義部３と、記憶部９とを備えている。このうち、記憶部９は、上述した経路リスト７（後述の図４参照）と、収集対象リスト４（後述の図３参照）とを格納している。収集対象リスト４は、経路収集部５による生成経路の収集の対象、即ち、ダミー実行の対象として指定されたプロセスを記録している。
【００２６】
収集対象定義部３は、収集対象リスト４に対して、プロセスの追加及び削除を実行する。収集対象定義部３は、コンピュータ１の運用中に、この収集対象リスト４を書き換えることもできる。また、収集対象定義部３は、ダミー実行の対象となるプロセスを、ダミー実行の直前に追加しても良いし、ダミー実行の完了時に削除しても良い。
【００２７】
ここで、図３を用いて、収集対象リスト４の形式及び定義の一例について説明する。図３は、本実施の形態１で用いられる収集対象リストの一例を示す図である。図３の例では、収集対象リスト４は、実行ファイル［/d1/file3］と、実行ファイル［/d100/file100］とを、プロセスの生成経路の収集の対象として定義している。
【００２８】
また、プロセス生成部２は、収集対象リスト４にアクセスし、実行を開始しようとしている実行ファイルが収集対象リスト４に存在しているかどうかを確認する。確認の結果、存在している場合は、プロセス生成部２は、収集対象リスト４に定義された実行ファイルの実行を、経路収集部５に対して指示する。これにより、経路収集部５は、プロセス生成部２によって指定された実行ファイルを実行するが、上述したように、この実行ファイルの実行は、ダミー実行として扱われる。その後、プロセス生成経路の収集といった特別な処理が行われる。
【００２９】
また、図４を用いて、経路リスト７の形式及び定義の一例について説明する。図４は、本実施の形態１で用いられる経路リストの一例を示す図である。本実施の形態１では、経路リスト７は、図４に示す形式によって、各実行ファイルについての正しいプロセスの生成経路（正しい実行のされかた）を定義している。
【００３０】
図４の例では、経路リスト７は、実行ファイル［/d1/file3］が実行される場合には、［/d1/file1］⇒［/d1/file2］⇒［/d1/file3］の順序でプロセスが生成されることを、正しいプロセスの生成経路として保持している。また、経路リスト７は、実行ファイル［/d2/file5]が実行される場合には、[/d2/file4]⇒[/d2/file5]、または[/d2/file6]⇒[/d2/file5]のいずれかの順序でプロセスが生成されることを、正しいプロセスの生成経路として保持している。
【００３１】
また、図４に示すように、経路リスト７は、各実行ファイルの正当性を保証するため、各ファイルのハッシュ値（例えば、ハッシュ関数ＭＤ５などにより計算で求められる値）を、ファイル名とともに保持している。
【００３２】
そして、プロセス生成経路リスト７に保持すべき情報（各実行ファイルのプロセスの生成経路）の収集は、上述したように、経路収集部５によって、検査対象となる実行ファイルを事前に一度実行することにより、即ち、ダミー実行を行なうことによって行なわれる。
【００３３】
本実施の形態１では、経路収集部５は、プロセス生成部２によって実行ファイルが指定されると、図４に示す経路リスト７に生成経路を記録するため、ダミー実行を行い、指定された実行ファイルのプロセスからその上位のプロセスを順次辿る。そして、経路収集部５は、各プロセスについて、実行ファイルの名称とそのハッシュ値とを取得する。更に、経路収集部５は、取得した実行ファイルの名称とハッシュ値とを、正当な経路の定義として、経路リスト７に記録する。
【００３４】
具体的には、実行ファイルの名称（例えば、［/d1/file3］）が収集対象ファイルリスト４（図２参照）に追加されるとする。この場合、プロセス生成部２は、実行ファイル［/d1/file3］の実行を経路収集部５に指示する。これにより、当該ファイルの実行はダミー実行として扱われる。そして、経路収集部５によって、収集対象となる実行ファイルに対してダミー実行が行なわれると、通常のプロセス生成を経て、順次、親子関係が構築される。
【００３５】
例えば、図５に示すように、以下のプロセス生成順序で、親子関係が構築される。図５は、プロセスの親子関係の一例を示す図である。また、本実施の形態１においては、後述するように、図５に示すプロセスの生成経路の収集は、実行ファイル［/d1/file3］のプロセス開始処理に付随して行なわれる。
［/d1/file1］⇒［/d1/file2］⇒［/d1/file3］
【００３６】
また、本実施の形態１では、プロセス生成部２は、経路リスト７にアクセスし、実行予定にある実行ファイルのエントリが経路リスト７に存在しているかどうかを判定する。そして、プロセス生成部２は、存在している場合に、経路検証部６に対して、実行予定にある実行ファイルの検証を指示する。
【００３７】
経路検証部６は、本実施の形態１では、プロセス生成部２によって実行ファイルが指定されると、指定された実行ファイルのプロセスからその上位のプロセスまでの、実行ファイルの名称とそのハッシュ値とが、経路リスト７に記録されているかどうかを判定する。そして、経路検証部６は、実行ファイルの名称とそのハッシュ値とが記録されている場合は、正当な経路であると判定する。また、経路検証部６は、正当な生成経路であると判定する場合は、プロセス生成部２に実行ファイルの実行を許可する。
【００３８】
この結果、経路検証部６によって、プロセス生成経路が一致したことが確認された場合にのみ、コンピュータ１において実行ファイルの実行が許可されることになる。このため、誤ってファイルが置換されたとき、及び不正なプログラムを経由して実行ファイルの実行が行われようとしたときに、プログラムの実行が防止されることになる。
【００３９】
［装置動作］
次に、本発明の実施の形態１における検証装置１０の動作について図６及び図７を用いて説明する。以下の説明においては、適宜図１〜図４を参酌する。また、本実施の形態１では、検証装置１０を動作させることによって、検証方法が実施される。よって、本実施の形態１における検証方法の説明は、以下の検証装置１０の動作説明に代える。
【００４０】
図６は、本発明の実施の形態１における検証装置の動作を示すフロー図である。但し、本実施の形態１において、検証装置１０による処理は、コンピュータ１におけるプロセスの開始処理に付随して行われる。このため、図６は、コンピュータ１全体の動作を示している。
【００４１】
また、図６において、プロセスの開始処理は、実行ファイルのロードを行う処理（ステップＳ３０）と、ロードした実行ファイルを新たなプロセスとして実行する処理（ステップＳ４０）とを含む。コンピュータ１においては、このプロセス開始処理の実行後に、コンピュータ１による実際の処理が行われる。なお、図６においては、プロセス開始処理の後の処理については省略している。
【００４２】
また、本実施の形態１では、検証装置１０による処理は、生成経路の収集処理と生成経路の検証処理とに分けられ、図６の例では、これらの処理は、実行ファイルのロード処理（ステップＳ３０）の直前に実行される。
【００４３】
図６に示すように、最初に、プロセス生成部２は、収集対象リスト４にアクセスし、実行を開始しようとしている実行ファイルが経路の収集対象であるかどうかを判定する（ステップＳ１０）。具体的には、プロセス生成部２は、プロセス生成経路収集対象ファイルリスト４に、実行を開始しようとしている実行ファイル（例えば、［/d1/file3］）が記述されているかどうかを判定する。
【００４４】
ステップＳ１０の判定の結果、実行を開始しようとしている実行ファイルが経路の収集対象である場合は、プロセス生成部２は、経路収集部５に、実行ファイルを指定して、経路収集の実行を指示する。これにより、経路収集部５は、プロセスの生成経路を取得（ステップＳ１１）し、取得した生成経路を経路リストに追加する（ステップＳ１２）。
【００４５】
なお、ステップＳ１１で行われる処理は、共通処理であり、ステップＳ２１においても同様の処理が呼び出されて実行される。また、ステップＳ１２の実行後、検証装置１０における処理は終了し、その後、再度ステップＳ１０が実行される。
【００４６】
ここで、ステップＳ１１の詳細について、図７を用いて説明する。図７は、図６に示すプロセスの生成経路の取得処理を詳細に示すフロー図である。
【００４７】
図７に示すように、経路収集部５は、実行ファイルのプロセス（自プロセス）から上位のプロセス（親プロセス）までを繰り返し条件に設定する（ステップＳ１１１）。次に、経路収集部５は、自プロセスから親プロセスまでを順次辿り、プロセス毎に、各プロセスの情報として、実行ファイルの名称及びそのハッシュ値と取得する（ステップＳ１１２）。その後、取得された実行ファイルの名称とハッシュ値とは、プロセスの生成経路としてステップＳ１２に返却される（ステップＳ１１３）。
【００４８】
また、ステップＳ１２では、ステップＳ１１３で返却された、各プロセスの実行ファイルの名称とハッシュ値とが、経路リスト７に追加され、保持される。このようにして、プロセスの生成経路が追加された経路リスト７は、後に実行ファイルの妥当性の検証時において、正しいプロセスの生成経路を記録しているリストとして用いられる。
【００４９】
具体的には、図６に示す処理が、実行ファイル［/d1/file3］のプロセス開始処理であるとすると、図５に示した親子関係が呼び出される。つまり、経路収集部５は、始めに、自プロセスである［/d1/file3］の情報収集を行い、実行ファイルの名称「d1/file3」とそのファイルのハッシュ値「hash-3」とを取得する。次に、経路収集部５は、実行ファイル［d1/file3］の親である［/d1/file2］の情報収集を行い、実行ファイルの名称「d1/file2」とそのファイルのハッシュ値「hash-2」とを取得する。更に、経路収集部５は、実行ファイル［d1/file2］の親である［/d1/file1］の情報収集を行い、実行ファイルの名称「d1/file1」とそのファイルのハッシュ値「hash-1」とを取得する。
【００５０】
このように、ステップＳ１１１〜Ｓ１１３において、経路収集部５は、親プロセスを順次辿る処理を実行し、図２に示した実行ファイル［/d1/file3］のエントリの情報を収集する。なお、同じ実行ファイルが、複数の実行経路を経て実行される場合があるが、この場合には、複数の生成経路が記録されれば良い。
【００５１】
また、この場合、収集対象定義部３は、実行経路の数だけ、当該実行ファイルを収集対象リスト４に記述するため、経路収集部５は、各実行経路について、ダミー実行を行い、実行経路毎に情報を収集する。具体的には、図４に示す実行ファイル［/d1/file5］のエントリの情報は、複数の実行経路が存在する場合に収集された情報である。
【００５２】
ところで、ステップＳ１０の判定結果、実行を開始しようとしている実行ファイルが経路の収集対象でない場合は、プロセス生成部２は、実行を開始しようとしている実行ファイルのエントリが経路リスト７に存在しているかどうかを判定する（ステップＳ２０）。
【００５３】
例えば、図７で説明したように、実行を開始しようとしている実行ファイルが、実行ファイル［/d1/file3］であるとすると、プロセス生成部２は、経路リスト７（図４参照）に、実行ファイル［/d1/file3］のエントリが存在しているかどうかを判定する。
【００５４】
ステップＳ２０の判定の結果、実行ファイルのエントリが経路リスト７に存在していない場合は、プロセス生成部２は、ステップＳ３０を実行する。一方、ステップＳ２０の判定の結果、実行ファイルのエントリが経路リスト７に存在している場合は、経路検証部６に実行ファイルを指定して、経路検証の実行を指示する。これにより、経路検証部６は、実行ファイルの妥当性を検証するため、まず、プロセスの生成経路を取得する（ステップＳ２１）。
【００５５】
具体的には、ステップＳ２１では、経路検証部６は、図７に示したステップＳ１１１〜Ｓ１１４と同様の処理を実行し、自プロセスから親プロセスを順次辿り、プロセス毎に、各プロセスの情報として、実行ファイルの名称及びそのハッシュ値と取得する。ステップＳ２１においても、図５に示した親子関係が呼びされる。
【００５６】
次に、経路検証部６は、ステップＳ２１で取得したプロセスの生成経路（実行ファイルの名称及びハッシュ値）が、正しい生成経路であるかどうかを判定する（ステップＳ２２）。具体的には、経路検証部６は、経路リスト７に記録されている情報に、ステップＳ２１で取得した全ての実行ファイルの名称及びハッシュ値が一致するかどうかを判定する。
【００５７】
ステップＳ２１の判定の結果、正しい生成経路である場合は、実行ファイルは正しいプロセス生成を経て起動されていることを意味するので、経路検証部６は、プロセス生成部２にそのことを通知する。その結果、プロセス生成部２によって、ステップＳ３０が実行される。
【００５８】
一方、ステップＳ２１の判定の結果、正しい生成経路でない場合は、実行ファイルは正しいプロセス生成を経て起動されていないことを意味するので、経路検証部６は、プロセスの開始が失敗したことをプロセス生成部２に通知し、異常終了とする。
【００５９】
以上のように、ステップＳ１０〜Ｓ２３の処理が実行されると、プロセスの正しい生成経路及び正しいファイルの情報（ファイル名及びハッシュ値）が取得され、これらを用いて、実行の正しさが検証される。この結果、実行ファイルが誤って置換された場合、不正なプログラムを経由して実行ファイルが実行されようとした場合に、プログラムの実行が防止される。
【００６０】
［実施の形態１における効果］
以上のように本実施の形態１によれば、以下の効果が期待できる。
【００６１】
まず、本実施の形態１によれば、実行ファイルが置換されたときに、その実行を防止することができる。これは、ハッシュ値を検証に用いることにより、正しいプログラムのみを動作させる安全な環境を作り出すことができるからである。たとえば、誤ってプログラムを他のプログラムと置換した場合、悪意あるユーザーが不正にプログラムを置換した場合などに、その実行を防止することができる。
【００６２】
また、本実施の形態１によれが、不正な実行ルートを経由して、実行ファイルが実行されることを防止することができる。これは、プロセスの生成経路を構成する全ての実行ファイルの妥当性が検証され、正しい実行ルートのみで動作が行われる安全な環境が作られているからである。たとえば、悪意あるユーザーが、親プロセスの実行ファイルを置換し、不正に実行ファイルを起動しようとした場合に、その実行を阻止することができる。
【００６３】
また、本実施の形態１によれば、正しい実行ルートについての情報（アクセス条件）の収集が効率的に行うことができる。これは、情報収集の目的で事前にダミー実行を行うフェーズが設けられ、更に、情報収集の対象となる実行ファイルが指定されたものに限定されるからである。
【００６４】
［プログラム］
本実施の形態１におけるプログラムは、コンピュータに、図６に示すステップＳ１１〜Ｓ１２、Ｓ２１〜Ｓ２３、図７に示すＳ１１１〜Ｓ１１３を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態１における検証装置１０と検証方法とを実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、経路収集部５、経路検証部６として機能し、処理を行なう。また、コンピュータに備えられたハードディスク等の記憶装置は、記憶部９として機能する。
【００６５】
［変形例１］実行ファイルのディスクアドレスの利用：
上述の実施の形態１では、経路リスト７の各実行ファイルの情報として、実行ファイルの名称及びハッシュ値が用いられているが、本実施の形態１はこれに限定されない。本変形例１では、各実行ファイルの情報として、実行ファイルの格納されたディスク上の物理アドレスを、利用することもできる。
【００６６】
変形例１は、一度ファイルを作成するとファイルの格納物理アドレスが変化しないシステムに有用である。例えば、ディスク再配置（デフラグ）の発生しないメインフレームにおいて有用である。また、物理的格納位置の変化しない記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory））から実行ファイルをロードする場合にも有用である。
【００６７】
［変形例２］兄弟プロセスの検証：
上述の実施の形態１では、親プロセスのみを検証対象とする構成を示したが、本実施の形態１はこれに限定されない。本変形例２では、兄弟プロセス（共通の親プロセスから生成されるプロセス）も収集対象及び検証対象とすることができる。
【００６８】
つまり、本変形例２では、プロセスの生成経路を収集する場合に、親プロセスを辿るだけでなく、兄弟プロセスも収集対象として扱われる。そして、関連するプロセスが全て正しいと確認されたときのみに、実行が許諾されるようにすれば、より安全な実行環境の確立が実現される。
【００６９】
［変形例３］収集処理／検証処理の追加位置
上述の実施の形態１では、プロセスの生成経路の取得処理と実行可否を判断する検証処理とが、実行ファイルのロード処理直前に追加されている例（すなわち、カーネル処理への追加例）が示されている。但し、本実施の形態１は、これに限定されず、実行ファイルがプロセスとして実行された後に、プロセスの生成経路の取得処理と実行可否を判断する検証処理とが実行される態様であっても良い。この態様は、カーネル処理ではなく、ユーザー処理による収集処理と検証処理との実行が求められる場合に有用である。
【００７０】
［変形例４］スクリプトと実行ファイルとの呼出し関係
上述の実施の形態１では、プロセスとプロセスとの間の生成関係を検証する構成が示されているが、本実施の形態１はこれに限定されず、スクリプトと実行ファイルとの呼出し関係が検証に用いられる態様であっても良い。
【００７１】
具体的には、スクリプトの情報（ファイル名、ハッシュ値）と、実行ファイルの情報（ファイル名、ハッシュ値）とが、正しい経路として取得され、この経路が、実行時に検証される態様であっても良い。この態様では、正しいスクリプトのみから正しい実行ファイルのみが実行されるので、安全な実行環境の確立が実現可能である。
【００７２】
（実施の形態２）
次に、本発明の実施の形態２における、検証装置、検証方法、及びプログラムについて、図８〜図１１を参照しながら説明する。
【００７３】
［装置構成］
最初に、本発明の実施の形態２における検証装置の構成について説明する。本実施の形態２における検証装置は、図１及び図２に示した実施の形態１における検証装置１０と同様に構成されている。また、以下の説明では、適宜図１及び図２を参照する。
【００７４】
プロセスの生成経路が深い場合（多くのプロセスを経由して実行が行われる場合）に、実行ファイルの実行時に全ての親プロセスのパスを遡る方式は、全ての親プロセスの実行ファイルへのアクセス権限を必要とする。このため、当該方式には、適用が困難なケースも存在する。本実施の形態２では、プロセスの生成経路を保持する形式を変更（正規化）して、直接の親プロセスと自プロセス（子プロセス）とに関する情報のみで、実行ファイルの実行可否を検証できるようにする。
【００７５】
このため、本実施の形態２においては、経路収集部５（図１及び図２参照）は、収集したプロセスの生成経路に対して正規化処理を行って、親プロセスと自プロセスとの関係のみを含む複数の生成経路を新たに生成する。また、経路収集部５は、新たに生成した生成経路を経路リスト７に記録する。なお、本実施の形態２における検証装置は、経路収集部５の機能以外の点では、実施の形態１における検証装置１０と同様である。
【００７６】
ここで、図８（ａ）及び（ｂ）を用いて、本実施の形態２で行なわれる正規化処理について説明する。図８（ａ）は、正規化前の経路リストの一例を示す図であり、図８（ｂ）は、正規化後の経路リストの一例を示す図である。
【００７７】
図８（ａ）に示すように、正規化前の経路リスト７ａのデータ項目は、「実行ファイル名」と「プロセス生成経路」との２つである。これに対して、図８（ｂ）に示すように、正規化後の経路リスト７ｂのデータ項目には、「実行ファイル名」及び「プロセス生成経路」に加えて、「経路識別子」が追加される。
【００７８】
また、図８（ｂ）に示すように、正規化後の経路リスト７ｂにおいて、「プロセス生成経路」には、２ノード以上で構成された生成関係は記録されないようになっている。その代わりに、プロセスの生成関係の表現形式として、親の実行ファイルの名称と子の実行ファイルの名称とを用いた表現形式に加え、経路識別子と子の実行ファイルの名称とを用いた表現形式も許可されている。
【００７９】
具体的には、図８（ｂ）において、正規化後の経路リスト７ｂの経路識別子の［１］、［１，２］、［１，２，３］、［１，２，３，４］の４つのエントリは、正規化前の経路リスト７ａの実行ファイル［/d1/file4］の１つ目の生成経路「(/d1/file1, hash-1) ⇒ (/d1/file2, hash-2) ⇒ (/d1/file3, hash-3) ⇒ (/d1/file4, hash-4)」を正規化して得られている。
【００８０】
例えば、経路識別子［１］は、実行ファイル［/d1/file1］の生成経路、即ち、実行ファイル［/d1/file1］は、親プロセスを持たずに生成されて良いことを表現している。また、経路識別子[１，２]は、実行ファイル［/d1/file2］の生成経路、即ち、経路識別子［１］の生成経路を経て、実行ファイル［/d1/file2］が生成されることを表現している。これは、経路識別子［１］と［１，２］とを合わせると、［/d1/file1］=>［/d1/file2］の生成経路を経て、実行ファイル［/d1/file2］が生成されることを意味している。
【００８１】
同様に、経路識別子［１，２，３］は、実行ファイル［/d1/file3］の生成経路、即ち、経路識別子［１，２］の生成経路を経て、実行ファイル［/d1/file3］が生成されるべきことを表現している。また、同様に、経路識別子［１，２，３，４］は、実行ファイル［/d1/file4］の生成経路、即ち、経路識別子［１，２，３］の生成経路を経て、実行ファイル［/d1/file4］が生成されるべきことを表現している。
【００８２】
また、図８（ｂ）に示すように、実行ファイル［/d1/file4］の生成経路として、複数の生成経路が存在している。具体的には、図８（ｂ）の例では、［Ｘ］、［Ｘ，２］、［Ｘ，２，３］、［Ｘ，２，３，４］の生成経路群によって構築された以下の生成経路も、実行ファイル［/d1/file4］の生成経路として正しいことが表現されている。
「(/d1/fileX, hash-X) ⇒ (/d1/file2, hash-2) ⇒ (/d1/file3, hash-3) ⇒ (/d1/file4, hash-4)」
【００８３】
［装置動作］
次に、本発明の実施の形態２における検証装置の動作について図９〜図１１を用いて説明する。以下の説明においては、適宜図１、２、８（ａ）及び（ｂ）を参酌する。また、本実施の形態２では、検証装置を動作させることによって、検証方法が実施される。よって、本実施の形態２における検証方法の説明も、以下の検証装置の動作説明に代える。
【００８４】
図９は、本発明の実施の形態２における検証装置の動作を示すフロー図である。但し、本実施の形態２において、検証装置による処理は、コンピュータ１（図１及び図２参照）におけるプロセスの開始処理に付随して行われる。このため、図９も、図６と同様に、コンピュータ１全体の動作を示している。
【００８５】
また、図９において、プロセスの開始処理は、実行ファイルのロードを行う処理（ステップＳ７０）と、ロードした実行ファイルを新たなプロセスとして実行する処理（ステップＳ８０）とを含む。コンピュータ１においては、このプロセス開始処理の実行後に、コンピュータ１による実際の処理が行われる。なお、図９においては、プロセス開始処理の後の処理については省略している。
【００８６】
また、本実施の形態２では、検証装置による処理は、生成経路の収集処理（正規化処理を含む）と生成経路の検証処理とに分けられ、図９の例では、これらの処理は、実行ファイルのロード処理（ステップＳ７０）の直前に実行される。
【００８７】
図９に示すように、最初に、プロセス生成部２は、収集対象リスト４にアクセスし、実行を開始しようとしている実行ファイルが経路の収集対象であるかどうかを判定する（ステップＳ５０）。具体的には、プロセス生成部２は、プロセス生成経路収集対象ファイルリスト４に、実行を開始しようとしている実行ファイルが記述されているかどうかを判定する。
【００８８】
ステップＳ５０の判定の結果、実行を開始しようとしている実行ファイルが経路の収集対象である場合は、プロセス生成部２は、経路収集部５に、実行ファイルを指定して、経路収集の実行を指示する。これにより、経路収集部５は、プロセスの生成経路を取得（ステップＳ５１）し、取得した生成経路に対して正規化処理を行ない（ステップＳ５２）、その後、正規化処理後の生成経路を経路リストに追加する（ステップＳ５３）。
【００８９】
ここで、ステップＳ５２の詳細については、図１０を用いて説明する。図１０は、図９に示すプロセスの生成経路の正規化処理を詳細に示すフロー図である。なお、ステップＳ５１は、図６及び図７に示したステップＳ１１と同様のステップであるので、本実施の形態２においては、その詳細説明は省略する。
【００９０】
図１０に示すように、経路収集部５は、まず、先頭のプロセスについて、当該プロセスのプロセス情報（実行ファイルの名称及びハッシュ値）のみからなるエントリを経路リスト７ｂに追加する（ステップＳ５２１）。次に、経路収集部５は、追加したエントリに対して新たな経路識別子を付与する（ステップＳ５２２）。ステップＳ５２１及びＳ５２２によって、例えば、図８（ｂ）の例に示すように、経路識別子［１］のエントリが作成される。
【００９１】
次に、経路収集部５は、先頭から数えて２プロセス目から終端のプロセスまでを繰り返しの条件とする（ステップＳ５２３）。そして、経路収集部５は、直前の経路識別子と現在のプロセスのプロセス情報（実行ファイルの名称及びハッシュ値）とを用いて、経路リスト７ｂに新たなエントリを追加する（ステップＳ５２４）。なお、プロセス情報とは、各実行ファイルが有している特有の情報であり、本実施の形態２においては、プロセス情報には、ファイルの名称、ハッシュ値、経路情報が含まれる。
【００９２】
次に、経路収集部５は、追加したエントリに対して新たな経路識別子を付与する（ステップＳ５２５）。ステップＳ５２４及びＳ５２５が設定された数だけ繰り返されると、正規化後の経路リスト７ｂがステップＳ５３に返却される（ステップＳ５２６）。
【００９３】
具体的には、図８（ｂ）の例では、２プロセス目のプロセス情報［/d1/file2, hash-2］からは、正規化後の経路識別子［１，２］のエントリが作成される。また、３プロセス目の情報［/d1/file3, hash-3］からは、正規化後の経路識別子［１，２，３］のエントリが作成される。更に、４プロセス目（終端プロセス）の情報［/d1/file4, hash-4］からは、正規化後の経路識別子［１，２，３，４］のエントリが作成される。
【００９４】
また、上述したステップＳ５０の判定結果、実行を開始しようとしている実行ファイルが経路の収集対象でない場合は、プロセス生成部２は、実行を開始しようとしている実行ファイルのエントリが経路リスト７ｂに存在しているかどうかを判定する（ステップＳ６０）。
【００９５】
ステップＳ６０の判定の結果、実行ファイルのエントリが経路リスト７ｂに存在していない場合は、プロセス生成部２は、ステップＳ７０を実行する。一方、ステップＳ６０の判定の結果、実行ファイルのエントリが経路リスト７ｂに存在している場合は、経路検証部６に実行ファイルを指定して、経路検証の実行を指示する。これにより、経路検証部６は、指定された実行ファイルに基づいて、プロセスの生成経路が正しい生成経路であるかどうかを判定する（ステップＳ６１）。
【００９６】
なお、実施の形態１では、図６においてステップＳ２１で示したように、経路検証部６は、実行ファイルの妥当性を検証するため、まず、プロセスの生成経路が取得されていたが、本実施の形態２においては、この処理を実行する必要はない。本実施の形態２では、経路検証部６は、現在の処理対象のプロセスのプロセス情報（実行ファイルの名称、ハッシュ値）と、親プロセスのプロセス情報（親プロセスの生成経路を示す経路識別子）とを用いた検証を行なえば良いからである。
【００９７】
具体的には、経路検証部６は、指定された実行ファイルのプロセスに親プロセスが存在していない場合は、自プロセスのプロセス情報（実行ファイルの名称及びハッシュ値）を経路リスト７ｂに照合して判定を行なう（経路識別子［１］を用いた判定）。
【００９８】
また、経路検証部６は、指定された実行ファイルのプロセスに親プロセスが存在し、更に親プロセスに経路識別子が付与されている場合（後述のステップＳ６３参照）は、親プロセスの経路識別子と自プロセスのプロセス情報（ファイルの名称及びハッシュ値）を経路リスト７ｂに照合して判定を行なう（［１，２］、［１，２，３］、［１，２，３，４］を用いた判定）。
【００９９】
ステップＳ６１の判定の結果、正しい生成経路である場合は、実行ファイルは正しいプロセス生成を経て起動されていることを意味する。従って、経路検証部６は、実行ファイルのプロセス情報に、当該プロセスがどのような生成経路で生成されたかを示す情報（正しい経路で生成されたことを示す情報）として、該当する経路識別情報を付加する（ステップＳ６３）。なお、ステップＳ６３でプロセス情報に付加された経路識別情報は、その後の子プロセスの開始処理において、実行可否の検証（ステップＳ６１）に利用される。
【０１００】
その後、経路検証部６は、正しい生成経路であることをプロセス生成部２に通知する。その結果、プロセス生成部２によって、ステップＳ７０が実行される。
【０１０１】
一方、ステップＳ６１の判定の結果、正しい生成経路でない場合は、実行ファイルは正しいプロセス生成を経て起動されていないことを意味するので、経路検証部６は、プロセスの開始が失敗したことをプロセス生成部２に通知し、異常終了とする。
【０１０２】
以上のステップＳ６１〜Ｓ６３の処理が繰り返し実行されると、最終的に目的となる実行ファイルが実行されるまで、正しい生成経路でプロセスが生成されてゆくことが保証される。
【０１０３】
ここで、図１１を用いて、実施の形態２における実行ファイルの検証処理について具体例を挙げて説明する。図１１は、本実施の形態２で検証されるプロセスの親子関係の一例を示す図である。
【０１０４】
図１１に示すように、実行ファイル［/d1/file1］の起動時の検証では、自プロセスのプロセス情報（/d1/file1 と hash-1）のみで検証が行なわれる。この場合、プロセス情報は、経路識別子［１］のプロセス生成経路（図８（ｂ）参照）に該当するので、検証は成功する。そして、検証済の経路情報として、経路識別子［１］がプロセス情報として記録される。
【０１０５】
実行ファイル［/d1/file2］の起動時の検証では、自プロセスの情報（/d1/file2 と hash-2）と、親プロセスの経路識別子［１］とによって検証が行なわれる。この場合、プロセス情報は、経路識別子［１，２］のプロセス生成経路に該当するので、検証は成功する。そして、検証済の経路情報として、経路識別子［１，２］がプロセス情報に記録される。
【０１０６】
実行ファイル［/d1/file3］の起動時の検証では、自プロセスの情報（/d1/file3 と hash-3）と、親プロセスの経路識別子［１，２］とによって検証が行なわれる。この場合、プロセス情報は、経路識別子［１，２，３］のプロセス生成経路に該当するので、検証は成功する。そして、検証済の経路情報として、経路識別子［１，２，３］がプロセス情報に記録される。
【０１０７】
実行ファイル［/d1/file4］の起動時の検証では、自プロセスの情報（/d1/file4 と hash-4）と、親プロセスの経路識別子［１，２，３］とによって検証が行なわれる。この場合、プロセス情報は、経路識別子［１，２，３，４］のプロセス生成経路に該当するので、検証は成功する。そして、検証済の経路情報として、経路識別子［１，２，３，４］がプロセス情報に記録される。
【０１０８】
［実施の形態２における効果］
このように、本実施の形態２では、各プロセスの検証時において、自プロセス情報（実行ファイルの名称とハッシュ値）と、親のプロセス情報（経路識別子）とを用いて検証を行うことができる。従って、検証処理において、親プロセスより以前のプロセスに遡ってプロセス情報を取得する必要がないので、よりいっそう効率的な検証が実現される。
【０１０９】
［プログラム］
本実施の形態２におけるプログラムは、コンピュータに、図９に示すステップＳ５１〜Ｓ５３、Ｓ６１〜Ｓ６３、図１０に示すＳ５２１〜Ｓ５２６を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態２における検証装置と検証方法とを実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、経路収集部５、経路検証部６として機能し、処理を行なう。また、コンピュータに備えられたハードディスク等の記憶装置は、記憶部９として機能する。
【０１１０】
ここで、実施の形態１及び２におけるプログラムを実行することによって、検証装置を実現するコンピュータについて図１２を用いて説明する。図１２は、本発明の実施の形態１及び２における検証装置を実現するコンピュータの一例を示すブロック図である。
【０１１１】
図１２に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。なお、図１２におけるコンピュータ１１０は、図１及び図２に示したコンピュータ１に相当する。
【０１１２】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【０１１３】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【０１１４】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【０１１５】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【０１１６】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１５）によって表現することができるが、以下の記載に限定されるものではない。
【０１１７】
（付記１）
コンピュータ上で実行される実行ファイルを検証するための装置であって、
指定された実行ファイルを予め実行して、指定された前記実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リストに記録する、経路収集部と、
指定された実行ファイルについて、その経路が、前記経路リストに記録された正当な経路であるかどうかを判定し、正当な経路であると判定する場合に、指定された前記実行ファイルの実行を許可する、経路検証部と、
を備えていることを特徴とする検証装置。
【０１１８】
（付記２）
前記経路収集部が、経路として、指定された前記実行ファイルのプロセスについての生成に至るまでの生成経路を収集し、収集した前記生成経路を、経路リストに記録し、
前記経路検証部が、指定された前記実行ファイルのプロセスについての生成に至るまでの生成経路が、経路リストに記録された正当な生成経路であるかどうかを判定する、
付記１に記載の検証装置。
【０１１９】
（付記３）
前記経路収集部が、前記生成経路の収集の際に、指定された前記実行ファイルのプロセスからその上位のプロセスまでの各プロセスについて、実行ファイルの名称とそのハッシュ値とを取得し、そして、取得した実行ファイルの名称とハッシュ値とを、正当な経路の定義として、経路リストに記録し、
前記経路検証部が、指定された前記実行ファイルのプロセスからその上位のプロセスまでの、実行ファイルの名称とそのハッシュ値とが、前記経路リストに記録されているかどうかを判定し、記録されている場合に正当な生成経路であると判定する、
付記２に記載の検証装置。
【０１２０】
（付記４）
前記コンピュータが、
生成経路の収集の対象として指定されたプロセスを記録する収集対象リストに基づいて、前記経路収集部に対して前記実行ファイルを指定し、
前記経路リストに記録されている実行ファイルを実行する場合に、前記経路検証部に対して、実行の対象となっている前記実行ファイルを指定する、
付記２または３に記載の検証装置。
【０１２１】
（付記５）
前記経路収集部が、収集した生成経路に対して正規化処理を行って、親プロセスと子プロセスとの関係のみを含む複数の生成経路を生成し、生成した生成経路を前記経路リストに記録する、
付記２〜４のいずれかに記載の検証装置。
【０１２２】
（付記６）
コンピュータ上で実行される実行ファイルを検証するための方法であって、
（ａ）指定された実行ファイルを予め実行して、指定された前記実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リストに記録する、ステップと、
（ｂ）指定された実行ファイルについて、その経路が、前記経路リストに記録された正当な経路であるかどうかを判定し、正当な経路であると判定する場合に、指定された前記実行ファイルの実行を許可する、ステップと、
を有することを特徴とする検証方法。
【０１２３】
（付記７）
前記（ａ）のステップで、経路として、指定された前記実行ファイルのプロセスについての生成に至るまでの生成経路を収集し、収集した前記生成経路を、経路リストに記録し、
前記（ｂ）のステップで、指定された前記実行ファイルのプロセスについての生成に至るまでの生成経路が、経路リストに記録された正当な生成経路であるかどうかを判定する、
付記６に記載の検証方法。
【０１２４】
（付記８）
前記（ａ）のステップで、前記生成経路の収集の際に、指定された前記実行ファイルのプロセスからその上位のプロセスまでの各プロセスについて、実行ファイルの名称とそのハッシュ値とを取得し、そして、取得した実行ファイルの名称とハッシュ値とを、正当な経路の定義として、経路リストに記録し、
前記（ｂ）のステップで、指定された前記実行ファイルのプロセスからその上位のプロセスまでの、実行ファイルの名称とそのハッシュ値とが、前記経路リストに記録されているかどうかを判定し、記録されている場合に正当な生成経路であると判定する、
付記７に記載の検証方法。
【０１２５】
（付記９）
前記コンピュータが、
生成経路の収集の対象として指定されたプロセスを記録する収集対象リストに基づいて、前記（ａ）のステップにおいて前記実行ファイルを指定し、
前記経路リストに記録されている実行ファイルを実行する場合に、前記（ｂ）のステップにおいて、実行の対象となっている前記実行ファイルを指定する、
付記７または８に記載の検証方法。
【０１２６】
（付記１０）
前記（ａ）のステップにおいて、収集した生成経路に対して正規化処理を行って、親プロセスと子プロセスとの関係のみを含む複数の生成経路を生成し、生成した生成経路を前記経路リストに記録する、
付記７〜９のいずれかに記載の検証方法。
【０１２７】
（付記１１）
コンピュータ上で実行される実行ファイルを前記コンピュータによって検証するためのプログラムであって、
前記コンピュータに、
（ａ）指定された実行ファイルを予め実行して、指定された前記実行ファイルについての経路を収集し、収集した経路を、正当な経路が定義された経路リストに記録する、ステップと、
（ｂ）指定された実行ファイルについて、その経路が、前記経路リストに記録された正当な経路であるかどうかを判定し、正当な経路であると判定する場合に、指定された前記実行ファイルの実行を許可する、ステップと、
を実行させるプログラム。
【０１２８】
（付記１２）
前記（ａ）のステップで、経路として、指定された前記実行ファイルのプロセスについての生成に至るまでの生成経路を収集し、収集した前記生成経路を、経路リストに記録し、
前記（ｂ）のステップで、指定された前記実行ファイルのプロセスについての生成に至るまでの生成経路が、経路リストに記録された正当な生成経路であるかどうかを判定する、
付記１１に記載のプログラム。
【０１２９】
（付記１３）
前記（ａ）のステップで、前記生成経路の収集の際に、指定された前記実行ファイルのプロセスからその上位のプロセスまでの各プロセスについて、実行ファイルの名称とそのハッシュ値とを取得し、そして、取得した実行ファイルの名称とハッシュ値とを、正当な経路の定義として、経路リストに記録し、
前記（ｂ）のステップで、指定された前記実行ファイルのプロセスからその上位のプロセスまでの、実行ファイルの名称とそのハッシュ値とが、前記経路リストに記録されているかどうかを判定し、記録されている場合に正当な生成経路であると判定する、
付記１２に記載のプログラム。
【０１３０】
（付記１４）
前記コンピュータが、
生成経路の収集の対象として指定されたプロセスを記録する収集対象リストに基づいて、前記（ａ）のステップにおいて前記実行ファイルを指定し、
前記経路リストに記録されている実行ファイルを実行する場合に、前記（ｂ）のステップにおいて、実行の対象となっている前記実行ファイルを指定する、
付記１２または１３に記載のプログラム。
【０１３１】
（付記１５）
前記（ａ）のステップにおいて、収集した生成経路に対して正規化処理を行って、親プロセスと子プロセスとの関係のみを含む複数の生成経路を生成し、生成した生成経路を前記経路リストに記録する、
付記１２〜１４のいずれかに記載のプログラム。
【産業上の利用可能性】
【０１３２】
以上のように本発明によれば、安全な実行環境を容易に実現でき、且つ、アクセス条件の収集を効率良く実行することができる。本発明は、コンピュータシステムにおいて、不正なアクセスを防止するための検証システムに有効である。
【符号の説明】
【０１３３】
１  コンピュータ
２  プロセス生成部
３  収集対象定義部
４  収集対象リスト
５  経路収集部
６  経路検証部
７  経路リスト
８  実行ファイル
９  記憶部
１０  検証装置
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2014164536.tif 000003
【図２】
2014164536.tif 000004
【図３】
2014164536.tif 000005
【図４】
2014164536.tif 000006
【図５】
2014164536.tif 000007
【図６】
2014164536.tif 000008
【図７】
2014164536.tif 000009
【図８】
2014164536.tif 000010
【図９】
2014164536.tif 000011
【図１０】
2014164536.tif 000012
【図１１】
2014164536.tif 000013
【図１２】
2014164536.tif 000014