(57)【要約】【課題】簡易な構成でマルウェアを検知し、その動作を記録すること。【解決手段】本発明に係るマルウェア検知システム１００は、ホスト名からＩＰアドレスへの名前解決をするＤＮＳサーバ１０２と、パケットを送信する場合にパケットの送信先のホスト名からＩＰアドレスへの名前解決を前記ＤＮＳサーバ１０２に要求し、要求に応じて名前解決結果としてＤＮＳサーバ１０２から通知されてきたＩＰアドレスにパケットを送信する端末装置１０１と、端末装置１０１からパケットが送信されてきた場合にパケットに関する情報を記録する検証サーバ１０３を備える。ＤＮＳサーバ１０２は、名前解決ができない場合、又は、名前解決結果が無効なＩＰアドレスである場合、名前解決結果として検証サーバ１０３のＩＰアドレスを端末装置１０１に通知する。【選択図】図６
2015177434.tif 000002
【特許請求の範囲】
【請求項１】
ホスト名からＩＰアドレスへの名前解決をするＤＮＳサーバと、
パケットを送信する場合に、当該パケットの送信先のホスト名からＩＰアドレスへの名前解決を前記ＤＮＳサーバに要求し、当該要求に応じて名前解決結果として前記ＤＮＳサーバから通知されてきたＩＰアドレスに前記パケットを送信する端末装置と、
前記端末装置からパケットが送信されてきた場合に当該パケットに関する情報を記録する検証サーバと、を備え、
前記ＤＮＳサーバは、前記名前解決ができない場合、又は、前記名前解決結果が無効なＩＰアドレスである場合、前記名前解決結果として前記検証サーバのＩＰアドレスを前記端末装置に通知する、
マルウェア検知システム。
【請求項２】
前記マルウェア検知システムは、さらに、前記端末装置から送信されてきたパケットを中継するプロキシサーバを有し、
前記プロキシサーバは、前記端末装置から送信されたパケットを中継する際に、当該パケットのＸ−Ｆｏｒｗａｒｄｅｄ−Ｆｏｒに前記端末装置のＩＰアドレスを設定し、
前記検証サーバは、
前記パケットに関する情報が格納される記憶部と、
前記パケットに関する情報として、前記端末装置から送信されたパケットのＸ−Ｆｏｒｗａｒｄｅｄ−Ｆｏｒに設定されたＩＰアドレスを前記記憶部に格納する接続元解析部と、を有する、
請求項１に記載のマルウェア検知システム。
【請求項３】
前記ＤＮＳサーバは、
ホスト名と、そのホストのＩＰアドレスとが対応付られたエントリを複数含むマップ情報が格納された記憶部と、
前記マップ情報において前記名前解決が要求されたホスト名を示すエントリが存在する場合、当該ホスト名に対応するＩＰアドレスを前記名前解決結果として前記端末装置に送信するアドレス管理部と、を有し、
前記アドレス管理部は、前記名前解決ができない場合、又は、前記名前解決結果が無効なＩＰアドレスである場合、前記名前解決が要求されたホスト名と、前記検証サーバのＩＰアドレスとを対応付けたエントリを前記マップ情報に追加する、
請求項１又は２に記載のマルウェア検知システム。
【請求項４】
前記端末装置は、イントラネットに含まれ、
前記ＤＮＳサーバ及び前記プロキシサーバは、ＤＭＺに含まれ、
前記ＤＮＳサーバは、上位のＤＮＳサーバに対して名前解決を要求する、
請求項２に記載のマルウェア検知システム。
【請求項５】
前記マルウェア検知システムは、前記検証サーバを複数有し、
前記複数の検証サーバのそれぞれは、少なくとも１つのホスト名が対応付られており、
前記ＤＮＳサーバは、前記端末装置に検証サーバのＩＰアドレスを通知する場合、前記名前解決が要求されたホスト名に対応する検証サーバのＩＰアドレスを前記端末装置に通知する、
請求項１乃至４のいずれか１項に記載のマルウェア検知システム。
【請求項６】
前記マルウェア検知システムは、前記端末装置を複数有し、
前記マルウェア検知システムは、前記検証サーバを複数有し、
前記複数の検証サーバのそれぞれは、少なくとも１つの端末装置が対応付られており、
前記ＤＮＳサーバは、前記端末装置に検証サーバのＩＰアドレスを通知する場合、当該端末装置に対応する検証サーバのＩＰアドレスを当該端末装置に通知する、
請求項１乃至４のいずれか１項に記載のマルウェア検知システム。
【請求項７】
端末装置が、パケットを送信する場合に、当該パケットの送信先のホスト名からＩＰアドレスへの名前解決をＤＮＳサーバに要求する要求ステップと、
前記ＤＮＳサーバが、前記端末装置からの名前解決の要求に応じて、前記ホスト名からＩＰアドレスへの名前解決をし、名前解決結果となるＩＰアドレスを端末装置に通知する名前解決ステップと、
前記端末装置が、前記ＤＮＳサーバから通知されてきたＩＰアドレスに前記パケットを送信する送信ステップと、を備え、
前記名前解決ステップでは、前記名前解決ができない場合、又は、前記名前解決結果が無効なＩＰアドレスである場合、前記名前解決結果として、前記端末装置からパケットが送信されてきた場合に当該パケットに関する情報を記録する検証サーバのＩＰアドレスを前記端末装置に通知する、
マルウェア検知方法。
【請求項８】
端末装置からの名前解決要求に応じて、ホスト名からＩＰアドレスへの名前解決をするＤＮＳサーバであって、
前記名前解決ができない場合、又は、前記名前解決の結果が無効なＩＰアドレスである場合、名前解決結果として、前記端末装置からパケットが送信されてきた場合に当該パケットに関する情報を記録する検証サーバのＩＰアドレスを前記端末装置に通知する
ＤＮＳサーバ。
【請求項９】
端末装置からの名前解決要求に応じて、ホスト名からＩＰアドレスへの名前解決をするための名前解決プログラムであって、
前記名前解決ができない場合、又は、前記名前解決の結果が無効なＩＰアドレスである場合、名前解決結果として、前記端末装置からパケットが送信されてきた場合に当該パケットに関する情報を記録する検証サーバのＩＰアドレスを前記端末装置に通知する処理をＤＮＳサーバに実行させる
名前解決プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェア検知システム、マルウェア検知方法、ＤＮＳサーバ、及び名前解決プログラムに関し、特に、端末装置に感染したマルウェアを検知する技術に関する。
【背景技術】
【０００２】
昨今、特定の企業あるいは組織を標的とした標的型攻撃による被害が深刻化しており、その実態の把握が難しくなっている。標的型攻撃は、マルウェアによるものが多い。マルウェアは、感染したコンピュータ機器（以下、端末装置）もしくは企業内ネットワークに所属するコンピュータ機器から情報を搾取し、インターネット上に構築されたＣ＆Ｃサーバへその搾取した情報を送信するものがある。
【０００３】
Ｃ＆Ｃサーバは、常設されていることはほとんどなく、そのＩＰアドレスも短期間で変更されることが多い。一方で、マルウェアは、企業内ネットワーク内にあっても検知されにくいよう痕跡を消したり、長期間潜伏したりといった行動をとる。また、マルウェアは、Ｃ＆Ｃサーバの準備状態（設置完了、未完了）によって行動を変える。Ｃ＆Ｃサーバを設置完了していない場合には、攻撃者は、公開ＤＮＳサーバへＣ＆ＣサーバのＩＰアドレスとしてグローバルでないＩＰアドレスを登録しておく。この場合、マルウェアに感染した端末装置（以下、感染端末）からＤＮＳサーバへの名前解決を行った際には、その結果としてループバックアドレス（１２７．０．０．１）などのグローバルＩＰアドレスでないＩＰアドレスが返却される。この場合、マルウェアは、Ｃ＆Ｃサーバの設定が完了していないものと判断し、潜伏を継続する。一方で、Ｃ＆Ｃサーバの準備が完了した場合には、攻撃者は、ＤＮＳサーバにＣ＆Ｃサーバの正しいグローバルＩＰアドレスを設定する。感染端末は、マルウェアによって、名前解決の結果としてＣ＆ＣサーバのＩＰアドレスをＤＮＳサーバから受領し、窃取した情報をＣ＆Ｃサーバへ送り込む。マルウェアがこのような動作を行うため、潜伏時におけるマルウェアの検知が難しい。
【０００４】
特許文献１には、マルウェアが接続する外部サーバのホスト名に対するアドレスが解決できない場合、又は、無効なアドレスである場合であっても、マルウェアによる通信を発生させることで、端末装置に感染したマルウェアを検知するマルウェア検知システムが開示されている。
【０００５】
このマルウェア検知システムは、端末装置と、イントラネット内で端末装置に接続された偽装ＤＮＳサーバと、イントラネット外部のネットワークとイントラネットとの間に配置された透過プロキシサーバを有する。偽装ＤＮＳサーバは、端末装置からのホスト名に対するアドレス解決要求に対して、アドレスが解決できない場合、又は、解決されたアドレスが無効なアドレスである場合、アドレス生成ルールに従ってアドレスを自動生成し、端末装置に返す。このアドレスを宛先として端末装置からパケットが送信されたとき、透過プロキシサーバは、そのアドレスに対応するホスト名を偽装ＤＮＳサーバに問い合わせる。透過プロキシサーバは、正規ＤＮＳサーバに対して、この問い合わせにより取得したホスト名に対応するアドレスを問い合わせる。この結果、そのホスト名に対応するアドレスが取得できなかった場合、マルウェアによる通信であるとして、メール又はＳＹＳＬＯＧによってエラーを通知する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２００９／１１０３２７号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示のマルウェア検知システムでは、透過プロキシサーバに対して、ＤＮＳサーバに対する問い合わせ処理及びその問い合わせ結果に応じた判定処理等のマルウェアを検知するための様々な処理を実装しなければならないという問題がある。すなわち、特許文献１に開示の透過プロキシサーバを構築するためには、一般的なプロキシサーバに対して大幅に処理を変更・追加する必要があるため、その構築に非常に手間がかかってしまうという問題がある。
【０００８】
本発明の目的は、上述したような課題を解決するために、簡易な構成でマルウェアを検知し、その動作を記録することができるマルウェア検知システム、マルウェア検知方法、ＤＮＳサーバ、及び名前解決プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明の第１の態様に係るマルウェア検知システムは、ホスト名からＩＰアドレスへの名前解決をするＤＮＳサーバと、パケットを送信する場合に、当該パケットの送信先のホスト名からＩＰアドレスへの名前解決を前記ＤＮＳサーバに要求し、当該要求に応じて名前解決結果として前記ＤＮＳサーバから通知されてきたＩＰアドレスに前記パケットを送信する端末装置と、前記端末装置からパケットが送信されてきた場合に当該パケットに関する情報を記録する検証サーバと、を備え、前記ＤＮＳサーバは、前記名前解決ができない場合、又は、前記名前解決結果が無効なＩＰアドレスである場合、前記名前解決結果として前記検証サーバのＩＰアドレスを前記端末装置に通知するものである。
【００１０】
本発明の第２の態様に係るマルウェア検知方法は、端末装置が、パケットを送信する場合に、当該パケットの送信先のホスト名からＩＰアドレスへの名前解決をＤＮＳサーバに要求する要求ステップと、前記ＤＮＳサーバが、前記端末装置からの名前解決の要求に応じて、前記ホスト名からＩＰアドレスへの名前解決をし、名前解決結果となるＩＰアドレスを端末装置に通知する名前解決ステップと、前記端末装置が、前記ＤＮＳサーバから通知されてきたＩＰアドレスに前記パケットを送信する送信ステップと、を備え、前記名前解決ステップでは、前記名前解決ができない場合、又は、前記名前解決結果が無効なＩＰアドレスである場合、前記名前解決結果として、前記端末装置からパケットが送信されてきた場合に当該パケットに関する情報を記録する検証サーバのＩＰアドレスを前記端末装置に通知するものである。
【００１１】
本発明の第３の態様に係るＤＮＳサーバは、端末装置からの名前解決要求に応じて、ホスト名からＩＰアドレスへの名前解決をするＤＮＳサーバであって、前記名前解決ができない場合、又は、前記名前解決の結果が無効なＩＰアドレスである場合、名前解決結果として、前記端末装置からパケットが送信されてきた場合に当該パケットに関する情報を記録する検証サーバのＩＰアドレスを前記端末装置に通知するものである。
【００１２】
本発明の第４の態様に係る名前解決プログラムは、端末装置からの名前解決要求に応じて、ホスト名からＩＰアドレスへの名前解決をするための名前解決プログラムであって、前記名前解決ができない場合、又は、前記名前解決の結果が無効なＩＰアドレスである場合、名前解決結果として、前記端末装置からパケットが送信されてきた場合に当該パケットに関する情報を記録する検証サーバのＩＰアドレスを前記端末装置に通知する処理をＤＮＳサーバに実行させるものである。
【発明の効果】
【００１３】
上述した本発明の各態様によれば、簡易な構成でマルウェアを検知し、その動作を記録することができるマルウェア検知システム、マルウェア検知方法、ＤＮＳサーバ、及び名前解決プログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態に係るマルウェア検知システムの構成図である。
【図２】実施形態に係る偽装ＤＮＳサーバの構成図である。
【図３】実施形態に係る検証サーバの図である。
【図４】実施形態に係る偽装ＤＮＳサーバの動作を示すフローチャートである。
【図５】実施形態に係る検証サーバの動作を示すフローチャートである。
【図６】実施形態に係るマルウェア検知システムの概略構成図である。
【発明を実施するための形態】
【００１５】
＜発明の実施形態＞
以下に図面を参照しながら、本発明の好適な実施形態について説明する。以下の実施形態に示す具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項等については、適宜、省略及び簡略化がなされている。
【００１６】
まず、図面を参照して、本発明の実施形態に係るマルウェア検知システム１の構成について説明する。図１に示すように、マルウェア検知システム１は、端末装置１０と、偽装ＤＮＳサーバ２０と、正規ＤＮＳサーバ３０と、検証サーバ４０と、プロキシサーバ５０と、ＦＷ（ファイアウォール）６０とを含む。
【００１７】
インターネット７０と、イントラネット８０と、ＤＭＺ（ＤｅＭｉｌｉｔａｒｉｚｅｄ  Ｚｏｎｅ、非武装地帯）９０は、ＦＷ６０を介して相互に接続されている。イントラネット８０は、端末装置１０を含む。ＤＭＺ９０は、偽装ＤＮＳサーバ２０と、正規ＤＮＳサーバ３０と、検証サーバ４０と、プロキシサーバ５０とを含む。
【００１８】
端末装置１０は、パケットを送信する場合に、そのパケットの送信先のホスト名（サーバ名）に対するＩＰアドレスを問い合わせる情報となる名前解決要求（正引き名前解決要求）を偽装ＤＮＳサーバ２０に送信する。端末装置１０は、名前解決要求に応じて導き出されたＩＰアドレスを示す情報である名前解決結果を偽装ＤＮＳサーバ２０から受信し、そのＩＰアドレスにパケットを送信する。また、端末装置１０は、ＩＰアドレスに対するホスト名を問い合わせる名前解決要求（逆引き名前解決要求）を偽装ＤＮＳサーバ２０に送信する場合もある。名前解決要求は、ＤＮＳクエリとも言われる。ここで、端末装置１０は、例えば、ＰＣ（Personal Computer）である。なお、図１では、端末装置１０を１つだけ図示しているが、マルウェア検知システム１が複数の端末装置１０を有していてもよいことは言うまでもない。
【００１９】
偽装ＤＮＳサーバ２０は、イントラネット８０内の端末装置１０からの正引き名前解決要求、及び、逆引き名前解決要求を正規ＤＮＳサーバ３０へ中継する。偽装ＤＮＳサーバ２０は、正規ＤＮＳサーバ３０から送信された名前解決結果を端末装置１０に送信する。すなわち、偽装ＤＮＳサーバ２０は、正規ＤＮＳサーバ３０による名前解決によって導き出されたＩＰアドレス又はホスト名を端末装置１０に通知する。
【００２０】
ここで、偽装ＤＮＳサーバ２０は、正規ＤＮＳサーバ３０から名前解決結果として、名前解決できない旨、又は、無効なＩＰアドレスを示す名前解決結果が送信されてきた場合には、その名前解決結果に代えて検証サーバ４０のＩＰアドレスを示す名前解決結果を生成し、端末装置１０に送信する。
【００２１】
ここで、名前解決できない旨は、例えば、正規ＤＮＳサーバ３０（及びその上位のＤＮＳサーバ）において名前解決が要求されたホスト名に対応するエントリが存在していない場合、及び、名前解決が要求されたホスト名に対応するエントリが存在するが、そのエントリにＩＰアドレスが登録されていない場合に、正規ＤＮＳサーバ３０から通知される。ここで、エントリとは、ホスト名と、そのホスト名のホスト（サーバ）のＩＰアドレスとが対応付られた情報である。正規ＤＮＳサーバ３０は、正規ＤＮＳサーバ３０が有する記憶装置に、複数のエントリを有するマップ情報を保持している。このマップ情報は、一般的にはテーブルと呼ばれることがある。正規ＤＮＳサーバ３０は、このマップ情報に基づいて、ホスト名とＩＰアドレスの一方から他方を導き出す。なお、記憶装置は、例えば、メモリ又はハードディスク等である。
【００２２】
また、無効なＩＰアドレスは、名前解決が要求されたホスト名に対応するエントリが存在するが、そのエントリにローカルアドレス（プライベートアドレス）等が登録されている場合に、正規ＤＮＳサーバ３０から通知される。すなわち、無効なＩＰアドレスは、例えば、ローカルアドレス（プライベートアドレス）及びループバックアドレス等のグローバルでないＩＰアドレスである。
【００２３】
正規ＤＮＳサーバ３０は、インターネット７０上に配置されたサーバのホスト名に対するＩＰアドレスを解決する。すなわち、正規ＤＮＳサーバ３０は、偽装ＤＮＳサーバ２０から送信された正引き名前解決要求に応じて、ホスト名に対するＩＰアドレスを導き出し、そのＩＰアドレスを示す名前解決結果を偽装ＤＮＳサーバ２０に送信する。また、正規ＤＮＳサーバ３０は、偽装ＤＮＳサーバ２０から送信された逆引き名前解決要求に応じて、ＩＰアドレスに対するホスト名を導き出し、そのホスト名を示す名前解決結果を偽装ＤＮＳサーバ２０に送信する。なお、正規ＤＮＳサーバ３０は、自身に保持するマップ情報に名前解決要求に対する回答が無い場合には、さらに上位のＤＮＳサーバに対して名前解決要求を行うことになるが、それは周知の技術であるため詳細な説明は省略する。また、正規ＤＮＳサーバ３０は、名前解決できない場合には、その旨を示す情報を偽装ＤＮＳサーバ２０に送信する。
【００２４】
検証サーバ４０は、プロキシサーバ５０を経由して端末装置１０から送信されたパケットを受信し、そのパケットの解析・記録を行う。また、検証サーバ４０は、パケットの内容に応じて端末装置１０へ応答となるパケットを送信する。
【００２５】
プロキシサーバ５０は、イントラネット８０内の端末装置１０からインターネット７０に向かって送信されたパケットをそのまま転送せずに一旦終端し、中継する。プロキシサーバ５０は、端末装置１０から送信されたパケットを中継する際に、パケットのヘッダが示す送信元ＩＰアドレスを端末装置１０のＩＰアドレスからプロキシサーバ５０のＩＰアドレスに書き換える。これにより、イントラネット８０の外部に対して、パケットの送信元となる端末装置１０を隠蔽する。ここで、プロキシサーバ５０は、イントラネット８０内の端末装置１０から検証サーバ４０に送信されるパケットを中継する場合には、そのパケットに送信元となる端末装置１０のＩＰアドレスを示す情報を含める。例えば、プロキシサーバ５０は、端末装置１０のＩＰアドレスをパケットのヘッダのＸ−Ｆｏｒｗａｒｄｅｄ−Ｆｏｒへ書き込む。Ｘ−Ｆｏｒｗａｒｄｅｄ−Ｆｏｒは、パケットのヘッダのフィールドの１つである。これにより、パケットのヘッダが示す送信元の端末装置１０のＩＰアドレスを、プロキシサーバ５０のＩＰアドレスに書き換える場合であっても、書き換え前の端末装置１０のＩＰアドレスをパケットに保持することが可能である。
【００２６】
ＦＷ６０は、インターネット７０、イントラネット８０、ＤＭＺ９０の境界に配置される。ＦＷ６０は、例えば、インターネット７０からＤＭＺ９０を介してイントラネット８０に送信されるパケットを所定のルールでフィルタリングすることで、イントラネット８０に対する不正アクセスを防止する。
【００２７】
イントラネット８０内の端末装置１０に対する攻撃者が、マルウェアに対応するＣ＆Ｃサーバを準備完了していない場合には、マルウェアに感染した端末装置１０がＣ＆Ｃサーバに対してパケットを送信するためにＣ＆Ｃサーバの名前解決を要求したとしても、名前解決できない又は名前解決されたとしても名前解決結果として無効なＩＰアドレスが得られることになる。これに対して、上述した構成によれば、そのような場合に、偽装ＤＮＳサーバ２０から端末装置１０に対して名前解決結果として、検証サーバ４０のＩＰアドレスを通知することができる。よって、マルウェアによる検証サーバ４０に対する通信を発生させることが可能となり、マルウェアを検知し、その動作を検証サーバ４０で記録することが可能となる。
【００２８】
なお、本実施形態において、マルウェアとは、自律的なプログラムであって、単なるＥｘｐｌｏｉｔやＰｏｒｔ／Ａｄｄｒｅｓｓ  Ｓｃａｎ等のコマンドではない。マルウェアは、例えば、Ｗｉｎｄｏｗｓ（登録商標）系であればサービス等の常駐プログラムとして、ＵＮＩＸ（登録商標）系であればｄａｅｍｏｎ的に常駐して、何らかの契機によって外部への通信を行うものをいう。
【００２９】
続いて、図面を参照して、本発明の実施形態に係る偽装ＤＮＳサーバ２０の構成について説明する。図２に示すように、偽装ＤＮＳサーバ２０は、パケット送受信部２１と、アドレス管理部２２と、アドレス判定部２３と、一時アドレス記憶部２４とを有する。
【００３０】
パケット送受信部２１は、イントラネット８０内の端末装置１０から送信された名前解決要求を受信する。パケット送受信部２１は、受信した名前解決要求をアドレス管理部２２に出力する。また、パケット送受信部２１は、名前解決要求に対する名前解決結果を、その名前解決要求の送信元となる端末装置１０に送信する。
【００３１】
アドレス管理部２２は、パケット送受信部２１から出力された名前解決要求について、その問い合わせ内容と、その問い合わせ元とを管理する。具体的には、アドレス管理部２２は、問い合わせ元となる端末装置１０のＩＰアドレスと、問い合わせ内容とを対応付けて示す情報を一時アドレス記憶部２４に格納する。なお、管理とは、情報を一時アドレス記憶部２４に登録したり、登録した情報を一時アドレス記憶部２４から読み出して出力したりすることをいう。一時アドレス記憶部２４は、上記の情報を格納可能な記憶装置を少なくとも１つ含む。記憶装置は、例えば、メモリ及びハードディスク等である。
【００３２】
また、アドレス管理部２２は、端末装置１０からの名前解決要求の受信に応じて、正規ＤＮＳサーバ３０を用いて、ホスト名に対応するＩＰアドレスを取得する。すなわち、アドレス管理部２２は、パケット送受信部２１によって、名前解決要求を正規ＤＮＳサーバ３０に送信する。アドレス管理部２２は、名前解決要求に応じて正規ＤＮＳサーバ３０から送信され、パケット送受信部２１によって受信された名前解決結果を取得する。アドレス管理部２２は、取得した名前解決結果を問い合わせ元の端末装置１０に送信する。アドレス管理部２２は、この問い合わせ元となる端末装置１０を一時アドレス記憶部２４に格納した情報に基づいて特定する。すなわち、アドレス管理部２２は、ある問い合わせ内容について、正規ＤＮＳサーバ３０から名前解決結果を受信した場合、その問い合わせ内容に対応する問い合わせ元を名前解決結果の送信先として特定する。
【００３３】
また、アドレス管理部２２は、正規ＤＮＳサーバ３０による名前解決結果に応じて検証サーバ４０のＩＰアドレスを示す名前解決結果を端末装置１０に送信する。すなわち、アドレス管理部２２は、正規ＤＮＳサーバ３０による名前解決結果に応じて、検証サーバ４０のＩＰアドレスか、正規ＤＮＳサーバ３０から取得した正規のＩＰアドレスのいずれかを名前解決結果として選択する機能を有する。上述したように、アドレス管理部２２は、名前解決ができない場合、及び、名前解決されたが名前解決結果が無効なＩＰアドレスである場合、検証サーバ４０のＩＰアドレスを選択する。なお、アドレス管理部２２は、名前解決結果が無効なＩＰアドレスであるか否かをアドレス判定部２３に判定させる。
【００３４】
一時アドレス記憶部２４は、上述したように、問い合わせ内容と、その問い合わせ元とを一時的に格納される。よって、アドレス管理部２２は、問い合わせ元に、問い合わせ内容に対する名前解決結果を返した場合、その問い合わせ内容と問い合わせ元とを対応付けた情報を一時アドレス記憶部２４から削除する。
【００３５】
また、一時アドレス記憶部２４は、少なくとも１つの無効なＩＰアドレスを示す無効アドレス情報と、検証サーバ４０のＩＰアドレスを示す検証サーバアドレス情報とが予め格納されている。無効アドレス情報が示す無効なＩＰアドレスは、例えば、上述したようにグローバルでないＩＰアドレスとある。
【００３６】
アドレス判定部２３は、一時アドレス記憶部２４に格納された無効アドレス情報を参照し、正規ＤＮＳサーバ３０からの名前解決結果が示すＩＰアドレスの有効性を判定する。すなわち、アドレス判定部２３は、名前解決結果が示すＩＰアドレスが、無効アドレス情報が示す無効なＩＰアドレスのいずれかに該当する場合、その名前解決結果が示すＩＰアドレスは無効なＩＰアドレスであると判定する。アドレス管理部２２は、アドレス判定部２３によって名前解決結果が示すＩＰアドレスが無効なＩＰアドレスであると判定された場合、一時アドレス記憶部２４に格納された検証サーバアドレス情報に基づいて、検証サーバ４０のＩＰアドレスを示す名前解決結果を生成する。なお、名前解決ができない場合も同様である。このようにして、名前解決によってＩＰアドレスが導き出された場合だっても、それが無効なＩＰアドレスである場合には、検証サーバ４０のＩＰアドレスを問い合わせ元の端末装置１０に返すことを可能としている。
【００３７】
ここで、一時アドレス記憶部２４は、正規ＤＮＳサーバ３０と同様にマップ情報が格納されるようにしてもよい。そして、アドレス管理部２２は、そのマップ情報に基づいて名前解決を試み、名前解決できた場合には、正規ＤＮＳサーバ３０に問い合わせはせずに、導き出されたＩＰアドレスを示す名前解決結果を端末装置１０に送信するようにしてもよい。言い換えると、アドレス管理部２２は、名前解決できなかった場合のみに、上位装置となる正規ＤＮＳサーバ３０に問い合わせを行うようにしてもよい。ここで、偽装ＤＮＳサーバ２０の一時アドレス記憶部２４に格納されるマップ情報と、正規ＤＮＳサーバ３０に格納されるマップ情報の各エントリは、一定時間だけ保持されるようにし、登録から一定時間経過した場合には削除されるようにしてもよい。
【００３８】
偽装ＤＮＳサーバ２０に含まれる各部２１〜２３の動作を具体的に説明する。パケット送受信部２１は、端末装置１０から名前解決要求のパケットを受信し、アドレス管理部２２に出力する。そして、アドレス管理部２２は、名前解決した場合、名前解決結果をパケット送受信部２１に出力する。パケット送受信部２１は、アドレス管理部２２から出力された名前解決結果のパケットを端末装置１０に送信する。
【００３９】
アドレス管理部２２は、端末装置１０からの名前解決要求をパケット送受信部２１から取得し、パケット送受信部２１を介して正規ＤＮＳサーバ３０に中継する。正規ＤＮＳサーバ３０から名前解決結果を受信した場合、アドレス管理部２２は、アドレス判定部２３へ名前解決結果が示すＩＰアドレスの有効性を問い合わせる。
【００４０】
アドレス管理部２２は、アドレス判定部２３によってＩＰアドレスが有効であると判定された場合には、そのＩＰアドレスを示す名前解決結果のパケットをパケット送受信部２１に出力する。アドレス管理部２２は、アドレス判定部２３によってＩＰアドレスが無効であると判定された場合には、偽装したＩＰアドレス（検証サーバ４０のＩＰアドレス）を示す名前解決結果のパケットをパケット送受信部２１に出力する。
【００４１】
また、このようＩＰアドレスが無効であると判定された場合には、アドレス管理部２２は、問い合わせられたホスト名と、検証サーバ４０のＩＰアドレスとが対応付られたエントリを一時アドレス記憶部２４に格納されたマップ情報に追加するようにしてもよい。これにより、再度、同一のホスト名について問い合わせが行われた偽装ＤＮＳサーバ２０のマップ情報に基づいて迅速に名前解決結果を返すことを可能とする。なお、このとき追加されるエントリにも、有効期限を設けるようにしてもよい。
【００４２】
アドレス判定部２３は、アドレス管理部２２からの要求に応じて、一時アドレス記憶部２４に格納されている無効アドレス情報を参照し、名前解決結果が示すＩＰアドレスが無効なＩＰアドレスか否かを判定する。名前解決結果が示すＩＰアドレスが無効なＩＰアドレスであると判定した場合、アドレス判定部２３は、ＩＰアドレスが無効であるとの判定結果をアドレス管理部２２に通知する。一方、名前解決結果が示すＩＰアドレスが無効なＩＰアドレスでないと判定した場合、アドレス判定部２３は、ＩＰアドレスが有効であるとの判定結果をアドレス管理部２２に通知する。
【００４３】
続いて、図面を参照して、本発明の実施形態に係る検証サーバ４０の構成について説明する。図３に示すように、検証サーバ４０は、パケット送受信部４１と、接続元解析部４２と、応答生成部４３と、接続元記憶部４４とを有する。
【００４４】
パケット送受信部４１は、イントラネット８０内の端末装置１０からプロキシサーバ５０を介して送信されたパケットを受信する。パケット送受信部４１は、受信したパケットを接続元解析部４２と応答生成部４３に出力する。また、パケット送受信部４１は、受信したパケットの応答となるパケットを端末装置１０に送信する。
【００４５】
接続元解析部４２は、パケット送受信部４１から出力されたパケットを解析し、送信元の端末装置１０のＩＰアドレスと、そのパケットの内容（パケットのデータ部の内容）とを抽出し、接続元記憶部４４に格納する。なお、接続元解析部４２は、送信元の端末装置１０のＩＰアドレスを、パケットのヘッダ部のＸ−Ｆｏｒｗａｒｄｅｄ−Ｆｏｒから抽出する。
【００４６】
応答生成部４３は、パケット送受信部４１から出力されたパケットの内容に応じて、その応答となるパケットを生成し、パケット送受信部４１に出力する。これにより、パケット送受信部４１は、応答生成部４３から出力されたパケットを、プロキシサーバ５０を介して送信元の端末装置１０に送信する。
【００４７】
続いて、図面を参照して、偽装ＤＮＳサーバ２０の動作（正引き処理要求に対する処理）について説明する。図４は、偽装ＤＮＳサーバ２０の動作（正引き処理要求に対する処理）を示すフローチャートである。
【００４８】
パケット送受信部２１は、名前解決要求のパケットを受信した場合、受信した名前解決要求をアドレス管理部２２に出力する。アドレス管理部２２は、パケット送受信部２１から出力された名前解決要求が正引き名前解決要求である場合、正引き処理を実行する（Ｓ１０１）。すなわち、アドレス管理部２２は、パケット送受信部２１によって、正規ＤＮＳサーバ３０に名前解決要求を送信する。
【００４９】
正規ＤＮＳサーバ３０から名前解決結果としてＩＰアドレスが通知された場合（Ｓ１０２でＹｅｓ）、アドレス管理部２２は、アドレス判定部２３に対し、名前解決により得られたＩＰアドレスの有効性の確認を要求する。アドレス判定部２３は、一時アドレス記憶部２４に格納されている無効アドレス情報に基づいてＩＰアドレスの有効性を判定する（Ｓ１０３）。そして、アドレス判定部２３は、判定結果を示す情報をアドレス管理部２２に出力する。
【００５０】
アドレス判定部２３による判定結果がＩＰアドレスが有効であることを示している場合（Ｓ１０４でＹｅｓ）、アドレス管理部２２は、そのＩＰアドレスを名前解決要求に対して応答するＩＰアドレスとして決定する（Ｓ１０５）。そして、アドレス管理部２２は、そのＩＰアドレスを示す名前解決結果のパケットを作成して（Ｓ１０６）、パケット送受信部２１に出力する。パケット送受信部２１は、アドレス管理部２２から出力された名前解決結果のパケットを、名前解決要求の送信元に送信する（Ｓ１０７）。
【００５１】
正規ＤＮＳサーバ３０から名前解決結果として名前解決できない旨が通知された場合（Ｓ１０２でＮｏ）、及び、アドレス判定部２３による判定結果がＩＰアドレスが無効であることを示している場合（Ｓ１０４でＮｏ）、アドレス管理部２２は、検証サーバ４０のアドレスを名前解決要求に対して応答するＩＰアドレスとして決定する（Ｓ１０８）。そして、アドレス管理部２２は、そのＩＰアドレスを示す名前解決結果のパケットを作成して（Ｓ１０６）、パケット送受信部２１に出力する。パケット送受信部２１は、アドレス管理部２２から出力された名前解決結果のパケットを、名前解決要求の送信元に送信する（Ｓ１０７）。
【００５２】
また、この場合、上述したように、アドレス管理部２２は、一時アドレス記憶部２４のマップ情報を更新する（Ｓ１０９）。すなわち、アドレス管理部２２は、名前解決要求で名前解決を要求されたホスト名と、検証サーバ４０のＩＰアドレスとを対応付けたエントリをマップ情報に追加する。なお、この場合、厳密には、上記Ｓ１０３において、一時アドレス記憶部２４に格納されたマップ情報を参照して、名前解決できない場合に、正規ＤＮＳサーバ２０に対して名前解決が要求されることになる。また、アドレス管理部２２は、一時アドレス記憶部２４に登録されたマップ情報の参照時には、適宜エントリの有効期限も確認する。有効期限を経過したエントリについては、削除あるいは登録されていないものとして処理が行われる。なお、ここでの処理では、一時アドレス記憶部２４にマップ情報が格納される場合について説明したが、上述したように、一時アドレス記憶部２４にマップ情報が格納されない形態として実施することも可能である。
【００５３】
続いて、図面を参照して、検証サーバ４０の動作（通信要求受信後の処理）について説明する。図５は、検証サーバ４０の動作（通信要求受信後の処理）を示すフローチャートである。
【００５４】
パケット送受信部３１は、イントラネット８０内の端末装置１０からプロキシサーバ５０を介して送信されたパケットを受信する。パケット送受信部４１は、受信したパケットを接続元解析部４２と応答生成部４３に出力する。接続元解析部３２は、パケット送受信部４１から出力されたパケットを解析し、送信元の端末装置１０のＩＰアドレス（Ｘ−Ｆｏｒｗａｒｄｅｄ−Ｆｏｒの内容）と、そのパケットの内容（データ部の内容）とを抽出し、それらを対応付けて接続元記憶部４４に格納する（Ｓ２０１）。
【００５５】
応答生成部３３は、パケット送受信部４１から出力されたパケットの内容に応じて、その応答となるパケットを作成する（Ｓ２０２）。
【００５６】
パケット送受信部３１は、応答生成部３３によって生成されたパケットを、プロキシサーバ５０を介して送信元の端末装置１０に送信する（Ｓ２０３）。
【００５７】
なお、本実施形態において、アドレス管理部２２が正規ＤＮＳサーバ３０から逆引き処理の結果を受信した際に、アドレス判定部２３を利用して、無効なＩＰアドレスから導き出されたホスト名については、その時点で、そのホスト名に関する正引き名前解決要求に対して検証サーバ４０のＩＰアドレスを返却できるようにしてもよい。具体的には、アドレス管理部２２は、端末装置１０から受信した逆引き名前解決要求で名前解決が要求されるＩＰアドレスが無効なＩＰアドレスであるか否かをアドレス判定部２３に判定させる。そして、名前解決が要求されるＩＰアドレスが無効なＩＰアドレスであると判定された場合、ＩＰアドレス管理部２２は、その逆引き名前解決要求について正規ＤＮＳサーバ３０によって導き出されたホスト名と、検証サーバ４０のＩＰアドレスとを対応付けたエントリを一時アドレス記憶部２４のマップ情報に追加するようにしてもよい。これによれば、正引き名前解決要求の結果の正当性を確認するために、それに先立って逆引き名前解決要求をするタイプのマルウェアに対して、正引き名前解決要求がされた場合に迅速に検証サーバ４０のＩＰアドレスを返却することが可能となる。
【００５８】
また、マルウェア検知システム１において複数の検証サーバ４０を有するようにしてもよい。そして、アドレス管理部２２は、名前解決要求で名前解決が要求されるホスト名に応じて、異なる検証サーバ４０のＩＰアドレスを端末装置１０に通知するようにしてもよく、名前解決要求を送信してきた端末装置１０に応じて、異なる検証サーバ４０のＩＰアドレスを通知するようにしてもよい。
【００５９】
すなわち、複数の検証サーバ４０のそれぞれに、予め少なくとも１つのホスト名を対応付けておき、アドレス管理部２２は、名前解決要求で名前解決が要求されるホスト名に対応する検証サーバ４０のＩＰアドレスを名前解決結果として端末装置１０に通知するようにしてもよい。なお、ホスト名と、それに対応する検証サーバ４０のＩＰアドレスとを対応付けた情報を一時アドレス記憶部２４に予め格納しておき、アドレス管理部２２がその情報を参照することで、ホスト名に対応する検証サーバ４０のＩＰアドレスを特定可能とすればよい。これによれば、複数のマルウェアが１つの端末装置１０内に存在する場合であっても、検証サーバ４０の記録内容に基づいて、それぞれのマルウェアの傾向を分析しやすくなる。
【００６０】
また、複数の検証サーバ４０のそれぞれに、予め少なくとも１つの端末装置１０を対応付けておき、アドレス管理部２２は、名前解決要求の送信元の端末装置１０に対応する検証サーバ４０のＩＰアドレスを名前解決結果として端末装置１０に通知するようにしてもよい。なお、端末装置１０（のＩＰアドレス）と、それに対応する検証サーバ４０のＩＰアドレスとを対応付けた情報を一時アドレス記憶部２４に予め格納しておき、アドレス管理部２２がその情報を参照することで、端末装置１０（のＩＰアドレス）に対応する検証サーバ４０のＩＰアドレスを特定可能とすればよい。これによれば、同種のマルウェアが複数の端末装置１０内に存在する場合であっても、検証サーバ４０の記録内容に基づいて、マルウェアの傾向を分析しやすくなる。
【００６１】
以上に説明したように、本実施形態では、偽装ＤＮＳサーバ２０は、名前解決ができない場合、又は、名前解決結果が無効なＩＰアドレスである場合、名前解決結果として検証サーバ４０のＩＰアドレスを端末装置１０に通知するようにしている。これによれば、名前解決結果に応じて、偽装ＤＮＳサーバ２０においてＩＰアドレスを置き換えるだけという簡易な構成でマルウェアを検知することが可能となる。すなわち、本実施形態によれば、例えば、特許文献１に開示の技術のように、プロキシサーバまでもマルウェアを検知するための様々な処理を実装する必要がない。また、検証サーバ４０に送信されるパケットは、マルウェアによって送信されたものとなる。よって、検証サーバ４０においてマルウェアによって送信されたパケットに関する情報を記録する際に、パケットがマルウェアによって送信されたものであるか否かを切り分ける必要も無くなる。そのため、簡易な構成でマルウェアの動作を記録することができる。すなわち、本実施形態によれば、例えば、特許文献１に開示のプロキシサーバのように、エラー通知をする際にＤＮＳサーバに対して問い合わせてマルウェアによって送信されたパケットであるか否かを切り分ける必要もなくなる。
【００６２】
また、本実施形態によれば、上述したように、特許文献１に開示の技術のようにプロキシサーバに対して処理を変更・追加する必要がなくなる。よって、一般的なプロキシ環境でも利用することができる。
【００６３】
また、本実施形態によれば、偽装ＤＮＳサーバ２０を配置すればよく、上述したように、特許文献１に開示の技術のようにプロキシサーバに対して大幅に処理を変更・追加する必要がなくなる。よって、導入敷居の上がるネットワーク構成の変更が軽微（導入容易）である。
【００６４】
また、本実施形態では、プロキシサーバ５０は、端末装置１０から送信されたパケットを中継する際に、そのパケットのＸ−Ｆｏｒｗａｒｄｅｄ−Ｆｏｒに端末装置１０のＩＰアドレスを設定するようにしている。そして、検証サーバ４０は、端末装置１０から送信されたパケットのＸ−Ｆｏｒｗａｒｄｅｄ−Ｆｏｒに設定されたＩＰアドレスを接続元記憶部４４に格納するようにしている。これによれば、検証サーバ４０のアクセスログ（接続元記憶部４４の情報）を確認することで、マルウェアに感染した端末装置１０を特定することができる。また、このように、プロキシサーバ５０における既存の技術を流用することで、よりネットワーク構成の変更を軽微としつつ、マルウェアの動作を記録することを可能としている。
【００６５】
また、上述したように、異なる検証サーバ４０のＩＰアドレスを端末装置１０に通知するようにした場合には、マルウェアからの通信を特定の検証サーバ４０へ誘導することで、検証サーバ４０での記録内容に基づいた分析を容易とすることができる。
【００６６】
＜発明の実施形態の概略構成＞
上述した本発明の実施の形態に係るマルウェア検知システム１は、次に説明する概略構成としても捉えることができる。図６は、本発明の実施形態に係るマルウェア検知システム１の概略構成となるマルウェア検知システム１００の構成図である。
【００６７】
図６に示すように、マルウェア検知システム１００は、端末装置１０１と、ＤＮＳサーバ１０２と、検証サーバ１０３とを有する。
【００６８】
端末装置１０１は、ネットワーク１１０のホスト（サーバ）に対してパケットを送信する場合に、そのパケットの送信先のホスト名からＩＰアドレスへの名前解決をＤＮＳサーバ１０２に要求する。端末装置１０１は、その要求に応じて名前解決結果としてＤＮＳサーバ１０２から通知されてきたＩＰアドレスにパケットを送信する。端末装置１０１は、端末装置１０に対応する。
【００６９】
ＤＮＳサーバ１０２は、端末装置１０１からの要求に応じて、ホスト名からＩＰアドレスへの名前解決をする。ＤＮＳサーバ１０２は、偽装ＤＮＳサーバ２０に対応する。
【００７０】
検証サーバ１０３は、端末装置１０１からパケットが送信されてきた場合に、そのパケットに関する情報を記録する。検証サーバ１０３は、検証サーバ４０に対応する。
【００７１】
ここで、ＤＮＳサーバ１０２は、名前解決ができない場合、又は、名前解決結果が無効なＩＰアドレスである場合、名前解決結果として検証サーバ１０３のＩＰアドレスを端末装置１０１に通知する。
【００７２】
これによれば、攻撃者がＣ＆Ｃサーバを準備完了する前に、端末装置１０のマルウェアから名前解決要求があった場合に、それを検知し、検証サーバ１０３に対するパケットの送信を発生させることができる。これによれば、名前解決結果に応じて、ＩＰアドレスを置き換えるという簡易な構成で、マルウェアを検知し、その動作を記録することが可能となる。
【００７３】
本発明の実施形態に係る偽装ＤＮＳサーバ２０と検証サーバ４０のそれぞれは、上述の実施形態の動作を実現するプログラムを、偽装ＤＮＳサーバ２０と検証サーバ４０のそれぞれが有するＣＰＵが実行することによって、構成することが可能であることは言うまでもない。
【００７４】
なお、上述のコンピュータ（偽装ＤＮＳサーバ２０、検証サーバ４０）が実行するプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００７５】
なお、本発明は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００７６】
１、１００  マルウェア検知システム
１０、１０１  端末装置
２０、１０２  偽装ＤＮＳサーバ
２１  パケット送受信部
２２  アドレス管理部
２３  アドレス判定部
２４  一時アドレス記憶部
３０  正規ＤＮＳサーバ
４０、１０３  検証サーバ
４１  パケット送受信部
４２  接続元解析部
４３  応答生成部
４４  接続元記憶部
５０  プロキシサーバ
６０  ファイアウォール（ＦＷ）
７０、１１０  ネットワーク
８０  イントラネット
９０  ＤＭＺ
【図１】
2015177434.tif 000003
【図２】
2015177434.tif 000004
【図３】
2015177434.tif 000005
【図４】
2015177434.tif 000006
【図５】
2015177434.tif 000007
【図６】
2015177434.tif 000008