(57)【要約】【課題】不審な挙動を示すプログラムを少ない解析装置で効率よく解析する。【解決手段】計算機プログラムである被疑検体を実行させる解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置は、前記解析実行装置の実行環境を構成する１つ以上の構成要素を保持し、前記挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算し、前記構成要素寄与率に基づいて１つ以上の前記構成要素を選択し、該構成要素を実行環境として前記解析実行装置に提供する。【選択図】図１
2015230601.tif 000002
【特許請求の範囲】
【請求項１】
計算機プログラムである被疑検体を実行させる解析実行装置における前記被疑検体の実行時の挙動ログを解析するプログラム解析装置であって、
前記解析実行装置の実行環境を構成する１つ以上の構成要素を保持し、
前記挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算し、
前記構成要素寄与率に基づいて１つ以上の前記構成要素を選択し、該構成要素を実行環境として前記解析実行装置に提供する
ことを特徴とする、プログラム解析装置。
【請求項２】
前記構成要素寄与率の高い構成要素を前記解析実行装置の実行環境として選択する
ことを特徴とする、請求項１に記載のプログラム解析装置。
【請求項３】
１つ以上の前記解析実行装置の実行環境を構成する各々の構成要素を取得し、該構成要素の構成要素寄与率を、前記解析実行装置の実行環境として前記構成要素を選択するための選択優先度とする、
ことを特徴とする、請求項２に記載のプログラム解析システム。
【請求項４】
１つ以上の前記解析実行装置の実行環境を構成する各々の構成要素のすべてを取得し、該構成要素のすべての構成要素寄与率の総和を、前記解析実行装置の実行環境として前記構成要素を選択するための選択優先度とする、
ことを特徴とする、請求項３に記載のプログラム解析装置。
【請求項５】
１つ以上の前記解析実行装置の実行環境を構成する各々の構成要素のすべてを取得し、該構成要素を分類する種別ごとに所定の重み付けをして、該重み付けした構成要素のすべての構成要素寄与率の総和を、前記解析実行装置の実行環境として前記構成要素を選択するための選択優先度とする、
ことを特徴とする、請求項３に記載のプログラム解析装置。
【請求項６】
前記構成要素寄与率の値の大きい構成要素を、上記計算機プログラムが悪用する可能性が高い構成要素とする
ことを特徴とする、請求項４または５のいずれかに記載のプログラム解析装置。
【請求項７】
前記構成要素寄与率の値の小さい構成要素を、上記計算機プログラムの動作を阻害する可能性が高い構成要素とする
ことを特徴とする、請求項４または５のいずれかに記載のプログラム解析装置。
【請求項８】
前記特定の挙動情報と前記構成要素寄与率とが対応付けられた構成要素寄与率の計算条件を保持し、
前記解析実行装置における被疑検体の実行時の前記挙動ログに前記特定の挙動情報が含まれる場合に、前記構成要素寄与率の計算条件をもとに、前記解析実行装置の実行環境を構成する各構成要素の構成要素寄与率を更新する
ことを特徴とする、請求項１に記載のプログラム解析装置。
【請求項９】
計算機プログラムである被疑検体を実行させる解析実行装置と、前記解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置と、を備えたプログラム解析システムにおけるプログラム解析方法であって、
前記解析実行装置が、実行環境を構成するための構成要素を選択して、１つ以上の前記被疑検体を実行する第１のステップと、
前記プログラム解析装置が、前記解析実行装置の実行環境を構成する１つ以上の構成要素を保持し、前記第１のステップにおける前記被疑検体の実行時の挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算する第２のステップと、
前記プログラム解析装置が、前記構成要素寄与率に基づいて１つ以上の前記構成要素を選択する第３のステップと、
前記プログラム解析装置が前記第３のステップにおいて選択された前記構成要素を実行環境として前記解析実行装置に提供する第４のステップと
を含むことを特徴とする、プログラム解析方法。
【請求項１０】
計算機プログラムである被疑検体を実行させる解析実行装置と、
前記解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置と、
を備えたプログラム解析システムであって、
前記解析実行装置は、
実行環境を構成するための構成要素を選択して、１つ以上の前記被疑検体を実行し、
前記プログラム解析装置は、
前記解析実行装置の実行環境を構成する１つ以上の構成要素を保持し、
前記挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算し、
前記構成要素寄与率に基づいて１つ以上の前記構成要素を選択し、該構成要素を実行環境として前記解析実行装置に提供する
ことを特徴とする、プログラム解析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム解析装置、プログラム解析方法及びプログラム解析システムに関し、プログラムの挙動を解析するプログラム解析装置、プログラム解析方法及びプログラム解析システムに適用して好適なるものである。
【背景技術】
【０００２】
昨今、日々多数の新種・亜種マルウェアが出現しており、それらの解析に人的・時間的コストがかかるため、対策までに時間がかかってしまうという現状がある。マルウェアの解析を高速に行う手法としては、被疑検体を計算機上で動作させる動的解析と呼ばれる手法がある。これは、マルウェアを動作させた計算機上で観測されたＡＰＩのコールログやネットワークアクセスログなどを元に、マルウェアの挙動を分析する手法である。
【０００３】
例えば、特許文献１に、上記した動的解析を利用した技術が開示されている。該技術では、複数のコンピュータ内で不審なプログラムを探索し、発見した不審プログラムを検査サーバに送信して検体解析装置で一元的に動的解析を実施する。これにより、複数のコンピュータ内にある同一の不審なプログラムを１台のサーバでまとめて解析できるため、解析の効率を高めることができる。
【０００４】
近年のマルウェアには、特定の構成要素を持つ実行環境でのみ動作するものや、逆に、特定の構成要素を持つ実行環境では動作しないものが存在する。
【０００５】
前者は、例えば、特定のアプリケーションの特定のバージョンのみに存在する脆弱性を突くマルウェアや、特定組織を対象にして、特定の言語のOS上のみで動作するマルウェアなどである。後者は、例えば、仮想化環境であることを検知した場合に不正な動作を中止することで自らの存在を隠ぺいするものや、ＯＳのユーザ権限管理機能などのセキュリティ機構が動作しているために不正な動作に失敗するものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１９８０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したような実行環境に依存して挙動を変える被疑検体を解析するためには、複数の異なる実行環境を用いて解析する必要がある。しかし、全ての異なる組み合わせの実行環境を順々に試すことは効率が悪く、それを解決する手段は特許文献１では開示されていない。
【０００８】
本発明は以上の点を考慮してなされたもので、不審な挙動を示すプログラムを少ない解析装置で効率よく解析することが可能なプログラム解析装置、プログラム解析方法及びプログラム解析システムを提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するために本発明においては、計算機プログラムである被疑検体を実行させる解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置であって、前記解析実行装置の実行環境を構成する１つ以上の構成要素を保持し、前記挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算し、前記構成要素寄与率に基づいて１つ以上の前記構成要素を選択し、該構成要素を実行環境として前記解析実行装置に提供することを特徴とする、プログラム解析装置が提供される。
【００１０】
また、かかる課題を解決するために本発明においては、計算機プログラムである被疑検体を実行させる解析実行装置と、前記解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置と、を備えたプログラム解析システムにおけるプログラム解析方法であって、前記解析実行装置が、実行環境を構成するための構成要素を選択して、１つ以上の前記被疑検体を実行する第１のステップと、前記プログラム解析装置が、前記解析実行装置の実行環境を構成する１つ以上の構成要素を保持し、前記第１のステップにおける前記被疑検体の実行時の挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算する第２のステップと、前記プログラム解析装置が、前記構成要素寄与率に基づいて１つ以上の前記構成要素を選択する第３のステップと、前記プログラム解析装置が前記第３のステップにおいて選択された前記構成要素を実行環境として前記解析実行装置に提供する第４のステップとを含むことを特徴とする、プログラム解析方法が提供される。
【００１１】
また、かかる課題を解決するために本発明においては、計算機プログラムである被疑検体を実行させる解析実行装置と、前記解析実行装置における被疑検体の実行時の挙動ログを解析するプログラム解析装置と、を備えたプログラム解析システムであって、前記解析実行装置は、実行環境を構成するための構成要素を選択して、１つ以上の前記被疑検体を実行し、前記プログラム解析装置は、前記解析実行装置の実行環境を構成する１つ以上の構成要素を保持し、前記挙動ログに含まれる特定の挙動に応じて、前記解析実行装置の実行環境の各構成要素が前記被疑検体の動作にどれだけ寄与しているかを示す構成要素寄与率を計算し、前記構成要素寄与率に基づいて１つ以上の前記構成要素を選択し、該構成要素を実行環境として前記解析実行装置に提供することを特徴とする、プログラム解析システムが提供される。
【発明の効果】
【００１２】
本発明によれば、不審な挙動を示すプログラムを少ない解析装置で効率よく解析して、プログラムの解析効率を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態に係るプログラム解析システムの構成を示すブロック図である。
【図２】同実施形態にかかる各装置のハードウェア構成を示すブロック図である。
【図３】同実施形態にかかる解析装置構成情報の一例を示す図表である。
【図４】同実施形態にかかる挙動抽出ロジックの一例を示す図表である。
【図５】同実施形態にかかる構成寄与率計算ルールの一例を示す図表である。
【図６】同実施形態にかかる脆弱性情報の一例を示す図表である。
【図７】同実施形態にかかる解析結果の一例を示す図表である。
【図８】同実施形態にかかる統合解析結果閲覧画面の一例である。
【図９】同実施形態にかかる検体解析の全体処理を示すフローチャートである。
【図１０】同実施形態にかかる解析装置選択優先度の計算処理を示すフローチャートである。
【図１１】同実施形態にかかる構成要素寄与率更新処理を示すフローチャートである。
【図１２】同実施形態にかかる構成要素の現寄与率を示す図表である。
【図１３】本発明の第２の実施形態に係るプログラム解析システムの構成を示すブロック図である。
【図１４】同実施形態にかかる実行状況監視・操作画面の一例である。
【図１５】同実施形態にかかるプログラム解析処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）第１の実施の形態
本実施の形態では、解析対象のプログラムが不審な挙動を示す実行環境の構成要素が事前にわからない場合に、検体を解析するための解析装置の数を減らすことを目的としている。本実施形態によれば、検体を解析する際に、少ない数の解析装置を用いて、より多数の解析装置を用いて解析した場合と同等の精度で解析することができる。これにより、従来技術と同等の精度の解析結果を得るために必要な解析実行回数を減少させることができるため、１つの検体に掛ける解析時間、あるいは、計算機リソースを減少させることができ、解析の効率が向上する。
【００１６】
（１−１）プログラム解析システムの構成
まず、図１を参照して、本実施の形態にかかるプログラム解析システムの構成について説明する。
【００１７】
図１に示すように、プログラム解析システムは、解析結果統合分析装置１０１０、解析管理装置１０３１及び解析実行装置１０３２がネットワーク１０５０を介して接続されている。以下、詳細を説明する。
【００１８】
解析結果統合分析装置１０１０は、解析管理装置１０３１から被疑検体の解析結果を取得し、解析結果を分析した上で再度被疑検体を解析するための解析装置イメージ１０４１を選択し、解析要求を行うための装置である。解析結果統合分析装置１０１０は、本発明のプログラム解析装置の一例である。
【００１９】
図１に示すように、解析結果統合分析装置１０１０は、解析装置選択機能１０１１，検体解析要求機能１０１２、解析結果受信機能１０１３、挙動抽出機能１０１４、構成要素寄与率計算機能１０１５、解析装置選択優先度計算機能１０１６、統合分析結果出力機能１０１７及び統合分析開始要求受付機能１０１８を有する。
【００２０】
解析装置選択機能１０１１は、後述する選択優先度に基づいて複数の解析装置イメージ１０４１から一つ以上の解析装置イメージ１０４１を選択する機能である。検体解析要求機能１０１２は、選択した解析装置イメージ１０４１を用いた検体の解析を解析管理装置１０３１に要求する機能である。解析結果受信機能１０１３は、解析実行結果を解析管理装置１０３１から取得する機能である。
【００２１】
挙動抽出機能１０１４は、解析結果から特定の挙動があったかを抽出する機能である。構成要素寄与率計算機能１０１５は、上記特定の挙動があった場合にその解析を実施した解析装置イメージ１０４１に含まれる構成要素の寄与率を計算する機能である。解析装置選択優先度計算機能１０１６は、各解析装置イメージ１０４１について、その各構成要素の寄与率を元に当該解析装置イメージ１０４１の選択優先度を計算する機能である。
【００２２】
統合分析結果出力機能１０１７は、本システムを利用して検体の解析を行う解析者に対して解析結果を出力する機能である。統合分析開始要求受付機能１０１８は、本システムを利用して検体の解析を行うための解析要求を受け付けるインタフェース（ＩＦ：Ｉｎｔｅｒｆａｃｅ）となる機能である。
【００２３】
また、解析結果統合分析装置１０１０は、上述した機能が利用する情報として、図１に示すように、解析装置構成情報１０２１、挙動抽出ロジック１０２２、構成寄与率計算ルール１０２３、脆弱性情報１０２４及び解析結果１０２５を保持する。
【００２４】
解析装置構成情報１０２１は、解析装置イメージ１０４１の構成情報である。挙動抽出ロジック１０２２は、検体が行い得る特定の挙動を定義し、かつ、解析結果１０２５にその定義した挙動が含まれるか否かを分析するためのロジックである。構成寄与率計算ルール１０２３は、特定の挙動が含まれていた場合にどのように構成寄与率を変更するかを定義する情報である。なお、構成寄与率計算ルール１０２３は、本発明の構成要素寄与率の計算条件の一例である。
【００２５】
脆弱性情報１０２４は、各構成要素の脆弱性に関する情報を保持する。これは例えば、ＣＶＥ（Ｃｏｍｍｏｎ  Ｖｕｌｎｅｒａｂｉｌｉｔｉｓ  ａｎｄ  Ｅｘｐｏｓｕｒｅｓ）などの情報を格納しておくことができる。なお、脆弱性情報１０２４は、本実施の形態において必ずしも必要な情報ではないが、脆弱性情報１０２４を保持することにより、統合分析結果出力機能１０１７が出力する統合解析結果の精度を高めることができる。
【００２６】
解析結果１０２５は、各解析装置イメージ１０４１を用いて解析実行装置１０３２が検体を実行した結果である。
【００２７】
解析管理装置１０３１は、解析の対象となる被疑検体の解析を１つ以上の解析実行装置１０３２に実施させ、解析の状況を管理するとともに、挙動のログを取得する機能である。被疑検体は、あらかじめ解析管理装置１０３１内に保管しておいてもよいし、可搬媒体やネットワーク１０５０を介して受信してもよい。
【００２８】
上記した解析管理装置１０３１における解析の状況の管理とは、検体の解析開始時に各解析実行装置１０３２の実行環境を、解析装置イメージ１０４１を用いて初期化したり、解析実行装置１０３２内で検体の動作が一定時間観測できなかった場合にタイムアウトとして解析処理を終了させたりする処理である。
【００２９】
上記した解析管理装置１０３１における挙動ログの取得とは、解析実行装置１０３２内でコールされたＡＰＩの情報を取得したり、解析実行装置１０３２が送信したネットワークパケットを取得したりする処理である。
【００３０】
本実施の形態において、解析管理装置１０３１は必須の構成要素ではなく、解析結果統合分析装置１０１０の検体解析要求機能１０１２と解析結果受信機能１０１３が、直接、解析実行装置１０３２の解析を管理するようにしてもよい。
【００３１】
解析管理装置１０３１を設けることにより、プログラム解析の管理や運用の利便性が向上する。これは、後述する複数の解析実行装置１０３２がそれぞれ様々な実装形態を取る場合があり、その場合、各実装形態に応じて、解析実行装置１０３２が、解析管理装置１０３１が行う解析管理の処理を実装する必要があるためである。なお、上記した複数の解析実行装置１０３２の実装形態が異なる場合、各実装形態に対応する解析管理装置１０３１を複数台設けてもよい。
【００３２】
解析実行装置１０３２は、被疑検体を動作させて挙動を観測するための装置であり、動的解析の分野において「サンドボックス」と呼ばれることもある。
【００３３】
解析実行装置１０３２は、解析装置イメージ１０４１のうち１つを選択して計算機としてデプロイし、被疑検体を実行する。通常、解析の実行後はデプロイした計算機を初期化する。これにより、以降の解析時に以前の解析時に実行させた検体の影響が出ないようにしている。ただし、例えば、新たな実行ファイルを生成してＯＳのスタートアップ処理に登録して次回の計算機の起動時にさらに異なる挙動を示す「ドロッパー」と呼ばれる検体など、複数回にわたって計算機を再起動することで解析を進める必要がある場合には、デプロイした計算機を敢えて初期化しない場合もある。
【００３４】
解析実行装置１０３２は、仮想計算機として解析装置イメージ１０４１をデプロイしてもよい。この場合、検体の挙動を観測するために仮想化システムが提供するＡＰＩも活用することができるため、高精度に挙動を観測できるという解析精度の向上効果を得ることがきる。また、同様に、計算機イメージの事前準備やデプロイや初期化などが容易に行えるという管理上の利便性向上効果や、一台の物理計算機上に複数の解析装置イメージ１０４１をデプロイできるという計算機リソースの運用効率向上効果なども得ることができる。
【００３５】
また、解析実行装置１０３２としては、仮想計算機ではなく、物理計算機上に解析装置イメージ１０４１をデプロイしてもよい。この場合、解析実行装置１０３２が仮想計算機であることを検知して自らの活動を止めて不審な挙動を隠ぺいするような高度なマルウェアについても、挙動を観測することが可能になる。
【００３６】
上記した解析実行装置１０３２が取りうる、仮想計算機あるいは物理計算機の構成は、本発明においていずれか一方のみを用いる必要はなく、複数の解析実行装置１０３２のうち何台かは仮想計算機であり、残りは物理計算機であるように、組み合わせて用いることも可能である。
【００３７】
解析装置イメージ１０４１は、解析実行装置１０３２を用いて被疑検体を動作させる際の計算機の構成を定義する情報である。
【００３８】
計算機の構成を定義する情報とは、検体を解析する際に、同一の実行環境の計算機を構築するために必要となる情報である。これは、計算機のＣＰＵアーキテクチャ、一時記憶容量、主記憶容量、オペレーティングシステムの製品名とバージョン名、全ての導入済みミドルウェアやアプリケーションの名称とバージョン名、上記全ての設定情報、一時記憶装置や主記憶装置に情報を保持している場合はそれらの内容などを含む。
【００３９】
仮想計算機として解析実行装置１０３２にデプロイするための解析装置イメージ１０４１としては、仮想計算機イメージを利用してもよい。物理計算機として解析実行装置１０３２にデプロイするための解析装置イメージ１０４１としては、例えば、主記憶装置の内容をマスターブートレコードも含めてすべてダンプしておくことで利用できる。
【００４０】
また、解析装置イメージ１０４１は、単に、上記計算機の構成を定義する情報であるアプリケーション、ＯＳ、スペックなどの構成を定義する文字列であってもよい。この場合、構成を定義された文字列を元に、構成管理ツールを用いてオンデマンドに計算機イメージを構築して、解析実行装置１０３２にデプロイするようにしてもよい。
【００４１】
また、解析装置イメージ１０４１としては、上述の計算機イメージと、設定情報を定義する文字列とを組み合わせて、基本的な構成はあらかじめ準備しておき、一部のアプリケーションの導入や、システム設定のみをオンデマンドで構築するハイブリッドな形態を用いてもよい。
【００４２】
なお、本発明の取りうる構成は、上述した構成に限られるものではない。すなわち、各装置がさらに機能ごとに異なる計算機上に実装されており、それらがネットワークや可搬媒体等を介して接続されていてもよいし、複数の装置が１つの計算機上に実装され、プロセス間通信等を用いて密に接続されていてもよい。
【００４３】
（１−２）各装置のハードウェア構成
次に、図２を参照して、各装置のハードウェア構成について説明する。
【００４４】
図２に示すように、各装置は、ＣＰＵ２００１と、メモリ２００２と、インターネットやＬＡＮを介して他の装置と通信を行うための通信装置２００４と、キーボードやマウス等の入力装置２００５と、モニタやプリンタ等の出力装置２００６と、読取装置２００７と、ハードディスク等の外部記憶装置２００３とが、インタフェース２００８を介して接続されている。また、読取装置２００７にはＩＣカードやＵＳＢメモリのような、可搬性を有する記憶媒体２００９を接続することができる。
【００４５】
本実施の形態における解析結果統合分析装置１０１０、解析管理装置１０３１、または解析実行装置１０３２は、これらの機能を実現するプログラムがメモリ２００２上にロードされ、ＣＰＵ２００１により実行されることにより具現化される。これらのプログラムは、予め上記情報処理装置の外部記憶装置２００３に格納されていてもよいし、必要なときに、読取装置２００７や通信装置２００４と当該情報処理装置とが、利用可能な媒体を介して他の装置から上記外部記憶装置に導入されてもよい。
【００４６】
上記情報処理装置が利用可能な媒体とは、例えば、読取装置２００７に着脱可能な記憶媒体２００９、または通信装置２００４に接続可能なネットワーク２０１０またはネットワーク２０１０を伝搬する搬送波やディジタル信号などである。そして、プログラムは、一旦外部記憶装置２００３に格納された後、外部記憶装置２００３からメモリ２００２上にロードされてＣＰＵ２００１に実行されてもよいし、外部記憶装置２００３に格納されることなく、直接メモリ２００２上にロードされてＣＰＵ２００１に実行されてもよい。
【００４７】
（１−３）各種情報
次に、図３〜図８を参照して、解析結果統合分析装置１０１０の各機能が利用する各種情報について説明する。
【００４８】
図３は、解析結果統合分析装置１０１０が保持する解析装置構成情報１０２１の一例である。解析装置構成情報１０２１は、解析装置イメージ１０４１の計算機構成を示す情報である。図３に示すように、解析装置構成情報１０２１は、解析装置ＩＤ３００１、解析管理製品３００２、計算機種別３００３、ＯＳ３００４、ミドルウェアやアプリケーションの一覧を表す情報３００５〜３００８などを含む。
【００４９】
解析装置ＩＤ３００１は、解析装置イメージ１０４１を一意に識別するための識別子である。解析装置ＩＤ３００１を一つ指定することで、その解析装置ＩＤ３００１に対応する解析装置イメージ１０４１の計算機構成を取得することができる。
【００５０】
以降、本実施の形態において、解析装置構成情報１０２１が保持する計算機構成を表す情報を例示するが、本発明が保持し得る情報はそれらに限るものではない。
【００５１】
解析管理製品３００２は、解析装置ＩＤ３００１に対応する解析装置イメージ１０４１を解析実行装置１０３２にデプロイする際の、当該解析実行装置１０３２を管理する解析管理装置１０３１の製品種別を識別するための値である。
【００５２】
被疑検体を解析実行装置１０３２において実行し、ＡＰＩコールなどの挙動ログを取得する場合の取得方法は、解析管理装置１０３１を実装する製品の種別によって異なることが多く、また、その種別によって取得できるログの内容が異なり得る。また、取得できるログだけではなく、被疑検体の挙動そのものも変化し得る。これは、解析管理装置１０３１の実装形態によっては、被疑検体がその存在を検知して不審な挙動を止めてしまう場合が存在することに起因する。
【００５３】
解析管理製品３００２は、構成要素寄与率計算機能１０１５や解析装置選択優先度計算機能１０１６が、上記した解析管理装置１０３１の実装形態によって生じる検体挙動の観測結果の変化を、後述する処理の中で活用するために必要な情報である。
【００５４】
また、計算機種別３００３は、解析装置ＩＤ３００１に対応する解析装置イメージ１０４１を解析実行装置１０３２上にデプロイする場合の計算機の形態を識別するための値である。計算機種別３００３には、解析装置イメージ１０４１を物理計算機としてデプロイする場合には、例えば「実機」という文字列が保持され、仮想化製品「ａ」を用いて仮想計算機としてデプロイする場合には例えば「仮想ＰＣ製品ａ」という文字列が保持される。
【００５５】
被疑検体を解析実行装置１０３２において実行し、ＡＰＩコールなどの挙動ログを取得する場合、被疑検体の挙動は計算機の形態によって変化し得る。これは、例えば計算機が仮想計算機である場合には、被疑検体がそのことを検知して不審な挙動を止めてしまう場合が存在することに起因する。
【００５６】
計算機種別３００３は、構成要素寄与率計算機能１０１５や解析装置選択優先度計算機能１０１６が、上記した計算機の形態によって生じる検体挙動の観測結果の変化を、後述する処理の中で活用するために必要な情報である。
【００５７】
また、ＯＳ３００４は、解析装置ＩＤ３００１に対応する解析装置イメージ１０４１に導入するＯＳの製品名、バージョン名の識別値である。すなわち、ＯＳ３００４には、解析装置イメージ１０４１のＯＳが製品名「ＯＳα」のバージョン「ｖｅｒ．１」である場合には、例えば「ＯＳα  ｖｅｒ．１」の文字列が保持され、同様に、製品名「ＯＳβ」のバージョン「ｖ２０１３」である場合には、例えば「ＯＳβ  ｖ２０１３」などの文字列が保持される。
【００５８】
また、ＯＳ３００４としては、製品名とバージョン名に加えて、さらに適用済みパッチ名や、対応言語名などの情報を保持してもよい。また、ＯＳ３００４として、ＣＰＥ（Ｃｏｍｍｏｎ  Ｐｌａｔｆｏｒｍ  Ｅｎｕｍｅｒａｔｉｏｎ）などの標準化された製品識別名などを用いてもよい。
【００５９】
被疑検体を解析実行装置１０３２において実行し、ＡＰＩコールなどの挙動ログを取得する場合、被疑検体の挙動は計算機に導入しているＯＳによって変化し得る。これは、例えば被疑検体が特定のバージョンのＯＳの場合のみに存在する脆弱性を突くものであることに起因する。
【００６０】
また、特定の言語圏のみを対象に攻撃活動を行うマルウェアである場合には、特定言語のＯＳが使用されている環境のみで不正活動を行う場合もある。
【００６１】
ＯＳ３００４は、構成要素寄与率計算機能１０１５や解析装置選択優先度計算機能１０１６が、上記した導入ＯＳの差異によって生じる検体挙動の観測結果の変化を、後述する処理の中で活用するために必要な情報である。
【００６２】
また、解析装置構成情報１０２１は、解析装置ＩＤ３００１に対応する解析装置イメージ１０４１に導入済みであるミドルウェアやアプリケーションの一覧を表す情報３００５〜３００８を保持する。
【００６３】
例えば、図３では、「ＭＷい」及び「ＭＷろ」という名称のミドルウェアや、「Ａｐｐは」及び「Ａｐｐに」という名称のアプリケーションの一覧が保持されていることがわかる。また、各ミドルウェアまたはアプリケーションの値が「○」となっているミドルウェアやアプリケーションが当該解析装置イメージ１０４１に導入されていることを示している。
【００６４】
例えば、図３では、解析装置ＩＤ３００１「ｓａｎｄｂｏｘ−Ａ−１」に対応する解析装置イメージ１０４１には、ミドルウェア製品「い」とアプリケーション製品「は」が導入されていることがわかる。
【００６５】
なお、本実施の形態では単純化のために製品名だけで製品名称だけで区別しているが、実運用上は、さらに、製品バージョンも含めて細分化することが検体の解析精度を向上させるためには望ましい。また、さらに、製品名とバージョン名に加えて、適用済みパッチ名や、対応言語名などの情報を保持してもよい。また、上述のミドルウェア名やアプリケーション製品名として、ＣＰＥ（Ｃｏｍｍｏｎ  Ｐｌａｔｆｏｒｍ  Ｅｎｕｍｅｒａｔｉｏｎ）などの標準化された製品識別名などを用いてもよい。
【００６６】
被疑検体を解析実行装置１０３２において実行し、ＡＰＩコールなどの挙動ログを取得する場合、被疑検体の挙動は計算機に導入しているミドルウェアやアプリケーションによって変化し得る。これは、例えば被疑検体が特定のミドルウェアやアプリケーションのみに存在する脆弱性を突くものであることに起因する。
【００６７】
上記した導入済みであるミドルウェアやアプリケーションの一覧を表す情報は、構成要素寄与率計算機能１０１５や解析装置選択優先度計算機能１０１６が、検体挙動の観測結果の変化を、後述する処理の中で活用するために必要な情報である。
【００６８】
また、解析装置構成情報１０２１は、解析装置ＩＤ３００１に対応する解析装置イメージ１０４１の設定情報も保持してもよい。
【００６９】
すなわち、例えば、プロキシやＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）サーバの設定をしているか否かや、ＯＳが提供するユーザ権限管理機能がオンかオフかといった、マルウェアの動作に多大な影響を与えうる設定情報を保持させてもよい。
【００７０】
そのような情報を保持することにより、それらの情報を、構成要素寄与率計算機能１０１５や解析装置選択優先度計算機能１０１６が、後述する処理の中で活用することができる。これにより、例えば、プロキシ設定がなされた解析装置イメージ１０４１と、プロキシ設定がなされていない解析装置イメージ１０４１とのそれぞれの解析結果を比較することで、被疑検体がプロキシを超える機能を有するか否かを判別できるようになり、検体の解析精度を向上させることができる。
【００７１】
図４は、解析結果統合分析装置１０１０が保持する挙動抽出ロジック１０２２の一例である。図４に示すように、挙動抽出ロジック１０２２は、結果カテゴリ４００１、ルールＩＤ４００２、抽出ルール４００３及び出力定義４００４などを含む。
【００７２】
結果カテゴリ４００１は、解析実行装置１０３２を用いて観測した被疑検体の挙動ログの分析結果を分類するための情報である。例えば、「ファイルアクセス」、「レジストリアクセス」、「ネットワークアクセス」、「その他マルウェアに典型的な挙動」などのように分類しておくことで、後述する統合分析結果出力機能１０１７が出力する統合分析結果を解析者により理解しやすい内容にすることができる。また、後述するように、構成寄与率計算ルール１０２３でも利用される。
【００７３】
また、ルールＩＤ１０４２は、挙動抽出ロジックを一意に識別するための識別情報である。
【００７４】
抽出ルール４００３は、解析実行装置１０３２で被疑検体を解析した結果、解析結果受信機能１０１３が取得する解析結果１０２５から、何の情報をどのように抽出するかを定義するルールである。
【００７５】
抽出ルール４００３としては、例えば、解析結果１０２５が標準技術であるＭＡＥＣ（Ｍａｌｗａｒｅ  Ａｔｔｒｉｂｕｔｅ  Ｅｎｕｍｅｒａｔｉｏｎ ａｎｄ  Ｃｈａｒａｃｔｅｒｉｚａｔｉｏｎ）で記述されて取得される場合には、どのエレメントを抽出するかＸＰａｔｈを用いて記述することができる。
【００７６】
また、例えば、解析結果１０２５がＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）などのその他の形式で記述されて取得される場合には、抽出するためのスクリプトを保持してもよい。
【００７７】
また、出力定義４００４は、解析実行装置１０３２で被疑検体を解析した結果、解析結果受信機能１０１３が取得する解析結果１０２５から、上記した抽出ルール４００３を用いて抽出した結果、どのような情報が取得できるかを定義する情報である。
【００７８】
出力定義４００４としては、例えば、サイバー観測事象を広く定義する標準技術であるＣｙｂＯＸ（Ｃｙｂｅｒ  Ｏｂｓｅｒｖａｂｌｅ  Ｅｘｐｒｅｓｓｉｏｎ）のエレメントを用いて記述することができる。また、例えば、抽出ルール４００３と出力定義４００４を合わせて、引数を解析結果として取り、戻り値を出力定義４００４とするような一つのスクリプトとして保持させてもよい。
【００７９】
また、解析実行装置１０３２や、解析管理装置１０３１の実装によって出力される解析結果の形式は変わりうるため、解析装置構成情報１０２１の解析管理製品３００２の値の種別ごとに、抽出ルール４００３を区別して保持してもよい。これは、例えば、挙動抽出ロジック１０２２の表に新たに解析管理製品のカラムを追加することで容易に実現可能である。
【００８０】
また、挙動抽出ロジック１０２２は、検体を解析実行装置１０３２上で実行させた結果、観測できた動作ログである解析結果１０２５を元に、どのような振る舞いであったかを分析するために用いる情報である。このため、特に、正規のソフトウェアには見られないが、不正なソフトウェアにのみ見られるような特徴的な挙動を抽出するためのロジックを記載しておくことが望ましい。
【００８１】
挙動抽出ロジック１０２２としては、例えば、デバッガの存在を検知するためのＡＰＩであるＩｓＤｅｂｕｇｇｅｒＰｒｅｓｅｎｔをコールしたＡＰＩコールログが存在するか否かといったロジックや、別のプロセスのメモリ空間に自身のライブラリを埋め込もうとするような動作が存在するか否かといあったロジックなどが典型的である。
【００８２】
図５は、解析結果統合分析装置１０１０が保持する構成寄与率計算ルール１０２３の一例である。構成寄与率計算ルール１０２３は、図５に示すように、構成寄与率計算ルール１０２３は、抽出ロジックＩＤ５００１、更新条件５００２、寄与率更新値５００３及び更新対象５００４などを含む。
【００８３】
抽出ロジックＩＤ５００１は、挙動抽出ロジック１０２２のルールＩＤ４００２として保持している値のうち何れかの値である。
【００８４】
また、更新条件５００２は、構成要素寄与率計算機能１０１５が、構成要素寄与率を更新するか否かを判定するための条件である。具体的に、解析結果１０２５から、抽出ロジックＩＤ５００１の値に対応する抽出ルールＩＤ４００３を用いて抽出した出力が、更新条件５００２の条件にマッチするか否か判定される。
【００８５】
また、寄与率更新値５００３は、構成要素寄与率計算機能１０１５が、構成要素寄与率を更新する際に、寄与率値をどれだけ更新するかを定義する値である。
【００８６】
また、更新対象５００４は、構成要素寄与率計算機能１０１５が、構成要素寄与率を更新する際に、どの構成要素の寄与率値を更新するかを定義する値である。
【００８７】
図６は、解析結果統合分析装置１０１０が保持する脆弱性情報１０２４の一例である。図６に示すように、脆弱性情報１０２４は、製品名６００１、脆弱性識別情報６００２及びリスク値６００３などを含む。
【００８８】
製品名６００１は、脆弱性が存在する構成要素の名称である。製品名６００１としては、例えばＣＰＥなどを用いてもよい。
【００８９】
また、脆弱性識別情報６００２は、脆弱性をユニークに識別するための情報である。脆弱性識別情報６００２としては、例えばＣＶＥなどを用いてもよい。
【００９０】
また、リスク値６００３は、脆弱性識別情報６００２を悪用した攻撃のリスクの大きさを表す値であり、その攻撃が成功した場合の影響の大きさや、攻撃の容易さ、解析を実施している時点でその脆弱性が悪用される傾向がどの程度高いか、等を総合した値として保持する。リスク値としては、例えば、ＣＶＳＳ（Ｃｏｍｍｏｎ  Ｖｕｌｎｅｒａｂｉｌｉｔｙ  Ｓｃｏｒｉｎｇ  Ｓｙｓｔｅｍ）などを用いてもよい。
【００９１】
図７は、解析結果統合分析装置１０１０が保持する解析結果１０２５の一例である。図７に示すように、解析結果１０２５は、検体ＩＤ７００１、解析装置ＩＤ７００２、挙動ログ７００３及びネットワークログ７００４を含む。
【００９２】
検体ＩＤ７００１は、どの被疑検体を解析した結果であるかを識別するための識別情報である。検体ＩＤ７００１としては、例えば、被疑検体のハッシュ値を用いることができる。
【００９３】
また、解析装置ＩＤ７００２とは、検体ＩＤ７００１に対応する被疑検体を実行させた解析装置イメージの識別情報であり、解析装置構成情報１０２１の解析装置ＩＤ３００１の値の中の何れかの値である。
【００９４】
また、挙動ログ７００３は、検体ＩＤ７００１に対応する被疑検体を、解析装置ＩＤ７００２で実行させた際に、当該計算機上で観測できた挙動に関する情報であり、主にはＡＰＩコールのログなどである。
【００９５】
また、ネットワークログ７００４は、検体ＩＤ７００１に対応する被疑検体を、解析装置ＩＤ７００２で実行させた際に、当該計算機が試みたネットワークアクセスのキャプチャ情報である。
【００９６】
なお、解析結果１０２５として保持する情報としては、上記した情報に限るものではなく、例えば被疑検体のバイナリ内に含まれる文字列情報など、他の情報も保持することもできる。
【００９７】
図８は、統合分析結果出力機能１０１７が出力する統合解析結果の一例である。本実施の形態にかかるプログラム解析システムを利用する解析者は、最終的な解析結果として、統合分析結果閲覧画面８０１０に示すような情報を得ることができる。
【００９８】
統合分析結果出力機能１０１７は、検体ＩＤ７００１を解析対象検体８０１１として表示する。これは、表示している統合分析結果閲覧画面８０１０が、どの検体を解析した結果であるかを解析者に通知するために必要な情報である。
【００９９】
また、統合分析結果出力機能１０１７は、図８に例示したような、観測挙動総合情報８０１２を出力する。観測挙動総合情報８０１２は、解析対象検体８０１１について、それまでに解析を実行した個々の解析結果１０２５から抽出したファイルアクセス先や、レジストリアクセス先、ネットワークアクセス先などの情報の和集合である。
【０１００】
観測挙動総合情報８０１２を出力することで、解析者は、多数の解析装置を用いて検体を解析した場合においても、当該検体がどのような挙動を示し得るのかを容易に知ることができる。
【０１０１】
また、統合分析結果出力機能１０１７は、図８に例示したような、寄与率上位構成要素情報８０１３を出力する。寄与率上位構成要素情報８０１３は、解析対象検体８０１１について、それまでに解析を実行した個々の解析結果１０２５から抽出した挙動に基づいて、構成要素の寄与率を計算した結果、寄与率の値が大きい上位の構成要素である。
【０１０２】
寄与率上位構成要素情報８０１３を出力することにより、解析者は、当該検体を動作する際に、計算機にどのようなソフトウェアが導入されていなければならないか、あるいは、どのような設定がなされていなければならないかを容易に知ることができる。すなわち、解析者は、当該検体がどのような対象を狙って悪意ある活動を働くものであるかを容易に知ることができる。
【０１０３】
また、図８に例示したように、寄与率上位構成要素情報８０１３に出力すべき各構成要素について、脆弱性情報１０２４に保持している脆弱性情報を併せて表示することにより、解析者は、当該検体が悪用している可能性の高い脆弱性が何であるかについて容易に知ることができる。
【０１０４】
また、本実施の形態において、統合分析結果出力機能１０１７は、図８に例示したような、動作阻害構成要素情報８０１４を出力する。動作阻害構成要素情報８０１４は、後述する構成要素寄与率更新処理によって、構成寄与率が閾値未満になった構成要素の名称の一覧である。
【０１０５】
動作阻害構成要素情報８０１４を出力することにより、解析者は、当該検体がどのような構成要素を保持している計算機上では動作しないかを容易に知ることができる。これにより、例えば、プロキシが設定されている環境では動作しない、ということがわかった場合には、解析者は、自組織のネットワークがプロキシを利用している環境であればとりあえずの影響は無いと判断することができる。すなわち、動作阻害構成要素情報８０１４は、簡易的な対処方法を思案するための材料として活用することができる情報である。
【０１０６】
また、統合分析結果出力機能１０１７は、図８に例示したような、個別解析結果情報８０１５を出力する。個別解析結果情報８０１５は、解析対象検体８０１１について、それまでに解析を実行した個々の解析結果１０２５から抽出したファイルアクセス先や、レジストリアクセス先、ネットワークアクセス先などの情報を個別に表示したものである。
【０１０７】
個別解析結果情報８０１５を出力することにより、解析者は、個々の解析装置イメージ１０４１を用いて実行した場合において、どのような解析結果１０２５が得られたのかを容易に知ることができる。
【０１０８】
統合分析結果閲覧画面８０１０の情報は、後述する解析処理が完全に終了した後に出力してもよいし、解析処理の途中で、処理が終了した解析結果に関する情報から逐次的に出力してもよい。
【０１０９】
（１−４）プログラム解析処理の詳細
図９〜図１２を参照して、解析結果統合分析装置１０１０におけるプログラム解析処理の詳細について説明する。
【０１１０】
図９は、検体解析の全体処理を示すフローチャートである。図１０は、解析装置選択優先度を計算する処理フローの一例であり、図９のステップＳ９００２における解析装置選択優先度計算処理の一例である。図１１は、各構成要素の寄与率を更新する処理フローの一例であり、図９のステップＳ９００７における構成要素寄与率更新処理の一例である。図１２は、各構成要素の寄与率の、ある時点での計算結果の一例である。
【０１１１】
解析者は、まず、統合分析開始要求受付機能１０１８に対して、本解析システムを用いて被疑検体の解析を行う要求（以下、統合分析開始要求と称する場合もある。）を通知する。これはネットワークを介して通知してもよいし、解析結果統合分析装置１０１０の入出力コンソールから通知してもよい。
【０１１２】
また、解析対象の被疑検体は、上記した統合分析開始要求の通知と共に解析結果統合分析装置１０１０に送付してもよい。また、その他の方法としては、検体を補完するためのリポジトリを準備しておき、解析結果統合分析装置１０１０に対しては、当該リポジトリ内の検体にアクセスするためのＵＲＬを通知し、解析結果統合分析装置１０１０が上記通知されたＵＲＬから検体を取得する方法でもよい。
【０１１３】
また、統合分析開始要求は、必ずしも解析者が解析結果統合分析装置１０１０に対して主体的に通知する必要はなく、例えば、上記した被疑検体を格納したリポジトの中にまだ統合分析を行っていない検体が存在していれば、解析結果統合分析装置１０１０が順次取得して統合分析を開始する、といったバッチ処理の形態を取ることもできる。
【０１１４】
また、例えば、別のＩＤＳ（Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）やＩＰＳ（Ｉｎｔｒｕｓｉｏｎ  Ｐｒｅｖｅｎｔｉｏｎ  Ｓｙｓｔｅｍ）などのセキュリティ装置が不審な検体を発見した場合に、そのアラートを契機として、当該検体の統合分析を開始するようにしてもよい。
【０１１５】
図９に示すように、統合分析開始要求受付機能１０１８は、統合分析の開始要求を受け付けると、まず、構成要素寄与率を初期化する（Ｓ９００１）。
【０１１６】
ステップＳ９００１の構成要素寄与率の初期化処理は、各構成要素の寄与率の初期値を設定する処理であり、例えばすべての構成要素の寄与率の値を同じ値にしてもよい。また、例えば、脆弱性情報１０２４を用いて、当該構成要素が保持するリスク値６００３の値を初期値としてもよい。
【０１１７】
脆弱性情報１０２４を用いることにより、後述する解析装置選択優先度の計算処理（Ｓ９００２）において、リスク値の大きい脆弱性を持つ構成要素を含む解析装置イメージ１０４１の選択優先度の初期値を大きくすることができる。このため、後述する、選択優先度が上位の解析装置から解析装置を１つ以上選択する処理（Ｓ９００４）において、リスク値の大きい脆弱性を持つ構成要素を含む解析装置イメージ１０４１を用いた解析を、優先的に実施することができる。
【０１１８】
次に、解析装置選択優先度計算機能１０１６は、解析装置選択優先度を計算する（Ｓ９００２）。図１０に、ステップＳ９００２における解析装置選択優先度の計算処理９００２の詳細を示す。
【０１１９】
図１０に示すように、解析装置選択優先度計算機能１０１６は、まず、まだ解析が未実施であり、かつ、現在の処理において、選択優先度の計算が未実施である解析装置イメージ１０４１が存在するか否かを判定する（Ｓ１０００１）。
【０１２０】
ステップＳ１０００１において、一つ以上存在すると判定された場合には、解析装置選択優先度計算機能１０１６は、選択優先度の計算が未実施の解析装置イメージ１０４１から一つ選択する（Ｓ１０００２）。
【０１２１】
さらに、解析装置選択優先度計算機能１０１６は、解析装置構成情報１０２１を用いて、ステップＳ１０００２で選択した解析装置イメージ１０４１を構成する全ての構成要素の一覧を取得する（Ｓ１０００３）。
【０１２２】
次に、解析装置選択優先度計算機能１０１６は、ステップＳ１０００３において取得した構成要素の一覧について、現寄与率１２００３の値を取得し、それらの総和を計算する（Ｓ１０００４）。この総和を処理１０００２において選択した解析装置イメージ１０４１の選択優先度とする。
【０１２３】
以降、再度ステップＳ１０００１の判定に戻り、選択できる解析装置イメージ１０４１がなくなるまで上記のステップＳ１０００２からＳ１０００４までを繰り返し、選択できる解析装置イメージ１０４１がなくなった場合（Ｓ１０００１でＮｏ）には、解析装置選択優先度計算処理を終了する。
【０１２４】
図９に戻り、解析装置選択優先度計算機能１０１６は、解析が未実施かつ、全ての構成要素の現寄与率１２００３の値が閾値１２００４以上であり、かつ、最大解析時間を未超過であるか否かを判定する（Ｓ９００３）。
【０１２５】
閾値１２００４は、当該構成要素が、解析対象の被疑検体が動作を阻害するものであるとして判断するための閾値であり、例えばすべてを同じ値に設定してもよいし、それぞれ異なる値に解析者が設定してもよい。また、同一の構成要素が何個の解析装置イメージ１０４１に含まれているかに応じて、それぞれ異なる値にしてもよい。
【０１２６】
例えば、４０個の異なる解析装置イメージの構成要素が、実機である場合には、その閾値を−４０としてもよい。これは、多数の解析装置イメージ１０４１に含まれる構成要素については、ステップＳ９００７における構成要素寄与率の更新処理で値の変動幅が大きくなるためであり、このようにすることで、すぐに当該構成要素の優先度が閾値未満になってしまう問題を解消することができる。
【０１２７】
また、最大解析時間とは、本実施形態にかかるプログラム解析システムを用いて検体を解析する際に、解析にかかることを許容する最大の時間であり、解析者が事前に、解析結果統合分析装置の設定情報として指定することができる。これにより、一つの被疑検体の解析にかかる時間を制限して、解析に予想以上の時間を要するなどの事態を回避することができる。
【０１２８】
ステップＳ９００３において、判定結果が真であった場合には、解析装置選択機能１０１１は、解析が未実施である解析装置イメージ１０４１の中から、選択優先度の値が大きい上位のものから順に、本プログラム解析システムが有する解析実行装置１０３２の数だけ選択する（Ｓ９００４）。
【０１２９】
次に、検体解析要求機能１０１２は、ステップＳ９００４において選択した解析装置イメージ１０４１をすべて解析実行装置１０３２にデプロイするよう、解析管理装置１０３１へ要求し、さらに、上記デプロイしたそれぞれの解析装置イメージ１０４１を用いて解析実行装置１０３２が被疑検体を解析するよう、解析管理装置１０３１へ要求を行う（Ｓ９００５）。
【０１３０】
各解析実行装置１０３２は、検体の解析を実行し、解析結果１０２５を解析管理装置１０３１へ送付する。さらに、解析結果受信機能１０１３は、解析管理装置１０３１から、全ての上記解析結果１０２５を取得する。なお、解析結果受信機能１０１３は、必ずしも解析結果１０２５を解析管理装置１０３１から取得する必要はなく、各解析実行装置１０３２から取得してもよい。
【０１３１】
次に、挙動抽出機能１０１４は、挙動分析を実施する（Ｓ９００６）。ステップＳ９００６において、挙動抽出機能１０１４は、ステップＳ９００５の解析処理のそれぞれの解析結果１０２５について、挙動抽出ロジック１０２２の抽出ルール４００３を順にあてはめて、対応する挙動の有無や、挙動に関する情報を、挙動情報として取得する。
【０１３２】
次に、構成要素寄与率計算機能１０１５は、ステップＳ９００６における挙動分析の結果である挙動情報と、構成寄与率計算ルール１０２３を用いて構成要素寄与率を更新する（Ｓ９００７）。
【０１３３】
図１１を参照して、ステップＳ９００７における構成要素寄与率更新処理について説明する。
【０１３４】
図１１に示すように、まず、構成要素寄与率計算機能１０１５は、すべての構成寄与率計算ルールを処理済みか判定する（Ｓ１１００１）。
【０１３５】
ステップＳ１１００１において、一つ以上の未処理の構成寄与率計算ルールが存在すると判定された場合には、構成要素寄与率計算機能１０１５は、未処理の構成寄与率計算ルールから一つを選択する（Ｓ１１００２）。
【０１３６】
次に、構成要素寄与率計算機能１０１５は、ステップＳ１１００２において選択した構成寄与率計算ルールの更新条件５００２のいずれかと、対応する抽出ロジックＩＤ５００１を用いることで解析結果１０２５から取得できる挙動情報のいずれかとがマッチするかを判定する。そして、判定結果が真の場合、適合する更新条件５００２に対応する寄与率更新値５００３の値だけ、当該解析結果１０２５を観測した解析装置イメージ１０４１の構成要素のうち、対応する更新対象５００４が指定する構成要素の寄与率を変更する（Ｓ１１００３）。
【０１３７】
例えば、図７に例示した当該解析結果１０２５を観測した解析装置イメージ１０４１がＳａｎｄｂｏｘ−Ａ−１である解析結果１０２５が、図５に例示した抽出ロジックＩＤ５００１の４−１にマッチした場合には、当該解析装置イメージ１０４１の計算機種別３００３の構成要素である「仮想ＰＣ製品ａ」の現寄与率１２００３を、寄与率更新値５００３が指定する値である−１．０変更する。
【０１３８】
次に、ステップＳ１１００１の判定処理に戻り、構成要素寄与率計算機能１０１５は、すべての構成寄与率計算ルールが処理済みとなるまでステップＳ１１００２〜Ｓ１１００３の処理を繰り返す。
【０１３９】
ステップＳ１１００１ですべての構成寄与率計算ルールが処理済みとなった場合には、構成要素寄与率計算機能１０１５は、上記した構成要素寄与率更新処理において、１つ以上、構成寄与率計算ルールの更新条件５００２とマッチするものがあったかを判定する（Ｓ１１００４）。
【０１４０】
ステップＳ１１００４において、１つ以上更新条件５００２とマッチするものがあったと判定された場合には、構成要素寄与率計算機能１０１５は、構成寄与率更新処理を終了する。
【０１４１】
一方、ステップＳ１１００４において、１つも更新条件５００２とマッチしなかったと判定された場合には、構成要素寄与率計算機能１０１５は、当該解析結果１０２５には検体の挙動が表れておらず、検体が一切動作しなかったとして判定して（Ｓ１１００５）、処理を終了する。
【０１４２】
ステップＳ１１００５において、構成要素寄与率計算機能１０１５は、規定の処理を行ってから構成寄与率更新処理９００７を終了してもよい。例えば、当該解析結果１０２５を観測した解析装置イメージ１０４１の全構成要素の現寄与率を−１．０更新するなどしてもよい。
【０１４３】
上記した構成要素寄与率更新処理を実行した結果、図１２に示す各構成要素の寄与率の計算結果において、現寄与率１２００３の値が更新される。更新された現寄与率１２００３の値が、上記したステップＳ９００２における解析装置選択優先度計算処理で利用されることとなる。すなわち、現寄与率１２００３の値が高い構成要素を有する解析装置イメージ１０１４が選択優先度の高いものとなる。また、現寄与率１２００３の値が大きい構成要素は、計算機プログラムが悪用する可能性が高い構成要素であり、現寄与率１２００３の値が小さい構成要素は、計算機プログラムの動作を阻害する可能性が高い構成要素であることがわかる。
【０１４４】
（１−５）本実施の形態の効果
上記したように、本実施の形態によれば構成寄与率更新処理を繰り返すことにより、図１２に示す構成要素の現寄与率１２００３を更新し、さらに、構成要素の現寄与率１２００３から定まる解析装置イメージ１０４１の選択優先度を計算する。そして、その計算結果に基づいて、優先度の高い上位複数の解析実行装置１０３２を選択して解析を実行することができる。これにより、検体の挙動に寄与する可能性が高い計算機の実行環境を選択して、効率的に検体を解析することができる。
【０１４５】
（１−６）本実施の形態の他の構成
なお、上記した実施の形態はあくまで本発明の適用方式の一例であって、上記の実施形態に限定されるものではない。例えば、構成要素の現寄与率１２００３をもとにした、解析装置イメージ１４０２の選択優先度の計算方式は、上記した現寄与率１２００３の総和に限るものではない。
【０１４６】
具体的な例としては、構成要素種別１２００１ごとに個別に和を計算した上で、構成要素種別１２００１ごとの重み付きで最終的な和を計算してもよい。また、構成要素種別１２００１毎に独立して、解析装置イメージ１０４１を選択してもよい。すなわち、構成要素種別１２００１ごとに個別に和を計算した上で、さらに、「解析管理製品」の和が大きいものからいくつかの解析装置イメージ１０４１を選択し、同様に、「計算機種別」の残りのいくつかの解析装置イメージ１０４１を選択してもよい。
【０１４７】
（２）第２の実施の形態
次に、上記した第１の実施の形態と異なる第２の実施の形態について説明する。本実施の形態においては、第１の実施の形態で示した効果を得ることができることに加え、以下の効果を得ることができる。
【０１４８】
すなわち、本実施の形態によれば、解析者は、複数の実行環境の異なる計算機上で並列に被疑検体を解析をする際に、リアルタイムの実行状況を監視することができる。また、解析者は、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒａｃｔｉｏｎ）操作が必要になり、被疑検体の挙動が待機している場合に、そのＵＩ操作を行って、さらなる被疑検体の挙動を観測することができる。また、解析者は、被疑検体が異常停止したため解析実行装置１０３２がタイムアウト処理になるまで待機状態になっているものについて、当該解析実行装置１０３２を強制終了させることができ、解析に掛かる時間を短縮することができる。
【０１４９】
（２−１）プログラム解析システムの構成
次に、図１３を参照して、本実施の形態にかかるプログラム解析システムの構成について説明する。以下では、第１の実施の形態と異なる構成について詳細に説明し、第１の実施の形態と同様の構成については説明を省略する。
【０１５０】
図１３に示すように、第１の実施の形態とは、解析管理装置１０３１にデスクトップ操作インタフェース（以下インタフェースをＩＦ（Ｉｎｔｅｒ  Ｆａｃｅ）と称して説明する場合もある。）を設けている点と、実行状況監視・操作装置１３０１０を備えている点で異なる。以下、詳細を説明する。
【０１５１】
解析管理装置１０３１のデスクトップ操作ＩＦ１３００１は、解析実行装置１０３２が被疑検体の解析を実行している最中のデスクトップ画面を出力し、また、操作を受け付けるためのインタフェースである。そのような機能を実現するインタフェースとしては、例えば、ＲＤＰ（Ｒｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ）を実装したインタフェースや、ＲＦＢ（Ｒｅｍｏｔｅ  ＦｒａｍｅＢｕｆｆｅｒ）プロトコルを実装したインタフェースや、リモートＫＶＭ（Ｋｅｙｂｏａｒｄ，Ｖｉｄｅｏ，Ｍｏｕｓｅ）を実装したインタフェースなどが挙げられる。
【０１５２】
実行状況監視・操作装置１３０１０は、デスクトップ操作ＩＦ１３００１を介し、解析を実行中の各解析実行装置１０３２の実行状況を監視し、また、解析者が操作するために利用する装置である。
【０１５３】
実行状況監視・操作装置１３０１０は、デスクトップ操作要求ＩＦ１３０１１、実行中断処理部１３０１２及び実行状況監視・操作ＩＦ１３０１３を備える。
【０１５４】
デスクトップ操作要求ＩＦ１３０１１は、デスクトップ操作ＩＦ１３００１とのインタフェースとなるデスクトップ操作要求ＩＦ１３０１１である。デスクトップ操作ＩＦ１３０１１は、デスクトップ操作ＩＦ１３００１の実装形態に対応したクライアントモジュールである。
【０１５５】
また、実行中断処理部１３０１２は、解析者からデスクトップ操作要求ＩＦ１３０１１を介して入力されたデスクトップ操作を解析管理装置１０３１に通知する機能である。具体的に、被疑検体が異常停止したため解析実行装置１０３２がタイムアウト処理になるまで待機状態になっている場合に、該当する解析実行装置１０３２を強制終了させる要求をデスクトップ操作要求ＩＦ１３０１１を介して解析管理装置１０３１に通知する。また、解析結果統合分析装置１０１０に対して、当該解析装置イメージ１０４１では、検体が動作しなかったと判定させるための情報を送信する。
【０１５６】
また、実行状況監視・操作ＩＦ１３０１３は、解析者が、被疑検体の解析を実行している最中のデスクトップ画面を監視したり、操作を入力したりするためのインタフェースである。
【０１５７】
図１４に、実行状況監視・操作ＩＦ１３０１３が解析者に表示する、実行状況監視・操作ＩＦの一例を示す。
【０１５８】
図１４に示すように、実行状況監視・操作画面１４０１０は、一つの画面内に、検体を解析中である複数の解析実行装置１０３２の画面１４０１２を並べて表示する。また、実行状況監視・操作画面１４０１０は、画面１４０１２に対応する解析実行装置１０３２の解析処理の強制終了処理を、実行中断処理部１３０１２に要求するための、中断ボタン１４０１１を保持する。
【０１５９】
例えば、解析者は、実行状況監視・操作画面１４０１０を用いて、必要なアプリケーションが存在しない旨のエラーで待機状態になっている解析実行装置１０３２のみを選択して、強制的に解析処理を中断させることができる。
【０１６０】
なお、実行状況監視・操作画面１４０１０の画面構成は、図１４の例に限定されるものではなく、例えば、１つの画面に単一の解析実行装置１０３２の画面のみ表示させ、一定時間間隔で別の解析実行装置１０３２の画面に切り替えるようにしてもよい。
【０１６１】
（２−２）プログラム解析処理の詳細
次に、図１５を参照して、本実施の形態の解析結果統合分析装置１０１０におけるプログラム解析処理の詳細について説明する。本実施の形態では、第１の実施の形態のプログラム解析処理とは、図９における検体の解析処理のステップＳ９００５の解析実行処理において実行中断処理１５００１が実施される点で異なる。以下、第１の実施の形態と異なる処理について説明する。
【０１６２】
図１５に示したステップＳ１５００１の実行中断処理は、実行中断処理部１３０１２から実行中断処理要求を受け取ることにより処理が開始される。
【０１６３】
実行中断処理が実施されると、解析結果統合分析装置１０１０は、ステップＳ９００６以降の挙動分析処理を実施することなく、検体が動作しなかったと判定して、ステップＳ９００７の構成要素寄与率更新処理を実施してもよい。
【０１６４】
なお、実行中断処理が実施された場合に、ステップＳ９００６の挙動分析処理を飛ばさずに、解析実行装置１０３２の実行が中断するまでの解析結果１０２５を用いて、ステップＳ９００６の挙動分析処理を実行してもよい。
【０１６５】
（２−３）本実施の形態の効果
上記したように、本実施の形態によれば、上記第１の実施形態と同様の効果を得られるとともに、解析者は、複数の実行環境の異なる計算機上で並列に被疑検体を解析をする際に、リアルタイムの実行状況を監視したり、被疑検体に要求されるＵＩ操作をしたり、待機状態の解析処理を中断させたりすることができるため、より柔軟に適切なプログラム解析処理を実施することが可能となる。
【符号の説明】
【０１６６】
１０１０    解析結果統合分析装置
１０２１    解析装置構成情報
１０２２    挙動抽出ロジック
１０２３    構成寄与率計算ルール
１０２４    脆弱性情報
１０２５    解析結果
１０３１    解析管理装置
１０３２    解析実行装置
１０４１    解析装置イメージ
１３０１０  実行状況監視・操作装置
【図１】
2015230601.tif 000003
【図２】
2015230601.tif 000004
【図３】
2015230601.tif 000005
【図４】
2015230601.tif 000006
【図５】
2015230601.tif 000007
【図６】
2015230601.tif 000008
【図７】
2015230601.tif 000009
【図８】
2015230601.tif 000010
【図９】
2015230601.tif 000011
【図１０】
2015230601.tif 000012
【図１１】
2015230601.tif 000013
【図１２】
2015230601.tif 000014
【図１３】
2015230601.tif 000015
【図１４】
2015230601.tif 000016
【図１５】
2015230601.tif 000017