説明

解析システム、解析装置、解析方法及び解析プログラム

【課題】ネットワークからの応答を要するマルウェアの挙動を安全に解析すること。
【解決手段】不正プログラムの挙動を解析する解析装置と、ネットワークに接続された接続先に関する情報を記憶するデータベースとを含む解析システムにおいて、実行手段がコンピュータ内で不正な動作を行う不正プログラムを実行する。そして、判定手段が実行手段によって実行された不正プログラムが接続を要求する接続先に関する情報をデータベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する。そして、応答処理手段が判定手段により接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って不正プログラムに対する応答を取得する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、解析システム、解析装置、解析方法及び解析プログラムに関する。
【背景技術】
【0002】
従来、コンピュータウイルスやスパイウェアといった不正なコンピュータプログラムが知られている。このような、不正プログラムはマルウェア(Malware)とも呼ばれている。近年、マルウェアによる被害を低減させるために、マルウェアに関する種々の解析が行われている。
【0003】
例えば、コンピュータがマルウェアに感染した場合に、どのような通信を発生させるのか、または、コンピュータの内部資源にどのような影響を及ぼすのかなどを調べるための解析が行われている。なお、内部資源とは、例えば、不揮発性記憶媒体、揮発性記憶媒体及びそれら記憶媒体によって記憶されるデータなどである。上述したような解析を実行するための手法としては、例えば、マルウェアをコンピュータ内で実際に動作させて挙動を解析する動的解析手法が知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−181335号公報
【非特許文献】
【0005】
【非特許文献1】Konstantin Rozinov 「REVERSE CODE ENGINEERING: An In-Depth Analysis of the Bagle Virus」 Lucent Technologies
【0006】
【非特許文献2】Mark Vincent Yason 「The Art of Unpacking」 Black Hat USA 2007 Briefings
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した従来技術では、ネットワークからの応答を要するマルウェアの挙動を安全に解析することができないという問題があった。
【0008】
具体的には、上述した従来技術は、安全性を担保するために、コンピュータがネットワークから隔離された環境下で実行される。しかしながら、マルウェアには、コンピュータがネットワークに接続された環境下で脅威をもたらすものが存在する。例えば、上述したマルウェアとしては、ネットワーク上に存在する攻撃者からの命令を受信することにより脅威が顕在化する「ボット」や、他のマルウェアをネットワーク上からダウンロードする「ダウンローダ」などが知られている。
【0009】
そのようなマルウェアに対して、コンピュータがネットワークから隔離された環境下で解析が実行されたとしても、良好な解析結果を得ることは困難である。従って、コンピュータがネットワークに接続された環境下で挙動を解析する動的解析手法が実行されることが望ましい。しかしながら、コンピュータがネットワークに接続された環境下で動的解析手法が実行された場合には、ネットワーク上に存在する攻撃者や他のマルウェアを含む悪性の接続先との通信だけではなく、他の正規の接続先との通信を許容することとなる。例えば、解析対象のマルウェアがネットワークに接続された他の正規の接続先に対して攻撃する場合もある。すなわち、上述した従来技術では、ネットワークからの応答を要するマルウェアの挙動を安全に解析することができない。
【0010】
そこで、本開示の技術は、上述した従来技術の問題を鑑みて、ネットワークからの応答を要するマルウェアの挙動を安全に解析することを可能とする解析システム、解析装置、解析方法及び解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するため、開示のシステムは、不正プログラムの挙動を解析する解析装置と、ネットワークに接続された接続先に関する情報を記憶するデータベースとを含む解析システムであって、解析装置における実行手段がコンピュータ内で不正な動作を行う不正プログラムを実行する。そして、判定手段が実行手段によって実行された不正プログラムが接続を要求する接続先に関する情報をデータベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する。そして、応答処理手段が判定手段により接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って不正プログラムに対する応答を取得する。
【発明の効果】
【0012】
開示のシステムは、ネットワークからの応答を要するマルウェアの挙動を安全に解析することを可能にする。
【図面の簡単な説明】
【0013】
【図1】図1は、実施例1に係る解析システムの構成の一例を示す図である。
【図2】図2は、許可リスト記憶部によって記憶されたデータの一例を示す図である。
【図3】図3は、検索サーバによる検索の一例を模式的に示す図である。
【図4】図4は、検索サーバによるリンク検索の一例を模式的に示した図である。
【図5】図5は、接続先が通信を許可された接続先である場合の応答処理部による処理の一例を示す図である。
【図6】図6は、接続先が通信を許可されていない接続先である場合の応答処理部による処理の一例を示す図である。
【図7】図7は、実施例1に係る解析システムによる判定処理の手順を示すフローチャートである。
【図8】図8は、実施例1に係る解析システムによる応答処理の手順を示すフローチャートである。
【図9】図9は、変形例を示す図である。
【図10】図10は、解析プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0014】
以下に添付図面を参照して、本願の開示する解析システム、解析方法及び解析プログラムの実施例を詳細に説明する。なお、本願の開示する解析システム、解析方法及び解析プログラムは、以下の実施例により限定されるものではない。
【実施例1】
【0015】
実施例1に係る解析システムは、不正プログラムによって要求された接続先が悪性の接続先か正規の接続先かを判定する。そして、実施例1に係る解析システムは、接続先が悪性の接続先であった場合に、接続先と通信を行って不正プログラムに対する応答を取得することでネットワークからの応答を要する不正プログラムの挙動を解析する。なお、不正プログラムとは、例えば、コンピュータウイルスやスパイウェアなどである。また、以下では、不正プログラムをマルウェアと記載する場合がある。また、悪性の接続先とは、例えば、ダウンローダによってダウンロードされるマルウェアを記憶するホストや、攻撃者がマルウェアに対する命令を記憶させたホストである。一方、正規の接続先とは、ダウンローダによってダウンロードされるマルウェアやマルウェアに対する命令などを記憶していないホストである。
【0016】
具体的には、実施例1に係る解析システムは、不正プログラムの挙動を解析する解析装置と、ネットワークに接続された接続先に関する情報を記憶するデータベースとを含む解析システムである。実施例1に係る解析システムは、コンピュータ内で不正な動作を行う不正プログラムを実行する。そして、実施例1に係る解析システムは、実行した不正プログラムが接続を要求する接続先に関する情報をデータベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する。そして、実施例1に係る解析システムは、接続先が通信を許可された接続先であると判定した場合に、当該接続先と通信を行って不正プログラムに対する応答を取得する。
【0017】
従って、実施例1に係る解析システムは、ネットワーク上の悪性の接続先を特定することで、正規の接続先との通信は行わず、悪性の接続先との通信のみを行うことができる。すなわち、実施例1に係る解析システムによれば、例えば、ネットワークに接続された正規の接続先に対してマルウェアが攻撃することを防止しつつ、悪性の接続先と通信を行うマルウェアの挙動解析を行うことができ、ネットワークからの応答を要するマルウェアの挙動を安全に解析することが可能になる。例えば、実施例1に係る解析システムによれば、インターネットで通常利用されているプロトコルであるHTTP(Hypertext Transfer Protocol)を用いて攻撃者からの命令を受け取ったり、他のマルウェアをダウンロードしたりするマルウェアの挙動を安全に解析することができる。
【0018】
[実施例1に係る解析システムの構成]
実施例1に係る解析システム400の構成について説明する。図1は、実施例1に係る解析システム400の構成の一例を示す図である。図1に示すように、解析システム400は、マルウェアの挙動を解析する解析装置100と、ネットワーク300に接続された接続先に関する情報を記憶するデータベースを有する検索サーバ200とを含んでいる。そして、解析システム400は、解析装置100及び検索サーバ200が、ネットワーク300を介して接続先101〜103と接続されている。接続先101〜103は、解析装置100において実行されるマルウェアによって要求される通信の接続先である。例えば、接続先101〜103は、ネットワーク300に接続された所定のホストや、或いは、ホストに記憶されている所定のコンテンツなどである。例を挙げれば、接続先101〜103は、悪性又は正規のホストやコンテンツなどである。
【0019】
検索サーバ200は、図1に示すように、通信制御I/F部210と、データベース220と、処理部230とを有する。通信制御I/F部210は、解析装置100と検索サーバ200との通信を制御するインタフェースである。データベース220は、処理部230によって実行される検索エンジン用のデータを記憶する。処理部230は、後述する解析装置100が発したコマンドを実行する。例えば、処理部230は、後述する解析装置100から指定された接続先がデータベース220に記憶されているか否かを検索エンジンにより検索する。なお、検索サーバ200による処理については、後に詳述する。
【0020】
解析装置100は、図1に示すように、入出力制御I/F部10と、入力部20と、表示部30と、通信部40と、解析データ記憶部51と、許可リスト記憶部52と、データ処理部61と、マルウェア実行部62と、接続判定部63と、応答処理部64とを有している。なお、解析装置100は、例えば、PC(Personal computer)、ワークステーション又は解析用の専用装置である。また、解析データ記憶部51及び許可リスト記憶部52は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。また、データ処理部61、マルウェア実行部62、接続判定部63及び応答処理部64は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、または、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。また、図1においては、3つの接続先と1つの検索サーバとを示しているが、実際には、さらに多数の接続先と検索サーバとがネットワーク300を介して解析装置100と接続されている。
【0021】
入出力制御I/F部10は、入力部20、表示部30、通信部40と接続判定部63及び応答処理部64との間での各種情報のやり取りを制御するインタフェースである。入力部20は、例えば、解析者による種々の情報の入力処理を受付ける。例えば、入力部20は、キーボードやタッチパネルなどである。表示部30は、例えば、解析者に対して解析結果を表示出力する。例えば、表示部30は、ディスプレイなどである。
【0022】
通信部40は、解析装置100と接続先101〜103との間、及び、解析装置100と検索サーバ200との間の通信を制御する。解析データ記憶部51は、解析装置100によって解析されたマルウェアの情報を記憶する。例えば、解析データ記憶部51は、マルウェアの種類や挙動などを記憶する。
【0023】
許可リスト記憶部52は、マルウェアの動作の対象として事前に通信が許可された接続先の情報を記憶する。具体的には、許可リスト記憶部52は、解析者が入力部20を介して予め入力したり、過去の解析において通信が許可されたりした接続先の情報である許可リストを記憶する。図2は、許可リスト記憶部52によって記憶されたデータの一例を示す図である。
【0024】
図2に示すように、許可リスト記憶部52は、ホスト名及びIP(Internet Protocol)アドレスを含む許可リストを記憶する。ここで、図2のホスト名とは、ネットワーク300に接続されたホストのFQDN(Fully Qualified Domain Name)を意味している。また、図2に示すIPアドレスとは、ネットワーク300に接続されたホストのIPアドレスを意味している。例えば、許可リスト記憶部52は、図2に示すように、「ホスト名:aaa.bbb.ccc.com、ddd.eee.fff.com」を記憶する。また、許可リスト記憶部52は、図2に示すように、「IPアドレス:111.222.333.444、555.666.777.888」を記憶する。
【0025】
図1に戻って、データ処理部61は、解析装置100が解析したマルウェアの情報を解析データ記憶部51に格納したり、解析結果を表示部30に表示させたりする。マルウェア実行部62は、コンピュータ内で不正な動作を行うマルウェアを実行する。具体的には、マルウェア実行部62は、解析者によって入力されたり、ネットワーク上から取得されたりした解析対象のマルウェアに動作を実行させ、実行させたマルウェアによって要求された各種情報を後述する応答処理部64に転送する。例えば、マルウェア実行部62は、実行させたマルウェアによって要求された接続先102の情報として「FQDN:www.malware.com」を応答処理部64に転送する。
【0026】
接続判定部63は、マルウェアによって要求された接続先に関する情報が許可リスト記憶部52によって記憶されていた場合に、当該接続先を通信が許可された接続先と判定する。また、接続判定部63は、マルウェア実行部62によって実行されたマルウェアが接続を要求する接続先に関する情報をデータベース220に問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する。具体的には、接続判定部63は、接続先のIPアドレス又はFQDNを接続先の情報としてデータベース220に問い合わせ、当該IPアドレス又はFQDNがデータベース220によって記憶されていなかった場合に、当該接続先を通信が許可された接続先と判定する。また、接続判定部63は、データベース220によって接続先のIPアドレス又はFQDNが記憶されていた場合には、当該接続先にリンクを形成している他の接続先の数をデータベース220にさらに問い合わせ、他の接続先の数が所定の閾値以下であった場合には、当該接続先を通信が許可された接続先と判定する。さらに、接続判定部63は、接続先に関する情報がデータベース220によって記憶されており、かつ、接続先にリンクを形成している他の接続先の数が所定の閾値を超えていた場合には、接続先を通信が許可されていない接続先と判定する。
【0027】
より具体的には、接続判定部63は、マルウェア実行部62によって実行されたマルウェアが接続を要求する接続先の情報を後述する応答処理部64を介して受信すると、まず、受信した情報が許可リスト記憶部52によって記憶されているか否かを判定する。例えば、接続判定部63は、応答処理部64から受信した接続先102の「FQDN:www.malware.com」が図2に示す許可リストに含まれているか否かを判定する。
【0028】
ここで、マルウェアによって要求された接続先の情報が許可リストに含まれていた場合には、接続判定部63は、マルウェアによって要求された接続先が通信を許可された接続先であると判定する。例えば、「FQDN:www.malware.com」が許可リストに含まれていた場合には、接続判定部63は、接続先102を通信が許可された接続先として判定する。
【0029】
一方、マルウェアによって要求された接続先の情報が許可リストに含まれていなかった場合には、接続判定部63は、接続先の情報を検索サーバ200に送信する。そして、接続判定部63は、送信した接続先の情報がデータベース220によって記憶されているか否かを検索サーバ200に検索させる。例えば、「FQDN:www.malware.com」が許可リストに含まれていなかった場合には、接続判定部63は、「www.malware.com」を検索サーバ200に送信する。そして、接続判定部63は、検索サーバ200に「www.malware.com」の検索を実行させる。
【0030】
図3は、検索サーバ200による検索の一例を模式的に示す図である。図3においては、検索サーバ200が「www.malware.com」のサイト検索を実行した検索結果を示している。例えば、検索サーバ200は、図3に示すように、「www.malware.com」のサイト検索を実行して、「site:www.malware.comに一致する情報は見つかりませんでした」とする検索結果を得る。そして、検索サーバ200は、得られた検索結果を接続判定部63に送信する。なお、図3では、検索サーバ200において実行される検索エンジンを用いたサイト検索を検索サイト「AAA」として示している。また、図3は検索サーバが提供しているGUI(Graphical User Interface)を介した場合の例であるが、GUIを用いずに、検索サーバが提供しているAPI(Application Program Interface)を用いて接続先の情報を問い合わせ、XML(Extensible Markup Language)等の形式でその結果を受け取ってもよい。
【0031】
そして、接続判定部63は、接続先の情報がデータベース220に記憶されていなかった場合には、接続先を通信が許可された接続先として判定する。例えば、図3に示すように、「www.malware.com」と一致する接続先がデータベース220に記憶されていなかった場合には、接続判定部63は、接続先102を通信が許可された接続先であると判定する。
【0032】
この検索エンジンを用いた接続先の判定は、正規の接続先および悪性の接続先が検索エンジンのデータベースに与える特徴を利用したものである。ここで、正規の接続先および悪性の接続先がデータベースに与える特徴について説明する。
【0033】
まず、マルウェアが実行された場合に確認されるネットワークへのアクセスには、正規の接続先へのアクセス及び悪性の接続先へのアクセスがある。例えば、正規の接続先へのアクセスは、マルウェアが解析環境で動作しているかどうか、すなわち、接続確認を行うため、もしくは、マルウェアが攻撃を実施するために実行される。マルウェアが正規の接続先を接続確認に悪用する場合には、有名な接続先が用いられる頻度が高い。従って、検索エンジンを判定に用いることで、マルウェアがアクセスしようとしている正規の接続先がヒットする可能性が極めて高い。また、マルウェアが正規の接続先を攻撃しようとした場合には、攻撃ターゲットの選定に検索エンジンが用いられる頻度が高い。従って、攻撃対象となる正規の接続先を検索エンジンで探し出すことが可能である。
【0034】
一方、悪性の接続先へのアクセスは、攻撃者から命令を受け取るため、もしくは、別のマルウェアをダウンロードするために実行される。ここで、悪性の接続先は、他の接続先からリンクを張られることが少ないため、検索エンジンのデータベースに登録されるまでに時間を要する。または、悪性の接続先はデータベースに登録されることがない。すなわち、正規の接続先は、検索エンジン用のデータベースに登録されている可能性が極めて高い。一方、悪性の接続先は検索エンジン用のデータベースに登録されている可能性が低い。従って、実施例1に係る解析システム400は、マルウェアが通信を試みる接続先と一致する接続先がデータベース220に登録されていない場合に通信を許可することで、正規の接続先との通信を行わずに、悪性の接続先との通信のみを実行することを可能にする。例えば、実施例1に係る解析システム400は、正規のホストとの通信や正規のコンテンツに関わる通信を行わずに、悪性のホストとの通信や悪性のコンテンツに関わる通信のみを実行する。
【0035】
ここで、仮に、接続先の情報がデータベース220に記憶されていた場合には、接続判定部63は、次の判定処理を実行する。具体的には、接続判定部63は、接続先の被リンク数の検索を検索サーバ200に実行させる。すなわち、接続判定部63は、接続先が他の接続先からどの程度リンクされているかを検索サーバ200に検索させる。そして、接続判定部63は、接続先の被リンク数が所定の閾値以下であった場合には、通信が許可された接続先であると判定する。
【0036】
図4は、検索サーバ200によるリンク検索の一例を模式的に示した図である。図4においては、検索サーバ200が「www.malware.com」のリンク検索を実行した検索結果を示している。図4の検索サイトとは、検索サーバ200が用いた検索エンジンを意味している。また、図4の被リンク数とは、接続先をリンクしている他のコンテンツの数を意味している。例えば、検索サーバ200は、図4に示すように、「www.malware.com」のリンク検索を実行して、「検索サイト:AAA、被リンク数:2」とする検索結果を得る。そして、検索サーバ200は、得られた検索結果を接続判定部63に送信する。
【0037】
接続判定部63は、検索結果を受信すると、被リンク数が所定の閾値以下であるか否かを判定する。そして、接続判定部63は、被リンク数が所定の閾値以下であった場合に、接続先を通信が許可された接続先と判定する。例えば、所定の閾値が「5」であった場合には、図4に示す検索結果において被リンク数が「2」であることから、接続判定部63は、「www.malware.com」を示す接続先102を通信が許可された接続先であると判定する。一方、仮に、被リンク数が所定の閾値を越えていた場合には、接続判定部63は、接続先を通信が許可されていない接続先であると判定する。
【0038】
この被リンク数を用いた判定においても、正規の接続先及び悪性の接続先が検索エンジンのデータベースに与える特徴を利用している。具体的には、正規の接続先に対してリンクを張る他の接続先は多数存在するのに対して、悪性の接続先に対してリンクを張っている他の接続先はほとんどない。従って、悪性の接続先の被リンク数は、正規の接続先と比較して、極めて少なくなる。本実施例では、このような特徴を利用して正規の接続先であるか悪性の接続先であるかを判定している。
【0039】
図1に戻って、応答処理部64は、接続判定部63により接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行ってマルウェアに対する応答を取得する。また、応答処理部64は、接続判定部63により接続先が通信を許可されていない接続先であると判定された場合には、マルウェアに対する応答を生成し、生成した応答をマルウェアに転送する。
【0040】
具体的には、応答処理部64は、接続先が通信を許可された接続先であると判定された場合には、マルウェア実行部62により実行されたマルウェアが要求する接続先との通信を行い、接続先とのデータの送受信を実行する。図5は、接続先が通信を許可された接続先である場合の応答処理部64による処理の一例を示す図である。図5においては、マルウェアにより接続が要求された接続先102を接続判定部63が通信を許可する接続先であると判定した場合の応答処理部64による処理を示している。図5に示すように、接続先102が通信を許可する接続先であると判定された場合には、応答処理部64は、マルウェア実行部62が実行したマルウェアによって生成されたマルウェアの通信データ「0010101110」を接続先102に送信する。そして、応答処理部64は、マルウェアの通信データに対する応答として接続先102が生成した応答データ「1100111110」を受信する。そして、応答処理部64は、受信した応答データ「1100111110」をマルウェア実行部62に転送する。
【0041】
一方、接続先が通信を許可しない接続先であると判定された場合には、応答処理部64は、マルウェア実行部62により実行されたマルウェアが要求する接続先との通信を行わない。ここで、応答処理部64は、マルウェアに対する応答を生成して、生成したデータをマルウェア実行部62に送信する。図6は、接続先が通信を許可しない接続先である場合の応答処理部64による処理の一例を示す図である。図6においては、マルウェアにより接続が要求された接続先103を接続判定部63が通信を許可しない接続先であると判定した場合の応答処理部64による処理を示している。図6に示すように、接続先103が通信を許可しない接続先であると判定された場合には、応答処理部64は、マルウェア実行部62から受信したマルウェアの通信データ「1110100001」に対するダミーデータとして応答データ「1010110101」を生成する。そして、応答処理部64は、生成した応答データ「1010110101」をマルウェア実行部62に送信する。
【0042】
なお、上述した実施例1においては、接続先の判定するための検索にFQDNを用いる場合について説明したが、本実施例はこれに限定されるものではなく、例えば、IPアドレスを用いる場合であってもよい。また、マルウェアから受信したIPアドレスを、DNS(Domain Name System)サーバに問い合わせることで取得されるドメイン名を用いる場合であってもよい。また、マルウェアから受信したFQDNを、DNS(Domain Name System)サーバに問い合わせることで取得されるIPアドレスを用いる場合であってもよい。
【0043】
[実施例1に係る解析システムによる判定処理の手順]
次に、実施例1に係る解析システム400による判定処理の手順を説明する。図7は、実施例1に係る解析システム400による判定処理の手順を示すフローチャートである。図7に示すように、実施例1に係る解析システム400においては、接続判定部63が接続先のIPアドレス又はFQDNを受信すると(ステップS101肯定)、受信した接続先のIPアドレス又はFQDNが許可リストに含まれているか否かを判定する(ステップS102)。
【0044】
ここで、接続先のIPアドレス又はFQDNが許可リストに含まれていない場合には(ステップS102否定)、接続判定部63は、検索エンジンに問い合わせ(ステップS103)、一致する接続先が見つかったか否かを判定する(ステップS104)。具体的には、接続判定部63は、検索サーバ200に対して、接続先のIPアドレス又はFQDNの検索を実行させ、接続先のIPアドレス又はFQDNと同一のホストがデータベース220に記憶されているか否かを判定する。
【0045】
ここで、一致する接続先が見つかった場合には(ステップS104肯定)、接続判定部63は、接続先のホストの被リンク数が所定の値よりも大きいか否かを判定する(ステップS105)。ここで、接続先のホストの被リンク数が所定の値よりも大きい場合には(ステップS105肯定)、接続判定部63は、通信を許可しない接続先と判定して(ステップS106)、処理を終了する。すなわち、接続判定部63は、接続先を正規の接続先と判定して処理を終了する。
【0046】
一方、接続先のIPアドレス又はFQDNが許可リストに含まれていた場合(ステップS102肯定)、接続先と一致する接続先が見つからなかった場合(ステップS104否定)及び接続先のホストの被リンク数が所定の値以下であった場合(ステップS105否定)には、接続判定部63は、通信を許可する接続先と判定して(ステップS107)、処理を終了する。すなわち、接続判定部63は、接続先を悪性の接続先と判定して処理を終了する。なお、接続先のIPアドレス又はFQDNを受信するまで、接続判定部63は待機状態である(ステップS101否定)。
【0047】
[実施例1に係る解析システムによる応答処理の手順]
次に、実施例1に係る解析システム400による応答処理の手順を説明する。図8は、実施例1に係る解析システム400による応答処理の手順を示すフローチャートである。図8に示すように、実施例1に係る解析システム400においては、応答処理部64がマルウェアの通信データを受信すると(ステップS201肯定)、受信したマルウェアの通信データの接続先が許可されているか否かを判定する(ステップS202)。
【0048】
ここで、接続先が許可されている場合には(ステップS202肯定)、応答処理部64は、マルウェアの通信データを接続先に送信する(ステップS203)。そして、応答処理部64は、マルウェアの通信データに対する応答データを接続先から受信する(ステップS204)。その後、応答処理部64は、受信した応答データをマルウェア実行部62に転送して(ステップS205)、処理を終了する。
【0049】
一方、接続先が許可されていない場合には(ステップS202否定)、応答処理部64は、マルウェアの通信データに応じた応答データを生成する(ステップS206)。そして、応答処理部64は、生成した応答データをマルウェア実行部62に転送して(ステップS207)、処理を終了する。
【0050】
[実施例1の効果]
上述したように、実施例1によれば、不正プログラムの挙動を解析する解析装置と、ネットワークに接続された接続先に関する情報を記憶するデータベースとを含む解析システムにおいて、マルウェア実行部62がコンピュータ内で不正な動作を行うマルウェアを実行する。そして、接続判定部63がマルウェア実行部62によって実行されたマルウェアが接続を要求する接続先に関する情報をデータベース220に問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先か否かを判定する。そして、応答処理部64が接続判定部63により接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行ってマルウェアに対する応答を取得する。従って、実施例1に係る解析システム400は、接続先が正規の接続先である場合には通信を行わず、接続先が悪性の接続先の場合にのみ通信を行うことができ、ネットワークからの応答を要するマルウェアの挙動を安全に解析することを可能にする。
【0051】
また、実施例1によれば、接続判定部63は、接続先のIPアドレス又はFQDNを接続先の情報としてデータベースに問い合わせ、当該IPアドレス又はFQDNが前記データベースによって記憶されていなかった場合に、当該接続先を通信が許可された接続先であると判定する。従って、実施例1に係る解析システム400は、容易に悪性の接続先を特定でき、ネットワークからの応答を要するマルウェアの挙動の安全な解析を容易に実現することを可能にする。
【0052】
また、実施例1によれば、接続判定部63は、データベース220によって接続先のIPアドレス又はFQDNが記憶されていた場合には、当該接続先に関連する他の接続先の数をデータベースにさらに問い合わせ、他の接続先の数が所定の閾値以下であった場合には、IPアドレス又はFQDNが記憶されていた接続先を通信が許可された接続先であると判定する。従って、実施例1に係る解析システム400は、悪性の接続先について細かな判定をすることができ、判定の精度を高めることを可能にする。
【0053】
また、実施例1によれば、許可リスト記憶部52は、マルウェアの動作の対象として事前に許可された接続先に関する情報を記憶する。そして、接続判定部63は、マルウェアによって要求された接続先に関する情報が許可リスト記憶部52によって記憶されていた場合に、当該接続先を通信が許可された接続先であると判定する。従って、実施例1に係る解析システム400は、検索にかかる処理を省くことができ、解析を迅速に行うことを可能にする。
【0054】
また、実施例1によれば、接続判定部63は、接続先に関する情報がデータベース220によって記憶されており、かつ接続先に関連する他の接続先の数が所定の閾値を超えていた場合には、接続先を通信が許可されていない接続先であると判定する。そして、応答処理部64は、接続判定部63により接続先が通信を許可されていない接続先であると判定された場合に、マルウェアに対する応答を生成し、生成した応答をマルウェアに転送する。従って、実施例1に係る解析システム400は、ネットワークとの接続を要しないマルウェアについても解析することを可能にする。
【実施例2】
【0055】
さて、これまで実施例1について説明したが、上述した実施例1以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、種々の異なる実施例を(1)〜(7)に区分けして説明する。
【0056】
(1)接続先の情報
上述した実施例1では、接続先に関する情報としてIPアドレス又はFQDNを用いる場合について説明した。しかしながら、本実施例はこれに限定されるものではなく、例えば、接続先に関する情報としてURL(Uniform Resource Locator)を用いる場合であってもよい。例えば、URLを用いる場合には、許可リスト記憶部52は、解析者が入力部20を介して予め入力したり、過去の解析において通信が許可されたりしたURLの許可リストを記憶する。
【0057】
そして、接続判定部63は、マルウェアが要求したURLを受信すると、まず、受信したURLが許可リスト記憶部52によって記憶されているか否かを判定する。ここで、受信したURLが許可リスト記憶部52によって記憶されていた場合には、接続先を悪性の接続先として判定する。一方、受信したURLが許可リスト記憶部52によって記憶されていない場合には、接続判定部63は、検索サーバ200に対して受信したURLを送信する。そして、接続判定部63は、検索サーバ200に送信したURLを検索させる。
【0058】
ここで、検索させたURLがデータベース220によって記憶されていない場合には、接続判定部63は、接続先を悪性の接続先として判定する。一方、検索させたURLがデータベース220によって記憶されていた場合には、接続判定部63は、検索サーバ200にURLの被リンク数をさらに検索させる。ここで、被リンク数が所定の閾値以下であった場合には、接続判定部63は、接続先を悪性の接続先として判定する。一方、被リンク数が所定の閾値を超えていた場合には、接続判定部63は、接続先を正規の接続先と判定する。
【0059】
上述したように、本実施例に係る解析システムは、IPアドレス及びFQDN以外に、URLを用いて接続先の判定処理を実行する。従って、本実施例に係る解析システムは、IPアドレス及びFQDNを用いる場合よりも、より詳細な判定処理を実行することができる。例えば、本実施例に係る解析システムは、同一のホストにおける異なる接続先を区別した判定処理ができる。
【0060】
(2)検索エンジン
上述した実施例1では、接続先を1つの検索エンジンで検索する場合について説明したが、本実施例はこれに限定されるものではなく、例えば、複数の検索エンジンを用いる場合であってもよい。かかる場合には、複数の検索結果を総合して判定する場合であってもよい。例えば、検索に用いた複数の検索エンジンの数の内、所定の数の検索エンジンで接続先がヒットしない場合に、接続先を悪性の接続先として判定する。また、複数の検索結果から任意の結果を抽出して、抽出した結果に基づいて判定する場合であってもよい。
【0061】
(3)変形例
上述した実施例1では、1つの検索エンジンを用いて被リンク数を検索する場合について説明したが、本実施例はこれに限定されるものではなく、例えば、複数の検索エンジンを用いる場合であってもよい。図9は、変形例を示す図である。図9においては、検索サイト「AAA」、「BBB」及び「CCC」における「www.malware.com」のリンク検索を実行した検索結果を示している。図9の検索サイトとは、検索に用いられた検索エンジンを意味している。また、図9の被リンク数とは、接続先をリンクしている他のコンテンツの数を意味している。
【0062】
例えば、解析システム400は、図9に示すように、「www.malware.com」のリンク検索を実行して、「検索サイト:AAA、被リンク数:2」とする検索結果を得る。同様に、解析システム400は、図9に示すように、「検索サイト:BBB、被リンク数:4」、「検索サイト:CCC、被リンク数:1」とする検索結果を得る。
【0063】
ここで、被リンク数に関する判定処理が実行される場合に、各検索サイトでヒットした被リンク数の合計数を所定の閾値と比較して判定する場合であってもよい。また、被リンク数が最大となった検索サイトの被リンク数と所定の閾値を比較して判定する場合であってもよい。
【0064】
(4)判定処理
上述した実施例1では、接続先のIPアドレス又はFQDNがデータベース220に記憶されていた場合に、被リンク数を用いた判定処理を実行する例について説明した。しかしながら、本実施例はこれに限定されるものではなく、例えば、接続先のIPアドレス又はFQDNの検索のみで判定処理を行う場合であってもよい。すなわち、被リンク数を用いた判定処理を実行しない場合であってもよい。
【0065】
(5)応答処理
上述した実施例1では、応答処理部64がマルウェア実行部62に対して応答データを転送する場合について説明したが、本実施例はこれに限定されるものではなく、例えば、応答データをマルウェア実行部62に転送しない場合でもよい。例えば、接続先との通信が許可されなかった場合に、応答処理部64が応答データを生成しない場合であってもよい。また、接続先との通信が許可された場合であっても、応答処理部64が応答データをマルウェア実行部62に転送しない場合であってもよい。
【0066】
(6)システム構成等
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示された構成要素と同一であることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示す解析データ記憶部51と許可リスト記憶部52とを一つの記憶部として統合してもよい。また、一方で、図1に示す接続判定部63を、検索サーバ200にコマンドを送信するコマンド実行部と、検索サーバ200の検索結果に基づいて判定処理を実行する判定部とに分散してもよい。
【0067】
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。例えば、図8における接続先が許可されているか否かの判定を手動で行ってもよい。また、接続判定部63を解析装置100の外部装置としてネットワーク経由で接続するようにしてもよい。また、接続判定部63を別の装置が有し、ネットワークに接続されて協働することで、上記した解析システム400の機能を実現するようにしてもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0068】
(7)解析プログラム
ところで、上記実施例1では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本実施例はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行するようにしてもよい。そこで、以下では、図10を用いて上記実施例1に示した解析装置100と同様の機能を有する解析プログラムを実行するコンピュータの一例を説明する。図10は、解析プログラムを実行するコンピュータを示す図である。
【0069】
図10に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブインタフェース1030とを有する。また、図10に示すように、コンピュータ1000は、例えば、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
【0070】
メモリ1010は、図10に示すように、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図10に示すように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図10に示すように、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、図10に示すように、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図10に示すように、例えばディスプレイ1130に接続される。
【0071】
ここで、図10に示すように、ハードディスクドライブ1090は、例えば、OS(Operating System)、アプリケーションプログラム、プログラムモジュール、プログラムデータを記憶する。すなわち、解析プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクに記憶される。具体的には、上述した実施例で説明したマルウェア実行部62と同様の情報処理を実行する実行手順と、接続判定部63と同様の情報処理を実行する判定手順と、応答処理部64と同様の情報処理を実行する応答処理手順とが記述されたプログラムモジュールが、ハードディスクに記憶される。
【0072】
また、上述した実施例で説明した許可リスト記憶部52に記憶されるデータのように、解析プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えばハードディスクに記憶される。そして、CPU1020が、ハードディスクに記憶されたプログラムモジュールやプログラムデータを必要に応じてRAM1012に読み出し、実行手順、判定手順、応答処理手順を実行する。
【0073】
なお、解析プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、解析プログラムに係るプログラムモジュールやプログラムデータは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェースを介してCPU1020によって読み出されてもよい。
【符号の説明】
【0074】
62 マルウェア実行部
63 接続判定部
64 応答処理部
100 解析装置
101、102、103 接続先
220 データベース
300 ネットワーク
400 解析システム

【特許請求の範囲】
【請求項1】
不正プログラムの挙動を解析する解析装置と、ネットワークに接続された接続先に関する情報を記憶するデータベースとを含む解析システムであって、
解析装置が、
コンピュータ内で不正な動作を行う不正プログラムを実行する実行手段と、
前記実行手段によって実行された不正プログラムが接続を要求する接続先に関する情報を前記データベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する判定手段と、
前記判定手段により前記接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って前記不正プログラムに対する応答を取得する応答処理手段と
を有することを特徴とする解析システム。
【請求項2】
前記判定手段は、前記接続先のアドレス、FQDN又はURLを前記接続先の情報としてデータベースに問い合わせ、当該アドレス、FQDN又はURLが前記データベースによって記憶されていなかった場合に、当該接続先を通信が許可された接続先であると判定することを特徴とする請求項1に記載の解析システム。
【請求項3】
前記判定手段は、前記データベースによって前記接続先のアドレス、FQDN又はURLが記憶されていた場合には、当該接続先に関連する他の接続先の数を前記データベースにさらに問い合わせ、前記他の接続先の数が所定の閾値以下であった場合には、アドレス、FQDN又はURLが記憶されていた接続先を通信が許可された接続先であると判定することを特徴とする請求項1又は2に記載の解析システム。
【請求項4】
前記不正プログラムの動作の対象として事前に許可された接続先に関する情報を記憶する記憶手段をさらに有し、
前記判定手段は、前記不正プログラムによって要求された接続先に関する情報が前記記憶手段によって記憶されていた場合に、当該接続先を通信が許可された接続先であると判定することを特徴とする請求項1〜3のいずれか一つに記載の解析システム。
【請求項5】
前記判定手段は、前記接続先に関する情報が前記データベースによって記憶されており、かつ前記接続先に関連する他の接続先の数が所定の閾値を超えていた場合には、前記接続先を通信が許可されていない接続先であると判定し、
前記応答処理手段は、前記判定手段により前記接続先が通信を許可されていない接続先であると判定された場合に、前記不正プログラムに対する応答を生成し、生成した応答を前記不正プログラムに転送することを特徴とする請求項1〜3のいずれか一つに記載の解析システム。
【請求項6】
コンピュータ内で不正な動作を行う不正プログラムを実行する実行手段と、
前記実行手段によって実行された不正プログラムが接続を要求する接続先に関する情報を外部データベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する判定手段と、
前記判定手段により前記接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って前記不正プログラムに対する応答を取得する応答処理手段と、
を有することを特徴とする解析装置。
【請求項7】
コンピュータ内で不正な動作を行う不正プログラムを実行する実行ステップと、
前記実行ステップによって実行された不正プログラムが接続を要求する接続先に関する情報を外部データベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する判定ステップと、
前記判定ステップにより前記接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って前記不正プログラムに対する応答を取得する応答処理ステップと、
を含んだことを特徴とする解析方法。
【請求項8】
コンピュータ内で不正な動作を行う不正プログラムを実行する実行手順と、
前記実行手順によって実行された不正プログラムが接続を要求する接続先に関する情報を外部データベースに問い合わせ、問い合わせの結果に基づいて当該接続先が通信を許可された接続先であるか否かを判定する判定手順と、
前記判定手順により前記接続先が通信を許可された接続先であると判定された場合に、当該接続先と通信を行って前記不正プログラムに対する応答を取得する応答処理手順と、
コンピュータに実行させることを特徴とする解析プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−257901(P2011−257901A)
【公開日】平成23年12月22日(2011.12.22)
【国際特許分類】
【出願番号】特願2010−130722(P2010−130722)
【出願日】平成22年6月8日(2010.6.8)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】