(57)【要約】【課題】コンピュータに不正な動作を行わせる可能性のあるプログラム（コード）を効率良く検出する。【解決手段】クライアント端末から出力されたデータを取得するためのリクエストをネットワーク・トラフィックから検出するリクエスト検出部３２と、このリクエストに応じて取得されたデータファイルをネットワーク・トラフィックから取得するファイル抽出部３３と、取得された第１のデータファイルに他の第２のデータファイルを取得するためのプログラムコードが含まれているか否かを検査し、第１のデータファイルに第２のデータファイルを取得するためのプログラムコードが含まれていた場合に、さらに、このプログラムコードに基づいて取得される第２のデータファイルを検査するファイル検査部３４と、を備える。【選択図】図２
2012150658.tif 000002
【特許請求の範囲】
【請求項１】
データファイルを取得するファイル取得手段と、
取得された第１のデータファイルに他の第２のデータファイルを取得するためのプログラムコードが含まれているか否かを検査する第１のファイル検査手段と、
前記第１のデータファイルに前記プログラムコードが含まれていた場合に、当該プログラムコードに基づいて取得される前記第２のデータファイルを検査する第２のファイル検査手段と、
を備える、情報処理装置。
【請求項２】
前記ファイル取得手段は、ネットワーク・トラフィックからデータを取得するためのリクエストを検出し、当該ネットワーク・トラフィックから当該リクエストに応じて取得されたデータファイルを抽出することにより前記第１のデータファイルを取得することを特徴とする、
請求項１に記載の情報処理装置。
【請求項３】
前記第１のファイル検査手段により前記第１のデータファイルから前記プログラムコードが検出された場合、当該第１のデータファイルおよび当該プログラムコードに基づいて取得される前記第２のデータファイルの送信元の情報を取得する送信元情報取得手段をさらに備えることを特徴とする、
請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記第２のファイル検査手段は、前記第２のデータファイルに予め定められた特定の動作を行うためのプログラムコードが含まれているか否かを検査する、
請求項１乃至請求項３のいずれかに記載の情報処理装置。
【請求項５】
前記第２のファイル検査手段は、少なくとも、前記第２のデータファイルの作成日時の情報、著作権情報、バージョン情報、ファイル名のいずれかを含む、当該第２のデータファイルのメタ情報が予め定められた条件を満たすか否かを検査する、
請求項１乃至請求項４に記載の情報処理装置。
【請求項６】
データファイルから当該データファイルのメタ情報を取得するメタ情報取得手段と、
取得された前記メタ情報のうち、少なくとも、前記データファイルの作成日時の情報が、予め定められた条件を満たす場合に、当該データファイルを検査対象として抽出する抽出手段と、
前記抽出手段により抽出された前記データファイルを対象として予め定められた処理を行う処理手段と、
を備える、情報処理装置。
【請求項７】
前記抽出手段は、前記メタ情報のうち、少なくとも、前記データファイルの著作権情報、バージョン情報、ファイル名のいずれかに関して、予め定められた条件を満たす場合に、さらに当該データファイルを処理対象として抽出する、
請求項６に記載の情報処理装置。
【請求項８】
ネットワークに接続されたクライアント端末と、
前記クライアント端末によるネットワーク通信を監視する通信監視装置と、を備え、
前記通信監視装置は、
前記クライアント端末から出力されたデータを取得するためのリクエストをネットワーク・トラフィックから検出し、当該リクエストに応じて取得されたデータファイルを当該ネットワーク・トラフィックから取得するファイル取得手段と、
取得された第１のデータファイルに他の第２のデータファイルを取得するためのプログラムコードが含まれているか否かを検査する第１のファイル検査手段と、
前記第１のデータファイルに前記プログラムコードが含まれていた場合に、当該プログラムコードに基づいて取得される前記第２のデータファイルを検査する第２のファイル検査手段と、
を備える、システム。
【請求項９】
ネットワーク通信の監視方法であって、
ネットワークに接続されたコンピュータが、ネットワーク・トラフィックからデータを取得するためのリクエストを検出し、当該ネットワーク・トラフィックから当該リクエストに応じて取得されたデータファイルを抽出することにより第１のデータファイルを取得するステップと、
前記コンピュータが、取得された第１のデータファイルに他の第２のデータファイルを取得するためのプログラムコードが含まれているか否かを検査するステップと、
前記コンピュータが、前記第１のデータファイルに前記プログラムコードが含まれていた場合に、当該プログラムコードに基づいて取得される前記第２のデータファイルを検査するステップと、
を含む、通信監視方法。
【請求項１０】
ネットワークに接続されたコンピュータを制御するプログラムにおいて、
ネットワーク・トラフィックからデータを取得するためのリクエストを検出し、当該ネットワーク・トラフィックから当該リクエストに応じて取得されたデータファイルを抽出することにより第１のデータファイルを取得するファイル取得手段と、
取得された第１のデータファイルに他の第２のデータファイルを取得するためのプログラムコードが含まれているか否かを検査する第１のファイル検査手段と、
前記第１のデータファイルに前記プログラムコードが含まれていた場合に、当該プログラムコードに基づいて取得される前記第２のデータファイルを検査する第２のファイル検査手段として、
前記コンピュータを機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信を監視し、ファイルを検出する情報処理装置、システム、通信監視方法およびプログラムに関する。
【背景技術】
【０００２】
コンピュータ・ウィルス等のマルウェアは、コンピュータ・システムに侵入して動作し、侵入したコンピュータ・システム自体やこのシステムに接続された他のシステムに、様々な被害を発生させる。マルウェアによる被害の発生を防止する方策として、コンピュータ・システムに侵入しようとするマルウェアを検出して侵入を防止することや、既にコンピュータ・システムに侵入したマルウェアを検出して除去することが行われる。
【０００３】
ネットワークを介して侵入するマルウェアの検出は、例えば、コンピュータ・システムの通信ログファイルを対象として行われる。また、ネットワーク通信を傍受したり、中継したりして得られたデータファイルを対象として行われる場合もある。この場合、ネットワーク通信時のパケット等の状態ではマルウェアを検出することが困難であるため、マルウェアの検出用のサーバ・コンピュータ等に通信内容を受信してデータファイルを復元した後に、マルウェアを検出するための処理が行われる。
【０００４】
マルウェアを検出する手法としては、一般に、既知のマルウェアに関する情報を集めたリスト（ブラックリスト）を用いたリストマッチングが行われる（例えば、特許文献１を参照）。しかし近年、マルウェアの種類は膨大となっており、ブラックリストを用いたリストマッチングのみによってマルウェアを検出する場合、検出処理にかかる負荷が増大している。
【０００５】
また、コンピュータ・ネットワークが広く普及した今日、通信トラフィックの量は膨大となっている。そのため、全てのネットワーク通信を対象としてリストマッチングによるマルウェアの検出を行うとすれば、検出処理に多大な負荷がかかる。
【０００６】
また近年、マルウェアは、その侵入方法が高度化かつ巧妙化し、コンピュータへの侵入を未然に防ぐことが困難となっている。例えば、外部からコンピュータへマルウェアを送りつけて侵入させるのではなく、コンピュータから主体的にマルウェアを取得（ダウンロード）するような工夫が行われる場合がある。これには、ウェブページ等に設けられた仕掛けによって、コンピュータ等のユーザが、マルウェアを取得（ダウンロード）するようにコンピュータ等を操作することを誘導するような場合も含まれる。
【０００７】
また、マルウェアをＰＤＦ（Portable Document Format）ファイルのような文書ファイル等にスクリプト等として記述する場合がある。このような場合、マルウェアを検出するには、マルウェアが記述されている文書ファイル等を解析しなければならず、処理に要する負荷がさらに増大する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−１８１２３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したように、従来、コンピュータ・システムへのマルウェアの侵入を完全に防止することは困難であった。そして、コンピュータ・システムに侵入した、あるいは侵入しようとするマルウェアをリストマッチングにより検出する処理は、マルウェアの種類が膨大となった近年では負荷が大きく、より効率の良い検出方法が求められている。また、コンピュータ・ネットワークが広く普及した今日、全てのネットワーク通信を対象としてリストマッチングによるマルウェアの検出を行うことも困難である。
【００１０】
本発明の目的は、コンピュータに不正な動作を行わせる可能性のあるプログラム（コード）を効率良く検出することにある。
【課題を解決するための手段】
【００１１】
上記の目的を達成するため、本発明は、次のような情報処理装置として実現される。この装置は、データファイルを取得するファイル取得手段と、取得された第１のデータファイルに他の第２のデータファイルを取得するためのプログラムコードが含まれているか否かを検査する第１のファイル検査手段と、第１のデータファイルにプログラムコードが含まれていた場合に、このプログラムコードに基づいて取得される第２のデータファイルを検査する第２のファイル検査手段と、を備える。
【００１２】
より好ましくは、ファイル取得手段は、ネットワーク・トラフィックからデータを取得するためのリクエストを検出し、ネットワーク・トラフィックからこのリクエストに応じて取得されたデータファイルを抽出することにより第１のデータファイルを取得する。
また、第１のファイル検査手段により第１のデータファイルから第２のデータファイルを取得するためのプログラムコードが検出された場合、第１のデータファイルおよびプログラムコードに基づいて取得される第２のデータファイルの送信元の情報を取得する送信元情報取得手段をさらに備える。
【００１３】
さらに詳細には、第２のファイル検査手段は、第２のデータファイルに予め定められた特定の動作を行うためのプログラムコードが含まれているか否かを検査する。
また、第２のファイル検査手段は、少なくとも、第２のデータファイルの作成日時の情報、著作権情報、バージョン情報、ファイル名のいずれかを含む、第２のデータファイルのメタ情報が予め定められた条件を満たすか否かを検査する。
【００１４】
また、上記の目的を達成する他の本発明は、データファイルからメタ情報を取得するメタ情報取得手段と、取得されたメタ情報のうち、少なくとも、データファイルの作成日時の情報が、予め定められた条件を満たす場合に、このデータファイルを検査対象として抽出する抽出手段と、この抽出手段により抽出されたデータファイルを対象として予め定められた処理を行う処理手段と、を備える。
より好ましくは、抽出手段は、メタ情報のうち、少なくとも、データファイルの著作権情報、バージョン情報、ファイル名のいずれかに関して、予め定められた条件を満たす場合に、さらにこのデータファイルを処理対象として抽出する。
【００１５】
上記の目的を達成するさらに他の本発明は、ネットワークに接続されたクライアント端末と、このクライアント端末によるネットワーク通信を監視する通信監視装置と、を備えたシステムとして構成される。通信監視装置は、クライアント端末から出力されたデータを取得するためのリクエストをネットワーク・トラフィックから検出し、このリクエストに応じて取得されたデータファイルをネットワーク・トラフィックから取得するファイル取得手段と、取得された第１のデータファイルに他の第２のデータファイルを取得するためのプログラムコードが含まれているか否かを検査する第１のファイル検査手段と、第１のデータファイルに第２のデータファイルを取得するためのプログラムコードが含まれていた場合に、このプログラムコードに基づいて取得される第２のデータファイルを検査する第２のファイル検査手段と、を備える。
【００１６】
上記の目的を達成するさらに他の本発明は、ネットワーク通信の監視方法としても把握される。この通信監視方法は、ネットワークに接続されたコンピュータが、ネットワーク・トラフィックからデータを取得するためのリクエストを検出し、ネットワーク・トラフィックからこのリクエストに応じて取得されたデータファイルを抽出することにより第１のデータファイルを取得するステップと、取得された第１のデータファイルに他の第２のデータファイルを取得するためのプログラムコードが含まれているか否かを検査するステップと、第１のデータファイルに第２のデータファイルを取得するためのプログラムコードが含まれていた場合に、このプログラムコードに基づいて取得される第２のデータファイルを検査するステップと、を含む。
【００１７】
さらに本発明は、コンピュータを制御して上述した情報処理装置の各機能を実現するプログラム、またはコンピュータに上記の通信監視方法における各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
【発明の効果】
【００１８】
本発明によれば、コンピュータに不正な動作を行わせる可能性のあるプログラム（コード）を効率良く検出することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態が適用されるコンピュータ・システムの全体構成例を示した図である。
【図２】本実施形態による通信解析装置の機能構成例を示す図である。
【図３】本実施形態の通信解析装置の処理の手順を示すフローチャートである。
【図４】通信取得部により取得されたＰＣＡＰファイルの例を示す図である。
【図５】本実施形態のファイル抽出部により抽出されたダウンロードファイルに含まれるコードの解析結果の例を示す図である。
【図６】本実施形態における実行ファイルの解析結果の例を示す図である。
【図７】実行ファイルのメタ情報の例を示す図である。
【図８】実行ファイルのメタ情報の他の例を示す図である。
【図９】実行ファイルのメタ情報のさらに他の例を示す図である。
【図１０】本実施形態の通信解析装置を実現するのに好適なコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
＜システム構成例＞
まず、本実施形態が適用されるコンピュータ・システムについて説明する。
図１は、このようなコンピュータ・システムの全体構成例を示した図である。
図示するように、このコンピュータ・システムは、クライアント端末１０と、プロキシサーバ２０と、通信解析装置３０とがＬＡＮ（Local Area Network）１００に接続されて構成されている。また、ＬＡＮ１００上の各装置は、プロキシサーバ２０等により提供されるファイア・ウォールを介してインターネット２００に接続されている。図示の構成において、ＬＡＮ１００上の装置から外部ネットワークへの通信は、必ずプロキシサーバ２０および通信解析装置３０を介して行われる。
【００２１】
クライアント端末１０は、ユーザが使用するコンピュータである。例えば、パーソナルコンピュータやワークステーション、その他のコンピュータ装置にて実現される。クライアント端末１０は、コンピュータ・ウィルス等のマルウェアに侵入される可能性があるものとする。なお、図１には４台のクライアント端末１０が記載されているが、ＬＡＮ１００に接続されるクライアント端末１０の台数は図示の４台には限定されない。
【００２２】
プロキシサーバ２０は、ＬＡＮ１００上のクライアント端末１０とインターネット２００上のサーバ（図示せず）との間の通信を中継するサーバ・コンピュータである。すなわち、クライアント端末１０は、必ずプロキシサーバ２０を介してインターネット２００にアクセスする。プロキシサーバ２０は、ファイア・ウォールの機能を備える他、既存のプロキシサーバが備える一般的な機能を有する。
【００２３】
通信解析装置３０は、ＬＡＮ１００とインターネット２００との間のネットワーク・トラフィックを取得（キャプチャ）し、解析する。そして、通信解析装置３０は、何らかのデータファイルを取得（ダウンロード）するために行われた通信を特定し、取得（ダウンロード）されたデータファイルを解析して、不正な動作を行う可能性のあるプログラムコード（以下、不正コード）の有無を調べる。そして、通信解析装置３０は、不正コードが検出されたデータファイルの送信元のアドレス情報（例えばＵＲＬ（Uniform Resource Locator）をブラックリストと照合する。通信解析装置３０の具体的な機能および動作については後述する。
【００２４】
ＬＡＮ１００は、クライアント端末１０やネットワーク・プリンタ（図示せず）等の端末装置を各種回線で接続し、これらの間でデータを送受信できるようにしたネットワークである。インターネット２００は、ＴＣＰ／ＩＰを用いて全世界のネットワークを相互に接続した巨大なネットワークである。
【００２５】
＜通信解析装置の機能構成＞
図２は、本実施形態による通信解析装置３０の機能構成例を示す図である。
図２に示す通信解析装置３０は、通信取得部３１と、リクエスト検出部３２と、ファイル抽出部３３と、ファイル検査部３４と、送信元情報取得部３５と、不正アクセス判断部３６とを備える。
【００２６】
通信取得部３１は、ＬＡＮ１００内の装置（クライアント端末１０等）とＬＡＮ１００の外部（インターネット２００）との間の通信に係るネットワーク・トラフィックを取得する。具体的には、例えば、ネットワーク上のデータストリームをキャプチャし、ＰＣＡＰ（Packet CAPture）ファイルを取得する。ＰＣＡＰファイルとは、ネットワーク上を流れているパケットをキャプチャして得られるファイルである。取得対象となる通信は、ＬＡＮ１００内の装置からＬＡＮ１００の外部への通信およびＬＡＮ１００の外部からＬＡＮ１００内の装置への通信の双方である。
【００２７】
リクエスト検出部３２は、通信取得部３１により取得されたＰＣＡＰファイルから、データを取得（ダウンロード）するためのリクエストを検出する。データを取得するためのリクエスト（命令）は、ネットワーク通信に使用されるプロトコルに応じて特定される。例えば、インターネット２００において一般的に使用されるＨＴＴＰであれば、ＧＥＴリクエストによりデータの取得が行われる。したがって、リクエスト検出部３２は、このＧＥＴリクエストをＰＣＡＰファイルから検出する。なお、このリクエスト検出部３２が検出するリクエストは、特にネットワーク上の特定の装置から出力されたものに限定する必要はない。ただし、ＬＡＮ１００内の装置を攻撃から保護することが目的であるので、クライアント端末１０等のＬＡＮ１００内の装置から外部（インターネット２００）の装置へ出力されたリクエストを対象として検出しても良い。
【００２８】
ファイル抽出部３３は、通信取得部３１によりキャプチャされたデータストリームから、リクエスト検出部３２により検出されたリクエストに基づいて取得（ダウンロード）されたデータファイル（ダウンロードファイル）を抽出する。抽出対象となるダウンロードファイルの種類は、特に限定しないが、不正コードがスクリプト等として記述される可能性のあるデータファイルを選択的に抽出しても良い。そのようなデータファイルとしては、例えば、ＰＤＦファイル、各種のオフィススイート（米国マイクロソフト社のMicrosoft Office（登録商標）等）の文書ファイル、イメージファイル等が考えられる。上記のリクエスト検出部３２においてＬＡＮ１００内の装置から外部の装置へ出力されたリクエストを検出した場合、そのリクエストを出力したＬＡＮ１００内の装置が取得したデータファイルが抽出されることとなる。
【００２９】
ファイル検査部３４は、ファイル抽出部３３により抽出されたダウンロードファイルを解析し、そのファイルに他の何らかのデータファイルを取得するためのコードが含まれているか否かを調べる。そして、そのようなコードが含まれていたならば、そのコードによって取得されるデータファイルが不正なファイル（以下、不正ファイル）であるか否かを調べる。すなわち、ファイル検査部３４は、ファイル抽出部３３により抽出された一次的なダウンロードファイルの検査手段であると共に、この一次的なダウンロードファイルに含まれるコードによって二次的に取得されるデータファイルの検査手段でもある。また、ファイル検査部３４は、上記の一次的なダウンロードファイルの解析結果から、上記の二次的に取得されるデータファイルの送信元の情報を取得する。すなわち、ファイル検査部３４は、この二次的に取得されるデータファイルの送信元情報の取得手段でもある。
【００３０】
本実施形態では、上記の不正コード（不正な動作を行う可能性のあるプログラムコード）を含むファイルと、正規に作成されたものではない可能性のあるファイルとを、不正ファイルと判断する。ただし、不正ファイルと判断されるべきファイルは、これらのファイルには限定されない。どのようなファイルを不正ファイルと判断するかは、本実施形態が適用されるシステムの仕様や使用目的等に応じて適宜設定して良い。ファイル検査部３４によるファイルの検査および不正コードの検出処理の具体的な内容については後述する。
【００３１】
送信元情報取得部３５は、ファイル検査部３４により不正ファイルと判断されたファイルの送信元のアドレス情報（ＵＲＬ等）を取得する。送信元のアドレス情報は、通信取得部３１により取得されたネットワーク・トラフィックの情報（ＰＣＡＰファイル等）から得られる。また、送信元情報取得部３５は、不正ファイルに不正コードが含まれており、その不正コードが他のファイルをネットワーク上のサーバから取得（ダウンロード）するためのコードである場合、当該他のファイルの送信元のアドレス情報（ＵＲＬ等）をネットワーク・トラフィックの情報から取得可能であれば、ファイル検査部３４の代わりに、この送信元の情報を取得しても良い。すなわち、送信元情報取得部３５は、ファイル抽出部３３により抽出された一次的なダウンロードファイルに関する送信元情報の取得手段であると共に、この一次的なダウンロードファイルに含まれるコードによって二次的に取得されるデータファイルの送信元情報の取得手段でもある。
【００３２】
不正アクセス判断部３６は、送信元情報取得部３５により得られた不正ファイルの送信元のアドレス情報をブラックリストと照合する。また、ファイル検査部３４により不正ファイルに含まれる不正コードが検出された場合、不正アクセス判断部３６は、検出された不正コードをブラックリストと照合する。さらに、この不正コードが他のファイルをネットワーク上のサーバから取得するためのコードであった場合、不正アクセス判断部３６は、送信元情報取得部３５により得られた不正コードが取得しようとするファイルの送信元のアドレス情報をブラックリストと照合する。そして、不正アクセス判断部３６は、これらの照合結果に基づき、ＬＡＮ１００上のクライアント端末１０への不正なアクセスが行われたか否かを判断する。なお、この不正アクセスの検出に用いられるブラックリストは、既存のリストを利用しても良いし、本実施形態が適用されるシステムの仕様や使用目的等に応じて独自に作成したリストを利用しても良い。
【００３３】
＜通信解析装置による処理＞
次に、上記のように構成された通信解析装置３０による処理について、具体例を挙げて説明する。
図３は、本実施形態の通信解析装置３０の処理の手順を示すフローチャートである。
【００３４】
通信解析装置３０は、ＬＡＮ１００内の装置（クライアント端末１０等）とインターネット２００との間の通信を常時監視する。そして、通信取得部３１が、ネットワーク・トラフィックを取得する（ステップ３０１）。ここではＰＣＡＰファイルを取得するものとする。次に、リクエスト検出部３２が、ＰＣＡＰファイルからデータを取得するためのリクエストが含まれるファイルを検出する（ステップ３０２）。ここではＧＥＴリクエストが含まれるＰＣＡＰファイルを検出するものとする。次に、ファイル抽出部３３が、ＧＥＴリクエストが含まれる通信（ＰＣＡＰファイル）において、そのＧＥＴリクエストによりダウンロードされたファイルを抽出する（ステップ３０３）。
【００３５】
図４は、通信取得部３１により取得されたＰＣＡＰファイルの例を示す図である。
図４において、破線で区切られた範囲が個別の通信に対応している。したがって、図４に示す例では、１番目の通信、３番目の通信、４番目の通信において、各々、ＧＥＴリクエストが検出される（図中、矢印Ａ参照）。また、３番目の通信には、ＧＥＴリクエストにより取得されたダウンロードファイルとして、ＰＤＦファイルが存在することがわかる（図中、矢印Ｂ参照）。したがって、ファイル抽出部３３により、３番目の通信からＰＤＦファイルが抽出される。
【００３６】
ダウンロードファイルが抽出されると、次に、ファイル検査部３４が、抽出したダウンロードファイルが不正ファイルに該当するか否かを調べる（ステップ３０４、３０５）。ダウンロードファイルが不正ファイルと判断された場合、次に、送信元情報取得部３５が、不正ファイルと判断されたダウンロードファイルの送信元のアドレス情報を取得する（ステップ３０６、３０７）。このとき、不正ファイルに不正コードが含まれており、その不正コードが他のファイルをネットワーク上のサーバから取得するためのコードであるならば、当該他のファイルの送信元のアドレス情報も取得する。当該他のファイルの送信元のアドレス情報は、ファイル検査部３４が不正ファイルの内容（例えばshellcodeの内容）を解析することにより得ることができる。また、当該他のファイルの送信元のアドレス情報がネットワーク・トラフィックの情報から取得可能である場合は、送信元情報取得部３５により取得することもできる。
【００３７】
次に、不正アクセス判断部３６が、ステップ３０７で得られた送信元のアドレス情報やステップ３０５で得られた不正コードに基づき、不正アクセスの有無を判断する（ステップ３０８）。判断結果は、例えばＬＡＮ１００のプロキシサーバ２０やクライアント端末１０に送られる。そして、これらの装置において不正アクセスに対する対応措置が行われる。
【００３８】
＜ファイル検査部による不正ファイルの検出＞
次に、ファイル検査部３４による不正ファイルの検出方法について説明する。
図５は、ファイル抽出部３３により抽出されたダウンロードファイルに含まれるコードの解析結果の例を示す図である。
図５には、ダウンロードファイルとして抽出されたＰＤＦファイルの解析結果の例が示されている。不正コードの検出は、キーワードマッチング等、既存の検出手法を用いて行うことができる。ここで、どのような検出手法を用いるかは、検出しようとする不正コードの種類に応じて選択される。また、解析対象のファイルが符号化されている場合は、符号化方式に対応した復号処理を行う。図５に示す例では、例えば２行目の「malicious: collectEmailInfo CVE-2007-5659 detected」、４行目の「malicious: shellcode of length 440/221」は、何らかのファイルを取得（ダウンロード）するコードである可能性があるので、不正コードとして検出される。
【００３９】
また、図５に示すＰＤＦファイルに記述されたコードにより何らかのファイルが取得された場合、ファイル検査部３４は、さらにこのコードを逆アセンブル（disassemble）して解析することにより、取得されたファイルを特定し、さらにそのファイルの送信元を特定する。図５に示す例では、例えば８行目の「file: shellcode_c30129f1846219245d1a207739844807db2e1b7b: 440 bytes」が解析される。
【００４０】
図５に示すようなコード（８行目のshellcode等）により二次的に取得されたファイルが実行ファイル（拡張子が「．ｅｘｅ」であるファイル等）である場合、ファイル検査部３４は、さらに、その実行ファイルが不正ファイルか否かを判断する。不正ファイルか否かを判断する方法は、本実施形態が適用されるシステムの仕様や使用目的等に応じて適宜設定して良い。好適な例として、本実施形態では、実行ファイルに含まれるコードにより不正な動作が行われる可能性が有る場合と、実行ファイルが正規に作成されたものではない可能性が有る場合に、その実行ファイルを不正ファイルと判断することとする。ただし、不正ファイルの判断条件は、これらに限定するものではなく、またこれらの条件を満たす場合であっても必ずしも不正ファイルと判断しなくても良い。
【００４１】
図６は、実行ファイルの解析結果の例を示す図である。
まず、不正な動作を行う可能性のあるコードの有無に基づいて実行ファイルが不正ファイルか否かを判断する判断方法について説明する。ここでは、あるコードが実行された場合に不正な動作が行われるか否かを厳密に判断する必要はない。不正な処理が実行される際に行われる蓋然性の高い動作を行うコードが実行ファイルに記述されていれば、ファイル検査部３４は、これを不正な動作を行う可能性のあるコードとして検出する。どのような動作を行うコードを検出対象とするかは、本実施形態が適用されるシステムの仕様や使用目的等に応じて適宜設定して良い。好適な例として、図６に示す例では、例えば４行目の「[+] Found an Interesting call to:  LoadLibraryA」（何らかのライブラリを読み込む動作）、５行目の「[+] Found an Interesting call to:  GetProcAddress」（何らかのアドレスを調べる動作）を、不正な動作を行う可能性のあるコードとして検出することができる。
【００４２】
なお、ここでは、不正な動作として、システム内での呼び出し（Found an Interesting call to）に関する動作を対象として説明した。これに加えて、ネットワーク上での振舞いに関するコードを対象として不正な動作を行う可能性のあるコードを検出しても良い。
【００４３】
次に、正規に作成されたものではない可能性が有る実行ファイルを判断する方法について説明する。取得された実行ファイルを解析すると、図６に示したようなファイルの内容についての解析結果と共に、このファイルのメタ情報が得られる。ファイル検査部３４は、このメタ情報に基づいて、実行ファイルが正規に作成されたものではない可能性の有無を判断する。ここでは、ファイルが正規に作成されたか否かを厳密に判断する必要はない。正規に作成されたものではない可能性があれば、このファイルを不正ファイルと判断する。正規に作成されたものではない可能性の有無の判断基準は、本実施形態が適用されるシステムの仕様や使用目的等に応じて適宜設定して良い。好適な例として、本実施形態では、実行ファイルが作成された日時の情報、実行ファイルの著作権情報、バージョン情報、ファイル名などを用いる例について説明する。
【００４４】
図７は、実行ファイルのメタ情報の例を示す図である。
ここでは、メタ情報として、実行ファイルが作成された日時の情報、実行ファイルの著作権情報およびバージョン情報に基づいて、不正ファイルか否かを判断する。図７に示す例では、実行ファイルが作成された日時の情報は、ヘッダ（図７（ａ）：FILE_HEADER）に記載されている（４行目、TimeDateStampを参照）。また、著作権情報およびバージョン情報は、バージョン・インフォメーション（図７（ｂ）：Version Information）に記載されている（１０〜１２行目、LegalCopyright、InternalName、FileVersionを参照）。
【００４５】
具体的な判断方法としては、例えば、実行ファイルが作成された日時が、正常なファイルであれば有り得ない日時である場合、その実行ファイルが不正ファイルと判断することが考えられる。有り得ない日時としては、存在しない日時や未来の日時、そのファイルで用いられるプログラムやそのプログラムが動作するオペレーティングシステムが存在しない過去の日時等が挙げられる。また、著作権情報（LegalCopyright）やバージョン情報（FileVersion）が記載されていない場合、その実行ファイルが不正ファイルと判断することが考えられる。さらに、著作権情報やバージョン情報をホワイトリスト（問題のない著作権者や実際に存在するバージョンを集めたリスト）と照合し、該当しない場合に、その実行ファイルが不正ファイルと判断することも考えられる。
【００４６】
さらに、著作権およびバージョン情報に加えてファイル名に基づく判断を行うこともできる。ファイル名は、バージョン・インフォメーション（図７（ｂ）：Version Information）に記載されている（１７行目、OriginalFilenameを参照）。ファイル名に基づく判断を行う場合、例えば、上記の著作権およびバージョン情報を用いる場合と同様に、ファイル名の有無に基づいて判断したり、ホワイトリストと照合して判断したりすることができる。
【００４７】
以上のように、ファイル検査部３４は、処理対象である上記の二次的に取得された実行ファイルからメタ情報を取得するメタ情報取得手段として機能する。また、ファイル検査部３４は、取得されたメタ情報が上記のように定められた条件を満たす場合に、その実行ファイルを、送信元情報取得部３５による送信元の情報の取得処理や不正アクセス判断部３６による照合処理の対象として抽出する抽出手段として機能する。
【００４８】
また、上記のような判断基準を単独で用いるだけでなく、複合的に用いて不正ファイルか否かを判断しても良い。複合的に用いることで、正規に作成されたものではない蓋然性がより高いファイルを不正ファイルと判断することができる。また、単独の判断基準だけでは不正ファイルか否かを判断することが困難な場合にも、複数の判断基準を適用することで、不正ファイルと判断することができる場合がある。
【００４９】
図８は、実行ファイルのメタ情報の他の例を示す図である。
図８に示すメタ情報は、実行ファイルが作成された日時の情報（図８（ａ）：FILE_HEADERの４行目、TimeDateStamp）が0x39769585 [Thu Jul 20 06:00:37 2000 UTC]である。また、著作権情報およびバージョン情報（図８（ｂ）：Version Information）の記載が無い。ここで、図８（ａ）に示された日時の情報は、この実行ファイルの作成日時としては有り得ない日時であるものとする。この場合、実行ファイルの作成日時が不正ファイルとしての判断条件を満たし、著作権情報およびバージョン情報に基づく実行ファイルの正当性も確認できない。そこで、図８のメタ情報を持つ実行ファイルは、不正ファイルと判断される。
【００５０】
図９は、実行ファイルのメタ情報のさらに他の例を示す図である。
図９に示すメタ情報は、実行ファイルが作成された日時の情報（図９（ａ）：FILE_HEADERの４行目、TimeDateStamp）が0x48D131F8 [Wed Sep 17 16:36:08 2008 UTC]である。また、著作権情報およびバージョン情報（図９（ｂ）：Version Information）の記載が無い。ここで、図９（ａ）に示された日時の情報は、この実行ファイルの作成日時として可能な日時であるものとする。この場合、実行ファイルの作成日時が不正ファイルとしての判断条件を満たしておらず、著作権情報およびバージョン情報に基づく実行ファイルの正当性の確認もできない。そのため、これらのメタ情報だけでは不正ファイルか否かを判断できない。
【００５１】
このような場合、正規に作成された実行ファイルであることの確証が得られないので、ファイル検査部３４は、この実行ファイルを不正ファイルと判断しても良い。また、不正な動作を行う可能性のあるコードの有無に基づく判断結果を加えて、複合的に判断しても良い。
【００５２】
以上説明したように、本実施形態は、判断対象のファイルに対し、まず、不正な動作を行う可能性があるか否かを判断する。そして、判断対象のファイルが不正な動作を行う可能性があると判断した場合に、そのファイルに関してブラックリストを用いたリストマッチングを行って不正アクセスの有無を判断する。したがって、リストマッチングを実行するファイルを事前に絞り込めるため、リストマッチングの処理における負荷を軽減させることができる。これは、本実施形態のように、ネットワーク通信におけるダウンロードファイルに関する不正アクセスの検出を行う場合に、特に効果的である。
【００５３】
また、本実施形態において、不正な動作を行う可能性があるか否かの事前判断は、ファイルに含まれるコードの種類やメタ情報などの静的な情報に基づいて行われ、そのファイルを実際に実行することはない。したがって、不正な動作による実被害が発生することもない。
【００５４】
さらにまた、本実施形態は、判断対象のファイルに含まれるコードが他のファイルを取得するためのコードである場合に、このコードを解析し、二次的に取得される当該他のファイルに対しても不正な動作を行う可能性があるか否かを判断することができる。
【００５５】
＜ハードウェアの構成例＞
最後に、本実施形態の通信解析装置３０を実現するのに好適なコンピュータのハードウェア構成について説明する。
図１０は、このようなコンピュータのハードウェア構成の一例を示す図である。
図１０に示すコンピュータは、演算手段であるＣＰＵ（Central Processing Unit）３００ａと、主記憶手段であるメモリ３００ｃを備える。また、外部デバイスとして、磁気ディスク装置（ＨＤＤ：Hard Disk Drive）３００ｇ、ネットワーク・インターフェイス３００ｆ、表示機構３００ｄ、音声機構３００ｈ、キーボードやマウス等の入力デバイス３００ｉ等を備える。
【００５６】
図１０に示す構成例では、メモリ３００ｃおよび表示機構３００ｄは、システム・コントローラ３００ｂを介してＣＰＵ３００ａに接続されている。また、ネットワーク・インターフェイス３００ｆ、磁気ディスク装置３００ｇ、音声機構３００ｈおよび入力デバイス３００ｉは、Ｉ／Ｏコントローラ３００ｅを介してシステム・コントローラ３００ｂと接続されている。各構成要素は、システム・バスや入出力バス等の各種のバスによって接続される。
【００５７】
なお、図１０は、本実施形態が適用されるのに好適なコンピュータのハードウェア構成を例示するに過ぎない。本実施形態は、ネットワーク・トラフィック等から得られるデータファイルを解析する情報処理システムに広く適用できるものであり、図示の構成においてのみ本実施例が実現されるのではない。
【００５８】
図１０において、磁気ディスク装置３００ｇにはＯＳやアプリケーション・ソフトのプログラムが格納されている。そして、これらのプログラムがメモリ３００ｃに読み込まれてＣＰＵ３００ａに実行されることにより、図２に示した通信取得部３１、リクエスト検出部３２、ファイル抽出部３３、ファイル検査部３４、送信元情報取得部３５、不正アクセス判断部３６を含む各種の機能が実現される。
【００５９】
なお、本実施形態では、不正ファイルが検出された場合に、ファイル抽出部３３により抽出された一次的なダウンロードファイルおよび二次的に取得されたデータファイル（不正ファイル）の送信元の情報およびコードの内容に基づき、不正アクセスがあったか否かを判断した。これに対し、通信解析装置３０は、これらのデータファイルの送信元の情報等を取得することまでを行い、リストマッチング等の手段による不正アクセスの判断は別のサーバにて行う構成としても良い。あるいは、通信解析装置３０はデータファイルの送信元の情報等に対するリストマッチング処理を行い、マッチングの結果を別のサーバへ送って、そのサーバにおいて不正アクセスの有無の判断や対処を行う構成としても良い。
【符号の説明】
【００６０】
１０…クライアント端末、２０…プロキシサーバ、３０…通信解析装置、３１…通信取得部、３２…リクエスト検出部、３３…ファイル抽出部、３４…ファイル検査部、３５…送信元情報取得部、１００…ＬＡＮ（Local Area Network）、２００…インターネット
【図１】
2012150658.tif 000003
【図２】
2012150658.tif 000004
【図３】
2012150658.tif 000005
【図４】
2012150658.tif 000006
【図５】
2012150658.tif 000007
【図６】
2012150658.tif 000008
【図７】
2012150658.tif 000009
【図８】
2012150658.tif 000010
【図９】
2012150658.tif 000011
【図１０】
2012150658.tif 000012