以下、本発明の一実施形態について図面を参照して説明する。図1は、本実施形態に係る解析システムの構成と同システムによるマルウェアの挙動解析手順の概要を示す説明図である。
本実施形態の解析システム1は、インターネットに接続したコンピュータ内へ密かに侵入して不正な動作を行い、コンピュータに対して被害を加える不正プログラム(以下、「マルウェア」と呼ぶ)を収集し、収集したマルウェアを実際に動作させてマルウェアの挙動を解析するシステムである。
図1に示すように、本実施形態に係る解析システム1は、情報収集手段2と、情報記憶手段3と、挙動情報収集手段4とを備えている。情報収集手段2は、マルウェアの動作環境に関する情報を含む環境情報とマルウェアとを収集する処理領域である。
そして、情報収集手段2は、環境情報とマルウェアとを収集する場合、図1(a)に示すように、まず、インターネットを介してシェルコードV1を取り込む。ここで、シェルコードV1とは、攻撃者がマルウェアを用いた攻撃を行うために送り込む導入プログラムである。
具体的には、シェルコードV1は、マルウェアに先立ってコンピュータへ侵入して動作することにより、コンピュータ内にマルウェアを動作させるための動作環境を生成すると共に、コンピュータへのマルウェアの導入を行う。
シェルコードを取り込むと、情報収集手段2は、図1(b)に示すように、シェルコードV1を動作させて、情報収集手段2の内部にマルウェアV2を動作させるための動作環境E1を生成させると共に、インターネットを介して情報収集手段2へマルウェアV2を導入させる。
このとき、情報収集手段2は、シェルコードV1による動作環境E1の生成動作及びマルウェアV2の導入動作については許可するが、シェルコードV1がマルウェアV2の動作を開始させようとする動作については禁止する。
これにより、本実施形態の解析システム1は、情報収集手段2自体がマルウェアV2に感染することを予防することができるので、情報収集手段2は、あるマルウェアV2を収集した後に、他のマルウェアV2を継続的に収集することができる。
その後、情報収集手段2は、図1(c)に示すように、シェルコードV1を動作させることによって生成させた動作環境E1に関する情報と、動作環境E1が生成されたときに情報収集手段2に設定されている各種情報とを含む環境情報6を収集して情報記憶手段3へ記憶させる。
さらに、情報収集手段2は、シェルコードV1を動作させることによって導入させたマルウェアV2を収集する。なお、ここでは図示を省略しているが、情報収集手段2によって収集されたマルウェアV2は、情報記憶手段3に記憶され、後にマルウェアV2の挙動解析を行う際に、挙動情報収集手段4によって呼び出される。
情報記憶手段3は、情報収集手段2によって収集された環境情報6を記憶する情報記憶領域である。ここでは、図示を省略しているが、情報記憶手段3は、挙動情報収集手段4によって収集されたマルウェアV2の挙動解析の結果を示す挙動情報も記憶する。
挙動情報収集手段4は、情報収集手段2によって収集されたマルウェアV2を呼び出して実際に動作させ、そのときのマルウェアV2の挙動解析を行い、解析結果を示す挙動情報を収集して情報記憶手段3へ記憶させる処理領域である。
そのため、挙動情報収集手段4は、マルウェアV2を動作させるプログラム動作手段5を備えている。特に、本実施形態におけるプログラム動作手段5は、マルウェアV2が本来の動作を行うことができる環境(以下、「動作環境E2」という。)を生成する機能を備えている。
すなわち、プログラム動作手段5は、情報記憶手段3によって記憶されている環境情報6を用いて、シェルコードV1を動作させることによって情報収集手段2の内部に生成させた動作環境E1と同等の動作環境E2をプログラム動作手段5の内部に生成し、生成した動作環境E2の下でマルウェアV2を動作させる。
そして、挙動情報収集手段4は、プログラム動作手段5によって動作させたマルウェアV2の挙動を解析し、解析結果である挙動情報を情報記憶手段3へ出力して記憶させる。情報記憶手段3に記憶された挙動情報は、マルウェアV2による攻撃を防止する対策のために利用される。
このように、本実施形態の解析システム1は、情報収集手段2によってマルウェアV2だけでなく、シェルコードV1を動作させて情報収集手段2の内部に生成させたマルウェアV2の動作環境E1に関する環境情報6まで収集させる。
そして、解析システム1は、プログラム動作手段5が環境情報6を用いてマルウェアV2が本来の動作を行うことのできる動作環境E2をプログラム動作手段5の内部に再現した上で、マルウェアV2を動作させて挙動解析を行う。
そのため、例えば、ファイル名やファイルパス、環境変数等の情報を適切に設定することで動作が可能となるマルウェアV2や、実行引数を必要とするマルウェアV2、他のプログラムを介して実行する必要があるマルウェアV2等、特定の動作環境E1と同等な環境が整っていなければ本来の動作を行わないマルウェアV2であっても本来の動作を行わせることができる。
通常、シェルコードV1は、情報収集手段2へ侵入すると、マルウェアV2を動作させるために必要なファイルの生成や、ファイル名やファイルパス、環境変数等の設定を行うことによってマルウェアV2の動作環境E1を生成する。
そのため、例えば、ファイル名やファイルパス、環境変数等の情報を適切に設定された環境でなければ本来の動作を行わないマルウェアV2の場合、従来の技術のように、単純にマルウェアV2本体だけを収集して動作させようとしても、マルウェアV2は、動作に必要な環境が整っていないので、本来の動作を行うことができない。
このように、従来の技術では、マルウェアV2の挙動を解析しようとする際に、マルウェアV2に本来の動作を行わせることができなかったため、マルウェアV2の挙動を正確に解析することができなかった。
これに対して、本実施形態の解析システム1は、情報収集手段2へあえてシェルコードV1を侵入させて動作させることにより、情報収集手段2の内部に、マルウェアV2を動作させるために必要なファイルの生成や環境変数等の設定を行わせ、そのとき収集した環境情報6を用いて、プログラム動作手段5の内部に、マルウェアV2を動作させるために必要なファイルの生成や環境変数等の設定が行われた動作環境E2を再現するので、マルウェアV2は、本来の動作を行うことができる。
また、本実施形態の解析システム1は、実行引数を必要とするマルウェアV2や他のプログラムを介して実行する必要があるマルウェアV2についても同様に、各マルウェアV2が動作可能な動作環境E2を再現することができるので、特定の環境下でしか本来の動作を行わないマルウェアV2に本来の動作を行わせて、マルウェアV2の正確な挙動情報を収集することができる。
次に、本実施形態に係る解析システム1の構成について説明する。図2は、本実施形態に係る解析システム1の構成を示す機能ブロック図である。図2に示すように、解析システム1は、マルウェア収集部20と、情報データベース30と、マルウェア解析部40と、対応情報作成部70とを備えている。
マルウェア収集部20は、図1に示す情報収集手段2に相当するものである。また、情報データベース30は、図1に示す情報記憶手段3に相当し、マルウェア解析部40は、図1に示す挙動情報収集手段4に相当するものである。
マルウェア収集部20は、故意に脆弱性を持たせた処理部でありインターネットNと接続している。そして、マルウェア収集部20は、インターネットNを介してシェルコードV1及びマルウェアV2を侵入させ、侵入してきたマルウェアV2を収集すると共に、シェルコードV1を動作させることによって生成された動作環境E1に関する情報を含む環境情報6収集して情報データベース30へ出力する。
ここで、マルウェア収集部20の構成について説明する。図3は、マルウェア収集部20の構成を示す機能ブロック図である。図3に示すように、マルウェア収集部20は、攻撃検知部21と、ファイル生成情報収集部22と、プロセス生成情報収集部23と、状態情報収集部24とを備えている。
攻撃検知部21は、インターネットNを介して解析システム1の外部から取得したバッファデータがマルウェア収集部20の脆弱性をつく(攻撃する)ものであるか否かを判定する処理部である。
例えば、攻撃検知部21は、外部から取得したバッファデータのデータサイズが所定の閾値を超えるようなバッファデータであった場合に「攻撃」と判定して、判定結果をファイル生成情報収集部22、プロセス生成情報収集部23、状態情報収集部24へ出力する。
また、攻撃検知部21は、攻撃と判定したバッファデータをシェルコードV1として収集し、収集したシェルコードV1を動作させることによってマルウェアV2を導入させ、導入されたマルウェアV2の収集を行う。
収集したマルウェアV2は、一旦、情報データベース30に記憶され、挙動解析が行われる場合にマルウェア解析部40によって呼び出される。
ファイル生成情報収集部22は、攻撃検知部21から「攻撃」と判定された判定結果が入力されて以降に、マルウェア収集部20の内部に生成されたファイルに関するファイル生成情報を収集する処理部である。
そして、ファイル生成情報収集部22は、収集したファイル生成情報へマルウェアV2による攻撃毎にユニークなID(以下、「インシデントID」という。)を組み込んで情報データベース30へ出力する。なお、ファイル生成情報の詳細については後述する。
プロセス生成情報収集部23は、攻撃検知部21から「攻撃」と判定された判定結果が入力されて以降に、マルウェア収集部20の内部に生成されたプロセス及びマルウェアV2のプロセス生成に関するプロセス生成情報を収集する処理部である。
本実施形態のプロセス生成情報収集部23は、全てのプロセスの生成を許可するのではなく、特定のプロセスの生成のみを許可することによって、マルウェア収集部20がマルウェアV2に感染することを防止している。
例えば、プロセス生成情報収集部23は、マルウェアV2をマルウェア収集部20へダウンロードするためのプロセスや、シェルコードV1が動作して動作環境E1を生成するためのプロセスについては許可し、動作環境E1を生成した後のプロセス生成、つまりマルウェアV2のプロセス生成を禁止する。
これにより、マルウェア収集部20はマルウェアV2に感染することがないので、継続してマルウェアV2やプロセス生成情報、ファイル生成情報等の環境情報6を収集することができる。
そして、プロセス生成情報収集部23は、収集したプロセス生成情報へマルウェアV2による攻撃毎にユニークなID(以下、「インシデントID」という。)と、1つの攻撃の中で生成された複数のプロセスを識別可能とするためのID(以下、「プロセス生成ID」という。)とを組み込んで情報データベース30へ出力する。なお、プロセス生成情報の詳細については後述する。
状態情報収集部24は、攻撃検知部21から「攻撃」と判定された判定結果が入力されて以降、マルウェア収集部20の内部にプロセスが生成される度に、また、マルウェアV2がプロセス生成を試みる度に、そのときのマルウェア収集部20の状態を示す状態情報を収集する処理部である。なお、状態情報の詳細については後述する。
そして、状態情報収集部24は、収集した状態情報へ状態情報を収集したときに生成されたプロセス及びマルウェアV2が生成を試みたプロセスのプロセス生成情報と同じインシデントIDとプロセス生成IDと組み込んで情報データベース30へ出力する。
次に、情報データベース30について説明する。情報データベース30は、マルウェア収集部20とマルウェア解析部40と対応情報作成部70とに接続された情報記憶デバイスである。そして、情報データベース30は、マルウェア収集部20から入力されるファイル生成情報、プロセス生成情報、状態情報、マルウェアV2等を記憶する。
さらに、情報データベース30は、対応情報作成部70によって作成される後述の対応情報と、マルウェア解析部40によって収集されたマルウェアV2の挙動情報とを記憶する。
ここで、情報データベース30の内部構成と、情報データベース30に記憶されている各情報の具体例について図4〜図8を参照して説明する。図4は、情報データベース30の内部構成を示す説明図である。なお、図4に示すDBは、データベースの略である。
また、図5は、ファイル生成情報の具体的一例を示す説明図、図6は、プロセス生成情報の具体的一例を示す説明図、図7は、状態情報の具体的一例を示す説明図、図8は、対応情報の具体的一例を示す説明図である。
図4に示すように、情報データベース30は、ファイル生成情報DB61と、プロセス生成情報DB62と、状態情報DB63と、対応情報DB64と、マルウェア解析結果DB44とを備えている。
ファイル生成情報DB61は、ファイル生成情報収集部22から入力されるファイル生成情報を記憶する記憶領域である。そして、ファイル生成情報DB61には、図5に示すように、各インシデントIDに対応付けて、マルウェア収集部20の内部にファイルが生成された日時を示すタイムスタンプ、生成されたファイルの格納場所を示すファイルパス、生成されたファイルのファイルデータが記憶されている。
また、プロセス生成情報DB62は、プロセス生成情報収集部23から入力されるプロセス生成情報を記憶する記憶領域である。そして、プロセス生成情報DB62は、図6に示すように、各インシデントIDに対応付けて、マルウェア収集部20の内部に生成されたプロセス及びプロセス生成が試みられたプロセスのプロセス生成ID、プロセスが生成された日時及びプロセス生成が試みられた日時を示すタイムスタンプ、プロセスが生成されるときのコマンドライン、プロセス生成時の親プロセス名、プロセスの生成に使用されたAPI(Application Program Interface)パラメータ等が記憶されている。
プロセス生成情報DB62に記憶されているAPIパラメータは、プロセスの生成に使用されたAPIの種類に応じて、例えば、セキュリティ記述子、カレントディレクトリ名、スタートアップ情報、プロセス情報、ウィンドウの表示情報等が含まれている。
また、状態情報DB63は、状態情報収集部24から入力される状態情報を記憶する記憶領域である。そして、状態情報DB63には、図7に示すように、各インシデントIDに対応付けて、プロセス生成ID、解析システム1の各ユーザによって設定されている環境変数、解析システム1が予め設定している環境変数等が記憶されている。
さらに、状態情報DB63には、各インシデントIDに対応付けて、起動中のプロセスリスト、アカウント情報、IPアドレス、ポートの開放状況、攻撃時のレジスタの値、スタックトップ・スタックボトム・スタックの内容といったコンテキスト情報等も記憶されている。
また、対応情報DB64は、対応情報作成部70が情報データベース30に記憶されているファイル生成情報とプロセス生成情報とを用いて作成した対応情報を記憶する記憶領域である。
対応情報作成部70による対応情報の作成方法については後に詳述するが、対応情報は、対応情報作成部70がファイル生成情報とプロセス生成情報との中から、マルウェア解析部40がマルウェアV2を動作させるための動作環境E2を作成するために利用する情報を選択的に抽出して作成したデータである。
具体的には、対応情報DB64には、図8に示すように、各インシデントIDに対応付けて、プロセス生成ID、解析実行APIパラメータ、解析実行時親プロセス名、配置ファイルパス、実行フラグが記憶されている。なお、図8に示すIDは、マルウェア解析部40が動作環境E2を作成する際に参照するプロセスの順番を識別するための識別情報である。
対応情報における解析実行APIパラメータは、マルウェア解析部40の内部でマルウェアV2を動作させために必要な引数列であるAPIパラメータのことであり、マルウェアV2を動作させるために引数の設定が必要なプロセスのプロセス生成情報から抽出されたAPIパラメータである。
また、解析実行時親プロセス名は、マルウェア解析部40の内部でマルウェアV2を動作させるために必要な親プロセス名のことであり、マルウェアV2を動作させるために親プロセスの設定が必要なプロセスのプロセス生成情報から抽出された親プロセス名である。
また、配置ファイルパスは、マルウェア解析部40の内部でマルウェアV2を動作させるために必要なファイルのパスのことであり、マルウェアV2を動作させるためにファイルパスの設定が必要なプロセスのファイル生成情報から抽出されたファイルパスである。
なお、1つのコマンドラインに関連するファイルが複数存在する場合には、1つのプロセスの対応情報の中に配置ファイルパスとして複数のファイルパスが記憶される。
また、実行フラグは、マルウェア解析部40があるプロセス生成情報中に含まれるあるプロセスのコマンドラインに基づいてマルウェアV2を動作させてマルウェアV2の挙動解析を行うか否かの判断基準となるフラグである。
このように、対応情報DB64には、マルウェアV2を収集した際にシェルコードV1がマルウェア収集部20の内部に生成した全てのプロセスの中で、APIパラメータや親プロセス名、ファイルパス等を設定しなければマルウェアV2が実行できない各プロセスと、各プロセスで設定が必要なAPIパラメータ、親プロセス名、ファイルパスとが対応付けられて記憶されているのである。
そのため、マルウェア解析部40は、マルウェアV2の挙動解析を行う際、対応情報DB64を参照することによって、マルウェアV2が本来の動作を行うために必要なAPIパラメータや親プロセス名、ファイルパスだけを設定することができる。
その結果、マルウェア解析部40は、配置ファイルパスによって特定されるファイル、解析実行時親プロセス名によって特定される親プロセス、解析実行APIパラメータによって特定されるAPIパラメータ等といった必要最小限の情報をプロセス毎にマルウェアV2の動作環境E2として設けておくことができる。
また、マルウェア解析結果DB44は、マルウェア解析部40から入力されるマルウェアV2の挙動解析の結果を示す挙動情報を記憶する記憶領域である。ここでは、図示を省略しているが、マルウェア解析結果DB44には、マルウェア解析部40によってマルウェアV2を動作させたときの通信データ、マルウェアV2が呼び出したAPI、システムコール、マルウェアV2による内部資源へのアクセス情報等が記憶される。
次に、マルウェア解析部40について説明する。図9は、マルウェア解析部40の構成を示す機能ブロック図である。図9に示すように、マルウェア実行環境部41と、仮想インターネット環境部42と、解析システムコントロール部43とを備えている。
マルウェア実行環境部41は、解析システムコントロール部43を介して情報データベース30から対応情報、ファイル生成情報、プロセス生成情報、環境情報を取得し、取得した各情報に基づいて、マルウェア実行環境部41の内部へのファイルの設置や環境変数等の設定を行うことによってマルウェアV2の動作環境E2を生成する処理部である。
そして、マルウェア実行環境部41は、生成した動作環境E2の下でマルウェアV2を実際に動作させ、そのときのマルウェアV2の挙動情報を収集して解析システムコントロール部43へ出力する。
このとき、マルウェア実行環境部41は、挙動情報として、マルウェアV2が仮想インターネット環境部42との間で行った通信のログ情報、マルウェアV2が呼び出したAPIやシステムコール、内部資源へのアクセス情報等を収集して解析システムコントロール部43へ出力する。
仮想インターネット環境部42は、マルウェア実行環境部41からの通信に対して擬似的な応答を返信する処理部である。また、仮想インターネット環境部42は、マルウェア実行環境部41からの要求によっては、必要に応じてマルウェア実行環境部41と実際のインターネットNとの間の通信を仲介する機能も備えている。
そして、仮想インターネット環境部42は、マルウェアV2の挙動情報として、マルウェア実行環境部41との間で行った通信のログ情報を収集して解析システムコントロール部43へ出力する。
解析システムコントロール部43は、マルウェア実行環境部41及び仮想インターネット環境部42の動作をコントロールすると共に、マルウェア実行環境部41及び仮想インターネット環境部42から入力されるマルウェアV2の挙動情報を情報データベース30へ出力する処理部である。
そして、解析システムコントロール部43は、情報データベース30に記憶されている対応情報を参照して、マルウェアV2の動作環境E2の生成に必要なファイルパス、ファイルデータ、状態情報、親プロセス名、APIパラメータ等をマルウェア実行環境部41へ出力する。
マルウェア実行環境部41は、解析システムコントロール部43から入力されるこれらの各種情報を用いてマルウェアV2の動作環境E2を生成する。
次に、本実施形態の解析システム1で実行される処理について説明する。ここでは、本実施形態に係る解析システム1の特徴であるマルウェアV2の動作環境E2生成に関する処理について説明する。
ここでは、まず解析システム1の対応情報作成部70が対応情報を作成する際に実行する処理について説明した後、解析システム1のマルウェア解析部40がマルウェアV2の動作環境E2を生成する際に実行する処理について説明する。
具体的には、対応情報を作成する際、対応情報作成部70は、図10に示すように、まず、情報データベース30から特定インシデントIDのプロセス生成情報の読み込みを行う(ステップS101)。
プロセス生成情報を読み込む際に、対応情報作成部70は、プロセス生成情報DB62の中に未読み込みのプロセス生成情報のエントリが存在するか否かの判定を行い(ステップS102)、未読み込みのプロセス生成情報のエントリが存在しないと判定した場合(ステップS102:No)、処理を終了する。
一方、対応情報作成部70は、未読み込みのプロセス生成情報のエントリが存在すると判定した場合(ステップS102:Yes)、プロセス生成情報のエントリを1つ読み込み(ステップS103)、読み込んだエントリに含まれる特定インシデントIDと同一のインシデントIDを持つファイル生成情報の読み込みを行う(ステップS104)。
ファイル生成情報の読み込みを行う場合、対応情報作成部70は、ファイル生成情報DB61の中に未読み込みのファイル生成情報のエントリが存在するか否かの判定を行い(ステップS105)、未読み込みのファイル生成情報のエントリが存在しないと判定した場合(ステップS105:No)、処理をステップS102へ移す。
一方、対応情報作成部70は、未読み込みのファイル生成情報のエントリが存在すると判定した場合(ステップS105:Yes)、ファイル生成情報のエントリを1つ読み込む(ステップS106)。
続いて、対応情報作成部70は、ファイル実行情報抽出処理を行って(ステップS107)、ファイル実行情報として後述の実行情報及び存在情報を取得し、その後、処理をステップS108へ移す。
ファイル実行情報抽出処理の詳細については後に図11を参照して説明するが、ファイル実行情報抽出処理では、読み込んだプロセス生成情報のエントリに含まれるAPIパラメータを解析実行APIパラメータとして対応情報へ登録するか否かの判定基準に用いる実行情報と、読み込んだファイル生成情報のエントリに含まれるファイルパスを配置ファイルパスとして対応情報へ登録するか否かの判定基準に用いる存在情報が決定される。
ステップS108において、対応情報作成部70は、存在情報が「存在する」となっていたる否かを判定し、存在情報が「存在する」となっていなかった場合(ステップS108:No)、処理をステップS105へ移す。
一方、対応情報作成部70は、存在情報が「存在する」となっていた場合(ステップS108:Yes)、当該ファイルを動作環境E2での関連ファイルに設定する(ステップS109)。
ここでの当該ファイルとは、ステップS106で読み込んだファイル生成情報のエントリに含まれるファイルパスによって特定されるファイルデータのことである。また、このとき、対応情報作成部70は、当該ファイルのファイルパスを配置ファイルパスとして対応情報へ登録することによって、当該ファイルを動作環境E2での関連ファイルに設定する。
続いて、対応情報作成部70は、実行情報が「出現しない」となっていたか否かを判定し(ステップS110)、実行情報が「出現しない」となっていた場合(ステップS110:Yes)、処理をステップS115へ移す。
一方、対応情報作成部70は、実行情報が「出現しない」となっていなかった場合(ステップS110:No)、ステップS103で読み込んだプロセス生成情報に含まれるAPIパラメータを実行コマンドラインに設定する(ステップS111)。
ここでの実行コマンドラインは、ステップS103で読み込んだプロセス生成情報に含まれるコマンドラインのことである。また、このとき、対応情報作成部70は、読み込んだプロセス生成情報に含まれるAPIパラメータを解析実行APIパラメータとして対応情報の対応情報へ登録することによって、APIパラメータを実行コマンドラインに設定する。
さらに、このとき対応情報作成部70は、ステップS103で読み込んだプロセス生成情報に含まれる親プロセス名を解析実行時親プロセス名として対応情報へ登録する。
続いて、対応情報作成部70は、実行コマンドラインの実行プログラム名が予め作成しておいた解析対象外のプログラムのリストに存在するか否かの判定を行う(ステップS112)。
ここで、対応情報作成部70は、実行コマンドラインの実行プログラム名がリストに存在しないと判定した場合(ステップS112:No)、対応情報へ実行フラグONを登録して(ステップS113)、処理をステップS115へ移す。
一方、対応情報作成部70は、実行コマンドラインの実行プログラム名がリストに存在すると判定した場合(ステップS112:Yes)、対応情報へ実行フラグOFFを登録して(ステップS114)、処理をステップS115へ移す。
ステップS115において、対応情報作成部70は、対応情報DB64への対応情報の書き出しを行って処理をステップS105へ移す。
次に、図10に示すフローチャートのステップS107において対応情報作成部70が実行するファイル実行情報抽出処理について説明する。対応情報作成部70は、図11に示すフローチャートに従ってファイル実行情報抽出処理を実行する。
図11に示すように、ファイル実行情報抽出処理において、対応情報作成部70は、ステップS103で読み込んだプロセス生成情報中のAPIパラメータに、ステップS106で読み込んだファイル生成情報中のファイルパスが実行プログラム、又は実行プログラムの引数、又は引数中のサブストリングとして出現するか否かを判定する(ステップS201)。
なお、ここでは、APIパラメータにファイルパスが出現するか否かを判定しているが、APIパラメータにファイル名だけを取り出したものが出現するか否かを判定してもよい。
そして、対応情報作成部70は、APIパラメータにファイルパスが出現すると判定した場合(ステップS201:Yes)、実行情報として「出現する」を設定する。一方、対応情報作成部70は、APIパラメータにファイルパスが出現しないと判定した場合(ステップS201:No)、実行情報として「出現しない」を設定する。
その後、対応情報作成部70は、ステップS103で読み込んだプロセス生成情報に含まれるプロセス生成時のタイムスタンプがステップS106で読み込んだファイル生成情報に含まれるファイル生成時のタイムスタンプ以上であるか否かの判定を行う(ステップS204)。
つまり、対応情報作成部70は、このステップS204において、プロセス生成時にファイルが存在していたか否かを判定するのである。そして、対応情報作成部70は、プロセス生成時のタイムスタンプがファイル生成時のタイムスタンプ以上であると判定した場合(ステップS204:Yes)、存在情報として「存在する」を設定して(ステップS205)処理を終了する。
一方、対応情報作成部70は、プロセス生成時のタイムスタンプがファイル生成時のタイムスタンプ未満であると判定した場合(ステップS204:No)、存在情報として「存在しない」を設定して(ステップS206)処理を終了する。
次に、動作環境E2を生成する場合に、マルウェア解析部40の解析システムコントロール部43が実行する処理について説明する。図12は、解析システムコントロール部43が実行する処理プログラムを示すフローチャートである。
動作環境E2を生成する場合、解析システムコントロール部43は、図12に示すように、まず、マルウェアV2の動作環境E2のリジュームを行う(ステップS301)。ここで、解析システムコントロール部43は、マルウェアV2の動作環境E2を解析開始前の状態に復元する作業を行う。
その後、解析システムコントロール部43は、対応情報DB64から対応情報を取得して(ステップS302)、実行フラグがONであるか否かの判定を行う(ステップS303)。
そして、解析システムコントロール部43は、実行フラグがOFFであったと判定した場合(ステップS303:No)、処理を終了する。一方、解析システムコントロール部43は、実行フラグがONであったと判定した場合(ステップS303:Yes)、処理をステップS304へ移す。
ステップS304において、解析システムコントロール部43は、マルウェア実行環境部41への配置ファイル送信を開始する。配置ファイル送信では、解析システムコントロール部43は、まず、取得した対応情報に含まれる配置ファイルパスをマルウェア実行環境部41へ送信する(ステップS305)。
続いて、解析システムコントロール部43は、送信した配置ファイルパスに対応するファイルデータをファイル生成情報DB61内のファイル生成情報から読み込み(ステップS306)、読み込んだファイルデータをマルウェア実行環境部41へ送信する(ステップS307)。
そして、解析システムコントロール部43は、対応情報に含まれている全ての配置ファイルパスに対応するファイルデータ(配置ファイル)の送信が完了すると、配置ファイル送信を終了して(ステップS308)、処理をステップS309へ移す。
ステップS309において、解析システムコントロール部43は、対応情報のインシデントIDとプロセス生成IDとに基づいて、状態情報DB63から状態情報を読み込み、読み込んだ状態情報をマルウェア実行環境部41へ送信する。
続いて、解析システムコントロール部43は、対応情報に含まれる解析実行時プロセス名をマルウェア実行環境部41へ送信し(ステップS310)、その後、対応情報に含まれる解析実行APIパラメータをマルウェア実行環境部41へ送信する(ステップS311)。
そして、解析システムコントロール部43は、マルウェア実行環境部41から実行可否ステータスの受信を行い(ステップS312)、受信した実行可否ステータスが実行成功であるか否かの判定を行う(ステップS313)。
ここで、解析システムコントロール部43は、実行可否ステータスが実行失敗であった場合(ステップS313:No)、処理を終了する。一方、解析システムコントロール部43は、実行可否ステータスが実行成功であった場合(ステップS313:Yes)、処理をステップS314へ移す。
ステップS314において、解析システムコントロール部43は、予め設定しておいた解析時間が経過したか否かを判定し、解析経過したと判定した場合(ステップS314:Yes)、処理を終了する。
一方、解析システムコントロール部43は、予め設定しておいた解析時間が経過してしないと判定した場合(ステップS314:No)、解析時間が経過するまでステップS314の判定処理を繰り返す。
そして、解析システムコントロール部43は、複数の対応情報に基づいてマルウェアV2の挙動解析を行う場合、全ての各対応情報に関してステップS301〜ステップS314の処理を繰り返し実行する。
次に、動作環境E2を生成する場合に、マルウェア解析部40のマルウェア実行環境部41が実行する処理について説明する。図13は、マルウェア実行環境部41が実行する処理プログラムを示すフローチャートである。
動作環境E2を生成する場合、マルウェア実行環境部41は、図13に示すように、まず、動作環境E2を生成するためにファイル配置を開始する(ステップS401)。ファイル配置では、マルウェア実行環境部41は、まず始めに解析システムコントロール部43から配置ファイルパスを受信する(ステップS402)。
そして、マルウェア実行環境部41は、受信した配置ファイルパスどおりにファイルを配置するためのディレクトリがあるか否かの判定を行い(ステップS403)、ディレクトリがあると判定した場合(ステップS403:Yes)、処理をステップS405へ移す。
一方、マルウェア実行環境部41は、ファイルを配置するディレクトリがないと判定した場合(ステップS403:No)、配置ファイルパスに基づいてディレクトリを作成してから(ステップS404)処理をステップS405へ移す。
ステップS405において、マルウェア実行環境部41は、ステップS402で受信した配置ファイルパスに対応するファイルデータを解析システムコントロール部43から受信し、受信したファイルデータを指定された配置ファイルパスの位置に配置する(ステップS406)。
マルウェア実行環境部41は、マルウェアV2を実際に動作させる際、このステップS406の処理によって配置したファイルデータを、マルウェアV2を動作させる動作環境E2の一部として用いる。
そして、マルウェア実行環境部41は、全てのファイルの配置が完了するとファイル配置を終了して(ステップS406)、解析システムコントロール部43から状態情報を受信して設定する(ステップS407)。
ここで、マルウェア実行環境部41は、受信した状態情報に基づいて、環境変数やIPアドレス等の受信した状態情報に含まれる全ての情報を設定する。
続いて、マルウェア実行環境部41は、解析システムコントロール部43から解析実行時親プロセス名を受信し(ステップS408)、その後、解析システムコントロール部43から解析実行APIパラメータを受信して(ステップS409)、処理をステップS410へ移す。
そして、マルウェア実行環境部41は、これらステップS407〜ステップS409の処理によって受信した各種情報をマルウェアV2の動作環境E2の一部として設定する。こうして設定された各種情報は、マルウェア実行環境部41がマルウェアV2を実際に動作させる際に、マルウェアV2を動作させる動作環境E2の一部として用いられる。
ステップS410において、マルウェア実行環境部41は、解析実行時親プロセス名の指定があるか否かの判定を行い、指定がないと判定した場合(ステップS410:No)、解析実行APIパラメータの指定に基づきプログラムを起動して(ステップS411)処理をステップS412へ移す。
一方、マルウェア実行環境部41は、解析実行時親プロセス名の指定あると判定した場合(ステップS410:Yes)、指定された親プロセスが起動中であるか否かの判定を行う(ステップS413)。
そして、マルウェア実行環境部41は、親プロセスが起動中であると判定した場合(ステップS413:Yes)、処理をステップS415へ移す。一方、マルウェア実行環境部41は、親プロセスが起動中でないと判定した場合(ステップS413:No)、親プロセスの立ち上げ(起動)を行ってプロセスを生成してから(ステップS414)、処理をステップS415へ移す。
ステップS415において、マルウェア実行環境部41は、解析実行APIパラメータの指定に基づき指定された親プロセスの子プロセスとしてプログラムを起動してプロセスの生成を行って(ステップS415)解析を行い、処理をステップS412へ移す。
ステップS412において、マルウェア実行環境部41は、解析対象プログラムのプロセス生成に成功したか否か、すなわち、マルウェアV2の動作環境E2の生成に成功したか否かを示す実行可否ステータスを解析システムコントロール部43へ送信して処理を終了する。
以上説明したように、本実施形態に係る解析システム1では、情報収集手段2として機能するマルウェア収集部20がコンピュータへ侵入してマルウェアV2の動作環境の生成及びコンピュータへのマルウェアV2の導入を行うシェルコードV1を動作させて、生成された動作環境E1に関する情報を含む環境情報6とマルウェアV2とを収集する。
そして、情報記憶手段3として機能する情報データベース30がマルウェア収集部20によって収集された環境情報6を記憶し、プログラム動作手段5として機能するマルウェア解析部40が情報データベース30に記憶されている環境情報6を用いて生成した動作環境E2の下でマルウェアV2を動作させ、情報収集手段として機能するマルウェア解析部40が動作させたマルウェアV2の挙動情報を収集する。
このように、本実施形態の解析システム1では、マルウェアV2が本来の動作を行うことができる動作環境E2を生成することができるので、特定の動作環境E1が整っていなければ本来の動作を行わないマルウェアV2であっても、マルウェア解析部40に生成した動作環境E2の下でマルウェアV2に本来の動作を行わせて正確な挙動情報を収集することができる。
また、本実施形態の解析システム1では、情報収集手段2として機能するマルウェア収集部20によって、マルウェアV2が動作するために生成したファイルに関するファイル生成情報と、マルウェアV2が動作するために生成したマルウェアV2のプロセスに関するプロセス生成情報とを環境情報6としてマルウェアV2による攻撃動作毎に収集させる。
そのため、本実施形態の解析システム1では、攻撃毎に動作環境E1を変更するようなマルウェアV2であっても、攻撃毎に動作環境E2を生成することができるので、攻撃毎の挙動情報を正確に収集することができる。
また、本実施形態の解析システム1では、対応情報作成手段として機能する対応情報作成部70によって、環境情報6中のファイル生成情報とプロセス生成情報とに基づいて、プロセス生成情報に含まれるプロセスの生成時刻以前に生成されていたファイルと、当該生成時刻に生成されたプロセスとを対応付けた対応情報を作成する。
そして、マルウェア解析部40が対応情報作成部70によって作成された対応情報に含まれるプロセスと対応付けられているファイルを、マルウェアV2を動作させる動作環境E2として用いる。
これにより、本実施形態の解析システム1では、マルウェア解析部40が内部にマルウェアV2の動作環境E2を再現する際、シェルコードV1がマルウェア収集部20内にあるプロセスを生成したとき既にマルウェア収集部20内に存在していたファイルを動作環境E2の一部としてマルウェア解析部40の内部に配置しておくことができる。
これにより、本実施形態の解析システム1では、シェルコードV1によって生成されたファイルが存在しなければ本来の動作を行うことができないマルウェアV2に本来の動作を行わせて、正確な挙動情報を収集することができる。
また、本実施形態の解析システム1では、対応情報作成部70は、プロセス生成情報に含まれるプロセスの生成に使用された引数列(例えば、APIパラメータ)の中に、ファイル生成情報に含まれるファイルを特定可能なファイル特定情報(例えば、ファイルパスやファイル名を示す情報)が存在していた場合に、当該引数列を当該引数列が使用されたプロセスの対応情報に登録する。そして、マルウェア解析部40は、対応情報に登録されている引数列を用いてマルウェアV2を動作させる。
そのため、本実施形態の解析システム1では、APIパラメータ等の引数を設定しなければプロセス生成等の本来の動作を行うことができないマルウェアV2であっても、本来の動作を行わせて正確な挙動情報を収集することができる。