(57)【要約】【課題】悪意の通信相手からの攻撃パケットを受けても、フラグメント管理テーブルの異常、パケットバッファの枯渇を防止し、安定した通信状態を維持する。【解決手段】ネットワークに接続され、パケットを受信するパケット受信部１１と、パケット受信部で受信されたフラグメントパケットの識別を行なうパケット識別部１２と、フラグメントパケットが不正なものか否かを判定するフラグメント判定部１３と、すべてのフラグメントが到着した場合にフラグメントパケットの再構築を行なうフラグメント再構築部１５と、再構築を行なうまでフラグメントパケットを保存するフラグメントパケット保存部１８とを備え、フラグメント判定部で不正と判定されたフラグメントパケットを廃棄する攻撃パケットフィルタ装置１。フラグメントパケットが不正なものか否かを判定するフラグメント管理テーブル１７を備えることができる。【選択図】図１
2007221192.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続され、該ネットワークからのパケットを受信するパケット受信部と、
該パケット受信部で受信されたフラグメントパケットの識別を行なうパケット識別部と、
該フラグメントパケットが不正なものか否かを判定するフラグメント判定部と、
すべてのフラグメントが到着した場合にフラグメントパケットの再構築を行なうフラグメント再構築部と、
前記フラグメントパケットの再構築を行なうまで、前記フラグメントパケットを保存するフラグメントパケット保存部とを備え、
前記フラグメント判定部で不正と判定されたフラグメントパケットを廃棄することを特徴とする攻撃パケットフィルタ装置。
【請求項２】
前記パケット識別部にてフラグメントパケットと判定されなかったパケットと、フラグメント再構築部にて再構築されたパケットを送信するパケット送信部を備えることを特徴とする請求項１に記載の攻撃パケットフィルタ装置。
【請求項３】
前記フラグメントパケットが不正なものか否かを判定するフラグメント管理テーブルを備えることを特徴とする請求項１又は２に記載の攻撃パケットフィルタ装置。
【請求項４】
前記フラグメント管理テーブルは、TCP(Transmission Control Protocol)又はUDP(User Datagram Protocol)ヘッダ情報をセグメント管理に使用することを特徴とする請求項３に記載の攻撃パケットフィルタ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、攻撃パケットフィルタ装置に関し、特に、交換器、レイヤ３スイッチ、ルータ、サーバー等の通信装置における、攻撃パケット（不正フラグメントパケット）からの防御を行う攻撃パケットフィルタ装置に関する。
【背景技術】
【０００２】
インターネット上でネットワークのＭＴＵ(Maximum Transmission Unit)を超えたデータを転送する場合には、図５に示すように、ＭＴＵを超えない範囲でデータを分割し、フラグメントパケットとして転送する。レイヤ３スイッチや、ルータ等の通信装置では、分割されたすべてのフラグメントパケットが到着してからリアセンブル(組み立て)処理を行い、通信先に転送する。
【０００３】
ここで、中継ルートの都合上、すべてのフラグメントパケットが揃うまで待つ処理が必要になり、到着フラグメントパケットを一時的にパケットバッファに保管する。到着フラグメントパケットの管理は、セグメント毎にフラグメント管理テーブルを備えることで行なう。サーバーにおいても、フラグメントパケットは、個々では意味をなさないため、再構築を行なう必要があり、再構築用にパケットを一時的に保管するパケットバッファと、到着フラグメントパケットの管理を行なうフラグメント管理テーブルを備える。
【０００４】
例えば、特許文献１には、ベストエフォート型ＩＰ網でのストリーム配信において、サーバとネットワークの負荷を軽減し、経済性と品質の向上を実現するため、フラグメントパケットの再構築を行なうにあたり、パケットバッファに相当するテンポラリバッファと、フラグメント管理テーブルに相当するテンポラリテーブルを備える、到着フラグメントパケットの検査と再構築を行なう機能を有するキャッシュ方法及び装置が記載されている。
【０００５】
また、特許文献２には、伝送遅延を抑え、フィルタ時のスループットの低下幅を少なくするとともに、オーバヘッドを軽減するため、先頭フラグメントパケットをサーチマシンにエントリし、後続のフラグメントパケットは、サーチマシンのエントリ情報に基づいてフィルタリング処理を行なうルータ装置等が開示されている。
【０００６】
さらに、特許文献３には、データ容量の大きいパケットに対しても、ＩＰフィルタリング、ＮＡＴアドレス変換及び暗号化等の中継処理を行い、パケットのデータ転送を確実に行うため、フラグメントパケットを内部バッファに記憶させ、バッファ管理ブロックをダブルリンクキュー構造体によってグループ化し、フラグメントパケットを論理的にリンクさせるデータ中継方法等が記載されている。
【０００７】
【特許文献１】特開２００３−２４２０１９号公報
【特許文献２】特開２００２−２８１０７１号公報
【特許文献３】特開２００５−１２６９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、上記従来の技術では、悪意のある通信相手から攻撃パケット(不正フラグメントパケット)による攻撃を受けた場合には、フラグメント管理テーブルの異常やパケットバッファの枯渇が発生し、通信に障害を来すという問題があった。
【０００９】
例えば、防御機能を持たない通信装置がオーバーラッピング攻撃を受けた場合には、図６に示すように、ＴＣＰ(Transmission Control Protocol)ヘッダの情報が書き換えられ、正しいルーティングができなくなる。
【００１０】
また、タイニーフラグメント攻撃を受けた場合には、図７に示すように、最初のパケットですべてのＴＣＰ情報を入手することができず、正しいルーティングができなくなる。
【００１１】
さらに、Ping of Death攻撃を受けた場合には、図８に示すように、合計サイズが管理できるメモリサイズを超えているため、フラグメントパケットの再構築ができなくなる。
【００１２】
さらにまた、Teardrop攻撃を受けた場合は、図９に示すように、lenght（パケット長）計算が異常となり、重複したＩＰパケットの断片を適切に処理することができず、システムがクラッシュすることがある。
【００１３】
また、図１０に示すように、不完全なフラグメントパケットを連続して受けた場合には、パケットバッファが枯渇するという問題があった。
【００１４】
そこで、本発明は、上記従来の技術における問題点に鑑みてなされたものであって、悪意のある通信相手から攻撃パケットによる攻撃を受けた場合でも、フラグメント管理テーブルの異常や、パケットバッファの枯渇を来すことがなく、安定した通信状態を維持することのできる攻撃パケットフィルタ装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明は、攻撃パケットフィルタ装置であって、ネットワークに接続され、該ネットワークからのパケットを受信するパケット受信部と、該パケット受信部で受信されたフラグメントパケットの識別を行なうパケット識別部と、該フラグメントパケットが不正なものか否かを判定するフラグメント判定部と、すべてのフラグメントが到着した場合にフラグメントパケットの再構築を行なうフラグメント再構築部と、前記フラグメントパケットの再構築を行なうまで、前記フラグメントパケットを保存するフラグメントパケット保存部とを備え、前記フラグメント判定部で不正と判定されたフラグメントパケットを廃棄することを特徴とする。
【００１６】
そして、本発明によれば、例えば、オーバーラッピング攻撃やタイニーフラグメント攻撃を受けた場合には、フラグメント判定部においてフラグメントオフセットをチェックすることにより、攻撃の検出を行なうことができ、受信した不正なフラグメントパケットを廃棄するため、悪意のある通信相手から攻撃パケットによる攻撃を受けた場合でも、フラグメント管理テーブルの異常や、パケットバッファの枯渇を来すことがなく、安定した通信状態を維持することが可能となる。
【００１７】
前記攻撃パケットフィルタ装置において、前記パケット識別部にてフラグメントパケットと判定されなかったパケットと、フラグメント再構築部にて再構築されたパケットを送信するパケット送信部を備えることができる。
【００１８】
また、前記攻撃パケットフィルタ装置において、前記フラグメントパケットが不正なものか否かを判定するフラグメント管理テーブルを備えることができる。フラグメント管理テーブルに再構築情報を追加することにより、セグメントでの不正フラグメントパケットを検出し、不正フラグメントパケットを廃棄することができる。例えば、Ping of Death攻撃や、Teardrop攻撃に対しては、フラグメント管理テーブルに再構築中セグメントの最終データ位置を設けることにより攻撃の検出を行ない、不完全なフラグメントパケットの連続送信攻撃に対しては、フラグメント管理テーブルにセグメントでの受信パケットカウンタを設け、設定したパケット数を超えた場合は攻撃と判定することができる。
【００１９】
前記攻撃パケットフィルタ装置において、前記フラグメント管理テーブルは、TCP(Transmission Control Protocol)又はUDP(User Datagram Protocol)ヘッダ情報をセグメント管理に使用することができる。
【発明の効果】
【００２０】
以上のように、本発明によれば、悪意の通信相手の攻撃パケットによる攻撃を受けても、安定した通信状態を維持することができる。
【発明を実施するための最良の形態】
【００２１】
次に、本発明の実施の形態について、図面を参照しながら説明する。
【００２２】
図１は、本発明にかかる攻撃パケットフィルタ装置の一実施の形態を示し、この攻撃パケットフィルタ装置１は、ＩＰ(Internet Protocol)を介するネットワークに接続され、ネットワークからのパケットを受信するパケット受信部１１と、フラグメントパケットの識別を行なうパケット識別部１２と、フラグメントパケットのセグメント判定と、攻撃パケットの判定とを行なうフラグメント判定部１３と、各セグメントと保管中のパケットの管理を行なうフラグメント管理部１４と、すべてのフラグメントが到着した場合にフラグメントパケットの再構築を行なうフラグメント再構築部１５と、パケット識別部１２にてフラグメントパケットと判定されなかったパケットと、フラグメント再構築部１５にて再構築されたパケットの送信を行なうパケット送信部１６と、フラグメント管理情報を保存するフラグメント管理テーブル１７と、再構築されるまでフラグメントパケットを保存するパケットバッファ１８とで構成される。尚、上記フラグメント管理テーブル１７は、図２に示すような構成を有する。
【００２３】
次に、上記構成を有する攻撃パケットフィルタ装置１の動作について、図１乃至図３を参照しながら説明する。
【００２４】
パケット受信部１１がパケットを受信すると、パケット識別部１２において、フラグメントパケットか否かを判定する（ステップＳ１１）。ステップＳ１１において、フラグメントパケットではないと判定された場合には、ステップＳ２６においてそのままパケットを送信して処理を終了する。一方、ステップＳ１１において、フラグメントパケットと判定された場合には、フラグメント判定部１３にてパケット長が正常範囲内であるか否かを判定し（ステップＳ１２）、Ping of Death攻撃を受けていないか否かをチェックする。そして、正常範囲外の場合には、受信パケットを廃棄する（ステップＳ２０）。パケット長のチェックは、受信したパケットのヘッダのＴＬ（Total Length）＋ＦＯ（Fragment Offset）×８の値がＩＰパケットの最大値である65,535バイト以内であることをチェックする。
【００２５】
ステップＳ１２において、パケット長が正常範囲内にある場合には、ステップＳ１３において、オフセット値が正常範囲内か否かを判定し、オーバーラッピング攻撃やタイニーフラグメント攻撃を受けていないかどうかをチェックする。そして、正常範囲外の場合には、受信パケットを廃棄する（ステップＳ２０）。オフセット値のチェックは、ＦＯ×８がＴＣＰヘッダ長である２０バイト以上であることをチェックする。
【００２６】
ステップＳ１３において、オフセット値が正常範囲内の場合には、受信パケットのＩＰアドレスと、ＩＤ（Identification）を基に、図２のフラグメント管理テーブルから対応するセグメントのテーブル情報を読み出す（ステップＳ１４）。ステップＳ１５において、対応するセグメントが存在しない場合には、フラグメント管理部１４にて新規セグメントを登録する（ステップＳ１９）。新規セグメントには、テーブル情報としてＩＰアドレス等を登録する。
【００２７】
次に、ステップＳ１６において、読み出したセグメントのテーブル情報から受信パケット数が、閾値以内かの判定を行ない、不完全なフラグメントパケットの連続攻撃を受けていないかどうかチェックする。閾値より大きい場合には、受信パケットを廃棄する（ステップＳ２０）。受信パケット数が閾値以内の場合には、ステップＳ１７において、最終フラグメントパケットか否かを判定する。
【００２８】
ステップＳ１７において、最終フラグメントパケットではない場合は、フラグメント管理部１４にて、図２のフラグメント管理テーブル１７のテーブル情報を更新し（ステップＳ２５）、パケットバッファ１８への保存を行なう。更新情報は、受信パケットの合計サイズ、受信パケット数である。
【００２９】
一方、ステップＳ１７において、最終フラグメントパケットの場合には、再構築後のパケット長が正常かを判定し（ステップＳ１８）、Teardrop攻撃を受けていないかどうかをチェックする。この判定は、ＴＬ（Total Length）＋ＦＯ（Fragment Offset）×８の値が、図２に示したテーブル情報の受信パケットの合計サイズ以上であることをチェックする。
【００３０】
そして、最終フラグメントパケットが正常の場合は、フラグメント管理テーブル１７の該当セグメントの削除を行い（ステップＳ２１）、パケットバッファ１８からテーブル情報に登録されたパケットの読出しを行い、フラグメント再構築部１５にて、フラグメントパケットの再構築（ステップＳ２２）を行う。
【００３１】
一方、最終フラグメントパケットが正常でない場合には、パケットの廃棄（ステップＳ２３）と、フラグメント管理テーブルのセグメントの削除（ステップＳ２４）を行なう。再構築したパケットは、パケット送信部１６にて、フラグメント以外のパケットとともに通信先へ送信する（ステップＳ２６）。
【００３２】
尚、上記実施の形態においては、攻撃パケットフィルタ装置をハードウエアにて実現することを前提に構成しているが、図３に示したフローチャートの動作をＣＰＵを用いたソフトウエア制御によって実現することも可能である。
【００３３】
また、上記実施の形態においては、テーブル情報にＴＣＰヘッダ情報を含めなかったが、サーバー等の場合には、ＴＣＰポート番号も必要情報として追加する。その場合のフラグメント管理テーブル構成を図４に示す。
【図面の簡単な説明】
【００３４】
【図１】本発明にかかる攻撃パケットフィルタ装置の構成図である。
【図２】図１の攻撃パケットフィルタ装置のフラグメント管理テーブルの構成を示す図である。
【図３】図１の攻撃パケットフィルタ装置による処理フローを示す図である。
【図４】図１の攻撃パケットフィルタ装置のフラグメント管理テーブルの構成（ＴＣＰヘッダ追加）を示す図である。
【図５】ＩＰフラグメントの概念図である。
【図６】オーバーラッピング攻撃の概念図である。
【図７】タイニーフラグメント攻撃の概念図である。
【図８】Ping of Death攻撃の概念図である。
【図９】Teardrop攻撃の概念図である。
【図１０】大量フラグメント攻撃の概念図である。
【符号の説明】
【００３５】
１  攻撃パケットフィルタ装置
１１  パケット受信部
１２  パケット識別部
１３  フラグメント判定部
１４  フラグメント管理部
１５  フラグメント再構築部
１６  パケット送信部
１７  フラグメント管理テーブル
１８  パケットバッファ
Ｓ１１  フラグメントパケット判定
Ｓ１２  パケット長チェック判定
Ｓ１３  オフセット値チェック判定
Ｓ１４  フラグメント管理テーブル読出し
Ｓ１５  対応セグメントの判定
Ｓ１６  セグメントでの受信パケット数の閾値超過判定
Ｓ１７  最終フラグメントパケットの判定
Ｓ１８  再構築後のパケット長の判定
Ｓ１９  フラグメント管理テーブル新規作成
Ｓ２０  パケット廃棄
Ｓ２１  フラグメント管理テーブル削除
Ｓ２２  フラグメントパケット再構築
Ｓ２３  パケット廃棄
Ｓ２４  フラグメント管理テーブル削除
Ｓ２５  フラグメント管理テーブル更新
Ｓ２６  パケット送信
【図１】
2007221192.tif 000003
【図２】
2007221192.tif 000004
【図３】
2007221192.tif 000005
【図４】
2007221192.tif 000006
【図５】
2007221192.tif 000007
【図６】
2007221192.tif 000008
【図７】
2007221192.tif 000009
【図８】
2007221192.tif 000010
【図９】
2007221192.tif 000011
【図１０】
2007221192.tif 000012