ネットワークシステム、マルウェア検出装置、マルウェア検出方法、プログラム及び記録媒体
【課題】 マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出可能な新たな検出装置等を提供し、とくに、従来は検出が困難であった隠蔽化技術を持つマルウェアの検出をも可能とする検出装置等を提供する。
【解決手段】 ネットワークシステム1は、通信端末3iにおいて実行されるプログラムの実行状況を検出する実行状況検出手段11と、通信端末3iと外部ネットワーク9との通信状況を検出する通信状況検出手段13と、実行状況検出手段11が検出した実行状況及び通信状況検出手段13が検出した通信状況に基づいて、通信端末3iにおいて実行されたプログラムがマルウェアか否かを判断する判断手段17を備える。
【解決手段】 ネットワークシステム1は、通信端末3iにおいて実行されるプログラムの実行状況を検出する実行状況検出手段11と、通信端末3iと外部ネットワーク9との通信状況を検出する通信状況検出手段13と、実行状況検出手段11が検出した実行状況及び通信状況検出手段13が検出した通信状況に基づいて、通信端末3iにおいて実行されたプログラムがマルウェアか否かを判断する判断手段17を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本願発明は、ネットワークシステム、マルウェア検出装置、マルウェア検出方法、プログラム及び記録媒体に関し、特に、通信端末と前記通信端末に存在するマルウェアを検出する検出装置を含むネットワークシステム等に関するものである。
【背景技術】
【0002】
マルウェアは、例えば、ウィルスソフト、迷惑ソフト、スパイウェアなど、悪意のあるソフトウェアの総称である。
【0003】
マルウェア対策として代表的なのは、マルウェア対策ソフトを用いたものである。これは、防御対象となるPCにマルウェア対策ソフトをインストールし、感染しようとするマルウェアを検知する手法である。マルウェア対策ソフトでは、実際に入手したマルウェア検体内の特徴的なパターンを抽出し生成したパターンファイルをPCに配布して、パターンをマッチングさせることでマルウェアの検出を行っている。またその他の技術として、特許文献1、特許文献2、特許文献3に記載されている手法が知られている。
【0004】
【特許文献1】特開2006−40196号公報
【特許文献2】特開2006−127497号公報
【特許文献3】特表2006−522395号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
マルウェアを製作するマルウェア作成者は、従来、愉快犯が多かった。
【0006】
しかしながら、近年では、インターネットにおけるアンダーグラウンドビジネスが金銭目的化、組織化することにより、マルウェア作成者の技術力が高度化し、マルウェアの種類も爆発的増加している。例えば、マルウェアの種類は、従来は前年度比10%、20%増だったが、2008年は2倍となっており、2011年には10倍になるとも予想されている。また、マルウェア及びその開発環境が安価になったことや、オープンソースで入手できるようになったことも、マルウェアの急激な増加の一因である。このような背景からマルウェアが大量に発生すると、検体の入手が困難となり、マルウェアを検出するまでに、少なくとも数時間から数日を要する。
【0007】
また、マルウェアの数が膨大になり検知できなくなるだけでなく、マルウェア対策ソフトの検知を逃れるための機能が実装される等、高度な技術を駆使したマルウェアが出現している。こういったマルウェアには、以下のような機能を持つものがある。
・マルウェア対策ソフトを停止/無効化する機能
・マルウェア対策ソフトのパターンファイル更新を止める機能
・マルウェアの実行ファイルやプロセスを隠蔽化する機能(オペレーティングシステムのカーネル内部に入り込んで実行コードやデータ領域を書き換えるrootkitといわれる機能を応用したもの)
【0008】
こういったマルウェア対策ソフト対抗機能に対して、マルウェア対策ソフトにもそれらの対抗機能を検知する機能が開発されたりしているが、マルウェアもマルウェア対策ソフトもOS上で動作するアプリケーションであり、お互いに出し抜く機能の開発に躍起になっており、根本的な解決には至っていない。
【0009】
さらに、下記のように、OS上では動作しないマルウェアも出現しつつあり、これらに至っては、従来のマルウェア対策ソフトでは全く検知することはできない。
・ハードウェアの仮想化技術を利用して、OSよりも下位層で動作するマルウェア
・PC内の各種ハードウェアに存在するファームウェアに感染するマルウェア
【0010】
以上が従来のマルウェア対策ソフトの抱える問題点である。なお、上記のようにマルウェア対策ソフトから検知されないように様々な工夫を行う技術を総称して、以下、隠蔽化技術という。
【0011】
一方、特許文献1、特許文献2、特許文献3に示される技術は、端末において収集した各種情報を基に分析し、マルウェアの検知を行うものである。これらの検知技術も、マルウェア対策ソフトと同様にOS上で動作するロジックであり、マルウェア対策ソフトと同様の課題を持つ。
【0012】
このような理由から、マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出することは困難となりつつある。そのため、現在、マルウェアによる被害は拡大し、深刻化している。
【0013】
ゆえに、本願発明の目的は、マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出可能な新たな検出装置等を提供し、とくに、従来は検出が困難であった隠蔽化技術を持つマルウェアの検出をも可能とする検出装置等を提供することである。
【課題を解決するための手段】
【0014】
請求項1に係る発明は、通信端末と前記通信端末に存在するマルウェアを検出するマルウェア検出装置を含むネットワークシステムであって、前記通信端末において実行されるプログラムの実行状況を検出する実行状況検出手段と、前記通信端末と外部ネットワークとの通信状況を検出する通信状況検出手段と、前記実行状況検出手段が検出した実行状況及び前記通信状況検出手段が検出した通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、を備えるものである。
【0015】
請求項2に係る発明は、所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出装置であって、前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、を備えるものである。
【0016】
請求項3に係る発明は、請求項2記載のマルウェア検出装置であって、前記判断手段は、前記通信端末においてあらかじめマルウェアでないと想定されるプログラムを識別するデータ、及び、前記プログラムが通信する通信先を表すデータを少なくとも示すホワイトリスト情報を保持するホワイトリスト記録手段と、前記実行状況及び前記通信状況に共通に含まれる情報に基づいて、前記実行状況及び前記通信状況を統合して統合情報を生成する統合手段と、前記統合情報と前記ホワイトリスト情報とを比較して前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、を備えるものである。
【0017】
請求項4に係る発明は、請求項3記載のマルウェア検出装置であって、前記実行状況及び前記通信状況は、それぞれ、複数のデータにより示され、前記共通に含まれる情報は、送信元特定情報、送信先特定情報、プロトコルを少なくとも示すものである。
【0018】
請求項5に係る発明は、請求項4記載のマルウェア検出装置であって、前記実行状況を示すデータは通信発生時刻を示す情報を含み、前記通信状況を示す各データは開始時刻を示す情報を含み、前記統合手段は、前記実行状況を示すデータ及び前記通信状況を示すデータにおいて、前記送信元特定情報について共通するデータが2つ以上存在する場合、前記通信発生時刻と前記開始時刻の差の小さいものを関連付けて統合処理を行うものである。
【0019】
請求項6に係る発明は、請求項2から5のいずれかに記載のマルウェア検出装置であって、前記判断手段が、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【0020】
請求項7に係る発明は、請求項3から6のいずれかに記載のマルウェア検出装置であって、前記判断手段が、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応し、かつ、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとが一致しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【0021】
請求項8に係る発明は、請求項7記載のマルウェア検出装置であって、前記判断手段が、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータがプログラムを識別するデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【0022】
請求項9に係る発明は、請求項7又は8記載のマルウェア検出装置であって、前記判断手段が、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータが通信先を表すデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【0023】
請求項10に係る発明は、所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出方法であって、判断手段が、前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断するステップ、を含むものである。
【0024】
請求項11に係る発明は、コンピュータを、請求項2から9のいずれかに記載のマルウェア検出装置として機能させるためのプログラムである。
【0025】
請求項12に係る発明は、請求項11記載のプログラムを記録する記録媒体である。
【0026】
なお、ホワイトリストは、ユーザーや管理者などが信頼できると判断したURLやIPアドレス、メールアドレスなどの一覧である。例えば、迷惑メール対策ソフトが備える「受信許可リスト」がホワイトリストに該当する。
【0027】
また、送信元特定情報は、例えば、送信元IPアドレスや送信元ポート番号などである。また、送信先特定情報は、例えば、送信先IPアドレスや送信先ポート番号などである。
【発明の効果】
【0028】
本願発明においては、所定のネットワークシステム内の各通信端末について、プログラムの実行状況、外部ネットワークとの通信状況、さらに、ホワイトリスト情報を参照してマルウェアの検出を行う。
【0029】
従来技術であるマルウェア対策ソフトや、特許文献1、特許文献2、特許文献3に示される技術においては、通信端末において収集した各種情報を基に分析しマルウェアの検出を行う。しかし、本願発明においては、これらの情報に加え、通信端末と外部ネットワークとの通信に関する収集情報を加味したものを基に分析し、マルウェアの検出を行うことによって、従来は検出が困難であった隠蔽化技術を持つマルウェアの検出も可能となり、マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出することが可能となる。
【0030】
マルウェアは、機能追加やバグフィックス等を行う際には、外部ネットワークとの通信によって新しいモジュールをダウンロードしたり外部の攻撃者と連携して動作するものが多く、また、隠蔽化技術を持つマルウェアであってもネットワーク上の通信そのものは隠蔽化できないという特性を有するため、本願発明は、隠蔽化技術を持つマルウェアの検出に、とくに有効である。なお、外部ネットワークとの通信を利用しないマルウェアは破壊型のマルウェアであり、データのバックアップ等の対策を行えばよく、情報漏洩等の深刻な被害を与えるものではないため大きな脅威とはならない。
【0031】
また、マルウェアへの感染を100%未然に防止することは非常に困難であるが、本願発明によれば、感染後の通信端末と外部ネットワークとの通信をチェックすることにより、感染後、速やかにマルウェアを検出することが可能となり、被害が拡大するのを素早く食い止めることが可能となる。
【0032】
ところで、コンピュータの再起動によって送信元特定情報が新たに割り振られ、プログラムの実行状況を示すデータと外部ネットワークとの通信状況を示すデータを一意に関連付けることができないケースも考えられる。しかし、このような場合であっても、請求項5に係る発明によれば、時間に関するデータを用いることで、プログラムの実行状況を示すデータと外部ネットワークとの通信状況を示すデータの統合が可能となる。
【0033】
また、本願発明に係る検出装置等と従来のマルウェア対策ソフトの併用により、マルウェア検出の実効性が一層高まることも考えられる。
【発明を実施するための最良の形態】
【0034】
本願発明の実施の形態を以下に説明する。なお、本願発明は以下の実施の形態により限定されるものではない。
【実施例】
【0035】
図1は、本願発明の実施の形態の一つであるネットワークシステムの概要の一例を示すブロック図である。
【0036】
図1において、ネットワークシステム1内には、複数の通信端末3i(i=1、・・・、N)がある。各通信端末3iは、マルウェア検出装置5及びルーター7を介して、インターネットなどの外部ネットワーク9に接続されている。
【0037】
また、各通信端末3iは、通信端末におけるプログラムの実行状況に関する情報を検出する実行状況検出部11iを備える。実行状況検出部11iは、図示を省略するが、各通信端末3iにおけるプログラムの実行により発生する通信情報やプロセス生成情報を含むプログラムの実行状況に関する情報をオペレーティングシステムより取得する実行状況取得部と、実行状況取得部が取得したプログラムの実行状況に関する情報をマルウェア検出装置5に送信する実行状況送信部を備える。
【0038】
なお、実行状況検出部11iは、通信端末におけるプログラムの実行状況に関する情報を検出するものであればよく、必ずしも通信端末3iのそれぞれに備えられるものでなくてもよい。
【0039】
マルウェア検出装置5は、各通信端末3iと外部ネットワーク9との通信状況を検出する通信状況検出部13により検出された通信状況、及び、実行状況検出部11iにより検出された実行状況に対して処理を行うデータ処理部15と、データ処理部15における処理により生成されたリストに基づいて、各通信端末3iにおいて実行されたプログラムがマルウェアか否かを判断する判断部17を備える。
【0040】
通信状況検出部13は、例えば、ネットワークタップによって取り出されたネットワーク上に流れるパケット情報等をミラーポート付きスイッチでミラーリングすることにより通信状況を取得する通信状況取得部と、通信状況取得部が取得した通信状況に関する情報をマルウェア検出装置5に送信する通信状況送信部を備えることにより実現する。
【0041】
データ処理部15及び判断部17の処理について、図2も参照して具体的に説明する。図2は、本願発明の実施の形態の一つであるマルウェア検出装置において使用する各リストのデータ構造の一例を示す図である。
【0042】
データ処理部15は、通信状況検出部13より受け取った通信状況に関する情報に基づいてリストを生成するネットワークフローリスト生成部19と、ネットワークフローリスト生成部19により生成されたリストを記憶するネットワークフローリスト記憶部21を備える。また、データ処理部15は、実行状況検出部11iより受け取った各通信端末3iにおけるプログラムの実行状況に関する情報に基づいてリストを生成する端末フローリスト生成部23と、端末フローリスト生成部23により生成されたリストを記憶する端末フローリスト記憶部25を備える。
【0043】
図2に示すように、ネットワークフローリスト生成部19により生成されたネットワークフローリスト35は、ネットワークフローID、開始時刻、終了時刻、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、プロトコルを示すデータを持つ。端末フローリスト生成部23により生成された端末フローリスト37は、通信発生時刻、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、プロトコル、プロセスID、プロセス名、プログラム識別子を示すデータを持つ。
【0044】
判断部17は、ネットワークフローリスト記憶部21に記憶されたネットワークフローリスト35と端末フローリスト記憶部25に記憶された端末フローリスト37を統合することによってプログラムフローリスト39を生成する、プログラムフローリスト生成部27と、生成されたプログラムフローリスト39を記憶するプログラムフローリスト記憶部29を備える。また、判断部17は、各通信端末3iにおいてあらかじめマルウェアでないと想定されるプログラムを識別するデータ、及び、前記プログラムが通信する通信先を表すデータを少なくとも示すホワイトリスト41を記憶するホワイトリスト記憶部31を備え、ネットワークフローリスト記憶部21、端末フローリスト記憶部25、プログラムフローリスト記憶部29、ホワイトリスト記憶部31のそれぞれに記憶されたリストに基づいて、各通信端末3iにおいて実行されたプログラムがマルウェアか否かを検出する検出部33を備える。
【0045】
プログラムフローリスト生成部27では、ネットワークフローリスト35と端末フローリスト37のそれぞれが共通して持つ、何らかの関連付け可能な情報によって関連付けることにより、ネットワークフローリスト35と端末フローリスト37を統合し、プログラムフローリスト39を生成する。例えば、図2に示すように、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、プロトコルの5つを示すデータによって関連付ければ、高い精度によってプログラムフローリスト39の生成が可能である。プログラムフローリスト39は、ネットワークフローID、開始時刻、終了時刻、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、プロトコル、プログラム識別子に関するデータを持つ。これらのデータはネットワークフローリスト35と端末フローリスト37のそれぞれから引き継いだデータである。また、ホワイトリスト41は、プログラム識別子、送信先IPアドレス、送信先ポート番号、プロトコルに関するデータを持つ。
【0046】
データ処理部15及び判断部17の処理について、図3〜図15も参照してさらに詳細に説明する。
【0047】
まず、データ処理部15で行われる処理の詳細について説明する。
【0048】
図3は、図1のマルウェア検出装置5におけるデータ処理の一例を示すフロー図である。図3に示すように、ネットワークフローリスト生成部19では、まず、通信状況検出部13より受け取った通信状況を示すデータが、PACKETLISTテーブル43に随時格納され、次に、PACKETLISTテーブル43を基に、外部ネットワークと各通信端末3iの間の一方向通信を示すデータに関するTFLOW_S_1Mテーブル45が生成され、最後に、TFLOW_S_1Mテーブル45を基に、外部ネットワークと各通信端末3iの間の双方向通信を示すデータに関するTFLOW_D_1Mテーブル47が生成される。TFLOW_D_1Mテーブル47は、ネットワークフローリスト記憶部21にて記憶される。
【0049】
なお、図4は、図3のPACKETLISTテーブル43に関するテーブル設計書を示す図である。図5(a)は、図3のTFLOW_S_1Mテーブル45に関するテーブル設計書を示す図である。図5(b)は、図3のTFLOW_D_1Mテーブル47に関するテーブル設計書を示す図である。
【0050】
また、図6は、図1のネットワークフローリスト生成部19における第一の処理を実現するSQLコードの一例を示す図である。図6に示すSQLコードを用いれば、PACKETLISTテーブル43を基にTFLOW_S_1Mテーブル45を生成する処理が可能となる。
【0051】
さらに、図7は、図1のネットワークフローリスト生成部19における第二の処理を実現するSQLコードの一例を示す図である。図7に示すSQLコードを用いれば、TFLOW_S_1Mテーブル45を基に、TFLOW_D_1Mテーブル47を生成する処理が可能となる。
【0052】
端末フローリスト生成部23では、まず、実行状況検出部11iより受け取ったプログラムの実行状況を示すデータのうち、通信情報がCPM_TUテーブル49に、プロセス生成情報がCPM_Pテーブル51に随時格納される。端末フローリスト生成部23では、次に、CPM_Pテーブル51を基にCPM_Pテーブル51に含まれる各通信端末3iで実行されるプログラムを示すデータについての重複を省き、プログラムをユニークに特定するプログラム識別子を付与したPROGRAMLISTテーブル53が生成される。次に、端末フローリスト生成部23では、PROGRAMLISTテーブル53とCPM_Pテーブル51間をリンクし、それぞれのデータを参照可能なCPM_P_VIEWテーブル55が生成される。最後に、端末フローリスト生成部23では、CPM_TUテーブル49とCPM_P_VIEWテーブル55が何らかの関連付け可能な情報によって関連付けられ、端末フローリスト37を示すCPDATAテーブル57が生成される。例えば、通信端末ID、プロセスID、各通信端末3iの起動ごとに付される起動IDを示すデータに基づいて関連付けを行うことによって、CPDATAテーブル57の生成が可能である。CPDATAテーブル57は、端末フローリスト記憶部25にて記憶される。
【0053】
なお、CPM_Pテーブル51に含まれる各通信端末3iで実行されるプログラムを示すデータについて重複が存在するのは、各通信端末3iにおけるプログラムの実行について、同一のプログラムであっても各通信端末3iを起動するごとに異なるIDが割り振られることにより、1つのプログラムが複数のプログラムIDを持つことになるためである。
【0054】
また、図8(a)は、図3のCPM_TUテーブル49に関するテーブル設計書を示す図である。図8(b)は、図3のCPM_Pテーブル51に関するテーブル設計書を示す図である。図9(a)は、図3のPROGRAMLISTテーブル53に関するテーブル設計書を示す図である。図9(b)は、図3のCPDATAテーブル57に関するテーブル設計書を示す図である。(CPM_P_VIEWテーブル55に関しては、PROGRAMLISTテーブル53とCPM_Pテーブル51のデータを参照するものであって実体を有しないためテーブル設計図は省略する。)
【0055】
さらに、図10は、図1の端末フローリスト生成部23における第一の処理を実現するSQLコードの一例を示す図である。図10に示すSQLコードを用いれば、CPM_Pテーブル51を基に、PROGRAMLISTテーブル53を生成する処理が可能となる。
【0056】
さらに、図11は、図1の端末フローリスト生成部23における第二の処理を実現するSQLコードの一例を示す図である。図11に示すSQLコードを用いれば、CPM_TUテーブル49、CPM_Pテーブル51、PROGRAMLISTテーブル53を基に、CPDATAテーブル57を生成する処理が可能となる。
【0057】
次に、判断部17で行われる処理の詳細について説明する。
【0058】
プログラムフローリスト生成部27では、まず、ネットワークフローリスト記憶部21に記憶されたTFLOW_D_1Mテーブル47と端末フローリスト記憶部25に記憶されたCPDATAテーブル57が、前記のような何らかの関連付け可能な情報によって関連付けられ、プログラムフローリスト39を示すTFLOW_D_1Mテーブル59が生成される。このTFLOW_D_1Mテーブル59は、TFLOW_D_1Mテーブル47にCPDATAテーブル57の有するIDを付与したものであり、テーブル設計図は図5(b)と同様である。TFLOW_D_1Mテーブル59は、プログラムフローリスト記憶部29にて記憶される。
【0059】
なお、ネットワークフローリスト35を示すTFLOW_D_1Mテーブル47と端末フローリスト37を示すCPDATAテーブル57のそれぞれに、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、プロトコルを示す同一のデータが複数存在する場合がある。例えば、コンピュータの再起動によって、送信元ポート番号が新たに割り振られるような場合である。この場合、プログラムフローリスト生成部27において、これら5つのデータによる関連付けだけではTFLOW_D_1Mテーブル47とCPDATAテーブル57に含まれるデータを一意に関連付けることができず、統合処理が行えない。しかし、これら5つのデータによる関連付けに加えて、TFLOW_D_1Mテーブル47に含まれる開始時刻を示すデータと、CPDATAテーブル57に含まれる通信発生時刻を示すデータを比較し、開始時刻を示すデータと通信発生時刻を示すデータの差の小さいものを関連付けることによって、このような場合でも統合処理が可能となる。
【0060】
また、図12は、図1のプログラムフローリスト生成部27における処理を実現するSQLコードの一例を示す図である。図12に示すSQLコードを用いれば、TFLOW_D_1Mテーブル47とCPDATAテーブル57を統合し、TFLOW_D_1Mテーブル59を生成する処理が可能となる。
【0061】
続いて、検出部33での、各通信端末3iにおけるマルウェアの検出処理について具体的に説明する。図13は、図1の検出部33におけるマルウェア検出処理の一例を示すフロー図である。図14(a)は、図1の検出部33における第一の検出処理を実現するSQLコードの一例を示す図であり、図14(b)は、図1の検出部33における第二の検出処理を実現するSQLコードの一例を示す図であり、図14(c)は、図1の検出部33における第三の検出処理を実現するSQLコードの一例を示す図であり、図14(d)は、図1の検出部33における第四の検出処理を実現するSQLコードの一例を示す図である。図15は、図3のWHITELISTテーブル61に関するテーブル設計書を示す図である。
【0062】
図13に示すように、検出部33は、TFLOW_D_1Mテーブル59に含まれるcpidデータがNULLの場合、すなわち、ネットワークフローリスト記憶部21に記憶されるTFLOW_D_1Mテーブル47に含まれるデータと、端末フローリスト記憶部25に記憶されるCPDATAテーブル57に含まれるデータとが一対一で対応しない場合、各通信端末3iにおいて実行されたプログラムがマルウェアであることを検出する(第一の検出処理)。例えば、隠蔽化技術を持ち、かつ、その正体を隠すマルウェアを検出する際に有効である。この第一の検出処理を用いれば、ソフトウェアだけでなく、ハードウェアに侵入するマルウェアの検出も可能となる。なお、図14(a)に示すSQLコードを用いれば、この第一の検出処理が可能となる。
【0063】
検出部33は、TFLOW_D_1Mテーブル59に含まれるcpidデータがNULLでない場合、すなわち、ネットワークフローリスト記憶部21に記憶されるTFLOW_D_1Mテーブル47に含まれるデータと、端末フローリスト記憶部25に記憶されるCPDATAテーブル57に含まれるデータとが一対一で対応する場合であって、かつ、プログラムフローリスト記憶部29に記憶されるTFLOW_D_1Mテーブル59に含まれるデータと、ホワイトリスト記憶部31に記憶されるWHITELISTテーブル61に含まれるデータとが一致しない場合、各通信端末3iにおいて実行されたプログラムがマルウェアであることを検出する(第二の検出処理)。なお、図14(b)に示すSQLコードを用いれば、この第二の検出処理が可能となる。
【0064】
検出部33は、第二の検出処理において、TFLOW_D_1Mテーブル59に含まれるデータと、WHITELISTテーブル61に含まれるデータとの間で一致しないデータがプログラムを識別するデータである場合、各通信端末3iにおいて実行されたプログラムがマルウェアであることを検出する(第三の検出処理)。例えば、隠蔽化技術を持たないマルウェアを検出する際に有効である。なお、図14(c)に示すSQLコードを用いれば、この第三の検出処理が可能となる。
【0065】
検出部33は、第二の検出処理において、TFLOW_D_1Mテーブル59に含まれるデータと、WHITELISTテーブル61に含まれるデータとの間で一致しないデータがプログラムを識別するデータでない場合、すなわち、図5(b)、図15からも明らかなように、一致しないデータが通信先を表すデータである場合に、各通信端末3iにおいて実行されたプログラムがマルウェアであることを検出する(第四の検出処理)。例えば、隠蔽化技術を持ち、かつ、その正体を別のものとすりかえるマルウェアを検出する際に有効である。この第四の検出処理は、特定少数のサーバーと通信を行うプログラムについて特に有効である。なお、図14(d)に示すSQLコードを用いれば、この第四の検出処理が可能となる。
【0066】
なお、検出部33にてマルウェアが検出されると、マルウェア検出装置5からマルウェアの検出された通信端末3iの最も近くに配置されるルーター等の通信装置へ、当該通信端末が行うすべての通信を遮断するよう指令を送ることによって、マルウェア感染後の被害の拡大を防ぐことができる。(図示は省略する。)
【0067】
また、図1のマルウェア検出装置5において、図2のプログラムフローリスト39に基づいて行った処理は、プログラムフローリスト39に代えて、ネットワークフローリスト35と端末フローリスト37に基づいて処理を行うものであってもよい。
【0068】
最後に、180個のマルウェア検体を対象として15日間のマルウェア検出測定実験を行った。ただし、検出までに8日以上を要する場合は、検出できたとしても、すでに被害が拡大している可能性が高いと考えられる。そのため、検体の入手から7日以内に検出したものに限り検出と認識するという条件の下で実験を行った。その結果、マルウェアの検出率は、大手マルウェア対策ソフトAが85.6%、大手マルウェア対策ソフトBが87.8%であるのに対し、図1のマルウェア検出装置5を用いた場合は100%であった。
【図面の簡単な説明】
【0069】
【図1】本願発明の実施の形態の一つであるネットワークシステムの概要の一例を示すブロック図である。
【図2】図1のマルウェア検出装置5において使用する各リストのデータ構造の一例を示す図である。
【図3】図1のマルウェア検出装置5におけるデータ処理の一例を示すフロー図である。
【図4】図3のPACKETLISTテーブル43に関するテーブル設計書を示す図である。
【図5】(a)は、図3のTFLOW_S_1Mテーブル45に関するテーブル設計書を示す図であり、(b)は、図3のTFLOW_D_1Mテーブル47に関するテーブル設計書を示す図である。
【図6】図1のネットワークフローリスト生成部19における第一の処理を実現するSQLコードの一例を示す図である。
【図7】図1のネットワークフローリスト生成部19における第二の処理を実現するSQLコードの一例を示す図である。
【図8】(a)は、図3のCPM_TUテーブル49に関するテーブル設計書を示す図であり、(b)は、図3のCPM_Pテーブル51に関するテーブル設計書を示す図である。
【図9】(a)は、図3のPROGRAMLISTテーブル53に関するテーブル設計書を示す図であり、(b)は、図3のCPDATAテーブル57に関するテーブル設計書を示す図である。
【図10】図1の端末フローリスト生成部23における第一の処理を実現するSQLコードの一例を示す図である。
【図11】図1の端末フローリスト生成部23における第二の処理を実現するSQLコードの一例を示す図である。
【図12】図1のプログラムフローリスト生成部27における処理を実現するSQLコードの一例を示す図である。
【図13】図1の検出部33におけるマルウェア検出処理の一例を示すフロー図である。
【図14】(a)は、図1の検出部33における第一の検出処理を実現するSQLコードの一例を示す図であり、(b)は、図1の検出部33における第二の検出処理を実現するSQLコードの一例を示す図であり、(c)は、図1の検出部33における第三の検出処理を実現するSQLコードの一例を示す図であり、(d)は、図1の検出部33における第四の検出処理を実現するSQLコードの一例を示す図である。
【図15】図3のWHITELISTテーブル61に関するテーブル設計書を示す図である。
【符号の説明】
【0070】
1 ネットワークシステム、3 通信端末、5 マルウェア検出装置、11 実行状況検出部、13 通信状況検出部、15 データ処理部、17 判断部、19 ネットワークフローリスト生成部、23 端末フローリスト生成部、27 プログラムフローリスト生成部、33 検出部、41 ホワイトリスト
【技術分野】
【0001】
本願発明は、ネットワークシステム、マルウェア検出装置、マルウェア検出方法、プログラム及び記録媒体に関し、特に、通信端末と前記通信端末に存在するマルウェアを検出する検出装置を含むネットワークシステム等に関するものである。
【背景技術】
【0002】
マルウェアは、例えば、ウィルスソフト、迷惑ソフト、スパイウェアなど、悪意のあるソフトウェアの総称である。
【0003】
マルウェア対策として代表的なのは、マルウェア対策ソフトを用いたものである。これは、防御対象となるPCにマルウェア対策ソフトをインストールし、感染しようとするマルウェアを検知する手法である。マルウェア対策ソフトでは、実際に入手したマルウェア検体内の特徴的なパターンを抽出し生成したパターンファイルをPCに配布して、パターンをマッチングさせることでマルウェアの検出を行っている。またその他の技術として、特許文献1、特許文献2、特許文献3に記載されている手法が知られている。
【0004】
【特許文献1】特開2006−40196号公報
【特許文献2】特開2006−127497号公報
【特許文献3】特表2006−522395号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
マルウェアを製作するマルウェア作成者は、従来、愉快犯が多かった。
【0006】
しかしながら、近年では、インターネットにおけるアンダーグラウンドビジネスが金銭目的化、組織化することにより、マルウェア作成者の技術力が高度化し、マルウェアの種類も爆発的増加している。例えば、マルウェアの種類は、従来は前年度比10%、20%増だったが、2008年は2倍となっており、2011年には10倍になるとも予想されている。また、マルウェア及びその開発環境が安価になったことや、オープンソースで入手できるようになったことも、マルウェアの急激な増加の一因である。このような背景からマルウェアが大量に発生すると、検体の入手が困難となり、マルウェアを検出するまでに、少なくとも数時間から数日を要する。
【0007】
また、マルウェアの数が膨大になり検知できなくなるだけでなく、マルウェア対策ソフトの検知を逃れるための機能が実装される等、高度な技術を駆使したマルウェアが出現している。こういったマルウェアには、以下のような機能を持つものがある。
・マルウェア対策ソフトを停止/無効化する機能
・マルウェア対策ソフトのパターンファイル更新を止める機能
・マルウェアの実行ファイルやプロセスを隠蔽化する機能(オペレーティングシステムのカーネル内部に入り込んで実行コードやデータ領域を書き換えるrootkitといわれる機能を応用したもの)
【0008】
こういったマルウェア対策ソフト対抗機能に対して、マルウェア対策ソフトにもそれらの対抗機能を検知する機能が開発されたりしているが、マルウェアもマルウェア対策ソフトもOS上で動作するアプリケーションであり、お互いに出し抜く機能の開発に躍起になっており、根本的な解決には至っていない。
【0009】
さらに、下記のように、OS上では動作しないマルウェアも出現しつつあり、これらに至っては、従来のマルウェア対策ソフトでは全く検知することはできない。
・ハードウェアの仮想化技術を利用して、OSよりも下位層で動作するマルウェア
・PC内の各種ハードウェアに存在するファームウェアに感染するマルウェア
【0010】
以上が従来のマルウェア対策ソフトの抱える問題点である。なお、上記のようにマルウェア対策ソフトから検知されないように様々な工夫を行う技術を総称して、以下、隠蔽化技術という。
【0011】
一方、特許文献1、特許文献2、特許文献3に示される技術は、端末において収集した各種情報を基に分析し、マルウェアの検知を行うものである。これらの検知技術も、マルウェア対策ソフトと同様にOS上で動作するロジックであり、マルウェア対策ソフトと同様の課題を持つ。
【0012】
このような理由から、マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出することは困難となりつつある。そのため、現在、マルウェアによる被害は拡大し、深刻化している。
【0013】
ゆえに、本願発明の目的は、マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出可能な新たな検出装置等を提供し、とくに、従来は検出が困難であった隠蔽化技術を持つマルウェアの検出をも可能とする検出装置等を提供することである。
【課題を解決するための手段】
【0014】
請求項1に係る発明は、通信端末と前記通信端末に存在するマルウェアを検出するマルウェア検出装置を含むネットワークシステムであって、前記通信端末において実行されるプログラムの実行状況を検出する実行状況検出手段と、前記通信端末と外部ネットワークとの通信状況を検出する通信状況検出手段と、前記実行状況検出手段が検出した実行状況及び前記通信状況検出手段が検出した通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、を備えるものである。
【0015】
請求項2に係る発明は、所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出装置であって、前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、を備えるものである。
【0016】
請求項3に係る発明は、請求項2記載のマルウェア検出装置であって、前記判断手段は、前記通信端末においてあらかじめマルウェアでないと想定されるプログラムを識別するデータ、及び、前記プログラムが通信する通信先を表すデータを少なくとも示すホワイトリスト情報を保持するホワイトリスト記録手段と、前記実行状況及び前記通信状況に共通に含まれる情報に基づいて、前記実行状況及び前記通信状況を統合して統合情報を生成する統合手段と、前記統合情報と前記ホワイトリスト情報とを比較して前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、を備えるものである。
【0017】
請求項4に係る発明は、請求項3記載のマルウェア検出装置であって、前記実行状況及び前記通信状況は、それぞれ、複数のデータにより示され、前記共通に含まれる情報は、送信元特定情報、送信先特定情報、プロトコルを少なくとも示すものである。
【0018】
請求項5に係る発明は、請求項4記載のマルウェア検出装置であって、前記実行状況を示すデータは通信発生時刻を示す情報を含み、前記通信状況を示す各データは開始時刻を示す情報を含み、前記統合手段は、前記実行状況を示すデータ及び前記通信状況を示すデータにおいて、前記送信元特定情報について共通するデータが2つ以上存在する場合、前記通信発生時刻と前記開始時刻の差の小さいものを関連付けて統合処理を行うものである。
【0019】
請求項6に係る発明は、請求項2から5のいずれかに記載のマルウェア検出装置であって、前記判断手段が、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【0020】
請求項7に係る発明は、請求項3から6のいずれかに記載のマルウェア検出装置であって、前記判断手段が、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応し、かつ、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとが一致しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【0021】
請求項8に係る発明は、請求項7記載のマルウェア検出装置であって、前記判断手段が、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータがプログラムを識別するデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【0022】
請求項9に係る発明は、請求項7又は8記載のマルウェア検出装置であって、前記判断手段が、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータが通信先を表すデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断するものである。
【0023】
請求項10に係る発明は、所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出方法であって、判断手段が、前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断するステップ、を含むものである。
【0024】
請求項11に係る発明は、コンピュータを、請求項2から9のいずれかに記載のマルウェア検出装置として機能させるためのプログラムである。
【0025】
請求項12に係る発明は、請求項11記載のプログラムを記録する記録媒体である。
【0026】
なお、ホワイトリストは、ユーザーや管理者などが信頼できると判断したURLやIPアドレス、メールアドレスなどの一覧である。例えば、迷惑メール対策ソフトが備える「受信許可リスト」がホワイトリストに該当する。
【0027】
また、送信元特定情報は、例えば、送信元IPアドレスや送信元ポート番号などである。また、送信先特定情報は、例えば、送信先IPアドレスや送信先ポート番号などである。
【発明の効果】
【0028】
本願発明においては、所定のネットワークシステム内の各通信端末について、プログラムの実行状況、外部ネットワークとの通信状況、さらに、ホワイトリスト情報を参照してマルウェアの検出を行う。
【0029】
従来技術であるマルウェア対策ソフトや、特許文献1、特許文献2、特許文献3に示される技術においては、通信端末において収集した各種情報を基に分析しマルウェアの検出を行う。しかし、本願発明においては、これらの情報に加え、通信端末と外部ネットワークとの通信に関する収集情報を加味したものを基に分析し、マルウェアの検出を行うことによって、従来は検出が困難であった隠蔽化技術を持つマルウェアの検出も可能となり、マルウェア検出率において高い精度を保ちつつ、マルウェアを迅速に検出することが可能となる。
【0030】
マルウェアは、機能追加やバグフィックス等を行う際には、外部ネットワークとの通信によって新しいモジュールをダウンロードしたり外部の攻撃者と連携して動作するものが多く、また、隠蔽化技術を持つマルウェアであってもネットワーク上の通信そのものは隠蔽化できないという特性を有するため、本願発明は、隠蔽化技術を持つマルウェアの検出に、とくに有効である。なお、外部ネットワークとの通信を利用しないマルウェアは破壊型のマルウェアであり、データのバックアップ等の対策を行えばよく、情報漏洩等の深刻な被害を与えるものではないため大きな脅威とはならない。
【0031】
また、マルウェアへの感染を100%未然に防止することは非常に困難であるが、本願発明によれば、感染後の通信端末と外部ネットワークとの通信をチェックすることにより、感染後、速やかにマルウェアを検出することが可能となり、被害が拡大するのを素早く食い止めることが可能となる。
【0032】
ところで、コンピュータの再起動によって送信元特定情報が新たに割り振られ、プログラムの実行状況を示すデータと外部ネットワークとの通信状況を示すデータを一意に関連付けることができないケースも考えられる。しかし、このような場合であっても、請求項5に係る発明によれば、時間に関するデータを用いることで、プログラムの実行状況を示すデータと外部ネットワークとの通信状況を示すデータの統合が可能となる。
【0033】
また、本願発明に係る検出装置等と従来のマルウェア対策ソフトの併用により、マルウェア検出の実効性が一層高まることも考えられる。
【発明を実施するための最良の形態】
【0034】
本願発明の実施の形態を以下に説明する。なお、本願発明は以下の実施の形態により限定されるものではない。
【実施例】
【0035】
図1は、本願発明の実施の形態の一つであるネットワークシステムの概要の一例を示すブロック図である。
【0036】
図1において、ネットワークシステム1内には、複数の通信端末3i(i=1、・・・、N)がある。各通信端末3iは、マルウェア検出装置5及びルーター7を介して、インターネットなどの外部ネットワーク9に接続されている。
【0037】
また、各通信端末3iは、通信端末におけるプログラムの実行状況に関する情報を検出する実行状況検出部11iを備える。実行状況検出部11iは、図示を省略するが、各通信端末3iにおけるプログラムの実行により発生する通信情報やプロセス生成情報を含むプログラムの実行状況に関する情報をオペレーティングシステムより取得する実行状況取得部と、実行状況取得部が取得したプログラムの実行状況に関する情報をマルウェア検出装置5に送信する実行状況送信部を備える。
【0038】
なお、実行状況検出部11iは、通信端末におけるプログラムの実行状況に関する情報を検出するものであればよく、必ずしも通信端末3iのそれぞれに備えられるものでなくてもよい。
【0039】
マルウェア検出装置5は、各通信端末3iと外部ネットワーク9との通信状況を検出する通信状況検出部13により検出された通信状況、及び、実行状況検出部11iにより検出された実行状況に対して処理を行うデータ処理部15と、データ処理部15における処理により生成されたリストに基づいて、各通信端末3iにおいて実行されたプログラムがマルウェアか否かを判断する判断部17を備える。
【0040】
通信状況検出部13は、例えば、ネットワークタップによって取り出されたネットワーク上に流れるパケット情報等をミラーポート付きスイッチでミラーリングすることにより通信状況を取得する通信状況取得部と、通信状況取得部が取得した通信状況に関する情報をマルウェア検出装置5に送信する通信状況送信部を備えることにより実現する。
【0041】
データ処理部15及び判断部17の処理について、図2も参照して具体的に説明する。図2は、本願発明の実施の形態の一つであるマルウェア検出装置において使用する各リストのデータ構造の一例を示す図である。
【0042】
データ処理部15は、通信状況検出部13より受け取った通信状況に関する情報に基づいてリストを生成するネットワークフローリスト生成部19と、ネットワークフローリスト生成部19により生成されたリストを記憶するネットワークフローリスト記憶部21を備える。また、データ処理部15は、実行状況検出部11iより受け取った各通信端末3iにおけるプログラムの実行状況に関する情報に基づいてリストを生成する端末フローリスト生成部23と、端末フローリスト生成部23により生成されたリストを記憶する端末フローリスト記憶部25を備える。
【0043】
図2に示すように、ネットワークフローリスト生成部19により生成されたネットワークフローリスト35は、ネットワークフローID、開始時刻、終了時刻、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、プロトコルを示すデータを持つ。端末フローリスト生成部23により生成された端末フローリスト37は、通信発生時刻、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、プロトコル、プロセスID、プロセス名、プログラム識別子を示すデータを持つ。
【0044】
判断部17は、ネットワークフローリスト記憶部21に記憶されたネットワークフローリスト35と端末フローリスト記憶部25に記憶された端末フローリスト37を統合することによってプログラムフローリスト39を生成する、プログラムフローリスト生成部27と、生成されたプログラムフローリスト39を記憶するプログラムフローリスト記憶部29を備える。また、判断部17は、各通信端末3iにおいてあらかじめマルウェアでないと想定されるプログラムを識別するデータ、及び、前記プログラムが通信する通信先を表すデータを少なくとも示すホワイトリスト41を記憶するホワイトリスト記憶部31を備え、ネットワークフローリスト記憶部21、端末フローリスト記憶部25、プログラムフローリスト記憶部29、ホワイトリスト記憶部31のそれぞれに記憶されたリストに基づいて、各通信端末3iにおいて実行されたプログラムがマルウェアか否かを検出する検出部33を備える。
【0045】
プログラムフローリスト生成部27では、ネットワークフローリスト35と端末フローリスト37のそれぞれが共通して持つ、何らかの関連付け可能な情報によって関連付けることにより、ネットワークフローリスト35と端末フローリスト37を統合し、プログラムフローリスト39を生成する。例えば、図2に示すように、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、プロトコルの5つを示すデータによって関連付ければ、高い精度によってプログラムフローリスト39の生成が可能である。プログラムフローリスト39は、ネットワークフローID、開始時刻、終了時刻、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、プロトコル、プログラム識別子に関するデータを持つ。これらのデータはネットワークフローリスト35と端末フローリスト37のそれぞれから引き継いだデータである。また、ホワイトリスト41は、プログラム識別子、送信先IPアドレス、送信先ポート番号、プロトコルに関するデータを持つ。
【0046】
データ処理部15及び判断部17の処理について、図3〜図15も参照してさらに詳細に説明する。
【0047】
まず、データ処理部15で行われる処理の詳細について説明する。
【0048】
図3は、図1のマルウェア検出装置5におけるデータ処理の一例を示すフロー図である。図3に示すように、ネットワークフローリスト生成部19では、まず、通信状況検出部13より受け取った通信状況を示すデータが、PACKETLISTテーブル43に随時格納され、次に、PACKETLISTテーブル43を基に、外部ネットワークと各通信端末3iの間の一方向通信を示すデータに関するTFLOW_S_1Mテーブル45が生成され、最後に、TFLOW_S_1Mテーブル45を基に、外部ネットワークと各通信端末3iの間の双方向通信を示すデータに関するTFLOW_D_1Mテーブル47が生成される。TFLOW_D_1Mテーブル47は、ネットワークフローリスト記憶部21にて記憶される。
【0049】
なお、図4は、図3のPACKETLISTテーブル43に関するテーブル設計書を示す図である。図5(a)は、図3のTFLOW_S_1Mテーブル45に関するテーブル設計書を示す図である。図5(b)は、図3のTFLOW_D_1Mテーブル47に関するテーブル設計書を示す図である。
【0050】
また、図6は、図1のネットワークフローリスト生成部19における第一の処理を実現するSQLコードの一例を示す図である。図6に示すSQLコードを用いれば、PACKETLISTテーブル43を基にTFLOW_S_1Mテーブル45を生成する処理が可能となる。
【0051】
さらに、図7は、図1のネットワークフローリスト生成部19における第二の処理を実現するSQLコードの一例を示す図である。図7に示すSQLコードを用いれば、TFLOW_S_1Mテーブル45を基に、TFLOW_D_1Mテーブル47を生成する処理が可能となる。
【0052】
端末フローリスト生成部23では、まず、実行状況検出部11iより受け取ったプログラムの実行状況を示すデータのうち、通信情報がCPM_TUテーブル49に、プロセス生成情報がCPM_Pテーブル51に随時格納される。端末フローリスト生成部23では、次に、CPM_Pテーブル51を基にCPM_Pテーブル51に含まれる各通信端末3iで実行されるプログラムを示すデータについての重複を省き、プログラムをユニークに特定するプログラム識別子を付与したPROGRAMLISTテーブル53が生成される。次に、端末フローリスト生成部23では、PROGRAMLISTテーブル53とCPM_Pテーブル51間をリンクし、それぞれのデータを参照可能なCPM_P_VIEWテーブル55が生成される。最後に、端末フローリスト生成部23では、CPM_TUテーブル49とCPM_P_VIEWテーブル55が何らかの関連付け可能な情報によって関連付けられ、端末フローリスト37を示すCPDATAテーブル57が生成される。例えば、通信端末ID、プロセスID、各通信端末3iの起動ごとに付される起動IDを示すデータに基づいて関連付けを行うことによって、CPDATAテーブル57の生成が可能である。CPDATAテーブル57は、端末フローリスト記憶部25にて記憶される。
【0053】
なお、CPM_Pテーブル51に含まれる各通信端末3iで実行されるプログラムを示すデータについて重複が存在するのは、各通信端末3iにおけるプログラムの実行について、同一のプログラムであっても各通信端末3iを起動するごとに異なるIDが割り振られることにより、1つのプログラムが複数のプログラムIDを持つことになるためである。
【0054】
また、図8(a)は、図3のCPM_TUテーブル49に関するテーブル設計書を示す図である。図8(b)は、図3のCPM_Pテーブル51に関するテーブル設計書を示す図である。図9(a)は、図3のPROGRAMLISTテーブル53に関するテーブル設計書を示す図である。図9(b)は、図3のCPDATAテーブル57に関するテーブル設計書を示す図である。(CPM_P_VIEWテーブル55に関しては、PROGRAMLISTテーブル53とCPM_Pテーブル51のデータを参照するものであって実体を有しないためテーブル設計図は省略する。)
【0055】
さらに、図10は、図1の端末フローリスト生成部23における第一の処理を実現するSQLコードの一例を示す図である。図10に示すSQLコードを用いれば、CPM_Pテーブル51を基に、PROGRAMLISTテーブル53を生成する処理が可能となる。
【0056】
さらに、図11は、図1の端末フローリスト生成部23における第二の処理を実現するSQLコードの一例を示す図である。図11に示すSQLコードを用いれば、CPM_TUテーブル49、CPM_Pテーブル51、PROGRAMLISTテーブル53を基に、CPDATAテーブル57を生成する処理が可能となる。
【0057】
次に、判断部17で行われる処理の詳細について説明する。
【0058】
プログラムフローリスト生成部27では、まず、ネットワークフローリスト記憶部21に記憶されたTFLOW_D_1Mテーブル47と端末フローリスト記憶部25に記憶されたCPDATAテーブル57が、前記のような何らかの関連付け可能な情報によって関連付けられ、プログラムフローリスト39を示すTFLOW_D_1Mテーブル59が生成される。このTFLOW_D_1Mテーブル59は、TFLOW_D_1Mテーブル47にCPDATAテーブル57の有するIDを付与したものであり、テーブル設計図は図5(b)と同様である。TFLOW_D_1Mテーブル59は、プログラムフローリスト記憶部29にて記憶される。
【0059】
なお、ネットワークフローリスト35を示すTFLOW_D_1Mテーブル47と端末フローリスト37を示すCPDATAテーブル57のそれぞれに、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号、プロトコルを示す同一のデータが複数存在する場合がある。例えば、コンピュータの再起動によって、送信元ポート番号が新たに割り振られるような場合である。この場合、プログラムフローリスト生成部27において、これら5つのデータによる関連付けだけではTFLOW_D_1Mテーブル47とCPDATAテーブル57に含まれるデータを一意に関連付けることができず、統合処理が行えない。しかし、これら5つのデータによる関連付けに加えて、TFLOW_D_1Mテーブル47に含まれる開始時刻を示すデータと、CPDATAテーブル57に含まれる通信発生時刻を示すデータを比較し、開始時刻を示すデータと通信発生時刻を示すデータの差の小さいものを関連付けることによって、このような場合でも統合処理が可能となる。
【0060】
また、図12は、図1のプログラムフローリスト生成部27における処理を実現するSQLコードの一例を示す図である。図12に示すSQLコードを用いれば、TFLOW_D_1Mテーブル47とCPDATAテーブル57を統合し、TFLOW_D_1Mテーブル59を生成する処理が可能となる。
【0061】
続いて、検出部33での、各通信端末3iにおけるマルウェアの検出処理について具体的に説明する。図13は、図1の検出部33におけるマルウェア検出処理の一例を示すフロー図である。図14(a)は、図1の検出部33における第一の検出処理を実現するSQLコードの一例を示す図であり、図14(b)は、図1の検出部33における第二の検出処理を実現するSQLコードの一例を示す図であり、図14(c)は、図1の検出部33における第三の検出処理を実現するSQLコードの一例を示す図であり、図14(d)は、図1の検出部33における第四の検出処理を実現するSQLコードの一例を示す図である。図15は、図3のWHITELISTテーブル61に関するテーブル設計書を示す図である。
【0062】
図13に示すように、検出部33は、TFLOW_D_1Mテーブル59に含まれるcpidデータがNULLの場合、すなわち、ネットワークフローリスト記憶部21に記憶されるTFLOW_D_1Mテーブル47に含まれるデータと、端末フローリスト記憶部25に記憶されるCPDATAテーブル57に含まれるデータとが一対一で対応しない場合、各通信端末3iにおいて実行されたプログラムがマルウェアであることを検出する(第一の検出処理)。例えば、隠蔽化技術を持ち、かつ、その正体を隠すマルウェアを検出する際に有効である。この第一の検出処理を用いれば、ソフトウェアだけでなく、ハードウェアに侵入するマルウェアの検出も可能となる。なお、図14(a)に示すSQLコードを用いれば、この第一の検出処理が可能となる。
【0063】
検出部33は、TFLOW_D_1Mテーブル59に含まれるcpidデータがNULLでない場合、すなわち、ネットワークフローリスト記憶部21に記憶されるTFLOW_D_1Mテーブル47に含まれるデータと、端末フローリスト記憶部25に記憶されるCPDATAテーブル57に含まれるデータとが一対一で対応する場合であって、かつ、プログラムフローリスト記憶部29に記憶されるTFLOW_D_1Mテーブル59に含まれるデータと、ホワイトリスト記憶部31に記憶されるWHITELISTテーブル61に含まれるデータとが一致しない場合、各通信端末3iにおいて実行されたプログラムがマルウェアであることを検出する(第二の検出処理)。なお、図14(b)に示すSQLコードを用いれば、この第二の検出処理が可能となる。
【0064】
検出部33は、第二の検出処理において、TFLOW_D_1Mテーブル59に含まれるデータと、WHITELISTテーブル61に含まれるデータとの間で一致しないデータがプログラムを識別するデータである場合、各通信端末3iにおいて実行されたプログラムがマルウェアであることを検出する(第三の検出処理)。例えば、隠蔽化技術を持たないマルウェアを検出する際に有効である。なお、図14(c)に示すSQLコードを用いれば、この第三の検出処理が可能となる。
【0065】
検出部33は、第二の検出処理において、TFLOW_D_1Mテーブル59に含まれるデータと、WHITELISTテーブル61に含まれるデータとの間で一致しないデータがプログラムを識別するデータでない場合、すなわち、図5(b)、図15からも明らかなように、一致しないデータが通信先を表すデータである場合に、各通信端末3iにおいて実行されたプログラムがマルウェアであることを検出する(第四の検出処理)。例えば、隠蔽化技術を持ち、かつ、その正体を別のものとすりかえるマルウェアを検出する際に有効である。この第四の検出処理は、特定少数のサーバーと通信を行うプログラムについて特に有効である。なお、図14(d)に示すSQLコードを用いれば、この第四の検出処理が可能となる。
【0066】
なお、検出部33にてマルウェアが検出されると、マルウェア検出装置5からマルウェアの検出された通信端末3iの最も近くに配置されるルーター等の通信装置へ、当該通信端末が行うすべての通信を遮断するよう指令を送ることによって、マルウェア感染後の被害の拡大を防ぐことができる。(図示は省略する。)
【0067】
また、図1のマルウェア検出装置5において、図2のプログラムフローリスト39に基づいて行った処理は、プログラムフローリスト39に代えて、ネットワークフローリスト35と端末フローリスト37に基づいて処理を行うものであってもよい。
【0068】
最後に、180個のマルウェア検体を対象として15日間のマルウェア検出測定実験を行った。ただし、検出までに8日以上を要する場合は、検出できたとしても、すでに被害が拡大している可能性が高いと考えられる。そのため、検体の入手から7日以内に検出したものに限り検出と認識するという条件の下で実験を行った。その結果、マルウェアの検出率は、大手マルウェア対策ソフトAが85.6%、大手マルウェア対策ソフトBが87.8%であるのに対し、図1のマルウェア検出装置5を用いた場合は100%であった。
【図面の簡単な説明】
【0069】
【図1】本願発明の実施の形態の一つであるネットワークシステムの概要の一例を示すブロック図である。
【図2】図1のマルウェア検出装置5において使用する各リストのデータ構造の一例を示す図である。
【図3】図1のマルウェア検出装置5におけるデータ処理の一例を示すフロー図である。
【図4】図3のPACKETLISTテーブル43に関するテーブル設計書を示す図である。
【図5】(a)は、図3のTFLOW_S_1Mテーブル45に関するテーブル設計書を示す図であり、(b)は、図3のTFLOW_D_1Mテーブル47に関するテーブル設計書を示す図である。
【図6】図1のネットワークフローリスト生成部19における第一の処理を実現するSQLコードの一例を示す図である。
【図7】図1のネットワークフローリスト生成部19における第二の処理を実現するSQLコードの一例を示す図である。
【図8】(a)は、図3のCPM_TUテーブル49に関するテーブル設計書を示す図であり、(b)は、図3のCPM_Pテーブル51に関するテーブル設計書を示す図である。
【図9】(a)は、図3のPROGRAMLISTテーブル53に関するテーブル設計書を示す図であり、(b)は、図3のCPDATAテーブル57に関するテーブル設計書を示す図である。
【図10】図1の端末フローリスト生成部23における第一の処理を実現するSQLコードの一例を示す図である。
【図11】図1の端末フローリスト生成部23における第二の処理を実現するSQLコードの一例を示す図である。
【図12】図1のプログラムフローリスト生成部27における処理を実現するSQLコードの一例を示す図である。
【図13】図1の検出部33におけるマルウェア検出処理の一例を示すフロー図である。
【図14】(a)は、図1の検出部33における第一の検出処理を実現するSQLコードの一例を示す図であり、(b)は、図1の検出部33における第二の検出処理を実現するSQLコードの一例を示す図であり、(c)は、図1の検出部33における第三の検出処理を実現するSQLコードの一例を示す図であり、(d)は、図1の検出部33における第四の検出処理を実現するSQLコードの一例を示す図である。
【図15】図3のWHITELISTテーブル61に関するテーブル設計書を示す図である。
【符号の説明】
【0070】
1 ネットワークシステム、3 通信端末、5 マルウェア検出装置、11 実行状況検出部、13 通信状況検出部、15 データ処理部、17 判断部、19 ネットワークフローリスト生成部、23 端末フローリスト生成部、27 プログラムフローリスト生成部、33 検出部、41 ホワイトリスト
【特許請求の範囲】
【請求項1】
通信端末と前記通信端末に存在するマルウェアを検出するマルウェア検出装置を含むネットワークシステムであって、
前記通信端末において実行されるプログラムの実行状況を検出する実行状況検出手段と、
前記通信端末と外部ネットワークとの通信状況を検出する通信状況検出手段と、
前記実行状況検出手段が検出した実行状況及び前記通信状況検出手段が検出した通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、
を備えるネットワークシステム。
【請求項2】
所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出装置であって、
前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、
を備えるマルウェア検出装置。
【請求項3】
前記判断手段は、
前記通信端末においてあらかじめマルウェアでないと想定されるプログラムを識別するデータ、及び、前記プログラムが通信する通信先を表すデータを少なくとも示すホワイトリスト情報を保持するホワイトリスト記録手段と、
前記実行状況及び前記通信状況に共通に含まれる情報に基づいて、前記実行状況及び前記通信状況を統合して統合情報を生成する統合手段と、
前記統合情報と前記ホワイトリスト情報とを比較して前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、
を備える請求項2記載のマルウェア検出装置。
【請求項4】
前記実行状況及び前記通信状況は、それぞれ、複数のデータにより示され、
前記共通に含まれる情報は、送信元特定情報、送信先特定情報、プロトコルを少なくとも示すものである、
請求項3記載のマルウェア検出装置。
【請求項5】
前記実行状況を示すデータは通信発生時刻を示す情報を含み、
前記通信状況を示す各データは開始時刻を示す情報を含み、
前記統合手段は、前記実行状況を示すデータ及び前記通信状況を示すデータにおいて、前記送信元特定情報について共通するデータが2つ以上存在する場合、前記通信発生時刻と前記開始時刻の差の小さいものを関連付けて統合処理を行う、
請求項4記載のマルウェア検出装置。
【請求項6】
前記判断手段は、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項2から5のいずれかに記載のマルウェア検出装置。
【請求項7】
前記判断手段は、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応し、かつ、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとが一致しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項3から6のいずれかに記載のマルウェア検出装置。
【請求項8】
前記判断手段は、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータがプログラムを識別するデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項7記載のマルウェア検出装置。
【請求項9】
前記判断手段は、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータが通信先を表すデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項7又は8記載のマルウェア検出装置。
【請求項10】
所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出方法であって、
判断手段が、前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断するステップ、
を含むマルウェア検出方法。
【請求項11】
コンピュータを、請求項2から9のいずれかに記載のマルウェア検出装置として機能させるためのプログラム。
【請求項12】
請求項11記載のプログラムを記録する記録媒体。
【請求項1】
通信端末と前記通信端末に存在するマルウェアを検出するマルウェア検出装置を含むネットワークシステムであって、
前記通信端末において実行されるプログラムの実行状況を検出する実行状況検出手段と、
前記通信端末と外部ネットワークとの通信状況を検出する通信状況検出手段と、
前記実行状況検出手段が検出した実行状況及び前記通信状況検出手段が検出した通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、
を備えるネットワークシステム。
【請求項2】
所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出装置であって、
前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、
を備えるマルウェア検出装置。
【請求項3】
前記判断手段は、
前記通信端末においてあらかじめマルウェアでないと想定されるプログラムを識別するデータ、及び、前記プログラムが通信する通信先を表すデータを少なくとも示すホワイトリスト情報を保持するホワイトリスト記録手段と、
前記実行状況及び前記通信状況に共通に含まれる情報に基づいて、前記実行状況及び前記通信状況を統合して統合情報を生成する統合手段と、
前記統合情報と前記ホワイトリスト情報とを比較して前記通信端末において実行されたプログラムがマルウェアか否かを判断する判断手段、
を備える請求項2記載のマルウェア検出装置。
【請求項4】
前記実行状況及び前記通信状況は、それぞれ、複数のデータにより示され、
前記共通に含まれる情報は、送信元特定情報、送信先特定情報、プロトコルを少なくとも示すものである、
請求項3記載のマルウェア検出装置。
【請求項5】
前記実行状況を示すデータは通信発生時刻を示す情報を含み、
前記通信状況を示す各データは開始時刻を示す情報を含み、
前記統合手段は、前記実行状況を示すデータ及び前記通信状況を示すデータにおいて、前記送信元特定情報について共通するデータが2つ以上存在する場合、前記通信発生時刻と前記開始時刻の差の小さいものを関連付けて統合処理を行う、
請求項4記載のマルウェア検出装置。
【請求項6】
前記判断手段は、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項2から5のいずれかに記載のマルウェア検出装置。
【請求項7】
前記判断手段は、前記実行状況を示すデータと前記通信状況を示すデータとが一対一で対応し、かつ、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとが一致しない場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項3から6のいずれかに記載のマルウェア検出装置。
【請求項8】
前記判断手段は、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータがプログラムを識別するデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項7記載のマルウェア検出装置。
【請求項9】
前記判断手段は、前記統合手段により生成された統合情報に含まれるデータと前記ホワイトリスト情報に含まれるデータとの間で一致しないデータが通信先を表すデータである場合、前記通信端末において実行されるプログラムがマルウェアであると判断する、
請求項7又は8記載のマルウェア検出装置。
【請求項10】
所定のネットワークシステム内の通信端末に存在するマルウェアを検出するマルウェア検出方法であって、
判断手段が、前記通信端末において実行されたプログラムの実行状況及び前記通信端末と外部ネットワークとの通信状況に基づいて、前記通信端末において実行されたプログラムがマルウェアか否かを判断するステップ、
を含むマルウェア検出方法。
【請求項11】
コンピュータを、請求項2から9のいずれかに記載のマルウェア検出装置として機能させるためのプログラム。
【請求項12】
請求項11記載のプログラムを記録する記録媒体。
【図1】
【図3】
【図6】
【図7】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図4】
【図5】
【図8】
【図9】
【図15】
【図3】
【図6】
【図7】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図4】
【図5】
【図8】
【図9】
【図15】
【公開番号】特開2009−271686(P2009−271686A)
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2008−120845(P2008−120845)
【出願日】平成20年5月7日(2008.5.7)
【出願人】(505164645)株式会社ネットワーク応用技術研究所 (9)
【出願人】(000164438)九州電力株式会社 (245)
【Fターム(参考)】
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願日】平成20年5月7日(2008.5.7)
【出願人】(505164645)株式会社ネットワーク応用技術研究所 (9)
【出願人】(000164438)九州電力株式会社 (245)
【Fターム(参考)】
[ Back to top ]