(57)【要約】      （修正有）【課題】起動後一定時間後或いは、特定の日時にのみ活動を行うプログラムに対して効率的に解析できるようにする。【解決手段】プログラム実行環境の時間経過速度を調整しながら、プログラムの解析を行うプログラム解析システムの主な機能部は、解析管理部１００、検体実行部２００、活動記録部、活動解析部３００の４つである。解析管理部１００は、実行環境における時間経過速度およびプログラム実行開始時間、実行終了時間などの解析条件を設定する。検体実行部２００は、解析管理部１００の決定に従い、時間経過速度およびプログラム実行開始時間を調整し、実行終了時間までプログラムを実行する。活動記録部は、実行環境を監視し、プログラムの活動記録を取得する。活動解析部３００は、活動記録を解析し、プログラムの挙動を明らかにする。さらに、解析管理部１００は、解析結果に基づき、解析条件を再設定し、再解析を行う。【選択図】図１
2013105366.tif 000002
【特許請求の範囲】
【請求項１】
動作検証対象のプログラムを、時間経過速度を任意に調整可能な実行環境上で動作させるプログラム解析システムは、
プログラムの解析状況を管理し、時間経過速度を決定する解析管理部を有するシステム管理装置と、
解析管理部で指定された時間経過速度に基づき前記プログラムを前記実行環境上で実行する検体実行部と、前記実行環境上での前記プログラムの挙動を、活動記録として取得する活動記録部とを有する少なくとも１つの検体実行装置と、
前記活動記録を解析して、前記プログラムの特徴を、解析結果として出力する活動解析部を有する少なくとも一つの活動解析装置と、
を含むことを特徴とするプログラム解析システム。
【請求項２】
前記解析管理部は、前記時間経過速度に加え、前記プログラムを解析する上での解析開始時刻を決定することを特徴とする請求項１に記載のプログラム解析システム。
【請求項３】
前記解析管理部は、前記時間経過速度、前記解析開始時刻に加え、前記プログラムの解析を終了する解析終了時刻を決定することを特徴とする請求項２に記載のプログラム解析システム。
【請求項４】
前記解析管理部は、前記解析結果を基に、前記プログラムの再解析を前記検体実行部に指示することを特徴とする請求項３に記載のプログラム解析システム。
【請求項５】
前記解析管理部は、前記プログラムの解析が失敗した時刻間を対象として、検体の再解析を行うことを特徴とする請求項４に記載のプログラム解析システム。
【請求項６】
前記解析管理部は、再解析を行う際に、前記時間経過速度を変化させることを特徴とする請求項４に記載のプログラム解析システム。
【請求項７】
前記解析管理部は、前記解析結果を基に、再解析の有無の判定を行う再解析ルールＤＢを持つことを特徴とする請求項４に記載のプログラム解析システム。
【請求項８】
前記検体実行部は、計算機上で、定期的に、時計部に対して信号を発することで時刻管理を行う、タイマー装置を操作することで、時間経過速度を調整することを特徴とする請求項１に記載のプログラム解析システム。
【請求項９】
前記検体実行部は、前記時計部を操作することで、時間経過速度を調整することを特徴とする請求項１に記載のプログラム解析システム。
【請求項１０】
前記実行環境は、計算機上で直接実行されるのではなく、計算機上で実行される仮想マシンプログラム上で実行されることを特徴とする請求項１に記載のプログラム解析システム。
【請求項１１】
前記実行環境が実行されるＣＰＵの動作速度を調整することで、様々な性能の計算機上での前記プログラムの動作を再現することを特徴とする請求項１に記載のプログラム解析システム。
【請求項１２】
前記活動記録部は、前記プログラムのどのような活動を記録するのかを指示する記録ルールＤＢに従って、活動を記録することを特徴とする請求項１に記載のプログラム解析システム。
【請求項１３】
前記活動解析部は、解析方法を指定する解析ルールＤＢに従って、前記活動記録を解析することを特徴とする請求項１に記載のプログラム解析システム。
【請求項１４】
前記記録ルールＤＢには、記録対象として、ネットワーク通信、画面出力、関数呼び出し、ファイルの作成・修正・削除、レジストリの作成・修正・削除を指定することを特徴とする請求項１２に記載のプログラム解析システム。
【請求項１５】
前記解析結果には、解析の成功／失敗を示すフラグが含まれることを特徴とする請求項１に記載のプログラム解析システム。
【請求項１６】
処理装置を用いて、動作検証対象のプログラムを、時間経過速度を任意に調整可能な実行環境上で動作させるプログラム解析方法は、
プログラムの解析状況を管理し、時間経過速度を決定し、
前記管理によって指定された時間経過速度に基づき前記プログラムを前記実行環境上で実行し、
前記実行環境上での前記プログラムの挙動を、活動記録として取得し、
前記活動記録を解析して、前記プログラムの特徴を、解析結果として出力する、
ことを特徴とする、プログラム解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムの挙動を解析するプログラム解析システムにおいて、プログラムが動作する実行環境の時刻管理機能を操作し、実行環境内の時間経過速度を、実時間よりも高速あるいは低速に変化させたときの、プログラムの活動を記録する。
【背景技術】
【０００２】
ソースコードを用いずに、コンピュータプログラムの挙動を解析する方法としては、静的解析と動的解析の、２種類がある。静的解析は、プログラムのファイルに記述されている命令コードを分析することで、挙動を調査する。一方、動的解析では、プログラムを計算機上で実行し、その時の振る舞いを観測することで、挙動を調査する。プログラムによっては、静的解析を阻止するために様々な防御策が講じられている。特に、昨今のマルウェア（malware：コンピュータウイルスやスパイウェアなどの不正プログラム）は、静的解析を阻止するために、ファイル構造を難読化・暗号化する場合が多いため、静的解析による調査には、長時間かかる、熟練した技術者が必要、という課題が発生している。一方、静的解析に比べて、動的解析は、実際の振る舞いを観測して、挙動を調査するため、ファイル難読化・暗号化による影響を受けにくく、比較的短時間に解析を完了することができる。
【０００３】
これに伴い、特許文献１、特許文献２、非特許文献１など、動的解析の処理を自動化し、効率的な解析を実現するシステムの研究開発が進んでいる。これらのシステムでは、実行環境でマルウェアを実行し、一定時間内に観測された挙動（たとえば、マルウェアのファイルアクセスやネットワーク通信）を取得し・解析する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１８１３３５号公報
【特許文献２】特開２００９−３７５４５号公報
【非特許文献】
【０００５】
【非特許文献１】IEEE International Conference of Communications 2008 Proceedings，“Malware Behavior Analysis in Isolated Miniature Network for Revealing Malware’s Network Activity”
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、プログラムによっては、起動してから一定時間経過してから、あるいは特定の日時にのみ、実質的な活動を行うものがある。また、Ｙ２Ｋ問題にあったように、特定の日時を過ぎると誤動作を起こすものがある。このようなプログラムを上述のシステムで解析する場合、解析に多くの時間がかかる、或いは解析に失敗するという問題がある。非特許文献１では、解析対象のマルウェアが、一定時間活動を停止するために実行する関数を無効化することで、解析の効率化を図っている。しかし、この方法は、関数実行後に時間経過を検証したり、特定の日時にのみ、活動を行うマルウェアに対しては、有効ではない。
【０００７】
本発明の目的は、起動後一定時間後或いは、特定の日時にのみ活動を行うプログラムに対する効率的な解析を行なうシステム及び方法を提供することにある。
【課題を解決するための手段】
【０００８】
開示するプログラム解析システムでは、プログラム実行環境の時間経過速度を調整しながら、プログラムの解析を行う装置である。プログラム解析システムの主な機能部は、解析管理部、検体実行部、活動記録部、活動解析部の４つである。ここで、「検体」とは、解析対象となるマルウェアである。解析管理部は、実行環境における時間経過速度およびプログラム実行開始時間、実行終了時間などの解析条件を設定する。検体実行部は、解析管理部の決定に従い、時間経過速度およびプログラム実行開始時間を調整し、実行終了時間までにプログラムを実行する。活動記録部は、実行環境を監視し、プログラムの活動記録を取得する。活動解析部は、活動記録を解析し、プログラムの挙動を明らかにする。さらに、解析管理部は、解析結果に基づき、解析条件を再設定し、再解析を行う。
【発明の効果】
【０００９】
本発明によれば、起動後一定時間後或いは、特定の日時にのみ活動を行うプログラムに対する効率的な解析が実現される。
【図面の簡単な説明】
【００１０】
【図１】本発明を実施するためのシステムの全体構成を示す図である。
【図２】システム管理装置の物理構成を示す図である。
【図３】システム管理装置の論理構成を示す図である。
【図４】検体実行装置の物理構成を示す図である。
【図５】検体実行装置の論理構成を示す図である。
【図６】タイマー装置の物理構成を示す図である。
【図７】活動解析装置の物理構成を示す図である。
【図８】活動解析装置の論理構成を示す図である。
【図９】解析シナリオDBのレコード例を示す図である。
【図１０】活動記録DBのレコード例を示す図である。
【図１１】再解析ルールDBのレコード例を示す図である。
【図１２】解析結果DBのレコード例を示す図である。
【図１３】記録ルールDBのレコード例を示す図である。
【図１４】解析ルールDBのレコード例を示す図である。
【図１５】管理席管理処理のフローチャートを示す図である。
【図１６】検体実行処理のフローチャートを示す図である。
【図１７】タイマー装置と時計部の関係を示す図である。
【図１８】時刻経過処理の調整処理のフローチャートを示す図である。
【図１９】活動記録処理のフローチャートを示す図である。
【図２０】活動解析処理のフローチャートを示す図である。
【図２１Ａ】発信器のパルスとＣＰＵへのクロック信号との対応関係を示す図である。
【図２１Ｂ】発信器のパルスとＣＰＵへのクロック信号との対応関係を示す図である。
【図２２】発信器のパルスとＣＰＵへのクロック信号との対応関係における各種設定モードを示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を、図面に示す実施例を基に説明する。本実施例では、起動してから活動するまでの時間や活動時刻が不明であるマルウェアを、３種類の装置がネットワークを介して連携して解析するシステムについて説明する。本実施例を説明した後に、変更例について述べる。
【００１２】
（システム構成）
図１は本発明を実施するためのシステムの全体構成を示す図である。本システムを構成する要素として、システム管理装置１００、検体実行装置２００、活動解析装置３００、通信ネットワーク４００の３つがある。
【００１３】
システム管理置１００は、１つ以上の公知のパーソナルコンピュータやワークステーション等の計算機により構成される。システム管理装置１００は、本システムで行われるマルウェア解析処理を管理する。また、解析対象となるマルウェア（以後、検体と呼ぶ）、実行環境で解析開始時に設定される時刻を指定する解析開始時間、解析を終了する時刻を指定する解析終了時間、時間経過速度を決定し、検体実行装置２００に指令する。システム管理装置１００の構成の詳細および、他の装置との通信の詳細については、後述する。
【００１４】
検体実行装置２００は、１つ以上の公知のパーソナルコンピュータやワークステーション等の計算機により構成される。検体実行装置２００は、システム管理装置１００から送信された指令に従い、実行環境で検体を実行する。また、実行の際、ファイルアクセスやネットワーク通信などの、検体の活動情報を記録する。検体実行装置２００の構成の詳細および、他の装置との通信の詳細については、後述する。
【００１５】
活動解析装置３００は、１つ以上の公知のパーソナルコンピュータやワークステーション等の計算機により構成される。活動解析装置３００は、検体実行装置２００が記録した、検体の活動情報を解析し、検体がどのような活動を行ったかを示す、活動記録を作成する。検体実行装置１００は、活動記録を参照して、再解析の有無や手順を決定する。活動解析装置３００の構成の詳細および、他の装置との通信の詳細については、後述する。
【００１６】
通信ネットワーク４００は、ＷＡＮ（World Area Network）やＬＡＮ（Local Area Network）、携帯電話、ＰＨＳ等の公衆回線網でもよい。
【００１７】
図１のライン１は、システム管理装置１００と検体実行装置２００との間の情報の論理的な流れを示す。同様に、ライン２は、検体実行装置２００と活動解析装置３００との間の除法の論理的なの流れを、ライン３は、活動解析装置３００とシステム管理装置１００との間の情報の論理的な流れを示す。ライン１、ライン２、ライン３とも、物理的な情報の伝達手段として、通信ネットワーク４００を用いる。また、物理的な情報の伝達は、各装置間で直接的に行われる必要はなく、外部記憶装置などを経由して行われてもよい。
【００１８】
ライン１を介しては、検体１０と解析シナリオ２０という２種類の情報が、システム管理装置１００から検体実行装置２００に伝達される。解析シナリオ２０には、検体実行装置２００内での時間経過速度３０、解析開始時刻４０、解析終了時刻５０が含まれる。解析シナリオ２０を受信した検体実行装置は実行環境の時刻を解析開始時刻４０に設定し、解析環境の時刻経過速度を時刻経過速度３０に設定する。そして、実行環境の時刻が解析終了時刻５０に達するまで、解析を行う。システム管理装置１００は、同時に１つ以上の解析シナリオ２０を送信する。
【００１９】
ライン２を介しては、活動記録６０が、検体実行装置２００から活動解析装置３００に伝達される。同様に、ライン３を介しては、解析結果７０が、活動解析装置３００からシステム管理装置１００に伝達される。
【００２０】
また、図１では、システム管理装置１００、検体実行装置２００、及び活動解析装置３００をそれぞれ別の処理装置構成したが、これらを１つの処理装置で実現しても良い。また、検体実行装置２００、及び活動解析装置３００がそれぞれ複数台あって、システム管理装置１００がこれらを管理する構成であっても良い。
【００２１】
図２は、システム管理装置１００の物理構成を示す図である。システム管理装置１００は、装置本体１１０と、入出力装置１８０から構成される。
【００２２】
装置本体１１０は、ＣＰＵ１２０、メモリ１３０、インタフェイス１４０、外部記憶装置１５０、バス１６０、検体保存装置１７０を備えている。
【００２３】
ＣＰＵ１２０は処理を実行するための演算装置である。メモリ１３０はＣＰＵ１２０で実行する命令のセットがプログラムとして記述されたデータを含む記憶媒体である。
【００２４】
メモリ１３０には、システム管理プログラム１３１が含まれている。そして、このシステム管理プログラム１３１がＣＰＵ１２０で実行されることによって、検体解析の管理を行う。具体的な管理手順については後述する。
【００２５】
インタフェイス１４０は、システム管理装置１００を通信ネットワーク４００と接続するための通信装置である。ＬＡＮカードなどの通信機器がこれに対応する。インタフェイス１４０は、図中においてＩＦと記述することがある。
【００２６】
外部記憶装置１５０は、ＨＤＤ(Hard Disk Drive)などの記憶媒体から構成され、解析シナリオＤＢ１５１、活動記録ＤＢ１５２、解析結果ＤＢ１５３、再解析ルールＤＢ１５４を記憶する。これらのＤＢの具体的内容については後述する。
【００２７】
バス１６０は、ＣＰＵ１２０、メモリ１３０、ＩＦ１４０、外部記憶装置１５０、検体保存装置１７０、入出力装置１８０を接続する。
【００２８】
検体保存装置１７０は、ＨＤＤなどの記憶媒体から構成され、解析中の検体１０を保存する。
【００２９】
入出力装置１８０はシステム管理装置１００に対して、管理者によるデータの入力、及びシステム管理装置１００内のデータの出力を行うための装置である。入出力装置の一例としては、キーボードやマウス、ディスプレイがある。具体的な入出力内容については後述する。
【００３０】
図３は、システム管理装置１００の機能的な構成、及び物理的な各装置との関係を示す図である。ＣＰＵ１２０は、解析管理部１２１を含んで構成される。解析管理部１２１の機能は、ＣＰＵ１２０による、システム管理プログラム１３１の実行によって具現化される。
【００３１】
解析管理部１２１は、検体１０の解析状況を管理するとともに、検体実行装置２００に、解析シナリオ２０を送信し、検体実行方法を指示する。また、活動解析装置３００から解析結果７０を受信し、再解析の有無や方法を判断する。詳細については、後述する。
【００３２】
図４は、検体実行装置２００の物理構成を示す図である。検体実行装置２００は、装置本体２１０と、入出力装置２９０から構成される。
【００３３】
装置本体２１０は、ＣＰＵ２２０、メモリ２３０、インタフェイス２４０、外部記憶装置２５０、バス２６０、タイマー装置２７０、イメージ保存装置２８０を備えている。
【００３４】
ＣＰＵ２２０は処理を実行するための演算装置である。メモリ２３０はＣＰＵ２２０で実行する命令のセットがプログラムとして記述されたデータを含む記憶媒体である。
【００３５】
メモリ２３０には、検体実行プログラム２３１、活動記録プログラム２３２、時計プログラム２３３が含まれている。検体実行プログラム２３１がＣＰＵ２２０で実行されることによって、時間経過速度を調整しながら、検体１０を実行する。活動記録プログラム２３２がＣＰＵ２２０で実行されることで、検体１０の活動記録６０を取得する。また、時計プログラム２３３は、ＣＰＵ２２０で実行されることで、検体１０及び、検体実行プログラム２３１、活動記録プログラム２３２に対して、検体実行装置２００における時刻情報を提供する。各プログラムの具体的な管理手順については後述する。
【００３６】
インタフェイス２４０は、検体実行装置２００を通信ネットワーク４００と接続するための通信装置である。ＬＡＮカードなどの通信機器がこれに対応する。インタフェイス２４０は、図中においてＩＦと記述することがある。
【００３７】
外部記憶装置２５０は、ＨＤＤなどの記憶媒体から構成され、記録ルールＤＢ２５１を記憶する。記録ルールＤＢには、活動記録プログラム２３２が、検体１０のどのような活動を記録するのかが記述されている。ＤＢの具体的内容については後述する。
【００３８】
バス２６０は、ＣＰＵ２２０、メモリ２３０、ＩＦ２４０、外部記憶装置２５０、タイマー装置２７０、イメージ保存装置２８０、入出力装置２９０を接続する。
【００３９】
タイマー装置２７０は、一定周期で振動する素子を含んでいるハードウェアであり、観測される振動数を基に時間経過を測定する。そして、一定時間が経過するごとにＣＰＵ２２０に対して信号を送信する。ＣＰＵ２２０は信号を受信することで、時間経過を知ることができる。タイマー装置２７０の詳細については後述する。
【００４０】
イメージ保存装置２８０は、ＨＤＤなどの記憶媒体から構成され、実行環境イメージ２８１を記憶する。実行環境イメージ２８１は、一般的なオペレーティングシステムの構成情報を含んでいるファイルであり、ＣＰＵ２２０上で実行されると、検体１０を実行するためのソフトウェア環境を提供する。また、イメージ保存装置２８０には、検体１０が実行中に作成・変更したファイルやレジストリに関する情報が、一時的に保存される。
【００４１】
入出力装置２９０は検体実行装置２００に対して、管理者によるデータの入力、及び検体実行装置２００内のデータの出力を行うための装置である。入出力装置の一例としては、キーボードやマウス、ディスプレイがある。具体的な入出力内容については後述する。
【００４２】
図５は、検体実行装置２００の機能的な構成、及び物理的な各装置との関係を示す図である。ＣＰＵ２２０は、検体実行部２２１、活動記録部２２２、時計部２２３を含んで構成される。検体実行部２２１の機能は、ＣＰＵ２２０による、検体実行プログラム２３１の実行によって具現化される。活動記録部２２２の機能は、ＣＰＵ２２０による、活動記録プログラム２３２の実行によって具現化される。時計部２２３の機能は、ＣＰＵ２２０による、時計プログラム２３３の実行によって具現化される。
【００４３】
検体実行部２２１は、システム管理装置１００から受信した検体１０を、解析シナリオ２０に従って実行する。この際に、タイマー装置２７０にアクセスし、時間経過速度の調整を行う。詳細については後述する。
【００４４】
活動記録部２２２は、検体実行部２２１により実行される検体１０の活動を記録し、活動記録６０として、活動解析装置３００に送信する。詳細については後述する。
【００４５】
時計部２２３は、タイマー装置２７０からの信号を、バス２６０を介して受信し、検体実行装置２００における現在時刻を決定する。現在時刻を決定する手順の詳細については後述する。また、検体１０は、時計装置２２３を参照することで、現在時刻を把握する。例えば、検体１０が、２０１０年１２月３１日0時0分0秒に特定の活動を開始するようにプログラムされている場合、時計部２２３における時刻が２０１０年１２月３１日0時0分0秒になった時に、活動を開始する。
【００４６】
図６に、タイマー装置２７０の物理構成を示す。タイマー装置２７０は、発振器２７１、カウンタレジスタ２７２、カウンタ最大値レジスタ２７３、バス２７４から構成される。
【００４７】
発振器２７１は、水晶など、一定周期で振動する（パルスを発生する）特性を持つ素子である。発振器２７１は、振動の度に、バス２７４を介して、カウンタレジスタ２７２に信号を与える。たとえば、振動周期が１Ｍ（＝１００００００）Ｈｚである発振器の場合、１マイクロ秒に一回の割合で振動し、カウンタレジスタ２７２に信号を与える。
【００４８】
カウンタレジスタ２７２は、一定桁数の数値を記憶することができる素子である。カウンタレジスタ２７２は、発振器２７１から信号を受け取ると、記憶している値を＋１加算する。カウンタレジスタ２７２は、内部値が＋１加算される度に、バス２７４を介して、カウンタ最大レジスタ２７３に記憶された値と比較する。そして、カウンタレジスタ２７２の値がカウンタ最大値レジスタ２７３内の値と同値になった場合、バス２６０を介して、ＣＰＵ２２０に信号（クロック信号）を送信する。信号送信後、カウンタレジスタ２７２の値は０にリセットされる。
【００４９】
カウンタ最大値レジスタ２７３には、特定の値が格納されている素子であり、前述の通り、カウンタレジスタ２７２内の値と比較される。
【００５０】
例として、発振器２７１の振動周期が１ＭＨzで、カウンタ最大値レジスタ２７３の値が１００００である場合、１秒間に１００（＝１Ｍ／１００００）回、カウンタレジスタ２７２の値はカウンタ最大レジスタ２７３の値と等しくなり、信号がＣＰＵ２２０に送信される。
【００５１】
また、タイマー装置２７０の構成として、カウンタレジスタ２７２の値を、発振器２７１の振動の度に、＋１加算するのではなく、特定の値だけ加算してもよいし、加算の場合は、加算される値が大きくなるほど、信号がＣＰＵ２２０に送信される期間が短くなる。たとえば、発振器２７１の振動周期が１ＭＨz、カウンタ最大値レジスタ２７３の値が１００００の場合、カウンタレジスタ２７２の加算値が＋２であれば、１秒間に５０回の信号が発生する。
【００５２】
以上に述べた、発信器のパルスとＣＰＵへのクロックとの対応関係を図示したものを図２１Ａ及び図２１Ｂに示す。図２１Ａ及び２１Ｂでは、カウンタ加算値をα、カウンタ最大値をβとして、αとβの組合せを変えたものを図示している。図２１Ａは、カウンタ加算値αをα＝１に固定し、カウンタ最大値βを可変した時の対応関係を示す。図２１Ｂは、カウンタ最大値βをβ＝４に固定し、カウンタ加算値αを可変した時の対応関係を示す。図２１に示した傾きの異なるいくつかの破線は、図中の階段関数の抱落線(envelope)であり、パルス（Ｔｐ）とクロック（Ｔｃ）との対応関係Ｔｃ＝（α／β）Ｔｐを示す。但し、α≦βであり、αとβとの比で対応関係が決まり、この比率を変えることでクロックの「高速化」又は「低速化」が実現できる。従って、図２１Ａのβ＝２と図２１Ｂのα＝２の対応関係は同じ（いずれも２パルス増加すると１クロック増加する）。
【００５３】
また、カウンタレジスタ２７２の値を減算することによってクロックを発生させる場合、カウンタレジスタ２７２の値が０になる度に、信号を送信する。そして、信号送信後に、カウンタレジスタ２７２の値は、カウンタ最大値レジスタ２７３の値にリセットされる。また、処理の進行を停止させる際には、タイマー装置２７０のカウント処理を停止させる。
【００５４】
以上で述べた、発信器のパルスとＣＰＵへのクロックとの対応関係における各種設定モードを図示したものを図２２に示す。即ち、プログラムの通常動作時の対応関係である「通常」、発信器のパルスよりもクロックを早く進行させる「高速化」、タイマー動作を停止させて処理の進行を停止する「停止」、クロックの値を所定の値に変更して処理の進行を不連続に変更する「設定変更」、及び、発信器のパルスよりもクロックを遅く進行させる「低速化」の各設定モードが指定される。
【００５５】
バス２６０は、発振器２７１、カウンタレジスタ２７２、カウンタ最大値レジスタ２７３を接続する。
【００５６】
図７は、活動解析装置３００の物理構成を示す図である。活動解析装置３００は、装置本体３１０と、入出力装置３７０から構成される。
【００５７】
装置本体３１０は、ＣＰＵ３２０、メモリ３３０、インタフェイス３４０、外部記憶装置３５０、バス３６０を備えている。
【００５８】
ＣＰＵ３２０は処理を実行するための演算装置である。メモリ３３０はＣＰＵ３２０で実行する命令のセットがプログラムとして記述されたデータを含む記憶媒体である。
【００５９】
メモリ３３０には、活動解析プログラム３３１が含まれている。そして、この活動解析プログラム３３１がＣＰＵ３２０で実行されることによって、活動記録６０の解析を行う。具体的な解析手順については後述する。
【００６０】
インタフェイス３４０は、活動解析装置３００を通信ネットワーク４００と接続するための通信装置である。ＬＡＮカードなどの通信機器がこれに対応する。インタフェイス３４０は、図中においてＩＦと記述することがある。
【００６１】
外部記憶装置３５０は、ＨＤＤなどの記憶媒体から構成され、解析ルールＤＢ３５１を記憶する。これらのＤＢの具体的内容については後述する。
【００６２】
バス３６０は、ＣＰＵ３２０、メモリ３３０、ＩＦ３４０、外部記憶装置３５０、入出力装置３７０を接続する。
【００６３】
入出力装置３７０は、活動解析装置３００に対して、管理者によるデータの入力、及びシステム管理装置１００内のデータの出力を行うための装置である。入出力装置の一例としては、キーボードやマウス、ディスプレイがある。具体的な入出力内容については後述する。
【００６４】
図８は、システム管理装置３００の機能的な構成、及び物理的な各装置との関係を示す図である。ＣＰＵ３２０は、活動解析部３２１を含んで構成される。活動解析部３２１の機能は、ＣＰＵ３２０による、活動解析プログラム３３１の実行によって具現化される。
【００６５】
活動解析部３２１は、検体事項装置２００が作成した活動記録６０の内容を解析して、検体１０の解析結果７０を出力する。詳細については、後述する。
【００６６】
（処理の説明）
図９以降に、本システムに含まれるＤＢの構成例及び各機能部のフローチャートを示す。
【００６７】
図９以降の構成例は、以下の手順で検体１０の解析が行われたことを想定している。
【００６８】
２０１１／９／１５  １７：００：００に、解析管理装置１００が、検体１０の解析を開始する。解析では、検体実行装置２００に対して、２０１２／１／１  ００：００：００から２０１２／１／１  ２３：５９：５９までの４８時間の期間の処理を、実時間の７２倍速の時間経過速度で、検体Ａ（に対する処理）を実行するように指示する。即ち、４８時間の期間の処理を４０分（４８／７２＝２／３時間）で実行する。実行完了後、活動記録を、活動解析装置３００が解析し、解析結果を出力する。解析結果を参照すると、解析に失敗した期間があったため、解析管理装置１００は、検体１０の再解析を行う。再解析では、検体実行装置２００に対して、２０１２／１／１  １１：５５：００から２０１２／１／１  １２：００：０５までの期間と、２０１２／１／２  １１：５５：００から２０１２／１／２  １２：００：０５までの期間、実時間と同じ時間経過速度（１倍速）で検体Ａを実行するように指示する。再解析は成功したため、検体Ａに対する解析は完了する。
【００６９】
（各種テーブル）
図９は、解析シナリオＤＢ１５１の構成を示す図である。解析シナリオＤＢ１５１内の各レコードは、ある検体に対する、検体解析の方法や解析状況を記憶する。各レコードは、システム管理装置１００が解析シナリオを決定した時点で、解析シナリオＤＢ１５１内に保存される。
【００７０】
解析管理ＩＤ５０１は、解析シナリオＤＢ１５１内のレコードを一意に認識するのに用いられる。このため、各解析管理ＩＤ５０１の値は、解析シナリオＤＢ１５１内でユニークである。
【００７１】
レコード作成時刻５０２は、各レコードが作成された時刻を示す。レコード作成時刻５０２には、システム管理装置１００内の時刻が適用される。
【００７２】
検体ＩＤ５０３は、本システムで解析される各検体を一意に識別するための番号である。異なるレコードに同一の検体ＩＤ５０３が設定されている場合、同一検体が複数回、異なる条件で解析されていることを意味する。
【００７３】
解析開始時刻５０４は、検体実行装置２００が検体１０の実行を開始する時刻を、検体実行装置２００内の時刻で示す。このため、レコード作成時刻５０２とは大きく異なる値が入力される場合がある。解析終了時刻５０５は、検体実行装置２００が検体１０の実行を終了する時刻を、検体実行装置２００内の時刻で示す。このため、レコード作成時刻５０２とは大きく異なる値が入力される場合がある。
【００７４】
時間経過速度５０６は、検体の実行を行う検体実行装置２００内のタイマー装置２７０が管理する時間の経過速度を、通常の時間経過速度の倍率として表現している。時間経過速度５０６は、正数を取る。たとえば、時間経過速度５０６＝１０倍速である場合、通常の時間の流れで１秒が経過する間に、タイマー装置２７０が管理する時間では、１０秒が経過する。同様に、時間経過速度５０６＝０．１倍速である場合、通常の時間の流れで１秒が経過する間に、タイマー装置２７０が管理する時間では、０．１秒が経過することになる。
【００７５】
本実施例では、検体実行速度５０６の下限値及び上限値、及び粒度（０．１刻みなど）は指定していない。しかし、検体実行装置２００のタイマー装置２７０の性能によっては、下限値または上限値、及び粒度が定まっていてもよい。
【００７６】
解析状況５０７は、当該解析シナリオの実行状況を示す。解析状況５０７が取りうる値としては、「完了」もしくは「解析中」である。「完了」の場合、当該解析シナリオの実行及び解析は完了している。「解析中」の場合、当該解析シナリオは、検体が実行中であるか、実行結果が解析中である。
【００７７】
図９には、３種類の解析シナリオのレコードの例が示されている。解析管理ＩＤ＝１のレコードは、レコード作成時間は２０１１／９／１５  １７：００であり、解析対象の検体は、検体Ａである。システム管理装置１００は、検体実行装置２００に対して、検体Ａを、２０１２／１／１  ０：００：００から２０１２／１／２  ２３：５９：５９までの４８時間に渡って実行するように指示している。また、時間経過速度５０６としては、７２倍速を指定している。このため、実時間での検体実行時間は、４０分（＝４８／７２＊６０）となる。解析状況５０７は「完了」となっている。
【００７８】
解析管理ＩＤ＝２のレコードは、レコード作成時間は２０１１／９／１５  １７：５０であり、解析対象の検体は、解析ＩＤ＝１のレコードと同様、検体Ａである。システム管理装置１００は、検体実行装置２００に対して、検体Ａを、２０１２／１／１  １１：５５：００から２０１１／１／１  １２：０５：００までの１０分に渡って実行するように指示している。また、時間経過速度５０６としては、１倍速（＝実時間の経過速度と同じ）を指定している。このため、実時間での検体実行時間は、１０分となる。解析状況５０７は「完了」となっている。
【００７９】
解析管理ＩＤ＝３のレコードは、レコード作製時間は２０１１／９／１５  １７：５０であり、解析対象の検体は、解析ＩＤ＝１のレコードと同様、検体Ａである。システム管理装置１００は、検体実行装置２００に対して、検体Ａを、２０１２／１／２  １１：５５：００から２０１１／１／２  １２：０５：００までの１０分に渡って実行するように指示している。また、時間経過速度５０６としては、１倍速（＝実時間の経過速度と同じ）を指定している。このため、実時間での検体実行時間は、１０分となる。解析状況５０７は「実行中」となっている。
【００８０】
図１０は、活動記録ＤＢ１５２の構成を示す図である。活動記録ＤＢ１５２には、検体実行装置２００で検体１０が実行されている際に、活動記録部２２２が取得した検体１０の活動記録６０が記録されている。具体的に、検体１０のどのような活動記録を記録するのかについては、後述の記録ルールＤＢ２５１にて指定する。
【００８１】
活動記録ＩＤ６０１は、活動記録ＤＢ１５２内のレコードを一意に認識するのに用いられる。このため、活動記録ＩＤ６０１の値は、活動記録ＤＢ１５２内でユニークである。解析管理ＩＤ６０２は、活動記録ＤＢ１５２内の各レコードが対応する解析シナリオＤＢ１５１内のレコードを、解析管理ＩＤ５０１で指定する。すなわち、当該レコードは、解析管理ＩＤ６０２で指定される解析シナリオを実行中に記録された検体１０の活動記録である。
【００８２】
活動記録時刻６０３は、各レコードが記録された時刻を、検体実行装置２００内の時刻として記録する。このため、実時間とは大きく異なる場合がある。
【００８３】
活動種類６０４は、どのような種類の活動を記録したかを示す。図１０では、例として「ＩＰ（Internet Protocol）パケット」と「デスクトップ画像」を示している。「ＩＰパケット」は、検体１０が送受信したＩＰパケットを意味する。「デスクトップ画像」は、入出力装置２９０に表示される、検体１０を含む実行環境が描画した画像を意味する。そのほかの、活動種類６０４の変更例としては、検体１０が呼び出した「関数」や、検体１０が実行中に作成された「作成ファイル」や「作成レジストリ」等が考えられる。
【００８４】
活動データ６０５は、実際に記録されたデータを意味する。活動種類６０４が「ＩＰパケット」の場合、対応する活動データ６０５は、ＩＰパケットのバイナリデータとなる。活動種類６０４が「デスクトップ画像」の場合、対応する活動データ６０５は、デスクトップ画像の画像データとなる。
【００８５】
図１０には、活動記録ＤＢ１５２のレコードの例が６種類示されている。活動記録ＩＤ６０１＝１であるレコードは、解析管理ＩＤ６０２＝１の実行時に取得された活動記録である。活動記録時刻６０３は２０１１／０１／０１  １２：００：００であり、活動種類６０４は、「ＩＰパケット」、活動データ６０５は「ＡＡＡＡＡ．．．」である。
【００８６】
活動記録ＩＤ６０１＝２であるレコードは、先述同様、解析管理ＩＤ６０２＝１の実行時に取得された活動記録である。活動記録時刻６０３は２０１１／０１／０１  １８：００：００であり、活動種類６０４は、「デスクトップ画像」、活動データ６０５は「ＢＢＢＢＢ．．．」である。
【００８７】
活動記録ＩＤ６０１＝３であるレコードは、先述同様、解析管理ＩＤ６０２＝１の実行時に取得された活動記録である。活動記録時刻６０３は２０１１／０１／０２  １２：００：００であり、活動種類６０４は、「ＩＰパケット」、活動データ６０５は「ＣＣＣＣＣ．．．」である。
【００８８】
活動記録ＩＤ６０１＝４であるレコードは、先述同様、解析管理ＩＤ６０２＝１の実行時に取得された活動記録である。活動記録時刻６０３は２０１１／０１／０２  １８：００：００であり、活動種類６０４は、「デスクトップ画像」、活動データ６０５は「ＤＤＤＤＤ．．．」である。
【００８９】
活動記録ＩＤ６０１＝５であるレコードは、解析管理ＩＤ６０２＝２の実行時に取得された活動記録である。活動記録時刻６０３は２０１１／０１／０１  １２：００：００であり、活動種類６０４は、「ＩＰパケット」、活動データ６０５は「ＥＥＥＥＥ．．．」である。
【００９０】
活動記録ＩＤ６０１＝６であるレコードは、解析管理ＩＤ６０２＝３の実行時に取得された活動記録である。活動記録時刻６０３は２０１１／０１／０２  １２：００：００であり、活動種類６０４は、「ＩＰパケット」、活動データ６０５は「ＦＦＦＦＦ．．．」である。
【００９１】
図１１は、解析結果ＤＢ１５３の構成を示す図である。解析結果ＤＢ１５３は、活動解析装置３００が作成した解析結果７０を保存する。各レコードは、活動解析装置３００の解析の結果明らかになった、検体１０が行った活動の内容、及び活動時間を示す。
【００９２】
解析は、活動記録ＤＢ１５２を基に行われるが、活動記録ＤＢ１５２内のレコードと解析結果ＤＢ１５３内のレコードは、一対一に対応する必要はない。例えば、１つの活動記録レコードから、複数の解析結果レコードが作成される場合もあれば、複数の解析結果レコードから、１つの解析結果レコードが作成される場合もある。
【００９３】
解析結果ＩＤ７０１は、解析結果ＤＢ１５３内のレコードを一意に認識するのに用いられる。このため、解析結果ＩＤ７０１の値は、解析結果ＤＢ１５３内でユニークである。解析管理ＩＤ７０２は、解析結果ＤＢ１５２内の各レコードが対応する解析シナリオＤＢ１５１内のレコードを、解析管理ＩＤ５０１で指定する。すなわち、当該レコードは、解析管理ＩＤ７０２で指定される解析シナリオを実行中に作成された活動記録を解析した結果となる。
【００９４】
レコード作成時刻７０３は、当該レコードが作成された時刻を、活動解析装置３００内の時刻で記録する。活動開始時刻７０４は、当該レコードが示す活動が開始された時刻を、検体１０の実行時の、検体実行装置２００内の時刻で記録する。このため、実時間とは大きく異なる場合がある。活動開始時刻７０５は、当該レコードが示す活動が終了された時刻を、検体１０の実行時の、検体実行装置２００内の時刻で記録する。このため、実時間とは大きく異なる場合がある。
【００９５】
活動内容７０６は、解析の結果、明らかになった、検体１０の活動内容を示す。検体属性７０７は、活動内容７０６に基づいて明らかになった、検体１０の属性、すなわち、検体１０が、どのようなマルウェアのグループに分類されるのかを示す。活動内容７０６から、検体属性７０７を決定できない場合は、「不明」が記録される。
【００９６】
解析成否７０８は、当該レコードが示す解析が成功したか否かを示す。解析が成功した場合は「成功」が、解析が失敗した場合は、「失敗」が記述される。解析の成否は、活動内容７０６に基づき、検体属性７０７を決定できたか否か、などにより決定される。後述のように、解析成否７０８が「失敗」の場合、システム管理装置１００は、解析シナリオを変えて、再解析を行う場合がある。
【００９７】
図１１には、解析結果ＤＢ１５３のレコードの例が６種類示されている。
【００９８】
解析結果ＩＤ７０１＝１のレコードは、解析管理ＩＤ７０２＝１である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、２０１１／０９／１５  １７：４０：０８である。当該レコードの解析内容７０６によると、２０１１／１／１  １２：００：００から２０１１／１／１  １２：００：００の間に、検体実行装置２００のＩＰアドレス（１２７．０．０．１）から、ＩＰアドレスが１９２．１６８．０．１である別の端末のＴＣＰ（Transfer Control Protocol）の８０番ポートに対して、接続を試行し、失敗している。このため、検体属性７０７は、「不明」となっており、解析成否７０８は「失敗」となる。
【００９９】
解析結果ＩＤ７０１＝２のレコードは、解析管理ＩＤ７０２＝１である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、２０１１／０９／１５  １７：４０：０８である。当該レコードの解析内容７０６によると、２０１１／１／１  １８：００：００から２０１１／１／１  １８：０１：００の間に、ユーザに対して入金を要求するダイアログを表示する。これは、「偽アンチウイルスソフト」というマルウェアに固有の活動である。このため、検体属性７０７は、「偽アンチウイルスソフト」となり、解析成否７０８は「成功」となる。
【０１００】
解析結果ＩＤ７０１＝３のレコードは、解析管理ＩＤ７０２＝１である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、２０１１／０９／１５  １７：４０：０８である。当該レコードの活動内容７０６によると、２０１１／１／２  １２：００：００から２０１１／１／２  １２：００：００の間に、検体実行装置２００のＩＰアドレス（１２７．０．０．１）から、ＩＰアドレスが１９２．１６８．０．１である別の端末のＴＣＰの８０番ポートに対して、接続を試行し、失敗している。このため、検体属性７０７は、「不明」となっており、解析成否７０８は「失敗」となる。
【０１０１】
解析結果ＩＤ７０１＝４のレコードは、解析管理ＩＤ７０２＝１である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、２０１１／０９／１５  １７：４０：０８である。当該レコードの活動内容７０６によると、２０１１／１／２  １８：００：００から２０１１／１／２  １８：０１：００の間に、ユーザに対して入金を要求するダイアログを表示する。このため、検体属性７０７は、「偽アンチウイルスソフト」となり、解析成否７０８は「成功」となる。
【０１０２】
解析結果ＩＤ７０１＝５のレコードは、解析管理ＩＤ７０２＝２である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、２０１１／０９／１５  １８：００：０８である。当該レコードの活動内容７０６によると、２０１１／１／１  １２：００：００から２０１１／１／１  １２：０１：００の間に、検体実行装置２００のＩＰアドレス（１２７．０．０．１）から、ＩＰアドレスが１９２．１６８．０．１である別の端末のＴＣＰの８０番ポートに対して、外部とのやり取りを行なう機能を有するコンピュータウイルスである「ボット」という種類のマルウェアが「Ｃ＆Ｃ通信」を行っている。このため、検体属性７０７は、「ボット」となっており、解析成否７０８は「成功」となる。
【０１０３】
解析結果ＩＤ７０１＝６のレコードは、解析管理ＩＤ７０２＝３である解析シナリオの結果作成されたレコードである。レコードの作成時刻は、２０１１／０９／１５  １８：００：０８である。当該レコードの活動内容７０６によると、２０１１／１／２  １２：００：００から２０１１／１／２  １２：０１：００の間に、検体実行装置２００のＩＰアドレス（１２７．０．０．１）から、ＩＰアドレスが１９２．１６８．０．１である別の端末のＴＣＰの８０番ポートに対して「Ｃ＆Ｃ通信」を行っている。このため、検体属性７０７は、「ボット」となっており、解析成否７０８は「成功」となる。
【０１０４】
図１２は、再解析ルールＤＢ１５４の構成を示す図である。再解析ルールＤＢ１５４は、システム管理装置１００が、解析結果ＤＢ１５３の内容を踏まえ、検体１０の再解析を行う必要があるかどうかを判断するのに用いられる。各レコードは、解析結果ＤＢ１５３のレコードが満たすべき条件と、条件が満たされた場合の再解析の有無、の対応により構成される。
【０１０５】
再解析ルールＩＤ８０１は、各レコードを一意に識別するのに用いられる。このため、再解析ルールＩＤ８０１の値は、再解析ルールＤＢ１５４の中でユニークである。
【０１０６】
解析結果条件８０２は、再解析ルールを適用するで、解析結果ＤＢ１５３のレコードが満たすべき条件が示されている。条件は、解析結果ＤＢ１５３のレコードの各カラム、及び当該レコードから参照される解析シナリオＤＢ１５１のレコードの各カラムを用いた論理式として表現される。
【０１０７】
再解析判定８０３は、解析結果ＤＢ１５３のレコードが解析結果条件８０２を満たした場合に、再解析を行うかどうかを定義する。再解析判定８０３の値は「必要」又は「不必要」の２値をとる。「必要」の場合、再解析は行われることになる。「不必要」の場合、再解析は行われない。
【０１０８】
再解析シナリオ８０４は、再解析判定８０３が「必要」の場合、新たに作成する解析シナリオ２０を再度決定する。具体的には、解析結果ＤＢ１５３のレコードの値を参照しながら、新たに追加される解析シナリオＤＢ１５１レコードの各カラムが取るべき値を決定する。なお、再解析判定８０３が「不要」であるレコードについては、再解析シナリオ８０４は空白となる。
【０１０９】
図１２には、再解析ルールＤＢ１５４のレコードの例が３種類示されている。
【０１１０】
再解析ルールＩＤ＝１のレコードは、解析結果条件８０２が、解析成否７０８＝“失敗”で、且つ、時間経過速度５０６が一倍速より大きい場合適応される。再解析判定８０３が「必要」のため、再解析が行われる。再解析シナリオ８０４では、時間経過速度５０６を一倍速に、解析開始時刻５０４が活動開始時刻７０４の値−５分に、解析終了時刻５０５が活動終了時刻７０５の値＋５分となるような、解析シナリオ２０を指定する。
【０１１１】
再解析ルールＩＤ＝２のレコードは、解析結果条件８０２が、解析成否７０８＝“失敗”で、且つ、時間経過速度５０６が一倍速以下の場合に適応される。この場合、再解析判定８０３が「不要」のため、再解析は行われない。よって、再解析シナリオ８０４は空白となる。
【０１１２】
再解析ルールＩＤ＝３のレコードは、解析結果条件８０２が、解析成否７０８＝“成功”の場合に適応される。この場合、再解析判定８０３が「不要」のため、再解析は行われない。よって、再解析シナリオ８０４は空白となる。
【０１１３】
図１３は、記録ルールＤＢ２５１の構成を示す図である。記録ルールＤＢ２５１は、活動記録部２２２が、検体１０の活動のうち、どれを記録するのかを決定する。
【０１１４】
記録ルールＩＤ９０１は、記録ルールＤＢ２５１のレコードを一意に識別するのに用いられる。このため、記録ルールＩＤ９０１の値は、記録ルールＤＢ２５１の中でユニークである。
【０１１５】
記録条件９０２は、検体１０の活動がどのような条件を満たしたときに、活動を記録するのかを指定する。記録内容９０３は、具体的に記録する情報の内容を指定する。活動記録部２２２は、検体１０が記録条件９０２に当てはまる活動をしているか判断できる機能と、記録内容９０３で指定する情報を記録できる機能を、有しているものとする。
【０１１６】
図１３には、記憶ルールＤＢ２５１のレコードの例が２種類示されている。
【０１１７】
記憶ルールＩＤ９０１＝１のレコードは、記録条件９０２が「パケット送信時」のときに、記録内容９０３に示されるように「パケット内データ」を記録する。具体的には、活動記録部２５２は、ＩＦ２４０を観測することで、記録条件９０２を満たす活動を観測できる。さらに、ＩＦ２４０からパケットデータを取得することで、記録条件９０３に示す情報を取得することができる。
【０１１８】
記憶ルールＩＤ９０１＝２のレコードは、記録条件９０２が「デスクトップ画面更新時」のときに、記録内容９０３に示されるように「デスクトップ画面の画像」を記録する。具体的には、活動記録部２２２は、入出力装置２９０を観測することで、記録条件９０２を満たす活動を観測できる。さらに、入出力装置２９０から画像データを取得することで、記録内容９０３に示す情報を取得することができる。
【０１１９】
また、図１３には示されていない、その他の例として、検体１０が実行されるメモリ２３０を監視することで、検体１０の特定の関数からの呼び出しを観測し、関数に渡された引数や関数の実行結果を記録することができる。また、イメージ保存装置２８０を監視することで、検体１０が作成・変更したファイルやレジストリの情報を観測・取得することができる。
【０１２０】
図１４は、解析ルールＤＢ３５１の構成を示す図である。活動解析部３２１は、解析ルールＤＢ３５１内のレコードを読み込み、解析ルールＤＢ３５１内のレコードで指定された解析を行う。
【０１２１】
解析ルールＩＤ１００１は、解析ルールＤＢ３５１のレコードを一意に識別するのに用いられる。このため、解析ルールＩＤ１００１の値は、解析ルールＤＢ３５１の中でユニークである。解析内容１００２は、具体的な解析方法が記述されている。
【０１２２】
図１４には、解析ルールＤＢ３５１のレコードの例が３種類示されている。
【０１２３】
解析ルールＩＤ１００１＝１のレコードは、解析ルールＤＢ３５１内のレコードに示されるＴＣＰ通信内に、特定文字列（ＰＯＮＧ，ＪＯＩＮ，ＮＩＣＫ等）が有る場合、通信をＩＲＣ通信と判定し、検体１０に、ボットの属性があると判断する。また、当該レコードに対する解析結果は、「解析成功」と判定する。
【０１２４】
解析ルールＩＤ１００１＝２のレコードは、解析ルールＤＢ３５１内のレコードに示される画像から、検体が出力したダイアログ画面を抽出する。抽出されたダイアログが、「ユーザに入金を要求する」ものである場合、検体１０に、偽アンチウイルスソフトの属性があると判断する。 また、当該レコードに対する解析結果は、「解析成功」と判定する。
【０１２５】
解析ルールＩＤ１００１＝３のレコードは、時間経過速度の調整の影響で、ネットワーク接続が正常に行われなかったケースが解析ルールＤＢ３５１内のレコードから発見された場合に、検体１０の属性は不明であると判断する。また、当該レコードに対する解析結果を「解析失敗」と判定する。 
（処理手順の詳細）
図１５は、解析管理部１２１で実行される、解析管理部処理のフローチャートである。このフローチャートでは、検体が投入されてから、解析が完了するまでの一連の流れを示している。
【０１２６】
処理Ｓ２００１では、検体１０がシステム管理装置１００を通じて、検体解析部１２１に投入される。投入方法としては、ＩＦ１４０を介して別の端末から検体１０を投入してもよいし、入出力装置１８０を介して、投入されてもよい。投入された検体１０は、検体保存装置１７０に保存される。
【０１２７】
処理Ｓ２００２では、解析管理部１２１は、解析シナリオ２０の決定を行う。具体的には、時間経過速度３０、解析開始時刻４０、解析終了時刻５０を決定する。各項目で決定される値は、予め定まった標準値でもよいし、入出力１８０を介して、解析者が、その都度登録してもよい。
【０１２８】
処理Ｓ２００３では、解析管理部１２１は、処理Ｓ２００２で定まった解析シナリオ２０を、解析シナリオＤＢ１５１に保存する。この際、解析管理ＩＤ５０１にはユニークな値が、レコード作成時刻５０２には保存時刻が、解析状況５０７には、「解析中」が登録される。
【０１２９】
処理Ｓ２００４では、ライン１を通じて、検体１０と、１つ以上の解析シナリオ２０が、解析管理部１２１から、検体実行装置２００の検体実行部２２１に送信される。
【０１３０】
処理Ｓ２００５では、解析管理部１２１は、解析結果ＤＢ１５３に新しいレコードが追加されるまで、即ち、活動解析装置３００内の活動解析部３２１による活動解析が完了するまで待機する。解析結果ＤＢ１５３に新しいレコードが追加されたことの通知方法としては、解析結果ＤＢ１５３に、解析管理部１２１に信号を送るような仕組みがあってもよいし、活動解析部３２１から解析管理部１２１に直接通知が送信されるような仕組みがあってもよい。
【０１３１】
処理Ｓ２００６では、解析管理部１２１は、解析結果ＤＢ１５３を読み込み、新しく追加されたレコードを取得する。
【０１３２】
処理Ｓ２００７では、解析管理部１２１は、読み込んだ解析結果ＤＢ１５３を基に、再解析が必要であるかどうかを判定する。基本的な方針としては、再解析ルールＤＢ１５４内のレコードに従い、再解析判定８０３＝「必要」と判断されるような、解析結果ＤＢ１５３のレコードが1つ以上ある場合、再解析が必要であると判断する。また、入出力装置１８０を介して解析結果ＤＢ１５３のレコードを管理者に提示して、最終的な判断を行ってもよい。
【０１３３】
処理Ｓ２００８では、処理Ｓ２００７で、再解析が必要＝「ＹＥＳ」と判断された場合に、解析管理部１２１は、再解析ルールＤＢ１５４内のレコードに従い、解析シナリオの再設定を行う。再設定後、処理はＳ２００３に戻る。
【０１３４】
処理Ｓ２００９では、処理Ｓ２００７で、再解析が必要＝「ＮＯ」と判断された場合に、解析管理部１２１は、解析結果を出力する。出力内容としては、解析シナリオＤＢ１５１と解析結果ＤＢ１５３内のレコードを、入出力装置１８０を通じて管理者に提示してもよいし、ネットワーク４００を介して、別の装置に送信してもよい。
【０１３５】
次に、図９、図１１、図１２内のレコード例を用いて、図１５で行われる処理の具体例を説明する。
【０１３６】
まず、処理Ｓ２００１では、解析管理部は、検体Ａを取得して、検体保存装置１７０に保存する。処理Ｓ２００２では、検体Ａの解析シナリオとして、時間経過速度３０＝７２倍速、解析開始時刻４０＝２０１２／１／１  ００：００：００、解析終了時刻５０＝２０１２／１／２  ２３：５９：５９を決定する。
【０１３７】
処理Ｓ２００３では、決定された解析シナリオを、解析シナリオＤＢ１５１に、解析管理ＩＤ＝１のレコードとして保存する。処理Ｓ２００４では、検体Ａと、解析管理ＩＤ＝１に対応する解析シナリオ２０を、検体実行装置２００に送信する。処理Ｓ２００５では、解析結果ＩＤ７０１＝１、２，３，４である４つのレコードが、解析結果ＤＢ１５３に出力されるまで、待機する。処理Ｓ２００６では、解析結果ＩＤ７０１＝１〜４の解析結果ＤＢ１５３内のレコードを読み込む。
【０１３８】
処理Ｓ２００７では、解析結果ＩＤ７０１＝１，３の解析結果ＤＢ１５３内のレコードの解析成否７０８が「失敗」となっており、再解析ルールＤＢ１５４の再解析ルールＩＤ＝1のレコードを基に、再解析が必要＝「ＹＥＳ」と判断される。
【０１３９】
処理Ｓ２００８では、再解析ルールＤＢ１５４に基づき、解析シナリオ２０が再設定される。具体的には、解析結果ＩＤ７０１＝１のレコードに対応する解析シナリオ２０として「時間経過速度３０＝１倍速、解析開始時刻４０＝２０１２／１／１  １１：５５：００、解析終了時刻５０＝２０１２／１／２  １２：０５：００」が、解析結果ＩＤ＝３のレコードに対応する解析シナリオ２０として、「時間経過速度３０＝１倍速、解析開始時刻４０＝２０１２／１／１  ００：００：００、解析終了時刻５０＝２０１２／１／２  ２３：５９：５９」が再設定される。
【０１４０】
処理は、処理Ｓ２００３に戻り、処理Ｓ２００８で決定された２つの解析シナリオ２０を、解析管理ＩＤ＝２、３のレコードとして、解析シナリオＤＢ１５１に保存する。
【０１４１】
処理Ｓ２００４では、検体Ａと、処理Ｓ２００８で再設定された解析シナリオ２０を、検体実行装置２００に送信する。処理Ｓ２００５では、解析結果ＩＤ７０１＝５、６である２つのレコードが、解析結果ＤＢ１５３に出力されるまで、待機する。処理Ｓ２００６では、解析結果ＩＤ７０１＝５，６の解析結果ＤＢ１５３内のレコードを読み込む。
【０１４２】
処理２００７では、解析結果ＩＤ７０１＝５，６の解析結果ＤＢ１５３内のレコードの解析成否７０８が何れも「成功」となっているため、再解析ルールＤＢ１５４の再解析ルールＩＤ＝３であるレコードを基に、再解析が必要＝「ＮＯ」と判断される。
【０１４３】
処理Ｓ２００９では、解析結果ＤＢ１５３内の解析結果ＩＤ＝２、４、５、６のレコードに従い、「検体Ａは、２０１２／１／１／１８：００、２０２／１／２／１８：００に、ユーザに入金を要求するダイアログを表示するという、偽アンチウイルスソフトに固有の活動を行う。また、２０１２／１／１／１２：００、２０２／１／２／１２：００に、１９２．１６８．０．１の８０番ポートとＣ＆Ｃ通信を行うという、ボットに固有の活動を行う」というメッセージを、入出力装置１８０を介して表示する。
【０１４４】
図１６は、検体実行装置２００の検体実行部２２１で行われる検体実行処理のフローチャートである。
【０１４５】
処理Ｓ２１０１では、検体実行部２２１は、システム管理装置１００の解析管理部１２１から、検体１０及び、１つ以上の解析シナリオ２０を受信する。
【０１４６】
処理Ｓ２１０２では、イメージ保存装置２８０から実行環境イメージ２８１を読み込み、メモリ２３０上に展開し、実行する。処理Ｓ２１０３では、解析シナリオ２０の時間経過速度３０に従い、実行環境の時間経過速度を設定する。具体的方法については後述する。
【０１４７】
処理Ｓ２１０４では、検体実行装置２００の時計部２２３にアクセスし、現在時刻を、解析シナリオ２０の解析開始時刻４０に設定する。処理Ｓ２１０５では、処理Ｓ２１０１で受信した検体１０及び活動記録部２２２を起動する。処理Ｓ２１０６では、時計部２２３が示す現在時刻が、解析シナリオ２０の解析終了時刻５０になるまで待機する。
【０１４８】
処理Ｓ２１０７では、処理Ｓ２１０１で受信した全ての解析シナリオ２０について、検体の実行を完了したかどうかをチェックする。処理Ｓ２１０７の結果が「ＹＥＳ」である場合、処理Ｓ２１０８において、検体１０及び活動記録部２２２を停止し、処理を完了する。処理Ｓ２１０７の結果が「ＮＯ」である場合、処理Ｓ２１０２に戻り、実行環境イメージ２８１を再度読み込み、未処理の解析シナリオ２０に従って検体１０を実行する。
【０１４９】
次に、図９内のレコード例を用いて、図１６で行われる処理の具体例を説明する。
【０１５０】
まず、処理Ｓ２１０１において、検体実行部２２１は、解析シナリオＤＢ１５１の解析管理ＩＤ５０１＝１のレコードに対応する、解析シナリオ２０及び検体Ａを、解析管理部１２１から受信する。
【０１５１】
処理Ｓ２１０２で、検体Ａを実行するための実行環境イメージ２８１を読み込む。処理Ｓ２１０３で、実行環境の時間経過速度を７２倍速に設定する。処理Ｓ２１０４で、時計部２２３の現在時刻を「２０１２／１／１  ００：００：００」に設定する。処理Ｓ２１０５で、検体Ａ及び活動記録部２２２を実行する。処理Ｓ２１０６で、時計部２２３の現在時刻が「２０１２／１／２  ２３：５９：５９」になるまで待機する。
【０１５２】
処理Ｓ２１０７では、全ての解析シナリオ２０の処理が完了しているため、処理Ｓ２１０８で、検体Ａ及び活動記録部２２２を停止する。
【０１５３】
その後、処理Ｓ２１０１において、検体実行部２２１は、解析シナリオＤＢ１５１の解析管理ＩＤ５０１＝２，３のレコードに相当する、２つの解析シナリオ２０及び検体Ａを、解析管理部１２１から受信する。
【０１５４】
処理Ｓ２１０２で、検体Ａを実行するための実行環境イメージ２８１を読み込む。処理Ｓ２１０３で、解析管理ＩＤ５０１＝２のレコードに相当する解析シナリオ２０に従い、実行環境の時間経過速度を１倍速に設定する。処理Ｓ２１０４で、時計部２２３の現在時刻を「２０１２／１／１  １１：５５：００」に設定する。処理Ｓ２１０５で、検体Ａ及び活動記録部２２２を実行する。処理Ｓ２１０６で、時計部２２３の現在時刻が「２０１２／１／１  １２：００：０５」になるまで待機する。
【０１５５】
処理Ｓ２１０７では、解析管理ＩＤ５０１＝３のレコードに対応する解析シナリオ２０の処理が未だ行われていないため、処理Ｓ２１０２に戻る。その後、処理Ｓ２１０３〜２１０６で、上記解析シナリオ２０に従って、検体の実行処理を行う。
【０１５６】
処理Ｓ２１０７では、受信した２つの解析シナリオ２０の処理が全て完了しているため、処理Ｓ２１0８にて、検体Ａと活動記録部２２２の処理を停止し、全ての処理を終了する。
【０１５７】
図１７に、タイマー装置２７０と、時計部２２３の関係を示す。前述の通り、タイマー装置２７０は、発振器２７１が振動する度に、信号を時計部２２３に送信し、時計部２２３は受信した信号の回数を基に、現在時刻を決定する。
【０１５８】
処理Ｓ２２０１では、タイマー装置２７０のカウンタレジスタ２７２の値を０に初期化する。処理Ｓ２２０２では、発振器２７１が、１回振動する。処理Ｓ２２０３では、発振器２７１が振動する度に、カウンタレジスタ２７２の値を＋１加算する。処理Ｓ２２０４では、カウンタレジスタ２７２の値とカウンタ最大値レジスタ２７３の値を比較する。比較の結果、カウンタレジスタ２７２の値がカウンタ最大値レジスタ２７３と等しくない場合、処理Ｓ２２０２に移動する。
【０１５９】
カウンタレジスタ２７２の値がカウンタ最大値レジスタ２７３の値と等しい場合、処理Ｓ２２０５に移動する。処理Ｓ２２０５では、信号を時計部２２３に送信する。信号の送信後、処理Ｓ２２０１に移動する。
【０１６０】
時計部２２３は、処理Ｓ２２０６で、タイマー装置２２３の処理Ｓ２２０５から送信された信号を受信する。処理Ｓ２２０７で、現在時刻に対して、定数時間を加算する。これにより検体実行装置２００の現在時刻は更新される。処理Ｓ２２０７実行後、再び処理Ｓ２２0６に移動し、次の信号の受信まで待機する。
【０１６１】
ここで、処理Ｓ２２０７で、現在時刻に加算される定数時間は、時計部２２３における時刻の精度を決定する。定数時間＝１秒であるなら、時計部２２３の時刻精度は１秒単位になり、定数時間＝０．０１秒であるなら、時刻精度は０．０１秒単位となる。
【０１６２】
カウンタ最大値レジスタ２７３の値は、時計部２２３の起動時に設定される。ここで、発振器２７１の振動数が１ＭＨz（１秒間に１００００００回振動）であり、時計部２２３の時刻精度が０．０１秒とする。この場合、１秒間に１００回の信号を、時計部２２３は受信する必要があるため、カウンタ最大値レジスタ２７３の値は１００００（＝１００００００／１００）に設定される。これにより、カウンタ最大値レジスタ２７３の値が他のプログラムから変更されない限り、時計部２２３は、１秒間に１００回の割合で信号を受信し、その度に、０．０１秒だけ現在時刻を進めることになる。
【０１６３】
図１８に、図１６の検体実行部処理のＳ２1０３で実行される、時刻経過速度の調整処理のフローについて述べる。調整処理では、カウンタ最大値レジスタ２７３の値を変えることで、タイマー装置２７０が信号を送信する頻度を調整する。
【０１６４】
処理Ｓ２３０１では、カウンタ最大値レジスタ２７３の値を、変数Ｃｕｒｒｅｎｔ＿ＭＡＸに読み込む。処理Ｓ２３０２では、変数Ｃｕｒｒｅｎｔ＿ＭＡＸの値を、時刻経過速度３０の値で割った値を、変数Ｎｅｗ＿Ｍａｘに保存する。処理Ｓ２３０３では、変数Ｎｅｗ＿Ｍａｘの値をカウンタ最大値レジスタ２３０３に格納する。
【０１６５】
例として、図１７に示したように、カウンタ最大値レジスタ２７３の値に１００００が設定されている状況で、図９の解析管理ＩＤ５０３＝１のレコードのように、時間経過速度５０６を７２倍速にする場合を考える。
【０１６６】
処理Ｓ２３０１で、変数Ｃｕｒｒｅｎｔ＿Ｍａｘの値が１００００に設定される。処理Ｓ２３０２で、変数ＮｅｗＭａｘに１３９（＝１００００／７２）が格納される。処理Ｓ２３０３で、１３９がカウンタ最大値レジスタ２７３に保存される。
【０１６７】
図１７の例では発振器２７１の振動数は１ＭＨzであるため、１秒間に約７２００回の信号が、タイマー装置２７０から時計部２２３に送信される。信号を受信する度に、時計部２２３は０．０１秒だけ現在時刻を進めるため、７２００回の信号受信により、検体実行装置２００の時刻は７２秒進むことになる。これにより、時間調整速度３０で指定した７２倍速が実現される。
【０１６８】
図１９は、活動記録部２２２で実行される、活動記録処理のフローを示している。
【０１６９】
処理Ｓ２４０１では、活動記録部２２２は、記録ルールＤＢ２５１を読み込む。処理Ｓ２４０２では、読み込んだ記録ルールＤＢ２５１に従って、実行環境上での検体１０の活動を記録する。処理Ｓ２４０３では、検体実行部２２１が、図１６の処理Ｓ２１０８で活動記録部２２２の停止を行うタイミングで、検体１０の実行中に作成された活動記録６０を、活動記録ＤＢ１５２に書き出す。
【０１７０】
次に、図１０、図１３内のレコード例を用いて、図１９で行われる活動記録処理の具体例を示す。
【０１７１】
処理Ｓ２４０１では、記録ルールＤＢ２５１内の２つのレコード（記録ルールＩＤ９０１＝１，２）が、活動記録部２２２に読み込まれる。処理Ｓ２４０２では、読み込んだ記憶ルールＤＢ２５１のレコードに従い、検体Ａの「パケット送信活動」及び、「デスクトップ画面の更新」を記録する。具体的な記録方法は、図１３の説明時に示した通りである。
【０１７２】
処理Ｓ２４０３では、検体実行部２２１が、解析管理ＩＤ６０２＝１である解析シナリオ２０に従った実行処理を行っていた場合は、活動記録ＩＤ６０１＝１，２，３，４のレコードを、活動記録ＤＢ１５２に書き出す。また、検体実行部２２１が、解析管理ＩＤ６０２＝２、３である解析シナリオ２０に従った実行処理を行っていた場合は、活動記録ＩＤ６０１＝５、６のレコードを、活動記録ＤＢ１５２に書き出す。
【０１７３】
図２０は、活動解析部３２１で実行される、活動解析処理のフローを示している。
【０１７４】
処理Ｓ２５０１では、活動解析部３２１は、活動記録ＤＢ１５２が更新され、新しいレコードが追加されるまで待機する。処理Ｓ２５０２では、活動解析部３２１は、解析ルールＤＢ３５１及び活動記録ＤＢ１５２を読み込む。
【０１７５】
処理Ｓ２５０３では、解析ルールＤＢ３５１に従って、活動記録ＤＢ１５２のレコードを解析し、解析結果７０を作成する。なお、解析の途中においては、入出力装置３７０を介して、管理者が解析ルールＤＢ３５１の内容を更新したり、解析ルールＤＢ３５１には載っていない判断基準を基に、手動で解析を行ってもよい。処理Ｓ２５０４では、処理Ｓ２５０３で作成した解析結果７０を、解析結果ＤＢ１５３に保存する。
【０１７６】
次に、図１０、図１１、図１４内のレコード例を用いて、図２０で行われる活動解析録処理の具体例を示す。
【０１７７】
処理Ｓ２５０１では、活動記録ＩＤ６０１が１〜４であるレコードが活動記録ＤＢ１５２に追加されるため、待機を解除する。処理Ｓ２５０２では、活動記録ＩＤ６０１が１〜２であるレコード及び、解析ルールＤＢ３５１の３つのレコードを読み込む。
【０１７８】
処理Ｓ２５０３では、活動記録ＩＤ＝２および４であるレコードに関しては、解析ルールＩＤ＝２のレコードを適用し、検体Ａには「偽アンチウイルスソフト」の属性があると判断する。また、活動記録ＩＤ＝１および３であるレコードに関しては、解析ルールＩＤ＝３のレコードを適用し、ネットワーク接続が正常に行われなかったため、「解析失敗」と判断する。処理Ｓ２５０４では、解析結果ＤＢ１５３を更新し、解析結果ＩＤ７０１＝１〜４のレコードを新たに追加する。その後処理Ｓ２５０１に移動する。
【０１７９】
再び、処理Ｓ２５０１では、活動記録ＩＤ６０１が５〜６であるレコードが活動記録ＤＢ１５２に追加されるため、待機を解除する。処理Ｓ２５０２では、活動記録ＩＤ６０１が１〜２であるレコード及び、解析ルールＤＢ３５１の２つのレコードを読み込む。
【０１８０】
処理Ｓ２５０３では、活動記録ＩＤ＝５、６のレコードに関して、解析ルールＩＤ＝１のレコードを適用し、検体Ａには「ボット」の属性があると判断する。処理Ｓ２５０４では、解析結果ＤＢ１５３を更新し、解析結果ＩＤ７０１＝５〜６のレコードを新たに追加する。
【０１８１】
（変形例）
次に、図1に示すシステムの変形例について説明する。
【０１８２】
（１）加算値可変
図1に示すシステムでは、カウンタ最大値レジスタ２７３の値を変更することで、時間経過速度の調整を行った。変更例としては、カウンタレジスタ２７２が加算される値を変更することで、時間調整を行ってもよい。例えば、実施例では、カウンタレジスタ２７２の値は、発振器２７１の振動ごとに＋１加算されていたが、加算値を＋２にすることで、時間経過速度を２倍にすることができる。この変更例の利点としては、カウンタ最大値レジスタ２７３の変更が不可能であるタイマー装置２７０上でも、時間経過速度の調整が可能であることが挙げられる。
【０１８３】
（２）発信器の周波数変更
また、発振器２７１の周波数を変えることで時間経過速度を調整することも可能である。例えば、発振器２７１の周波数を２倍にすることで、時間経過速度を２倍にすることができる。この変更例の利点としては、カウンタ最大値レジスタ２７３の変更が不可能であるタイマー装置２７０上でも、時間経過速度の調整が可能であることが挙げられる。
【０１８４】
（３）現時時刻の定数時間調整
また、図１７の処理Ｓ２２０７で示してある、時計部２２３が管理している、現在時刻に加算される定数時間を調整することで、時間経過速度を２倍にすることができる。例えば、図１７の説明では、定数時間として０．０１秒を設定していたが、定数時間を０．０２秒に再設定することで、時間経過速度を２倍にすることができる。この変更例の利点としては、発振器２７１、カウンタレジスタ２７２、カウンタ最大値レジスタ２７３の変更が不可能なタイマー装置２７０上でも、時間経過速度の調整が可能であることが挙げられる。
【０１８５】
（４）仮想マシンの実行
また、図1に示すシステムでは、実行環境イメージ２８１を直接メモリ２３０上で実行したが、計算機の構成・動作を模擬するプログラムである仮想マシン上で実行してもよい。この変更例では、メモリ２３０上に、仮想マシンプログラムが読み込まれる。仮想マシンプログラム上では、実行環境イメージ２８１及び、検体実行プログラム２３１、活動記録プログラム２３２、時計プログラム２３３が動作する。検体１０は仮想マシンプログラム上で実行される。仮想マシンプログラムは物理的な計算機の構成を模擬しているので、タイマー装置２７０に相当する、タイマー装置模擬プログラムを有する。時刻調整を行う際は、検体実行装置２００上のタイマー装置２７０を操作するのではなく、仮想マシンプログラム上のタイマー装置模擬プログラムのカウンタ最大値レジスタの値を調整する。この変更例の利点としては、タイマー装置２７０ではなく、タイマー装置模擬プログラムを操作するため、プログラム内の発振器やレジスタに対する変更が、確実に可能であることが挙げられる。
【０１８６】
（５）プログラムへの適用
さらに、図1に示すシステムでは、挙動が不明なプログラムの動作を調べるために発明を利用したが、あるプログラムが一定期間、正常に動作することを、短期間で調査するために利用することもできる。例えば、時間経過速度３０を１０００倍として、解析開始時刻４０を２０１１／１／１  ００：００：００、解析終了時刻５０を、２０２０／１２／３１  ２３：５９：５９とすることで、プログラムが１０年間、正常に動作することを、４日程度でテストすることができる。この変更例では、プログラムの実行に伴い発生するエラー情報を、活動記録６０として保存する。この変更例の利点としては、プログラムの予期しないエラーを、短時間で調査できることが挙げられる。
【０１８７】
（６）発信器の周波数操作
また、ＣＰＵ２２０は、その内部に発振器２７１に類似した発振器を具備しており、発振器が一度振動する度に、１つの命令を実行する。このため、この発振器の周波数を操作することで、検体１０の実行速度を変化させることができる。例えば、発振器の周波数を０．５倍にすると、検体の実行速度は半分になる。これにより、検体１０が様々な性能の計算機で実行された時の動作をテストすることができる。例えば、検体１０がＩＦ１４０を通じて受信するＩＰパケットを処理するプログラムである場合、ＣＰＵ２２０の発振器の周波数を低減することで、高負荷時に、ＩＰパケットをどの程度取りこぼしなく処理できるかをテストすることができる。
【符号の説明】
【０１８８】
１０・・・検体、２０・・・、解析シナリオ、３０・・・時間経過速度、４０・・・解析開始時刻、５０・・・解析終了時刻、６０・・・活動記録、７０・・・解析結果、１００・・・システム管理装置、２００・・・検体実行装置，３００・・・活動解析装置、４００・・・ネットワーク
【図１】
2013105366.tif 000003
【図２】
2013105366.tif 000004
【図３】
2013105366.tif 000005
【図４】
2013105366.tif 000006
【図５】
2013105366.tif 000007
【図６】
2013105366.tif 000008
【図７】
2013105366.tif 000009
【図８】
2013105366.tif 000010
【図９】
2013105366.tif 000011
【図１０】
2013105366.tif 000012
【図１１】
2013105366.tif 000013
【図１２】
2013105366.tif 000014
【図１３】
2013105366.tif 000015
【図１４】
2013105366.tif 000016
【図１５】
2013105366.tif 000017
【図１６】
2013105366.tif 000018
【図１７】
2013105366.tif 000019
【図１８】
2013105366.tif 000020
【図１９】
2013105366.tif 000021
【図２０】
2013105366.tif 000022
【図２１Ａ】
2013105366.tif 000023
【図２１Ｂ】
2013105366.tif 000024
【図２２】
2013105366.tif 000025