(57)【要約】  １以上の通信アプリケーションプログラムを実行する通信制御装置（１００）であって、第一制御部（２０６）と、第一メモリ（１０３）と、第一条件情報（４０５）を記憶する記憶部（１０５）と、ネットワーク通信部（１０２）とを備え、ネットワーク通信部（１０２）は、受信部（２０１）と、第二条件情報（２０５）を記憶する第二メモリ（２００）と、受信部（２０１）が受信したパケットのうち、第二条件情報（２０５）に登録されている条件に該当するパケットを第一メモリ（１０３）に転送する処理であるフィルタ処理を行う第二制御部（２１０）とを有し、第一制御部（２０６）は、第一条件情報（４０５）に示されるＮ＋１個以上の条件のうちの少なくとも１つの条件を用いて、第二条件情報（２０５）の更新を行う。
2011152052.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続され、１以上の通信アプリケーションプログラムを実行する通信制御装置であって、
第一制御部と、
前記１以上の通信アプリケーションプログラムに処理されるパケットを蓄積する第一メモリと、
前記第一メモリに蓄積すべきパケットを特定するためのＮ＋１個以上（Ｎは１以上の整数）の条件を示す第一条件情報を記憶する記憶部と、
受信したパケットを選択的に前記第一メモリに転送するネットワーク通信部とを備え、
前記ネットワーク通信部は、
前記ネットワークを介して送信されるパケットを受信する受信部と、
前記Ｎ＋１個以上の条件のうちのＮ個までの条件が登録される第二条件情報を記憶する第二メモリと、
前記受信部が受信したパケットのうち、前記第二条件情報に登録されている条件に該当するパケットを前記第一メモリに転送する処理であるフィルタ処理を行う第二制御部と、を有し、
前記第一制御部は、前記第一条件情報に示される前記Ｎ＋１個以上の条件のうちの少なくとも１つの条件を用いて、前記第二条件情報の更新を行う
通信制御装置。
【請求項２】
前記第一制御部は、前記第二条件情報の更新を行う場合、前記第一条件情報に示される前記Ｎ＋１個以上の条件のうち、当該更新の時点で前記第二条件情報に登録されていない条件である未登録条件を前記第一条件情報から読み出し、読み出した未登録条件を、前記第二条件情報に示される条件のうちのいずれかの条件と置き換えることで前記未登録条件を前記第二条件情報に登録する
請求項１記載の通信制御装置。
【請求項３】
前記第一制御部は、前記第二条件情報の更新を繰り返し行う
請求項１または２に記載の通信制御装置。
【請求項４】
前記第一制御部は、前記第二条件情報の更新を繰り返し行うことで、前記第一条件情報に示される前記Ｎ＋１個以上の条件のそれぞれを、所定の順序で前記第二条件情報に登録する
請求項１または２に記載の通信制御装置。
【請求項５】
前記第一制御部は、前記第二条件情報の更新を行う場合、前記未登録条件が複数あるときは、複数の前記未登録条件の中で、過去に前記第二条件情報から削除されてからの期間が最も長い未登録条件を特定し、特定した未登録条件を前記第一条件情報から読み出す
請求項２記載の通信制御装置。
【請求項６】
前記第一条件情報はさらに、前記第一条件情報に示される条件それぞれの優先度を示す優先度情報を含み、
前記第一制御部は、前記第二条件情報の更新を行う場合、前記未登録条件が複数あるときは、前記優先度情報を参照することで、複数の前記未登録条件の中で最も優先度の高い未登録条件を特定し、特定した未登録条件を前記第一条件情報から読み出す
請求項２記載の通信制御装置。
【請求項７】
前記第一制御部は、前記第二条件情報の更新を行う場合、前記第二条件情報に示される前記Ｎ個までの条件のうち、前記第二条件情報に登録された時期が最も早い条件を特定し、特定した条件を、前記制御部が前記第一条件情報から読み出した前記未登録条件と置き換える
請求項２記載の通信制御装置。
【請求項８】
前記Ｎ＋１個以上の条件のそれぞれは、前記１以上の通信アプリケーションプログラムのいずれかと対応付けられており、
前記第一制御部はさらに、前記１以上の通信アプリケーションプログラムのいずれかが実行される際に、実行される通信アプリケーションプログラムに対応する条件を前記第一条件情報に追加することで、前記第一条件情報を更新する
請求項１〜７のいずれか１項に記載の通信制御装置。
【請求項９】
前記第一制御部はさらに、前記通信アプリケーションプログラムの実行が終了した場合、前記通信アプリケーションプログラムに対応する条件を、前記第一条件情報から削除する
請求項８記載の通信制御装置。
【請求項１０】
ネットワークに接続され、１以上の通信アプリケーションプログラムを実行する通信制御装置におけるパケットフィルタリング方法であって、
前記通信制御装置は、
前記１以上の通信アプリケーションプログラムに処理されるパケットを格納する第一メモリと、
前記第一メモリに格納すべきパケットを特定するためのＮ＋１個以上（Ｎは１以上の整数）の条件を示す第一条件情報を記憶する記憶部と、
受信したパケットを選択的に前記第一メモリに転送するネットワーク通信部とを備え、
前記パケットフィルタリング方法は、
前記ネットワークを介して送信されるパケットを前記ネットワーク通信部が受信する受信ステップと、
前記ネットワーク通信部が有する第二メモリに記憶されている、前記Ｎ＋１個以上の条件のうちのＮ個の条件が登録された第二条件情報を、前記第一条件情報に示される前記Ｎ＋１個以上の条件のうちの少なくとも１つの条件を用いて更新する更新ステップと、
前記受信ステップにおいて受信されたパケットのうち、前記更新ステップにおいて更新された前記第二条件情報に登録されている条件に該当するパケットを前記第一メモリに転送する処理であるフィルタ処理を行うフィルタリングステップと
を含むパケットフィルタリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｄｏｓ攻撃（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ攻撃）等の、システムに対するネットワークからの攻撃を回避する、通信制御装置およびパケットフィルタリング方法に関する。
【背景技術】
【０００２】
従来、ネットワーク機能を有する機器に対して、短時間に大量のデータ送信し、当該ネットワーク機器に対して高負荷を与えることにより、サービスおよびシステムを利用不能にさせるＤｏｓ攻撃と言われるものがある。【０００３】
Ｄｏｓ攻撃には、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）と呼ばれるプロトコルを利用して短時間に膨大な数のＩＣＭＰ  Ｅｃｈｏ  Ｒｅｑｕｅｓｔパケットを送信する攻撃方法などがよく知られている。従来、このようなＤｏｓ攻撃を行うにはネットワークの知識が必要であった。【０００４】
しかし、近年では、容易に利用できるＤｏｓ攻撃ツールなどが広がっている。そのため、ネットワークの知識の乏しいユーザであっても簡単に攻撃可能な環境が整ってきている。その結果、ＩＣＭＰに限らず様々な種類のＤｏｓ攻撃をすることが可能となっている。【０００５】
このようなＤｏｓ攻撃を回避する方法として、大きく２通りの方法がある。【０００６】
１つ目は、事前にＤｏｓ攻撃のパターン内容を把握しておきＤｏｓ攻撃パターンにマッチするパケットを破棄することで攻撃を回避する方法である。この方法は、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒｓ）等で、セキュリティを確保する為に使用されるウイルス対策ソフトで用いられている。【０００７】
２つ目は、機器が通信に利用するパケットのみを選択的に受信する方法である。例えば、従来のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）に搭載されているＭＡＣアドレスフィルタリング機能などが当該方法に該当する。【０００８】
ＭＡＣアドレスフィルタリング機能とは、受信機器に他の機器のユニキャストＭＡＣアドレスを登録することにより、当該他の機器から送信されるパケット以外のパケットを受信しないようにすることで当該受信機器に対するセキュリティを確保する方法である。【０００９】
また、ファイアウォールを実現する先行例の一例として、特許文献１に記載のように、パケットパターンをハッシュ化してテーブルに登録する方法がある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００７−１４２６６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ここで、Ｄｏｓ攻撃の手法は日々進化しており様々なパターンによる攻撃が登場するため、事前にＤｏｓ攻撃のパターンを把握する方法においては、攻撃パターンを随時更新する必要がある。【００１２】
そのため、この方法は、ＰＣ等の利用用途が特定されていない機器、例えば、使用目的に応じて通信アプリケーションプログラム（以下、単に「通信プログラム」という。）を追加および削除することが一般的である機器においては有用である。【００１３】
しかし、実行するサービスが特定されている通信機器においては、通信に利用するパケットのみを受信する方法を用いた方が効率の良いＤｏｓ攻撃回避を行うことが可能である。【００１４】
このような通信機器としては、テレビおよびハードディスクレコーダなどの家電機器が例示される。例えば、近年、インターネットを介してマルチメディアコンテンツを取得し再生する機能を有するテレビが存在する。このようなネットワーク機能を有するテレビは、原則として工場出荷時に組み込まれた通信プログラムのみが実行され、事後的な通信プログラムの追加および削除は行われない。【００１５】
そのため、当該テレビが使用するパケットの種類は原則として予め特定される種類のみである。つまり、理論上、特定される種類のパケットのパターンのみをフィルタを通過させる条件として登録しておけば、Ｄｏｓ攻撃を回避することができる。【００１６】
また、このような組み込み機器では、ＰＣ等とは異なり、主要な処理（例えば、テレビであれば、チャンネルの選択および放送データの復号など）に影響を与えないように、パケットフィルタリングは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）コントローラ等の、ハードウェアで行われることが一般的である。これにより、当該主要な処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にパケットフィルタリングのための負荷をかけることが防止される。【００１７】
ここで、機器に必要なパケットのパターンのみをフィルタに登録し、登録されたパターンに該当しないパケットをＤｏｓパケットと判断する考えを、従来のパケットフィルタリングの機能に適用することを想定する。この場合、登録可能なパターン数は有限である一方で、様々なサービスの実現のために、機器が必要とするパケットのパターン数は増加傾向にある。そのため、パケットフィルタリングに必要なパケットパターンを全て登録できないといった課題がある。【００１８】
なお、例えば特許文献１に記載の技術のように、ハッシュ化を利用する事で、パケットパターンの登録数を増やすことは可能である。しかし、必要なパケットパターンを全て登録できないといった課題の根本的解決にはならない。【００１９】
特に、上述のように、パケットフィルタリングをハードウェアで実現することを考えた場合、登録可能なパターン数を増やすということは、当該ハードウェアが備えるメモリの容量を増加させる必要が生じる。しかしながら、例えば生産コストを考慮すると、メモリ容量を増加させることは課題を解決する方策としては適切ではない。【００２０】
本発明は上記従来の課題を考慮し、登録されている条件に該当するパケットのみを通過させるパケットフィルタリング機能を有する通信制御装置であって、当該条件を格納するメモリの容量を増加させることなく、的確にパケットフィルタリングを行う通信制御装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
上記従来の課題を解決するために、本発明の一態様に係る通信制御装置は、ネットワークに接続され、１以上の通信アプリケーションプログラムを実行する通信制御装置であって、第一制御部と、前記１以上の通信アプリケーションプログラムに処理されるパケットを蓄積する第一メモリと、前記第一メモリに蓄積すべきパケットを特定するためのＮ＋１個以上（Ｎは１以上の整数）の条件を示す第一条件情報を記憶する記憶部と、受信したパケットを選択的に前記第一メモリに転送するネットワーク通信部とを備え、前記ネットワーク通信部は、前記ネットワークを介して送信されるパケットを受信する受信部と、前記Ｎ＋１個以上の条件のうちのＮ個までの条件が登録される第二条件情報を記憶する第二メモリと、前記受信部が受信したパケットのうち、前記第二条件情報に登録されている条件に該当するパケットを前記第一メモリに転送する処理であるフィルタ処理を行う第二制御部と、を有し、前記第一制御部は、前記第一条件情報に示される前記Ｎ＋１個以上の条件のうちの少なくとも１つの条件を用いて、前記第二条件情報の更新を行う。【００２２】
この構成により、例えば第二メモリの容量が小さいために、当該通信制御装置が必要とするパケットを特定するための条件の全てを第二条件情報に登録できない場合であっても、これら全ての条件のそれぞれを、パケットフィルタリングに用いることが可能となる。【００２３】
具体的には、第一制御部が、第二制御部に参照される第二メモリに格納された複数の条件の組み合わせを時間的に変更することができる。これにより、第一メモリに転送すべきパケットを特定するために必要な条件の全てがパケットフィルタリングに用いられる。【００２４】
つまり、第一条件情報に対し条件の追加または削除などの更新が行われていない期間（当該Ｎ＋１個以上の条件がそのまま維持されている期間）であっても第二条件情報の更新は実行される。その結果、所定の期間内に、当該Ｎ＋１個以上の条件の全てを、フィルタ処理に実際に用いられる条件として用いることができる。【００２５】
これにより、当該通信制御装置が必要とするパケットのみを第一メモリに格納させ、かつ、それ以外のパケットを確実に破棄等することができる。【００２６】
従って、本態様の通信制御装置によれば、登録されている条件に該当するパケットのみを通過させるパケットフィルタリング機能を有する通信制御装置であって、条件を格納するメモリ（第二メモリ）の容量を増加させることなく、的確にパケットフィルタリングを行うことができる。【００２７】
また、本発明の一態様に係る通信制御装置において、前記第一制御部は、前記第二条件情報の更新を行う場合、前記第一条件情報に示される前記Ｎ＋１個以上の条件のうち、当該更新の時点で前記第二条件情報に登録されていない条件である未登録条件を前記第一条件情報から読み出し、読み出した未登録条件を、前記第二条件情報に示される条件のうちのいずれかの条件と置き換えることで前記未登録条件を前記第二条件情報に登録するとしてもよい。【００２８】
この構成によれば、パケットフィルタリングにおける比較処理に用いられる第二条件情報の更新の際に、その時点で、第二条件情報に登録されていない条件が確実に特定され、第二条件情報に登録される。これにより、例えば、より効果的なパケットフィルタリングが実行される。【００２９】
また、本発明の一態様に係る通信制御装置において、前記第一制御部は、前記第二条件情報の更新を繰り返し行うとしてもよい。【００３０】
この構成によれば、第二条件情報の更新が随時行われるため、例えば、当該通信制御装置が必要とするパケットの処理がより効率よく実行される。【００３１】
また、本発明の一態様に係る通信制御装置において、前記第一制御部は、前記第二条件情報の更新を繰り返し行うことで、前記第一条件情報に示される前記Ｎ＋１個以上の条件のそれぞれを、所定の順序で前記第二条件情報に登録するとしてもよい。【００３２】
この構成によれば、第一制御部は、第二条件情報の更新処理において、所定の順序で第一条件情報から条件を読み出していけばよいため、例えば更新処理が効率よく実行される。また、例えば、当該通信制御装置が必要とするパケットを特定するための条件の全てが、確実かつ平等に第二条件情報に登録される。【００３３】
また、本発明の一態様に係る通信制御装置において、前記第一制御部は、前記第二条件情報の更新を行う場合、前記未登録条件が複数あるときは、複数の前記未登録条件の中で、過去に前記第二条件情報から削除されてからの期間が最も長い未登録条件を特定し、特定した未登録条件を前記第一条件情報から読み出すとしてもよい。【００３４】
この構成によれば、第二条件情報に登録されていない期間が長いものから順に、第二条件情報に登録される。そのため、例えば、当該通信制御装置が必要とするパケットを特定するための条件の全てが、確実かつ平等に第二条件情報に登録される。【００３５】
また、本発明の一態様に係る通信制御装置において、前記第一条件情報はさらに、前記第一条件情報に示される条件それぞれの優先度を示す優先度情報を含み、前記第一制御部は、前記第二条件情報の更新を行う場合、前記未登録条件が複数あるときは、前記優先度情報を参照することで、複数の前記未登録条件の中で最も優先度の高い未登録条件を特定し、特定した未登録条件を前記第一条件情報から読み出すとしてもよい。【００３６】
この構成によれば、複数の未登録条件の中から優先度の高い未登録条件が確実に特定され、第二条件情報に登録される。そのため、例えば、処理の対象としての優先度が高いパケットの処理が、より効率よく実行される。【００３７】
また、本発明の一態様に係る通信制御装置において、前記第一制御部は、前記第二条件情報の更新を行う場合、前記第二条件情報に示される前記Ｎ個までの条件のうち、前記第二条件情報に登録された時期が最も早い条件を特定し、特定した条件を、前記制御部が前記第一条件情報から読み出した前記未登録条件と置き換えるとしてもよい。【００３８】
この構成によれば、第二条件情報の更新の際に、その時点で第二条件情報に登録されている連続期間が最も長いものが、未登録条件と置き換えられる。そのため、例えば、第二条件情報に示される条件に偏りが発生することが防止される。【００３９】
また、本発明の一態様に係る通信制御装置において、前記Ｎ＋１個以上の条件のそれぞれは、前記１以上の通信アプリケーションプログラムのいずれかと対応付けられており、前記第一制御部はさらに、前記１以上の通信アプリケーションプログラムのいずれかが実行される際に、実行される通信アプリケーションプログラムに対応する条件を前記第一条件情報に追加することで、前記第一条件情報を更新するとしてもよい。【００４０】
この構成によれば、第二条件情報への条件の供給元である第一条件情報が、通信アプリケーションプログラムの起動状況に応じて更新される。これにより、第二条件情報は、時期に応じて実際に必要な条件のみが登録された状態に維持される。従って、例えば、パケットフィルタリングに係る処理の効率性がより向上する。【００４１】
また、本発明の一態様に係る通信制御装置において、前記第一制御部はさらに、前記通信アプリケーションプログラムの実行が終了した場合、前記通信アプリケーションプログラムに対応する条件を、前記第一条件情報から削除するとしてもよい。【００４２】
この構成によれば、不要となった条件は、不要となった時点で確実に第一条件情報から削除される。従って、例えば、パケットフィルタリングに係る処理の効率性がより向上する。【００４３】
また、本発明は、上記いずれかの態様の通信制御装置が実行する特徴的な処理を含むパケットフィルタリング方法として実現することもできる。また、当該パケットフィルタリング方法が含む各処理をコンピュータに実行させるためのプログラムとして実現すること、および、そのプログラムが記録された記録媒体として実現することもできる。そして、そのプログラムをインターネット等の伝送媒体又はＤＶＤ等の記録媒体を介して配信することもできる。【００４４】
また、本発明は、上記いずれかの態様の通信制御装置の特徴的な構成部を備える集積回路として実現することもできる。
【発明の効果】
【００４５】
本発明は、登録されている条件に該当するパケットのみを通過させるパケットフィルタリング機能を有する通信制御装置であって、当該条件を格納するメモリの容量を増加させることなく、的確にパケットフィルタリングを行う通信制御装置を提供することができる。【００４６】
これにより、当該通信制御装置を備えるシステムがＤｏｓ攻撃により破壊されることなく、かつ、有限のメモリ容量を活用して機器が必要とするパケットのみを受信することが可能となる。
【図面の簡単な説明】
【００４７】
【図１】図１は、本発明の実施の形態の通信制御装置の主要なハードウェア構成を示す図である。
【図２】図２は、本発明の実施の形態の通信制御装置の主要な機能構成を示すブロック図である。
【図３】図３は、本発明の実施の形態における通過パケットテーブルのデータ構成の一例を示す図である。
【図４】図４は、本発明の実施の形態における制御部の主要な機能構成を示すブロック図である。
【図５】図５は、本発明の実施の形態における機器使用パケットテーブルのデータ構成の一例を示す図である。
【図６Ａ】図６Ａは、本発明の実施の形態の通信制御装置が実行する基本的な処理の流れを示すフロー図である。
【図６Ｂ】図６Ｂは、本発明の実施の形態における制御部が更新制御を行う際の一連の処理の流れを示すフロー図である。
【図７】図７は、図６Ｂに示す処理フローが実行された場合における、各テーブルの内容の遷移の一例を示す図である。
【図８】図８は、本発明の実施の形態における機器使用パケットテーブルに登録されたパケットパターンと、通信プログラムとの対応例を示す図である。
【図９Ａ】図９Ａは、本発明の実施の形態における更新後の機器使用パケットテーブルの第一の例を示す図である。
【図９Ｂ】図９Ｂは、本発明の実施の形態における更新後の機器使用パケットテーブルの第二の例を示す図である。
【発明を実施するための形態】
【００４８】
以下、本発明を実施するための形態について、図面を参照しながら説明する。
【００４９】
まず、本発明の実施の形態の通信制御装置の構成について図１〜図５を用いて説明する。
【００５０】
図１は、本発明の実施の形態の通信制御装置１００の主要なハードウェア構成を示す図である。
【００５１】
通信制御装置１００は、有線または無線の通信ネットワークであるＬＡＮ１０１に接続されており、ＬＡＮ１０１を介して外部機器と通信を行うことができる。
【００５２】
また、通信制御装置１００は、ネットワークインターフェース１０２と、第一メモリ１０３と、ＣＰＵ１０４と、ハードディスクドライブ（ＨＤＤ）１０５とを備える。
【００５３】
ネットワークインターフェース１０２は、本発明の通信制御装置におけるネットワーク通信部の一例である。ネットワークインターフェース１０２は、本実施の形態では、外部機器からＬＡＮ１０１を介して送信されるデータを受信するハードウェアである。具体的には、ネットワークインターフェース１０２は、ＦＩＦＯおよびディスクリプタリングなどのメモリ構造を有し、複数のパケットを受信することができる。
【００５４】
第一メモリ１０３は、ＬＡＮ１０１ら受信したパケットのうちの、通信制御装置１００が使用するパケットを格納するためのメモリである。第一メモリ１０３に格納されたパケットは、ＨＤＤ１０５に記憶されている通信プログラムの実行中に読み出され、処理される。
【００５５】
つまり、ＣＰＵ１０４が、第一メモリ１０３に格納されているパケットを処理することで、通信制御装置１００は外部機器と通信を行う。
【００５６】
ＨＤＤ１０５は、本発明の通信制御装置における記憶部の一例であり、通信制御装置１００が使用するパケットのパターンが記録された機器使用パケットテーブルを記憶する記憶装置である。また、ＨＤＤ１０５には、通信制御層と１００が実行する１以上の通信プログラムも記憶されている。機器使用パケットテーブルについては、図５を用いて後述する。
【００５７】
なお、本発明の通信制御装置における記憶部は、機器使用パケットテーブル等の情報を記憶可能であればよく、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の、ＨＤＤとは異なる種類の不揮発性記憶媒体によって実現されてもよい。
【００５８】
また、通信プログラムと機器使用パケットテーブルとはそれぞれ別の記憶装置に記憶されていてもよい。
【００５９】
また、通信制御装置１００は、例えばテレビ等の家電機器に内蔵され、通信プログラムを実行することで有線または無線のネットワークを介してデータを送受信する装置として実現される。
【００６０】
図２は、通信制御装置１００の主要な機能構成を示すブロック図である。
【００６１】
ネットワークインターフェース１０２は、パケット受信部２０１、第二制御部２１０、および第二メモリ２００を備える。また、第二制御部２１０は、比較部２０２および転送部２０４を有する。
【００６２】
パケット受信部２０１は、ＬＡＮ１０１から送られてくるパケットを受信する。
【００６３】
第二制御部２１０は、パケット受信部２０１が受信したパケットのうち、第二メモリ２００に格納されている通過パケットテーブル２０５に登録されている条件に該当するパケットを第一メモリ１０３に転送する処理であるフィルタ処理を行う。本実施の形態では、比較部２０２および転送部２０４が以下に示す処理を行うことでフィルタ処理が実行される。
【００６４】
比較部２０２は、パケット受信部２０１が受信したパケット（以下、単に「受信パケット」ともいう。）のそれぞれについて、第一メモリ１０３への転送のための条件との比較を行う。
【００６５】
具体的には、比較部２０２は、受信パケットのそれぞれと、第二メモリ２００に格納されている通過パケットテーブル２０５に示されるＮ個（Ｎは１以上の整数）のパケットパターンとを比較する。
【００６６】
また、比較部２０２は、破棄部２０３を有する。破棄部２０３は、比較部２０２による比較の結果、Ｎ個のパケットパターンのいずれにも該当しないと判断された受信パケット、つまり、第一パケットに転送しないと判断された受信パケットを、第一メモリ１０３に転送される前に破棄する。
【００６７】
なお、第二制御部２１０は、比較処理以外の処理によって、受信パケットがＮ個のパケットパターンのいずれかに該当するか否かの判断を行ってもよい。第二制御部２１０は、例えば、受信パケットから取得される送信元アドレス等の情報を、Ｎ個のパケットパターンを示す情報を含む所定の関数に代入することで、当該判断を行ってもよい。
【００６８】
また、第一パケットに転送しないと判断された受信パケットは、ネットワークインターフェース１０２から第一メモリ１０３に転送されなければよく、その処理方法は破棄以外の方法であってもよい。例えば、攻撃パターンの解析のために所定の記憶装置に蓄積されてもよい。
【００６９】
転送部２０４は、比較部２０２による比較の結果、受信パケットがＮ個のうちのいずれかのパケットパターンに該当する場合に、当該受信パケットを第一メモリ１０３に転送する。これにより、当該受信パケットは第一メモリ１０３に格納される。
【００７０】
第二メモリ２００は、上述のように、通過パケットテーブル２０５を格納するメモリである。
【００７１】
通過パケットテーブル２０５は、通信制御装置１００が受信すべきパケットを特定する条件が登録されるテーブルである。通過パケットテーブル２０５のデータ構成例については、図３を用いて後述する。
【００７２】
第一制御部２０６は、通過パケットテーブル２０５を更新する。具体的には、第一制御部２０６は、第一メモリ１０３に転送すべきパケットのパターンを新規に登録すること、および、既に登録されているパターンを削除することができる。
【００７３】
また、この更新の際には、ＨＤＤ１０５に記憶されている機器使用パケットテーブル４０５に登録されたパケットパターンが用いられる。
【００７４】
なお、第一制御部２０６による上記更新処理、および、第二制御部２１０による上記フィルタ処理は、例えばＣＰＵ１０４が、ＨＤＤ１０５に記憶されている制御プログラム（図示せず）を実行することにより実現される。
【００７５】
実行部２０７は、ＨＤＤ１０５に記憶されている１以上の通信プログラムを実行する処理部であり、例えばＣＰＵ１０４により実現される。実行部２０７は、通信プログラムを実行することで、第一メモリ１０３に格納されたパケットを読み出して処理する。
【００７６】
ここで、通過パケットテーブル２０５が記憶されている第二メモリ２００は、ハードウェアで構成されるネットワークインターフェース１０２内のメモリによって実現されている。このような、ネットワークインターフェースカードが有するメモリでは、登録可能なパターンの最大数は数十個から数百個程度であり、当該ネットワークインターフェースカードを備える装置が受信すべきパケットパターンに比べて非常に少ないものである。
【００７７】
本実施の形態の通信制御装置１００では、このようにハードウェアで構成されるネットワークインターフェース１０２で、通信制御装置１００が必要としないパケットをＤｏｓ攻撃のパケット（以下、「攻撃パケット」という。）であると認識することができる。また、攻撃パケットと認識されたパケットは、第一メモリ１０３に転送する前に破棄することができる。これにより、データ転送によるバス使用率の低減すること、および、不必要なデータ転送の結果発生するＣＰＵ１０４の処理負荷を抑制することが可能である。
【００７８】
図３は、通過パケットテーブル２０５のデータ構成の一例を示す図である。
【００７９】
通過パケットテーブル２０５は、本発明の通信制御装置における第二条件情報の一例であり、機器使用パケットテーブル４０５に示されるＮ＋１個以上の条件のうちのＮ個までの条件を登録可能なテーブルである。本実施の形態において、この“条件”とは、パケットの１以上の属性情報から構成されるパケットパターンである。
【００８０】
図３に示す例では、Ｎ＝３個のエントリから構成される通過パケットテーブル２０５が図示されている。各エントリは、フィルタを通過させるべきパケット、つまり、第一メモリ１０３に転送すべきパケットを特定するためのパケットパターンを示す項目である“パターン”を有する。また、各エントリにはエントリ番号が付与されている。
【００８１】
なお、上記Ｎの値“３”は、実施の形態の説明の明確化のための一例であり、特定の数には限定されない。
【００８２】
比較部２０２は、受信パケットと、通過パケットテーブル２０５に示される情報との比較を行う。比較の結果、当該受信パケットが、通過パケットテーブル２０５に示されるいずれかのパケットパターンと一致する場合、比較部２０２は転送部２０４を介して第一メモリ１０３にパケットを転送する。また、これらが一致しなければ、破棄部２０３が当該受信パケットを破棄する。
【００８３】
本実施の形態では、通過パケットテーブル２０５に登録されるパケットパターンのそれぞれは、図３に示されるように、Ｅｔｈｅｒフレームヘッダに示される送信元ＭＡＣアドレス、ＩＰヘッダに示される送信元ＩＰアドレス、プロトコルタイプ、およびＴＣＰヘッダまたはＵＤＰヘッダに示される宛先ポート情報の組み合わせである。
【００８４】
しかし、パケットパターンを構成する情報は、これらヘッダ情報に限定されるものではなく、パケットのヘッダ部内の他のフィールドに含まれる情報でもよい。さらには、ヘッダ情報に限定されるものでもなく各種プロトコルのデータ部から情報を取得し、通過させるべきパケットのパターンを示す情報として通過パケットテーブル２０５に登録してもよい。つまり、ヘッダ情報以外の情報を、比較部２０２による比較処理に用いてもよい。
【００８５】
図４は、第一制御部２０６の主要な機能構成を示すブロック図である。
【００８６】
第一制御部２０６は、エントリ数取得部４０１、テーブル更新部４０２、更新制御部４０３、およびタイマー４０４を有する。
【００８７】
エントリ数取得部４０１は、通過パケットテーブル２０５の総エントリ数を取得する。テーブル更新部４０２は、通過パケットテーブル２０５へのパケットパターンの登録および通過パケットテーブル２０５からのパケットパターンの削除を行う。
【００８８】
更新制御部４０３は、機器使用パケットテーブル４０５の中から通過パケットテーブル２０５に追加するパケットパターンを特定し、テーブル更新部４０２に登録させる。また、更新制御部４０３は、この登録に伴い、削除すべきパケットパターンを特定し、テーブル更新部４０２に削除させる。つまり、更新制御部４０３は、テーブル更新部４０２に、パケットパターンの置き換えを行わせることができる。
【００８９】
タイマー４０４は、更新制御部４０３に対して更新のタイミングを通知する。
【００９０】
機器使用パケットテーブル４０５には、通信制御装置１００が使用するパケットのパターンが全て記録されている。つまり、ネットワークインターフェース１０２から第一メモリ１０３に転送されるべき全てのパケットを特定するためのパケットパターンが機器使用パケットテーブル４０５に記録されている。
【００９１】
機器使用パケットテーブル４０５には、例えば、通信制御装置１００の工場出荷時に、通信制御装置１００が使用するパケットのパターンが記録される。しかし、例えば、通信制御装置１００における通信プログラムの起動状況に応じて機器が使用するパケットのパターンが更新されてもよい。このような、機器使用パケットテーブル４０５の更新については、図８等を用いて後述する。
【００９２】
タイマー４０４は、一定間隔毎に更新制御部４０３に対して更新すべきタイミング（更新タイミング）を通知する。タイマー４０４は、例えば１０ｍｓ毎または１００ｍｓ毎などの一定間隔毎に更新制御部４０３に更新タイミングを通知する機能を有する。
【００９３】
更新制御部４０３は、通信プログラムの起動時などにおいて、エントリ数取得部４０１を介して通過パケットテーブル２０５の総エントリ数を取得する。更新制御部４０３はさらに、当該総エントリ数分のパケットパターンを、機器使用パケットテーブル４０５から読み出す。読み出されたパケットパターンは、テーブル更新部４０２により通過パケットテーブル２０５に登録される。
【００９４】
その後、例えばタイマー４０４による通知間隔が１００ｍｓに設定されている場合は、最初の登録から１００ｍｓ後にタイマー４０４から更新制御部４０３に対して更新を実行するように通知が行われる。この通知を受けた更新制御部４０３は、通過パケットテーブル２０５に未登録のパケットパターンを機器使用パケットテーブル４０５から取得し、通過パケットテーブル２０５に既に登録されているパターンと置き換える。このようにして、通過パケットテーブル２０５が更新される。
【００９５】
このように、更新制御部４０３が動作することで、通過パケットテーブル２０５に登録可能なエントリ数以上のパケットパターンがパケットフィルタリングのために必要な場合であっても、Ｄｏｓ攻撃を回避しつつ、通信制御装置１００が必要とするパケットのみを受信することが可能となる。
【００９６】
図５は、機器使用パケットテーブル４０５のデータ構成の一例を示す図である。
【００９７】
機器使用パケットテーブル４０５は、本発明の通信制御装置１００における第一条件情報の一例であり、第一メモリ１０３に格納すべきパケットを特定するためのＮ＋１個以上の条件を示すテーブルである。つまり、通信制御装置１００が必要とするパケットを特定するための条件が記録されたテーブルである。
【００９８】
図５に示す例では、Ｎ＋１＝４個のエントリから構成される機器使用パケットテーブル４０５が図示されている。つまり本実施の形態では、通信制御装置１００が通信する際に受信すべきパケットのパターンは４個であることを示している。なお、このパターン数“４”は、実施の形態の説明の明確化のための一例であり、特定の数には限定されない。
【００９９】
各エントリは、データ項目として、“登録パターン”と、“登録順”と、“登録中フラグ”とを有する。また、各エントリにはエントリ番号が付与されている。
【０１００】
“登録パターン”は、通過パケットテーブル２０５に登録するパケットパターンを示す項目である。“登録順”は、当該エントリのパケットパターンを通過パケットテーブル２０５に登録した順番を示す項目である。“登録中フラグ”は、当該エントリのパケットパターンが通過パケットテーブル２０５に登録されているかどうかを識別する項目である。
【０１０１】
なお、図５では“パターン１”等で示されているが、“登録パターン”としては、図３に示す、通過パケットテーブル２０５における“パターン”と同じデータ構成の情報が登録されている。
【０１０２】
“登録順”は、順番にカウントアップする数値を示す項目であって、更新制御部４０３が当該エントリのパターンを通過パケットテーブル２０５に登録した順番が記録されている。例えば図５に示す例ではエントリ番号“１”の登録パターン、エントリ番号“２”の登録パターン、エントリ番号“３”の登録パターンの順に、通過パケットテーブル２０５に登録されたことが示される。
【０１０３】
“登録中フラグ”は、当該エントリの登録パターンが通過パケットテーブル２０５に登録中であるかどうかを識別するために使用する項目である。具体的には、通過パケットテーブル２０５に登録中のエントリについては“登録済”と記録され、通過パケットテーブル２０５に未登録のエントリについては“未登録”と記録される。
【０１０４】
更新制御部４０３は、機器使用パケットテーブル４０５に示される、これら登録順と登録中フラグとから次に更新対象となるエントリを検索することが可能である。
【０１０５】
すなわち、登録中フラグが“登録済”であり、かつ、登録順の数値が小さいほど過去に通過パケットテーブル２０５に登録されたエントリである。言い換えると、通過パケットテーブル２０５に登録された時期が最も早いエントリである。そのため、当該エントリに示されるパケットパターンは優先的に置き換えの対象であると判断することが可能である。
【０１０６】
さらに、登録中フラグが“未登録”で、登録順の数値が小さいほど通過パケットテーブル２０５への未登録期間が長いエントリである。言い換えると、過去に通過パケットテーブル２０５から削除されてからの期間が最も長いエントリである。そのため、当該エントリに示されるパケットパターンは優先的に登録の対象であることが判断可能である。
【０１０７】
次に、以上のように構成された本発明の実施の形態の通信制御装置１００の処理の流れについて図６Ａ〜図７を用いて説明する。
【０１０８】
まず、図６Ａを用いて、通信制御装置１００の基本的な処理の流れを説明する。
【０１０９】
図６Ａは、本発明の実施の形態の通信制御装置１００が実行する基本的な処理の流れを示すフロー図である。
【０１１０】
第一制御部２０６は、機器使用パケットテーブル４０５に示される情報を用いて、通過パケットテーブル２０５を更新する（Ｓ１００）。
【０１１１】
第二制御部２１０は、更新後の通過パケットテーブル２０５に登録されている条件を基に、パケット受信部２０１が受信したパケットのフィルタ処理を行う（Ｓ１１０）。具体的には、比較部２０２および転送部２０４により以下の処理が行われる。
【０１１２】
比較部２０２は、受信パケットと、第一制御部２０６による更新後の通過パケットテーブル２０５に示されるパケットパターンとを比較する。これにより、受信パケットが、更新後の通過パケットテーブル２０５に示される条件を満たすか否かが判断される（Ｓ１１０）。
【０１１３】
当該受信パケットが当該条件を満たすと判断された場合（Ｓ１１０でＹｅｓ）、当該受信パケットは、転送部２０４により、第一メモリ１０３に転送され格納される（Ｓ１２０）。
【０１１４】
なお、当該受信パケットが当該条件を満たさないと判断された場合、本実施の形態では、当該受信パケットは、破棄部２０３により破棄される。
【０１１５】
次に、図６Ｂを用いて、通過パケットテーブル２０５の更新についての詳細な処理の流れを説明する。
【０１１６】
図６Ｂは、第一制御部２０６が更新制御を行う際の一連の処理の流れを示すフロー図である。
【０１１７】
第一制御部２０６が有する更新制御部４０３は、通信プログラムの起動時などの初期時に、機器使用パケットテーブル４０５を初期化する（Ｓ６０１）。初期状態においては、通過パケットテーブル２０５は未使用状態のため、更新制御部４０３は、テーブル更新部４０２を介して機器使用パケットテーブル４０５の各エントリの登録順を“０”とし、登録中フラグを“未登録”とする。これにより機器使用パケットテーブル４０５は初期化される。
【０１１８】
更新制御部４０３は、通過パケットテーブル２０５に登録可能な最大エントリ数Ｎを、エントリ数取得部４０１を介して取得する（Ｓ６０２）。本実施の形態では通過パケットテーブル２０５に登録可能な最大エントリ数は３であるため、更新制御部４０３は、Ｎ＝“３”を取得する。
【０１１９】
更新制御部４０３は、機器使用パケットテーブル４０５に登録されているエントリ数Ｍを取得する（Ｓ６０３）。本実施の形態では機器使用パケットテーブル４０５は４個のエントリから構成されているため、更新制御部４０３は、Ｍ＝“４”を取得する。
【０１２０】
更新制御部４０３は、機器使用パケットテーブル４０５に登録されているエントリ数Ｍが、通過パケットテーブル２０５に登録可能な最大エントリ数Ｎより多いか否かを判断する（Ｓ６０４）。
【０１２１】
Ｓ６０４での判断結果が偽の場合（Ｓ６０４でＮｏ）、更新制御部４０３は、機器使用パケットテーブル４０５に登録されている全てのエントリを通過パケットテーブル２０５に登録可能と判断する。その結果、更新制御部４０３は、機器使用パケットテーブル４０５に示される全てのエントリのパケットパターンを通過パケットテーブル２０５に登録し（Ｓ６０５）、通過パケットテーブル２０５の更新に係る処理を終了する。
【０１２２】
Ｓ６０４での判定結果が真の場合（Ｓ６０４でＹｅｓ）、機器使用パケットテーブル４０５に登録されている全てのエントリを通過パケットテーブル２０５に登録することは出来ない。
【０１２３】
そこで、更新制御部４０３は、通過パケットテーブル２０５の内容を順次書き換えていく更新処理を実施する。具体的には以下の処理が実施される。
【０１２４】
更新制御部４０３は、機器使用パケットテーブル４０５に登録されているエントリ数Ｍの中から通過パケットテーブル２０５に登録可能なＮ個を登録する（Ｓ６０６）。更新制御部４０３は、機器使用パケットテーブル４０５の４個のエントリの中から、例えばパターン１からパターン３に該当する３個のエントリを抽出する。更新制御部４０３はテーブル更新部４０２を制御することで、抽出したこれら３個のパケットパターンを通過パケットテーブル２０５に登録する。
【０１２５】
更新制御部４０３は、Ｓ６０６の処理で登録対象となった機器使用パケットテーブル４０５の３個のエントリの登録順と登録中フラグとを更新する（Ｓ６０７）。具体的には、更新制御部４０３は、該当する３個のエントリの登録順として、登録した順番に１から３までの数値を付与し、登録中フラグを“登録済”に更新する。その結果、機器使用パケットテーブル４０５は、図５に示す内容となる。
【０１２６】
更新制御部４０３は、一定時間経過したか否かを判定する（Ｓ６０８）。具体的には、更新制御部４０３は、タイマー４０４から通知が発生しているかどうかを判断し、発生していない場合（Ｓ６０８でＮｏ）はＳ６０８に戻り、通知が発生するまで待機する。
【０１２７】
タイマー４０４から通知が発生している場合（Ｓ６０８でＹｅｓ）には、更新制御部４０３は、機器使用パケットテーブル４０５から登録中フラグが“未登録”であるエントリを取得する（Ｓ６０９）。本例の場合、更新制御部４０３は、前記機器使用パケットテーブル４０５のパターン４に該当するエントリを取得する。
【０１２８】
更新制御部４０３はさらに、機器使用パケットテーブル４０５から登録中フラグが“登録済”であるエントリのパターンを取得する（Ｓ６１０）。具体的には、更新制御部４０３はさらに、前記機器使用パケットテーブル４０５のパターン１からパターン３に該当するエントリが“登録済”であるため、これら３個のエントリを取得する。
【０１２９】
更新制御部４０３は、Ｓ６０９とＳ６１０とで取得したエントリから変更対象となるパターンを特定する（Ｓ６１１）。
【０１３０】
具体的には、更新制御部４０３は、Ｓ６１０で取得した３個のエントリの中から登録順の数値が一番小さいエントリを特定する。ここでは、パターン１のエントリの登録順が一番小さいため、通過パケットテーブル２０５のパターン１を、Ｓ６０９で取得したパターン４と置き換えるパターンとして特定する。
【０１３１】
更新制御部４０３はテーブル更新部４０２を制御することで、Ｓ６０９で取得した未登録のパターンを通過パケットテーブル２０５に登録する（Ｓ６１２）。具体的には、テーブル更新部４０２は、通過パケットテーブル２０５のパターン１の内容を、機器使用パケットテーブル４０５に示されるパターン４の内容に置き換える。
【０１３２】
更新制御部４０３は、Ｓ６０７に戻り、機器使用パケットテーブル４０５のエントリの登録順と登録中フラグとを更新する。具体的には、更新制御部４０３は、パターン１のエントリの登録中フラグを“登録済”から“未登録”に更新し、パターン４の登録中フラグを“未登録”から“登録済”に更新する。更新制御部４０３は、各エントリの登録順を最新の値に更新する。つまり、この時点では、パターン４の登録順として“４”が機器使用パケットテーブル４０５に記録される。
【０１３３】
図７は、図６Ｂに示す処理フローが実行された場合における、各テーブルの内容の遷移の一例を示す図である。
【０１３４】
なお、図７では、タイマー４０４の通知のタイミングが１００ｍｓ間隔であると想定して図示している。
【０１３５】
図７に示すように、初期登録のタイミングでは、通過パケットテーブル２０５には、パターン１〜３の３つのパケットパターンが登録されている。従って、これら３つのパケットパターンのいずれかに該当する受信パケットのみが、ネットワークインターフェース１０２を通過し、第一メモリ１０３に転送され格納される。第一メモリ１０３に格納された受信パケットは、実行部２０７によって実行される通信プログラムに処理される。
【０１３６】
その後、通過パケットテーブル２０５に対する定期的な更新ごとに、通過パケットテーブル２０５の３つのパターンのうちの、通過パケットテーブル２０５への登録時期が最も早いパターンが、当該更新の時点で通過パケットテーブル２０５に登録されていないパターンに置き換えられる。
【０１３７】
これにより、通信制御装置１００が必要とする受信パケットのみを、ネットワークインターフェース１０２を通過させて第一メモリ１０３に格納させることができる。
【０１３８】
言い換えると、通過パケットテーブル２０５に示されるいずれのパケットパターンにも該当しない攻撃パケットは、ネットワークインターフェース１０２を通過することは不可能であり、通信制御装置１００は、Ｄｏｓ攻撃から保護される。
【０１３９】
なお、機器使用パケットテーブル４０５に登録されたパターン数が、通過パケットテーブル２０５に登録可能な最大エントリ数Ｎより２以上多い場合を想定する。この場合、ある更新の時点では、機器使用パケットテーブル４０５に登録されたパケットパターンのうち、通過パケットテーブル２０５に未登録のパケットパターン（未登録パターン）が複数存在する。
【０１４０】
このように、未登録パターンが複数存在する場合、第一制御部２０６は、例えばこれら複数の未登録パターンの中で、過去に通過パケットテーブル２０５から削除されてからの期間が最も長い未登録パターンを特定する。簡単にいうと、第一制御部２０６は、パケットフィルタリングに用いられていない期間が最も長い未登録パターンを特定する。
【０１４１】
第一制御部２０６はさらに、特定した未登録パターンを機器使用パケットテーブル４０５から読み出して、通過パケットテーブル２０５に登録されている期間が最も長いパケットパターンと置き換える。
【０１４２】
これにより、機器使用パケットテーブル４０５に登録された複数のパケットパターンのそれぞれは、順次、確実かつ平等に通過パケットテーブル２０５に登録される。
【０１４３】
なお、複数のパケットパターンそれぞれについての、通過パケットテーブル２０５から削除されてからの期間の比較、および通過パケットテーブル２０５に登録されている期間の比較は、各パケットパターンの登録順の数値を比較することで特定することができる。
【０１４４】
また、複数のパケットパターンそれぞれの通過パケットテーブル２０５への最後の登録時刻、および、複数のパケットパターンそれぞれの通過パケットテーブル２０５からの最後の削除時刻を、例えば更新制御部４０３が、機器使用パケットテーブル４０５に記録してもよい。
【０１４５】
この場合、これらの時刻を参照することで、次の更新で通過パケットテーブル２０５に登録すべき未登録パターンおよび、当該未登録パターンに置き換えられるべきパターンを特定することもできる。
【０１４６】
また、通過パケットテーブル２０５の更新は所定の時間の経過ごと（図７に示す例では１００ｍｓごと）でなくてもよい。つまり、通過パケットテーブル２０５の更新の間隔が一定でなくてもよい。パケットフィルタリングに必要な全てのパケットパターンが通過パケットテーブル２０５に現れるように、通過パケットテーブル２０５の更新が繰り返されればよい。
【０１４７】
以上のように、本実施の形態の通信制御装置１００は、パケットフィルタリング機能を有する。具体的には、通過パケットテーブル２０５に登録されているパケットパターンに対応する受信パケットのみを、通信プログラムの処理の対象としてネットワークインターフェース１０２を通過させ第一メモリ１０３に格納する。また、これらパケットパターンのいずれにも該当しない受信パケットはＤｏｓパケットとして破棄する。
【０１４８】
また、ネットワークインターフェース１０２を通過させるべき受信パケットのパターンの数が、通過パケットテーブル２０５に登録可能な最大値を超える場合には、通過パケットテーブル２０５が保持するパケットパターンの組み合わせをタイムシェアにより切替えるように、通過パケットテーブル２０５を更新する。
【０１４９】
これにより、Ｄｏｓパケットを回避しつつ、通過パケットテーブル２０５に登録可能な最大値以上の種類の受信パケットを正規のパケットとして受信する通信制御装置を提供することが可能である。
【０１５０】
なお、図７に示す通過パケットテーブル２０５の更新の手順は一例であり、本発明は、当該手順に限定されることはない。例えば、通過パケットテーブル２０５の登録可能な最大値が３であり、機器使用パケットテーブル４０５に登録されているパターン数が５以上である場合を想定する。
【０１５１】
この場合、更新制御部４０３は、通過パケットテーブル２０５に登録されている３つのパターンのうちの、２以上のパターンに対して同時に置き換えを行ってもよい。
【０１５２】
つまり、本来的に必要な全ての種類の受信パケットに対応する複数のパケットパターンのそれぞれが、繰り返し行われる更新のいずれかのタイミングで、通過パケットテーブル２０５に現れるように、通過パケットテーブル２０５が更新されればよい。
【０１５３】
また、機器使用パケットテーブル４０５に登録されているパケットパターンの優先度は、パケットパターンそれぞれに対応する通信プログラムの起動頻度および処理の種類等を考慮して決定してもよい。
【０１５４】
例えば、通信制御装置１００が実行する複数の通信プログラムの中で、常に起動している、または、起動している頻度が最も高い通信プログラムに対応するパケットパターンは優先度が高いといえる。
【０１５５】
また、例えば、災害等の情報を知らせる緊急放送を受信し出力するための通信プログラムに対応するパケットパターンも、優先度が高いといえる。
【０１５６】
また、例えば動画のストリームデータを復号し表示するための通信プログラムに対応するパケットパターン（つまり、当該ストリームデータを識別するためのパケットパターン）も、動画の滑らかな再生という観点から優先度が高いといえる。
【０１５７】
そこで、このような優先度の高いパケットパターンについては、通過パケットテーブル２０５に常時登録されているように、または、登録されている期間ができるだけ長くなるように、通過パケットテーブル２０５を更新してもよい。
【０１５８】
この場合、例えば、機器使用パケットテーブル４０５の各エントリに、それぞれのエントリに対応する通信プログラムの起動頻度または実行する処理の種類等に応じて決定された優先度を示す優先度情報（数値など）を付加しておく。
【０１５９】
さらに、第一制御部２０６は、通過パケットテーブル２０５の更新の際に、機器使用パケットテーブル４０５から、通過パケットテーブル２０５に登録されていない複数のパケットパターンのうち優先度が最も高いパケットパターンを読み出す。第一制御部２０６はさらに、読み出したパケットパターンを、例えば通過パケットテーブル２０５の中の優先度が最も低いパケットパターンと置き換える。
【０１６０】
これにより、優先度の高いパケットパターンは、優先度の低いパケットパターンよりも長い期間、通過パケットテーブル２０５に登録された状態が維持される。
【０１６１】
また、通過パケットテーブル２０５へのパケットパターンの供給元である機器使用パケットテーブル４０５が更新されてもよい。
【０１６２】
図８は、機器使用パケットテーブル４０５に登録されたパケットパターンと、通信プログラムとの対応例を示す図である。
【０１６３】
図８に示すように、パターン１〜パターン４が、それぞれ通信プログラムである［Ａ］〜［Ｄ］に対応すると想定する。例えば、パターン１に対応する受信パケットは、［Ａ］に処理されるパケットである。
【０１６４】
この場合、例えば、通信プログラムの起動状況に応じて、機器使用パケットテーブル４０５が更新されてもよい。
【０１６５】
図９Ａは、更新後の機器使用パケットテーブル４０５の第一の例を示す図であり、図９Ｂは、更新後の機器使用パケットテーブル４０５の第二の例を示す図である。
【０１６６】
例えば、通信プログラム［Ａ］〜［Ｄ］のうち、［Ａ］と［Ｃ］のみが起動したと想定する。この場合、［Ａ］および［Ｃ］に対応する、パターン１および３のみが、機器使用パケットテーブル４０５に登録される。
【０１６７】
この登録処理は、例えば、更新制御部４０３が、起動した［Ａ］と［Ｃ］のそれぞれの指示に従ってパターン１および３を機器使用パケットテーブル４０５に登録することで行われる。
【０１６８】
なお、パターン１および３を示す情報は、［Ａ］および［Ｃ］に保持されていてもよく、機器使用パケットテーブル４０５への登録用のパケットパターンとして、例えばＨＤＤ１０５に機器使用パケットテーブル４０５とは別に記憶されていてもよい。
【０１６９】
その後、例えば、通信プログラム［Ｂ］が起動すると、更新制御部４０３が、［Ｂ］に対応するパターン２を機器使用パケットテーブル４０５に登録する。
【０１７０】
また、この時点で、通過パケットテーブル２０５には１つのパケットパターンが追加可能であるため、パターン２が機器使用パケットテーブル４０５から読み出され、通過パケットテーブル２０５に登録される。
【０１７１】
なお、この後に、例えば、通信プログラム［Ａ］が、終了した場合（つまり、［Ａ］の実行が終了することで［Ａ］が非起動中に移行した場合）、例えば、更新制御部４０３が、機器使用パケットテーブル４０５からパターン１を削除する。
【０１７２】
このように、複数の通信プログラムそれぞれの起動状況に応じて機器使用パケットテーブル４０５を更新することで、実際にパケットフィルタリングに必要なパケットパターンのみが機器使用パケットテーブル４０５に登録されている状態が維持される。
【０１７３】
その結果、受信パケットとの比較に用いられる通過パケットテーブル２０５には、実際に必要なパケットパターンのみが登録されるため、より効率のよいパケットフィルタリングが実行される。
【０１７４】
例えば、上述のように、４つのパケットパターンが機器使用パケットテーブル４０５に登録されており、かつ、通過パケットテーブル２０５の登録可能な最大エントリ数Ｎが３である場合、４つのパケットパターンの全てを通過パケットテーブル２０５に保持させることができない。そのため、図７に示すような通過パケットテーブル２０５の更新が行われる。これにより、４つのパケットパターンのそれぞれは、断続的に通過パケットテーブル２０５に出現する。
【０１７５】
しかしながら、例えば図９Ａに示すように、通信プログラム［Ａ］および［Ｃ］のみが起動中である場合、パケットフィルタリングに実際に必要なパケットパターンは、パターン１と３のみである。この場合、これらパターン１と３とが通過パケットテーブル２０５に常時登録された状態を維持することができる。
【０１７６】
また、例えば、通過パケットテーブル２０５の登録可能な最大エントリ数Ｎが３であり、かつ、パケットフィルタリングに用いられるパケットパターンの総数が１０である場合を想定する。この想定下においては、各通信プログラムの起動状況を考慮したとしても、例えば、起動中の通信プログラムの数が５となった場合などには、通過パケットテーブル２０５の更新が必要となる。
【０１７７】
しかしながら、登録可能な最大エントリ数Ｎが３である通過パケットテーブル２０５に対して、１０個のパケットパターンのそれぞれを順次登録していくよりも、５個のパケットパターンのそれぞれを順次登録する方が、処理効率が高くなる。具体的には、後者の方が、実際にパケットフィルタリングに必要なパケットパターンが通過パケットテーブル２０５に登録されている期間が長くなる。
【０１７８】
なお、機器使用パケットテーブル４０５を更新せずに、通過パケットテーブル２０５を通信プログラムの起動状況に応じて更新してもよい。
【０１７９】
例えば、第一制御部２０６が、通過パケットテーブル２０５を更新する際に、どの通信プログラムが起動中であるかを確認する。第一制御部２０６はさらに、起動中の通信プログラムに対応し、かつ、当該更新の時点で通過パケットテーブル２０５に未登録のパケットパターンを機器使用パケットテーブル４０５から読み出して、通過パケットテーブル２０５に登録する。
【０１８０】
具体的には、読み出された未登録パターンと、起動していない通信プログラムに対応するパケットパターン、または、通過パケットテーブル２０５に登録されている期間が最も長いパケットパターンとが置き換えられる。
【０１８１】
第一制御部２０６がこのような処理を実行することでも、パケットフィルタリングに実際に必要なパケットパターンのみが通過パケットテーブル２０５に登録されている状態を維持することができる。
【０１８２】
すなわち、通過パケットテーブル２０５の登録可能な最大エントリ数Ｎよりも、パケットフィルタリングに必要なパケットパターンの総数が大きな場合、Ｎと当該総数との差の大小を問わず、その時点で実際に必要なパケットパターンがどれであるかを随時考慮しながら通過パケットテーブル２０５の管理（更新すること、および、更新せずに維持することなど）を行うことで、パケットフィルタリングに係る処理の効率をより向上させることができる。
【０１８３】
また、本実施の形態において、ネットワークインターフェース１０２はハードウェアで構成されているとした。つまり、通信制御装置１００は、ハードウェアによりパケットフィルタリングを行うとした。
【０１８４】
しかしながら通信制御装置１００は、例えばＣＰＵ１０４が、所定の記憶媒体に格納された通過パケットテーブル２０５を参照することで、パケットフィルタリングを行ってもよい。
【０１８５】
この場合、ＣＰＵ１０４は、パケットフィルタリングに必要なパケットパターンの総数よりも少ない数のパケットパターンと受信パケットとの比較を行えばよい。そのため、パケットフィルタリングに必要なパケットパターンの全てを比較に用いる場合よりも効率のよいパケットフィルタリングが実行される。
【０１８６】
以上、本発明の一態様に係る通信制御装置について、実施の形態に基づいて説明した。しかしながら、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものも、あるいは、上記説明された複数の構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【０１８７】
以上のように、本発明によれば、Ｄｏｓ攻撃により通信システムが破壊されることなく、有限のメモリ容量を効率よく使用することで当該通信システムが必要とするパケットを受信することが可能となる。従って、本発明は、情報の送受信を行う通信機器およびテレビ等の家電機器として、並びに通信機器および家電機器が備える通信制御装置等として有用である。
【符号の説明】
【０１８８】
１００    通信制御装置
１０１    ＬＡＮ
１０２    ネットワークインターフェース
１０３    第一メモリ
１０４    ＣＰＵ
１０５    ＨＤＤ
２００    第二メモリ
２０１    パケット受信部
２０２    比較部
２０３    破棄部
２０４    転送部
２０５    通過パケットテーブル
２０６    第一制御部
２０７    実行部
２１０    第二制御部
４０１    エントリ数取得部
４０２    テーブル更新部
４０３    更新制御部
４０４    タイマー
４０５    機器使用パケットテーブル
【図１】
2011152052.tif 000003
【図２】
2011152052.tif 000004
【図３】
2011152052.tif 000005
【図４】
2011152052.tif 000006
【図５】
2011152052.tif 000007
【図６Ａ】
2011152052.tif 000008
【図６Ｂ】
2011152052.tif 000009
【図７】
2011152052.tif 000010
【図８】
2011152052.tif 000011
【図９Ａ】
2011152052.tif 000012
【図９Ｂ】
2011152052.tif 000013
【手続補正書】
【提出日】平成23年8月23日(2011.8.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークに接続され、１以上の通信アプリケーションプログラムを実行する通信制御装置であって、
第一制御部と、
前記１以上の通信アプリケーションプログラムに処理されるパケットを蓄積する第一メモリと、
前記第一メモリに蓄積すべきパケットを特定するためのＮ＋１個以上（Ｎは１以上の整数）の条件を示す第一条件情報を記憶する記憶部と、
受信したパケットを選択的に前記第一メモリに転送するネットワーク通信部とを備え、
前記ネットワーク通信部は、
前記ネットワークを介して送信されるパケットを受信する受信部と、
前記Ｎ＋１個以上の条件のうちのＮ個までの条件が登録される第二条件情報を記憶する第二メモリと、
前記受信部が受信したパケットのうち、前記第二条件情報に登録されている条件に該当するパケットを前記第一メモリに転送する処理であるフィルタ処理を行う第二制御部と、を有し、
前記第一制御部は、前記第一条件情報に示される前記Ｎ＋１個以上の条件のうちの少なくとも１つの条件を用いて、前記第二条件情報の更新を行う
通信制御装置。
【請求項２】
前記第一制御部は、前記第二条件情報の更新を行う場合、前記第一条件情報に示される前記Ｎ＋１個以上の条件のうち、当該更新の時点で前記第二条件情報に登録されていない条件である未登録条件を前記第一条件情報から読み出し、読み出した未登録条件を、前記第二条件情報に示される条件のうちのいずれかの条件と置き換えることで前記未登録条件を前記第二条件情報に登録する
請求項１記載の通信制御装置。
【請求項３】
前記第一制御部は、前記第二条件情報の更新を繰り返し行う
請求項１または２に記載の通信制御装置。
【請求項４】
前記第一制御部は、前記第二条件情報の更新を繰り返し行うことで、前記第一条件情報に示される前記Ｎ＋１個以上の条件のそれぞれを、所定の順序で前記第二条件情報に登録する
請求項１または２に記載の通信制御装置。
【請求項５】
前記第一制御部は、前記第二条件情報の更新を行う場合、前記未登録条件が複数あるときは、複数の前記未登録条件の中で、過去に前記第二条件情報から削除されてからの期間が最も長い未登録条件を特定し、特定した未登録条件を前記第一条件情報から読み出す
請求項２記載の通信制御装置。
【請求項６】
前記第一条件情報はさらに、前記第一条件情報に示される条件それぞれの優先度を示す優先度情報を含み、
前記第一制御部は、前記第二条件情報の更新を行う場合、前記未登録条件が複数あるときは、前記優先度情報を参照することで、複数の前記未登録条件の中で最も優先度の高い未登録条件を特定し、特定した未登録条件を前記第一条件情報から読み出す
請求項２記載の通信制御装置。
【請求項７】
前記第一制御部は、前記第二条件情報の更新を行う場合、前記第二条件情報に示される前記Ｎ個までの条件のうち、前記第二条件情報に登録された時期が最も早い条件を特定し、特定した条件を、前記第一制御部が前記第一条件情報から読み出した前記未登録条件と置き換える
請求項２記載の通信制御装置。
【請求項８】
前記Ｎ＋１個以上の条件のそれぞれは、前記１以上の通信アプリケーションプログラムのいずれかと対応付けられており、
前記第一制御部はさらに、前記１以上の通信アプリケーションプログラムのいずれかが実行される際に、実行される通信アプリケーションプログラムに対応する条件を前記第一条件情報に追加することで、前記第一条件情報を更新する
請求項１〜７のいずれか１項に記載の通信制御装置。
【請求項９】
前記第一制御部はさらに、前記通信アプリケーションプログラムの実行が終了した場合、前記通信アプリケーションプログラムに対応する条件を、前記第一条件情報から削除する
請求項８記載の通信制御装置。
【請求項１０】
ネットワークに接続され、１以上の通信アプリケーションプログラムを実行する通信制御装置におけるパケットフィルタリング方法であって、
前記通信制御装置は、
前記１以上の通信アプリケーションプログラムに処理されるパケットを格納する第一メモリと、
前記第一メモリに格納すべきパケットを特定するためのＮ＋１個以上（Ｎは１以上の整数）の条件を示す第一条件情報を記憶する記憶部と、
受信したパケットを選択的に前記第一メモリに転送するネットワーク通信部とを備え、
前記パケットフィルタリング方法は、
前記ネットワークを介して送信されるパケットを前記ネットワーク通信部が受信する受信ステップと、
前記ネットワーク通信部が有する第二メモリに記憶されている、前記Ｎ＋１個以上の条件のうちのＮ個の条件が登録された第二条件情報を、前記第一条件情報に示される前記Ｎ＋１個以上の条件のうちの少なくとも１つの条件を用いて更新する更新ステップと、
前記受信ステップにおいて受信されたパケットのうち、前記更新ステップにおいて更新された前記第二条件情報に登録されている条件に該当するパケットを前記第一メモリに転送する処理であるフィルタ処理を行うフィルタリングステップと
を含むパケットフィルタリング方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
また、本発明の一態様に係る通信制御装置において、前記第一制御部は、前記第二条件情報の更新を行う場合、前記第二条件情報に示される前記Ｎ個までの条件のうち、前記第二条件情報に登録された時期が最も早い条件を特定し、特定した条件を、前記第一制御部が前記第一条件情報から読み出した前記未登録条件と置き換えるとしてもよい。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
第一メモリ１０３は、ＬＡＮ１０１から受信したパケットのうちの、通信制御装置１００が使用するパケットを格納するためのメモリである。第一メモリ１０３に格納されたパケットは、ＨＤＤ１０５に記憶されている通信プログラムの実行中に読み出され、処理される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
また、比較部２０２は、破棄部２０３を有する。破棄部２０３は、比較部２０２による比較の結果、Ｎ個のパケットパターンのいずれにも該当しないと判断された受信パケット、つまり、第一メモリ１０３に転送しないと判断された受信パケットを、第一メモリ１０３に転送される前に破棄する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
また、第一メモリ１０３に転送しないと判断された受信パケットは、ネットワークインターフェース１０２から第一メモリ１０３に転送されなければよく、その処理方法は破棄以外の方法であってもよい。例えば、攻撃パターンの解析のために所定の記憶装置に蓄積されてもよい。
【国際調査報告】
2011152052.tif 000014
2011152052.tif 000015