解析システム、解析方法および解析プログラム
【課題】不正プログラムの解析において解析に要する時間を削減し、さらにネットワークの接続確認を行うマルウェアについても挙動に関する情報を収集して正確な解析を実現すること。
【解決手段】マルウェア実行環境10は、動的解析コントロールモジュール4から投入されたマルウェアを実行する。仮想ネットワーク部20はマルウェア実行環境10からの通信を受け取り、保存すると同時に通信のプロトコルを判別し、プロトコルに応じたデータを生成し、応答としてマルウェア実行環境10に送信することで仮想ネットワークを実現する。マルウェア解析結果データベース2には、解析対象マルウェアについて動的解析で収集された通信データ、APIやシステムコール、内部資源へのアクセス結果を保存する。
【解決手段】マルウェア実行環境10は、動的解析コントロールモジュール4から投入されたマルウェアを実行する。仮想ネットワーク部20はマルウェア実行環境10からの通信を受け取り、保存すると同時に通信のプロトコルを判別し、プロトコルに応じたデータを生成し、応答としてマルウェア実行環境10に送信することで仮想ネットワークを実現する。マルウェア解析結果データベース2には、解析対象マルウェアについて動的解析で収集された通信データ、APIやシステムコール、内部資源へのアクセス結果を保存する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、実インターネットに接続しない、または特定のプロトコルのみ接続する仮想ネットワーク上で、コンピュータ上で動作する悪意あるプログラムを実際に動作させることによりその挙動を解析するシステム、解析方法および解析プログラムに関する。
【背景技術】
【0002】
近年、情報漏洩や不正アクセス等の脅威をもたらすコンピュータウイルスやスパイウェア、ボットプログラムといった悪意のあるコンピュータプログラム(以下、このような不正に動作する不正プログラムを「マルウェア」と呼ぶ)が猛威を振るっている。
【0003】
マルウェアにはそのソースコードがインターネット網に公開され、容易に新種や亜種を作成することが可能となっているものが存在し、一日に70種類程度の新種や亜種が出現している(非特許文献1参照。)。また、マルウェアにはインターネット網への接続確認を行い、正常に通信できない場合にはその動作を停止させるものが存在する(非特許文献2参照。)。
【0004】
このようなマルウェアによる脅威への対策を行うには、マルウェアがどのような通信を行い、またコンピュータ内部資源にどのような影響を及ぼすかを調べる必要がある。ここで、コンピュータ内部資源は、不揮発性記憶媒体、揮発性記憶媒体、及びそれらに記憶されるデータを指す。
【0005】
マルウェアの動作を解析する手法としては、マルウェアのバイナリデータを逆アセンブルするものやデバッガを用いるものが一般的である(例えば非特許文献3参照。)。ただし、近年のマルウェアには逆アセンブルやデバッガによる解析を妨害する仕組みを備えたものが存在するため、解析における困難さは増大している(非特許文献4参照。)。
【0006】
また、逆アセンブルやデバッガによらない解析方法として、実際にマルウェアを動作させ、そのときの内部資源や通信を監視する方法(非特許文献5参照)も考えられるが、その場合、実インターネット上に存在する一般ユーザのコンピュータへ攻撃をせずに安全に解析を行うためには、実インターネットと接続しない環境で解析を行う必要がある。
【0007】
【非特許文献1】小山 覚(Telecom-ISAC Japan) 「ボットネット実態調査結果“Our security depends on your security.”」 Black Hat Japan 2005 Briefings
【非特許文献2】「Web経由の感染が急増、バレる前に「消える」マルウェアも」 http://internet.watch.impress.co.jp/cda/news/2007/12/19/17941.html
【非特許文献3】Konstantin Rozinov 「REVERSE CODE ENGINEERING: An In-Depth Analysis of the Bagle Virus」 Lucent Technologies
【非特許文献4】Mark Vincent Yason 「The Art of Unpacking」 Black Hat USA 2007 Briefings
【非特許文献5】Capture BAT http://www.nz-honeynet.org/capture-standalone.html The NewZealand Honeynet Project
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した逆アセンブルやデバッガによる解析手法は、高度な知識と技術を必要とし、解析に数時間から数日程度の時間を必要とする。また、マルウェアに存在する逆アセンブルやデバッガによる解析の妨害手法のため、より解析が困難になり、必要とされる解析時間も増大している。
【0009】
そのため、新種・亜種が一日に70種類程度出現する現状に、逆アセンブルやデバッガを用いた従来手法では完全に対応することができないという問題点があった。さらに、実インターネットへ接続しない環境でマルウェアを動作させ、その挙動を観測する手法の場合、外部インターネット網への接続確認ができないと正常に動作しないマルウェアの解析を行うことができないという問題点があった。
【0010】
本発明は、上述した従来技術における問題点を解決し、課題を解決するためになされたものであり、逆アセンブルやデバッガを用いた解析の困難さを回避し、解析に要する時間を削減し、さらにネットワークの接続確認を行うマルウェアについても挙動に関する情報を収集して正確な解析を実現する解析システム、解析方法、および解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するため、本発明にかかる解析システム、解析方法および解析プログラムは、コンピュータ内で不正な動作を行う不正プログラムの挙動を解析するにあたり、不正プログラムを実行させる実行環境を提供し、前記実行環境と接続された仮想ネットワークを構築して前記不正プログラムを前記仮想ネットワークにアクセスさせ、前記実行環境における前記不正プログラムの動作に関する情報および/または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集することを特徴とする。
【0012】
また、本発明によれば、不正プログラムが関与する通信の通信プロトコル、通信ペイロード、通信先および呼び出されるシステムコール、API(Application Program Interface)、内部資源に関する情報を前記挙動情報として収集する。
【0013】
また、本発明によれば、外部の実ネットワークに接続する実ネットワーク接続手段と、前記不正プログラムが関与する通信の一部を前記実ネットワークに接続することを特徴とする。
【0014】
また、本発明によれば、通信ペイロードと予め登録したパターンとのパターンマッチングを行って通信プロトコルを同定する。
【0015】
また、本発明によれば、同定した通信プロトコルに応じた擬似サーバ応答を生成して前記不正プログラムに送信する。
【0016】
また、本発明によれば、不正プログラムが関与する通信の通信プロトコルを通信ペイロードと予め登録したパターンとのパターンマッチングによって同定し、当該同定結果に基づいて前記実ネットワークに前記通信を接続するか否かを判定し、前記実ネットワークに接続する通信については当該通信を代理実行し、代理実行によって得られた応答を前記不正プログラムに渡すことを特徴とする。
【0017】
また、本発明によれば、HTTP(Hypertext Transfer Protocol)による通信を実ネットワークに代理実行する際に、GETリクエストURLのパラメータ部を削除して実ネットワークに接続することを特徴とする。
【発明の効果】
【0018】
本発明にかかる解析システム、解析方法および解析プログラムは、不正プログラムの解析において、解析対象となる不正プログラムを実際に実行する手法を取ることによって、逆アセンブルやデバッガを用いた解析の困難さを回避し、解析に要する時間を削減し、さらにネットワークの接続確認を行うマルウェアについても挙動に関する情報を収集して正確な解析を実現する解析システム、解析方法、および解析プログラムを得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【0019】
以下に添付図面を参照して、この発明に係る解析システム、解析方法および解析プログラムの好適な実施例について詳細に説明する。
【実施例1】
【0020】
図1は、本発明の実施例1における解析システムの概要構成を示す概要構成図である。同図に示したように、本発明にかかる解析システムでは、実インターネットに接続しない仮想ネットワークを用いた動的解析システム1においてマルウェアを実行し、通信データ及び呼び出されるAPIやシステムコール、内部資源へのアクセスを監視する。
【0021】
マルウェアを実際に動作させることによる解析(以下、「動的解析」と呼ぶ)によって得られたデータは、マルウェア解析結果データベース2へ保存される。保存されたデータは解析結果分析・出力モジュール3を介し、必要なデータを図表により可視化して表示する。この解析システムは、複数のマルウェアを連続して解析する場合についても同様に適用できる。
【0022】
図2は、本実施例1における解析システムの具体的な構成例である。本実施例1では、実インターネットに接続しない仮想ネットワークにおいてマルウェアを実行し、その挙動及び通信内容を収集することにより、短時間での解析を実現する。
【0023】
図2に示したように、本実施例1にかかる解析システムは動的解析コントロールモジュール4、マルウェア実行環境10と仮想ネットワーク部20からなる動的解析システム1、マルウェア解析結果データベース2、解析結果分析・出力モジュール3により構成される。なお、一つの動的解析システム1に、複数のマルウェア実行環境及び仮想ネットワーク部が存在するように構成してもよい。
【0024】
動的解析コントロールモジュール4は、動的解析システム1の初期化、解析終了シグナルの送信、マルウェア実行環境10への解析対象マルウェア投入、マルウェア実行環境10及び仮想ネットワーク部20からのログの受信及びマルウェア解析結果データベース2への登録を行う。
【0025】
マルウェア実行環境10は、動的解析コントロールモジュール4から投入されたマルウェアを実行するための環境である。仮想ネットワーク部20はマルウェア実行環境10からの通信を受け取り、保存すると同時に通信のプロトコルを判別し、プロトコルに応じたデータを生成し、応答としてマルウェア実行環境10に送信する。仮想ネットワークはこのプロトコルに応じたサーバ応答の生成により実現される。
【0026】
マルウェア解析結果データベース2には、解析対象マルウェア、及びその解析の状況(未解析・解析済み・解析中)、動的解析で収集された通信データ、APIやシステムコール、内部資源へのアクセス結果が保存される。
【0027】
解析結果分析・出力モジュール3では、マルウェア解析結果データベース2からマルウェアの通信先、通信プロトコル、API呼び出しシーケンスなどが整理され、自動的に図表に加工し、表示する。
【0028】
図3は、本発明の動的解析コントロールモジュール4の処理動作を表すフローチャートである。同図にしめしたように、解析が開始されると、まずマルウェア解析結果データベース2に問い合わせ、未解析のマルウェアが存在しているかを確かめる(ステップS101)。
【0029】
その結果、未解析のマルウェアが存在しない場合(ステップS101,No)には解析を終了する。一方、未解析のマルウェアが存在している場合(ステップS101,Yes)には、マルウェア実行環境10の初期化(ステップS102)と仮想ネットワーク部20(ステップS103)の初期化が行われる。
【0030】
マルウェア実行環境10の初期化では、マルウェア実行前のクリーンな状態にロールバックする作業が行われる。仮想ネットワーク部20の初期化では、仮想ネットワーク内のペイロードデータベース25の初期化を実施する。
【0031】
次に、初期化された動的解析システム1のマルウェア実行環境10に解析対象となるマルウェアが送信される(ステップS104)。マルウェア実行モジュール11では、その実行が成功したか否かの結果を受け取り(ステップS105)、マルウェア解析結果データベース2に登録する(ステップS106)。
【0032】
マルウェアの実行に成功した場合(ステップS107,Yes)には、設定した解析時間が経過するまで動的解析コントロールモジュール4は待機する。設定時間が経過した(ステップS108,Yes)ところで動的解析システム1へ解析完了のシグナルを送信し(ステップS109)、仮想ネットワーク部20のペイロードデータベース25よりデータを取得し(ステップS110)、取得したデータをマルウェア解析結果データベース2に登録する(ステップS111)。これら一連の処理を、未解析マルウェアがなくなるまで繰り返す。
【0033】
図4は、マルウェア実行モジュール11の処理動作を表すフローチャートである。マルウェア実行モジュール11では、動的解析コントロールモジュール4からマルウェアを受け取り(ステップS201,Yes)、実行される(ステップS202)。実行に成功したか否かのステータスは動的解析コントロールモジュールへ送信される(ステップS203)。
【0034】
マルウェアの実行に成功した場合(ステップS204,Yes)には、API、システムコール、内部資源へのアクセスを監視した状態(ステップS205)で解析終了のシグナルを受信する(ステップS206,Yes)までマルウェアはその実行を継続する。
【0035】
図5は、マルウェアの挙動監視(API、システムコール、内部資源アクセス監視)に関する処理動作のフローチャートである。この処理動作では、マルウェアがどのようなAPIを呼び出したか(ステップS301)、どのようなシステムコールを呼び出したか(ステップS302)、またOSによっては(例えばWindows(登録商標)の場合など)レジストリのアクセス(読み込み・書き込み・削除)を監視する(ステップS303)。さらにファイルへのアクセス(読み込み・書き込み・削除)についても監視を行う(ステップS304)。
【0036】
そして、監視結果についてはログをとり、動的解析コントロールモジュールを介してマルウェア解析結果データベースに登録される(ステップS305)。
【0037】
図6は、仮想ネットワーク部20における処理動作を表すフローチャートである。仮想ネットワーク部20は、マルウェア実行環境10からの通信を受け取り、プロトコルに応じた応答を返す。まず、仮想ネットワーク部20では、マルウェア実行環境10から通信データを受け取り(ステップS401)、そのプロトコル判別が行われる(ステップS402)。
【0038】
同時に、受け取ったペイロードをペイロードデータベース25に保存する(ステップS403。ここで保存するペイロードの例として、IPパケットの発信元IPアドレス、宛先IPアドレス、データ部が挙げられる。解析時に取得できる具体的なデータ例として、ボットプログラムが接続を試みるC&Cサーバ(Command and Control Server)のFQDN(Full Qualified Domain Name)やニックネーム、C&Cサーバ接続リクエストが挙げられる。例えば、ここで取得できたC&CサーバのFQDNを利用し、ネットワーク上のボット感染端末の調査を行うことができる。
【0039】
さらに、判定されたプロトコルに応じて、サーバ応答が生成され(ステップS403)、マルウェア実行環境10への応答が行われる。このプロトコルに応じたサーバ応答により、仮想ネットワークが実現されている。これらの処理は、解析終了シグナルを受信するまで繰り返され、解析終了シグナルを受信したら(ステップS405,Yes)ペイロードデータベース25のデータを動的解析コントロールモジュール4を介してマルウェア解析結果データベース2へ転送し、解析を終了する。
【0040】
なお、ペイロードデータは動的解析が行われている間、随時動的解析コントロールモジュール4を介してマルウェア解析結果データベース2へ保存されるよう構成してもよい。
【0041】
図7はプロトコル判別処理の詳細を表すフローチャートである。まず、仮想ネットワーク部20で受け取った通信の送信先アドレス、送信先ポート番号がプロトコル判別データベース23の送信先アドレス・送信先ポート番号のリストに含まれているかを調べる(ステップS501)。
【0042】
送信先アドレス・送信先ポート番号のリスト例を図8に示す。リスト内でこれらの一致が確認された場合(ステップS501,Yes)には、リストに登録されているプロトコルの通信であったと判定される(ステップS504)。
【0043】
また、送信先アドレス・送信先ポート番号の一致が確認できなかった場合(ステップS501,No)には仮想ネットワーク部20で受信したペイロードをプロトコル判別データベース23のシグネチャリストと比較する(ステップS502)。シグネチャリストの例を図9に示す。なお、図に例示されていないプロトコルについて、追加することもできる。
【0044】
シグネチャにマッチした場合(ステップS503)には登録されていたプロトコルによる通信であると判定し(ステップS506)、マッチしなかった場合(ステップS503)にはプロトコル判定できなかった(ステップS505)旨を返す。
【0045】
図10はサーバ応答生成処理の詳細を説明するフローチャートである。プロトコル判別モジュール21によりプロトコル判別に成功した場合(ステップS601,Yes)には、各プロトコルに応じた応答が定義されているかどうかを確かめる(ステップS602)。
【0046】
その結果、サーバ応答が定義されている場合(ステップS602,Yes)には、定義されている通りの応答を返す(ステップS603)。応答の定義の例を図11に示す。DNS(Domain Name System)の応答例として、問い合わせのあったFQDNに対し、仮想ネットワーク内の任意のアドレスを対応付け、そのアドレスをマルウェア実行環境に返すものが考えられる。定義によっては、応答は返さない処理も含めることができる。
【実施例2】
【0047】
図12は、本発明の実施例2おける解析システムの概要構成を示す概要構成図である。同図に示したように、本実施例にかかる解析システムでは、特定のプロトコルによる通信のみが実インターネット網に接続可能な仮想ネットワークを用いた動的解析システム1aにおいてマルウェアを実行し、通信データ及び呼び出されるAPIやシステムコール、内部資源へのアクセスを監視する。
【0048】
動的解析によって得られたデータは、マルウェア解析結果データベース2へ保存される。保存されたデータは解析結果分析・出力モジュール3を介し、必要なデータを図表により可視化する。複数のマルウェアを連続して実行する構成としてもよい。
【0049】
図13は本実施例2における解析システムの具体的な構成例である。本実施例2では、特定のプロトコルによる通信のみが実インターネットに接続可能な仮想ネットワークにおいてマルウェアを実行し、その挙動及び通信内容を収集することにより、短時間での解析を実現する。
【0050】
図13に示したように、本実施例2にかかる解析システムでは、動的解析コントロールモジュール4、マルウェア実行環境10と仮想ネットワーク部20aからなる動的解析システム1a、マルウェア解析結果データベース2、解析結果分析・出力モジュール3により構成される。なお、一つの動的解析システム1に、複数のマルウェア実行環境及び仮想ネットワーク部が存在するように構成してもよい。
【0051】
動的解析コントロールモジュール4は、動的解析システム1aの初期化、解析終了シグナルの送信、マルウェア実行環境10への解析対象マルウェア投入、マルウェア実行環境10及び仮想ネットワーク部20aからのログの受信及びマルウェア解析結果データベース2への登録を行う。
【0052】
マルウェア実行環境10は、動的解析コントロールモジュール4から投入されたマルウェアを実行するための環境である。仮想ネットワーク部20aはマルウェア実行環境10からの通信を受け取り、保存すると同時にプロトコル判別が行なう。そして、プロトコル判別後、マルウェア実行モジュール11から受け取った通信の通信先アドレス、通信先ポート番号、プロトコル、ペイロードを参照し、外部接続コントロールモジュール26が実インターネットに接続して通信を行うのか、または仮想ネットワーク内部でプロトコルに応じたデータを生成し、応答としてマルウェア実行環境11に送信するかをコントロールする。
【0053】
マルウェア解析結果データベース2では、解析対象マルウェア、解析の状況(未解析・解析済み・解析中)、動的解析で収集された通信データ、APIやシステムコール、内部資源へのアクセス結果が保存される。ここで、動的解析で収集された通信データには、マルウェア実行モジュール11からの通信に加え、外部インターネット網との通信結果も保存される。
【0054】
解析結果分析・出力モジュール3では、マルウェア解析結果データベース2からマルウェアの通信先、通信プロトコル、API呼び出しシーケンスなどが整理され、自動的に図表に加工し、表示する。
【0055】
図13の動的解析コントロールモジュールの具体的な処理動作は実施例1において図3を参照して説明した処理動作と同様であるので、ここでは説明を省略する。また、図13のマルウェア実行モジュール11、及びその内部で行われるAPI、システムコール、内部資源アクセスについても実施例1において図4,図5を参照して説明した処理動作と同様であるので、ここでは説明を省略する。
【0056】
図14は仮想ネットワーク部20aにおける処理動作を表すフローチャートである。仮想ネットワーク部20aは、マルウェア実行環境10からの通信を受け取り、通信内容に応じ、内部のサーバ応答生成モジュール24もしくは実インターネットから受け取った通信データを返す。
【0057】
まず、仮想ネットワーク部20aではマルウェア実行環境10から通信データを受け取り(ステップS701)、そのプロトコル判別が行われる(ステップS702)。同時に、受け取ったペイロードをペイロードデータベースに保存する(ステップS703)。ここで保存するペイロードの例として、IPパケット発信元IPアドレス、宛先IPアドレス、データ部が挙げられる。また、解析時に取得できる具体的なデータ例として、ボットプログラムが接続を試みるC&CサーバのFQDNやニックネーム、C&Cサーバ接続リクエストが挙げられる。
【0058】
その後、外部接続コントロールモジュール26により、実インターネット上に存在するサーバへ接続するか、それとも仮想ネットワーク内のサーバ応答生成モジュール24により応答するかが決定される(ステップS704)。プロトコル判別モジュール21及びサーバ応答生成モジュール24の処理については、実施例1において図7及び図8を参照して説明したのでここでは省略する。
【0059】
これらの処理は、解析終了シグナルを受信するまで繰り返され、シグナルを受信したら(ステップS705,Yes)ペイロードデータベース25のデータを動的解析コントロールモジュール4を介してマルウェア解析結果データベース2へ転送し(ステップS707)、解析を終了する。
【0060】
なお、ペイロードデータは動的解析が行われている間、随時動的解析コントロールモジュール4を介してマルウェア解析結果データベース2へ保存されるよう構成してもよい。
【0061】
図15は外部接続コントロールモジュール26の処理を表すフローチャートである。外部接続コントロールモジュール26では、マルウェア実行環境10から受け取った通信データを接続管理用シグネチャデータベース27を基に、実インターネット上のサーバに接続するか、それとも仮想ネットワーク内のサーバ応答生成モジュール24により応答するかを決定する。
【0062】
実インターネット上のサーバに接続するか否かを決定するにあたっては、まず、事前に判別されたプロトコルが、接続管理リストに含まれているかを確認する(ステップS801)。含まれていた場合(ステップS802,Yes)には、その通信の実際の接続先アドレス(ステップS803)・ペイロード(ステップS804)・ペイロード長(ステップS805)をリストのパターンと比較する。なお、接続先アドレス・ペイロードの比較では正規表現によるものを含む。接続管理リストは例えば図16に示したように作成しておけばよい。
【0063】
接続先アドレス・ペイロード・ペイロード長のうち、一つでもマッチしないものが存在した場合(ステップS803〜805のいずれかがNo)には仮想ネットワーク内で生成される応答がマルウェア実行モジュールへ送信される(ステップS813)。
【0064】
また、上記の比較が行われた結果、その通信が実インターネットへの接続を許可しないものとして接続管理リストに登録されていた場合(ステップS806,No)にも、仮想ネットワーク内部で応答を生成する(ステップS813)。
【0065】
一方、実インターネットへ接続すると判定された場合(ステップS807)で、ペイロード加工が不要な場合(ステップS808)には外部接続コントロールモジュール26が実インターネット上のサーバに接続し、仮想ネットワークで受け取った通信データを送信する(ステップS810)。
【0066】
ペイロード加工を必要とする場合(ステップS808,Yes)には、仮想ネットワークで受け取ったペイロードを加工した(ステップS809)上で、外部インターネット上のサーバにデータを送信する(ステップS811)。
【0067】
ペイロードの加工は、一般ユーザに攻撃を行わせないための仕組みである。HTTPで外部に接続した場合、GETリクエストURI(Uniform Resource Identifier)におけるパラメータ部(http://www.example.com/index.php?name=hoge?pass=fugaの場合“?”の後方部分)を削除してアクセスすることにより、HTTPサーバアプリケーションの脆弱性をついた攻撃や、掲示板等へのスパム活動を防ぐ。
【0068】
このように、実行環境10からのセッションは仮想ネットワーク内部で終端され、実インターネットに接続するのは外部接続コントロールモジュール26である。外部接続コントロールモジュール26が外部から受け取ったデータはペイロードデータベース25に保存され、動的解析コントロールモジュール4を介してマルウェア解析結果データベース2に保存される(ステップS812)。
【0069】
外部接続コントロールモジュールを介して得られたペイロードに含まれるデータ例として、攻撃者がボットに対して送り込んだ命令が挙げられ、その命令を受けたボットの挙動を分析することにより、攻撃者がボットネットを利用して行おうとしている攻撃行動を把握することが可能になる。
【0070】
以上説明してきたように、本発明では、仮想ネットワーク上でマルウェアを実行し、そのときの通信及び呼び出されるAPI、システムコール、内部資源へのアクセス状況を監視することで、マルウェアに見られる特徴的な挙動を短時間で収集することが可能である。
【0071】
実施例1に示した構成では、実インターネットへ接続しない仮想ネットワーク上でマルウェアを実行するため、実インターネットに存在するコンピュータに対して攻撃を実施してしまうリスクを回避する。また、逆アセンブルやデバッグといった手法をとらない手法であるため、解析の困難さを解決している。
【0072】
実施例2に示した構成では、特定のプロトコルのみ実インターネットに接続可能な仮想ネットワーク上でマルウェアを実行することで、攻撃者がマルウェアに対して指令を出し、コントロールする場合の挙動解析を実現する。外部へ接続するプロトコルを一部に制限する(例えば、外部の攻撃者からの命令を仮想ネットワークに取り込むようにものに、外部との接続を制限する)ことにより、外部インターネット網へ攻撃を実施するリスクを低減することが可能である。
【0073】
そして、実インターネットに接続しない(実施例1)、または一部接続する(実施例2)仮想ネットワークを用いた解析で得られたデータをマルウェアの脅威対策に適用するために、本発明で取得した解析結果から必要なデータ、例えば通信先アドレスや通信内容、API コールシーケンスを自動的に抽出し、図表に加工した上で表示する。これによりネットワークオペレータはマルウェアの解析結果を瞬時に把握することが可能になり、通信制御による攻撃活動抑止、感染者の特定を実施することが可能になる。
【0074】
すなわち、本発明によって得られる効果は、短時間でマルウェアの挙動解析結果を収集できることである。従来はマルウェアのバイナリデータを逆アセンブルやデバッガにより解析していたが、この手法は高度な専門性を必要とすると同時に、解析に数時間から数日程度の時間を必要とする点が課題であった。特に近年、マルウェアに逆アセンブルやデバッガによる解析をより困難にする仕組みを備えたものが出現しており、解析の困難さ、解析に必要な時間が増大していた。これに対して本発明では、これらの解析における困難さを軽減し、容易にかつ安全にマルウェアの挙動を知ることが可能になった。
【0075】
さらに、インターネット上に存在する攻撃者からマルウェアに対する命令のやり取りに関する通信のみをマルウェアに受け渡すことによって、どのような命令を攻撃者が出し、またその命令を受けてマルウェアがどのような挙動を示すかをリアルタイムで把握することが可能になった。これにより、ネットワークオペレータがマルウェアに感染したユーザの通信をいち早く検知することが可能になる。
【0076】
なお、実施例1および2に示したシステム構成は、複数のコンピュータを接続して形成してもよいし、単一のコンピュータ上で動作するプログラムとして構成してもよい。また、システムの構成要素の一部、もしくは全てを専用のハードウェアによって実現することもできる。
【産業上の利用可能性】
【0077】
以上のように、本発明に係る解析システム、解析方法および解析プログラムは、不正プログラムの解析に有用であり、特にネットワーク接続に基づいて動作する不正プログラムの情報収集に適している。
【図面の簡単な説明】
【0078】
【図1】本発明の実施例1における解析システムの概要構成を示す概要構成図である。
【図2】実施例1における解析システムの具体的な構成図である。
【図3】動的解析コントロールモジュール4の処理動作を表すフローチャートである。
【図4】マルウェア実行モジュール11の処理動作を表すフローチャートである。
【図5】マルウェアの挙動監視の処理動作を説明するフローチャートである。
【図6】仮想ネットワーク部20における処理動作を表すフローチャートである。
【図7】プロトコル判別処理の詳細を表すフローチャートである。
【図8】送信先アドレス・送信先ポート番号のリストについて説明する説明図である。
【図9】シグネチャリストについて説明する説明図である。
【図10】サーバ応答生成処理の詳細を説明するフローチャートである。
【図11】サーバ応答の定義について説明する説明図である。
【図12】本発明の実施例2おける解析システムの概要構成を示す概要構成図である。
【図13】実施例2における解析システムの具体的な構成図である。
【図14】仮想ネットワーク部20aにおける処理動作を表すフローチャートである。
【図15】外部接続コントロールモジュール26の処理を表すフローチャートである。
【図16】接続管理リストについて説明する説明図である。
【符号の説明】
【0079】
1,1a 動的解析システム
2 マルウェア解析結果データベース
3 解析結果分析・出力モジュール
4 動的解析コントロールモジュール
10 マルウェア実行環境
11 マルウェア実行モジュール
20,20a 仮想ネットワーク部
21 プロトコル判別モジュール
23 プロトコル判別データベース
24 サーバ応答生成モジュール
25 ペイロードデータベース
26 外部接続コントロールモジュール
27 接続管理用シグネチャデータベース
【技術分野】
【0001】
この発明は、実インターネットに接続しない、または特定のプロトコルのみ接続する仮想ネットワーク上で、コンピュータ上で動作する悪意あるプログラムを実際に動作させることによりその挙動を解析するシステム、解析方法および解析プログラムに関する。
【背景技術】
【0002】
近年、情報漏洩や不正アクセス等の脅威をもたらすコンピュータウイルスやスパイウェア、ボットプログラムといった悪意のあるコンピュータプログラム(以下、このような不正に動作する不正プログラムを「マルウェア」と呼ぶ)が猛威を振るっている。
【0003】
マルウェアにはそのソースコードがインターネット網に公開され、容易に新種や亜種を作成することが可能となっているものが存在し、一日に70種類程度の新種や亜種が出現している(非特許文献1参照。)。また、マルウェアにはインターネット網への接続確認を行い、正常に通信できない場合にはその動作を停止させるものが存在する(非特許文献2参照。)。
【0004】
このようなマルウェアによる脅威への対策を行うには、マルウェアがどのような通信を行い、またコンピュータ内部資源にどのような影響を及ぼすかを調べる必要がある。ここで、コンピュータ内部資源は、不揮発性記憶媒体、揮発性記憶媒体、及びそれらに記憶されるデータを指す。
【0005】
マルウェアの動作を解析する手法としては、マルウェアのバイナリデータを逆アセンブルするものやデバッガを用いるものが一般的である(例えば非特許文献3参照。)。ただし、近年のマルウェアには逆アセンブルやデバッガによる解析を妨害する仕組みを備えたものが存在するため、解析における困難さは増大している(非特許文献4参照。)。
【0006】
また、逆アセンブルやデバッガによらない解析方法として、実際にマルウェアを動作させ、そのときの内部資源や通信を監視する方法(非特許文献5参照)も考えられるが、その場合、実インターネット上に存在する一般ユーザのコンピュータへ攻撃をせずに安全に解析を行うためには、実インターネットと接続しない環境で解析を行う必要がある。
【0007】
【非特許文献1】小山 覚(Telecom-ISAC Japan) 「ボットネット実態調査結果“Our security depends on your security.”」 Black Hat Japan 2005 Briefings
【非特許文献2】「Web経由の感染が急増、バレる前に「消える」マルウェアも」 http://internet.watch.impress.co.jp/cda/news/2007/12/19/17941.html
【非特許文献3】Konstantin Rozinov 「REVERSE CODE ENGINEERING: An In-Depth Analysis of the Bagle Virus」 Lucent Technologies
【非特許文献4】Mark Vincent Yason 「The Art of Unpacking」 Black Hat USA 2007 Briefings
【非特許文献5】Capture BAT http://www.nz-honeynet.org/capture-standalone.html The NewZealand Honeynet Project
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した逆アセンブルやデバッガによる解析手法は、高度な知識と技術を必要とし、解析に数時間から数日程度の時間を必要とする。また、マルウェアに存在する逆アセンブルやデバッガによる解析の妨害手法のため、より解析が困難になり、必要とされる解析時間も増大している。
【0009】
そのため、新種・亜種が一日に70種類程度出現する現状に、逆アセンブルやデバッガを用いた従来手法では完全に対応することができないという問題点があった。さらに、実インターネットへ接続しない環境でマルウェアを動作させ、その挙動を観測する手法の場合、外部インターネット網への接続確認ができないと正常に動作しないマルウェアの解析を行うことができないという問題点があった。
【0010】
本発明は、上述した従来技術における問題点を解決し、課題を解決するためになされたものであり、逆アセンブルやデバッガを用いた解析の困難さを回避し、解析に要する時間を削減し、さらにネットワークの接続確認を行うマルウェアについても挙動に関する情報を収集して正確な解析を実現する解析システム、解析方法、および解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するため、本発明にかかる解析システム、解析方法および解析プログラムは、コンピュータ内で不正な動作を行う不正プログラムの挙動を解析するにあたり、不正プログラムを実行させる実行環境を提供し、前記実行環境と接続された仮想ネットワークを構築して前記不正プログラムを前記仮想ネットワークにアクセスさせ、前記実行環境における前記不正プログラムの動作に関する情報および/または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集することを特徴とする。
【0012】
また、本発明によれば、不正プログラムが関与する通信の通信プロトコル、通信ペイロード、通信先および呼び出されるシステムコール、API(Application Program Interface)、内部資源に関する情報を前記挙動情報として収集する。
【0013】
また、本発明によれば、外部の実ネットワークに接続する実ネットワーク接続手段と、前記不正プログラムが関与する通信の一部を前記実ネットワークに接続することを特徴とする。
【0014】
また、本発明によれば、通信ペイロードと予め登録したパターンとのパターンマッチングを行って通信プロトコルを同定する。
【0015】
また、本発明によれば、同定した通信プロトコルに応じた擬似サーバ応答を生成して前記不正プログラムに送信する。
【0016】
また、本発明によれば、不正プログラムが関与する通信の通信プロトコルを通信ペイロードと予め登録したパターンとのパターンマッチングによって同定し、当該同定結果に基づいて前記実ネットワークに前記通信を接続するか否かを判定し、前記実ネットワークに接続する通信については当該通信を代理実行し、代理実行によって得られた応答を前記不正プログラムに渡すことを特徴とする。
【0017】
また、本発明によれば、HTTP(Hypertext Transfer Protocol)による通信を実ネットワークに代理実行する際に、GETリクエストURLのパラメータ部を削除して実ネットワークに接続することを特徴とする。
【発明の効果】
【0018】
本発明にかかる解析システム、解析方法および解析プログラムは、不正プログラムの解析において、解析対象となる不正プログラムを実際に実行する手法を取ることによって、逆アセンブルやデバッガを用いた解析の困難さを回避し、解析に要する時間を削減し、さらにネットワークの接続確認を行うマルウェアについても挙動に関する情報を収集して正確な解析を実現する解析システム、解析方法、および解析プログラムを得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【0019】
以下に添付図面を参照して、この発明に係る解析システム、解析方法および解析プログラムの好適な実施例について詳細に説明する。
【実施例1】
【0020】
図1は、本発明の実施例1における解析システムの概要構成を示す概要構成図である。同図に示したように、本発明にかかる解析システムでは、実インターネットに接続しない仮想ネットワークを用いた動的解析システム1においてマルウェアを実行し、通信データ及び呼び出されるAPIやシステムコール、内部資源へのアクセスを監視する。
【0021】
マルウェアを実際に動作させることによる解析(以下、「動的解析」と呼ぶ)によって得られたデータは、マルウェア解析結果データベース2へ保存される。保存されたデータは解析結果分析・出力モジュール3を介し、必要なデータを図表により可視化して表示する。この解析システムは、複数のマルウェアを連続して解析する場合についても同様に適用できる。
【0022】
図2は、本実施例1における解析システムの具体的な構成例である。本実施例1では、実インターネットに接続しない仮想ネットワークにおいてマルウェアを実行し、その挙動及び通信内容を収集することにより、短時間での解析を実現する。
【0023】
図2に示したように、本実施例1にかかる解析システムは動的解析コントロールモジュール4、マルウェア実行環境10と仮想ネットワーク部20からなる動的解析システム1、マルウェア解析結果データベース2、解析結果分析・出力モジュール3により構成される。なお、一つの動的解析システム1に、複数のマルウェア実行環境及び仮想ネットワーク部が存在するように構成してもよい。
【0024】
動的解析コントロールモジュール4は、動的解析システム1の初期化、解析終了シグナルの送信、マルウェア実行環境10への解析対象マルウェア投入、マルウェア実行環境10及び仮想ネットワーク部20からのログの受信及びマルウェア解析結果データベース2への登録を行う。
【0025】
マルウェア実行環境10は、動的解析コントロールモジュール4から投入されたマルウェアを実行するための環境である。仮想ネットワーク部20はマルウェア実行環境10からの通信を受け取り、保存すると同時に通信のプロトコルを判別し、プロトコルに応じたデータを生成し、応答としてマルウェア実行環境10に送信する。仮想ネットワークはこのプロトコルに応じたサーバ応答の生成により実現される。
【0026】
マルウェア解析結果データベース2には、解析対象マルウェア、及びその解析の状況(未解析・解析済み・解析中)、動的解析で収集された通信データ、APIやシステムコール、内部資源へのアクセス結果が保存される。
【0027】
解析結果分析・出力モジュール3では、マルウェア解析結果データベース2からマルウェアの通信先、通信プロトコル、API呼び出しシーケンスなどが整理され、自動的に図表に加工し、表示する。
【0028】
図3は、本発明の動的解析コントロールモジュール4の処理動作を表すフローチャートである。同図にしめしたように、解析が開始されると、まずマルウェア解析結果データベース2に問い合わせ、未解析のマルウェアが存在しているかを確かめる(ステップS101)。
【0029】
その結果、未解析のマルウェアが存在しない場合(ステップS101,No)には解析を終了する。一方、未解析のマルウェアが存在している場合(ステップS101,Yes)には、マルウェア実行環境10の初期化(ステップS102)と仮想ネットワーク部20(ステップS103)の初期化が行われる。
【0030】
マルウェア実行環境10の初期化では、マルウェア実行前のクリーンな状態にロールバックする作業が行われる。仮想ネットワーク部20の初期化では、仮想ネットワーク内のペイロードデータベース25の初期化を実施する。
【0031】
次に、初期化された動的解析システム1のマルウェア実行環境10に解析対象となるマルウェアが送信される(ステップS104)。マルウェア実行モジュール11では、その実行が成功したか否かの結果を受け取り(ステップS105)、マルウェア解析結果データベース2に登録する(ステップS106)。
【0032】
マルウェアの実行に成功した場合(ステップS107,Yes)には、設定した解析時間が経過するまで動的解析コントロールモジュール4は待機する。設定時間が経過した(ステップS108,Yes)ところで動的解析システム1へ解析完了のシグナルを送信し(ステップS109)、仮想ネットワーク部20のペイロードデータベース25よりデータを取得し(ステップS110)、取得したデータをマルウェア解析結果データベース2に登録する(ステップS111)。これら一連の処理を、未解析マルウェアがなくなるまで繰り返す。
【0033】
図4は、マルウェア実行モジュール11の処理動作を表すフローチャートである。マルウェア実行モジュール11では、動的解析コントロールモジュール4からマルウェアを受け取り(ステップS201,Yes)、実行される(ステップS202)。実行に成功したか否かのステータスは動的解析コントロールモジュールへ送信される(ステップS203)。
【0034】
マルウェアの実行に成功した場合(ステップS204,Yes)には、API、システムコール、内部資源へのアクセスを監視した状態(ステップS205)で解析終了のシグナルを受信する(ステップS206,Yes)までマルウェアはその実行を継続する。
【0035】
図5は、マルウェアの挙動監視(API、システムコール、内部資源アクセス監視)に関する処理動作のフローチャートである。この処理動作では、マルウェアがどのようなAPIを呼び出したか(ステップS301)、どのようなシステムコールを呼び出したか(ステップS302)、またOSによっては(例えばWindows(登録商標)の場合など)レジストリのアクセス(読み込み・書き込み・削除)を監視する(ステップS303)。さらにファイルへのアクセス(読み込み・書き込み・削除)についても監視を行う(ステップS304)。
【0036】
そして、監視結果についてはログをとり、動的解析コントロールモジュールを介してマルウェア解析結果データベースに登録される(ステップS305)。
【0037】
図6は、仮想ネットワーク部20における処理動作を表すフローチャートである。仮想ネットワーク部20は、マルウェア実行環境10からの通信を受け取り、プロトコルに応じた応答を返す。まず、仮想ネットワーク部20では、マルウェア実行環境10から通信データを受け取り(ステップS401)、そのプロトコル判別が行われる(ステップS402)。
【0038】
同時に、受け取ったペイロードをペイロードデータベース25に保存する(ステップS403。ここで保存するペイロードの例として、IPパケットの発信元IPアドレス、宛先IPアドレス、データ部が挙げられる。解析時に取得できる具体的なデータ例として、ボットプログラムが接続を試みるC&Cサーバ(Command and Control Server)のFQDN(Full Qualified Domain Name)やニックネーム、C&Cサーバ接続リクエストが挙げられる。例えば、ここで取得できたC&CサーバのFQDNを利用し、ネットワーク上のボット感染端末の調査を行うことができる。
【0039】
さらに、判定されたプロトコルに応じて、サーバ応答が生成され(ステップS403)、マルウェア実行環境10への応答が行われる。このプロトコルに応じたサーバ応答により、仮想ネットワークが実現されている。これらの処理は、解析終了シグナルを受信するまで繰り返され、解析終了シグナルを受信したら(ステップS405,Yes)ペイロードデータベース25のデータを動的解析コントロールモジュール4を介してマルウェア解析結果データベース2へ転送し、解析を終了する。
【0040】
なお、ペイロードデータは動的解析が行われている間、随時動的解析コントロールモジュール4を介してマルウェア解析結果データベース2へ保存されるよう構成してもよい。
【0041】
図7はプロトコル判別処理の詳細を表すフローチャートである。まず、仮想ネットワーク部20で受け取った通信の送信先アドレス、送信先ポート番号がプロトコル判別データベース23の送信先アドレス・送信先ポート番号のリストに含まれているかを調べる(ステップS501)。
【0042】
送信先アドレス・送信先ポート番号のリスト例を図8に示す。リスト内でこれらの一致が確認された場合(ステップS501,Yes)には、リストに登録されているプロトコルの通信であったと判定される(ステップS504)。
【0043】
また、送信先アドレス・送信先ポート番号の一致が確認できなかった場合(ステップS501,No)には仮想ネットワーク部20で受信したペイロードをプロトコル判別データベース23のシグネチャリストと比較する(ステップS502)。シグネチャリストの例を図9に示す。なお、図に例示されていないプロトコルについて、追加することもできる。
【0044】
シグネチャにマッチした場合(ステップS503)には登録されていたプロトコルによる通信であると判定し(ステップS506)、マッチしなかった場合(ステップS503)にはプロトコル判定できなかった(ステップS505)旨を返す。
【0045】
図10はサーバ応答生成処理の詳細を説明するフローチャートである。プロトコル判別モジュール21によりプロトコル判別に成功した場合(ステップS601,Yes)には、各プロトコルに応じた応答が定義されているかどうかを確かめる(ステップS602)。
【0046】
その結果、サーバ応答が定義されている場合(ステップS602,Yes)には、定義されている通りの応答を返す(ステップS603)。応答の定義の例を図11に示す。DNS(Domain Name System)の応答例として、問い合わせのあったFQDNに対し、仮想ネットワーク内の任意のアドレスを対応付け、そのアドレスをマルウェア実行環境に返すものが考えられる。定義によっては、応答は返さない処理も含めることができる。
【実施例2】
【0047】
図12は、本発明の実施例2おける解析システムの概要構成を示す概要構成図である。同図に示したように、本実施例にかかる解析システムでは、特定のプロトコルによる通信のみが実インターネット網に接続可能な仮想ネットワークを用いた動的解析システム1aにおいてマルウェアを実行し、通信データ及び呼び出されるAPIやシステムコール、内部資源へのアクセスを監視する。
【0048】
動的解析によって得られたデータは、マルウェア解析結果データベース2へ保存される。保存されたデータは解析結果分析・出力モジュール3を介し、必要なデータを図表により可視化する。複数のマルウェアを連続して実行する構成としてもよい。
【0049】
図13は本実施例2における解析システムの具体的な構成例である。本実施例2では、特定のプロトコルによる通信のみが実インターネットに接続可能な仮想ネットワークにおいてマルウェアを実行し、その挙動及び通信内容を収集することにより、短時間での解析を実現する。
【0050】
図13に示したように、本実施例2にかかる解析システムでは、動的解析コントロールモジュール4、マルウェア実行環境10と仮想ネットワーク部20aからなる動的解析システム1a、マルウェア解析結果データベース2、解析結果分析・出力モジュール3により構成される。なお、一つの動的解析システム1に、複数のマルウェア実行環境及び仮想ネットワーク部が存在するように構成してもよい。
【0051】
動的解析コントロールモジュール4は、動的解析システム1aの初期化、解析終了シグナルの送信、マルウェア実行環境10への解析対象マルウェア投入、マルウェア実行環境10及び仮想ネットワーク部20aからのログの受信及びマルウェア解析結果データベース2への登録を行う。
【0052】
マルウェア実行環境10は、動的解析コントロールモジュール4から投入されたマルウェアを実行するための環境である。仮想ネットワーク部20aはマルウェア実行環境10からの通信を受け取り、保存すると同時にプロトコル判別が行なう。そして、プロトコル判別後、マルウェア実行モジュール11から受け取った通信の通信先アドレス、通信先ポート番号、プロトコル、ペイロードを参照し、外部接続コントロールモジュール26が実インターネットに接続して通信を行うのか、または仮想ネットワーク内部でプロトコルに応じたデータを生成し、応答としてマルウェア実行環境11に送信するかをコントロールする。
【0053】
マルウェア解析結果データベース2では、解析対象マルウェア、解析の状況(未解析・解析済み・解析中)、動的解析で収集された通信データ、APIやシステムコール、内部資源へのアクセス結果が保存される。ここで、動的解析で収集された通信データには、マルウェア実行モジュール11からの通信に加え、外部インターネット網との通信結果も保存される。
【0054】
解析結果分析・出力モジュール3では、マルウェア解析結果データベース2からマルウェアの通信先、通信プロトコル、API呼び出しシーケンスなどが整理され、自動的に図表に加工し、表示する。
【0055】
図13の動的解析コントロールモジュールの具体的な処理動作は実施例1において図3を参照して説明した処理動作と同様であるので、ここでは説明を省略する。また、図13のマルウェア実行モジュール11、及びその内部で行われるAPI、システムコール、内部資源アクセスについても実施例1において図4,図5を参照して説明した処理動作と同様であるので、ここでは説明を省略する。
【0056】
図14は仮想ネットワーク部20aにおける処理動作を表すフローチャートである。仮想ネットワーク部20aは、マルウェア実行環境10からの通信を受け取り、通信内容に応じ、内部のサーバ応答生成モジュール24もしくは実インターネットから受け取った通信データを返す。
【0057】
まず、仮想ネットワーク部20aではマルウェア実行環境10から通信データを受け取り(ステップS701)、そのプロトコル判別が行われる(ステップS702)。同時に、受け取ったペイロードをペイロードデータベースに保存する(ステップS703)。ここで保存するペイロードの例として、IPパケット発信元IPアドレス、宛先IPアドレス、データ部が挙げられる。また、解析時に取得できる具体的なデータ例として、ボットプログラムが接続を試みるC&CサーバのFQDNやニックネーム、C&Cサーバ接続リクエストが挙げられる。
【0058】
その後、外部接続コントロールモジュール26により、実インターネット上に存在するサーバへ接続するか、それとも仮想ネットワーク内のサーバ応答生成モジュール24により応答するかが決定される(ステップS704)。プロトコル判別モジュール21及びサーバ応答生成モジュール24の処理については、実施例1において図7及び図8を参照して説明したのでここでは省略する。
【0059】
これらの処理は、解析終了シグナルを受信するまで繰り返され、シグナルを受信したら(ステップS705,Yes)ペイロードデータベース25のデータを動的解析コントロールモジュール4を介してマルウェア解析結果データベース2へ転送し(ステップS707)、解析を終了する。
【0060】
なお、ペイロードデータは動的解析が行われている間、随時動的解析コントロールモジュール4を介してマルウェア解析結果データベース2へ保存されるよう構成してもよい。
【0061】
図15は外部接続コントロールモジュール26の処理を表すフローチャートである。外部接続コントロールモジュール26では、マルウェア実行環境10から受け取った通信データを接続管理用シグネチャデータベース27を基に、実インターネット上のサーバに接続するか、それとも仮想ネットワーク内のサーバ応答生成モジュール24により応答するかを決定する。
【0062】
実インターネット上のサーバに接続するか否かを決定するにあたっては、まず、事前に判別されたプロトコルが、接続管理リストに含まれているかを確認する(ステップS801)。含まれていた場合(ステップS802,Yes)には、その通信の実際の接続先アドレス(ステップS803)・ペイロード(ステップS804)・ペイロード長(ステップS805)をリストのパターンと比較する。なお、接続先アドレス・ペイロードの比較では正規表現によるものを含む。接続管理リストは例えば図16に示したように作成しておけばよい。
【0063】
接続先アドレス・ペイロード・ペイロード長のうち、一つでもマッチしないものが存在した場合(ステップS803〜805のいずれかがNo)には仮想ネットワーク内で生成される応答がマルウェア実行モジュールへ送信される(ステップS813)。
【0064】
また、上記の比較が行われた結果、その通信が実インターネットへの接続を許可しないものとして接続管理リストに登録されていた場合(ステップS806,No)にも、仮想ネットワーク内部で応答を生成する(ステップS813)。
【0065】
一方、実インターネットへ接続すると判定された場合(ステップS807)で、ペイロード加工が不要な場合(ステップS808)には外部接続コントロールモジュール26が実インターネット上のサーバに接続し、仮想ネットワークで受け取った通信データを送信する(ステップS810)。
【0066】
ペイロード加工を必要とする場合(ステップS808,Yes)には、仮想ネットワークで受け取ったペイロードを加工した(ステップS809)上で、外部インターネット上のサーバにデータを送信する(ステップS811)。
【0067】
ペイロードの加工は、一般ユーザに攻撃を行わせないための仕組みである。HTTPで外部に接続した場合、GETリクエストURI(Uniform Resource Identifier)におけるパラメータ部(http://www.example.com/index.php?name=hoge?pass=fugaの場合“?”の後方部分)を削除してアクセスすることにより、HTTPサーバアプリケーションの脆弱性をついた攻撃や、掲示板等へのスパム活動を防ぐ。
【0068】
このように、実行環境10からのセッションは仮想ネットワーク内部で終端され、実インターネットに接続するのは外部接続コントロールモジュール26である。外部接続コントロールモジュール26が外部から受け取ったデータはペイロードデータベース25に保存され、動的解析コントロールモジュール4を介してマルウェア解析結果データベース2に保存される(ステップS812)。
【0069】
外部接続コントロールモジュールを介して得られたペイロードに含まれるデータ例として、攻撃者がボットに対して送り込んだ命令が挙げられ、その命令を受けたボットの挙動を分析することにより、攻撃者がボットネットを利用して行おうとしている攻撃行動を把握することが可能になる。
【0070】
以上説明してきたように、本発明では、仮想ネットワーク上でマルウェアを実行し、そのときの通信及び呼び出されるAPI、システムコール、内部資源へのアクセス状況を監視することで、マルウェアに見られる特徴的な挙動を短時間で収集することが可能である。
【0071】
実施例1に示した構成では、実インターネットへ接続しない仮想ネットワーク上でマルウェアを実行するため、実インターネットに存在するコンピュータに対して攻撃を実施してしまうリスクを回避する。また、逆アセンブルやデバッグといった手法をとらない手法であるため、解析の困難さを解決している。
【0072】
実施例2に示した構成では、特定のプロトコルのみ実インターネットに接続可能な仮想ネットワーク上でマルウェアを実行することで、攻撃者がマルウェアに対して指令を出し、コントロールする場合の挙動解析を実現する。外部へ接続するプロトコルを一部に制限する(例えば、外部の攻撃者からの命令を仮想ネットワークに取り込むようにものに、外部との接続を制限する)ことにより、外部インターネット網へ攻撃を実施するリスクを低減することが可能である。
【0073】
そして、実インターネットに接続しない(実施例1)、または一部接続する(実施例2)仮想ネットワークを用いた解析で得られたデータをマルウェアの脅威対策に適用するために、本発明で取得した解析結果から必要なデータ、例えば通信先アドレスや通信内容、API コールシーケンスを自動的に抽出し、図表に加工した上で表示する。これによりネットワークオペレータはマルウェアの解析結果を瞬時に把握することが可能になり、通信制御による攻撃活動抑止、感染者の特定を実施することが可能になる。
【0074】
すなわち、本発明によって得られる効果は、短時間でマルウェアの挙動解析結果を収集できることである。従来はマルウェアのバイナリデータを逆アセンブルやデバッガにより解析していたが、この手法は高度な専門性を必要とすると同時に、解析に数時間から数日程度の時間を必要とする点が課題であった。特に近年、マルウェアに逆アセンブルやデバッガによる解析をより困難にする仕組みを備えたものが出現しており、解析の困難さ、解析に必要な時間が増大していた。これに対して本発明では、これらの解析における困難さを軽減し、容易にかつ安全にマルウェアの挙動を知ることが可能になった。
【0075】
さらに、インターネット上に存在する攻撃者からマルウェアに対する命令のやり取りに関する通信のみをマルウェアに受け渡すことによって、どのような命令を攻撃者が出し、またその命令を受けてマルウェアがどのような挙動を示すかをリアルタイムで把握することが可能になった。これにより、ネットワークオペレータがマルウェアに感染したユーザの通信をいち早く検知することが可能になる。
【0076】
なお、実施例1および2に示したシステム構成は、複数のコンピュータを接続して形成してもよいし、単一のコンピュータ上で動作するプログラムとして構成してもよい。また、システムの構成要素の一部、もしくは全てを専用のハードウェアによって実現することもできる。
【産業上の利用可能性】
【0077】
以上のように、本発明に係る解析システム、解析方法および解析プログラムは、不正プログラムの解析に有用であり、特にネットワーク接続に基づいて動作する不正プログラムの情報収集に適している。
【図面の簡単な説明】
【0078】
【図1】本発明の実施例1における解析システムの概要構成を示す概要構成図である。
【図2】実施例1における解析システムの具体的な構成図である。
【図3】動的解析コントロールモジュール4の処理動作を表すフローチャートである。
【図4】マルウェア実行モジュール11の処理動作を表すフローチャートである。
【図5】マルウェアの挙動監視の処理動作を説明するフローチャートである。
【図6】仮想ネットワーク部20における処理動作を表すフローチャートである。
【図7】プロトコル判別処理の詳細を表すフローチャートである。
【図8】送信先アドレス・送信先ポート番号のリストについて説明する説明図である。
【図9】シグネチャリストについて説明する説明図である。
【図10】サーバ応答生成処理の詳細を説明するフローチャートである。
【図11】サーバ応答の定義について説明する説明図である。
【図12】本発明の実施例2おける解析システムの概要構成を示す概要構成図である。
【図13】実施例2における解析システムの具体的な構成図である。
【図14】仮想ネットワーク部20aにおける処理動作を表すフローチャートである。
【図15】外部接続コントロールモジュール26の処理を表すフローチャートである。
【図16】接続管理リストについて説明する説明図である。
【符号の説明】
【0079】
1,1a 動的解析システム
2 マルウェア解析結果データベース
3 解析結果分析・出力モジュール
4 動的解析コントロールモジュール
10 マルウェア実行環境
11 マルウェア実行モジュール
20,20a 仮想ネットワーク部
21 プロトコル判別モジュール
23 プロトコル判別データベース
24 サーバ応答生成モジュール
25 ペイロードデータベース
26 外部接続コントロールモジュール
27 接続管理用シグネチャデータベース
【特許請求の範囲】
【請求項1】
コンピュータ内で不正な動作を行う不正プログラムの挙動を解析する解析システムであって、
前記不正プログラムを実行させる実行環境を提供する実行環境提供手段と、
前記実行環境と接続された仮想ネットワークを構築し、前記不正プログラムを前記仮想ネットワークにアクセスさせる仮想ネットワーク提供手段と、
前記実行環境における前記不正プログラムの動作に関する情報および/または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集する情報収集手段と、
を備えたことを特徴とする解析システム。
【請求項2】
前記情報収集手段は、前記不正プログラムが関与する通信の通信プロトコル、通信ペイロード、通信先および呼び出されるシステムコール、API(Application Program Interface)、内部資源に関する情報を前記挙動情報として収集することを特徴とする請求項1に記載の解析システム。
【請求項3】
外部の実ネットワークに接続する実ネットワーク接続手段と、前記不正プログラムが関与する通信の一部を前記実ネットワークに接続する接続制御手段と、をさらに備えたことを特徴とする請求項1または2に記載の解析システム。
【請求項4】
前記仮想ネットワーク提供手段は、通信ペイロードと予め登録したパターンとのパターンマッチングを行って通信プロトコルを同定することを特徴とする請求項1〜3のいずれか一つに記載の解析システム。
【請求項5】
前記仮想ネットワーク提供手段は、前記同定した通信プロトコルに応じた擬似サーバ応答を生成して前記不正プログラムに送信することを特徴とする請求項4に記載の解析システム。
【請求項6】
前記接続制御手段は、前記不正プログラムが関与する通信の通信プロトコルを通信ペイロードと予め登録したパターンとのパターンマッチングによって同定し、当該同定結果に基づいて前記実ネットワークに前記通信を接続するか否かを判定し、前記実ネットワークに接続する通信については当該通信を代理実行し、代理実行によって得られた応答を前記不正プログラムに渡すことを特徴とする請求項3〜5のいずれか一つに記載の解析システム。
【請求項7】
前記接続制御手段は、HTTP(Hypertext Transfer Protocol)による通信を実ネットワークに代理実行する際に、GETリクエストURLのパラメータ部を削除して実ネットワークに接続することを特徴とする請求項6に記載の解析システム。
【請求項8】
コンピュータ内で不正な動作を行う不正プログラムの挙動を解析する解析方法であって、
前記不正プログラムを実行させる実行環境を提供する実行環境提供工程と、
前記実行環境と接続された仮想ネットワークを構築し、前記不正プログラムを前記仮想ネットワークにアクセスさせる仮想ネットワーク提供工程と、
前記実行環境における前記不正プログラムの動作に関する情報および/または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集する情報収集工程と、
を含んだことを特徴とする解析方法。
【請求項9】
コンピュータ内で不正な動作を行う不正プログラムの挙動を解析する解析プログラムであって、
前記不正プログラムを実行させる実行環境を提供する実行環境提供ステップと、
前記実行環境と接続された仮想ネットワークを構築し、前記不正プログラムを前記仮想ネットワークにアクセスさせる仮想ネットワーク提供ステップと、
前記実行環境における前記不正プログラムの動作に関する情報および/または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集する情報収集ステップと、
をコンピュータに実行させることを特徴とする解析プログラム。
【請求項1】
コンピュータ内で不正な動作を行う不正プログラムの挙動を解析する解析システムであって、
前記不正プログラムを実行させる実行環境を提供する実行環境提供手段と、
前記実行環境と接続された仮想ネットワークを構築し、前記不正プログラムを前記仮想ネットワークにアクセスさせる仮想ネットワーク提供手段と、
前記実行環境における前記不正プログラムの動作に関する情報および/または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集する情報収集手段と、
を備えたことを特徴とする解析システム。
【請求項2】
前記情報収集手段は、前記不正プログラムが関与する通信の通信プロトコル、通信ペイロード、通信先および呼び出されるシステムコール、API(Application Program Interface)、内部資源に関する情報を前記挙動情報として収集することを特徴とする請求項1に記載の解析システム。
【請求項3】
外部の実ネットワークに接続する実ネットワーク接続手段と、前記不正プログラムが関与する通信の一部を前記実ネットワークに接続する接続制御手段と、をさらに備えたことを特徴とする請求項1または2に記載の解析システム。
【請求項4】
前記仮想ネットワーク提供手段は、通信ペイロードと予め登録したパターンとのパターンマッチングを行って通信プロトコルを同定することを特徴とする請求項1〜3のいずれか一つに記載の解析システム。
【請求項5】
前記仮想ネットワーク提供手段は、前記同定した通信プロトコルに応じた擬似サーバ応答を生成して前記不正プログラムに送信することを特徴とする請求項4に記載の解析システム。
【請求項6】
前記接続制御手段は、前記不正プログラムが関与する通信の通信プロトコルを通信ペイロードと予め登録したパターンとのパターンマッチングによって同定し、当該同定結果に基づいて前記実ネットワークに前記通信を接続するか否かを判定し、前記実ネットワークに接続する通信については当該通信を代理実行し、代理実行によって得られた応答を前記不正プログラムに渡すことを特徴とする請求項3〜5のいずれか一つに記載の解析システム。
【請求項7】
前記接続制御手段は、HTTP(Hypertext Transfer Protocol)による通信を実ネットワークに代理実行する際に、GETリクエストURLのパラメータ部を削除して実ネットワークに接続することを特徴とする請求項6に記載の解析システム。
【請求項8】
コンピュータ内で不正な動作を行う不正プログラムの挙動を解析する解析方法であって、
前記不正プログラムを実行させる実行環境を提供する実行環境提供工程と、
前記実行環境と接続された仮想ネットワークを構築し、前記不正プログラムを前記仮想ネットワークにアクセスさせる仮想ネットワーク提供工程と、
前記実行環境における前記不正プログラムの動作に関する情報および/または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集する情報収集工程と、
を含んだことを特徴とする解析方法。
【請求項9】
コンピュータ内で不正な動作を行う不正プログラムの挙動を解析する解析プログラムであって、
前記不正プログラムを実行させる実行環境を提供する実行環境提供ステップと、
前記実行環境と接続された仮想ネットワークを構築し、前記不正プログラムを前記仮想ネットワークにアクセスさせる仮想ネットワーク提供ステップと、
前記実行環境における前記不正プログラムの動作に関する情報および/または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集する情報収集ステップと、
をコンピュータに実行させることを特徴とする解析プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2009−181335(P2009−181335A)
【公開日】平成21年8月13日(2009.8.13)
【国際特許分類】
【出願番号】特願2008−19701(P2008−19701)
【出願日】平成20年1月30日(2008.1.30)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成21年8月13日(2009.8.13)
【国際特許分類】
【出願日】平成20年1月30日(2008.1.30)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]