(57)【要約】【課題】      マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出可能な新たな検出装置等を提供し、とくに、従来は検出が困難であった隠蔽化技術を持つマルウェアの検出をも可能とする検出装置等を提供する。【解決手段】  ネットワークシステム１は、通信端末３iにおいて実行されるプログラムの実行状況を検出する実行状況検出手段１１と、通信端末３iと外部ネットワーク９との通信状況を検出する通信状況検出手段１３と、実行状況検出手段１１が検出した実行状況及び通信状況検出手段１３が検出した通信状況に基づいて、通信端末３iにおいて実行されたプログラムがマルウェアか否かを判断する判断手段１７を備える。【選択図】  図１
2009271686.tif 000002
【特許請求の範囲】
【請求項１】
通信端末と前記通信端末に存在するマルウェアを検出するマルウェア検出装置を含むネットワークシステムであって、
前記通信端末において実行されるプログラムの実行状況を検出する実行状況検出手段と、
前記通信端末と外部ネットワークとの通信状況を検出する通信状況検出手段と、
前記実行状況検出手段が検出した実行状況及び前記通信状況検出手段が検出した通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、
を備えるネットワークシステム。
【請求項２】
所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出装置であって、
前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、
を備えるマルウェア検出装置。
【請求項３】
前記判断手段は、
前記通信端末においてあらかじめマルウェアでないと想定されるプログラムを識別するデータ、及び、前記プログラムが通信する通信先を表すデータを少なくとも示すホワイトリスト情報を保持するホワイトリスト記録手段と、
前記実行状況及び前記通信状況に共通に含まれる情報に基づいて、前記実行状況及び前記通信状況を統合して統合情報を生成する統合手段と、
前記統合情報と前記ホワイトリスト情報とを比較して前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、
を備える請求項２記載のマルウェア検出装置。
【請求項４】
前記実行状況及び前記通信状況は、それぞれ、複数のデータにより示され、
前記共通に含まれる情報は、送信元特定情報、送信先特定情報、プロトコルを少なくとも示すものである、
請求項３記載のマルウェア検出装置。
【請求項５】
前記実行状況を示すデータは通信発生時刻を示す情報を含み、
前記通信状況を示す各データは開始時刻を示す情報を含み、
前記統合手段は、前記実行状況を示すデータ及び前記通信状況を示すデータにおいて、前記送信元特定情報について共通するデータが２つ以上存在する場合、前記通信発生時刻と前記開始時刻の差の小さいものを関連付けて統合処理を行う、
請求項４記載のマルウェア検出装置。
【請求項６】
前記判断手段は、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項２から５のいずれかに記載のマルウェア検出装置。
【請求項７】
前記判断手段は、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応し、かつ、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとが一致しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項３から６のいずれかに記載のマルウェア検出装置。
【請求項８】
前記判断手段は、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータがプログラムを識別するデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項７記載のマルウェア検出装置。
【請求項９】
前記判断手段は、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータが通信先を表すデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項７又は８記載のマルウェア検出装置。
【請求項１０】
所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出方法であって、
判断手段が、前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断するステップ、
を含むマルウェア検出方法。
【請求項１１】
コンピュータを、請求項２から９のいずれかに記載のマルウェア検出装置として機能させるためのプログラム。
【請求項１２】
請求項１１記載のプログラムを記録する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、ネットワークシステム、マルウェア検出装置、マルウェア検出方法、プログラム及び記録媒体に関し、特に、通信端末と前記通信端末に存在するマルウェアを検出する検出装置を含むネットワークシステム等に関するものである。
【背景技術】
【０００２】
マルウェアは、例えば、ウィルスソフト、迷惑ソフト、スパイウェアなど、悪意のあるソフトウェアの総称である。
【０００３】
マルウェア対策として代表的なのは、マルウェア対策ソフトを用いたものである。これは、防御対象となるＰＣにマルウェア対策ソフトをインストールし、感染しようとするマルウェアを検知する手法である。マルウェア対策ソフトでは、実際に入手したマルウェア検体内の特徴的なパターンを抽出し生成したパターンファイルをＰＣに配布して、パターンをマッチングさせることでマルウェアの検出を行っている。またその他の技術として、特許文献１、特許文献２、特許文献３に記載されている手法が知られている。
【０００４】
【特許文献１】特開２００６−４０１９６号公報
【特許文献２】特開２００６−１２７４９７号公報
【特許文献３】特表２００６−５２２３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
マルウェアを製作するマルウェア作成者は、従来、愉快犯が多かった。
【０００６】
しかしながら、近年では、インターネットにおけるアンダーグラウンドビジネスが金銭目的化、組織化することにより、マルウェア作成者の技術力が高度化し、マルウェアの種類も爆発的増加している。例えば、マルウェアの種類は、従来は前年度比10％、20％増だったが、2008年は2倍となっており、2011年には10倍になるとも予想されている。また、マルウェア及びその開発環境が安価になったことや、オープンソースで入手できるようになったことも、マルウェアの急激な増加の一因である。このような背景からマルウェアが大量に発生すると、検体の入手が困難となり、マルウェアを検出するまでに、少なくとも数時間から数日を要する。
【０００７】
また、マルウェアの数が膨大になり検知できなくなるだけでなく、マルウェア対策ソフトの検知を逃れるための機能が実装される等、高度な技術を駆使したマルウェアが出現している。こういったマルウェアには、以下のような機能を持つものがある。
・マルウェア対策ソフトを停止/無効化する機能
・マルウェア対策ソフトのパターンファイル更新を止める機能
・マルウェアの実行ファイルやプロセスを隠蔽化する機能（オペレーティングシステムのカーネル内部に入り込んで実行コードやデータ領域を書き換えるrootkitといわれる機能を応用したもの）
【０００８】
こういったマルウェア対策ソフト対抗機能に対して、マルウェア対策ソフトにもそれらの対抗機能を検知する機能が開発されたりしているが、マルウェアもマルウェア対策ソフトもＯＳ上で動作するアプリケーションであり、お互いに出し抜く機能の開発に躍起になっており、根本的な解決には至っていない。
【０００９】
さらに、下記のように、ＯＳ上では動作しないマルウェアも出現しつつあり、これらに至っては、従来のマルウェア対策ソフトでは全く検知することはできない。
・ハードウェアの仮想化技術を利用して、ＯＳよりも下位層で動作するマルウェア
・ＰＣ内の各種ハードウェアに存在するファームウェアに感染するマルウェア
【００１０】
以上が従来のマルウェア対策ソフトの抱える問題点である。なお、上記のようにマルウェア対策ソフトから検知されないように様々な工夫を行う技術を総称して、以下、隠蔽化技術という。
【００１１】
一方、特許文献１、特許文献２、特許文献３に示される技術は、端末において収集した各種情報を基に分析し、マルウェアの検知を行うものである。これらの検知技術も、マルウェア対策ソフトと同様にＯＳ上で動作するロジックであり、マルウェア対策ソフトと同様の課題を持つ。
【００１２】
このような理由から、マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出することは困難となりつつある。そのため、現在、マルウェアによる被害は拡大し、深刻化している。
【００１３】
ゆえに、本願発明の目的は、マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出可能な新たな検出装置等を提供し、とくに、従来は検出が困難であった隠蔽化技術を持つマルウェアの検出をも可能とする検出装置等を提供することである。
【課題を解決するための手段】
【００１４】
請求項１に係る発明は、通信端末と前記通信端末に存在するマルウェアを検出するマルウェア検出装置を含むネットワークシステムであって、前記通信端末において実行されるプログラムの実行状況を検出する実行状況検出手段と、前記通信端末と外部ネットワークとの通信状況を検出する通信状況検出手段と、前記実行状況検出手段が検出した実行状況及び前記通信状況検出手段が検出した通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、を備えるものである。
【００１５】
請求項２に係る発明は、所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出装置であって、前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、を備えるものである。
【００１６】
請求項３に係る発明は、請求項２記載のマルウェア検出装置であって、前記判断手段は、前記通信端末においてあらかじめマルウェアでないと想定されるプログラムを識別するデータ、及び、前記プログラムが通信する通信先を表すデータを少なくとも示すホワイトリスト情報を保持するホワイトリスト記録手段と、前記実行状況及び前記通信状況に共通に含まれる情報に基づいて、前記実行状況及び前記通信状況を統合して統合情報を生成する統合手段と、前記統合情報と前記ホワイトリスト情報とを比較して前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、を備えるものである。
【００１７】
請求項４に係る発明は、請求項３記載のマルウェア検出装置であって、前記実行状況及び前記通信状況は、それぞれ、複数のデータにより示され、前記共通に含まれる情報は、送信元特定情報、送信先特定情報、プロトコルを少なくとも示すものである。
【００１８】
請求項５に係る発明は、請求項４記載のマルウェア検出装置であって、前記実行状況を示すデータは通信発生時刻を示す情報を含み、前記通信状況を示す各データは開始時刻を示す情報を含み、前記統合手段は、前記実行状況を示すデータ及び前記通信状況を示すデータにおいて、前記送信元特定情報について共通するデータが２つ以上存在する場合、前記通信発生時刻と前記開始時刻の差の小さいものを関連付けて統合処理を行うものである。
【００１９】
請求項６に係る発明は、請求項２から５のいずれかに記載のマルウェア検出装置であって、前記判断手段が、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【００２０】
請求項７に係る発明は、請求項３から６のいずれかに記載のマルウェア検出装置であって、前記判断手段が、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応し、かつ、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとが一致しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【００２１】
請求項８に係る発明は、請求項７記載のマルウェア検出装置であって、前記判断手段が、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータがプログラムを識別するデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【００２２】
請求項９に係る発明は、請求項７又は８記載のマルウェア検出装置であって、前記判断手段が、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータが通信先を表すデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【００２３】
請求項１０に係る発明は、所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出方法であって、判断手段が、前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断するステップ、を含むものである。
【００２４】
請求項１１に係る発明は、コンピュータを、請求項２から９のいずれかに記載のマルウェア検出装置として機能させるためのプログラムである。
【００２５】
請求項１２に係る発明は、請求項１１記載のプログラムを記録する記録媒体である。
【００２６】
なお、ホワイトリストは、ユーザーや管理者などが信頼できると判断したＵＲＬやＩＰアドレス、メールアドレスなどの一覧である。例えば、迷惑メール対策ソフトが備える「受信許可リスト」がホワイトリストに該当する。
【００２７】
また、送信元特定情報は、例えば、送信元ＩＰアドレスや送信元ポート番号などである。また、送信先特定情報は、例えば、送信先ＩＰアドレスや送信先ポート番号などである。
【発明の効果】
【００２８】
本願発明においては、所定のネットワークシステム内の各通信端末について、プログラムの実行状況、外部ネットワークとの通信状況、さらに、ホワイトリスト情報を参照してマルウェアの検出を行う。
【００２９】
従来技術であるマルウェア対策ソフトや、特許文献１、特許文献２、特許文献３に示される技術においては、通信端末において収集した各種情報を基に分析しマルウェアの検出を行う。しかし、本願発明においては、これらの情報に加え、通信端末と外部ネットワークとの通信に関する収集情報を加味したものを基に分析し、マルウェアの検出を行うことによって、従来は検出が困難であった隠蔽化技術を持つマルウェアの検出も可能となり、マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出することが可能となる。
【００３０】
マルウェアは、機能追加やバグフィックス等を行う際には、外部ネットワークとの通信によって新しいモジュールをダウンロードしたり外部の攻撃者と連携して動作するものが多く、また、隠蔽化技術を持つマルウェアであってもネットワーク上の通信そのものは隠蔽化できないという特性を有するため、本願発明は、隠蔽化技術を持つマルウェアの検出に、とくに有効である。なお、外部ネットワークとの通信を利用しないマルウェアは破壊型のマルウェアであり、データのバックアップ等の対策を行えばよく、情報漏洩等の深刻な被害を与えるものではないため大きな脅威とはならない。
【００３１】
また、マルウェアへの感染を１００％未然に防止することは非常に困難であるが、本願発明によれば、感染後の通信端末と外部ネットワークとの通信をチェックすることにより、感染後、速やかにマルウェアを検出することが可能となり、被害が拡大するのを素早く食い止めることが可能となる。
【００３２】
ところで、コンピュータの再起動によって送信元特定情報が新たに割り振られ、プログラムの実行状況を示すデータと外部ネットワークとの通信状況を示すデータを一意に関連付けることができないケースも考えられる。しかし、このような場合であっても、請求項５に係る発明によれば、時間に関するデータを用いることで、プログラムの実行状況を示すデータと外部ネットワークとの通信状況を示すデータの統合が可能となる。
【００３３】
また、本願発明に係る検出装置等と従来のマルウェア対策ソフトの併用により、マルウェア検出の実効性が一層高まることも考えられる。
【発明を実施するための最良の形態】
【００３４】
本願発明の実施の形態を以下に説明する。なお、本願発明は以下の実施の形態により限定されるものではない。
【実施例】
【００３５】
図１は、本願発明の実施の形態の一つであるネットワークシステムの概要の一例を示すブロック図である。
【００３６】
図１において、ネットワークシステム１内には、複数の通信端末３i（ｉ＝１、・・・、Ｎ）がある。各通信端末３iは、マルウェア検出装置５及びルーター７を介して、インターネットなどの外部ネットワーク９に接続されている。
【００３７】
また、各通信端末３iは、通信端末におけるプログラムの実行状況に関する情報を検出する実行状況検出部１１iを備える。実行状況検出部１１iは、図示を省略するが、各通信端末３iにおけるプログラムの実行により発生する通信情報やプロセス生成情報を含むプログラムの実行状況に関する情報をオペレーティングシステムより取得する実行状況取得部と、実行状況取得部が取得したプログラムの実行状況に関する情報をマルウェア検出装置５に送信する実行状況送信部を備える。
【００３８】
なお、実行状況検出部１１iは、通信端末におけるプログラムの実行状況に関する情報を検出するものであればよく、必ずしも通信端末３iのそれぞれに備えられるものでなくてもよい。
【００３９】
マルウェア検出装置５は、各通信端末３iと外部ネットワーク９との通信状況を検出する通信状況検出部１３により検出された通信状況、及び、実行状況検出部１１iにより検出された実行状況に対して処理を行うデータ処理部１５と、データ処理部１５における処理により生成されたリストに基づいて、各通信端末３iにおいて実行されたプログラムがマルウェアか否かを判断する判断部１７を備える。
【００４０】
通信状況検出部１３は、例えば、ネットワークタップによって取り出されたネットワーク上に流れるパケット情報等をミラーポート付きスイッチでミラーリングすることにより通信状況を取得する通信状況取得部と、通信状況取得部が取得した通信状況に関する情報をマルウェア検出装置５に送信する通信状況送信部を備えることにより実現する。
【００４１】
データ処理部１５及び判断部１７の処理について、図２も参照して具体的に説明する。図２は、本願発明の実施の形態の一つであるマルウェア検出装置において使用する各リストのデータ構造の一例を示す図である。
【００４２】
データ処理部１５は、通信状況検出部１３より受け取った通信状況に関する情報に基づいてリストを生成するネットワークフローリスト生成部１９と、ネットワークフローリスト生成部１９により生成されたリストを記憶するネットワークフローリスト記憶部２１を備える。また、データ処理部１５は、実行状況検出部１１iより受け取った各通信端末３iにおけるプログラムの実行状況に関する情報に基づいてリストを生成する端末フローリスト生成部２３と、端末フローリスト生成部２３により生成されたリストを記憶する端末フローリスト記憶部２５を備える。
【００４３】
図２に示すように、ネットワークフローリスト生成部１９により生成されたネットワークフローリスト３５は、ネットワークフローＩＤ、開始時刻、終了時刻、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号、プロトコルを示すデータを持つ。端末フローリスト生成部２３により生成された端末フローリスト３７は、通信発生時刻、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号、プロトコル、プロセスＩＤ、プロセス名、プログラム識別子を示すデータを持つ。
【００４４】
判断部１７は、ネットワークフローリスト記憶部２１に記憶されたネットワークフローリスト３５と端末フローリスト記憶部２５に記憶された端末フローリスト３７を統合することによってプログラムフローリスト３９を生成する、プログラムフローリスト生成部２７と、生成されたプログラムフローリスト３９を記憶するプログラムフローリスト記憶部２９を備える。また、判断部１７は、各通信端末３iにおいてあらかじめマルウェアでないと想定されるプログラムを識別するデータ、及び、前記プログラムが通信する通信先を表すデータを少なくとも示すホワイトリスト４１を記憶するホワイトリスト記憶部３１を備え、ネットワークフローリスト記憶部２１、端末フローリスト記憶部２５、プログラムフローリスト記憶部２９、ホワイトリスト記憶部３１のそれぞれに記憶されたリストに基づいて、各通信端末３iにおいて実行されたプログラムがマルウェアか否かを検出する検出部３３を備える。
【００４５】
プログラムフローリスト生成部２７では、ネットワークフローリスト３５と端末フローリスト３７のそれぞれが共通して持つ、何らかの関連付け可能な情報によって関連付けることにより、ネットワークフローリスト３５と端末フローリスト３７を統合し、プログラムフローリスト３９を生成する。例えば、図２に示すように、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号、プロトコルの５つを示すデータによって関連付ければ、高い精度によってプログラムフローリスト３９の生成が可能である。プログラムフローリスト３９は、ネットワークフローＩＤ、開始時刻、終了時刻、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号、プロトコル、プログラム識別子に関するデータを持つ。これらのデータはネットワークフローリスト３５と端末フローリスト３７のそれぞれから引き継いだデータである。また、ホワイトリスト４１は、プログラム識別子、送信先ＩＰアドレス、送信先ポート番号、プロトコルに関するデータを持つ。
【００４６】
データ処理部１５及び判断部１７の処理について、図３〜図１５も参照してさらに詳細に説明する。
【００４７】
まず、データ処理部１５で行われる処理の詳細について説明する。
【００４８】
図３は、図１のマルウェア検出装置５におけるデータ処理の一例を示すフロー図である。図３に示すように、ネットワークフローリスト生成部１９では、まず、通信状況検出部１３より受け取った通信状況を示すデータが、PACKETLISTテーブル４３に随時格納され、次に、PACKETLISTテーブル４３を基に、外部ネットワークと各通信端末３iの間の一方向通信を示すデータに関するTFLOW_S_1Mテーブル４５が生成され、最後に、TFLOW_S_1Mテーブル４５を基に、外部ネットワークと各通信端末３iの間の双方向通信を示すデータに関するTFLOW_D_1Mテーブル４７が生成される。TFLOW_D_1Mテーブル４７は、ネットワークフローリスト記憶部２１にて記憶される。
【００４９】
なお、図４は、図３のPACKETLISTテーブル４３に関するテーブル設計書を示す図である。図５（ａ）は、図３のTFLOW_S_1Mテーブル４５に関するテーブル設計書を示す図である。図５（ｂ）は、図３のTFLOW_D_1Mテーブル４７に関するテーブル設計書を示す図である。
【００５０】
また、図６は、図１のネットワークフローリスト生成部１９における第一の処理を実現するＳＱＬコードの一例を示す図である。図６に示すＳＱＬコードを用いれば、PACKETLISTテーブル４３を基にTFLOW_S_1Mテーブル４５を生成する処理が可能となる。
【００５１】
さらに、図７は、図１のネットワークフローリスト生成部１９における第二の処理を実現するＳＱＬコードの一例を示す図である。図７に示すＳＱＬコードを用いれば、TFLOW_S_1Mテーブル４５を基に、TFLOW_D_1Mテーブル４７を生成する処理が可能となる。
【００５２】
端末フローリスト生成部２３では、まず、実行状況検出部１１iより受け取ったプログラムの実行状況を示すデータのうち、通信情報がCPM_TUテーブル４９に、プロセス生成情報がCPM_Pテーブル５１に随時格納される。端末フローリスト生成部２３では、次に、CPM_Pテーブル５１を基にCPM_Pテーブル５１に含まれる各通信端末３iで実行されるプログラムを示すデータについての重複を省き、プログラムをユニークに特定するプログラム識別子を付与したPROGRAMLISTテーブル５３が生成される。次に、端末フローリスト生成部２３では、PROGRAMLISTテーブル５３とCPM_Pテーブル５１間をリンクし、それぞれのデータを参照可能なCPM_P_VIEWテーブル５５が生成される。最後に、端末フローリスト生成部２３では、CPM_TUテーブル４９とCPM_P_VIEWテーブル５５が何らかの関連付け可能な情報によって関連付けられ、端末フローリスト３７を示すCPDATAテーブル５７が生成される。例えば、通信端末ＩＤ、プロセスＩＤ、各通信端末３iの起動ごとに付される起動ＩＤを示すデータに基づいて関連付けを行うことによって、CPDATAテーブル５７の生成が可能である。CPDATAテーブル５７は、端末フローリスト記憶部２５にて記憶される。
【００５３】
なお、CPM_Pテーブル５１に含まれる各通信端末３iで実行されるプログラムを示すデータについて重複が存在するのは、各通信端末３iにおけるプログラムの実行について、同一のプログラムであっても各通信端末３iを起動するごとに異なるＩＤが割り振られることにより、１つのプログラムが複数のプログラムＩＤを持つことになるためである。
【００５４】
また、図８（ａ）は、図３のCPM_TUテーブル４９に関するテーブル設計書を示す図である。図８（ｂ）は、図３のCPM_Pテーブル５１に関するテーブル設計書を示す図である。図９（ａ）は、図３のPROGRAMLISTテーブル５３に関するテーブル設計書を示す図である。図９（ｂ）は、図３のCPDATAテーブル５７に関するテーブル設計書を示す図である。（CPM_P_VIEWテーブル５５に関しては、PROGRAMLISTテーブル５３とCPM_Pテーブル５１のデータを参照するものであって実体を有しないためテーブル設計図は省略する。）
【００５５】
さらに、図１０は、図１の端末フローリスト生成部２３における第一の処理を実現するＳＱＬコードの一例を示す図である。図１０に示すＳＱＬコードを用いれば、CPM_Pテーブル５１を基に、PROGRAMLISTテーブル５３を生成する処理が可能となる。
【００５６】
さらに、図１１は、図１の端末フローリスト生成部２３における第二の処理を実現するＳＱＬコードの一例を示す図である。図１１に示すＳＱＬコードを用いれば、CPM_TUテーブル４９、CPM_Pテーブル５１、PROGRAMLISTテーブル５３を基に、CPDATAテーブル５７を生成する処理が可能となる。
【００５７】
次に、判断部１７で行われる処理の詳細について説明する。
【００５８】
プログラムフローリスト生成部２７では、まず、ネットワークフローリスト記憶部２１に記憶されたTFLOW_D_1Mテーブル４７と端末フローリスト記憶部２５に記憶されたCPDATAテーブル５７が、前記のような何らかの関連付け可能な情報によって関連付けられ、プログラムフローリスト３９を示すTFLOW_D_1Mテーブル５９が生成される。このTFLOW_D_1Mテーブル５９は、TFLOW_D_1Mテーブル４７にCPDATAテーブル５７の有するIDを付与したものであり、テーブル設計図は図５（ｂ）と同様である。TFLOW_D_1Mテーブル５９は、プログラムフローリスト記憶部２９にて記憶される。
【００５９】
なお、ネットワークフローリスト３５を示すTFLOW_D_1Mテーブル４７と端末フローリスト３７を示すCPDATAテーブル５７のそれぞれに、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号、プロトコルを示す同一のデータが複数存在する場合がある。例えば、コンピュータの再起動によって、送信元ポート番号が新たに割り振られるような場合である。この場合、プログラムフローリスト生成部２７において、これら５つのデータによる関連付けだけではTFLOW_D_1Mテーブル４７とCPDATAテーブル５７に含まれるデータを一意に関連付けることができず、統合処理が行えない。しかし、これら５つのデータによる関連付けに加えて、TFLOW_D_1Mテーブル４７に含まれる開始時刻を示すデータと、CPDATAテーブル５７に含まれる通信発生時刻を示すデータを比較し、開始時刻を示すデータと通信発生時刻を示すデータの差の小さいものを関連付けることによって、このような場合でも統合処理が可能となる。
【００６０】
また、図１２は、図１のプログラムフローリスト生成部２７における処理を実現するＳＱＬコードの一例を示す図である。図１２に示すＳＱＬコードを用いれば、TFLOW_D_1Mテーブル４７とCPDATAテーブル５７を統合し、TFLOW_D_1Mテーブル５９を生成する処理が可能となる。
【００６１】
続いて、検出部３３での、各通信端末３iにおけるマルウェアの検出処理について具体的に説明する。図１３は、図１の検出部３３におけるマルウェア検出処理の一例を示すフロー図である。図１４（ａ）は、図１の検出部３３における第一の検出処理を実現するＳＱＬコードの一例を示す図であり、図１４（ｂ）は、図１の検出部３３における第二の検出処理を実現するＳＱＬコードの一例を示す図であり、図１４（ｃ）は、図１の検出部３３における第三の検出処理を実現するＳＱＬコードの一例を示す図であり、図１４（ｄ）は、図１の検出部３３における第四の検出処理を実現するＳＱＬコードの一例を示す図である。図１５は、図３のWHITELISTテーブル６１に関するテーブル設計書を示す図である。
【００６２】
図１３に示すように、検出部３３は、TFLOW_D_1Mテーブル５９に含まれるcpidデータがNULLの場合、すなわち、ネットワークフローリスト記憶部２１に記憶されるTFLOW_D_1Mテーブル４７に含まれるデータと、端末フローリスト記憶部２５に記憶されるCPDATAテーブル５７に含まれるデータとが一対一で対応しない場合、各通信端末３iにおいて実行されたプログラムがマルウェアであることを検出する（第一の検出処理）。例えば、隠蔽化技術を持ち、かつ、その正体を隠すマルウェアを検出する際に有効である。この第一の検出処理を用いれば、ソフトウェアだけでなく、ハードウェアに侵入するマルウェアの検出も可能となる。なお、図１４（ａ）に示すＳＱＬコードを用いれば、この第一の検出処理が可能となる。
【００６３】
検出部３３は、TFLOW_D_1Mテーブル５９に含まれるcpidデータがNULLでない場合、すなわち、ネットワークフローリスト記憶部２１に記憶されるTFLOW_D_1Mテーブル４７に含まれるデータと、端末フローリスト記憶部２５に記憶されるCPDATAテーブル５７に含まれるデータとが一対一で対応する場合であって、かつ、プログラムフローリスト記憶部２９に記憶されるTFLOW_D_1Mテーブル５９に含まれるデータと、ホワイトリスト記憶部３１に記憶されるWHITELISTテーブル６１に含まれるデータとが一致しない場合、各通信端末３iにおいて実行されたプログラムがマルウェアであることを検出する（第二の検出処理）。なお、図１４（ｂ）に示すＳＱＬコードを用いれば、この第二の検出処理が可能となる。
【００６４】
検出部３３は、第二の検出処理において、TFLOW_D_1Mテーブル５９に含まれるデータと、WHITELISTテーブル６１に含まれるデータとの間で一致しないデータがプログラムを識別するデータである場合、各通信端末３iにおいて実行されたプログラムがマルウェアであることを検出する（第三の検出処理）。例えば、隠蔽化技術を持たないマルウェアを検出する際に有効である。なお、図１４（ｃ）に示すＳＱＬコードを用いれば、この第三の検出処理が可能となる。
【００６５】
検出部３３は、第二の検出処理において、TFLOW_D_1Mテーブル５９に含まれるデータと、WHITELISTテーブル６１に含まれるデータとの間で一致しないデータがプログラムを識別するデータでない場合、すなわち、図５（ｂ）、図１５からも明らかなように、一致しないデータが通信先を表すデータである場合に、各通信端末３iにおいて実行されたプログラムがマルウェアであることを検出する（第四の検出処理）。例えば、隠蔽化技術を持ち、かつ、その正体を別のものとすりかえるマルウェアを検出する際に有効である。この第四の検出処理は、特定少数のサーバーと通信を行うプログラムについて特に有効である。なお、図１４（ｄ）に示すＳＱＬコードを用いれば、この第四の検出処理が可能となる。
【００６６】
なお、検出部３３にてマルウェアが検出されると、マルウェア検出装置５からマルウェアの検出された通信端末３iの最も近くに配置されるルーター等の通信装置へ、当該通信端末が行うすべての通信を遮断するよう指令を送ることによって、マルウェア感染後の被害の拡大を防ぐことができる。（図示は省略する。）
【００６７】
また、図１のマルウェア検出装置５において、図２のプログラムフローリスト３９に基づいて行った処理は、プログラムフローリスト３９に代えて、ネットワークフローリスト３５と端末フローリスト３７に基づいて処理を行うものであってもよい。
【００６８】
最後に、180個のマルウェア検体を対象として15日間のマルウェア検出測定実験を行った。ただし、検出までに8日以上を要する場合は、検出できたとしても、すでに被害が拡大している可能性が高いと考えられる。そのため、検体の入手から7日以内に検出したものに限り検出と認識するという条件の下で実験を行った。その結果、マルウェアの検出率は、大手マルウェア対策ソフトＡが85.6％、大手マルウェア対策ソフトＢが87.8％であるのに対し、図１のマルウェア検出装置５を用いた場合は100％であった。
【図面の簡単な説明】
【００６９】
【図１】本願発明の実施の形態の一つであるネットワークシステムの概要の一例を示すブロック図である。
【図２】図１のマルウェア検出装置５において使用する各リストのデータ構造の一例を示す図である。
【図３】図１のマルウェア検出装置５におけるデータ処理の一例を示すフロー図である。
【図４】図３のPACKETLISTテーブル４３に関するテーブル設計書を示す図である。
【図５】（ａ）は、図３のTFLOW_S_1Mテーブル４５に関するテーブル設計書を示す図であり、（ｂ）は、図３のTFLOW_D_1Mテーブル４７に関するテーブル設計書を示す図である。
【図６】図１のネットワークフローリスト生成部１９における第一の処理を実現するＳＱＬコードの一例を示す図である。
【図７】図１のネットワークフローリスト生成部１９における第二の処理を実現するＳＱＬコードの一例を示す図である。
【図８】（ａ）は、図３のCPM_TUテーブル４９に関するテーブル設計書を示す図であり、（ｂ）は、図３のCPM_Pテーブル５１に関するテーブル設計書を示す図である。
【図９】（ａ）は、図３のPROGRAMLISTテーブル５３に関するテーブル設計書を示す図であり、（ｂ）は、図３のCPDATAテーブル５７に関するテーブル設計書を示す図である。
【図１０】図１の端末フローリスト生成部２３における第一の処理を実現するＳＱＬコードの一例を示す図である。
【図１１】図１の端末フローリスト生成部２３における第二の処理を実現するＳＱＬコードの一例を示す図である。
【図１２】図１のプログラムフローリスト生成部２７における処理を実現するＳＱＬコードの一例を示す図である。
【図１３】図１の検出部３３におけるマルウェア検出処理の一例を示すフロー図である。
【図１４】（ａ）は、図１の検出部３３における第一の検出処理を実現するＳＱＬコードの一例を示す図であり、（ｂ）は、図１の検出部３３における第二の検出処理を実現するＳＱＬコードの一例を示す図であり、（ｃ）は、図１の検出部３３における第三の検出処理を実現するＳＱＬコードの一例を示す図であり、（ｄ）は、図１の検出部３３における第四の検出処理を実現するＳＱＬコードの一例を示す図である。
【図１５】図３のWHITELISTテーブル６１に関するテーブル設計書を示す図である。
【符号の説明】
【００７０】
１  ネットワークシステム、３  通信端末、５  マルウェア検出装置、１１  実行状況検出部、１３  通信状況検出部、１５  データ処理部、１７  判断部、１９  ネットワークフローリスト生成部、２３  端末フローリスト生成部、２７  プログラムフローリスト生成部、３３  検出部、４１  ホワイトリスト
【図１】
2009271686.tif 000003
【図３】
2009271686.tif 000004
【図６】
2009271686.tif 000005
【図７】
2009271686.tif 000006
【図１０】
2009271686.tif 000007
【図１１】
2009271686.tif 000008
【図１２】
2009271686.tif 000009
【図１３】
2009271686.tif 000010
【図１４】
2009271686.tif 000011
【図２】
2009271686.tif 000012
【図４】
2009271686.tif 000013
【図５】
2009271686.tif 000014
【図８】
2009271686.tif 000015
【図９】
2009271686.tif 000016
【図１５】
2009271686.tif 000017