(57)【特許請求の範囲】
【請求項１】
不正プログラムの挙動を解析する解析装置と、ネットワークに接続された接続先に関する情報を記憶するデータベースとを含む解析システムであって、
解析装置が、
コンピュータ内で不正な動作を行う不正プログラムを実行する実行手段と、
前記実行手段によって実行された不正プログラムが接続を要求する接続先に関する情報を前記データベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する判定手段と、
前記判定手段により前記接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って前記不正プログラムに対する応答を取得する応答処理手段と
を有し、
前記判定手段は、前記データベースによって前記接続先のアドレス、ＦＱＤＮ又はＵＲＬが記憶されていた場合には、当該接続先に関連する他の接続先の数を前記データベースにさらに問い合わせ、前記他の接続先の数が所定の閾値以下であった場合には、アドレス、ＦＱＤＮ又はＵＲＬが記憶されていた接続先を通信が許可された接続先であると判定することを特徴とする解析システム。 
【請求項２】
前記判定手段は、前記接続先のアドレス、ＦＱＤＮ又はＵＲＬを前記接続先の情報としてデータベースに問い合わせ、当該アドレス、ＦＱＤＮ又はＵＲＬが前記データベースによって記憶されていなかった場合に、当該接続先を通信が許可された接続先であると判定することを特徴とする請求項１に記載の解析システム。 
【請求項３】
前記不正プログラムの動作の対象として事前に許可された接続先に関する情報を記憶する記憶手段をさらに有し、
前記判定手段は、前記不正プログラムによって要求された接続先に関する情報が前記記憶手段によって記憶されていた場合に、当該接続先を通信が許可された接続先であると判定することを特徴とする請求項１又は２に記載の解析システム。 
【請求項４】
前記判定手段は、前記接続先に関する情報が前記データベースによって記憶されており、かつ前記接続先に関連する他の接続先の数が所定の閾値を超えていた場合には、前記接続先を通信が許可されていない接続先であると判定し、
前記応答処理手段は、前記判定手段により前記接続先が通信を許可されていない接続先であると判定された場合に、前記不正プログラムに対する応答を生成し、生成した応答を前記不正プログラムに転送することを特徴とする請求項１又は２に記載の解析システム。
【請求項５】
コンピュータ内で不正な動作を行う不正プログラムを実行する実行手段と、
前記実行手段によって実行された不正プログラムが接続を要求する接続先に関する情報を外部データベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する判定手段と、
前記判定手段により前記接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って前記不正プログラムに対する応答を取得する応答処理手段と、
を有し、
前記判定手段は、前記データベースによって前記接続先のアドレス、ＦＱＤＮ又はＵＲＬが記憶されていた場合には、当該接続先に関連する他の接続先の数を前記データベースにさらに問い合わせ、前記他の接続先の数が所定の閾値以下であった場合には、アドレス、ＦＱＤＮ又はＵＲＬが記憶されていた接続先を通信が許可された接続先であると判定することを特徴とする解析装置。 
【請求項６】
不正プログラムの挙動を解析する解析装置によって実行される解析方法であって、
コンピュータ内で不正な動作を行う不正プログラムを実行する実行ステップと、
前記実行ステップによって実行された不正プログラムが接続を要求する接続先に関する情報を外部データベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する判定ステップと、
前記判定ステップにより前記接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って前記不正プログラムに対する応答を取得する応答処理ステップと、
を含み、
前記判定ステップは、前記データベースによって前記接続先のアドレス、ＦＱＤＮ又はＵＲＬが記憶されていた場合には、当該接続先に関連する他の接続先の数を前記データベースにさらに問い合わせ、前記他の接続先の数が所定の閾値以下であった場合には、アドレス、ＦＱＤＮ又はＵＲＬが記憶されていた接続先を通信が許可された接続先であると判定することを特徴とする解析方法。 
【請求項７】
コンピュータ内で不正な動作を行う不正プログラムを実行する実行手順と、
前記実行手順によって実行された不正プログラムが接続を要求する接続先に関する情報を外部データベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する判定手順と、
前記判定手順により前記接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って前記不正プログラムに対する応答を取得する応答処理手順と、
コンピュータに実行させ、
前記判定手順は、前記データベースによって前記接続先のアドレス、ＦＱＤＮ又はＵＲＬが記憶されていた場合には、当該接続先に関連する他の接続先の数を前記データベースにさらに問い合わせ、前記他の接続先の数が所定の閾値以下であった場合には、アドレス、ＦＱＤＮ又はＵＲＬが記憶されていた接続先を通信が許可された接続先であると判定することを特徴とする解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、解析システム、解析装置、解析方法及び解析プログラムに関する。
【背景技術】
【０００２】
従来、コンピュータウイルスやスパイウェアといった不正なコンピュータプログラムが知られている。このような、不正プログラムはマルウェア（Malware）とも呼ばれている。近年、マルウェアによる被害を低減させるために、マルウェアに関する種々の解析が行われている。
【０００３】
例えば、コンピュータがマルウェアに感染した場合に、どのような通信を発生させるのか、または、コンピュータの内部資源にどのような影響を及ぼすのかなどを調べるための解析が行われている。なお、内部資源とは、例えば、不揮発性記憶媒体、揮発性記憶媒体及びそれら記憶媒体によって記憶されるデータなどである。上述したような解析を実行するための手法としては、例えば、マルウェアをコンピュータ内で実際に動作させて挙動を解析する動的解析手法が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１８１３３５号公報
【非特許文献】
【０００５】
【非特許文献１】Konstantin Rozinov  「REVERSE CODE ENGINEERING: An In-Depth Analysis of the Bagle Virus」  Lucent Technologies
【０００６】
【非特許文献２】Mark Vincent Yason  「The Art of Unpacking」  Black Hat USA 2007 Briefings
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、ネットワークからの応答を要するマルウェアの挙動を安全に解析することができないという問題があった。
【０００８】
具体的には、上述した従来技術は、安全性を担保するために、コンピュータがネットワークから隔離された環境下で実行される。しかしながら、マルウェアには、コンピュータがネットワークに接続された環境下で脅威をもたらすものが存在する。例えば、上述したマルウェアとしては、ネットワーク上に存在する攻撃者からの命令を受信することにより脅威が顕在化する「ボット」や、他のマルウェアをネットワーク上からダウンロードする「ダウンローダ」などが知られている。
【０００９】
そのようなマルウェアに対して、コンピュータがネットワークから隔離された環境下で解析が実行されたとしても、良好な解析結果を得ることは困難である。従って、コンピュータがネットワークに接続された環境下で挙動を解析する動的解析手法が実行されることが望ましい。しかしながら、コンピュータがネットワークに接続された環境下で動的解析手法が実行された場合には、ネットワーク上に存在する攻撃者や他のマルウェアを含む悪性の接続先との通信だけではなく、他の正規の接続先との通信を許容することとなる。例えば、解析対象のマルウェアがネットワークに接続された他の正規の接続先に対して攻撃する場合もある。すなわち、上述した従来技術では、ネットワークからの応答を要するマルウェアの挙動を安全に解析することができない。
【００１０】
そこで、本開示の技術は、上述した従来技術の問題を鑑みて、ネットワークからの応答を要するマルウェアの挙動を安全に解析することを可能とする解析システム、解析装置、解析方法及び解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、開示のシステムは、不正プログラムの挙動を解析する解析装置と、ネットワークに接続された接続先に関する情報を記憶するデータベースとを含む解析システムであって、解析装置における実行手段がコンピュータ内で不正な動作を行う不正プログラムを実行する。そして、判定手段が実行手段によって実行された不正プログラムが接続を要求する接続先に関する情報をデータベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する。そして、応答処理手段が判定手段により接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って不正プログラムに対する応答を取得する。
【発明の効果】
【００１２】
開示のシステムは、ネットワークからの応答を要するマルウェアの挙動を安全に解析することを可能にする。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係る解析システムの構成の一例を示す図である。
【図２】図２は、許可リスト記憶部によって記憶されたデータの一例を示す図である。
【図３】図３は、検索サーバによる検索の一例を模式的に示す図である。
【図４】図４は、検索サーバによるリンク検索の一例を模式的に示した図である。
【図５】図５は、接続先が通信を許可された接続先である場合の応答処理部による処理の一例を示す図である。
【図６】図６は、接続先が通信を許可されていない接続先である場合の応答処理部による処理の一例を示す図である。
【図７】図７は、実施例１に係る解析システムによる判定処理の手順を示すフローチャートである。
【図８】図８は、実施例１に係る解析システムによる応答処理の手順を示すフローチャートである。
【図９】図９は、変形例を示す図である。
【図１０】図１０は、解析プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、本願の開示する解析システム、解析方法及び解析プログラムの実施例を詳細に説明する。なお、本願の開示する解析システム、解析方法及び解析プログラムは、以下の実施例により限定されるものではない。
【実施例１】
【００１５】
実施例１に係る解析システムは、不正プログラムによって要求された接続先が悪性の接続先か正規の接続先かを判定する。そして、実施例１に係る解析システムは、接続先が悪性の接続先であった場合に、接続先と通信を行って不正プログラムに対する応答を取得することでネットワークからの応答を要する不正プログラムの挙動を解析する。なお、不正プログラムとは、例えば、コンピュータウイルスやスパイウェアなどである。また、以下では、不正プログラムをマルウェアと記載する場合がある。また、悪性の接続先とは、例えば、ダウンローダによってダウンロードされるマルウェアを記憶するホストや、攻撃者がマルウェアに対する命令を記憶させたホストである。一方、正規の接続先とは、ダウンローダによってダウンロードされるマルウェアやマルウェアに対する命令などを記憶していないホストである。
【００１６】
具体的には、実施例１に係る解析システムは、不正プログラムの挙動を解析する解析装置と、ネットワークに接続された接続先に関する情報を記憶するデータベースとを含む解析システムである。実施例１に係る解析システムは、コンピュータ内で不正な動作を行う不正プログラムを実行する。そして、実施例１に係る解析システムは、実行した不正プログラムが接続を要求する接続先に関する情報をデータベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する。そして、実施例１に係る解析システムは、接続先が通信を許可された接続先であると判定した場合に、当該接続先と通信を行って不正プログラムに対する応答を取得する。
【００１７】
従って、実施例１に係る解析システムは、ネットワーク上の悪性の接続先を特定することで、正規の接続先との通信は行わず、悪性の接続先との通信のみを行うことができる。すなわち、実施例１に係る解析システムによれば、例えば、ネットワークに接続された正規の接続先に対してマルウェアが攻撃することを防止しつつ、悪性の接続先と通信を行うマルウェアの挙動解析を行うことができ、ネットワークからの応答を要するマルウェアの挙動を安全に解析することが可能になる。例えば、実施例１に係る解析システムによれば、インターネットで通常利用されているプロトコルであるＨＴＴＰ（Hypertext Transfer Protocol）を用いて攻撃者からの命令を受け取ったり、他のマルウェアをダウンロードしたりするマルウェアの挙動を安全に解析することができる。
【００１８】
［実施例１に係る解析システムの構成］
実施例１に係る解析システム４００の構成について説明する。図１は、実施例１に係る解析システム４００の構成の一例を示す図である。図１に示すように、解析システム４００は、マルウェアの挙動を解析する解析装置１００と、ネットワーク３００に接続された接続先に関する情報を記憶するデータベースを有する検索サーバ２００とを含んでいる。そして、解析システム４００は、解析装置１００及び検索サーバ２００が、ネットワーク３００を介して接続先１０１〜１０３と接続されている。接続先１０１〜１０３は、解析装置１００において実行されるマルウェアによって要求される通信の接続先である。例えば、接続先１０１〜１０３は、ネットワーク３００に接続された所定のホストや、或いは、ホストに記憶されている所定のコンテンツなどである。例を挙げれば、接続先１０１〜１０３は、悪性又は正規のホストやコンテンツなどである。
【００１９】
検索サーバ２００は、図１に示すように、通信制御Ｉ／Ｆ部２１０と、データベース２２０と、処理部２３０とを有する。通信制御Ｉ／Ｆ部２１０は、解析装置１００と検索サーバ２００との通信を制御するインタフェースである。データベース２２０は、処理部２３０によって実行される検索エンジン用のデータを記憶する。処理部２３０は、後述する解析装置１００が発したコマンドを実行する。例えば、処理部２３０は、後述する解析装置１００から指定された接続先がデータベース２２０に記憶されているか否かを検索エンジンにより検索する。なお、検索サーバ２００による処理については、後に詳述する。
【００２０】
解析装置１００は、図１に示すように、入出力制御Ｉ／Ｆ部１０と、入力部２０と、表示部３０と、通信部４０と、解析データ記憶部５１と、許可リスト記憶部５２と、データ処理部６１と、マルウェア実行部６２と、接続判定部６３と、応答処理部６４とを有している。なお、解析装置１００は、例えば、ＰＣ（Personal computer）、ワークステーション又は解析用の専用装置である。また、解析データ記憶部５１及び許可リスト記憶部５２は、例えば、ＲＡＭ（Random Access Memory）、フラッシュメモリ（Flash Memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。また、データ処理部６１、マルウェア実行部６２、接続判定部６３及び応答処理部６４は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの集積回路、または、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの電子回路である。また、図１においては、３つの接続先と１つの検索サーバとを示しているが、実際には、さらに多数の接続先と検索サーバとがネットワーク３００を介して解析装置１００と接続されている。
【００２１】
入出力制御Ｉ／Ｆ部１０は、入力部２０、表示部３０、通信部４０と接続判定部６３及び応答処理部６４との間での各種情報のやり取りを制御するインタフェースである。入力部２０は、例えば、解析者による種々の情報の入力処理を受付ける。例えば、入力部２０は、キーボードやタッチパネルなどである。表示部３０は、例えば、解析者に対して解析結果を表示出力する。例えば、表示部３０は、ディスプレイなどである。
【００２２】
通信部４０は、解析装置１００と接続先１０１〜１０３との間、及び、解析装置１００と検索サーバ２００との間の通信を制御する。解析データ記憶部５１は、解析装置１００によって解析されたマルウェアの情報を記憶する。例えば、解析データ記憶部５１は、マルウェアの種類や挙動などを記憶する。
【００２３】
許可リスト記憶部５２は、マルウェアの動作の対象として事前に通信が許可された接続先の情報を記憶する。具体的には、許可リスト記憶部５２は、解析者が入力部２０を介して予め入力したり、過去の解析において通信が許可されたりした接続先の情報である許可リストを記憶する。図２は、許可リスト記憶部５２によって記憶されたデータの一例を示す図である。
【００２４】
図２に示すように、許可リスト記憶部５２は、ホスト名及びＩＰ（Internet Protocol）アドレスを含む許可リストを記憶する。ここで、図２のホスト名とは、ネットワーク３００に接続されたホストのＦＱＤＮ（Fully Qualified Domain Name）を意味している。また、図２に示すＩＰアドレスとは、ネットワーク３００に接続されたホストのＩＰアドレスを意味している。例えば、許可リスト記憶部５２は、図２に示すように、「ホスト名：ａａａ．ｂｂｂ．ｃｃｃ．ｃｏｍ、ｄｄｄ．ｅｅｅ．ｆｆｆ．ｃｏｍ」を記憶する。また、許可リスト記憶部５２は、図２に示すように、「ＩＰアドレス：１１１．２２２．３３３．４４４、５５５．６６６．７７７．８８８」を記憶する。
【００２５】
図１に戻って、データ処理部６１は、解析装置１００が解析したマルウェアの情報を解析データ記憶部５１に格納したり、解析結果を表示部３０に表示させたりする。マルウェア実行部６２は、コンピュータ内で不正な動作を行うマルウェアを実行する。具体的には、マルウェア実行部６２は、解析者によって入力されたり、ネットワーク上から取得されたりした解析対象のマルウェアに動作を実行させ、実行させたマルウェアによって要求された各種情報を後述する応答処理部６４に転送する。例えば、マルウェア実行部６２は、実行させたマルウェアによって要求された接続先１０２の情報として「ＦＱＤＮ：ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」を応答処理部６４に転送する。
【００２６】
接続判定部６３は、マルウェアによって要求された接続先に関する情報が許可リスト記憶部５２によって記憶されていた場合に、当該接続先を通信が許可された接続先と判定する。また、接続判定部６３は、マルウェア実行部６２によって実行されたマルウェアが接続を要求する接続先に関する情報をデータベース２２０に問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する。具体的には、接続判定部６３は、接続先のＩＰアドレス又はＦＱＤＮを接続先の情報としてデータベース２２０に問い合わせ、当該ＩＰアドレス又はＦＱＤＮがデータベース２２０によって記憶されていなかった場合に、当該接続先を通信が許可された接続先と判定する。また、接続判定部６３は、データベース２２０によって接続先のＩＰアドレス又はＦＱＤＮが記憶されていた場合には、当該接続先にリンクを形成している他の接続先の数をデータベース２２０にさらに問い合わせ、他の接続先の数が所定の閾値以下であった場合には、当該接続先を通信が許可された接続先と判定する。さらに、接続判定部６３は、接続先に関する情報がデータベース２２０によって記憶されており、かつ、接続先にリンクを形成している他の接続先の数が所定の閾値を超えていた場合には、接続先を通信が許可されていない接続先と判定する。
【００２７】
より具体的には、接続判定部６３は、マルウェア実行部６２によって実行されたマルウェアが接続を要求する接続先の情報を後述する応答処理部６４を介して受信すると、まず、受信した情報が許可リスト記憶部５２によって記憶されているか否かを判定する。例えば、接続判定部６３は、応答処理部６４から受信した接続先１０２の「ＦＱＤＮ：ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」が図２に示す許可リストに含まれているか否かを判定する。
【００２８】
ここで、マルウェアによって要求された接続先の情報が許可リストに含まれていた場合には、接続判定部６３は、マルウェアによって要求された接続先が通信を許可された接続先であると判定する。例えば、「ＦＱＤＮ：ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」が許可リストに含まれていた場合には、接続判定部６３は、接続先１０２を通信が許可された接続先として判定する。
【００２９】
一方、マルウェアによって要求された接続先の情報が許可リストに含まれていなかった場合には、接続判定部６３は、接続先の情報を検索サーバ２００に送信する。そして、接続判定部６３は、送信した接続先の情報がデータベース２２０によって記憶されているか否かを検索サーバ２００に検索させる。例えば、「ＦＱＤＮ：ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」が許可リストに含まれていなかった場合には、接続判定部６３は、「ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」を検索サーバ２００に送信する。そして、接続判定部６３は、検索サーバ２００に「ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」の検索を実行させる。
【００３０】
図３は、検索サーバ２００による検索の一例を模式的に示す図である。図３においては、検索サーバ２００が「ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」のサイト検索を実行した検索結果を示している。例えば、検索サーバ２００は、図３に示すように、「ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」のサイト検索を実行して、「ｓｉｔｅ：ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍに一致する情報は見つかりませんでした」とする検索結果を得る。そして、検索サーバ２００は、得られた検索結果を接続判定部６３に送信する。なお、図３では、検索サーバ２００において実行される検索エンジンを用いたサイト検索を検索サイト「ＡＡＡ」として示している。また、図３は検索サーバが提供しているＧＵＩ（Graphical User Interface）を介した場合の例であるが、ＧＵＩを用いずに、検索サーバが提供しているＡＰＩ（Application Program Interface）を用いて接続先の情報を問い合わせ、ＸＭＬ（Extensible Markup Language）等の形式でその結果を受け取ってもよい。
【００３１】
そして、接続判定部６３は、接続先の情報がデータベース２２０に記憶されていなかった場合には、接続先を通信が許可された接続先として判定する。例えば、図３に示すように、「ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」と一致する接続先がデータベース２２０に記憶されていなかった場合には、接続判定部６３は、接続先１０２を通信が許可された接続先であると判定する。
【００３２】
この検索エンジンを用いた接続先の判定は、正規の接続先および悪性の接続先が検索エンジンのデータベースに与える特徴を利用したものである。ここで、正規の接続先および悪性の接続先がデータベースに与える特徴について説明する。
【００３３】
まず、マルウェアが実行された場合に確認されるネットワークへのアクセスには、正規の接続先へのアクセス及び悪性の接続先へのアクセスがある。例えば、正規の接続先へのアクセスは、マルウェアが解析環境で動作しているかどうか、すなわち、接続確認を行うため、もしくは、マルウェアが攻撃を実施するために実行される。マルウェアが正規の接続先を接続確認に悪用する場合には、有名な接続先が用いられる頻度が高い。従って、検索エンジンを判定に用いることで、マルウェアがアクセスしようとしている正規の接続先がヒットする可能性が極めて高い。また、マルウェアが正規の接続先を攻撃しようとした場合には、攻撃ターゲットの選定に検索エンジンが用いられる頻度が高い。従って、攻撃対象となる正規の接続先を検索エンジンで探し出すことが可能である。
【００３４】
一方、悪性の接続先へのアクセスは、攻撃者から命令を受け取るため、もしくは、別のマルウェアをダウンロードするために実行される。ここで、悪性の接続先は、他の接続先からリンクを張られることが少ないため、検索エンジンのデータベースに登録されるまでに時間を要する。または、悪性の接続先はデータベースに登録されることがない。すなわち、正規の接続先は、検索エンジン用のデータベースに登録されている可能性が極めて高い。一方、悪性の接続先は検索エンジン用のデータベースに登録されている可能性が低い。従って、実施例１に係る解析システム４００は、マルウェアが通信を試みる接続先と一致する接続先がデータベース２２０に登録されていない場合に通信を許可することで、正規の接続先との通信を行わずに、悪性の接続先との通信のみを実行することを可能にする。例えば、実施例１に係る解析システム４００は、正規のホストとの通信や正規のコンテンツに関わる通信を行わずに、悪性のホストとの通信や悪性のコンテンツに関わる通信のみを実行する。
【００３５】
ここで、仮に、接続先の情報がデータベース２２０に記憶されていた場合には、接続判定部６３は、次の判定処理を実行する。具体的には、接続判定部６３は、接続先の被リンク数の検索を検索サーバ２００に実行させる。すなわち、接続判定部６３は、接続先が他の接続先からどの程度リンクされているかを検索サーバ２００に検索させる。そして、接続判定部６３は、接続先の被リンク数が所定の閾値以下であった場合には、通信が許可された接続先であると判定する。
【００３６】
図４は、検索サーバ２００によるリンク検索の一例を模式的に示した図である。図４においては、検索サーバ２００が「ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」のリンク検索を実行した検索結果を示している。図４の検索サイトとは、検索サーバ２００が用いた検索エンジンを意味している。また、図４の被リンク数とは、接続先をリンクしている他のコンテンツの数を意味している。例えば、検索サーバ２００は、図４に示すように、「ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」のリンク検索を実行して、「検索サイト：ＡＡＡ、被リンク数：２」とする検索結果を得る。そして、検索サーバ２００は、得られた検索結果を接続判定部６３に送信する。
【００３７】
接続判定部６３は、検索結果を受信すると、被リンク数が所定の閾値以下であるか否かを判定する。そして、接続判定部６３は、被リンク数が所定の閾値以下であった場合に、接続先を通信が許可された接続先と判定する。例えば、所定の閾値が「５」であった場合には、図４に示す検索結果において被リンク数が「２」であることから、接続判定部６３は、「ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」を示す接続先１０２を通信が許可された接続先であると判定する。一方、仮に、被リンク数が所定の閾値を越えていた場合には、接続判定部６３は、接続先を通信が許可されていない接続先であると判定する。
【００３８】
この被リンク数を用いた判定においても、正規の接続先及び悪性の接続先が検索エンジンのデータベースに与える特徴を利用している。具体的には、正規の接続先に対してリンクを張る他の接続先は多数存在するのに対して、悪性の接続先に対してリンクを張っている他の接続先はほとんどない。従って、悪性の接続先の被リンク数は、正規の接続先と比較して、極めて少なくなる。本実施例では、このような特徴を利用して正規の接続先であるか悪性の接続先であるかを判定している。
【００３９】
図１に戻って、応答処理部６４は、接続判定部６３により接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行ってマルウェアに対する応答を取得する。また、応答処理部６４は、接続判定部６３により接続先が通信を許可されていない接続先であると判定された場合には、マルウェアに対する応答を生成し、生成した応答をマルウェアに転送する。
【００４０】
具体的には、応答処理部６４は、接続先が通信を許可された接続先であると判定された場合には、マルウェア実行部６２により実行されたマルウェアが要求する接続先との通信を行い、接続先とのデータの送受信を実行する。図５は、接続先が通信を許可された接続先である場合の応答処理部６４による処理の一例を示す図である。図５においては、マルウェアにより接続が要求された接続先１０２を接続判定部６３が通信を許可する接続先であると判定した場合の応答処理部６４による処理を示している。図５に示すように、接続先１０２が通信を許可する接続先であると判定された場合には、応答処理部６４は、マルウェア実行部６２が実行したマルウェアによって生成されたマルウェアの通信データ「００１０１０１１１０」を接続先１０２に送信する。そして、応答処理部６４は、マルウェアの通信データに対する応答として接続先１０２が生成した応答データ「１１００１１１１１０」を受信する。そして、応答処理部６４は、受信した応答データ「１１００１１１１１０」をマルウェア実行部６２に転送する。
【００４１】
一方、接続先が通信を許可しない接続先であると判定された場合には、応答処理部６４は、マルウェア実行部６２により実行されたマルウェアが要求する接続先との通信を行わない。ここで、応答処理部６４は、マルウェアに対する応答を生成して、生成したデータをマルウェア実行部６２に送信する。図６は、接続先が通信を許可しない接続先である場合の応答処理部６４による処理の一例を示す図である。図６においては、マルウェアにより接続が要求された接続先１０３を接続判定部６３が通信を許可しない接続先であると判定した場合の応答処理部６４による処理を示している。図６に示すように、接続先１０３が通信を許可しない接続先であると判定された場合には、応答処理部６４は、マルウェア実行部６２から受信したマルウェアの通信データ「１１１０１００００１」に対するダミーデータとして応答データ「１０１０１１０１０１」を生成する。そして、応答処理部６４は、生成した応答データ「１０１０１１０１０１」をマルウェア実行部６２に送信する。
【００４２】
なお、上述した実施例１においては、接続先の判定するための検索にＦＱＤＮを用いる場合について説明したが、本実施例はこれに限定されるものではなく、例えば、ＩＰアドレスを用いる場合であってもよい。また、マルウェアから受信したＩＰアドレスを、ＤＮＳ（Domain Name System）サーバに問い合わせることで取得されるドメイン名を用いる場合であってもよい。また、マルウェアから受信したＦＱＤＮを、ＤＮＳ（Domain Name System）サーバに問い合わせることで取得されるＩＰアドレスを用いる場合であってもよい。
【００４３】
［実施例１に係る解析システムによる判定処理の手順］
次に、実施例１に係る解析システム４００による判定処理の手順を説明する。図７は、実施例１に係る解析システム４００による判定処理の手順を示すフローチャートである。図７に示すように、実施例１に係る解析システム４００においては、接続判定部６３が接続先のＩＰアドレス又はＦＱＤＮを受信すると（ステップＳ１０１肯定）、受信した接続先のＩＰアドレス又はＦＱＤＮが許可リストに含まれているか否かを判定する（ステップＳ１０２）。
【００４４】
ここで、接続先のＩＰアドレス又はＦＱＤＮが許可リストに含まれていない場合には（ステップＳ１０２否定）、接続判定部６３は、検索エンジンに問い合わせ（ステップＳ１０３）、一致する接続先が見つかったか否かを判定する（ステップＳ１０４）。具体的には、接続判定部６３は、検索サーバ２００に対して、接続先のＩＰアドレス又はＦＱＤＮの検索を実行させ、接続先のＩＰアドレス又はＦＱＤＮと同一のホストがデータベース２２０に記憶されているか否かを判定する。
【００４５】
ここで、一致する接続先が見つかった場合には（ステップＳ１０４肯定）、接続判定部６３は、接続先のホストの被リンク数が所定の値よりも大きいか否かを判定する（ステップＳ１０５）。ここで、接続先のホストの被リンク数が所定の値よりも大きい場合には（ステップＳ１０５肯定）、接続判定部６３は、通信を許可しない接続先と判定して（ステップＳ１０６）、処理を終了する。すなわち、接続判定部６３は、接続先を正規の接続先と判定して処理を終了する。
【００４６】
一方、接続先のＩＰアドレス又はＦＱＤＮが許可リストに含まれていた場合（ステップＳ１０２肯定）、接続先と一致する接続先が見つからなかった場合（ステップＳ１０４否定）及び接続先のホストの被リンク数が所定の値以下であった場合（ステップＳ１０５否定）には、接続判定部６３は、通信を許可する接続先と判定して（ステップＳ１０７）、処理を終了する。すなわち、接続判定部６３は、接続先を悪性の接続先と判定して処理を終了する。なお、接続先のＩＰアドレス又はＦＱＤＮを受信するまで、接続判定部６３は待機状態である（ステップＳ１０１否定）。
【００４７】
［実施例１に係る解析システムによる応答処理の手順］
次に、実施例１に係る解析システム４００による応答処理の手順を説明する。図８は、実施例１に係る解析システム４００による応答処理の手順を示すフローチャートである。図８に示すように、実施例１に係る解析システム４００においては、応答処理部６４がマルウェアの通信データを受信すると（ステップＳ２０１肯定）、受信したマルウェアの通信データの接続先が許可されているか否かを判定する（ステップＳ２０２）。
【００４８】
ここで、接続先が許可されている場合には（ステップＳ２０２肯定）、応答処理部６４は、マルウェアの通信データを接続先に送信する（ステップＳ２０３）。そして、応答処理部６４は、マルウェアの通信データに対する応答データを接続先から受信する（ステップＳ２０４）。その後、応答処理部６４は、受信した応答データをマルウェア実行部６２に転送して（ステップＳ２０５）、処理を終了する。
【００４９】
一方、接続先が許可されていない場合には（ステップＳ２０２否定）、応答処理部６４は、マルウェアの通信データに応じた応答データを生成する（ステップＳ２０６）。そして、応答処理部６４は、生成した応答データをマルウェア実行部６２に転送して（ステップＳ２０７）、処理を終了する。
【００５０】
［実施例１の効果］
上述したように、実施例１によれば、不正プログラムの挙動を解析する解析装置と、ネットワークに接続された接続先に関する情報を記憶するデータベースとを含む解析システムにおいて、マルウェア実行部６２がコンピュータ内で不正な動作を行うマルウェアを実行する。そして、接続判定部６３がマルウェア実行部６２によって実行されたマルウェアが接続を要求する接続先に関する情報をデータベース２２０に問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先か否かを判定する。そして、応答処理部６４が接続判定部６３により接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行ってマルウェアに対する応答を取得する。従って、実施例１に係る解析システム４００は、接続先が正規の接続先である場合には通信を行わず、接続先が悪性の接続先の場合にのみ通信を行うことができ、ネットワークからの応答を要するマルウェアの挙動を安全に解析することを可能にする。
【００５１】
また、実施例１によれば、接続判定部６３は、接続先のＩＰアドレス又はＦＱＤＮを接続先の情報としてデータベースに問い合わせ、当該ＩＰアドレス又はＦＱＤＮが前記データベースによって記憶されていなかった場合に、当該接続先を通信が許可された接続先であると判定する。従って、実施例１に係る解析システム４００は、容易に悪性の接続先を特定でき、ネットワークからの応答を要するマルウェアの挙動の安全な解析を容易に実現することを可能にする。
【００５２】
また、実施例１によれば、接続判定部６３は、データベース２２０によって接続先のＩＰアドレス又はＦＱＤＮが記憶されていた場合には、当該接続先に関連する他の接続先の数をデータベースにさらに問い合わせ、他の接続先の数が所定の閾値以下であった場合には、ＩＰアドレス又はＦＱＤＮが記憶されていた接続先を通信が許可された接続先であると判定する。従って、実施例１に係る解析システム４００は、悪性の接続先について細かな判定をすることができ、判定の精度を高めることを可能にする。
【００５３】
また、実施例１によれば、許可リスト記憶部５２は、マルウェアの動作の対象として事前に許可された接続先に関する情報を記憶する。そして、接続判定部６３は、マルウェアによって要求された接続先に関する情報が許可リスト記憶部５２によって記憶されていた場合に、当該接続先を通信が許可された接続先であると判定する。従って、実施例１に係る解析システム４００は、検索にかかる処理を省くことができ、解析を迅速に行うことを可能にする。
【００５４】
また、実施例１によれば、接続判定部６３は、接続先に関する情報がデータベース２２０によって記憶されており、かつ接続先に関連する他の接続先の数が所定の閾値を超えていた場合には、接続先を通信が許可されていない接続先であると判定する。そして、応答処理部６４は、接続判定部６３により接続先が通信を許可されていない接続先であると判定された場合に、マルウェアに対する応答を生成し、生成した応答をマルウェアに転送する。従って、実施例１に係る解析システム４００は、ネットワークとの接続を要しないマルウェアについても解析することを可能にする。
【実施例２】
【００５５】
さて、これまで実施例１について説明したが、上述した実施例１以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、種々の異なる実施例を（１）〜（７）に区分けして説明する。
【００５６】
（１）接続先の情報
上述した実施例１では、接続先に関する情報としてＩＰアドレス又はＦＱＤＮを用いる場合について説明した。しかしながら、本実施例はこれに限定されるものではなく、例えば、接続先に関する情報としてＵＲＬ（Uniform Resource Locator）を用いる場合であってもよい。例えば、ＵＲＬを用いる場合には、許可リスト記憶部５２は、解析者が入力部２０を介して予め入力したり、過去の解析において通信が許可されたりしたＵＲＬの許可リストを記憶する。
【００５７】
そして、接続判定部６３は、マルウェアが要求したＵＲＬを受信すると、まず、受信したＵＲＬが許可リスト記憶部５２によって記憶されているか否かを判定する。ここで、受信したＵＲＬが許可リスト記憶部５２によって記憶されていた場合には、接続先を悪性の接続先として判定する。一方、受信したＵＲＬが許可リスト記憶部５２によって記憶されていない場合には、接続判定部６３は、検索サーバ２００に対して受信したＵＲＬを送信する。そして、接続判定部６３は、検索サーバ２００に送信したＵＲＬを検索させる。
【００５８】
ここで、検索させたＵＲＬがデータベース２２０によって記憶されていない場合には、接続判定部６３は、接続先を悪性の接続先として判定する。一方、検索させたＵＲＬがデータベース２２０によって記憶されていた場合には、接続判定部６３は、検索サーバ２００にＵＲＬの被リンク数をさらに検索させる。ここで、被リンク数が所定の閾値以下であった場合には、接続判定部６３は、接続先を悪性の接続先として判定する。一方、被リンク数が所定の閾値を超えていた場合には、接続判定部６３は、接続先を正規の接続先と判定する。
【００５９】
上述したように、本実施例に係る解析システムは、ＩＰアドレス及びＦＱＤＮ以外に、ＵＲＬを用いて接続先の判定処理を実行する。従って、本実施例に係る解析システムは、ＩＰアドレス及びＦＱＤＮを用いる場合よりも、より詳細な判定処理を実行することができる。例えば、本実施例に係る解析システムは、同一のホストにおける異なる接続先を区別した判定処理ができる。
【００６０】
（２）検索エンジン
上述した実施例１では、接続先を１つの検索エンジンで検索する場合について説明したが、本実施例はこれに限定されるものではなく、例えば、複数の検索エンジンを用いる場合であってもよい。かかる場合には、複数の検索結果を総合して判定する場合であってもよい。例えば、検索に用いた複数の検索エンジンの数の内、所定の数の検索エンジンで接続先がヒットしない場合に、接続先を悪性の接続先として判定する。また、複数の検索結果から任意の結果を抽出して、抽出した結果に基づいて判定する場合であってもよい。
【００６１】
（３）変形例
上述した実施例１では、１つの検索エンジンを用いて被リンク数を検索する場合について説明したが、本実施例はこれに限定されるものではなく、例えば、複数の検索エンジンを用いる場合であってもよい。図９は、変形例を示す図である。図９においては、検索サイト「ＡＡＡ」、「ＢＢＢ」及び「ＣＣＣ」における「ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」のリンク検索を実行した検索結果を示している。図９の検索サイトとは、検索に用いられた検索エンジンを意味している。また、図９の被リンク数とは、接続先をリンクしている他のコンテンツの数を意味している。
【００６２】
例えば、解析システム４００は、図９に示すように、「ｗｗｗ．ｍａｌｗａｒｅ．ｃｏｍ」のリンク検索を実行して、「検索サイト：ＡＡＡ、被リンク数：２」とする検索結果を得る。同様に、解析システム４００は、図９に示すように、「検索サイト：ＢＢＢ、被リンク数：４」、「検索サイト：ＣＣＣ、被リンク数：１」とする検索結果を得る。
【００６３】
ここで、被リンク数に関する判定処理が実行される場合に、各検索サイトでヒットした被リンク数の合計数を所定の閾値と比較して判定する場合であってもよい。また、被リンク数が最大となった検索サイトの被リンク数と所定の閾値を比較して判定する場合であってもよい。
【００６４】
（４）判定処理
上述した実施例１では、接続先のＩＰアドレス又はＦＱＤＮがデータベース２２０に記憶されていた場合に、被リンク数を用いた判定処理を実行する例について説明した。しかしながら、本実施例はこれに限定されるものではなく、例えば、接続先のＩＰアドレス又はＦＱＤＮの検索のみで判定処理を行う場合であってもよい。すなわち、被リンク数を用いた判定処理を実行しない場合であってもよい。
【００６５】
（５）応答処理
上述した実施例１では、応答処理部６４がマルウェア実行部６２に対して応答データを転送する場合について説明したが、本実施例はこれに限定されるものではなく、例えば、応答データをマルウェア実行部６２に転送しない場合でもよい。例えば、接続先との通信が許可されなかった場合に、応答処理部６４が応答データを生成しない場合であってもよい。また、接続先との通信が許可された場合であっても、応答処理部６４が応答データをマルウェア実行部６２に転送しない場合であってもよい。
【００６６】
（６）システム構成等
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示された構成要素と同一であることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１に示す解析データ記憶部５１と許可リスト記憶部５２とを一つの記憶部として統合してもよい。また、一方で、図１に示す接続判定部６３を、検索サーバ２００にコマンドを送信するコマンド実行部と、検索サーバ２００の検索結果に基づいて判定処理を実行する判定部とに分散してもよい。
【００６７】
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。例えば、図８における接続先が許可されているか否かの判定を手動で行ってもよい。また、接続判定部６３を解析装置１００の外部装置としてネットワーク経由で接続するようにしてもよい。また、接続判定部６３を別の装置が有し、ネットワークに接続されて協働することで、上記した解析システム４００の機能を実現するようにしてもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６８】
（７）解析プログラム
ところで、上記実施例１では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本実施例はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行するようにしてもよい。そこで、以下では、図１０を用いて上記実施例１に示した解析装置１００と同様の機能を有する解析プログラムを実行するコンピュータの一例を説明する。図１０は、解析プログラムを実行するコンピュータを示す図である。
【００６９】
図１０に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０とを有する。また、図１０に示すように、コンピュータ１０００は、例えば、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００７０】
メモリ１０１０は、図１０に示すように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１０に示すように、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、図１０に示すように、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、図１０に示すように、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、図１０に示すように、例えばディスプレイ１１３０に接続される。
【００７１】
ここで、図１０に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）、アプリケーションプログラム、プログラムモジュール、プログラムデータを記憶する。すなわち、解析プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクに記憶される。具体的には、上述した実施例で説明したマルウェア実行部６２と同様の情報処理を実行する実行手順と、接続判定部６３と同様の情報処理を実行する判定手順と、応答処理部６４と同様の情報処理を実行する応答処理手順とが記述されたプログラムモジュールが、ハードディスクに記憶される。
【００７２】
また、上述した実施例で説明した許可リスト記憶部５２に記憶されるデータのように、解析プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えばハードディスクに記憶される。そして、ＣＰＵ１０２０が、ハードディスクに記憶されたプログラムモジュールやプログラムデータを必要に応じてＲＡＭ１０１２に読み出し、実行手順、判定手順、応答処理手順を実行する。
【００７３】
なお、解析プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、解析プログラムに係るプログラムモジュールやプログラムデータは、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェースを介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００７４】
６２  マルウェア実行部
６３  接続判定部
６４  応答処理部
１００  解析装置
１０１、１０２、１０３  接続先
２２０  データベース
３００  ネットワーク
４００  解析システム
【図１】
0005389739.tif 000002
【図２】
0005389739.tif 000003
【図３】
0005389739.tif 000004
【図４】
0005389739.tif 000005
【図５】
0005389739.tif 000006
【図６】
0005389739.tif 000007
【図７】
0005389739.tif 000008
【図８】
0005389739.tif 000009
【図９】
0005389739.tif 000010
【図１０】
0005389739.tif 000011