説明

通信監視装置、通信監視プログラム、および通信監視方法

【課題】通信が許容されるプロトコルを利用した不正な通信を確実に検出すること。
【解決手段】単位データ取得部107は、セッション内の先頭パケットを所定数バイトのデータに分割して、単位データを得る。データ数判定部108は、セッション内における送受信回数が所定の閾値以上である単位データをフラグデータとする。マーキング部111は、セッション内のすべての先頭パケットにおいて、フラグデータをマーキングする。候補抽出部112は、フラグデータが1つ以上連続する部分のデータパターンを不正シグネチャ候補として抽出する。出現回数カウント部113は、出現回数が所定の閾値以上の不正シグネチャ候補をデータ長比較部114へ出力する。データ長比較部114は、不正シグネチャ候補のデータ長を比較し、データ長が最も長い不正シグネチャ候補を不正シグネチャとして不正シグネチャ記憶部105に登録する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信監視装置、通信監視プログラム、および通信監視方法に関し、特に、通信が許容されるプロトコルを利用した不正な通信を確実に検出することができる通信監視装置、通信監視プログラム、および通信監視方法に関する。
【背景技術】
【0002】
従来、インターネットなどのネットワークを介したサーバとクライアントの間の通信においては、例えば正当なアクセス権がない不正なクライアントによるサーバへのアクセスなどの不正な通信を防止することが重要となっている。具体的には、例えば企業などの組織内のLAN(Local Area Network)とインターネットなどの外部ネットワークとの境界にファイアウォールが設けられ、外部とLANの通信を制限するなどの対策が一般的である。
【0003】
ところで、インターネットを介したサーバとクライアント間のデータの送受信には、HTTP(Hyper Text Transfer Protocol)と呼ばれるプロトコルが用いられることがある。HTTPは、主にクライアントがウェブサーバからウェブページのデータを取得する際などに用いられる。HTTPとして伝送されるデータは、個別に設定されなければ、上述したファイアウォールによっても遮断されることがなく、サーバとクライアント間で自由に送受信される。したがって、悪意があるユーザが不正な伝送路を確立するための制御データをHTTPとして送信することにより、サーバとクライアント間で不正な通信のための伝送路が容易に確立され、不正な通信が行われる危険性がある。このように、遮断されることがないプロトコル(例えばHTTP)を利用した不正な通信のための伝送路の確立は、一般にトンネリングと呼ばれる。
【0004】
このようなトンネリングを防止するためには、例えば特許文献1および特許文献2などに開示された技術を用いることができる。すなわち、トンネリングの際には、不正な伝送路を確立するための制御データは特定のパターンを含んでいることから、このデータパターンをシグネチャとしてあらかじめ記憶しておき、記憶されたシグネチャと実際に送受信されるパケットとを照合することにより、パケットがトンネリングに利用されているか否かを判断することが可能となる。換言すれば、送受信されるパケットにシグネチャが含まれている場合には、トンネリングが行われていると判断することができる。
【0005】
【特許文献1】特開2003−218949号公報
【特許文献2】特開2004−140618号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、一般に、トンネリングなどの不正な通信の具体的な手法は明らかではないため、あらかじめ記憶されたシグネチャとパケットとの照合では、すべての不正な通信を確実に検出しきれないという問題がある。具体的には、不正な通信をするユーザは、常に同じ手法でトンネリングなどを実行するわけではないため、手法の変化に応じてシグネチャも変化すると考えられる。したがって、現在記憶されているシグネチャとの照合によって、将来も不正な通信を検出することができる保証はない。
【0007】
その一方で、不正な通信の制御データに含まれると疑われるあらゆるデータパターンをシグネチャとして記憶すれば、過剰に不正な通信が検出されることになり、正規の通信までが不正な通信と判定される虞がある。
【0008】
本発明はかかる点に鑑みてなされたものであり、通信が許容されるプロトコルを利用した不正な通信を確実に検出することができる通信監視装置、通信監視プログラム、および通信監視方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、通信監視装置は、通信用の制御情報を含むパケットを伝送可能なプロトコルによって送受信される複数のパケットから一対の送受信装置間で確立されたセッション内で送受信されるパケットを抽出するセッション抽出手段と、前記セッション抽出手段によって抽出されたセッションが不正な通信を実行するものであるか否かを判定する不正判定手段と、前記不正判定手段によってセッションが不正な通信を実行するものであると判定された場合に、当該セッション内において送受信された複数のパケットに所定数以上含まれる単位データが1つ以上連続してなる不正シグネチャ候補を抽出する候補抽出手段と、前記候補抽出手段によって抽出された不正シグネチャ候補それぞれのセッション内における出現回数が所定の閾値以上であるか否かを判定する出現回数判定手段と、前記出現回数判定手段による判定の結果、出現回数が所定の閾値以上である不正シグネチャ候補を不正シグネチャとして記憶する記憶手段とを有する構成を採る。
【0010】
また、通信監視プログラムは、コンピュータによって実行される通信監視プログラムであって、前記コンピュータに、通信用の制御情報を含むパケットを伝送可能なプロトコルによって送受信される複数のパケットから一対の送受信装置間で確立されたセッション内で送受信されるパケットを抽出するセッション抽出ステップと、前記セッション抽出ステップにて抽出されたセッションが不正な通信を実行するものであるか否かを判定する不正判定ステップと、前記不正判定ステップにてセッションが不正な通信を実行するものであると判定された場合に、当該セッション内において送受信された複数のパケットに所定数以上含まれる単位データが1つ以上連続してなる不正シグネチャ候補を抽出する候補抽出ステップと、前記候補抽出ステップにて抽出された不正シグネチャ候補それぞれのセッション内における出現回数が所定の閾値以上であるか否かを判定する出現回数判定ステップと、前記出現回数判定ステップにおける判定の結果、出現回数が所定の閾値以上である不正シグネチャ候補を不正シグネチャとしてメモリに登録する登録ステップとを実行させるようにした。
【0011】
また、通信監視方法は、通信用の制御情報を含むパケットを伝送可能なプロトコルによって送受信される複数のパケットから一対の送受信装置間で確立されたセッション内で送受信されるパケットを抽出するセッション抽出ステップと、前記セッション抽出ステップにて抽出されたセッションが不正な通信を実行するものであるか否かを判定する不正判定ステップと、前記不正判定ステップにてセッションが不正な通信を実行するものであると判定された場合に、当該セッション内において送受信された複数のパケットに所定数以上含まれる単位データが1つ以上連続してなる不正シグネチャ候補を抽出する候補抽出ステップと、前記候補抽出ステップにて抽出された不正シグネチャ候補それぞれのセッション内における出現回数が所定の閾値以上であるか否かを判定する出現回数判定ステップと、前記出現回数判定ステップにおける判定の結果、出現回数が所定の閾値以上である不正シグネチャ候補を不正シグネチャとしてメモリに登録する登録ステップとを有するようにした。
【0012】
これらによれば、不正な通信を実行すると判定されたセッションから、繰り返し送受信された単位データによって構成される不正シグネチャ候補を抽出し、不正シグネチャ候補のうちセッション内での出現回数が多いものを不正シグネチャとして記憶する。このため、不正な通信を実行するセッションに特徴的な不正シグネチャを新たに生成して、常に最新の不正シグネチャを学習することができる。したがって、セッション内のパケットと不正シグネチャとの照合により、通信が許容されるプロトコルを利用した不正な通信を確実に検出することができる。
【発明の効果】
【0013】
本明細書に開示された通信監視装置、通信監視プログラム、および通信監視方法によれば、通信が許容されるプロトコルを利用した不正な通信を確実に検出することができる。
【発明を実施するための最良の形態】
【0014】
本発明の骨子は、セッション内に繰り返し出現するデータパターンを抽出し、抽出されたデータパターンが1つ以上連続する部分を不正シグネチャの候補とした上で、候補の中から出現回数が閾値以上かつデータ長が最大のものを不正シグネチャとして登録することである。以下、本発明の一実施の形態について、図面を参照しながら詳細に説明する。
【0015】
図1は、本発明の一実施の形態に係る通信システムの概略構成を示すブロック図である。同図に示す通信システムは、サーバ10、クライアント20、中継装置30、および通信監視装置100を有している。
【0016】
サーバ10は、ネットワークNに接続されており、ネットワークNを介して複数のクライアント20との間でパケットを送受信する。また、複数のクライアント20は、中継装置30を介してネットワークNに接続されており、サーバ10との間でパケットを送受信する。中継装置30は、例えばルータ、スイッチ、またはファイアウォールなどを含み、サーバ10とクライアント20間で送受信されるパケットを中継する。
【0017】
ここで、サーバ10およびクライアント20は、互いにアプリケーション層のメッセージを生成してデータを要求したり応答したりするが、このメッセージは、サイズが一定ではないため、このメッセージをTCP/IP(Transmission Control Protocol/Internet Protocol)層の所定サイズのパケットとして送受信している。すなわち、サーバ10およびクライアント20は、通信プロトコルの制御情報を含む制御データと制御情報によって制御する対象となる情報データとからなるメッセージを生成し、生成されたメッセージを1パケットに対応する所定サイズに分割して送信する。
【0018】
したがって、本実施の形態においては、例えば図2に示す2通りのパケット構成のパケットがサーバ10とクライアント20間で送受信されている。すなわち、図2上段に示すように、メッセージを構成する制御データおよび情報データに、パケットの送信元アドレスや宛先アドレスなどを格納するTCP/IPヘッダが付加されているパケットと、図2下段に示すように、情報データのみにTCP/IPヘッダが付加されているパケットとの2通りのパケットが送受信される。これらのパケットのうち、図2上段に示す制御データを含むパケットは、1つのメッセージの先頭に配置される制御データを含むものであるため、以下においては、制御データを含むパケットを「先頭パケット」という。これに対して、図2下段に示す情報データのみを含むパケットは、同一のメッセージに含まれる制御データが既に先行するパケットによって送受信されている。
【0019】
図1に戻って、通信監視装置100は、サーバ10とクライアント20間で送受信されるパケットを取得し、サーバ10とクライアント20間で確立されるそれぞれのセッションごとに不正なメッセージが送受信されているか否かを監視する。このとき、通信監視装置100は、セッション内に繰り返し出現するデータパターンから不正シグネチャを生成し、生成された不正シグネチャと各パケットの制御データとの照合により、不正な通信が行われているか否かを判定する。なお、通信監視装置100による通信の監視については、後に詳述する。
【0020】
図3は、本実施の形態に係る通信監視装置100の要部構成を示すブロック図である。同図に示す通信監視装置100は、パケット受信部101、パケット蓄積部102、セッション抽出部103、先頭パケット数判定部104、不正シグネチャ記憶部105、不正シグネチャ照合部106、単位データ取得部107、データ数判定部108、トンネリング判定部109、監視結果出力部110、マーキング部111、候補抽出部112、出現回数カウント部113、およびデータ長比較部114を有している。
【0021】
パケット受信部101は、サーバ10およびクライアント20の間で送受信されるすべてのパケットを受信する。パケット蓄積部102は、パケット受信部101によって受信されたパケットを蓄積する。なお、パケット蓄積部102は、後述する処理において不正な通信と判定されないセッションのパケットについては、宛先アドレスによって指定されるサーバ10またはクライアント20へ送信するものとしても良い。また、パケット蓄積部102は、パケット受信部101によって受信されたパケットの複製を蓄積し、元のパケットをサーバ10またはクライアント20へ送信するものとしても良い。
【0022】
セッション抽出部103は、パケット蓄積部102によって蓄積されたパケットの中から、1つのセッションに相当するパケット群を抽出する。具体的には、セッション抽出部103は、パケット蓄積部102によって蓄積されたパケットの中から、セッション確立時に送受信されるSYNパケットとセッション切断時に送受信されるFINパケットとを検索して抽出するとともに、これらのSYNパケットおよびFINパケットの間に同一のサーバ10とクライアント20間で送受信されたパケットをすべて抽出する。また、セッション抽出部103は、セッションが強制終了される場合に送受信されるRSTパケットを検索したり、セッションのタイムアウトを検出したりすることも併せて実行し、セッションを抽出しても良い。
【0023】
先頭パケット数判定部104は、セッション内の先頭パケット数が所定数以上であるか否かを判定する。すなわち、先頭パケット数判定部104は、制御データを含む先頭パケットがサーバ10とクライアント20間で送受信された回数が所定数以上であるか否かを判定することにより、所定数以上の制御データがサーバ10およびクライアント20によってやり取りされたか否かを判定する。そして、先頭パケット数判定部104は、先頭パケット数が所定数未満である場合は、セッションが不正な通信を実行するものであるか否かを判定するのに十分な量の制御データがセッション内で送受信されていないと判断し、処理を終了する。一方、先頭パケット数判定部104は、先頭パケット数が所定数以上である場合は、先頭パケットを不正シグネチャ照合部106へ出力する。
【0024】
ここで、サーバ10およびクライアント20の一方から他方へ送信される先頭パケット数が、不正な通信と判定される場合の同一データパターンの出現回数以上でなければ、セッションが不正な通信と判定されることはあり得ない。したがって、同一のデータパターンの出現回数によってセッションが不正な通信であるか否かを判定するのは、先頭パケット数が同一データパターンの出現回数の閾値の2倍以上である場合のみで良い。そこで、先頭パケット数判定部104は、セッション内の先頭パケット数が後述するデータ数判定部108によってデータ数と比較される閾値の2倍以上であるか否かを判定する。同様の考え方により、先頭パケット数判定部104は、一方向の通信における先頭パケット数がデータ数判定部108によってデータ数と比較される閾値以上であるか否かを判定するようにしても良い。
【0025】
なお、先頭パケット数判定部104は、先頭パケット数が所定数未満(すなわち、データ数判定部108によってデータ数と比較される閾値の2倍未満)であってもすべてのパケットを不正シグネチャ照合部106へ出力し、不正シグネチャとの照合のみは実行させるようにしても良い。
【0026】
不正シグネチャ記憶部105は、トンネリングなどの不正な通信時に送受信されるパケットに頻繁に含まれるデータパターンを不正シグネチャとして記憶する。具体的には、不正シグネチャ記憶部105は、例えば図4に示すように、セッション内で繰り返し出現するデータパターンの先頭位置と先頭位置から数バイトのデータパターンからなるシグネチャとをそれぞれ含む不正シグネチャを記憶している。図4において、例えばIDが1の不正シグネチャは、制御データの先頭から3バイト目以降の5バイトのシグネチャが「FF、F0、72、A4、8D」となっていることを示している。
【0027】
不正シグネチャ照合部106は、先頭パケット数判定部104から出力された先頭パケットと不正シグネチャ記憶部105によって記憶された不正シグネチャとを照合し、セッションが不正な通信であるか否かを判定する。そして、不正シグネチャ照合部106は、先頭パケットの制御データに不正シグネチャが含まれていれば、現在抽出されているセッションが不正な通信であることを監視結果出力部110へ通知する。
【0028】
また、不正シグネチャ照合部106は、先頭パケットの制御データに不正シグネチャが含まれていなければ、先頭パケットを単位データ取得部107へ出力する。なお、上述したように、先頭パケット数判定部104によって先頭パケット数が所定数未満と判定された上ですべてのパケットが出力された場合には、不正シグネチャ照合部106は、不正シグネチャとの照合が完了した時点で先頭パケットを単位データ取得部107へ出力することなく処理を終了する。
【0029】
単位データ取得部107は、不正シグネチャ照合部106から出力された先頭パケットを所定数バイトのデータに分割し、単位データを得る。具体的には、単位データ取得部107は、先頭位置を先頭パケットの先頭から1バイトずつずらしながら、所定数バイトのデータを取得する。そして、単位データ取得部107は、例えば図5に示すように、先頭位置と所定数バイト(図では3バイト)のデータとを組み合わせた単位データを取得する。
【0030】
したがって、単位データ取得部107は、例えば先頭パケットの先頭の1バイトを先頭位置とし、先頭位置から1〜3バイト目のデータを先頭位置の「1」と組み合わせた単位データを取得する。同様に、単位データ取得部107は、例えば先頭パケットの先頭から2バイト目を先頭位置とし、先頭位置から1〜3バイト目(すなわち先頭パケットの先頭から2〜4バイト目)のデータを先頭位置の「2」と組み合わせた単位データを取得する。
【0031】
データ数判定部108は、単位データ取得部107によって取得されたすべての単位データを比較し、同一の単位データをグループ化し、各グループにおける単位データ数が所定の閾値以上であるか否かを判定する。そして、データ数判定部108は、単位データ数が所定の閾値以上となるグループがある場合に、その旨をトンネリング判定部109へ通知する。すなわち、データ数判定部108は、セッション内の先頭パケットにおいて同一のデータパターンが繰り返し出現する場合に、その旨をトンネリング判定部109へ通知する。
【0032】
また、データ数判定部108は、マーキング部111から要求があった場合に、単位データ数が所定の閾値以上となるグループの単位データ(以下「フラグデータ」という)をセッション内のすべての先頭パケットとともにマーキング部111へ出力する。
【0033】
トンネリング判定部109は、セッション内の先頭パケットにフラグデータが存在する場合に、先頭パケットによって指定されるアクセス先に実際にアクセスし、アクセス先からページ情報を取得する。そして、トンネリング判定部109は、取得されたページ情報内にトンネリングを示唆する「VPN」、「Share」、または「Storage」などの文字列が含まれるか否かを判定する。これらの文字列がページ情報内に含まれる場合、トンネリング判定部109は、現在抽出されているセッションがトンネリングを実行するものであると判断し、その旨を監視結果出力部110およびマーキング部111へ通知する。
【0034】
監視結果出力部110は、現在抽出されているセッションが不正な通信であることが不正シグネチャ照合部106から通知されたり、セッションがトンネリングを実行するものであることがトンネリング判定部109から通知されたりした場合に、その旨を監視結果として出力する。
【0035】
マーキング部111は、現在抽出されているセッションがトンネリングを実行するものである場合、セッション内における出現回数が所定の閾値以上の単位データ(フラグデータ)およびセッション内のすべての先頭パケットをデータ数判定部108に対して要求する。そして、マーキング部111は、セッション内のすべての先頭パケットにおいて、フラグデータをマーキングする。
【0036】
候補抽出部112は、マーキング部111によってマーキングされたフラグデータが1つ以上連続する部分のデータパターンを不正シグネチャ候補として抽出する。すなわち、候補抽出部112は、単位データのデータ長以上のサイズを有する不正シグネチャ候補を抽出する。例えば、候補抽出部112は、先頭位置が1バイト目である3バイトの単位データと先頭位置が2バイト目である3バイトの単位データとがフラグデータとして連続してマーキングされている場合には、それぞれの3バイトのフラグデータおよびマーキングされた4バイト全体のデータを不正シグネチャ候補として抽出する。
【0037】
出現回数カウント部113は、候補抽出部112によって抽出されたそれぞれの不正シグネチャ候補のセッション内における出現回数をカウントする。このとき、出現回数カウント部113は、同一のフラグデータが複数の異なる不正シグネチャ候補に含まれる場合でも、それぞれの不正シグネチャ候補の出現回数を別々にカウントする。すなわち、例えば3バイトのフラグデータとこのフラグデータを含む4バイト以上のデータとが不正シグネチャ候補として抽出された場合、出現回数カウント部113は、3バイトのフラグデータを不正シグネチャ候補とした場合の出現回数と、4バイト以上のデータを不正シグネチャ候補とした場合の出現回数とをそれぞれカウントする。そして、出現回数カウント部113は、出現回数が所定の閾値以上の不正シグネチャ候補をデータ長比較部114へ出力する。
【0038】
データ長比較部114は、出現回数カウント部113から出力された不正シグネチャ候補のデータ長を比較し、データ長が最も長い不正シグネチャ候補を不正シグネチャとして不正シグネチャ記憶部105に登録する。つまり、データ長比較部114は、セッション内での出現回数が所定の閾値以上かつデータ長が最長の不正シグネチャ候補を新たな不正シグネチャとして不正シグネチャ記憶部105に学習させる。
【0039】
次いで、上記のように構成された通信監視装置100の動作について、具体的に例を挙げながら図6に示すフロー図を参照して説明する。
【0040】
サーバ10およびクライアント20の間で送受信されるパケットは、常時通信監視装置100のパケット受信部101によって受信されており、パケット蓄積部102によって蓄積される。そして、セッション抽出部103によって、蓄積されたパケットの中から1つのセッションに相当するパケット群が抽出される(ステップS101)。すなわち、セッション抽出部103によって、セッション確立時に送受信されるSYNパケットとセッション切断時に送受信されるFINパケットとが検出され、SYNパケットの送受信時からFINパケットの送受信時までの間に送受信されたパケット群が1つのセッションのパケットとして抽出される。なお、上述したように、セッションの抽出に際しては、セッション抽出部103によって、RSTパケットが検索されたり、セッションのタイムアウトが検出されたりするようにしても良い。
【0041】
そして、先頭パケット数判定部104によって、セッション内の先頭パケット数がデータ数判定部108において同一の単位データからなるグループの単位データ数と比較される閾値の2倍以上であるか否かが判定される(ステップS102)。この判定の結果、先頭パケット数が閾値の2倍未満であれば(ステップS102No)、不正な通信か否かを判定するのに十分な量の制御データがセッション内で送受信されていないことを意味するため、セッションが不正な通信を実行するものと判定されることなく処理が終了する。これにより、不正な通信か否かの判定が不要なセッションに関しては、判定以降の処理を省略することができ、処理負荷を低減することができる。
【0042】
一方、先頭パケット数が閾値の2倍以上であれば(ステップS102Yes)、不正シグネチャ照合部106によって、先頭パケットに不正シグネチャ記憶部105によって記憶された不正シグネチャとの一致部分があるか否かが判定される(ステップS103)。この判定の結果、先頭パケットに不正シグネチャとの一致部分があれば(ステップS103Yes)、現在抽出されているセッションは不正な通信を実行するものであることを意味するため、その旨が監視結果出力部110へ通知され、セッションが不正な通信であることを示す監視結果が監視結果出力部110から出力される(ステップS113)。なお、先頭パケット数が閾値の2倍未満であっても、不正シグネチャ照合部106による先頭パケットと不正シグネチャとの照合が実行され、先頭パケットと不正シグネチャとの一致部分がある場合にはセッションが不正な通信を実行するものであることを示す監視結果が監視結果出力部110から出力されるようにしても良い。
【0043】
また、先頭パケットに不正シグネチャとの一致部分がなければ(ステップS103No)、不正シグネチャとの照合ではセッションが不正な通信とは判定されなかったことになり、先頭パケットが単位データ取得部107へ出力される。そして、単位データ取得部107によって、セッション内の先頭パケットから単位データが取得される(ステップS104)。具体的には、単位データ取得部107によって、先頭位置が先頭パケットの先頭から1バイトずつずらされながら、先頭位置以降の所定数バイトのデータが取得され、取得されたデータと先頭位置とを含む単位データが取得される。単位データに含まれる先頭位置としては、先頭パケットの先頭から何バイト目の位置であるかを示す数値などで良い。
【0044】
そして、データ数判定部108によって、同一の単位データがグループ化され、各グループに属する単位データ数が所定の閾値以上であるか否かが判定される(ステップS105)。この判定の結果、すべてのグループにおいて単位データ数が所定の閾値未満であれば(ステップS105No)、現在抽出されているセッションは不正な通信を実行するものではないと判断され、処理が終了する。一方、いずれかのグループにおいて単位データ数が所定の閾値以上であれば(ステップS105Yes)、現在抽出されているセッションが不正な通信を実行するものである可能性があるため、その旨がデータ数判定部108からトンネリング判定部109へ通知される。
【0045】
そして、トンネリング判定部109によって、先頭パケットによって指定されるアクセス先へのアクセスが実行され、アクセス先から取得されるページ情報に基づいて、現在抽出されているセッションがトンネリングを実行するものであるか否かが判定される(ステップS106)。具体的には、トンネリング判定部109によって、アクセス先から取得されるページ情報内にトンリングを示唆する文字列が含まれるか否かが判定される。この判定の結果、ページ情報内にトンネリングを示唆する文字列が含まれていなければ、セッションはトンネリングを実行するものではないと判定され(ステップS106No)、処理が終了する。一方、ページ情報内にトンネリングを示唆する文字列が含まれていれば、セッションはトンネリングを実行するものであると判定され(ステップS106Yes)、その旨が監視結果出力部110およびマーキング部111へ通知される。
【0046】
セッションがトンネリングを実行するものであることがマーキング部111へ通知されると、マーキング部111によって、単位データ数が所定の閾値以上となるグループに属する単位データ(フラグデータ)がセッション内のすべての先頭パケットとともにデータ数判定部108から取得される。そして、マーキング部111によって、先頭パケット上のフラグデータがマーキングされる(ステップS107)。具体的には、例えば図7に示すように、先頭パケットの3バイト目および4バイト目を先頭とした3バイトのフラグデータがパケット#1に存在すれば、図中斜線で示すように、これらのバイトがマーキングされる。同様に、パケット#2においては先頭パケットの8バイト目を先頭としたフラグデータがマーキングされ、パケット#3においては先頭パケットの3バイト目、4バイト目、および5バイト目を先頭としたフラグデータがマーキングされ、パケット#4においては先頭パケットの4バイト目および5バイト目を先頭としたフラグデータがマーキングされる。
【0047】
そして、候補抽出部112によって、マーキングされたフラグデータが1つ以上連続する部分のデータパターンが不正シグネチャ候補として抽出される(ステップS108)。すなわち、図7に示した例では、パケット#1の3バイト目からの3バイト、4バイト目からの3バイト、および3バイト目からの4バイトがそれぞれ不正シグネチャ候補として抽出される。また、パケット#3に関しては、パケット#1と同様の3つの不正シグネチャ候補に加えて、5バイト目からの3バイト、4バイト目からの4バイト、および3バイト目からの5バイトが不正シグネチャ候補として抽出される。
【0048】
セッション内のすべての先頭パケットから不正シグネチャ候補が抽出されると、出現回数カウント部113によって、各不正シグネチャ候補の出現回数がカウントされる(ステップS109)。具体的には、例えば図8に示すようにパケット#1〜#9において不正シグネチャ候補が出現している場合、それぞれの不正シグネチャ候補ごとの出現回数がカウントされる。図8においては、3バイト目を先頭とする3バイトのフラグデータに一致する不正シグネチャ候補(図中斜線で示す)は4回出現しており、4バイト目を先頭とする3バイトのフラグデータに一致する不正シグネチャ候補(図中縦線で示す)は5回出現しており、5バイト目を先頭とする3バイトのフラグデータに一致する不正シグネチャ候補(図中横線で示す)は4回出現しており、8バイト目を先頭とする3バイトのフラグデータに一致する不正シグネチャ候補(図中破線で示す)は1回出現している。また、3バイト目を先頭とする4バイトの不正シグネチャ候補は3回出現しており、4バイト目を先頭とする4バイトの不正シグネチャ候補は4回出現しており、3バイト目を先頭とする5バイトの不正シグネチャ候補は3回出現している。
【0049】
このように出現回数カウント部113によって不正シグネチャ候補ごとの出現回数がカウントされると、引き続き出現回数カウント部113によって、各不正シグネチャ候補の出現回数が所定の閾値以上であるか否かが判定される(ステップS110)。この判定の結果、不正シグネチャ候補の出現回数が所定の閾値未満であれば(ステップS110No)、この不正シグネチャ候補は不正な通信を実行するセッションに特徴的であるというほどセッション内に頻繁に出現しているわけではないと判断され、不正シグネチャとして登録されることがない。この場合には、現在抽出されているセッションがトンネリングを実行するものであることを示す監視結果が監視結果出力部110から出力されて(ステップS113)、処理が終了する。
【0050】
一方、不正シグネチャ候補の出現回数が所定の閾値以上であれば(ステップS110Yes)、この不正シグネチャ候補はデータ長比較部114へ出力される。そして、データ長比較部114によって、出現回数が所定の閾値以上である不正シグネチャ候補のデータ長が比較され(ステップS111)、データ長が最大でない不正シグネチャ候補は(ステップS111No)、不正シグネチャとして登録されることがない。この場合には、現在抽出されているセッションがトンネリングを実行するものであることを示す監視結果が監視結果出力部110から出力されて(ステップS113)、処理が終了する。また、データ長が最大の不正シグネチャ候補は(ステップS111Yes)、不正シグネチャとして不正シグネチャ記憶部105に登録される(ステップS112)。この場合にも、不正シグネチャの登録後、現在抽出されているセッションがトンネリングを実行するものであることを示す監視結果が監視結果出力部110から出力されて(ステップS113)、処理が終了する。
【0051】
具体的には、例えば図8において、不正シグネチャ候補の出現回数に対する所定の閾値が3である場合、パケット#2に出現している8バイト目からの不正シグネチャ候補は、出現回数が1回のみで閾値未満であるため、不正シグネチャの対象からはずされる。その他の不正シグネチャ候補は、いずれも3回以上出現しているため、不正シグネチャの対象となるが、データ長比較部114によるデータ長の比較の結果、パケット#1、#3、および#7に出現している3バイト目から5バイトの不正シグネチャ候補が不正シグネチャとして不正シグネチャ記憶部105に登録される。
【0052】
このようにして登録された不正シグネチャは、現在抽出されているセッションとは異なるセッションが抽出された際に、不正シグネチャ照合部106によって、新たなセッション内の先頭パケットと照合されることになる。そして、トンネリングを実行すると判定されたセッション内に頻繁に出現する不正シグネチャとの照合により、確実に不正な通信を実行するセッションを検出することができるとともに、データ長が長い不正シグネチャとの照合により、正規なセッションの先頭パケット中におけるデータパターンが不正シグネチャと偶然一致する可能性を低減することができる。
【0053】
以上のように、本実施の形態によれば、セッション内の先頭パケットに不正シグネチャとの一致部分がない場合でも、セッション内において所定の閾値以上繰り返して送受信されているフラグデータがあれば、セッションがトンネリングを実行するものであるか否かを判定する。そして、セッションがトンネリングを実行するものであれば、先頭パケットからフラグデータが連続してなる不正シグネチャ候補を抽出し、セッション内における出現回数が所定の閾値以上かつデータ長が最大の不正シグネチャ候補を新たな不正シグネチャとして登録する。このため、トンネリングを実行すると判定されたセッションから新たな不正シグネチャを生成して、常に最新の不正シグネチャを学習することができる。したがって、セッション内の先頭パケットと不正シグネチャとの照合により、通信が許容されるプロトコルを利用した不正な通信を確実に検出することができる。
【0054】
なお、上記一実施の形態においては、通信監視装置100によって、トンネリングと判定されたセッションから新たな不正シグネチャが生成されるものとしたが、上述した処理をコンピュータが読み取り可能なプログラムとして記述し、このプログラムをコンピュータに実行させることにより、本発明を実施することも可能である。
【0055】
以上の実施の形態に関して、さらに以下の付記を開示する。
【0056】
(付記1)通信用の制御情報を含むパケットを伝送可能なプロトコルによって送受信される複数のパケットから一対の送受信装置間で確立されたセッション内で送受信されるパケットを抽出するセッション抽出手段と、
前記セッション抽出手段によって抽出されたセッションが制御情報によって不正な通信を実行するものであるか否かを判定する不正判定手段と、
前記不正判定手段によってセッションが不正な通信を実行するものであると判定された場合に、当該セッション内において送受信された制御情報に所定数以上含まれる単位データが1つ以上連続してなる不正シグネチャ候補を抽出する候補抽出手段と、
前記候補抽出手段によって抽出された不正シグネチャ候補それぞれのセッション内における出現回数が所定の閾値以上であるか否かを判定する出現回数判定手段と、
前記出現回数判定手段による判定の結果、出現回数が所定の閾値以上である不正シグネチャ候補を不正シグネチャとして記憶する記憶手段と
を有することを特徴とする通信監視装置。
【0057】
(付記2)前記記憶手段は、
出現回数が所定の閾値以上である不正シグネチャ候補のうちデータ長が最大の不正シグネチャ候補を不正シグネチャとして記憶することを特徴とする付記1記載の通信監視装置。
【0058】
(付記3)前記不正判定手段は、
前記セッション抽出手段によって抽出されたセッション内の制御情報と前記記憶手段によって記憶された不正シグネチャとを照合する照合手段を含み、
前記照合手段による照合の結果、セッション内の制御情報に不正シグネチャとの一致部分がないセッションが不正な通信を実行するものであるか否かを判定することを特徴とする付記1記載の通信監視装置。
【0059】
(付記4)前記不正判定手段は、
前記セッション抽出手段によって抽出されたセッションのうち制御情報を含む先頭パケットが所定数以上送受信されているセッションについてのみ、不正な通信を実行するものであるか否かを判定することを特徴とする付記1記載の通信監視装置。
【0060】
(付記5)前記不正判定手段は、
セッション内の制御情報によって指定されるアクセス先にアクセスしてページ情報を取得し、取得されたページ情報に基づいて、セッションが不正な通信を実行するものであるか否かを判定することを特徴とする付記1記載の通信監視装置。
【0061】
(付記6)コンピュータによって実行される通信監視プログラムであって、前記コンピュータに、
通信用の制御情報を含むパケットを伝送可能なプロトコルによって送受信される複数のパケットから一対の送受信装置間で確立されたセッション内で送受信されるパケットを抽出するセッション抽出ステップと、
前記セッション抽出ステップにて抽出されたセッションが制御情報によって不正な通信を実行するものであるか否かを判定する不正判定ステップと、
前記不正判定ステップにてセッションが不正な通信を実行するものであると判定された場合に、当該セッション内において送受信された制御情報に所定数以上含まれる単位データが1つ以上連続してなる不正シグネチャ候補を抽出する候補抽出ステップと、
前記候補抽出ステップにて抽出された不正シグネチャ候補それぞれのセッション内における出現回数が所定の閾値以上であるか否かを判定する出現回数判定ステップと、
前記出現回数判定ステップにおける判定の結果、出現回数が所定の閾値以上である不正シグネチャ候補を不正シグネチャとしてメモリに登録する登録ステップと
を実行させることを特徴とする通信監視プログラム。
【0062】
(付記7)前記登録ステップは、
出現回数が所定の閾値以上である不正シグネチャ候補のうちデータ長が最大の不正シグネチャ候補を不正シグネチャとして登録することを特徴とする付記6記載の通信監視プログラム。
【0063】
(付記8)前記不正判定ステップは、
前記セッション抽出ステップにて抽出されたセッション内の制御情報と前記メモリにあらかじめ記憶された不正シグネチャとを照合する照合ステップを含み、
前記照合ステップにおける照合の結果、セッション内の制御情報に不正シグネチャとの一致部分がないセッションが不正な通信を実行するものであるか否かを判定することを特徴とする付記6記載の通信監視プログラム。
【0064】
(付記9)前記不正判定ステップは、
前記セッション抽出ステップにて抽出されたセッションのうち制御情報を含む先頭パケットが所定数以上送受信されているセッションについてのみ、不正な通信を実行するものであるか否かを判定することを特徴とする付記6記載の通信監視プログラム。
【0065】
(付記10)前記不正判定ステップは、
セッション内の制御情報によって指定されるアクセス先にアクセスしてページ情報を取得し、取得されたページ情報に基づいて、セッションが不正な通信を実行するものであるか否かを判定することを特徴とする付記6記載の通信監視プログラム。
【0066】
(付記11)通信用の制御情報を含むパケットを伝送可能なプロトコルによって送受信される複数のパケットから一対の送受信装置間で確立されたセッション内で送受信されるパケットを抽出するセッション抽出ステップと、
前記セッション抽出ステップにて抽出されたセッションが制御情報によって不正な通信を実行するものであるか否かを判定する不正判定ステップと、
前記不正判定ステップにてセッションが不正な通信を実行するものであると判定された場合に、当該セッション内において送受信された制御情報に所定数以上含まれる単位データが1つ以上連続してなる不正シグネチャ候補を抽出する候補抽出ステップと、
前記候補抽出ステップにて抽出された不正シグネチャ候補それぞれのセッション内における出現回数が所定の閾値以上であるか否かを判定する出現回数判定ステップと、
前記出現回数判定ステップにおける判定の結果、出現回数が所定の閾値以上である不正シグネチャ候補を不正シグネチャとしてメモリに登録する登録ステップと
を有することを特徴とする通信監視方法。
【0067】
(付記12)前記登録ステップは、
出現回数が所定の閾値以上である不正シグネチャ候補のうちデータ長が最大の不正シグネチャ候補を不正シグネチャとして登録することを特徴とする付記11記載の通信監視方法。
【0068】
(付記13)前記不正判定ステップは、
前記セッション抽出ステップにて抽出されたセッション内の制御情報と前記メモリにあらかじめ記憶された不正シグネチャとを照合する照合ステップを含み、
前記照合ステップにおける照合の結果、セッション内の制御情報に不正シグネチャとの一致部分がないセッションが不正な通信を実行するものであるか否かを判定することを特徴とする付記11記載の通信監視方法。
【0069】
(付記14)前記不正判定ステップは、
前記セッション抽出ステップにて抽出されたセッションのうち制御情報を含む先頭パケットが所定数以上送受信されているセッションについてのみ、不正な通信を実行するものであるか否かを判定することを特徴とする付記11記載の通信監視方法。
【0070】
(付記15)前記不正判定ステップは、
セッション内の制御情報によって指定されるアクセス先にアクセスしてページ情報を取得し、取得されたページ情報に基づいて、セッションが不正な通信を実行するものであるか否かを判定することを特徴とする付記11記載の通信監視方法。
【図面の簡単な説明】
【0071】
【図1】一実施の形態に係る通信システムの概略構成を示すブロック図である。
【図2】一実施の形態に係るパケット構成の具体例を示す図である。
【図3】一実施の形態に係る通信監視装置の要部構成を示すブロック図である。
【図4】一実施の形態に係る不正シグネチャの具体例を示す図である。
【図5】一実施の形態に係る単位データ構成の具体例を示す図である。
【図6】一実施の形態に係る通信監視装置の動作を示すフロー図である。
【図7】一実施の形態に係るマーキングの具体例を示す図である。
【図8】一実施の形態に係る不正シグネチャ候補の具体例を示す図である。
【符号の説明】
【0072】
101 パケット受信部
102 パケット蓄積部
103 セッション抽出部
104 先頭パケット数判定部
105 不正シグネチャ記憶部
106 不正シグネチャ照合部
107 単位データ取得部
108 データ数判定部
109 トンネリング判定部
110 監視結果出力部
111 マーキング部
112 候補抽出部
113 出現回数カウント部
114 データ長比較部

【特許請求の範囲】
【請求項1】
通信用の制御情報を含むパケットを伝送可能なプロトコルによって送受信される複数のパケットから一対の送受信装置間で確立されたセッション内で送受信されるパケットを抽出するセッション抽出手段と、
前記セッション抽出手段によって抽出されたセッションが不正な通信を実行するものであるか否かを判定する不正判定手段と、
前記不正判定手段によってセッションが不正な通信を実行するものであると判定された場合に、当該セッション内において送受信された複数のパケットに所定数以上含まれる単位データが1つ以上連続してなる不正シグネチャ候補を抽出する候補抽出手段と、
前記候補抽出手段によって抽出された不正シグネチャ候補それぞれのセッション内における出現回数が所定の閾値以上であるか否かを判定する出現回数判定手段と、
前記出現回数判定手段による判定の結果、出現回数が所定の閾値以上である不正シグネチャ候補を不正シグネチャとして記憶する記憶手段と
を有することを特徴とする通信監視装置。
【請求項2】
前記記憶手段は、
出現回数が所定の閾値以上である不正シグネチャ候補のうちデータ長が最大の不正シグネチャ候補を不正シグネチャとして記憶することを特徴とする請求項1記載の通信監視装置。
【請求項3】
前記不正判定手段は、
前記セッション抽出手段によって抽出されたセッション内のパケットと前記記憶手段によって記憶された不正シグネチャとを照合する照合手段を含み、
前記照合手段による照合の結果、セッション内のパケットに不正シグネチャとの一致部分がないセッションが不正な通信を実行するものであるか否かを判定することを特徴とする請求項1記載の通信監視装置。
【請求項4】
前記不正判定手段は、
前記セッション抽出手段によって抽出されたセッションのうち制御情報を含む先頭パケットが所定数以上送受信されているセッションについてのみ、不正な通信を実行するものであるか否かを判定することを特徴とする請求項1記載の通信監視装置。
【請求項5】
前記不正判定手段は、
セッション内の制御情報によって指定されるアクセス先にアクセスしてページ情報を取得し、取得されたページ情報に基づいて、セッションが不正な通信を実行するものであるか否かを判定することを特徴とする請求項1記載の通信監視装置。
【請求項6】
コンピュータによって実行される通信監視プログラムであって、前記コンピュータに、
通信用の制御情報を含むパケットを伝送可能なプロトコルによって送受信される複数のパケットから一対の送受信装置間で確立されたセッション内で送受信されるパケットを抽出するセッション抽出ステップと、
前記セッション抽出ステップにて抽出されたセッションが不正な通信を実行するものであるか否かを判定する不正判定ステップと、
前記不正判定ステップにてセッションが不正な通信を実行するものであると判定された場合に、当該セッション内において送受信された複数のパケットに所定数以上含まれる単位データが1つ以上連続してなる不正シグネチャ候補を抽出する候補抽出ステップと、
前記候補抽出ステップにて抽出された不正シグネチャ候補それぞれのセッション内における出現回数が所定の閾値以上であるか否かを判定する出現回数判定ステップと、
前記出現回数判定ステップにおける判定の結果、出現回数が所定の閾値以上である不正シグネチャ候補を不正シグネチャとしてメモリに登録する登録ステップと
を実行させることを特徴とする通信監視プログラム。
【請求項7】
通信用の制御情報を含むパケットを伝送可能なプロトコルによって送受信される複数のパケットから一対の送受信装置間で確立されたセッション内で送受信されるパケットを抽出するセッション抽出ステップと、
前記セッション抽出ステップにて抽出されたセッションが不正な通信を実行するものであるか否かを判定する不正判定ステップと、
前記不正判定ステップにてセッションが不正な通信を実行するものであると判定された場合に、当該セッション内において送受信された複数のパケットに所定数以上含まれる単位データが1つ以上連続してなる不正シグネチャ候補を抽出する候補抽出ステップと、
前記候補抽出ステップにて抽出された不正シグネチャ候補それぞれのセッション内における出現回数が所定の閾値以上であるか否かを判定する出現回数判定ステップと、
前記出現回数判定ステップにおける判定の結果、出現回数が所定の閾値以上である不正シグネチャ候補を不正シグネチャとしてメモリに登録する登録ステップと
を有することを特徴とする通信監視方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−232111(P2009−232111A)
【公開日】平成21年10月8日(2009.10.8)
【国際特許分類】
【出願番号】特願2008−74344(P2008−74344)
【出願日】平成20年3月21日(2008.3.21)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】