(57)【要約】【課題】ネットワークに接続された機器の効果的な保護を提供する。【解決手段】ネットワークを介してデータパケットを受信する機器を監視する監視部１４と、機器の異常を検出すると、異常を発生させた第１のデータパケットを保持する保持部１２と、機器が受信した第２のデータパケットと第１のデータパケットとを比較する比較部１１と、第１のデータパケット中の、第２のデータパケットに対して閾値以上に変異する箇所を特定する特定部１１と、特定した箇所のデータを登録する登録部１１とを備える。【選択図】図１
2015075808.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してデータパケットを受信する機器を監視する監視部と、
前記機器の異常を検出すると、該異常を発生させた第１のデータパケットを保持する保持部と、
前記機器が受信した第２のデータパケットと前記第１のデータパケットとを比較する比較部と、
前記第１のデータパケット中の、前記第２のデータパケットに対して閾値以上に変異する箇所を特定する特定部と、
前記特定した箇所のデータを登録する登録部と
を備えることを特徴とする、ネットワークフィルタリング装置。
【請求項２】
前記ネットワークを介して受信したデータパケットにおける、前記特定部により特定された箇所に対応するデータに対して、前記登録部に登録された前記データを閾値として比較し、前記受信したデータパケットの前記データが、前記登録部に登録された前記データを超える場合に、当該受信したデータパケットの伝送を抑止するフィルタリング部を備えることを特徴とする、請求項１記載のネットワークフィルタリング装置。
【請求項３】
ネットワークを介してデータパケットを受信する機器を監視する処理と、
前記機器の異常を検出すると、該異常を発生させた第１のデータパケットを保持する処理と、
前記機器が受信した第２のデータパケットと前記第１のデータパケットとを比較する処理と、
前記第１のデータパケット中の、前記第２のデータパケットに対して閾値以上に変異する箇所を特定する処理と、
前記特定した箇所のデータを登録する処理と
を備えることを特徴とする、ネットワークフィルタリング方法。
【請求項４】
前記ネットワークを介して受信したデータパケットにおける、前記特定された箇所に対応するデータに対して、前記登録されたデータを閾値として比較し、前記受信したデータパケットの前記データが、前記登録された前記データを超える場合に、当該受信したデータパケットの伝送を抑止する処理を備えることを特徴とする、請求項３記載のネットワークフィルタリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークフィルタリング装置及びネットワークフィルタリング方法に関する。
【背景技術】
【０００２】
近年、ファジングとよばれるブラックボックスセキュリティテストの手法が広く利用されつつある。ファジングのためのツールは、脆弱性の検出に有効と考えられるテストデータを何種類も大量にテスト対象製品に試行することにより、脆弱性を検出する。例えば、ファジングツールにより、バッファオーバーフローや整数オーバーフローなどの未知の脆弱性を発見することが行なわれている。なお、近年では、誰でもがファジングツールを利用できる状況となっており、悪意のある者によって製品の未知の脆弱性を容易に発見されてしまうおそれがある。
【０００３】
ネットワークと接続される製品は、販売時点において、ネットワークからの攻撃に対して強固なセキュリティ対策が施されていることが理想である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３３４６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した製品が販売され、消費者に渡った後に、この製品の脆弱性が新たに発見されることも多い。
また、ファジングの手法は自由度が高く、あるファジングツールでは脆弱性が検出されなかったとしても、別のファジングツールでは検出されるということがある。従って、攻撃者が、製品・システム開発において使用されたファジング手法・ファジングツールとは異なる手法やツールを用いて攻撃してくる可能性があり、未知の脆弱性が発見され、悪用されるおそれがある。
【０００６】
１つの側面では、本発明は、ネットワークに接続された機器を効果的に保護することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【０００７】
このため、このネットワークフィルタリング装置は、ネットワークを介してデータパケットを受信する機器を監視する監視部と、前記機器の異常を検出すると、該異常を発生させた第１のデータパケットを保持する保持部と、前記機器が受信した第２のデータパケットと前記第１のデータパケットとを比較する比較部と、前記第１のデータパケット中の、前記第２のデータパケットに対して閾値以上に変異する箇所を特定する特定部と、前記特定した箇所のデータを登録する登録部とを備える。
【０００８】
また、このネットワークフィルタリング方法は、ネットワークを介してデータパケットを受信する機器を監視する処理と、前記機器の異常を検出すると、該異常を発生させた第１のデータパケットを保持する処理と、前記機器が受信した第２のデータパケットと前記第１のデータパケットとを比較する処理と、前記第１のデータパケット中の、前記第２のデータパケットに対して閾値以上に変異する箇所を特定する処理と、前記特定した箇所のデータを登録する処理とを備える。
【発明の効果】
【０００９】
一実施形態によれば、ネットワークに接続された機器を効果的に保護することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態の一例としてのネットワークフィルタリング装置の機能構成を示す図である。
【図２】第１実施形態の一例としてのネットワークフィルタリング装置のハードウェア構成を例示する図である。
【図３】第１実施形態の一例としてのネットワークフィルタリング装置におけるパケット保存部に保存される受信パケットを例示する図である。
【図４】第１実施形態の一例としてのネットワークフィルタリング装置における判断基準情報の作成方法を説明する図である。
【図５】第１実施形態の一例としてのネットワークフィルタリング装置における防止対象リストを例示する図である。
【図６】第１実施形態の一例としてのネットワークフィルタリング装置における更新後の防止対象リストを例示する図である。
【図７】第１実施形態の一例としてのネットワークフィルタリング装置における処理を説明するフローチャートである。
【図８】本発明の第２実施形態としてのネットワークフィルタリング装置における判断基準情報の作成方法を説明する図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本ネットワークフィルタリング装置及びネットワークフィルタリング方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（各実施形態を組み合わせる等）して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１２】
（Ａ）第１実施形態の説明
図１は、第１実施形態の一例としてのネットワークフィルタリング装置１０の機能構成を示す図、図２はそのハードウェア構成を例示する図である。
ネットワークフィルタリング装置１０は、図２に示すように、ネットワーク１５０と保護対象機器１１０との間に介在し、保護対象機器（機器）１１０に対して、ネットワーク１５０から伝達されるデータをフィルタリングする。このフィルタリングにより、保護対象機器１１０の脆弱性に対して脅威を及ぼすデータを遮断する。
【００１３】
保護対象機器１１０は、ネットワーク１５０に接続され得る、いかなる機器であってもよい。保護対象機器１１０の具体例としては、サーバ、パーソナルコンピュータ、ハンドヘルドコンピュータ、ゲーム機器、テレビ、家電製品、ナビゲーションシステム、携帯電話などがあげられる。
ネットワークフィルタリング装置１０は、図１に示すように、防止対象リスト作成部１１，パケット保存部１２，防止対象リスト保存部１３，保護対象監視部１４，パケット受信部１５，フィルタリング部１６及びパケット送信部１７を備える。
【００１４】
パケット受信部１５は、ネットワーク１５０から保護対象機器１１０に対して送信されたパケットを受信する。パケット受信部１５は、受信したパケットを、後述するフィルタリング部１６に順次送出する。又、パケット受信部１５は、受信したパケットの複写をパケット保存部（保持部）１２に順次格納させる。
パケット保存部（保持部）１２は、パケット受信部１５が受信したパケット（受信パケット）を保存する。このパケット保存部１２には、後述の如く、保護対象機器１１０に不具合を発生させたパケット（原因パケット；第１のデータパケット）や、この原因パケットの前に保護対象機器１１０が受信したパケット（第２のデータパケット）が格納される。
【００１５】
図３は第１実施形態の一例としてのネットワークフィルタリング装置１０におけるパケット保存部１２に保存される受信パケットを例示する図である。この図３に示す例においては、受信パケットがその種類（パケット種類）を示す情報と関係付けて保存されている。又、パケット保存部１２においては、複数のパケットに対して、各受信順序（番号）も管理されている。図３に示す例においては、パケット種類がＨＴＴＰ（HyperText Transfer Protocol）リクエストの２つのパケットが保存されている例を示す。
【００１６】
なお、図３に示す例においては、便宜上、受信パケットをテーブル状に示しているが、データの保存形式はこれに限定されるものではなく、種々変形して実施することができる。
パケット送信部１７は、ネットワーク１５０から保護対象機器１１０に対して送信され、保護対象機器１１０に到達する前に本ネットワークフィルタリング装置１０が受信したパケットを保護対象機器１１０に対して送信する。このパケット送信部１７は、ネットワーク１５０から保護対象機器１１０に対して送信されたパケットのうち、後述するフィルタリング部１６によってフィルタリングされた後のデータを保護対象機器１１０に送信する。
【００１７】
保護対象監視部（監視部）１４は、保護対象機器１１０を監視するものであり、保護対象機器１１０の挙動を監視し、保護対象機器１１０における不具合（異常）の発生を検知する。具体的には、保護対象監視部１４は、保護対象機器１１０において、ファジング攻撃により発生すると考えられる所定の不具合（異常）の発生を検知する。
ファジング攻撃により発生する不具合としては、例えば、保護対象機器１１０の再起動や無応答状態への移行（フリーズ，ハングアップ，ストール，システムダウン）、電源断状態への移行等である。なお、保護対象監視部１４は、これに限定されるものではなく、これら以外の挙動を保護対象機器１１０の不具合として検知してもよい。
【００１８】
また、保護対象監視部１４は、保護対象機器１１０がサーバ等のコンピュータである場合には、その図示しないコンソールポートの出力を解析することによって、保護対象機器１１０の異常の有無を調べることができる。通常、サーバ等のコンソールポートからの出力には、サーバの異常を知らせる種々の情報が出力されるからである。又、保護対象監視部１４は、保護対象機器１１０に対してping等の死活確認用の信号を送信し、一定時間経過後に、その応答があるか否かを確認してもよい。返信が確認できない場合には、保護対象機器１１０がシステムダウンを起こしていたり、ハングアップしていたりする可能性が非常に高いことが分かる。従って、死活確認用のパケットの送信により、保護対象機器１１０の異常の発生を確認することができる。或いは、保護対象監視部１４から、保護対象機器１１０に対してステータス確認用のコマンドを送信し、保護対象機器１１０の種々のステータスを確認して、異常の有無を検知する等、種々変形して実施することができる。
【００１９】
保護対象監視部１４は、保護対象機器１１０において不具合の発生を検知すると、防止対象リスト作成部１１に通知を行なう。
防止対象リスト作成部１１は、保護対象機器１１０において受信すると不具合が発生するおそれがあるパケットを検出するための判断基準として用いられる判断基準情報を作成し、この判断基準情報を防止対象リストＬ１に登録する。
【００２０】
防止対象リスト作成部１１は、保護対象監視部１４から保護対象機器１１０において不具合の発生を検知した旨の通知を受けると、判断基準情報の作成及び防止対象リストＬ１への登録を行なう。
図４は第１実施形態の一例としてのネットワークフィルタリング装置１０における判断基準情報の作成方法を説明する図である。
【００２１】
一般にファジング攻撃においては、パケット（正常パケット）の一部（変異パケット項目）を、そのデータ長を変更させる等、特定の法則に従って連続的に変異させた複数の攻撃パケットを作成して送信する。すなわち、これらの連続して送信される複数の攻撃パケットにおいては、前後して送信される攻撃パケット間において、変異パケット項目の値が変異している。
【００２２】
図４においては、正常パケットＡに基づいて複数の攻撃パケットを作成する例を示している。この図４に示す例においては、正常パケットＡのヘッダについて、そのデータ項目「Host」に登録されているＩＰ（Internet Protocol）アドレスの値“192.168.1.10”を種々変更した複数の攻撃パケットＡＰ１〜ＡＰｎ（ｎは自然数）が示されている。
なお、この図４においては、保護対象機器１１０がＷｅｂサーバであるとして、ＨＴＴＰ（HyperText Transfer Protocol）リクエストとしてパケットを受信する例を示している。
【００２３】
ＨＴＴＰリクエストにはテキストのみが含まれるため、一般的なテキスト比較手法によって変異箇所を特定できる。
ここで、正常パケットＡは、ＨＴＴＰプロトコルの各種ヘッダ部分であり、GETメソッドのパケットである。この正常パケットＡに示されるような情報が１つのパケットに含まれる。攻撃パケットＡＰ１〜ＡＰｎは、攻撃者３０が既知のファジング手法を用いて作成するパターンの例を示している。これらの攻撃パケットＡＰ１〜ＡＰｎは、主としてバッファオーバーフローをチェックするためのパターンである。
【００２４】
本第１実施形態においては、ファジング攻撃により、データ項目「Host」を構成する文字‘x’の個数を変異させることにより、データ項目「Host」に含まれる文字列の数を変異させた複数の攻撃パケットが作成されている。
具体的には、攻撃パケットＡＰ１においては、データ項目「Host」として1個の‘x’が設定されており、攻撃パケットＡＰ２においては、データ項目「Host」として64個の‘x’が連続するデータ設定されている。又、攻撃パケットＡＰｎにおいては、データ項目「Host」として4096個の‘x’が連続するデータ設定されている。
【００２５】
そして、例えば、保護対象機器１１０において、攻撃パケットＡＰ１，ＡＰ２を受信した際には不具合は検出されず、その後、攻撃パケットＡＰｎを受信した際に不具合が検出されたものとする。
このような場合には、保護対象機器１１０において不具合が検出される直前に受信した攻撃パケットＡＰｎが、保護対象機器１１０に不具合を発生させる原因である原因パケット（第１のデータパケット）と推定される。
【００２６】
そして、この原因パケットにおいて、その前に受信した他のパケット（攻撃パケット）ＡＰ１，ＡＰ２との間で変異している箇所（変異箇所）が、保護対象機器１１０に不具合を発生させた要因（異常原因）と推定される。
そこで、防止対象リスト作成部１１は、この原因パケットにおいて、その前に受信した他の攻撃パケットＡＰ１，ＡＰ２との間で変異している箇所を特定する。
【００２７】
ここでは例として、パケットがＨＴＴＰリクエストであることを利用し、変異箇所を個々のヘッダ、さらにヘッダのデータ項目と値（「:」で分割）に分離し、同じデータ項目の値をそれぞれ比較する。ここで、比較方法としては単純な文字列比較ではなく、何らかの尺度を用いるものとし、ここでは例として文字列の長さを比較の尺度とする。
図４に示す例においては、攻撃パケットＡＰ１〜ＡＰｎの間において、データ項目「Host」の値とデータ項目「Date」の値とがそれぞれ変異している。
【００２８】
従って、防止対象リスト作成部１１は、原因パケットにおいて、その前に受信した他の攻撃パケットＡＰ１，ＡＰ２との間で変異している箇所として、データ項目「Host」の値とデータ項目「Date」の値とを特定する。
このように、データ項目「Date」とデータ項目「Host」とが変異箇所に含まれているが、データ項目「Date」は、パケットの受信時刻を示す情報であるので、攻撃パケットＡＰ１〜ＡＰｎの間で数値に差異があって当然である。
【００２９】
ここで、データ項目「Date」の値は各パケットで異なるものの、そのデータ長は全て同じである。
一方、上述の如く、ファジングにより、攻撃パケットＡＰ１〜ＡＰｎの間でデータ項目「Host」の値において、‘x’の数が異なる。すなわち、データ項目「Host」の値は文字列の長さ（文字数，データ長）が各パケットで著しく異なっている。
【００３０】
本第１実施形態においては、防止対象リスト作成部１１は、複数のパケット間において、データ項目の値の文字数に基づいて、異常原因パケット項目を特定する。具体的には、複数のパケット間においてデータ項目の値の文字列の長さ（文字数）が例えば256以上違っていれば「著しく変異している」とみなす。
受信パケットにおける各データ項目「Host」の長さは“1”,“64”, …, “4096”となっており、データ項目「Host」に設定されている文字‘x’の個数について、その最大値は攻撃パケットＡＰｎの“4096”であり、最小値は攻撃パケットＡＰ１の“1”である。これらの最大値と最小値との差（差分値）は4096−1＝4095として算出される。防止対象リスト作成部１１は、この算出された差分値“4095”を予め設定された閾値（例えば、“256”）と比較する。防止対象リスト作成部１１は、算出した差分値がこの閾値よりも大きい場合に、著しく変異している箇所はデータ項目「Host」の値の長さであり、当該データ項目「Host」を異常原因パケット項目と判断する。
【００３１】
このように、データ項目「Host」の値の文字数は、最小値の“1”と最大値の“4096”とでは256以上の違いがあるため、データ項目「Host」の値の文字数は著しく変異しているとみなすことができる。
すなわち、防止対象リスト作成部（特定部）１１は、原因パケット中の、他の受信パケットに対して閾値以上に変異する箇所（異常原因パケット項目）を特定する。
【００３２】
一方、データ項目「Date」に設定されている文字数は、各攻撃パケットＡＰ１〜ＡＰｎにおいて同じである。従って、これらの最大値と最小値との差（差分値）は“0”として算出される。
防止対象リスト作成部１１は、この算出された差分値“0”を予め設定された閾値（例えば、“30”）と比較する。算出した差分値“0”はこの閾値よりも小さいので、当該データ項目「Date」は異常原因パケット項目から除外される。
【００３３】
すなわち、本第１実施形態においては、原因パケットにおいて、不具合が検出されていない他のパケットとの間で、構成する文字数が閾値以上変化している項目を異常原因パケット項目として特定する。これにより、パケットの受信日時や送信日時のように、複数のパケット間で数値に差異があって当然のデータ項目を以上原因パケット項目から除外させることができ、効率的に処理を行なうことができる。
【００３４】
上述の如く、実際に保護対象機器１１０において脆弱性による不具合を引き起こした可能性の高い、直前に受信したパケットと、その前に受信したパケットとを用いることにより、異常原因パケット項目が特定される。そして、原因パケットである攻撃パケットＡＰｎにおける、この異常原因パケット項目（本例ではデータ項目「Host」）のデータ（異常原因データ；本例ではxx・・・xx（‘x’が4096個））を参照することで、『データ項目「Host」の長さが4096以上の場合に脆弱性が発生する』と解釈することができる。よって、この結果を到達防止リストＬ１に追加することで、今後の攻撃パケットでデータ項目「Host」の長さが“4096”以上のものが保護対象機器１１０に到達することを阻止できるようになる。
【００３５】
防止対象リスト作成部１１は、攻撃パケットＡＰｎにおける、上述の如く特定した異常原因パケット項目のデータを判断基準情報として決定し、この判断基準情報として特定した異常原因データを、防止対象リストＬ１へ登録する。すなわち、防止対象リスト作成部１１は、保護対象機器１１０において不具合を発生させた原因である攻撃パケットＡＰｎから、異常原因パケット項目の値を抽出して、防止対象リストＬ１の項目「閾値」として登録する。
【００３６】
すなわち、防止対象リスト作成部（登録部）１１は、原因パケット中の、他の受信パケットに対して閾値以上に変異する箇所（異常原因パケット項目）を特定し、原因パケット中における異常原因パケット項目のデータを防止対象リストＬ１に登録する。
防止対象リストＬ１は、保護対象機器１１０が受信すると、この保護対象機器１１０において不具合が発生するおそれがあるパケット（危険パケット）を特定するための判断基準として用いられる判断基準情報を格納する。後述するフィルタリング部１６が、この防止対象リストＬ１を用いて、ネットワーク１５０から伝達されるデータのフィルタリングを行なう。
【００３７】
図５は第１実施形態の一例としてのネットワークフィルタリング装置１０における防止対象リストＬ１を例示する図である。
この図５に例示する防止対象リストＬ１は、項目として、リスト通し番号，種類，ヘッダ及び大きさ閾値が備えられている。
リスト通し番号は、防止対象リストＬ１に登録されるエントリに一意に設定される番号であり、エントリの識別子として機能する。種類はパケットの種類を示す。
【００３８】
ヘッダは、パケットのヘッダにおける異常原因パケット項目を示す。閾値は、後述するフィルタリング部１６がネットワーク１５０から伝達されるデータをフィルタリングする際に用いる閾値であり、上述した防止対象リスト作成部１１が攻撃パケットＡＰｎから抽出した異常原因パケット項目の値が格納される。
後述するフィルタリング部１６において、受信したパケットのヘッダにおける異常原因パケット項目の値が、この防止対象リストＬ１の閾値よりも大きい場合には、この受信したパケットが危険パケットであると判断される。
【００３９】
また、防止対象リスト作成部１１が、攻撃パケットＡＰｎから異常原因パケット項目の値を抽出して防止対象リストＬ１の項目「閾値」として登録する際に、防止対象リストＬ１に既に同一の異常原因パケット項目が登録されている場合が考えられる。
このような場合においては、防止対象リスト作成部１１は、先に防止対象リストＬ１に格納されている閾値の値と、新たに攻撃パケットＡＰｎから抽出した異常原因パケット項目の値とを比較する。そして、防止対象リスト作成部１１は、新たに攻撃パケットＡＰｎから抽出した異常原因パケット項目の値が、先に防止対象リストＬ１に格納されている閾値の値よりも小さい場合には、防止対象リストＬ１の閾値の値を、新たに攻撃パケットＡＰｎから抽出した異常原因パケット項目の値で置換（更新）する。
【００４０】
図６は第１実施形態の一例としてのネットワークフィルタリング装置１０における更新後の防止対象リストＬ１を例示する図である。この図６に示す防止対象リストＬ１においては、図５に示す防止対象リストＬ１の閾値“65536”が、新たに攻撃パケットＡＰｎから抽出した異常原因パケット項目の値“4096”によって更新されている。
防止対象リスト保存部１３は、防止対象リスト作成部１１が作成した防止対象リストＬ１を保存する。後述するフィルタリング部１６が、この防止対象リスト保存部１３から防止対象リストＬ１を読み出し、ネットワーク１５０から伝達されるデータのフィルタリングに用いる。
【００４１】
フィルタリング部１６は、保護対象機器１１０に対して、ネットワーク１５０から伝達されるデータをフィルタリングする。このフィルタリングによって、保護対象機器１１０の脆弱性に対して脅威を及ぼすデータ（危険パケット）を遮断することができる。
フィルタリング部１６においては、パケット受信部１５がネットワーク１５０から受信したパケットの各々を、防止対象リスト保存部１３に保存されている防止対象リストＬ１と比較する。具体的には、フィルタリング部１６は、防止対象リストＬ１に登録されている変異パケット項目の閾値と、受信したパケットのヘッダにおける該当するデータ項目の値をと比較する。
【００４２】
また、防止対象リストＬ１に複数の閾値が登録されている場合には、フィルタリング部１６は、これらの複数の閾値について受信したパケットのヘッダにおける該当するデータ項目の値と比較する。
受信したパケットにおけるデータ項目の値が、防止対象リストＬ１に登録されている閾値以上の場合には、この受信したパケットは保護対象機器１１０に不具合を発生させるおそれがある危険パケットであると判断される。
【００４３】
フィルタリング部１６は、この危険パケットの伝送を遮断し、保護対象機器１１０への到達を阻止する。すなわち、フィルタリング部１６は危険パケットの保護対象機器１１０への伝送を遮断する遮断部として機能する。
フィルタリング部１６において遮断した危険パケットは、破棄してもよく、又、後に管理者等が当該危険パケットの分析等を行なうことができるように、後述するメモリ１０２や記憶装置１０３等に格納（隔離）してもよい。
【００４４】
一方、フィルタリング部１６は、受信したパケットにおけるデータ項目の値が、防止対象リストＬ１に登録されている閾値よりも小さい場合には、この受信したパケットは保護対象機器１１０に不具合を発生させるおそれがない安全パケットと判断して、当該パケットをパケット送信部１７に送信する。
なお、フィルタリング部１６は、ネットワーク１５０から受信したデータが圧縮等で変換されている場合には、逆変換したデータをフィルタリングの対象としてもよい。
【００４５】
また、フィルタリング部１６は、受信したパケットにおけるデータ項目の値と、防止対象リストＬ１に登録されている閾値との比較の結果として肯定的な結果又は否定的な結果を、パケット送信部１７に出力してもよい。
なお、本明細書において、フィルタリング部１６の肯定的な結果とは、受信したパケットにおけるデータ項目の値が、防止対象リストＬ１に登録されている閾値以上であることを意味し、そのデータは保護対象機器１１０に到達させずに遮断されるべきことを意味する。フィルタリング部１６における否定的な結果とは、その逆を意味し、保護対象機器１１０にデータを到達させるべきことを意味する。
【００４６】
なお、ネットワークフィルタリング装置１０においては、保護対象機器１１０からネットワーク１５０へ出力されるデータは、そのまま通過させてもよい。
また、フィルタリング部１６は、パケット受信部１５が受信したパケットのそれぞれを、図示しないパターン保存部に予め格納されたパターンと比較してもよい。この比較の結果、受信したパケットの少なくとも一部が、パターンと一致もしくは略一致した場合に、フィルタリング部１６は、そのパケットを危険パケットと判断して、この危険パケットの伝送を遮断し、保護対象機器１１０への到達を阻止することができる。
【００４７】
本ネットワークフィルタリング装置１０は、図２に示すように、ＣＰＵ（Central Processing Unit）１０１，メモリ１０２，記憶装置１０３，媒体読取装置１０６及びネットワークインタフェース（Ｉ／Ｆ）１０４，１０５を備える。
ネットワークインタフェース１０４は、本ネットワークフィルタリング装置１０をネットワーク１５０と通信可能に接続するインタフェース装置であり、例えば、ＬＡＮ（Local Area Network）アダプタである。そして、このネットワークインタフェース１０４が、上述したパケット受信部１５として機能する。
【００４８】
ネットワークインタフェース１０５は、本ネットワークフィルタリング装置１０を保護対象機器１１０と通信可能に接続するインタフェース装置であり、例えば、ＬＡＮアダプタである。そして、このネットワークインタフェース１０５が、上述したパケット送信部１７として機能する。
なお、ネットワークインタフェース１０４，１０５は、ＬＡＮアダプタに限定されるものではなく、例えば、光通信用アダプタ等、種々変形して実施することができる。
【００４９】
メモリ１０２はＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）を含む記憶装置である。メモリ１０２のＲＯＭには、ネットワークフィルタリング制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ１０２上のソフトウェアプログラムは、ＣＰＵ１０１に適宜読み込まれて実行される。又、メモリ１０２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００５０】
記憶装置１０３は、例えば、ＨＤＤ（Hard disk drive）や不揮発性メモリ等のデータを格納可能な記憶装置であって、ＯＳ（Operating System）や各種プログラム，このプログラム用のデータ類を格納する。
また、これらのメモリ１０２や記憶装置１０３には、パケット受信部１５が受信したパケットや防止対象リストＬ１が格納される。すなわち、メモリ１０２や記憶装置１０３が、上述した、パケット保存部１２や防止対象リスト保存部１３として機能する。
【００５１】
ＣＰＵ１０１は、種々の制御や演算を行なう処理装置であり、メモリ１０２や記憶装置１０３に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。すなわち、ＣＰＵ１０１は、上述した、防止対象リスト作成部１１，保護対象監視部１４及びフィルタリング部１６として機能する。
媒体読取装置１０６は、記録媒体ＲＭが装着可能に構成される。媒体読取装置１０６は、記録媒体ＲＭが装着された状態において、記録媒体ＲＭに記録されている情報を読み取り可能に構成される。本例では、記録媒体ＲＭは可搬性を有する。記録媒体ＲＭは、コンピュータ読取可能な記録媒体であって、例えば、フレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク、又は、半導体メモリである。
【００５２】
なお、上述した防止対象リスト作成部１１，保護対象監視部１４及びフィルタリング部１６としての機能を実現するためのプログラム（ネットワークフィルタリングプログラム）は、例えば前述した記録媒体ＲＭに記録された形態で提供される。そして、コンピュータはその記録媒体ＲＭからプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００５３】
防止対象リスト作成部１１，保護対象監視部１４及びフィルタリング部１６としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ１０２）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１０１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００５４】
上述の如く構成された第１実施形態の一例としてのネットワークフィルタリング装置１０における処理を、図７に示すフローチャート（ステップＳ１〜Ｓ９）に従って説明する。
攻撃者３０がファジングによる攻撃パケットを保護対象機器１１０に対して送信すると、ステップＳ１において、パケット受信部１５がこのパケットを受信する。
【００５５】
ステップＳ２において、パケット受信部１５は、受信したパケット（受信パケット）の複写をパケット保存部１２に保存する。ここで、パケット保存部１２には、予め保存する受信パケット数の上限（例えば１０パケット）を設けておき、この上限を超える場合は、パケット保存部１２に格納された最も古い受信パケットを捨てて、新しい受信パケットを追加する。又、パケット受信部１５は、受信パケットをフィルタリング部１６に送信する。
【００５６】
ステップＳ３において、フィルタリング部１６がパケットの危険性を判定する。判定は防止対象リストＬ１に基づいて行なわれる。例えば、受信パケットがＨＴＴＰリクエストである場合において、ヘッダの特定の値のデータ長（文字数）が防止対象リストＬ１の閾値に設定された長さ以上になっている場合には、その受信パケットを危険パケットと判定する。例えば図５に示す例においては、受信パケットのHostヘッダの値が65536以上になっている場合に、この受信パケットが危険パケットとみなされる。
【００５７】
受信パケットが危険パケットであると判定された場合には（ステップＳ３の“危険”ルート参照）、ステップＳ９において、フィルタリング部１６は、当該受信パケットを破棄し、保護対象機器１１０への到達を阻止する。これにより、保護対象機器１１０が危険パケットを受信することを阻止することができ、保護対象機器１１０を保護することができる。その後、ステップＳ１に戻って次の受信パケットに備える。
【００５８】
一方、受信パケットが安全パケットであると判定された場合には（ステップＳ３の“安全”ルート参照）、ステップＳ４において、パケット送信部１７がこのパケットを保護対象機器１１０に対して送信する。
その後、ステップＳ５において、保護対象監視部１４が保護対象機器１１０の挙動を監視する。保護対象機器１１０の挙動に不具合が検知されない場合には（ステップＳ５の“問題なし”ルート参照）、ステップＳ１に戻る。
【００５９】
一方、保護対象機器１１０の挙動に不具合が検知された場合には（ステップＳ５の“例外発生”ルート参照）、ステップＳ６において、防止対象リスト作成部１１が、不具合発生の直前にパケット送信部１７から送信したパケットが保護対象機器１１０に異常をもたらした原因パケットであると判断する。防止対象リスト作成部１１は、この原因パケットに基づく防止対象リストＬ１への追加作業を開始する。
【００６０】
先ず、防止対象リスト作成部１１は、パケット保存部１２に保存された全パケットを参照し、各パケットが他パケットに比べて変異している箇所を特定する。図４に示した例においては、攻撃パケットＡＰ１〜ＡＰｎの間において、データ項目「Host」の値とデータ項目「Date」の値とがそれぞれ変異している。  
次に、ステップＳ７において、防止対象リスト作成部１１は、ステップＳ６において特定した変異箇所のうち、著しく変異している箇所である異常原因パケット項目を特定する。図４に示した例においては、防止対象リスト作成部１１は、攻撃パケットＡＰｎと、不具合を発生させなかった攻撃パケットＡＰ１，ＡＰ２とを比較することにより、攻撃パケットＡＰｎ中の、攻撃パケットＡＰ１，ＡＰ２に対して著しく変異している箇所（異常原因パケット項目）を特定する。詳細には、防止対象リスト作成部１１は、攻撃パケットＡＰｎ中の、攻撃パケットＡＰ１，ＡＰ２に対して閾値以上に変異する箇所を特定することにより、攻撃パケットＡＰｎにおける異常原因パケット項目を特定する。
【００６１】
防止対象リスト作成部１１は、複数の攻撃パケットＡＰ１〜ＡＰｎの各データ項目に設定されている文字の個数について、その最大値と最小値とを抽出し、これらの最大値と最小値との差（差分値）を算出する。
そして、防止対象リスト作成部１１は、この算出された差分値を予め設定された閾値と比較し、算出した差分値がこの閾値よりも大きい場合に、当該データ項目を異常原因パケット項目と判断する。
【００６２】
すなわち、本第１実施形態においては、原因パケットにおいて、不具合が検出されていない他のパケットとの間で、構成する文字数が閾値以上変化している項目を異常原因パケット項目として特定する。
ステップＳ８において、防止対象リスト作成部１１は、攻撃パケットＡＰｎにおける、上述の如く特定した異常原因パケット項目のデータ（異常原因データ）を抽出して、防止対象リストＬ１の項目「閾値」として登録する。これにより、保護対象機器１１０に不具合を発生させた異常原因データが防止対象リストＬ１に登録され、以後、同様の危険パケットから保護対象機器１１０を保護することができるようになる。その後、ステップＳ１に戻る。
【００６３】
また、この際、防止対象リストＬ１に既に同一の異常原因パケット項目が登録されている場合には、防止対象リスト作成部１１は、先に防止対象リストＬ１に格納されている閾値の値と、新たに原因パケットから抽出した異常原因パケット項目の値とを比較する。そして、原因パケットから抽出した異常原因パケット項目の値が、先に防止対象リストＬ１に格納されている閾値の値よりも小さい場合には、防止対象リストＬ１の閾値の値を、原因パケットから抽出した異常原因パケット項目の値で置換（更新）する。
【００６４】
これにより、保護対象機器１１０において検知された不具合に基づき、当該不具合を発生させた異常原因データにより防止対象リストＬ１を更新することができ、以後、同様の危険パケットから保護対象機器１１０を保護することができるようになる。
このように、第１実施形態の一例としてのネットワークフィルタリング装置１０によれば、ファジング攻撃により保護対象機器１１０において不具合が発生した場合に、原因パケットを特定する。そして、パケット保存部１２に保存された複数のパケットを比較することで、これらのパケット間で変異している変異箇所を特定する。そして、この変異箇所のうち、閾値以上に変異する箇所を特定することで異常原因パケット項目を特定し、原因パケットからこの異常原因パケット項目のデータを抽出し、防止対象リストＬ１に閾値として登録する。
【００６５】
これにより、保護対象機器１１０に不具合を生じさせた攻撃パケットに基づいて、防止対象リストＬ１を自動的に作成・更新することができる。すなわち、保護対象機器１１０の製品出荷後においても、防止対象リストＬ１を更新することができ信頼性を向上させることができる。すなわち、保護対象機器１１０の脆弱性に対して効果的に保護することができる。
【００６６】
また、この作成・更新した防止対象リストＬ１を用いてフィルタリング部１６がパケット受信部１５によって受信するパケットのフィルタリングを行なうことで、同様の攻撃パケットから保護対象機器１１０を保護することができ、強固なセキュリティを実現することができる。
（Ｂ）第２実施形態の説明
本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００６７】
例えば、上述した第１実施形態の一例としてのネットワークフィルタリング装置１０においては、防止対象リスト作成部１１が、複数のパケット間において、データ項目の値の文字数に基づいて、異常原因パケット項目を特定しているが、これに限定されるものではない。
本第２実施形態においては、防止対象リスト作成部１１は、複数のパケット間において、データ項目の値の大きさに基づいて異常原因パケット項目を特定するものであり、その他の部分は第１実施形態のネットワークフィルタリング装置１０と同様に構成されている。
【００６８】
図８は本発明の第２実施形態としてのネットワークフィルタリング装置１０における判断基準情報の作成方法を説明する図である。
図８においては、正常パケットＢに基づいて複数の攻撃パケットを作成する例を示している。この図８に示す例においては、正常パケットＢのヘッダについて、そのデータ項目「Content-Length」の値“6”を種々変更した複数の攻撃パケットＡＰ１１〜ＡＰ１ｎ（ｎは自然数）が作成されている。
【００６９】
この図８においても、保護対象機器１１０がＷｅｂサーバであるとして、ＨＴＴＰリクエストとしてパケットを受信する例を示している。
ここで、正常パケットＢは、ＨＴＴＰプロトコルの各種ヘッダ部分であり、POSTメソッドのパケットである。この情報が１つのパケットに含まれる。攻撃パケットＡＰ１１〜ＡＰ１ｎは、攻撃者３０が既知のファジング手法を用いて作成するパケットの例を示している。これらの攻撃パケットＡＰ１１〜ＡＰ１ｎは、主としてバッファオーバーフローをチェックするためのパターンである。
【００７０】
本第２実施形態においては、ファジング攻撃により、データ項目「Content-Length」を構成する値を変異させることにより、データ項目「Content-Length」に含まれる文字の値を変異させた複数の攻撃パケットが作成されている。
具体的には、攻撃パケットＡＰ１１においては、データ項目「Content-Length」として ‘1’が設定されており、攻撃パケットＡＰ１２においては、データ項目「Content-Length」として ‘64’が設定されている。又、攻撃パケットＡＰｎにおいては、データ項目「Content-Length」として“4096”が設定されている。
【００７１】
そして、例えば、保護対象機器１１０において、攻撃パケットＡＰ１１，ＡＰ１２を受信した際には不具合は検出されず、その後、攻撃パケットＡＰ１ｎを受信した際に不具合が検出されたものとする。
このような場合には、第１実施形態と同様に、保護対象機器１１０において不具合が検出される直前に受信した攻撃パケットＡＰ１ｎが、保護対象機器１１０に不具合を発生させる原因である原因パケット（第１のデータパケット）と推定される。
【００７２】
そして、この原因パケットにおいて、その前に受信した他の攻撃パケットＡＰ１１，ＡＰ１２との間で変異している箇所（変異箇所）が、保護対象機器１１０に不具合を発生させた要因（異常原因）と推定される。
そこで、防止対象リスト作成部１１は、この原因パケットにおいて、その前に受信した他の攻撃パケットＡＰ１１，ＡＰ１２との間で変異している箇所を特定する。
【００７３】
本第２実施形態においても、第１実施形態と同様にパケットがＨＴＴＰリクエストであることを利用し、変異箇所を個々のヘッダ、さらにヘッダのデータ項目と値（「:」で分割）に分離し、同じデータ項目の値をそれぞれ比較する。
そして、本第２実施形態においては、比較方法として、数値の大きさを比較の尺度とする。
【００７４】
図８に示す例においては、攻撃パケットＡＰ１１〜ＡＰ１ｎの間において、データ項目「Content-Length」の値とデータ項目「Date」の値とがそれぞれ変異している。
ここで、POSTのパケットにおいては、ヘッダの後にボディが続き、その長さが「Content-Length」で指定される。
防止対象リスト作成部１１は、原因パケットにおいて、その前に受信した他の攻撃パケットＡＰ１１，ＡＰ１２との間で変異している箇所として、データ項目「Content-Length」の値とデータ項目「Date」の値とを特定する。
【００７５】
このように、データ項目「Date」とデータ項目「Content-Length」とが変異箇所に含まれているが、第１実施形態でも示したように、データ項目「Date」は、パケットの受信時刻を示す情報であり、攻撃パケットＡＰ１１〜ＡＰ１ｎの間で数値に差異があって当然である。
データ項目「Date」の値は各パケットで異なるものの、その数値の大きさの変異は日時を示す値として妥当な範囲内に収まるべきものである。
【００７６】
一方、上述の如く、ファジング攻撃により、攻撃パケットＡＰ１１〜ＡＰ１ｎの間でデータ項目「Content-Length」の数値が異なる。すなわち、データ項目「Content-Length」の数値の大きさが各パケットで著しく異なっている。
本第２実施形態においては、防止対象リスト作成部１１は、複数のパケット間において、データ項目の各値に基づいて、異常原因パケット項目を特定する。具体的には、複数のパケット間においてデータ項目の値の大きさが例えば256以上違っていれば「著しく変異している」とみなす。
【００７７】
受信パケットにおける各データ項目「Content-Length」の長さは“1”,“64”, …, “4096”となっており、データ項目「Content-Length」に設定されている各値について、その最大値は攻撃パケットＡＰ１ｎの “4096”であり、最小値は攻撃パケットＡＰ１の “1”である。これらの最大値と最小値との差（差分値）は4096−1＝4095として算出される。
【００７８】
最小値の“1”と最大値の“4096”とでは256以上の違いがあるため、著しく変異しているとみなすことができる。防止対象リスト作成部１１は、この算出された差分値“4095”を予め設定された閾値（例えば、“256”）と比較する。防止対象リスト作成部１１は、算出した差分値がこの閾値よりも大きい場合に、著しく変異している箇所はデータ項目「Content-Length」の値の長さであり、当該データ項目「Content-Length」を異常原因パケット項目と判断する。
【００７９】
一方、データ項目「Date」に設定されている文字数は、各攻撃パケットＡＰ１１〜ＡＰ１ｎにおいて同じである。従って、これらの最大値と最小値との差（差分値）は“0”として算出される。
防止対象リスト作成部１１は、この算出された差分値“0”を予め設定された閾値（例えば、“30”）と比較する。算出した差分値“0”はこの閾値よりも小さいので、当該データ項目「Date」は異常原因パケット項目から除外される。
【００８０】
すなわち、本第２実施形態においては、原因パケットにおいて、不具合が検出されていない他のパケットとの間で、その数値が閾値以上変化している項目を異常原因パケット項目として特定する。これにより、パケットの受信日時や送信日時のように、複数のパケット間で数値に差異があって当然のデータ項目を以上原因パケット項目から除外させることができ、効率的に処理を行なうことができる。
【００８１】
上述の如く、実際に保護対象機器１１０において脆弱性による不具合を引き起こした可能性の高い、直前に受信したパケットを組み合わせることにより、異常原因パケット項目が特定される。そして、原因パケットである攻撃パケットＡＰ１ｎにおける、この異常原因パケット項目（本例ではデータ項目「Content-Length」）の数値の大きさを参照することで、『データ項目「Content-Length」の長さが256以上の場合に脆弱性が発生する』と解釈することができる。よって、この結果を防止対象リストＬ１に追加すれば、今後の攻撃パケットでデータ項目「Content-Length」の長さが“4096”以上のものを拒絶することができるようになる。
【００８２】
防止対象リスト作成部１１は、攻撃パケットＡＰ１ｎにおける、上述の如く特定した異常原因パケット項目のデータを判断基準情報として決定し、この判断基準情報として特定した異常原因データを、防止対象リストＬ１へ登録する。すなわち、防止対象リスト作成部１１は、保護対象機器１１０において不具合を発生させた原因である攻撃パケットＡＰ１ｎから、異常原因パケット項目の値を抽出して、防止対象リストＬ１の項目「閾値」として登録する。
【００８３】
このように、本発明の第２実施形態としてのネットワークフィルタリング装置１０によっても、上述した第１実施形態と同様の作用効果を得ることができる。
（Ｃ）その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【００８４】
例えば、第１実施形態と第２実施形態とを組み合わせることにより、防止対象リスト作成部１１が、複数のパケット間において、データ項目の値の文字数に基づいて、異常原因パケット項目を特定するとともに、複数のパケット間において、データ項目の値の大きさに基づいて異常原因パケット項目を特定してもよい。
この場合、防止対象リストＬ１には、データ項目「Host」に関する文字数の閾値と、データ項目「Content-Length」に関する数値の大きさの閾値とが登録される。フィルタリング部１６は、これらの複数の閾値について、それぞれ受信したパケットのヘッダにおける該当するデータ項目の値と比較する。
【００８５】
また、上述した実施形態においては、ネットワークフィルタリング装置１０がネットワーク１５０から受信したパケット単位で上記各処理を行なっているが、処理の単位はパケットに限定されるものではない。ネットワーク１５０から受信するデータの形式は、パケット以外のいかなる形式であってもよい。
さらに、上述した実施形態においては、フィルタリング部１６が、受信したパケットにおけるデータ項目の値が防止対象リストＬ１に登録されている閾値よりも大きい場合に、この受信したパケットを危険パケットであると判断しているが、これに限定されるものではない。例えば、受信したパケットにおけるデータ項目の値が、防止対象リストＬ１に登録されている閾値よりも小さい場合には、受信したパケットを危険パケットであると判断してもよい。又、受信したパケットにおけるデータ項目の値が、防止対象リストＬ１に登録されている閾値と一致もしくは略一致した場合に、この受信したパケットを危険パケットであると判断してもよく、種々変形して実施することができる。
【００８６】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【符号の説明】
【００８７】
１０    ネットワークフィルタリング装置
１１    防止対象リスト作成部
１２    パケット保存部
１３    防止対象リスト保存部
１４    保護対象監視部
１５    パケット受信部
１６    フィルタリング部
１７    パケット送信部
３０    攻撃者
１０１    ＣＰＵ
１０２    メモリ
１０３    記憶装置
１０４，１０５    ネットワークインタフェース
１０６    媒体読取装置
１１０    保護対象機器
１５０    ネットワーク
Ｌ１    防止対象リスト
ＲＭ    記録媒体
【図１】
2015075808.tif 000003
【図２】
2015075808.tif 000004
【図３】
2015075808.tif 000005
【図４】
2015075808.tif 000006
【図５】
2015075808.tif 000007
【図６】
2015075808.tif 000008
【図７】
2015075808.tif 000009
【図８】
2015075808.tif 000010