(57)【要約】【課題】  多数の環境を同時に監視でき、必要な計算資源の量を抑えた高速な侵入検知方法を提供する。【解決手段】  所属環境識別部１０３が入力パケットの所属環境を識別し、アドレス分類部１０６が所属環境毎に定義されたアドレス分類規則に基づいて入力パケットの送信元アドレス、送信先アドレスなどのアドレスフィールドを検査し、それぞれのアドレスがシグネチャ中にパラメータや定数で示された各基底アドレスに合致するかどうかを示したアドレス分類結果を得て、フロー分類部１０９が、アドレス分類結果を入力としてパケットの所属するフロー分類を判定し、フロー分類部１０９が参照するフロー分類規則は所属環境に固有のアドレス割当てと独立した形式を持っており、以上の構成により、多数の所属環境を扱ってもフロー分類規則の増大を招くことがなく、記憶素子や検索素子の容量を節約しつつ、高速な処理が実現できる。【選択図】        図２
2006041969.tif 000002
【特許請求の範囲】
【請求項１】
通信パケットに含まれるアドレスと照合するための照合アドレスを通信パケットのアドレスフィールドに対応させて記述したシグネチャを少なくとも一つ以上格納するシグネチャ格納部と、
監視対象ネットワークを送信元とする通信パケット及び監視対象ネットワークを送信先とする通信パケットの少なくともいずれかを入力するパケット入力部と、
前記パケット入力部が入力した通信パケットに含まれているアドレスをアドレスフィールドごとに抽出するアドレス抽出部と、
前記アドレス抽出部により抽出された通信パケットのアドレスを解析し、入力した通信パケットの送信元又は送信先の監視対象ネットワークを判定するネットワーク判定部と、
前記アドレス抽出部により抽出された通信パケットのアドレスごとに、前記ネットワーク判定部により判定された監視対象ネットワークに応じて、それぞれのアドレスが対応するアドレスフィールドのいずれかの照合アドレスに合致するかを判定する照合アドレス判定部と、
前記照合アドレス判定部により判定された照合アドレスの組合せを解析し、前記照合アドレス判定部により判定された照合アドレスの組合せに一致する照合アドレスの組合せを有するシグネチャを照合対象とするよう指示するシグネチャ指示部と、
前記シグネチャ指示部により指示された照合アドレスの組合せを有するシグネチャを用いて通信パケットのシグネチャ照合を行うシグネチャ照合部とを有することを特徴とするネットワーク監視装置。
【請求項２】
前記シグネチャ格納部は、
パラメータとして表現された照合アドレスが記述されているシグネチャを少なくとも一つ以上格納し、
前記照合アドレス判定部は、
前記ネットワーク判定部により判定された監視対象ネットワークに応じて、照合アドレスのパラメータを定数に変換して、前記アドレス抽出部により抽出された通信パケットのアドレスごとにそれぞれのアドレスが対応するアドレスフィールドのいずれかの照合アドレスに合致するかを判定することを特徴とする請求項１に記載のネットワーク監視装置。
【請求項３】
前記シグネチャ格納部は、
アドレスの集合を定数又はパラメータとして表現した基底アドレスが照合アドレスとして記述されているシグネチャを少なくとも一つ以上格納していることを特徴とする請求項１に記載のネットワーク監視装置。
【請求項４】
前記シグネチャ格納部は、
照合アドレスが記述されているヘッダ部と、通信パケットの構成のうちアドレス以外の部分と照合するための照合条件が記述されているボディ部とを有するシグネチャを少なくとも一つ以上格納し、
前記シグネチャ照合部は、
前記シグネチャ指示部により指示された照合アドレスの組合せを有するシグネチャのボディ部と入力した通信パケットの対応部分とを照合することを特徴とする請求項１に記載のネットワーク監視装置。
【請求項５】
前記照合アドレス判定部は、
前記アドレス抽出部により抽出された通信パケットのアドレスのそれぞれが対応するアドレスフィールドのいずれかの照合アドレスに合致するか否かの判定結果をアドレスごとに１ビットで示すことを特徴とする請求項１に記載のネットワーク監視装置。
【請求項６】
前記照合アドレス判定部は、
通信パケットに含まれるアドレスフィールドごとに、それぞれのアドレスフィールドに対応する照合アドレスをグループ内の照合アドレスの個数をｍ個とする互いに疎な要素のみで構成されるグループに分類し、前記アドレス抽出部により抽出された通信パケットのアドレスのそれぞれが対応するアドレスフィールドのいずれかの照合アドレスに合致するか否かの判定結果を０からｍの整数により示すことを特徴とする請求項１に記載のネットワーク監視装置。
【請求項７】
前記ネットワーク監視装置は、更に、
前記シグネチャ格納部に格納されているシグネチャにおいて存在する照合アドレスの組合せを示し、それぞれの組合せに対する識別子である組合せ識別子を示す識別子情報を格納する識別子情報格納部を有し、
前記シグネチャ指示部は、
前記識別子情報格納部に格納された識別子情報に基づき、前記照合アドレス判定部により判定された照合アドレスの組合せに対応する組合せ識別子を判定し、判定した組合せ識別子を前記シグネチャ照合部に出力することを特徴とする請求項１に記載のネットワーク監視装置。
【請求項８】
前記ネットワーク監視装置は、更に、
前記シグネチャ格納部に格納されているシグネチャにおいて存在する照合アドレスの組合せの積集合を示し、それぞれの積集合に対する識別子である積集合識別子を示す識別子情報を格納する識別子情報格納部を有し、
前記シグネチャ指示部は、
前記照合アドレス判定部により判定された照合アドレスの組合せを解析した結果、前記照合アドレス判定部により判定された照合アドレスの組合せがいずれかの積集合に該当する場合に、前記識別子情報格納部に格納された識別子情報に基づき、前記照合アドレス判定部により判定された照合アドレスの組合せに対応する積集合識別子を判定し、判定した積集合識別子を前記シグネチャ照合部に出力することを特徴とする請求項１に記載のネットワーク監視装置。
【請求項９】
通信パケットに含まれるアドレスと照合するための照合アドレスを通信パケットのアドレスフィールドに対応させて記述した少なくとも一つ以上のシグネチャを用いてネットワークの監視を行うネットワーク監視方法であって、
監視対象ネットワークを送信元とする通信パケット及び監視対象ネットワークを送信先とする通信パケットの少なくともいずれかを入力するパケット入力ステップと、
前記パケット入力ステップが入力した通信パケットに含まれているアドレスをアドレスフィールドごとに抽出するアドレス抽出ステップと、
前記アドレス抽出ステップにより抽出された通信パケットのアドレスを解析し、入力した通信パケットの送信元又は送信先の監視対象ネットワークを判定するネットワーク判定ステップと、
前記アドレス抽出ステップにより抽出された通信パケットのアドレスごとに、前記ネットワーク判定ステップにより判定された監視対象ネットワークに応じて、それぞれのアドレスが対応するアドレスフィールドのいずれかの照合アドレスに合致するかを判定する照合アドレス判定ステップと、
前記照合アドレス判定ステップにより判定された照合アドレスの組合せを解析し、前記照合アドレス判定ステップにより判定された照合アドレスの組合せに一致する照合アドレスの組合せを有するシグネチャを照合対象とするよう指示するシグネチャ指示ステップと、
前記シグネチャ指示ステップにより指示された照合アドレスの組合せを有するシグネチャを用いて通信パケットのシグネチャ照合を行うシグネチャ照合ステップとを有することを特徴とするネットワーク監視方法。
【請求項１０】
通信パケットに含まれるアドレスと照合するための照合アドレスを通信パケットのアドレスフィールドに対応させて記述した少なくとも一つ以上のシグネチャを用いたネットワークの監視をコンピュータに実行させるプログラムであって、
監視対象ネットワークを送信元とする通信パケット及び監視対象ネットワークを送信先とする通信パケットの少なくともいずれかを入力するパケット入力処理と、
前記パケット入力処理が入力した通信パケットに含まれているアドレスをアドレスフィールドごとに抽出するアドレス抽出処理と、
前記アドレス抽出処理により抽出された通信パケットのアドレスを解析し、入力した通信パケットの送信元又は送信先の監視対象ネットワークを判定するネットワーク判定処理と、
前記アドレス抽出処理により抽出された通信パケットのアドレスごとに、前記ネットワーク判定処理により判定された監視対象ネットワークに応じて、それぞれのアドレスが対応するアドレスフィールドのいずれかの照合アドレスに合致するかを判定する照合アドレス判定処理と、
前記照合アドレス判定処理により判定された照合アドレスの組合せを解析し、前記照合アドレス判定処理により判定された照合アドレスの組合せに一致する照合アドレスの組合せを有するシグネチャを照合対象とするよう指示するシグネチャ指示処理と、
前記シグネチャ指示処理により指示された照合アドレスの組合せを有するシグネチャを用いて通信パケットのシグネチャ照合を行うシグネチャ照合処理とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、一般的にはネットワークを経由した計算機システム等への不正侵入を検知するためのシステムに関し、詳細には、ネットワークを流れるパケットを監視することによって計算機システム等に不正に侵入するパケットを検知するためのシステムに関する。
【背景技術】
【０００２】
インターネットの利用が幅広く浸透した現在、ネットワークを経由して行われる不正侵入や利用妨害から計算機システム等を守ることが重大な課題となっている。このために様々なネットワーク侵入検知システム（Ｎｅｔｗｏｒｋ  Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）が実用化されているが、その実現方法としては、シグネチャ・マッチング（Ｓｉｇｎａｔｕｒｅ  Ｍａｔｃｈｉｎｇ）による方法が主に用いられている（例えば、特許文献１）。シグネチャ・マッチングは、観察されたパケットが既知の侵入の特徴（シグネチャ）を含むかどうかを検査することにより、不正侵入に係わるパケットを検知する手法である。このようなネットワーク侵入検知システムの多くは、攻撃パケットのヘッダに含まれるアドレスやフラグ等のフィールドの値、あるいは、ユーザデータが含む文字列などに関する条件を示した照合規則によってシグネチャを表現する。これは、新しい侵入手口に対して、セキュリティ管理者等が新しい照合規則を追加できるようにするための手法である。
【０００３】
以下、図１６〜図２０を用いて従来のネットワーク侵入検知システムについて説明する。
【０００４】
図１６は非特許文献１に示された従来のネットワーク侵入検知システムに与えられるシグネチャの例である。典型的なネットワーク侵入検知システムには数百〜数千個のシグネチャが設定され、監視対象のネットワークから受信した入力パケットと照合される。
【０００５】
シグネチャのヘッダ部２０１は、パケットに含まれたアドレスフィールドに関する照合条件を指定したものである。ここでは、パケットのＩＰプロトコル番号、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号に関する条件が表現されている。
【０００６】
シグネチャのボディ部２０２は、パケットの他のフィールドに対する照合条件を含んだものである。ここでは、「ｆｌａｇｓ：  ＰＡ＋」との指定は、ＴＣＰフラグのうちＰＵＳＨビットとＡＣＫビットが共にＯｎであるパケットと合致することを示し、また「ｃｏｎｔｅｎｔ：  ”．ｖｂｓ”」との指定は、パケットのユーザデータ部に「．ｖｂｓ」という文字列が存在するパケットと合致することを示す。
【０００７】
シグネチャのボディ部２０２はさらに、シグネチャに関する書誌情報や、出力する警告メッセージなどを含むが、その詳細は説明を省く。
【０００８】
また、図１７に別のシグネチャの例を示す。この例では、シグネチャのヘッダ部に指定されるアドレスやポート番号にはパラメータが使用されており、監視対象のサイトに固有のネットワークやホストのアドレス構成に応じた調整が可能となっている。例えばパラメータ宣言３０１、３０２はパラメータＥＸＴＥＲＮＡＬ＿ＮＥＴ及びＨＴＴＰ＿ＳＥＲＶＥＲＳを宣言し、また各々のパラメータに対して値ａｎｙ、１０．７４．８．０／２４を割り当てる。またパラメータ参照３０３、３０４はそれぞれパラメータＥＸＴＥＲＮＡＬ＿ＮＥＴ及びＨＴＴＰ＿ＳＥＲＶＥＲＳの値を参照する。
【０００９】
次に、非特許文献１に示された従来のネットワーク侵入検知システムの処理手順について、非特許文献２に示された内容に基づいて説明する。
【００１０】
図１８は同じ内容をもったヘッダ部に対する照合処理の重複を避けるために再編成したシグネチャの内部表現であり、同一のヘッダ部をもつシグネチャの１グループに対して１つのＲｕｌｅ  Ｔｒｅｅ  Ｎｏｄｅ（ＲＴＮ）  ４０１を割当て、シグネチャのヘッダ部に示されたアドレス条件を各々のＲＴＮに記述する。また、各ＲＴＮ  ４０１には複数のシグネチャが所属しうるが、その各々のシグネチャに対してＯｐｔｉｏｎ  Ｔｒｅｅ  Ｎｏｄｅ  （ＯＴＮ）  ４０２が割り当てられ、シグネチャのボディ部に対応した照合条件や動作が記述される。
【００１１】
図１９は従来のネットワーク侵入検知システムの処理手順を示したフローチャートである。ＲＴＮを順次列挙してパケットと照合し（ステップＳ５０１）、パケットと合致したＲＴＮについて、そのＲＴＮに属するＯＴＮを順次列挙してパケットと照合し（ステップＳ５０２）、合致したＯＴＮに基づいてアラートを生成する（Ｓ５０３）。
【００１２】
前記の処理手順は、ソフトウェアによる実現方法として逐次的な処理手順の例を示したものであるが、複数のＲＴＮに対する照合処理５０１はハードウェアを用いた並列処理が可能である。例えば、フロー分類の高速化のために広く利用されている照合回路、例えばＴＣＡＭ（Ｔｅｒｎａｒｙ  ＣＡＭ；  Ｔｅｒｎａｒｙ  Ｃｏｎｔｅｎｔ−Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）やＭＦ  Ｃｌａｓｓｉｆｉｅｒ  （Ｍｕｌｔｉ−Ｆｉｅｌｄ  Ｃｌａｓｓｉｆｉｅｒ）を用いた並列処理の試みがすでに行われている。これらの回路は、多数の照合規則と入力ビット列とを並列的に比較し、合致した照合規則を出力する。
【００１３】
図２０は例えば、ハードウェアを用いた並列処理の例として、非特許文献３に示されたネットワーク侵入検知方法を示したブロック図である。
【００１４】
照合ユニット６０１はＲＴＮに対する照合ユニットであり、内蔵されたＴＣＡＭには、ＲＴＮ群に基づいた照合規則が事前に設定されている。パケットと照合し、合致したＲＴＮの集合をコントローラ６０２に出力する。
【００１５】
照合ユニット６０３はＯＴＮに対する照合ユニットで、内蔵されたＴＣＡＭには、照合ユニット６０１で合致したＲＴＮに対応する照合規則がコントローラ６０２の指示により設定される。
【００１６】
なお、ＴＣＡＭやＭＦ  Ｃｌａｓｓｉｆｉｅｒ等の一般的な照合回路にはパラメータを含む照合規則を直接に設定できない。したがって、図１７に例示したようなシグネチャを設定する場合は、パラメータには具体的なアドレス値を代入し、かつ、当該の照合回路に固有の形式に翻訳されてから照合回路に設定される。
【特許文献１】特開２００４−５４３３０号公報
【非特許文献１】「ＳＮＯＲＴ（ＴＭ）  Ｕｓｅｒ  Ｍａｎｕａｌ  ２．１．０」（Ｔｈｅ  Ｓｎｏｒｔ  Ｐｒｏｊｅｃｔ、  ｈｔｔｐ：／／ｗｗｗ．ｓｎｏｒｔ．ｏｒｇ）
【非特許文献２】「Ｔｏｗａｒｄｓ  Ｆａｓｔｅｒ  Ｓｔｒｉｎｇ  Ｍａｔｃｈｉｎｇ  ｆｏｒ  Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ、  ｏｒ  Ｅｘｃｅｅｄｉｎｇ  ｔｈｅ  Ｓｐｅｅｄ  ｏｆ  Ｓｎｏｒｔ」  （Ｃ．  Ｊａｓｏｎ  Ｃｏｉｔ他、  ＤＩＳＣＥＸ  ＩＩ、  ２００１年６月）
【非特許文献３】「Ｅｘｐｌｏｉｔｉｎｇ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｈａｒｄｗａｒｅ  ｆｏｒ  Ｎｅｔｗｏｒｋ  Ｓｅｃｕｒｉｔｙ」（Ｓｈａｏｍｅｎｇ  Ｌｉ、Ｊｉｍ  Ｔｏｒｒｅｓｅｎ、Ｏｄｄｖａｒ  Ｓｏｒａａｓｅｎら、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １１ｔｈ  Ａｎｎｕａｌ  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｃｕｓｔｏｍ  Ｃｏｍｐｕｔｉｎｇ  Ｍａｃｈｉｎｅｓ  （ＦＣＣＭ’０３））
【発明の開示】
【発明が解決しようとする課題】
【００１７】
ネットワーク侵入を検知し、あるいは防止するために監視するトラヒックの量、ホストやサイトの数、アプリケーションの種類、そして侵入手口は増加する一方であり、多数の対象を効果的に監視する手段が必要である。従来、このような要求はネットワーク侵入検知システムを各々の監視対象に対して配備することにより実現されてきたが、このような解決策は多数の装置の導入、維持管理、監視作業のために多大なコストを生じるという短所がある。
【００１８】
本発明の主な目的の一つは、１つのシステムでより多数の保護対象を同時に管理でき、スケーラビリティに富んだネットワーク侵入検知システムを提供することである。
【００１９】
本発明の主な目的のもう一つは、一般に普及しているパケット照合回路を活用し、より小規模の回路で、かつ、高速・大容量のネットワーク侵入検知システムを提供することである。
【課題を解決するための手段】
【００２０】
本発明に係るネットワーク監視装置は、
通信パケットに含まれるアドレスと照合するための照合アドレスを通信パケットのアドレスフィールドに対応させて記述したシグネチャを少なくとも一つ以上格納するシグネチャ格納部と、
監視対象ネットワークを送信元とする通信パケット及び監視対象ネットワークを送信先とする通信パケットの少なくともいずれかを入力するパケット入力部と、
前記パケット入力部が入力した通信パケットに含まれているアドレスをアドレスフィールドごとに抽出するアドレス抽出部と、
前記アドレス抽出部により抽出された通信パケットのアドレスを解析し、入力した通信パケットの送信元又は送信先の監視対象ネットワークを判定するネットワーク判定部と、
前記アドレス抽出部により抽出された通信パケットのアドレスごとに、前記ネットワーク判定部により判定された監視対象ネットワークに応じて、それぞれのアドレスが対応するアドレスフィールドのいずれかの照合アドレスに合致するかを判定する照合アドレス判定部と、
前記照合アドレス判定部により判定された照合アドレスの組合せを解析し、前記照合アドレス判定部により判定された照合アドレスの組合せに一致する照合アドレスの組合せを有するシグネチャを照合対象とするよう指示するシグネチャ指示部と、
前記シグネチャ指示部により指示された照合アドレスの組合せを有するシグネチャを用いて通信パケットのシグネチャ照合を行うシグネチャ照合部とを有することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、監視対象ネットワークの数が増えても、照合回路や記憶素子の容量に与える影響を抑制可能であり、１つのネットワーク監視装置にて多数の監視対象ネットワークを同時監視できるスケーラビリティを提供可能である。
【発明を実施するための最良の形態】
【００２２】
個別の実施の形態を説明する前に、以下の実施の形態に係るネットワーク侵入検知システムを適用するネットワークトポロジと、運用管理者により与えられた設定データの構成例を示す。以下の説明は通信プロトコルとしてＩＰプロトコルバージョン４を利用した環境を想定したものであるが、他のプロトコルに対しても同様に実施できることは自明である。
【００２３】
図１は以下の実施の形態に係るネットワーク侵入検知システムを適用するネットワークトポロジの一例を示したものである。ネットワーク侵入検知システム１０は、複数の監視対象ネットワーク２０とインターネット３０との間で送受信される通信パケットを同時に監視する。以下、通信パケットの送信元あるいは送信先となる監視対象ネットワークのことを該通信パケットの所属環境と呼ぶことにする。また、通信パケットは、単にパケットとも呼ぶ。
【００２４】
また、運用管理者によって以下の設定が事前に与えられるものとする。
【００２５】
（ａ）シグネチャ設定
従来技術と同様のシグネチャであり、図３にその例を示す。シグネチャのヘッダ部に含まれるアドレスフィールドは、＄ＥＸＴＥＲＮＡＬ＿ＮＥＴなどのパラメータや１２７．０．０．０／８などの定数で表現される。図３のシグネチャは、図１６に示したものと同様の構成をしている。例えば、図３の一行目にあるシグネチャでは、「ｔｃｐ」はプロトコル番号、「＄ＥＸＴＥＲＮＡＬ＿ＮＥＴ」は送信元ＩＰアドレス、「ａｎｙ」は送信元ポート番号、「＄ＨＴＴＰ＿ＳＥＲＶＥＲＳ」は送信先ＩＰアドレス、「＄ＨＴＴＰ＿ＰＯＲＴ」は送信先ポート番号を示し、以降はボディ部である。
【００２６】
以下の実施の形態では、上記の例の＄ＥＸＴＥＲＮＡＬ＿ＮＥＴや１２７．０．０．０／８などのように、シグネチャヘッダ内の個々のアドレスフィールドに出現し、アドレスの集合を表現したパラメータや定数を「基底アドレス」と呼ぶ。ただし、任意の値を表す「ａｎｙ」は基底アドレスに含めない。また、シグネチャのヘッダ部の各アドレスフィールドは、通信パケットのアドレスフィールドに対応しており、各基底アドレスは通信パケットの対応するアドレスフィールドのアドレスと照合するためのアドレスである。基底アドレスは照合アドレスの例である。また、シグネチャヘッダを同値類に分類するとき、その同値類の元を以下の実施の形態では「フロー分類」と呼ぶ。フロー分類は、シグネチャヘッダに表現された、パケット種別、送受信アドレス等の条件の組によるパケットの分類であり、例えば、図３の一行目においては、「ｔｃｐ  ＄ＥＸＴＥＲＮＡＬ＿ＮＥＴ  ａｎｙ−＞＄ＨＴＴＰ＿ＳＥＲＶＥＲＳ  ＄ＨＴＴＰ＿ＰＯＲＴ」がフロー分類を表しており、フロー分類は基底アドレス（照合アドレス）の組合せである。
【００２７】
（ｂ）所属環境設定
所属環境設定は、以下の内容で構成される。図４に設定例を示す。
【００２８】
（ア）各所属環境の所属環境識別子
所属環境（通信パケットの送信先又は送信元の監視対象ネットワーク）を一意に識別する識別子である。ここでは例えば、整数で表すものとする。
（イ）所属環境識別規則
入力パケットのアドレスフィールドをもとに、パケットがどの所属環境に所属するかどうかを判定する規則である。この規則は例えば図４の例に示すように、送信元ＩＰアドレス並びに送信先ＩＰアドレスと所属環境識別子の対応関係を示した決定表によって表現できる。
（ウ）各所属環境に固有のパラメータ値の割当て
図４の例に示すとおり、所属環境に応じたパラメータの値を設定する。
【００２９】
実施の形態１．
次に、実施の形態１に係るネットワーク侵入検知システムについて説明する。
【００３０】
図２は実施の形態１に係るネットワーク侵入検知システムの構成例を示したブロック図である。
【００３１】
所属環境格納部１１５は、前述したように、例えば図４に示す所属環境設定が格納されている。
【００３２】
シグネチャ格納部１１６は、前述したように、例えば図３に示す複数のシグネチャが格納されている。シグネチャ格納部１１６に格納されているシグネチャは、通信パケットに含まれるアドレスと照合するための基底アドレス（照合アドレス）を通信パケットのアドレスフィールドに対応させて記述したものである。
【００３３】
設定データ翻訳部１１７は、所属環境格納部１１５の所属環境設定及びシグネチャ格納部１１６のシグネチャを翻訳して、後述する所属環境識別規則、アドレス分類規則、フロー分類規則、シグネチャ照合規則を生成する。
【００３４】
パケット入力部１００は、監視対象ネットワークを送信元とする通信パケット又は監視対象ネットワークを送信先とする通信パケットを入力する。
【００３５】
アドレス情報抽出部１０１は、パケット入力部１００にて入力された入力パケットに含まれるアドレスをアドレスフィールドごとに抽出し、各アドレスフィールドのアドレスの組で構成されたアドレス情報１０２を出力する。アドレス情報抽出部１０１は、アドレス抽出部の例である。
【００３６】
所属環境識別部１０３は、アドレス情報１０２を入力とし、所属環境識別規則格納部１０４に格納された所属環境識別規則に基づいて入力パケットの所属環境を識別し、所属環境識別子１０５を出力する。つまり、所属環境識別部１０３は、アドレス情報抽出部１０１により抽出されたアドレスを解析し、入力パケットの送信元又は送信先の監視対象ネットワークを判定する。このため、所属環境識別部１０３はネットワーク判定部の例である。
【００３７】
所属環境識別規則格納部１０４は、所属環境識別部１０３が入力パケットの所属環境を識別するための所属環境識別規則を格納する。所属環境識別規則は、例えば、図５に示す情報である。所属環境識別規則の詳細は後述する。
【００３８】
アドレス分類部１０６は、アドレス情報１０２の各アドレスフィールドに対して１つずつ設けられ、前記のアドレス情報１０２を入力とし、アドレス分類規則格納部１０７に格納されたアドレス分類規則に基づくことによって各アドレスフィールドのアドレスがおのおのの基底アドレスに合致するかどうかを判定し、その結果を示したものであるアドレス分類結果１０８を出力する。つまり、アドレス分類部１０６は、アドレス情報抽出部１０１により抽出された入力パケットのアドレスごとに、所属環境識別部１０３により判定された所属環境（監視対象ネットワーク）に応じて、それぞれのアドレスが対応するアドレスフィールドのいずれかの基底アドレス（照合アドレス）に合致するかを判定する。このため、アドレス分類部１０６は、照合アドレス判定部の例である。
【００３９】
アドレス分類規則格納部１０７は、アドレス分類部１０６がアドレス分類結果１０８を出力するためのアドレス分類規則を格納する。アドレス分類規則は、例えば、図７に示す情報である。アドレス分類規則の詳細は後述する。
【００４０】
アドレス分類部１０６とアドレス分類規則格納部１０７は、アドレス情報１０２を構成する個々のアドレスフィールドに対して個別に備える。
【００４１】
フロー分類部１０９は、前記のアドレス分類結果１０８を入力として、フロー分類規則格納部１１０に格納されたフロー分類規則に基づいて入力パケットがどのフロー分類に所属すべきかを判定し、その結果を示したものであるフロー分類結果１１１を出力する。つまり、フロー分類部１０９は、アドレス分類部１０６により判定された基底アドレス（照合アドレス）の組合せ（フロー分類）を解析し、アドレス分類部１０６により判定されたの基底アドレスの組合せに一致する基底アドレスの組合せを有するシグネチャを照合対象とするようフロー分類結果１１１にて指示する。このため、フロー分類部１０９は、シグネチャ指示部の例である。
【００４２】
フロー分類規則格納部１１０は、フロー分類部１０９がフロー分類結果１１１を出力するためのフロー分類規則を格納する。フロー分類規則は、例えば、図８に示す情報である。フロー分類規則の詳細は後述する。なお、図８のフロー分類Ａ、Ｂ、Ｃは組合せ識別子の例であり、フロー分類規則は識別子情報の例であり、フロー分類規則格納部１１０は識別子情報格納部の例である。
【００４３】
シグネチャ照合部１１２は、前記のフロー分類結果１１１と入力パケットを入力とし、シグネチャ照合規則に含まれるシグネチャとの照合を行い、その結果を示したものであるシグネチャ照合結果１１４を出力する。つまり、シグネチャ照合部は、フロー分類部１０９よりフロー分類結果１１１にて指示された基底アドレスの組合せを有するシグネチャを用いて通信パケットのシグネチャ照合を行う。
【００４４】
シグネチャ照合規則格納部１１３は、シグネチャ照合部１１２がシグネチャ照合を行うためのシグネチャ照合規則を格納する。
【００４５】
次に、図１５を参照しながら動作について説明する。
【００４６】
パケット入力部１００が、監視対象ネットワークを送信元又は送信先とする通信パケットを入力する（Ｓ１５０１）（パケット入力ステップ）。
【００４７】
次に、アドレス情報抽出部１０１が、入力パケットから各アドレスフィールドのアドレスを抽出してアドレス情報１０２を出力する（Ｓ１５０２）（アドレス抽出ステップ）。アドレス情報１０２は抽出したアドレスフィールドごとのアドレスの組であり、本実施の形態では  （ＩＰプロトコル、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号）で表現する。なお、以下のように本実施の形態と異なったアドレスフィールドによりアドレス情報１０２を表現することは、本実施の形態の自明な変形により可能である。
【００４８】
（ａ）等価なアドレス表現方法を用いた例
例えばシグネチャ設定のヘッダに与えられるアドレスフィールド、並びに前記のアドレス情報１０２は、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号の代わりにそれぞれ、クライアントＩＰアドレス、クライアントポート番号、サーバＩＰアドレス、サーバポート番号により構成することを特徴とした例。
（ｂ）追加のアドレスフィールドを含む例
例えばＥｔｈｅｒｎｅｔ（登録商標）  ＶＬＡＮにおけるＶＬＡＮタグやＭＡＣアドレス、ＡＴＭやフレームリレーにおける仮想回線の識別子を追加のアドレスフィールドとして用いることを特徴とした例。
（ｃ）一部のアドレスフィールドのみを使用する例
例えば送信元ポート番号を省略し、（ＩＰプロトコル、送信元ＩＰアドレス、送信先ＩＰアドレス、送信先ポート番号）のみによってアドレスフィールドを構成した例。
【００４９】
所属環境識別部１０３は、前記のアドレス情報１０２を入力として入力パケットの所属環境識別子１０５を求める（Ｓ１５０３）（ネットワーク判定ステップ）。所属環境の識別は、運用管理者が設定した所属環境設定（所属環境格納１１５に格納）から設定データ翻訳部１１７により翻訳された所属環境識別規則（所属環境識別規則格納部１０４に格納）によって所属環境を特定する。以下、ＴＣＡＭを用いた所属環境識別部１０３の実現方法を示す。ＴＣＡＭの検索入力にはアドレス情報１０２中の送信元ＩＰアドレス、送信先ＩＰアドレスを入力する。ＴＣＡＭの検索表に設定する所属環境識別規則は、所属環境設定の自明な翻訳して得られる。例えば、図４に示した所属環境設定に対して、図５に示す検索表を得る。図５に示す送信元ＩＰアドレス、送信先ＩＰアドレスの欄はビットパターンを示す。「１」「０」はそれぞれ、入力されたアドレスフィールドの該当ビットの値「１」「０」に合致し、「＊」は対応するアドレス情報の該当ビットの値に係わらず合致することを示す。
【００５０】
次に、アドレス分類部１０６が、入力されたアドレスフィールドの値（アドレス）を各基底アドレスと照合し、アドレス分類結果１０８を出力する（Ｓ１５０４）（照合アドレス判定ステップ）。このとき、基底アドレスの値は、入力された所属環境識別子１０５が指す所属環境に固有のパラメータ割当てに従って解釈する。アドレス分類部１０６並びにアドレス分類規則格納部１０７は、アドレス情報１０２に含まれるアドレスフィールド毎に備える。本実施の形態では、ＩＰプロトコル、送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号のそれぞれにつき１対のアドレス分類部１０６とアドレス分類規則格納部１０７を備える。
【００５１】
ここで、上記の機能を実現するアドレス分類部１０６、アドレス分類規則、アドレス分類結果１０８の例を説明する。
【００５２】
所属環境識別子ｅ、アドレスフィールドの値ｖ、及び、ｎ個の基底アドレスＢ１、  ．．．、  Ｂｎに対して、関数ｆｉ（ｅ、  ｖ）を  ｆｉ（ｅ、  ｖ）＝１  （ｖ∈Ｂｉの場合）、ｆｉ（ｅ、  ｖ）＝０（それ以外の場合）  と定義する。アドレス分類結果１０８はｎビットのビット列ｆ１（ｅ、  ｖ）、  ｆ２（ｅ、  ｖ）、．．．、  ｆｎ（ｅ、  ｖ）で表現できる。図３に示したシグネチャ設定に含まれる各アドレス分類に対して、アドレス分類結果１０８上のビット位置を割り当てた例を図６に示す。
【００５３】
図３のシグネチャに示された送信元ＩＰアドレスに関するアドレス分類は、
Ｂ３  ＝  ＄ＨＯＭＥ＿ＮＥＴ
Ｂ２  ＝  ＄ＨＴＴＰ＿ＳＥＲＶＥＲＳ
Ｂ１  ＝  ＄ＳＭＴＰ＿ＳＥＲＶＥＲＳ
の三種類であり、入力パケットの送信元ＩＰアドレスｖに関して、上記手順を当てはめると、
ｆ３（ｅ、ｖ）  ＝  １    （ｖ  ∈＄ＨＯＭＥ＿ＮＥＴのとき）
＝  ０      （上記以外の場合）
ｆ２（ｅ、ｖ）  ＝  １    （ｖ  ∈＄ＨＴＴＰ＿ＳＥＲＶＥＲＳのとき）
＝  ０      （上記以外の場合）
ｆ１（ｅ、ｖ）  ＝  １    （ｖ  ∈＄ＳＭＴＰ＿ＳＥＲＶＥＲＳのとき）
＝  ０      （上記以外の場合）
となる。
【００５４】
送信元ＩＰアドレスに関するアドレス分類結果１０８は上記のｆ１、ｆ２、ｆ３を用いてｆ１（ｅ、ｖ）  ｆ２（ｅ、ｖ）  ｆ３（ｅ、ｖ）という３ビットの数で表現される。
本実施の形態においては、プロトコル番号、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号のそれぞれに対して独立に上記のようなアドレス分類を定義する。
【００５５】
アドレス分類部１０６並びにアドレス分類規則は、一般的なＭＦ  Ｃｌａｓｓｉｆｉｅｒ並びにその照合規則によって実現できる。例えば、図３のシグネチャ設定、図４の所属環境設定をＭＦ  Ｃｌａｓｓｉｆｉｅｒのために翻訳すると図７に示すアドレス分類規則が得られる。ＭＦ  Ｃｌａｓｓｉｆｉｅｒはすべての合致したエントリを返すＭｕｌｔｉ−Ｍａｔｃｈモードで動作させ、合致したすべてのエントリの出力をビット毎のＯＲ演算により重畳することにより、アドレス分類結果１０８が得られる。例えば所属環境識別子＝０かつ送信先ＩＰアドレス＝１０．１．１．１のとき、図７に示した送信先ＩＰアドレスに対する規則の１番目、２番目、３番目に合致し、それぞれ出力ビット列００１、０１０、１００が出力される。これらをビット毎にＯＲ重畳したビット列「１１１」がアドレス分類結果１０８となる。
【００５６】
図７のアドレス分類規則を求めるにあたっては、まず、図３のシグネチャ設定に含まれるおのおのの基底アドレスに対して、入力パケットが一致するための条件を求める。これは各基底アドレスに対して図４に示した所属環境定義を適用することによって自明に求められる。たとえば送信元ＩＰアドレスに関する基底アドレス「１２７．０．０．０／８」は定数であるため、所属環境にかかわらず「送信元ＩＰアドレス∈１２７．０．０．０／８」のときにマッチし、図６の割り当てにしたがって出力ビット列１０を得る。同様に送信元ＩＰアドレスに関する基底アドレス「ＥＸＴＥＲＮＡＬ＿ＮＥＴ」は変数パラメータであり、所属環境定義に与えられた、所属環境に応じた割り当て値に基づいて解釈される。したがって、所属環境＝０かつ送信元ＩＰアドレス∈！１０．１．０．０／１６のとき、あるいは、所属環境＝１かつ送信元ＩＰアドレス∈１０．２．０．０／１６のときにマッチし、図６の割り当てにしたがって出力ビット列０１を得る。
【００５７】
次に、フロー分類部１０９が、入力されたアドレス分類結果１０８に基づいて入力パケットがフロー分類に合致するかを判定し、フロー分類結果１１１を出力する（Ｓ１５０５）（シグネチャ指示ステップ）。本実施の形態では、合致したフロー分類の識別子の集合によってフロー分類結果１１１を表現する。フロー分類規則は、シグネチャ格納部１１６に含まれるフロー分類、すなわち異なったシグネチャヘッダをすべて抽出することで得られる。例えば、図３のシグネチャ設定から得たフロー分類規則は図８のとおりである。本実施の形態のフロー分類部１０９はＭｕｌｔｉ−Ｍａｔｃｈモードで動作するＴＣＡＭで実現できる。具体的には、図８に示したフロー分類規則に図６で示したアドレス分類結果の表現を当てはめると図９のようなＴＣＡＭの検索表に翻訳でき、これをＴＣＡＭに設定すればフロー分類部１０９を構成できる。図９に記入されたビットパターンは、それぞれ図８の各欄に記入されたアドレス条件と一致するアドレス分類結果１０８をビットパターンで表現したものである。たとえば、送信元ＩＰアドレスのアドレス分類結果は図６に示すとおり２ビットで表現され、＄ＥＸＴＥＲＮＡＬ＿ＮＥＴにマッチする場合はビット位置１がＯＮになる。したがって、図９に示すように送信元ＩＰアドレスに対する＄ＥＸＴＥＲＮＡＬ＿ＮＥＴの入力パターンは「１＊」（「＊」は任意のビット値）で表現される。同様に送信元ＩＰアドレスが「１２７．０．０．０／８」であることは「＊１」で表現される。ａｎｙの場合は、任意の２ビット値に対応するため「＊＊」と表現される。
【００５８】
次に、シグネチャ照合部１１２が、入力パケットをシグネチャ格納部１１６に格納されているシグネチャのボディ部と照合し、シグネチャ照合結果１１４を得る（Ｓ１５０６）（シグネチャ照合部）。シグネチャ照合規則は、シグネチャ設定から翻訳されたものであり、フロー分類別にシグネチャのボディ部を編成したものである。シグネチャ照合部１１２は、フロー分類結果１１１によって絞り込まれたフロー分類に属するシグネチャのボディ部と入力パケットを照合し、シグネチャ照合結果１１４を出力する。この動作は従来のネットワーク侵入検知システムと同様である。
【００５９】
以上のように、所属環境識別部１０３が入力パケットの所属環境を識別し、アドレス分類部１０６が所属環境毎に定義されたアドレス分類規則に基づいて入力パケットの送信元アドレス、送信先アドレス、送信元ポート番号、送信先ポート番号などのアドレスフィールドを検査し、それぞれのアドレスがシグネチャ中にパラメータや定数の形で示された各基底アドレスに合致するかどうかを示したアドレス分類結果を得て、フロー分類部１０９が、アドレス分類結果を入力としてパケットの所属するフロー分類を判定し、フロー分類規則は各アドレスフィールドがどの基底アドレスに所属するかを示したアドレス分類結果１０８を入力条件とした規則となるので、フロー分類規則の個数は所属環境の個数によらず一定に抑えることができる。現在、一般なネットワーク侵入検知システムが扱うシグネチャの数は１５００を超えており、フロー分類に必要な照合回路や記憶素子の容量の確保がネットワーク侵入検知システムの性能を決める重大な要素である。本実施の形態では、所属環境の数が増えてもフロー分類規則の数は一定であり、また、アドレス分類規則は増加するが所属環境毎のサイズは小さく、照合回路や記憶素子の容量に与える影響をわずかにとどめることができる。この性質により、数十、数百の所属環境を一度に監視できるネットワーク侵入検知システムが容易に実現できる。
【００６０】
実施の形態２．
また、本実施の形態は、実施の形態１と同様の手段により構成され、ただし、アドレス分類結果１０８をより少ないビット数で表現することを目的とする。
【００６１】
本実施の形態では、アドレス分類結果は、互いに疎な基底アドレスのグループのおのおのに対して、グループ内の基底アドレスの個数をｍとするとき、グループ内のどの基底アドレスにアドレスフィールドの値が合致したかを０〜ｍの整数により表現する。つまり、本実施の形態では、アドレス分類部１０６が、通信パケットに含まれるアドレスフィールドごとに、それぞれのアドレスフィールドに対応する基底アドレスをグループ内の基底アドレスの個数をｍ個とする互いに疎な要素のみで構成されるグループに分類し、アドレス情報抽出部１０１により抽出された通信パケットのアドレスのそれぞれが対応するアドレスフィールドのいずれかの基底アドレスに合致するか否かの判定結果を０からｍの整数により示す。
【００６２】
本実施の形態では、以下に定義された関数ｇｉ（ｖ）を用いて構成されたｋ次元のベクトル（ｇ１（ｖ）、  ｇ２（ｖ）、  ．．．、  ｇｋ（ｖ））をアドレス分類結果１０８として用いる。
【００６３】
まず、基底アドレスの集合を互いに疎な要素のみで構成されるグループＧ１、．．．、Ｇｋに分割する。グループＧｉ（１≦ｉ≦ｋ）がｍ個の基底アドレスＢｉ１、  Ｂｉ２、  ．．．、  Ｂｉｍで構成されるとき、入力されたアドレスフィールドの値ｖがＧｉのどの基底アドレスに属しているかを示す関数をｇｉ（ｖ）とする。ｖがＧｉのどの基底アドレスにも属していないときはｇｉ（ｖ）＝０、ｖがＢｉｊ（１≦ｊ≦ｍ）に属しているときｇｉ（ｖ）＝ｊと定義する。
【００６４】
具体例として、基底アドレス分類Ｐ１〜Ｐ１０があり、そのうちのＰ１〜Ｐ３、Ｐ５〜Ｐ９が互いに素となる場合に対してアドレス分類結果１０８の構成を示すと、図１０に示すとおりとなる。
【００６５】
本実施の形態では、アドレス分類を互いに素なグループに分ける。集合のグループが「互いに素」とは、一般的な数学用語の定義どおり、グループ内のどの２つの集合も共通部分がないことを指す。このようにすると、入力パケットに対して、各グループ内で２個以上のアドレス分類に一致することはない。
図１５は、アドレス分類Ｐ１〜Ｐ１０のうち、Ｐ１〜Ｐ３、Ｐ５〜Ｐ９、はそれぞれ同じグループで、ひとつのパケットに対して
・  Ｐ１〜Ｐ３のどれもマッチしないか、あるいはどれかひとつだけがマッチする。
・  Ｐ５〜Ｐ９のどれもマッチしないか、あるいはどれかひとつだけがマッチする。
・  ただし、Ｐ１〜Ｐ３のいずれか１つと、Ｐ５〜Ｐ９のいずれか１つが同時にマッチする可能性は排除されていない。
という状況を例としている。
【００６６】
実施の形態１の方法では、アドレス分類Ｐ１〜Ｐ１０に対してそれぞれヒットした／しないを示すアドレス分類結果１０８を表現する。ヒットする・しないは１ビットで表現されるので、実施の形態１では、アドレス分類結果１０８には合計１０ビットになる。一方、実施の形態２では、Ｐ１〜Ｐ３のグループに関しては、「Ｐ１〜Ｐ３のどれにヒットしたか、あるいはヒットしなかったか」の四通りのケースが発生する。この各ケースを１０進数ならば０〜３、２進数ならば００、０１、１０、１１の２ビットで表現する。この部分で実施の形態１より１ビット節約される。同様に、「Ｐ５〜Ｐ９のどれにヒットしたか、あるいはヒットしなかったか」について同様に６通りの場合分けが発生する。これは１０進数でいえば０〜５、２進数なら０００、００１、０１０、０１１、１００、１０１の３ビットで表現する。この部分で実施の形態１より２ビットの節約になる。以上、この例では合計３ビットの節約となる。さらに有利な条件、たとえば１００個の独立したグループは実施の形態１では１００ビットを要していたところが実施の形態２では７ビットですむ。アドレス分類結果は次にフロー分類部１０９に入力されるので、シグネチャ次第ではこの部分の所要ビット数は大幅に削減でき、フロー分類部１０９に使用するＴＣＡＭや、アドレス分類部１０６からフロー分類部１０９までの配線量を節約することができる。
【００６７】
このように構成されたアドレス分類結果１０８をビット列として表現すると、各次元の表現に必要なビット数はｌｏｇ２（ｍ＋１）ビットであり、実施の形態１より少ないビット数で構成でき、アドレス分類結果１０８を入力として動作するフロー分類部１０９に必要な回路量が削減される。
【００６８】
以上に述べたアドレス分類結果１０８を出力するアドレス分類部１０６は、実施の形態１で既に述べたアドレス分類部の出力（ｆ１（ｅ、  ｖ）、  ｆ２（ｅ、  ｖ）、  ．．．、  ｆｎ（ｅ、  ｖ））を上記の出力（ｇ１（ｖ）、  ｇ２（ｖ）、  ．．．、  ｇｋ（ｖ））に変換するステップを追加することにより、容易に実現できる。また、フロー分類部１０９並びにフロー分類規則は、入力されるアドレス分類結果１０８のビット列の構成が異なる点を除いて実施の形態１と全く同様に構成できる。
【００６９】
実施の形態３．
本実施の形態は、フロー分類部１０９をＦｉｒｓｔ−Ｍａｔｃｈ型のアルゴリズムないし回路で構成することを想定し、フロー分類結果１１１として１個のフロー細分の識別子を出力する方法を示す。
【００７０】
実施の形態１では図８のようなフロー分類規則を得たが、１つの入力パケットに対して複数のフロー分類が同時にマッチするケースがある。たとえばフロー分類Ａ、  Ｃに同時にマッチした場合は、フロー分類Ａに属するシグネチャの集合と、フロー分類Ｃに属するシグネチャの集合との双方をシグネチャ照合部１１２で検査することになる。このような方式の問題としては、まず、１）Ａ、  Ｃのシグネチャの集合に重なりがあると、同じシグネチャを重複して照合することになり、処理効率が悪いという問題がある。また、２）複数のフロー分類に対して反復処理が発生するため、ハードウェア実装では、タイミング設計が複雑になるという問題がある。本実施の形態では、複数のフロー分類にヒットするケースをあらかじめ細分しておき、どの細分にヒットしたかを求めることで上記の問題を解決することを目的としている。
【００７１】
１つ以上のフロー分類の積集合をフロー細分と呼ぶとき、前記のフロー分類規則は、前記のアドレス分類結果と合致するすべてのフロー分類の積集合であるところのフロー細分を求めるための規則によって与えることができる。つまり、本実施の形態では、フロー分類規則格納部１１０は、フロー分類の積集合であるフロー細分が示されたフロー分類規則を格納している。このため、フロー分類規則に示されているフロー細分の識別子は積集合識別子の例に相当する。
【００７２】
シグネチャの意味から自明なとおり、例えば入力パケットがフロー分類Ａ〜Ｃの交わりであるフロー細分Ａ∩Ｂ∩Ｃに合致する場合、フロー分類Ａ〜Ｃのいずれに属するシグネチャのボディも照合対象とする必要がある。したがって、シグネチャ照合規則は、フロー細分の識別子をキーとして、フロー細分を構成するいずれのフロー分類の少なくとも一つに属しているようなシグネチャのすべてに対して、入力パケットとの照合を行うように編成する。
【００７３】
Ｆｉｒｓｔ−Ｍａｔｃｈで解釈されるフロー分類規則は、下記の条件を満たすものとして構成される。
（ａ）すべての所属環境に対して空であるフロー細分に対しては、フロー分類規則を省略する。
（ｂ）すべての所属環境に対してＡ＝Ｂであるフロー細分Ａ、Ｂに対して、フロー分類規則を重複して作らない。
（ｃ）上記ａ、ｂの例外を除いて、フロー細分に対するフロー分類規則は必ず作成する。
（ｄ）すべての所属環境に対してＡ⊃Ｂであるフロー細分Ａ、Ｂに対して、Ｂに対するフロー分類規則の優先順位をＡよりも高く設定する。
（ｅ）フロー分類規則の各アドレスフィールドの照合条件は、フロー細分を構成するすべてのフロー分類の対応するアドレスフィールドの照合条件の論理積で表される。
【００７４】
次に、図３に示すシグネチャ設定、図４に示す所属環境設定に対するフロー分類規則の算出例を示す。
【００７５】
基底アドレスがつねに一定の包含関係を有するケース、交差を生じうるケースを抽出すると、図１１に示すとおりである。なお、ある所属環境ではＡ⊃Ｂ、別の所属環境ではＢ⊃Ａとなるケースは、Ａ∩Ｂ≠Φとみなす。これに基づいて、フロー分類同士の包含関係・交差関係は図１２のとおりであるとわかる。図１２の包含関係、並びに、実施の形態１で説明した図５のフロー分類Ａ、Ｂ、Ｃをもとに、図１３に示すような本実施の形態のフロー分類規則が求められる。
フロー分類Ａ、Ｂ、Ｃがある場合、一般的には細分は７通りある（Ａ、Ｂ、Ｃ、Ａ∩Ｂ、Ｂ∩Ｃ、Ａ∩Ｃ、Ａ∩Ｂ∩Ｃ）。これを集合の包含関係により、より細分化された集合を優先として、優先順に編成されたルールを編成し、優先度の最も高いルールのみを適用する。上述したように、たとえばフロー細分Ａ∩Ｂにヒットしたパケットに対しては、Ａ、Ｂのシグネチャの双方を照合するようにシグネチャを事前に編成しておくことにより、上記の１）及び２）の問題が解決される。
【００７６】
なお、アドレス分類には変数が含まれており、所属環境によってフロー分類の交わり、包含関係が異なるケースがあるが、こような関係をもつＡ、Ｂに対しては、Ａだけ、Ｂだけ、ＡＢ双方の３パターンすべてを網羅するようにすれば解決する。一方、Ａ、Ｂが常にたがいに素であったり一方を包含していることが分かれば、細分の数を節約できる。
【００７７】
次にフロー分類部１０９をＦｉｒｓｔ−ＭａｔｃｈモードのＴＣＡＭで実現する方法を示す。フロー分類規則の論理的表現、ビット列表現はそれぞれ図１３、図１４であり、それぞれフロー分類に対する検索表（図８、図９）から求められる。前述のとおり、フロー分類規則の各アドレスフィールドの照合条件は、フロー細分を構成するすべてのフロー分類の対応するアドレスフィールドの照合条件の論理積として求められる。
【００７８】
このように、本実施の形態では、１つ以上のフロー分類の積集合をフロー細分と呼ぶとき、フロー分類規則は、アドレス分類結果と合致するすべてのフロー分類の積集合であるところのフロー細分を求めるための規則であり、また、フロー分類結果は１つのフロー細分の識別子によって表現されていることを特徴とする。つまり、本実施の形態では、識別子情報格納部たるフロー分類規則格納部１１０は、シグネチャ格納部１１６に格納されているシグネチャにおいて存在するフロー分類の積集合（照合アドレスの組合せの積集合）を示し、それぞれの積集合に対する識別子（積集合識別子）を示すフロー分類規則（識別子情報）を格納しており、フロー分類部１０９は、アドレス分類部１０６により判定された基底アドレス（照合アドレス）を示すアドレス分類結果１０８がいずれかのフロー細分（照合アドレスの組合せの積集合）に該当する場合に、アドレス分類結果（照合アドレスの組合せ）に対応するフロー細分の識別子（積集合識別子）を判定し、判定したフロー細分の識別子（積集合識別子）をシグネチャ照合部に出力する。
【００７９】
このように、本実施の形態によれば、シグネチャの集合に重なりがある場合でも、同じシグネチャを重複して照合する必要がなく、処理効率を向上させることができる。また、複数のフロー分類に対して反復処理が発生しないため、ハードウェア実装では、タイミング設計が複雑になるという問題を回避することができる。
【００８０】
前述した各実施の形態で、ネットワーク侵入検知システム１０は、コンピュータで実現できるものである。
【００８１】
図示していないが、ネットワーク侵入検知システム１０は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。
【００８２】
例えば、ＣＰＵは、バスを介して、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、通信ボード、表示装置、Ｋ／Ｂ（キーボード）、マウス、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤＤ（コンパクトディスクドライブ）、磁気ディスク装置、光ディスク装置、プリンタ装置、スキャナ装置等と接続されている。
【００８３】
ＲＡＭは、揮発性メモリの一例である。ＲＯＭ、ＦＤＤ、ＣＤＤ、磁気ディスク装置、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。前述した各実施の形態のネットワーク侵入検知システム１０が扱うデータや情報は、記憶装置あるいは記憶部に保存され、ネットワーク侵入検知システム１０の各部により、記録され読み出されるものである。
【００８４】
また、通信ボードは、例えば、ＬＡＮ、インターネット、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されている。
【００８５】
磁気ディスク装置には、オペレーティングシステム（ＯＳ）、ウィンドウシステム、プログラム群、ファイル群（データベース）が記憶されている。
【００８６】
プログラム群は、ＣＰＵ、ＯＳ、ウィンドウシステムにより実行される。
【００８７】
上記ネットワーク侵入検知システム１０の各部は、一部或いはすべてコンピュータで動作可能なプログラムにより構成しても構わない。或いは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
【００８８】
上記プログラム群には、実施の形態の説明において「〜部」として説明した処理をＣＰＵに実行させるプログラムが記憶される。これらのプログラムは、例えば、Ｃ言語やＨＴＭＬやＳＧＭＬやＸＭＬなどのコンピュータ言語により作成される。
【００８９】
また、上記プログラムは、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体に記憶され、ＣＰＵにより読み出され実行される。
【００９０】
ここで、以上の実施の形態１〜３示したネットワーク侵入検知システムの特徴を以下にて示す。
【００９１】
実施の形態１に示したネットワーク侵入検知システムは、シグネチャ設定と所属環境に基づいてネットワーク侵入を検知するネットワーク侵入検知システムであって、
前記のシグネチャ設定はシグネチャの集まりを含み、前記シグネチャのおのおのはパケットの各アドレスフィールドに対する照合条件で構成されるシグネチャヘッダと、パケットの他の照合条件を任意に含んだシグネチャボディを含み、
前記の所属環境設定は、各所属環境の一意な識別子である所属環境識別子と、入力パケットのアドレスフィールドの値に基づいてパケットがどの所属環境に所属するかどうかを判定する規則であるところの所属環境識別規則、並びに、各所属環境に応じたパラメータ値の割当てを含むことを特徴とし、
また、以下の手段を備えたことを特徴とする。
（ａ）入力パケットに含まれるアドレスフィールドを抽出し、前記のアドレスフィールドの組で構成されたアドレス情報を出力するアドレス抽出手段、
（ｂ）前記のアドレス情報を入力とし、後述の設定データ翻訳手段から与えられた所属環境識別規則に基づいてパケットの所属環境を識別し、所属環境識別子を出力する所属環境識別手段、
（ｃ）前記のアドレス情報の各アドレスフィールドに対して１つずつ設けられ、前記の所属環境識別情報と前記のアドレスフィールドを入力とし、後述の設定データ翻訳手段から与えられたアドレス分類規則に基づくことによって前記のアドレスフィールドがおのおのの基底アドレスに合致するかどうかを判定し、その結果を示したものであるアドレス分類結果を出力するアドレス分類手段。ただし、基底アドレスとは、シグネチャヘッダのアドレスフィールドに定数又はパラメータによって示されたアドレスの集合を指す。
（ｄ）前記のアドレス分類結果と前記のアドレス情報を入力として、後述の設定データ翻訳手段から与えられたフロー分類規則に基づいて入力パケットがどのフロー分類に所属すべきかを判定し、その結果を示したものであるフロー分類結果を出力するフロー分類手段。ただし、フロー分類とは、前記のシグネチャ設定に含まれるシグネチャヘッダの同値類の元を指す。
（ｅ）前記のフロー分類結果と前記の入力パケットを入力とし、シグネチャ照合規則  に含まれるシグネチャとの照合を行い、その結果を示したものであるシグネチャ照合結果を出力するシグネチャ照合手段。
（ｆ）所属環境設定、シグネチャ設定を入力とし、これらを翻訳して前記の所属環境識別規則、アドレス分類規則、フロー分類規則並びにシグネチャ照合規則を出力する設定データ翻訳手段。
【００９２】
実施の形態１に示したネットワーク侵入検知システムにおいて、前記のアドレス分類結果は、各基底アドレスに対する合致の有無を１ビットで表現したことを特徴とする。
【００９３】
実施の形態２に示したネットワーク侵入検知システムにおいて、前記のアドレス分類結果は、互いに疎な基底アドレスのグループのおのおのに対して、グループ内の基底アドレスの個数をｍとするとき、グループ内のどの基底アドレスにアドレスフィールドの値が合致したかを０〜ｍの整数により表現することを特徴とする。
【００９４】
実施の形態１に示したネットワーク侵入検知システムにおいて、前記のフロー分類規則は、前記のアドレス分類結果がおのおののフロー分類に合致するかどうかを判定するように構成された規則であり、また、前述のフロー分類手段は前記のフロー分類規則に基づいて各々のフロー分類との合致を判定するものであり、その結果出力される前記のフロー分類結果は、フロー分類を示す識別子の集合によって表されることを特徴とする。
【００９５】
実施の形態３に示したネットワーク侵入検知システムにおいて、１つ以上のフロー分類の積集合をフロー細分と呼ぶとき、前記のフロー分類規則は、前記のアドレス分類結果と合致するすべてのフロー分類の積集合であるところのフロー細分を求めるための規則であり、また、前記のフロー分類結果は１つのフロー細分の識別子によって表現されたことを特徴とする。
【００９６】
以上に示したように、実施の形態１〜３に示したネットワーク侵入検知システムは、フロー分類に必要な検索テーブルの容量が所属環境の個数によらず一定となり、比較的少量のアドレス分類規則、所属環境識別規則の増加のみで抑えられる。これによって、必要な容量の増加を抑えつつ、多数の所属環境を同時に監視可能なネットワーク侵入検知システムを得る。
【００９７】
また、フロー分類規則は数百〜数千個のエントリを必要とするが、アドレス分類規則、所属環境判別規則はそれぞれ数個〜数十個程度の少ない規則数で実現できるので、例えば１台のセンサで数百・数千の異なる所属環境を同時監視できるスケーラビリティを提供することができる。このようなセンサを用いて、例えばプロバイダの幹線等、多数のユーザが混在利用するネットワークにおいて、ユーザに代わってセキュリティ監視を一括して実施することができる。
【００９８】
さらに、各規則の解釈実行はＴｅｒｎａｒｙ  ＣＡＭやＭｕｌｔｉ−Ｆｉｅｌｄ  Ｃｌａｓｓｉｆｉｅｒなど、広く流通するハードウェア照合回路を活用して実装できる。これにより、高性能・低コストでの実現が可能である。
【図面の簡単な説明】
【００９９】
【図１】実施の形態１〜３のネットワーク侵入検知システムを適用するネットワークトポロジの一例を示す図。
【図２】実施の形態１〜３のネットワーク侵入検知システムの構成例を示す図。
【図３】実施の形態１〜３のシグネチャ設定の一例を示す図。
【図４】実施の形態１〜３の所属環境設定の一例を示す図。
【図５】実施の形態１〜３における所属環境識別規則の例を示す図。
【図６】実施の形態１におけるアドレス分類結果のビット構成の例を示す図。
【図７】実施の形態１におけるアドレス分類規則の例を示す図。
【図８】実施の形態１におけるフロー分類規則の例を示す図。
【図９】図８のフロー分類規則をＴＣＡＭ検索表に適した表現に翻訳した例を示す図。
【図１０】実施の形態２におけるアドレス分類結果のビット構成の例を示す図。
【図１１】実施の形態３における基底アドレス間の包含・交差関係を示す図
【図１２】実施の形態３におけるフロー分類間の包含・交差関係を示したベン図。
【図１３】実施の形態３におけるフロー分類規則の例を示す図。
【図１４】図１３のフロー分類規則をＴＣＡＭ検索表に適した表現に翻訳した例を示す図。
【図１５】実施の形態１〜３のネットワーク侵入検知システムの動作例を示すフローチャート図。
【図１６】シグネチャの例を示す図。
【図１７】パラメータを含んだシグネチャの例を示す図。
【図１８】従来のネットワーク侵入検知システムが侵入検知処理の実行時に参照する、シグネチャの内部表現を示す図。
【図１９】従来のネットワーク侵入検知システムの処理手順の概略を示したフローチャート。
【図２０】ＴＣＡＭを用いた従来のネットワーク侵入検知システムの回路構成を示した回路図。
【符号の説明】
【０１００】
１０  ネットワーク侵入検知システム、２０  監視対象ネットワーク、３０  インターネット、１００  パケット入力部、１０１  アドレス情報抽出部、１０２  アドレス情報、１０３  所属環境識別部、１０４  所属環境識別規則格納部、１０５  所属環境識別子、１０６  アドレス分類部、１０７  アドレス分類規則格納部、１０８  アドレス分類結果、１０９  フロー分類部、１１０  フロー分類規則格納部、１１１  フロー分類結果、１１２  シグネチャ照合部、１１３  シグネチャ照合規則格納部、１１４  シグネチャ照合結果、１１５  所属環境格納部、１１６  シグネチャ格納部、１１７  設定データ翻訳部。
【図１】
2006041969.tif 000003
【図２】
2006041969.tif 000004
【図３】
2006041969.tif 000005
【図４】
2006041969.tif 000006
【図５】
2006041969.tif 000007
【図６】
2006041969.tif 000008
【図７】
2006041969.tif 000009
【図８】
2006041969.tif 000010
【図９】
2006041969.tif 000011
【図１０】
2006041969.tif 000012
【図１１】
2006041969.tif 000013
【図１２】
2006041969.tif 000014
【図１３】
2006041969.tif 000015
【図１４】
2006041969.tif 000016
【図１５】
2006041969.tif 000017
【図１６】
2006041969.tif 000018
【図１７】
2006041969.tif 000019
【図１８】
2006041969.tif 000020
【図１９】
2006041969.tif 000021
【図２０】
2006041969.tif 000022