説明

情報処理装置、システム、通信監視方法およびプログラム

【課題】コンピュータに不正な動作を行わせる可能性のあるプログラム(コード)を効率良く検出する。
【解決手段】クライアント端末から出力されたデータを取得するためのリクエストをネットワーク・トラフィックから検出するリクエスト検出部32と、このリクエストに応じて取得されたデータファイルをネットワーク・トラフィックから取得するファイル抽出部33と、取得された第1のデータファイルに他の第2のデータファイルを取得するためのプログラムコードが含まれているか否かを検査し、第1のデータファイルに第2のデータファイルを取得するためのプログラムコードが含まれていた場合に、さらに、このプログラムコードに基づいて取得される第2のデータファイルを検査するファイル検査部34と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク通信を監視し、ファイルを検出する情報処理装置、システム、通信監視方法およびプログラムに関する。
【背景技術】
【0002】
コンピュータ・ウィルス等のマルウェアは、コンピュータ・システムに侵入して動作し、侵入したコンピュータ・システム自体やこのシステムに接続された他のシステムに、様々な被害を発生させる。マルウェアによる被害の発生を防止する方策として、コンピュータ・システムに侵入しようとするマルウェアを検出して侵入を防止することや、既にコンピュータ・システムに侵入したマルウェアを検出して除去することが行われる。
【0003】
ネットワークを介して侵入するマルウェアの検出は、例えば、コンピュータ・システムの通信ログファイルを対象として行われる。また、ネットワーク通信を傍受したり、中継したりして得られたデータファイルを対象として行われる場合もある。この場合、ネットワーク通信時のパケット等の状態ではマルウェアを検出することが困難であるため、マルウェアの検出用のサーバ・コンピュータ等に通信内容を受信してデータファイルを復元した後に、マルウェアを検出するための処理が行われる。
【0004】
マルウェアを検出する手法としては、一般に、既知のマルウェアに関する情報を集めたリスト(ブラックリスト)を用いたリストマッチングが行われる(例えば、特許文献1を参照)。しかし近年、マルウェアの種類は膨大となっており、ブラックリストを用いたリストマッチングのみによってマルウェアを検出する場合、検出処理にかかる負荷が増大している。
【0005】
また、コンピュータ・ネットワークが広く普及した今日、通信トラフィックの量は膨大となっている。そのため、全てのネットワーク通信を対象としてリストマッチングによるマルウェアの検出を行うとすれば、検出処理に多大な負荷がかかる。
【0006】
また近年、マルウェアは、その侵入方法が高度化かつ巧妙化し、コンピュータへの侵入を未然に防ぐことが困難となっている。例えば、外部からコンピュータへマルウェアを送りつけて侵入させるのではなく、コンピュータから主体的にマルウェアを取得(ダウンロード)するような工夫が行われる場合がある。これには、ウェブページ等に設けられた仕掛けによって、コンピュータ等のユーザが、マルウェアを取得(ダウンロード)するようにコンピュータ等を操作することを誘導するような場合も含まれる。
【0007】
また、マルウェアをPDF(Portable Document Format)ファイルのような文書ファイル等にスクリプト等として記述する場合がある。このような場合、マルウェアを検出するには、マルウェアが記述されている文書ファイル等を解析しなければならず、処理に要する負荷がさらに増大する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2009−181233号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
上述したように、従来、コンピュータ・システムへのマルウェアの侵入を完全に防止することは困難であった。そして、コンピュータ・システムに侵入した、あるいは侵入しようとするマルウェアをリストマッチングにより検出する処理は、マルウェアの種類が膨大となった近年では負荷が大きく、より効率の良い検出方法が求められている。また、コンピュータ・ネットワークが広く普及した今日、全てのネットワーク通信を対象としてリストマッチングによるマルウェアの検出を行うことも困難である。
【0010】
本発明の目的は、コンピュータに不正な動作を行わせる可能性のあるプログラム(コード)を効率良く検出することにある。
【課題を解決するための手段】
【0011】
上記の目的を達成するため、本発明は、次のような情報処理装置として実現される。この装置は、データファイルを取得するファイル取得手段と、取得された第1のデータファイルに他の第2のデータファイルを取得するためのプログラムコードが含まれているか否かを検査する第1のファイル検査手段と、第1のデータファイルにプログラムコードが含まれていた場合に、このプログラムコードに基づいて取得される第2のデータファイルを検査する第2のファイル検査手段と、を備える。
【0012】
より好ましくは、ファイル取得手段は、ネットワーク・トラフィックからデータを取得するためのリクエストを検出し、ネットワーク・トラフィックからこのリクエストに応じて取得されたデータファイルを抽出することにより第1のデータファイルを取得する。
また、第1のファイル検査手段により第1のデータファイルから第2のデータファイルを取得するためのプログラムコードが検出された場合、第1のデータファイルおよびプログラムコードに基づいて取得される第2のデータファイルの送信元の情報を取得する送信元情報取得手段をさらに備える。
【0013】
さらに詳細には、第2のファイル検査手段は、第2のデータファイルに予め定められた特定の動作を行うためのプログラムコードが含まれているか否かを検査する。
また、第2のファイル検査手段は、少なくとも、第2のデータファイルの作成日時の情報、著作権情報、バージョン情報、ファイル名のいずれかを含む、第2のデータファイルのメタ情報が予め定められた条件を満たすか否かを検査する。
【0014】
また、上記の目的を達成する他の本発明は、データファイルからメタ情報を取得するメタ情報取得手段と、取得されたメタ情報のうち、少なくとも、データファイルの作成日時の情報が、予め定められた条件を満たす場合に、このデータファイルを検査対象として抽出する抽出手段と、この抽出手段により抽出されたデータファイルを対象として予め定められた処理を行う処理手段と、を備える。
より好ましくは、抽出手段は、メタ情報のうち、少なくとも、データファイルの著作権情報、バージョン情報、ファイル名のいずれかに関して、予め定められた条件を満たす場合に、さらにこのデータファイルを処理対象として抽出する。
【0015】
上記の目的を達成するさらに他の本発明は、ネットワークに接続されたクライアント端末と、このクライアント端末によるネットワーク通信を監視する通信監視装置と、を備えたシステムとして構成される。通信監視装置は、クライアント端末から出力されたデータを取得するためのリクエストをネットワーク・トラフィックから検出し、このリクエストに応じて取得されたデータファイルをネットワーク・トラフィックから取得するファイル取得手段と、取得された第1のデータファイルに他の第2のデータファイルを取得するためのプログラムコードが含まれているか否かを検査する第1のファイル検査手段と、第1のデータファイルに第2のデータファイルを取得するためのプログラムコードが含まれていた場合に、このプログラムコードに基づいて取得される第2のデータファイルを検査する第2のファイル検査手段と、を備える。
【0016】
上記の目的を達成するさらに他の本発明は、ネットワーク通信の監視方法としても把握される。この通信監視方法は、ネットワークに接続されたコンピュータが、ネットワーク・トラフィックからデータを取得するためのリクエストを検出し、ネットワーク・トラフィックからこのリクエストに応じて取得されたデータファイルを抽出することにより第1のデータファイルを取得するステップと、取得された第1のデータファイルに他の第2のデータファイルを取得するためのプログラムコードが含まれているか否かを検査するステップと、第1のデータファイルに第2のデータファイルを取得するためのプログラムコードが含まれていた場合に、このプログラムコードに基づいて取得される第2のデータファイルを検査するステップと、を含む。
【0017】
さらに本発明は、コンピュータを制御して上述した情報処理装置の各機能を実現するプログラム、またはコンピュータに上記の通信監視方法における各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
【発明の効果】
【0018】
本発明によれば、コンピュータに不正な動作を行わせる可能性のあるプログラム(コード)を効率良く検出することができる。
【図面の簡単な説明】
【0019】
【図1】本実施形態が適用されるコンピュータ・システムの全体構成例を示した図である。
【図2】本実施形態による通信解析装置の機能構成例を示す図である。
【図3】本実施形態の通信解析装置の処理の手順を示すフローチャートである。
【図4】通信取得部により取得されたPCAPファイルの例を示す図である。
【図5】本実施形態のファイル抽出部により抽出されたダウンロードファイルに含まれるコードの解析結果の例を示す図である。
【図6】本実施形態における実行ファイルの解析結果の例を示す図である。
【図7】実行ファイルのメタ情報の例を示す図である。
【図8】実行ファイルのメタ情報の他の例を示す図である。
【図9】実行ファイルのメタ情報のさらに他の例を示す図である。
【図10】本実施形態の通信解析装置を実現するのに好適なコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0020】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
<システム構成例>
まず、本実施形態が適用されるコンピュータ・システムについて説明する。
図1は、このようなコンピュータ・システムの全体構成例を示した図である。
図示するように、このコンピュータ・システムは、クライアント端末10と、プロキシサーバ20と、通信解析装置30とがLAN(Local Area Network)100に接続されて構成されている。また、LAN100上の各装置は、プロキシサーバ20等により提供されるファイア・ウォールを介してインターネット200に接続されている。図示の構成において、LAN100上の装置から外部ネットワークへの通信は、必ずプロキシサーバ20および通信解析装置30を介して行われる。
【0021】
クライアント端末10は、ユーザが使用するコンピュータである。例えば、パーソナルコンピュータやワークステーション、その他のコンピュータ装置にて実現される。クライアント端末10は、コンピュータ・ウィルス等のマルウェアに侵入される可能性があるものとする。なお、図1には4台のクライアント端末10が記載されているが、LAN100に接続されるクライアント端末10の台数は図示の4台には限定されない。
【0022】
プロキシサーバ20は、LAN100上のクライアント端末10とインターネット200上のサーバ(図示せず)との間の通信を中継するサーバ・コンピュータである。すなわち、クライアント端末10は、必ずプロキシサーバ20を介してインターネット200にアクセスする。プロキシサーバ20は、ファイア・ウォールの機能を備える他、既存のプロキシサーバが備える一般的な機能を有する。
【0023】
通信解析装置30は、LAN100とインターネット200との間のネットワーク・トラフィックを取得(キャプチャ)し、解析する。そして、通信解析装置30は、何らかのデータファイルを取得(ダウンロード)するために行われた通信を特定し、取得(ダウンロード)されたデータファイルを解析して、不正な動作を行う可能性のあるプログラムコード(以下、不正コード)の有無を調べる。そして、通信解析装置30は、不正コードが検出されたデータファイルの送信元のアドレス情報(例えばURL(Uniform Resource Locator)をブラックリストと照合する。通信解析装置30の具体的な機能および動作については後述する。
【0024】
LAN100は、クライアント端末10やネットワーク・プリンタ(図示せず)等の端末装置を各種回線で接続し、これらの間でデータを送受信できるようにしたネットワークである。インターネット200は、TCP/IPを用いて全世界のネットワークを相互に接続した巨大なネットワークである。
【0025】
<通信解析装置の機能構成>
図2は、本実施形態による通信解析装置30の機能構成例を示す図である。
図2に示す通信解析装置30は、通信取得部31と、リクエスト検出部32と、ファイル抽出部33と、ファイル検査部34と、送信元情報取得部35と、不正アクセス判断部36とを備える。
【0026】
通信取得部31は、LAN100内の装置(クライアント端末10等)とLAN100の外部(インターネット200)との間の通信に係るネットワーク・トラフィックを取得する。具体的には、例えば、ネットワーク上のデータストリームをキャプチャし、PCAP(Packet CAPture)ファイルを取得する。PCAPファイルとは、ネットワーク上を流れているパケットをキャプチャして得られるファイルである。取得対象となる通信は、LAN100内の装置からLAN100の外部への通信およびLAN100の外部からLAN100内の装置への通信の双方である。
【0027】
リクエスト検出部32は、通信取得部31により取得されたPCAPファイルから、データを取得(ダウンロード)するためのリクエストを検出する。データを取得するためのリクエスト(命令)は、ネットワーク通信に使用されるプロトコルに応じて特定される。例えば、インターネット200において一般的に使用されるHTTPであれば、GETリクエストによりデータの取得が行われる。したがって、リクエスト検出部32は、このGETリクエストをPCAPファイルから検出する。なお、このリクエスト検出部32が検出するリクエストは、特にネットワーク上の特定の装置から出力されたものに限定する必要はない。ただし、LAN100内の装置を攻撃から保護することが目的であるので、クライアント端末10等のLAN100内の装置から外部(インターネット200)の装置へ出力されたリクエストを対象として検出しても良い。
【0028】
ファイル抽出部33は、通信取得部31によりキャプチャされたデータストリームから、リクエスト検出部32により検出されたリクエストに基づいて取得(ダウンロード)されたデータファイル(ダウンロードファイル)を抽出する。抽出対象となるダウンロードファイルの種類は、特に限定しないが、不正コードがスクリプト等として記述される可能性のあるデータファイルを選択的に抽出しても良い。そのようなデータファイルとしては、例えば、PDFファイル、各種のオフィススイート(米国マイクロソフト社のMicrosoft Office(登録商標)等)の文書ファイル、イメージファイル等が考えられる。上記のリクエスト検出部32においてLAN100内の装置から外部の装置へ出力されたリクエストを検出した場合、そのリクエストを出力したLAN100内の装置が取得したデータファイルが抽出されることとなる。
【0029】
ファイル検査部34は、ファイル抽出部33により抽出されたダウンロードファイルを解析し、そのファイルに他の何らかのデータファイルを取得するためのコードが含まれているか否かを調べる。そして、そのようなコードが含まれていたならば、そのコードによって取得されるデータファイルが不正なファイル(以下、不正ファイル)であるか否かを調べる。すなわち、ファイル検査部34は、ファイル抽出部33により抽出された一次的なダウンロードファイルの検査手段であると共に、この一次的なダウンロードファイルに含まれるコードによって二次的に取得されるデータファイルの検査手段でもある。また、ファイル検査部34は、上記の一次的なダウンロードファイルの解析結果から、上記の二次的に取得されるデータファイルの送信元の情報を取得する。すなわち、ファイル検査部34は、この二次的に取得されるデータファイルの送信元情報の取得手段でもある。
【0030】
本実施形態では、上記の不正コード(不正な動作を行う可能性のあるプログラムコード)を含むファイルと、正規に作成されたものではない可能性のあるファイルとを、不正ファイルと判断する。ただし、不正ファイルと判断されるべきファイルは、これらのファイルには限定されない。どのようなファイルを不正ファイルと判断するかは、本実施形態が適用されるシステムの仕様や使用目的等に応じて適宜設定して良い。ファイル検査部34によるファイルの検査および不正コードの検出処理の具体的な内容については後述する。
【0031】
送信元情報取得部35は、ファイル検査部34により不正ファイルと判断されたファイルの送信元のアドレス情報(URL等)を取得する。送信元のアドレス情報は、通信取得部31により取得されたネットワーク・トラフィックの情報(PCAPファイル等)から得られる。また、送信元情報取得部35は、不正ファイルに不正コードが含まれており、その不正コードが他のファイルをネットワーク上のサーバから取得(ダウンロード)するためのコードである場合、当該他のファイルの送信元のアドレス情報(URL等)をネットワーク・トラフィックの情報から取得可能であれば、ファイル検査部34の代わりに、この送信元の情報を取得しても良い。すなわち、送信元情報取得部35は、ファイル抽出部33により抽出された一次的なダウンロードファイルに関する送信元情報の取得手段であると共に、この一次的なダウンロードファイルに含まれるコードによって二次的に取得されるデータファイルの送信元情報の取得手段でもある。
【0032】
不正アクセス判断部36は、送信元情報取得部35により得られた不正ファイルの送信元のアドレス情報をブラックリストと照合する。また、ファイル検査部34により不正ファイルに含まれる不正コードが検出された場合、不正アクセス判断部36は、検出された不正コードをブラックリストと照合する。さらに、この不正コードが他のファイルをネットワーク上のサーバから取得するためのコードであった場合、不正アクセス判断部36は、送信元情報取得部35により得られた不正コードが取得しようとするファイルの送信元のアドレス情報をブラックリストと照合する。そして、不正アクセス判断部36は、これらの照合結果に基づき、LAN100上のクライアント端末10への不正なアクセスが行われたか否かを判断する。なお、この不正アクセスの検出に用いられるブラックリストは、既存のリストを利用しても良いし、本実施形態が適用されるシステムの仕様や使用目的等に応じて独自に作成したリストを利用しても良い。
【0033】
<通信解析装置による処理>
次に、上記のように構成された通信解析装置30による処理について、具体例を挙げて説明する。
図3は、本実施形態の通信解析装置30の処理の手順を示すフローチャートである。
【0034】
通信解析装置30は、LAN100内の装置(クライアント端末10等)とインターネット200との間の通信を常時監視する。そして、通信取得部31が、ネットワーク・トラフィックを取得する(ステップ301)。ここではPCAPファイルを取得するものとする。次に、リクエスト検出部32が、PCAPファイルからデータを取得するためのリクエストが含まれるファイルを検出する(ステップ302)。ここではGETリクエストが含まれるPCAPファイルを検出するものとする。次に、ファイル抽出部33が、GETリクエストが含まれる通信(PCAPファイル)において、そのGETリクエストによりダウンロードされたファイルを抽出する(ステップ303)。
【0035】
図4は、通信取得部31により取得されたPCAPファイルの例を示す図である。
図4において、破線で区切られた範囲が個別の通信に対応している。したがって、図4に示す例では、1番目の通信、3番目の通信、4番目の通信において、各々、GETリクエストが検出される(図中、矢印A参照)。また、3番目の通信には、GETリクエストにより取得されたダウンロードファイルとして、PDFファイルが存在することがわかる(図中、矢印B参照)。したがって、ファイル抽出部33により、3番目の通信からPDFファイルが抽出される。
【0036】
ダウンロードファイルが抽出されると、次に、ファイル検査部34が、抽出したダウンロードファイルが不正ファイルに該当するか否かを調べる(ステップ304、305)。ダウンロードファイルが不正ファイルと判断された場合、次に、送信元情報取得部35が、不正ファイルと判断されたダウンロードファイルの送信元のアドレス情報を取得する(ステップ306、307)。このとき、不正ファイルに不正コードが含まれており、その不正コードが他のファイルをネットワーク上のサーバから取得するためのコードであるならば、当該他のファイルの送信元のアドレス情報も取得する。当該他のファイルの送信元のアドレス情報は、ファイル検査部34が不正ファイルの内容(例えばshellcodeの内容)を解析することにより得ることができる。また、当該他のファイルの送信元のアドレス情報がネットワーク・トラフィックの情報から取得可能である場合は、送信元情報取得部35により取得することもできる。
【0037】
次に、不正アクセス判断部36が、ステップ307で得られた送信元のアドレス情報やステップ305で得られた不正コードに基づき、不正アクセスの有無を判断する(ステップ308)。判断結果は、例えばLAN100のプロキシサーバ20やクライアント端末10に送られる。そして、これらの装置において不正アクセスに対する対応措置が行われる。
【0038】
<ファイル検査部による不正ファイルの検出>
次に、ファイル検査部34による不正ファイルの検出方法について説明する。
図5は、ファイル抽出部33により抽出されたダウンロードファイルに含まれるコードの解析結果の例を示す図である。
図5には、ダウンロードファイルとして抽出されたPDFファイルの解析結果の例が示されている。不正コードの検出は、キーワードマッチング等、既存の検出手法を用いて行うことができる。ここで、どのような検出手法を用いるかは、検出しようとする不正コードの種類に応じて選択される。また、解析対象のファイルが符号化されている場合は、符号化方式に対応した復号処理を行う。図5に示す例では、例えば2行目の「malicious: collectEmailInfo CVE-2007-5659 detected」、4行目の「malicious: shellcode of length 440/221」は、何らかのファイルを取得(ダウンロード)するコードである可能性があるので、不正コードとして検出される。
【0039】
また、図5に示すPDFファイルに記述されたコードにより何らかのファイルが取得された場合、ファイル検査部34は、さらにこのコードを逆アセンブル(disassemble)して解析することにより、取得されたファイルを特定し、さらにそのファイルの送信元を特定する。図5に示す例では、例えば8行目の「file: shellcode_c30129f1846219245d1a207739844807db2e1b7b: 440 bytes」が解析される。
【0040】
図5に示すようなコード(8行目のshellcode等)により二次的に取得されたファイルが実行ファイル(拡張子が「.exe」であるファイル等)である場合、ファイル検査部34は、さらに、その実行ファイルが不正ファイルか否かを判断する。不正ファイルか否かを判断する方法は、本実施形態が適用されるシステムの仕様や使用目的等に応じて適宜設定して良い。好適な例として、本実施形態では、実行ファイルに含まれるコードにより不正な動作が行われる可能性が有る場合と、実行ファイルが正規に作成されたものではない可能性が有る場合に、その実行ファイルを不正ファイルと判断することとする。ただし、不正ファイルの判断条件は、これらに限定するものではなく、またこれらの条件を満たす場合であっても必ずしも不正ファイルと判断しなくても良い。
【0041】
図6は、実行ファイルの解析結果の例を示す図である。
まず、不正な動作を行う可能性のあるコードの有無に基づいて実行ファイルが不正ファイルか否かを判断する判断方法について説明する。ここでは、あるコードが実行された場合に不正な動作が行われるか否かを厳密に判断する必要はない。不正な処理が実行される際に行われる蓋然性の高い動作を行うコードが実行ファイルに記述されていれば、ファイル検査部34は、これを不正な動作を行う可能性のあるコードとして検出する。どのような動作を行うコードを検出対象とするかは、本実施形態が適用されるシステムの仕様や使用目的等に応じて適宜設定して良い。好適な例として、図6に示す例では、例えば4行目の「[+] Found an Interesting call to: LoadLibraryA」(何らかのライブラリを読み込む動作)、5行目の「[+] Found an Interesting call to: GetProcAddress」(何らかのアドレスを調べる動作)を、不正な動作を行う可能性のあるコードとして検出することができる。
【0042】
なお、ここでは、不正な動作として、システム内での呼び出し(Found an Interesting call to)に関する動作を対象として説明した。これに加えて、ネットワーク上での振舞いに関するコードを対象として不正な動作を行う可能性のあるコードを検出しても良い。
【0043】
次に、正規に作成されたものではない可能性が有る実行ファイルを判断する方法について説明する。取得された実行ファイルを解析すると、図6に示したようなファイルの内容についての解析結果と共に、このファイルのメタ情報が得られる。ファイル検査部34は、このメタ情報に基づいて、実行ファイルが正規に作成されたものではない可能性の有無を判断する。ここでは、ファイルが正規に作成されたか否かを厳密に判断する必要はない。正規に作成されたものではない可能性があれば、このファイルを不正ファイルと判断する。正規に作成されたものではない可能性の有無の判断基準は、本実施形態が適用されるシステムの仕様や使用目的等に応じて適宜設定して良い。好適な例として、本実施形態では、実行ファイルが作成された日時の情報、実行ファイルの著作権情報、バージョン情報、ファイル名などを用いる例について説明する。
【0044】
図7は、実行ファイルのメタ情報の例を示す図である。
ここでは、メタ情報として、実行ファイルが作成された日時の情報、実行ファイルの著作権情報およびバージョン情報に基づいて、不正ファイルか否かを判断する。図7に示す例では、実行ファイルが作成された日時の情報は、ヘッダ(図7(a):FILE_HEADER)に記載されている(4行目、TimeDateStampを参照)。また、著作権情報およびバージョン情報は、バージョン・インフォメーション(図7(b):Version Information)に記載されている(10〜12行目、LegalCopyright、InternalName、FileVersionを参照)。
【0045】
具体的な判断方法としては、例えば、実行ファイルが作成された日時が、正常なファイルであれば有り得ない日時である場合、その実行ファイルが不正ファイルと判断することが考えられる。有り得ない日時としては、存在しない日時や未来の日時、そのファイルで用いられるプログラムやそのプログラムが動作するオペレーティングシステムが存在しない過去の日時等が挙げられる。また、著作権情報(LegalCopyright)やバージョン情報(FileVersion)が記載されていない場合、その実行ファイルが不正ファイルと判断することが考えられる。さらに、著作権情報やバージョン情報をホワイトリスト(問題のない著作権者や実際に存在するバージョンを集めたリスト)と照合し、該当しない場合に、その実行ファイルが不正ファイルと判断することも考えられる。
【0046】
さらに、著作権およびバージョン情報に加えてファイル名に基づく判断を行うこともできる。ファイル名は、バージョン・インフォメーション(図7(b):Version Information)に記載されている(17行目、OriginalFilenameを参照)。ファイル名に基づく判断を行う場合、例えば、上記の著作権およびバージョン情報を用いる場合と同様に、ファイル名の有無に基づいて判断したり、ホワイトリストと照合して判断したりすることができる。
【0047】
以上のように、ファイル検査部34は、処理対象である上記の二次的に取得された実行ファイルからメタ情報を取得するメタ情報取得手段として機能する。また、ファイル検査部34は、取得されたメタ情報が上記のように定められた条件を満たす場合に、その実行ファイルを、送信元情報取得部35による送信元の情報の取得処理や不正アクセス判断部36による照合処理の対象として抽出する抽出手段として機能する。
【0048】
また、上記のような判断基準を単独で用いるだけでなく、複合的に用いて不正ファイルか否かを判断しても良い。複合的に用いることで、正規に作成されたものではない蓋然性がより高いファイルを不正ファイルと判断することができる。また、単独の判断基準だけでは不正ファイルか否かを判断することが困難な場合にも、複数の判断基準を適用することで、不正ファイルと判断することができる場合がある。
【0049】
図8は、実行ファイルのメタ情報の他の例を示す図である。
図8に示すメタ情報は、実行ファイルが作成された日時の情報(図8(a):FILE_HEADERの4行目、TimeDateStamp)が0x39769585 [Thu Jul 20 06:00:37 2000 UTC]である。また、著作権情報およびバージョン情報(図8(b):Version Information)の記載が無い。ここで、図8(a)に示された日時の情報は、この実行ファイルの作成日時としては有り得ない日時であるものとする。この場合、実行ファイルの作成日時が不正ファイルとしての判断条件を満たし、著作権情報およびバージョン情報に基づく実行ファイルの正当性も確認できない。そこで、図8のメタ情報を持つ実行ファイルは、不正ファイルと判断される。
【0050】
図9は、実行ファイルのメタ情報のさらに他の例を示す図である。
図9に示すメタ情報は、実行ファイルが作成された日時の情報(図9(a):FILE_HEADERの4行目、TimeDateStamp)が0x48D131F8 [Wed Sep 17 16:36:08 2008 UTC]である。また、著作権情報およびバージョン情報(図9(b):Version Information)の記載が無い。ここで、図9(a)に示された日時の情報は、この実行ファイルの作成日時として可能な日時であるものとする。この場合、実行ファイルの作成日時が不正ファイルとしての判断条件を満たしておらず、著作権情報およびバージョン情報に基づく実行ファイルの正当性の確認もできない。そのため、これらのメタ情報だけでは不正ファイルか否かを判断できない。
【0051】
このような場合、正規に作成された実行ファイルであることの確証が得られないので、ファイル検査部34は、この実行ファイルを不正ファイルと判断しても良い。また、不正な動作を行う可能性のあるコードの有無に基づく判断結果を加えて、複合的に判断しても良い。
【0052】
以上説明したように、本実施形態は、判断対象のファイルに対し、まず、不正な動作を行う可能性があるか否かを判断する。そして、判断対象のファイルが不正な動作を行う可能性があると判断した場合に、そのファイルに関してブラックリストを用いたリストマッチングを行って不正アクセスの有無を判断する。したがって、リストマッチングを実行するファイルを事前に絞り込めるため、リストマッチングの処理における負荷を軽減させることができる。これは、本実施形態のように、ネットワーク通信におけるダウンロードファイルに関する不正アクセスの検出を行う場合に、特に効果的である。
【0053】
また、本実施形態において、不正な動作を行う可能性があるか否かの事前判断は、ファイルに含まれるコードの種類やメタ情報などの静的な情報に基づいて行われ、そのファイルを実際に実行することはない。したがって、不正な動作による実被害が発生することもない。
【0054】
さらにまた、本実施形態は、判断対象のファイルに含まれるコードが他のファイルを取得するためのコードである場合に、このコードを解析し、二次的に取得される当該他のファイルに対しても不正な動作を行う可能性があるか否かを判断することができる。
【0055】
<ハードウェアの構成例>
最後に、本実施形態の通信解析装置30を実現するのに好適なコンピュータのハードウェア構成について説明する。
図10は、このようなコンピュータのハードウェア構成の一例を示す図である。
図10に示すコンピュータは、演算手段であるCPU(Central Processing Unit)300aと、主記憶手段であるメモリ300cを備える。また、外部デバイスとして、磁気ディスク装置(HDD:Hard Disk Drive)300g、ネットワーク・インターフェイス300f、表示機構300d、音声機構300h、キーボードやマウス等の入力デバイス300i等を備える。
【0056】
図10に示す構成例では、メモリ300cおよび表示機構300dは、システム・コントローラ300bを介してCPU300aに接続されている。また、ネットワーク・インターフェイス300f、磁気ディスク装置300g、音声機構300hおよび入力デバイス300iは、I/Oコントローラ300eを介してシステム・コントローラ300bと接続されている。各構成要素は、システム・バスや入出力バス等の各種のバスによって接続される。
【0057】
なお、図10は、本実施形態が適用されるのに好適なコンピュータのハードウェア構成を例示するに過ぎない。本実施形態は、ネットワーク・トラフィック等から得られるデータファイルを解析する情報処理システムに広く適用できるものであり、図示の構成においてのみ本実施例が実現されるのではない。
【0058】
図10において、磁気ディスク装置300gにはOSやアプリケーション・ソフトのプログラムが格納されている。そして、これらのプログラムがメモリ300cに読み込まれてCPU300aに実行されることにより、図2に示した通信取得部31、リクエスト検出部32、ファイル抽出部33、ファイル検査部34、送信元情報取得部35、不正アクセス判断部36を含む各種の機能が実現される。
【0059】
なお、本実施形態では、不正ファイルが検出された場合に、ファイル抽出部33により抽出された一次的なダウンロードファイルおよび二次的に取得されたデータファイル(不正ファイル)の送信元の情報およびコードの内容に基づき、不正アクセスがあったか否かを判断した。これに対し、通信解析装置30は、これらのデータファイルの送信元の情報等を取得することまでを行い、リストマッチング等の手段による不正アクセスの判断は別のサーバにて行う構成としても良い。あるいは、通信解析装置30はデータファイルの送信元の情報等に対するリストマッチング処理を行い、マッチングの結果を別のサーバへ送って、そのサーバにおいて不正アクセスの有無の判断や対処を行う構成としても良い。
【符号の説明】
【0060】
10…クライアント端末、20…プロキシサーバ、30…通信解析装置、31…通信取得部、32…リクエスト検出部、33…ファイル抽出部、34…ファイル検査部、35…送信元情報取得部、100…LAN(Local Area Network)、200…インターネット

【特許請求の範囲】
【請求項1】
データファイルを取得するファイル取得手段と、
取得された第1のデータファイルに他の第2のデータファイルを取得するためのプログラムコードが含まれているか否かを検査する第1のファイル検査手段と、
前記第1のデータファイルに前記プログラムコードが含まれていた場合に、当該プログラムコードに基づいて取得される前記第2のデータファイルを検査する第2のファイル検査手段と、
を備える、情報処理装置。
【請求項2】
前記ファイル取得手段は、ネットワーク・トラフィックからデータを取得するためのリクエストを検出し、当該ネットワーク・トラフィックから当該リクエストに応じて取得されたデータファイルを抽出することにより前記第1のデータファイルを取得することを特徴とする、
請求項1に記載の情報処理装置。
【請求項3】
前記第1のファイル検査手段により前記第1のデータファイルから前記プログラムコードが検出された場合、当該第1のデータファイルおよび当該プログラムコードに基づいて取得される前記第2のデータファイルの送信元の情報を取得する送信元情報取得手段をさらに備えることを特徴とする、
請求項1または請求項2に記載の情報処理装置。
【請求項4】
前記第2のファイル検査手段は、前記第2のデータファイルに予め定められた特定の動作を行うためのプログラムコードが含まれているか否かを検査する、
請求項1乃至請求項3のいずれかに記載の情報処理装置。
【請求項5】
前記第2のファイル検査手段は、少なくとも、前記第2のデータファイルの作成日時の情報、著作権情報、バージョン情報、ファイル名のいずれかを含む、当該第2のデータファイルのメタ情報が予め定められた条件を満たすか否かを検査する、
請求項1乃至請求項4に記載の情報処理装置。
【請求項6】
データファイルから当該データファイルのメタ情報を取得するメタ情報取得手段と、
取得された前記メタ情報のうち、少なくとも、前記データファイルの作成日時の情報が、予め定められた条件を満たす場合に、当該データファイルを検査対象として抽出する抽出手段と、
前記抽出手段により抽出された前記データファイルを対象として予め定められた処理を行う処理手段と、
を備える、情報処理装置。
【請求項7】
前記抽出手段は、前記メタ情報のうち、少なくとも、前記データファイルの著作権情報、バージョン情報、ファイル名のいずれかに関して、予め定められた条件を満たす場合に、さらに当該データファイルを処理対象として抽出する、
請求項6に記載の情報処理装置。
【請求項8】
ネットワークに接続されたクライアント端末と、
前記クライアント端末によるネットワーク通信を監視する通信監視装置と、を備え、
前記通信監視装置は、
前記クライアント端末から出力されたデータを取得するためのリクエストをネットワーク・トラフィックから検出し、当該リクエストに応じて取得されたデータファイルを当該ネットワーク・トラフィックから取得するファイル取得手段と、
取得された第1のデータファイルに他の第2のデータファイルを取得するためのプログラムコードが含まれているか否かを検査する第1のファイル検査手段と、
前記第1のデータファイルに前記プログラムコードが含まれていた場合に、当該プログラムコードに基づいて取得される前記第2のデータファイルを検査する第2のファイル検査手段と、
を備える、システム。
【請求項9】
ネットワーク通信の監視方法であって、
ネットワークに接続されたコンピュータが、ネットワーク・トラフィックからデータを取得するためのリクエストを検出し、当該ネットワーク・トラフィックから当該リクエストに応じて取得されたデータファイルを抽出することにより第1のデータファイルを取得するステップと、
前記コンピュータが、取得された第1のデータファイルに他の第2のデータファイルを取得するためのプログラムコードが含まれているか否かを検査するステップと、
前記コンピュータが、前記第1のデータファイルに前記プログラムコードが含まれていた場合に、当該プログラムコードに基づいて取得される前記第2のデータファイルを検査するステップと、
を含む、通信監視方法。
【請求項10】
ネットワークに接続されたコンピュータを制御するプログラムにおいて、
ネットワーク・トラフィックからデータを取得するためのリクエストを検出し、当該ネットワーク・トラフィックから当該リクエストに応じて取得されたデータファイルを抽出することにより第1のデータファイルを取得するファイル取得手段と、
取得された第1のデータファイルに他の第2のデータファイルを取得するためのプログラムコードが含まれているか否かを検査する第1のファイル検査手段と、
前記第1のデータファイルに前記プログラムコードが含まれていた場合に、当該プログラムコードに基づいて取得される前記第2のデータファイルを検査する第2のファイル検査手段として、
前記コンピュータを機能させる、プログラム。

【図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


【公開番号】特開2012−150658(P2012−150658A)
【公開日】平成24年8月9日(2012.8.9)
【国際特許分類】
【出願番号】特願2011−8926(P2011−8926)
【出願日】平成23年1月19日(2011.1.19)
【出願人】(500072884)株式会社ラック (25)
【Fターム(参考)】