(57)【特許請求の範囲】
【請求項１】
受信データにフィルタ対象データが含まれているか否かを識別するフィルタ対象識別部と、
該受信データにフィルタ対象データが含まれているとき、該受信データの送信元装置に、該受信データのフィルタ処理の実施希望又は非実施希望の選択要求を送信し、該選択要求に対する選択応答がフィルタ処理の非実施希望を示し且つ該送信元装置が認証されている条件では、該送信元装置からの該受信データのフィルタ処理実施を選択せず、該条件以外では、該受信データのフィルタ処理実施を選択するフィルタ処理実施/非実施選択部と、
該選択された受信データに含まれるフィルタ対象データをフィルタ処理するフィルタ処理部と、
を備えたことを特徴とするファイアウォール装置。
【請求項２】
請求項１において、
該フィルタ処理実施/非実施選択部が、認証結果保持部、フィルタ選択要求部、及びフィルタ処理選択部で構成され、
該認証結果保持部が該送信元装置の認証結果を保持し、
該フィルタ選択要求部が、該受信データの送信元装置に、該受信データのフィルタ処理の実施希望又は非実施希望の選択要求を送信し、
該フィルタ処理選択部が、該選択要求に対する選択応答がフィルタ処理の非実施希望を示し且つ該送信元装置が該認証結果において認証されている条件では、該送信元装置からの該フィルタ対象データを含む受信データのフィルタ処理実施を選択せず、該条件以外では、該フィルタ対象データを含む他の受信データのみのフィルタ処理実施を選択するファイアウォール装置。
【請求項３】
請求項１において、
該フィルタ処理実施/非実施選択部が、認証結果保持部、フィルタ選択要求部、及びフィルタ処理選択部で構成され、
該認証結果保持部が該送信元装置の認証結果を保持し、
該フィルタ選択要求部は、該送信元装置が該認証結果において認証されていないときには、該受信データのフィルタ処理実施を選択し、該認証結果において認証されている送信元装置には、該選択要求を送信し、
該フィルタ処理選択部は、該選択要求に対する選択応答がフィルタ処理の非実施希望を示す条件では、該認証されている送信元装置からの該受信データのフィルタ処理実施を選択せず、該条件以外では、フィルタ対象データを含む他の受信データのフィルタ処理実施を選択することを特徴としたファイアウォール装置。
【請求項４】
請求項１において、
認証処理部をさらに備え、
該フィルタ選択要求部が、該送信元装置に認証要求をさらに送信し、
該認証処理部は、該認証要求に対する認証応答に基づき該送信元装置の認証処理を行い、この認証結果を該認証結果保持部に登録することを特徴としたファイアウォール装置。
【請求項５】
請求項１において、
該受信データに含まれるパラメータに対応付けて該受信データのフィルタ処理の実施/非実施を決定するフィルタポリシーを保持するフィルタポリシー保持部をさらに備え、
該フィルタ対象識別部は、該フィルタポリシーが該フィルタ処理の実施を決定している時のみ該受信データを該フィルタ処理実施/非実施選択部に与えることを特徴としたファイアウォール装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイアウォール装置に関し、外部ネットワークからの攻撃から特定のネットワークを保護するファイアウォール装置に関する。
【背景技術】
【０００２】
図21は、一般的なネットワーク構成例を示しており、このネットワークは、インターネット/イントラネット400と、このインターネット/イントラネット400に接続されたファイアウォール装置100x、クライアント(サイト管理者)200_1、及びクライアント200_2〜200_4(以下、符号200で総称することがある。)、並びにファイアウォール装置100x経由でインターネット/イントラネット400に接続されたサーバ300で構成されている。このサーバ300内のサイト310には、コンテンツ301_1〜301_n(以下、符号301で総称することがある。)が収容されている。
【０００３】
クライアント200には、インターネット/イントラネット400及びファイアウォール装置100経由でサーバ300からサイト310のサービスが提供される。同様に、サイト管理者200_1は、インターネット/イントラネット400及びファイアウォール装置100経由でサーバ300上のサイト310を管理する。
【０００４】
ファイアウォール装置100は、サイト310に対する攻撃を防御する装置である。すなわち、ファイアウォール装置100は、不特定多数のクライアント200に対してコンテンツ301を公開する場合、悪意のあるクライアント200_x(図示せず。)からサーバ300内のコンテンツ301を守るためものである。なお、このファイアウォール装置100は、Webアプリケーションファイアウォール装置(WAF)100xとも言われている。
【０００５】
図22は、従来のファイアウォール装置100xの構成例を示している。この装置100xは、クライアント側送受信部10x、フィルタ対象識別部20x、フィルタ処理部60x、及びサーバ側送受信部70xで構成されている。
【０００６】
図23は、ファイアウォール装置100xの一般的なフィルタ処理例を示しおり、この装置100xは、例えば、悪意のクライアント200_xから受信したフレーム700aをフィルタ処理し、処理結果のフレーム700bをサーバ300に送出している。
【０００７】
図24は、ファイアウォール装置100xが、図23のフィルタ処理をするときの動作手順例を示している。図22〜図24を参照して、以下にフィルタ処理の動作手順を説明する。
【０００８】
図23において、装置100xは、悪意のクライアント200_xからフレーム700aを受信する。このフレーム700a中のデータは、例えば、…<script>alert(‘test’)</script>…である。
【０００９】
ステップS800，S810：装置100x(図22参照。)において、クライアント側送受信部10xは、フレーム700aを受信し、このフレーム700aをフィルタ対象識別部20xに与える。フィルタ対象識別部20xは、フレーム700aのデータ(…<script>alert(‘test’)</script>…)を走査して攻撃パターンがあるか否かを判定する。
【００１０】
ステップS810，S830：フィルタ対象識別部20xは、攻撃パターンが含まれていない場合、フレーム700aをサーバ側送受信部70xに与える。
【００１１】
ステップS810，S820：フィルタ対象識別部20xは、攻撃に利用される特定パターン、例えば、HTMLのタグ<script>，</script>2)が有る場合には、フレーム700aをフィルタ処理部60xに与える。
【００１２】
フィルタ処理部60xは、このHTMLのタグを示す左括弧“<”や、右括弧“>”をそれぞれ別の文字“&lt;”や“&gt;”に置換して、無害化したデータ(…&lt;script&gt;alert(‘test’)&lt;/script&gt;…）を含むフレーム700bをサーバ側送受信部70xに与える(図23のステップT0参照。)。なお、フィルタ対象識別部20xは、攻撃に利用される特定パターンが含まれている場合、クライアント200_xに対する通信を遮断することもある(図示せず。)。
【００１３】
ステップS830：サーバ側送受信部70xは、受信したフレーム700a又はフレーム700bをサーバ300に送信する。
【００１４】
このように、ファイアウォール装置100xでは、アプリケーションレイヤの攻撃である、クロスサイトスクリプティング(XSS：CrossSite Scripting)やSQL(Structured Query Language)インジェクション等をターゲットとしたパターン検知および防御を行っている。XSS攻撃とは、クライアント200_xからのアクセス要求に含まれるスクリプトを、サーバ300上のアプリケーションが取り除くことに失敗し、クライアント200への応答に上記スクリプトを含めて応答してしまうという脆弱性である。この脆弱性を利用すると、悪意のあるクライアント200_xは不正なスクリプトを第三者のブラウザに読み込ませ、その不正なスクリプトを実行させることができる。
【００１５】
XSS攻撃に対する防御の場合、クライアントからのHTTPリクエストのGET/POSTメッセージ内に、スクリプトのソースコードが含まれているとき、当該データの廃棄、もしくはキーワードのエスケープ処理による攻撃の無害化(サニタイジング)を行う。以下、この“廃棄”及び“無害化”機能を合わせて“フィルタ処理"と呼ぶ。このフィルタ処理により、悪意のあるクライアント200_xが不正なスクリプト等を含む異常なデータをサーバ300にアップロードすることを防ぐことができる。
【００１６】
SQLインジェクション攻撃に関しても、同様に、フィルタ処理により不正なSQL構文が実行されることを防ぐことができる。
【００１７】
しかしながら、ホームページ検索サービスのように、ユーザ(クライアント200_2)からデータをWebアプリケーションの入力としてそのまま使う場合、先にフィルタリングできない場合がある
そこで、特許文献１記載のファイアウォール装置(フィルタリング装置)100yでは、アクセス要求を受け取った時に、サーバ300にとって無害だがクライアント200にとっては有害な不正コードがアクセス要求に含まれていた場合、この不正コード(攻撃パターン)を記憶しておく。そして、ファイアウォール装置100xは、該アクセス要求に対するアクセス応答を受け取った時に、記憶しておいた不正コードがアクセス応答の中に残っていた場合、該アクセス応答から不正コードを取り除いている。
【特許文献１】特開2005-092564号公報(４頁、図１)
【発明の開示】
【発明が解決しようとする課題】
【００１８】
従来のファイアウォール装置100x及びフィルタリング装置100yにおいては、悪意のあるコードの判別が難しいため、攻撃パターン(フィルタ対象データパターン)にマッチした全トラヒックを対象にフィルタ処理を行っていた。すなわち、従来のファイアウォール装置100xやフィルタリング装置100yでは、悪意のない送信元装置、例えばサイト管理者200_1がBlog/掲示板などでHTTPのGET/POSTを利用してサイト310を更新する場合であっても、不必要なフィルタ処理を実行してしまう。これにより、セキュリティを強固にする一方で、サイト管理者200_1に対する利便性やサービス品質が低下するという問題がある。
【００１９】
従って、本発明のファイアウォール装置において、悪意のない送信元装置からの受信データに対する不必要なフィルタ処理を実施しないことを課題とする。
【課題を解決するための手段】
【００２０】
上記の課題を解決するため本発明に係わるファイアウォール装置は、受信データにフィルタ対象データが含まれているか否かを識別するフィルタ対象識別部と、該受信データにフィルタ対象データが含まれているとき、該受信データの送信元装置に、該受信データのフィルタ処理の実施希望又は非実施希望の選択要求を送信し、該選択要求に対する選択応答がフィルタ処理の非実施希望を示し且つ該送信元装置が認証されている条件では、該送信元装置からの該受信データのフィルタ処理実施を選択せず、該条件以外では、該受信データのフィルタ処理実施を選択するフィルタ処理実施/非実施選択部と、該選択された受信データに含まれるフィルタ対象データをフィルタ処理するフィルタ処理部とを備えたことを特徴としている。
【００２１】
すなわち、フィルタ対象識別部は、受信データにフィルタ対象データが含まれているか否かを識別する。フィルタ処理実施/非実施選択部は、受信データにフィルタ対象データが含まれているとき、受信データの送信元装置に、受信データのフィルタ処理の実施希望又は非実施希望の選択要求を送信し、この選択要求に対する選択応答がフィルタ処理の非実施希望を示し且つ該送信元装置が認証されている条件では、該送信元装置からの該受信データのフィルタ処理実施を選択せず、該条件以外では、該受信データのフィルタ処理実施を選択する。フィルタ処理部は、フィルタ処理実施/非実施選択部で選択された該フィルタ対象データを含む受信データをフィルタ処理する。
【００２２】
図１は、本発明の原理を示している。同図には、送信元装置(クライアント)が“認証済”/“未認証”と、送信元装置からの選択応答が“フィルタ処理非実施希望”/“フィルタ処理実施希望”との条件により、処理パターン(a)〜(b)の場合に分けられる。そして、処理パターン(a)〜(b)において受信データのフィルタ処理を実施又は非実施が決定される。これを同図に基づき以下に説明する。
【００２３】
処理パターン(a)は、クライアント(例えば、サイト管理者)が“認証済(善意)”且つ“フィルタ処理非実施希望”であり、このときは、フィルタ処理を実施しない(非実施)。
【００２４】
処理パターン(b)は、クライアントが“認証済(善意)”且つ“フィルタ処理実施希望”であり、このときは、フィルタ処理を実施する(実施)。
【００２５】
処理パターン(c)は、クライアントが“未認証(悪意あるクライアントの可能あり)”且つ“フィルタ処理非実施希望”であり、このときでも、フィルタ処理を実施する(実施)。
【００２６】
処理パターン(d)は、クライアントが“未認証(悪意の可能あり)”且つ“フィルタ処理実施希望”であり、このときは、フィルタ処理を実施する(実施)。
【００２７】
以上の処理パターンをまとめると、条件１(処理パターン(a)）の“認証済”且つ“フィルタ処理非実施希望”である場合のみ、フィルタ処理を実施せず、条件１以外の条件２(処理パターン(b)〜(d))である場合は、フィルタ処理を実施する。
【００２８】
このように、本発明では、通常の通信手順に、認証済の(悪意のない)送信元装置(クライアント)、例えば、サイト管理者に、自分自身の送信データに対するフィルタ処理の実施希望/非実施希望を選択することが可能な機能を提供する。このとき、フィルタ処理の実施希望/非実施希望の選択は、認証済の送信元装置のみに許可するため、送信元装置の認証処理が必要であるが、認証処理のタイミングはいつでも構わない。例えば、このタイミングとして、通信を開始する前、或いはフィルタ処理の実施希望/非実施希望の選択時などがある。
【００２９】
これにより、認証済の送信元装置からのフィルタ対象データを含む受信データは、当該送信元装置(サイト管理者)がフィルタ処理実施を選択したときのみ、フィルタ処理が実施されることになる。すなわち、不必要なフィルタ処理を実施しないことが可能になる。一方、認証済でない送信元装置(例えば、悪意のあるクライアント)からのフィルタ対象データを含む全受信データは、フィルタ処理されることになる。
【００３０】
この結果、サイト管理者に対する利便性・サービス品質を確保しつつ、悪意のあるクライアントの攻撃からサイトを防御することが可能になる。
【００３１】
また、本発明では、該フィルタ処理実施/非実施選択部が、認証結果保持部、フィルタ選択要求部、及びフィルタ処理選択部で構成され、該認証結果保持部が該送信元装置の認証結果を保持し、該フィルタ選択要求部が、該受信データの送信元装置に、該受信データのフィルタ処理の実施希望又は非実施希望の選択要求を送信し、該フィルタ処理選択部が、該選択要求に対する選択応答がフィルタ処理の非実施希望を示し且つ該送信元装置が該認証結果において認証されている条件では、該送信元装置からの該フィルタ対象データを含む受信データのフィルタ処理実施を選択せず、該条件以外では、該フィルタ対象データを含む他の受信データのフィルタ処理実施を選択することが可能である。
【００３２】
すなわち、該フィルタ処理実施/非実施選択部は、フィルタ選択要求部、認証結果保持部、及びフィルタ処理選択部で構成されている。認証結果保持部は、送信元装置の認証結果(認証済又は未認証)を保持している。フィルタ選択要求部は、受信データの送信元装置に、受信データのフィルタ処理の実施希望又は非実施希望の選択要求を送信し、フィルタ処理選択部が、選択要求に対する選択応答がフィルタ処理の非実施希望を示し且つ該送信元装置が認証結果において認証されている条件では、該送信元装置からの該フィルタ対象データを含む受信データのフィルタ処理実施を選択しない(条件(1)、処理パターン(a))。上記の条件以外(条件(2)、処理パターン(b)〜(d))では、フィルタ処理選択部はフィルタ対象データを含む他の受信データのみのフィルタ処理実施を選択する。
【００３３】
この後、フィルタ処理部は、選択された受信データに含まれるフィルタ対象データをフィルタ処理することになる。この結果、認証済の(悪意のない)送信元装置のみが、フィルタ処理の非実施希望を選択することが可能になる。すなわち、認証済の送信元装置からの受信データの不必要なフィルタ処理を実施しないことが可能になる一方、認証済でない送信元装置からのフィルタ対象データを含む全受信データのフィルタ処理は実施されることになる。
【００３４】
また、本発明では、該フィルタ処理実施/非実施選択部が、認証結果保持部、フィルタ選択要求部、及びフィルタ処理選択部で構成され、該認証結果保持部が該送信元装置の認証結果を保持し、該フィルタ選択要求部は、該送信元装置が該認証結果において認証されていないときには、該受信データのフィルタ処理実施を選択し、該認証結果において認証されている送信元装置には、該選択要求を送信し、該フィルタ処理選択部は、該選択要求に対する選択応答がフィルタ処理の非実施希望を示す条件では、該認証されている送信元装置からの該受信データのフィルタ処理実施を選択せず、該条件以外では、フィルタ対象データを含む他の受信データのフィルタ処理実施を選択することが可能になる。
【００３５】
すなわち、フィルタ処理実施/非実施選択部は、フィルタ選択要求部、認証結果保持部、及びフィルタ処理選択部で構成されている。認証結果保持部は、送信元装置の認証結果(認証済み又は未認証)を保持している。フィルタ選択要求部は、認証結果に基づき送信元装置が認証済であるか否かを確認し、送信元装置が該認証結果において認証されていないときには(処理パターン(c)及び処理パターン(d))、該受信データのフィルタ処理実施を選択してフィルタ処理部に渡す。一方、フィルタ選択要求部は、認証結果において認証されている送信元装置に、その受信データのフィルタ処理の実施希望又は非実施希望の選択要求を送信する。該フィルタ処理選択部は、該選択要求に対する選択応答がフィルタ処理の非実施希望を示す条件では(条件(1)、処理パターン(a))、該認証されている送信元装置からの該受信データのフィルタ処理実施を選択しない。該条件以外(処理パターン(ｂ))では、フィルタ対象データを含む他の受信データのフィルタ処理実施を選択する。この後、フィルタ処理部は、選択された受信データに含まれるフィルタ対象データをフィルタ処理することになる。
【００３６】
これにより、認証済の送信元装置のみが、フィルタ処理の非実施を選択することが可能になる。すなわち、認証済の送信元装置からの受信データの不必要なフィルタ処理を実施しないことが可能になる一方、認証済でない送信元装置からのフィルタ対象データを含む全受信データのフィルタ処理は実施されることになる。
【００３７】
さらに、予め認証を行った送信元装置(例えば、サイト管理者)以外には、フィルタ処理実施希望/非実施希望の選択要求及びその応答である選択応答を送受信する必要がなくなる。この結果、セキュリティもより強固になる。
【００３８】
また、本発明では、認証処理部をさらに備え、該フィルタ選択要求部が、該送信元装置に認証要求をさらに送信し、該認証処理部は、該認証要求に対する認証応答に基づき該送信元装置の認証処理を行い、この認証結果を該認証結果保持部に登録することが可能になる。
【００３９】
すなわち、フィルタ選択要求部は、認証要求を送信元装置に送信する。この認証要求は選択要求と同時に行ってもよい。認証処理部は、認証要求に対する認証応答に基づき送信元装置の認証処理を行い、この認証結果を認証結果保持部に登録する。なお、フィルタ選択要求部は、認証結果保持部50に当該送信元装置の認証結果が保存されている場合は、認証要求を送信せずに認証を省略してもよい。
【００４０】
これにより、予め認証を行う場合と比べて、送信元装置(サイト管理者)は、フィルタ対象データを含むデータを送信するときのみ認証確認を行うため、サイト管理者の入力の手間を省き、利便性が向上する。
【００４１】
また、本発明では、該受信データに含まれるパラメータに対応付けて該受信データのフィルタ処理の実施/非実施を決定するフィルタポリシーを保持するフィルタポリシー保持部をさらに備え、該フィルタ対象識別部は、該フィルタポリシーが該フィルタ処理の実施を決定している時のみ該受信データを該フィルタ処理実施/非実施選択部に与えることができる。
【００４２】
また、本発明では、該フィルタ処理を該フィルタ対象データの無害化処理、又は該受信データの廃棄処理とすることが可能である。
【００４３】
また、本発明では、該フィルタ対象データが、該フィルタ対象識別部に予め設定されていてもよい。
【００４４】
また、本発明では、該フィルタ選択要求部が、該送信元装置に該認証要求を該選択要求と同時に送信してもよい。
【００４５】
さらに、本発明では、該パラメータを該受信データの宛先アドレス、URL、或いはGET又はPOSTで指定する変数値とし、これらのパラメータに基づき該フィルタポリシーを決定してもよい。
【００４６】
これにより、例えば、特定のサイト/入力フィールドに対してフィルタ処理の実施・非実施を指定することが可能になる。
【発明の効果】
【００４７】
以上説明したように、本発明に係るファイアウォール装置によれば、悪意のない送信元装置からの受信データに対する不必要なフィルタ処理を実施しなくて済む。この結果、例えば、善意のクライアントであるサイト管理者に対する利便性・サービス品質を確保しつつ、悪意のあるクライアントの攻撃から、例えばサイトを防御することが可能になる。
【発明を実施するための最良の形態】
【００４８】
図２は、本発明のファイアウォール装置100を含む一般的なネットワーク構成例を示している。このネットワークでは、クライアント(IPアドレス＝10.0.0.1)200_1とクライアント(IPアドレス＝20.0.0.1)200_x(以下、符号200_1と200_xを符号200で総称することがある。)は、インターネット/イントラネット400及びファイアウォール装置(IPアドレス＝40.0.0.1)100を経由してサーバ(IPアドレス＝50.0.0.1)300に含まれるサイト310(図示せず。)にアクセスすることができる。
【００４９】
以下に説明する実施例(1)〜(4)では、同図に示したネットワーク構成に基づき説明する。また、この説明においては、クライアント200_1はサイト管理者が利用し、クライアント200_xは悪意あるユーザが利用するもの(可能性がある)とする。また、サーバ300とクライアント200はHTTPによる通信を行うものとし、各クライアント200はサーバ300に対してHTTPのGET若しくはPOSTメッセージにより、データをサーバ300にアップロードするものとする。また、本発明のファイアウォール装置100と直接関係がない通信レイヤ(TCPやUDP等)の通信手順は省略し、HTTPに直接関連する手順のみを説明する。
【００５０】
さらに、ファイアウォール装置100のフィルタ処理は、“<script>”および“</script>”があった場合に、“<”(左角括弧)と、“>”(右角括弧)の部分をそれぞれ“&lt;”、“&gt;”に変換するものとする。
【００５１】
なお、簡略化のために以下の説明では、データは全て１フレームで送る場合の例を述べているが、データは複数フレームに跨るものとすることができる。
【００５２】
実施例(1)
図３は、実施例(1)における本発明のファイアウォール装置100の構成例を示している。この装置100が、図22に示した従来のファイアウォール装置100xと異なる点は、フィルタ処理実施/非実施選択部95が追加されていることである(破線部参照。)。この選択部95は、フィルタ選択要求部30、フィルタ処理選択部40、及び認証結果保持部50で構成されている。
【００５３】
以下に、これらの機能部を含めた各機能部10〜70の動作を説明する。なお、以下の説明では、クライアント200がファイアウォール装置100(クライアント側送受信部10)と送信/受信するフレームを、それぞれフレーム700a及びフレーム710bとし、また、サーバ300がファイアウォール装置100(サーバ側送受信部70)と送信/受信するフレームを、それぞれフレーム710a及びフレーム700bとする。これらのフレームの符号700a、700b，710a，710bは、それぞれ、後述するフレームの流れを示した図６、図９、図10、図13、及び図18における符号701，703a，705a，705b、符号701，703a，703b、符号702a、706、並びに符号702a，704，706を総称したものである。
【００５４】
機能部の説明：
(1)クライアント側送受信部10：クライアント200から選択応答805でないフレーム700aを受信した場合、このフレーム700aを受信データ800としてフィルタ対象識別部20に渡し、フレーム700aが選択応答805である場合、この選択応答805をフィルタ処理選択部40に渡す。また、フィルタ選択要求部30からの実施/非実施希望選択要求804をフレーム710bとしてクライアント200に送信する。さらに、サーバ側送受信部70からの受信データ810をフレーム710bとしてクライアント200に送信する。
【００５５】
(2)フィルタ対象識別部20：受信した受信データ800のペイロード部分を解析し、“GET”及び“POST”の内容に“<script>”又は“</script>”の文字列が含まれていた場合、受信データ800をフィルタ対象データ802としてフィルタ選択要求部30に渡し、含まれていない場合、フィルタ非対象データ801としてサーバ側送受信部70に渡す。
【００５６】
(3)フィルタ選択要求部30：受信したフィルタ対象データ802の送信元アドレスに対して、“フィルタ処理実施希望”又は“フィルタ処理非実施希望”を選択することを要求する選択要求804をクライアント側送受信部10に渡す。
【００５７】
(4)フィルタ処理選択部40：クライアント側送受信部10から受信した“フィルタ実施/非実施”の選択結果を示す選択応答805を受信し、この選択応答805の送信元クライアント200の情報であるクライアント情報806aを認証結果保持部50に与え、この認証結果保持部50からクライアント200の認証結果807bを読み出す。選択応答805＝“フィルタ処理非実施希望”且つ認証結果807b＝“認証可(認証済)”の場合は、フィルタ選択要求部30から渡されたフィルタ対象データ802に含まれるGET/POSTパラメータをそのままにしたフィルタ非対象データ802bをサーバ側送受信部70に渡す。認証結果807b＝“認証不可(未認証)”又は選択応答805＝“フィルタ処理実施希望”の場合は、フィルタ処理部60にフィルタ対象データ802に含まれるGET/POSTパラメータをそのままにしたフィルタ対象データ802aを渡す。
【００５８】
(5)フィルタ処理部60：フィルタ処理選択部40よりフィルタ対象データ802aを受信すると、データ802aの走査を行い、“<script>”及び“</script>”中の“<”と“>”の文字をそれぞれ“&lt;”及び“&gt;”に置換し、この置換したデータ803をサーバ側送受信部70に渡す。
【００５９】
(6)認証結果保持部50：本実施例(1)では予めクライアント200との間で認証が済んでおり、クライアント200のアドレス(10.0.0.1)が登録されているものとする。
【００６０】
図４は、認証結果保持部50の構成例を示しており、この保持部50には、予め認証済みのクライアント200等のIPアドレス情報＝“10.0.0.1”，“30.0.0.1”，…が保持されている。そして、認証結果保持部50は、例えば、クライアント情報806a＝“10.0.0.1”が与えられた場合、IPアドレスを参照して“10.0.0.1”が予め登録されていることを確認して認証結果807b＝“認証可”を応答する。
【００６１】
(7)サーバ側送受信部70：サーバ300からのフレーム710aをクライアント側送受信部10に渡す。各内部機能部から渡されたデータをフレーム700bとしてサーバ300に転送する。実施例(1)及び後述する実施例(2)〜(4)における処理パターン(a)〜(b)の要件を以下に説明する(図１参照。)。
・処理パターン(a)：クライアント(サイト管理者)200_1がサーバ300にスクリプト(攻撃パターン)を含むデータをアップロードする場合であって、且つ“フィルタ処理非実施希望”が選択された場合
・処理パターン(b)：クライアント(サイト管理者)200_1がサーバ300にスクリプト(攻撃パターン)を含むデータをアップロードする場合であって、且つ“フィルタ処理実施希望”が選択された場合
・処理パターン(c)：悪意のあるクライアント200_xがサーバ300にスクリプト(攻撃パターン)を含むデータをアップロードする場合であって、且つ“フィルタ処理非実施希望”が選択された場合
・処理パターン(d)：悪意のあるクライアント200_xがサーバ300にスクリプト(攻撃パターン)を含むデータをアップロードする場合であって、且つ“フィルタ処理実施希望”が選択された場合
このうちの処理パターン(a)のときのみ、フィルタ処理が実施されず、他の処理パターン(b)〜(d)のとき、フィルタ処理が実施される。
【００６２】
以下に、本実施例(1)におけるに処理パターン(a)〜(d)の動作手順を説明するが、処理パターン(d)は、処理パターン(b)と同様の結果となるため、処理パターン(a)〜(c)の動作手順のみを説明する。
【００６３】
図５及び図６は、それぞれ、実施例(1)におけるファイアウォール装置100の動作手順例、及び処理パターン(a)におけるフレームの流れを示している。
【００６４】
処理パターン(a)
実施例(1)における処理パターン(a)、すなわち、クライアント(サイト管理者)200_1がサーバ300にスクリプト(攻撃パターン)を含むデータをアップロードした場合であって、且つ“フィルタ処理非実施希望”を選択した場合を図３、図５、及び図６を参照して以下に説明する。
【００６５】
ステップT100：クライアント(サイト管理者)200_1は、サーバ300のIPアドレス(50.0.0.1)宛のフレーム701を送出する(図６参照)。このフレーム701は、HTTPのGETリクエスト例：GET http://www.test.com/form.htm HTTP/1.0\r\n…
を含む入力フォーム(入力“form.htm”)の取得用フレームである。
【００６６】
ステップT110：ファイアウォール装置100において、クライアント側送受信部10は、フレーム701を受信し、このフレーム701が選択応答フレームでないので、フレーム701を受信データ800としてフィルタ対象識別部20に渡す(図３、及び図５のステップS100の“No”参照。)。
【００６７】
ステップT120：フィルタ対象識別部20は、フレーム(GETリクエスト)701の内容を走査し、攻撃パターン(<script>、</script>等)が無いので、フレーム701をサーバ側送受信部70に渡す(ステップS110，S120の“No”参照。)。
【００６８】
ステップT130：サーバ側送受信部70はフレーム701をサーバ300に対して転送する(ステップSS160参照。)。
【００６９】
ステップT140：サーバ300はフレーム701を受信し、このフレーム701が“form.htm”のGETリクエストであるため、“form.htm”を含むフレーム702aをクライアント200_1のIPアドレス(10.0.0.1)宛に送信する。
【００７０】
図７は、フレーム702aに含まれる“form.htm”の記載例を示している。
【００７１】
ステップT150：ファイアウォール装置100において、サーバ側送受信部70はフレーム702aを受信し、このフレーム702aをクライアント側送受信部10に渡す。
【００７２】
ステップT160：クライアント側送受信部10は、フレーム702aをサイト管理者200_1に対して転送する。
【００７３】
ステップT170：クライアント200_1はフレーム702aを受信し、“form.htm”の“field領域”にクライアントがスクリプトを含むデータを書き込むことにより、HTTPのGETリクエスト例：GEThttp://www.test.com/request.cgi?submit=ok&field=<script>alert(‘test’)</script>HTTP/1.0\r\n…
を含むフレーム703aを、サーバ300のIPアドレス(50.0.0.1)宛に送信する。
【００７４】
ステップT180：ファイアウォール装置100において、クライアント側送受信部10は、フレーム703aを受信し、フィルタ対象識別部20にフレーム703aを渡す(ステップS100の“No”参照。)。
【００７５】
ステップT190：フィルタ対象識別部20は、受信したフレーム(GETリクエスト)703aを走査し、攻撃パターン“<script>”等を含むので、フレーム703aをフィルタ対象データ802(図３参照。)としてフィルタ選択要求部30に渡す(ステップS110，S120の“Yes”参照。)。
【００７６】
ステップT200：フィルタ選択要求部30は、受信データ802(フレーム703a)をフィルタ処理選択部40に渡す。さらに、フィルタ選択要求部30は、データ802の送信元であるクライアント200_1のIPアドレス(10.0.0.1)宛に、“フィルタ実施/非実施”の選択要求用の入力フォーム“selected.cgi”を含む実施/非実施希望選択要求804(フレーム704)をクライアント側送受信部10に渡す。このときのフレーム704の送信元はサーバ300のIPアドレス(50.0.0.1)に設定し、フレーム704がクライアント200_1からは“request.cgi(ステップT170のGETリクエスト参照。)”に対する応答に見えるようにする。なお、このように本装置100が直接入力フォームを応答する代わりに、一度、HTTPのリダイレクトメッセージをクライアント200_1に送信し、クライアント200_1から改めて本装置(40.0.0.1)100に対して入力フォームを取得するように誘導してもよい。
【００７７】
図８は、フレーム704(選択要求804)に含まれる“selected.cgi”の記載例を示している。この“selected.cgi”には、“フィルタ非実施/実施選択”欄が含まれている。
【００７８】
ステップT210：クライアント側送受信部10は、フレーム704をクライアント200_1に対して転送する(ステップS130参照。)。
【００７９】
ステップT220：クライアント200_1はフレーム704を受信する。そして、クライアント200_1のサイト管理者が、フレーム704の“selected.cgi”の“select領域”(図８参照。)にフィルタ処理として“フィルタ処理非実施希望(select=1)”を選択したものとする。クライアント200_1は、上記入力結果“select=1”が設定されたHTTPのGETリクエスト例：GEThttp://www.test.com/selected.cgi? submit=ok&select=1 HTTP/1.0\r\n…
を含むフレーム705aをサーバ300のIPアドレス(50.0.0.1)宛で送信する。
【００８０】
ステップT230：ファイアウォール装置100において、クライアント側送受信部10は、フレーム705aが選択用のページ“selected.cgi”に対する応答、すなわち、フレーム704の応答であることを識別し(ステップS100の“Yes”参照。)、フィルタ処理選択部40にフレーム705aを選択応答805として渡す。
【００８１】
ステップT240：フィルタ処理選択部40は、フレーム705aの“select=1”であることから、“フィルタ処理非実施希望(select=1)”と判断し、認証結果保持部50にクライアント(サイト管理者)200_1の情報(IPアドレス(10.0.0.1))が登録されているか否かを確認する(ステップS140の“No”，S170)。
【００８２】
ステップT250：認証結果保持部50は、クライアント200_1はサイト管理者であり、認証結果保持部50にクライアント200_1の情報(IPアドレス(10.0.0.1))が予め登録されているため(図４参照。)、認証結果807a＝“認証可”をフィルタ処理選択部40に応答する。この認証結果807aを受けたフィルタ処理選択部40は、フィルタ対象データ802(フレーム703a)をフィルタ非対象データ802bとしてサーバ側送受信部70に渡す(ステップS180の“Yes”参照。)。
【００８３】
ステップT260：サーバ側送受信部70は上記フレーム703aをサーバ300に送信する(ステップS160)。
【００８４】
ステップT270：サーバ300は上記フレーム703aを受信し、このフレーム703aの“field領域”に「<script>alert(‘test’)</script>」が含まれているデータを処理し、処理結果を表示するページを含むフレーム706をクライアント200_1のIPアドレス(10.0.0.1)宛に送信する。
【００８５】
ステップT280：ファイアウォール装置100において、サーバ側送受信部70はフレーム706を受信し、クライアント側送受信部10に渡す。
【００８６】
ステップT290：クライアント側送受信部10は、フレーム706をクライアント200_1に転送する。
【００８７】
ステップT300：クライアント200_1は上記フレーム706を受信し、処理結果をサイト管理者に対して表示する。
【００８８】
すなわち、スクリプト<script>alert(‘test’)</script>が実行される。
【００８９】
処理パターン(b)
実施例(1)における処理パターン(b)、すなわち、クライアント(サイト管理者)200_1がサーバ300にスクリプト(攻撃パターン)を含むデータをアップロードる場合であって、“フィルタ処理実施希望”を選択した場合を説明する。
【００９０】
図９は、処理パターン(b)のフレームの流れを示している。同図、図３、及び図５を参照して処理パターン(b)の動作手順を以下に説明する。
【００９１】
なお、図９のステップT100〜T210までは、図６に示した処理パターン(a)のステップT100〜T210と同様の動作手順であるため説明を省略する。
【００９２】
ステップT400：クライアント200_1はフレーム704(選択要求804)を受信する。サイト管理者は、フレーム704の入力フォームの“select領域”にフィルタ処理として“フィルタ処理実施希望(select=0)”を選択入力したものとする。クライアント200_1は、この選択入力を含むHTTPのGETリクエスト例：GEThttp://www.test.com/selected.cgi? submit=ok&select=0 HTTP/1.0\r\n…
すなわち、フレーム705bをサーバ300のIPアドレス(50.0.0.1)宛で送信する。
【００９３】
ステップT410：ファイアウォール装置100において、クライアント側送受信部10は、フレーム705bが選択用のページ“selected.cgi”(フレーム704)に対する応答フレームであることを識別し(図５のステップS100の“Yes”参照。)、フィルタ処理選択部40にフレーム705bを選択応答805として渡す。
【００９４】
ステップT420：フィルタ処理選択部40は、選択応答805(フレーム705b)の“select=0”であることから、“フィルタ処理実施希望”と判断し(ステップS140の“Yes”参照。)、フィルタ処理部60にフレーム703a(フィルタ対象データ802)をフィルタ対象データ802aとして渡す(図３参照。)。
【００９５】
ステップT430：フィルタ処理部60は、フレーム703a(データ802a)をフィルタ処理したデータ803、すなわち、データ802aの「<script>alert(‘test’)</script>」の部分を「&lt;script&gt;alert(‘test’)&lt;/script&gt;」に変換したデータ803をサーバ側送受信部70に渡す(ステップS150、図３参照。)。
【００９６】
ステップT440：サーバ側送受信部70はデータ803をフレーム703bとしてサーバ300に送信する(ステップS160参照。)。
【００９７】
ステップT450：サーバ300はフレーム703bを受信し、“field領域”に「&lt;script&gt;alert(‘test’)&lt;/script&gt;」が含まれているデータを処理し、処理結果を表示するページを含むフレーム706をクライアント200_1のIPアドレス(10.0.0.1)宛に送信する。
【００９８】
ステップT460：ファイアウォール装置100において、サーバ側送受信部70は、フレーム706を受信し、このフレーム706を受信データ810としてクライアント側送受信部10に渡す。
【００９９】
ステップT470：クライアント側送受信部10は、フレーム706(受信データ810)をクライアント200_1に対して転送する。
【０１００】
ステップT480：クライアント200_1はフレーム706を受信し、処理結果をサイト管理者に対して表示する。すなわち、文字列<script>alert(‘test’)</script>が表示され、スクリプトが実行されなかったことが示される。
【０１０１】
処理パターン(c)
以下に、実施例(1)における処理パターン(c)、すなわち、悪意のあるクライアント200_xがサーバ300にスクリプト(攻撃パターン)を含むデータをアップロードする場合であって、“フィルタ処理非実施希望”を選択した場合を説明する。
【０１０２】
図10は、処理パターン(c)のフレームの流れを示している。同図、図３、及び図５を参照して、実施例(1)における処理パターン(c)の動作手順例を以下に説明する。
【０１０３】
なお、図10のステップT100〜T210までは、クライアント(サイト管理者)200_1が悪意のあるクライアント200_xに変わるだけで図６に示した処理パターン(c)のステップT100〜T210と同様の動作手順であるので説明は省略する。
【０１０４】
ステップT500：悪意のあるクライアント200_xはフレーム704を受信し、このフレーム704(選択要求804)の入力フォームの“select領域”に悪意のあるクライアントがフィルタ処理として、“フィルタ処理非実施希望(select=1)”を選択入力したものとする。クライアント200_xは該選択入力を示すHTTPのGETリクエスト例：GEThttp://www.test.com/selected.cgi? submit=ok&select=1 HTTP/1.0\r\n…）
を含んだフレーム705aをサーバ300のIPアドレス(50.0.0.1)宛で送信する。
【０１０５】
ステップT510：ファイアウォール装置100において、クライアント側送受信部10は、フレーム705aが選択用のページ“selected.cgi”(フレーム704(選択要求804))に対する応答であることを識別し、フィルタ処理選択部40にフレーム705aを選択応答805として渡す(図５のステップS100の“Yes”参照。)。
【０１０６】
ステップT520：フィルタ処理選択部40は、フレーム705aの“select=1”であることから、“フィルタ処理非実施希望”と判断し、認証結果保持部50にクライアント200_xのIPアドレス(20.0.0.1)情報が登録されているか否かを確認する(ステップS140，ステップS170)。
【０１０７】
ステップT530：クライアント200_xはサイト管理者ではなく、認証結果保持部50にクライアント200_xの情報が登録されていないため、フィルタ処理選択部40は、フレーム703aであるフィルタ対象データ802(図３参照。)をフィルタ処理部60に渡す(ステップS180の“No”参照。)。
【０１０８】
ステップT540：フィルタ処理部60はフレーム703a(データ802)の
「<script>alert(‘test’)</script>」の部分を、
「&lt;script&gt;alert(‘test’)&lt;/script&gt;」に変換(フィルタ処理)したデータ803(図３参照。)をサーバ側送受信部70に渡す(ステップS150参照。)。
【０１０９】
ステップT550：サーバ側送受信部70はデータ803をフレーム703bとしてサーバ300に対して送信する。
【０１１０】
ステップT560：サーバ300はフレーム703bを受信し、“field領域”に「&lt;script&gt;alert(‘test’)&lt;/script&gt;」が含まれているデータを処理し、処理結果を表示するページを含むフレーム706をクライアント200_xのIPアドレス(20.0.0.1)宛に送信する。
【０１１１】
ステップT570：ファイアウォール装置100において、サーバ側送受信部70はフレーム706を受信し、このフレーム706を受信データ810としてクライアント側送受信部10に渡す。
【０１１２】
ステップT580：クライアント側送受信部10は、受信データ810をフレーム706としてクライアント200_xに転送する。
【０１１３】
ステップT590：クライアント200_xはフレーム706を受信し、処理結果を悪意のある者に対して表示する。すなわち、文字列<script>alert(‘test’)</script>が表示され、スクリプトは実行されていないことが示される。
【０１１４】
上記の処理パターン(a)〜(c)により、認証結果保持部50に登録されたサイト管理者に対しては「フィルタ処理の実施」及び「フィルタ処理の非実施」両方の処理が可能であるが、登録されていない他のクライアント(例えば、悪意のクライアント)に対してはフィルタ処理を常に実施することが可能となる。
【０１１５】
実施例(2)
図11は、実施例(2)におけるファイアウォール装置100の構成を示している。この構成が、図３に示した実施例(1)の構成と異なる点は、実施例(1)のフィルタ選択要求部30の代わりにフィルタ選択要求部31が挿入されていることである。このフィルタ選択要求部31の機能を以下に示す。
【０１１６】
(3)フィルタ選択要求部31：認証結果保持部50に対してフィルタ対象データ802の送信元のクライアント200の認証を行い、クライアント200が認証済みである場合のみ、受信したフレームの送信元アドレス(クライアント200のアドレス)に対して、“フィルタ処理実施希望/非実施希望”の選択要求804を送信する。クライアント200が認証済みでない場合、受信フレーム(フィルタ対象データ802)をフィルタ処理部60に直接送る。
【０１１７】
処理パターン(a)
以下に、実施例(2)における処理パターン(a)、すなわち、クライアント(サイト管理者)200_1がサーバ300にスクリプト(攻撃パターン)を含むデータをアップロードする場合であって、“フィルタ処理非実施希望”を選択する場合を説明する。
【０１１８】
図12は、実施例(2)における動作手順例を示しており、この動作手順例の内のステップS200〜ステップS280は、図５に示した実施例(1)の動作手順例のステップS100〜S180と同じであるが、実施例(2)が実施例(1)と異なる点は、ステップS220とステップS230との間、並びにステップS220とステップS260との間にステップS300及びステップS310が挿入されていることである。
【０１１９】
実施例(2)における処理パターン(a)の動作手順例を図11及び図12を参照して以下に説明する。
【０１２０】
この処理パターン(a)は、図６に示した実施例(1)の処理パターン(a)のステップT200が次のステップT600及びT610(共に図示せず。)に置き換わったものと同じである。
【０１２１】
ステップT600：フィルタ選択要求部30は、認証結果保持部50にフレーム703a(データ802)の送信元であるクライアント(10.0.0.1)200_1の情報が登録されているか否かを確認する(図11のクライアント情報806b及び認証結果807b、及び図12のステップS300参照。)。
【０１２２】
ステップT610：クライアント200_1はサイト管理者であり、認証結果保持部50にクライアント200_1のIPアドレス情報(10.0.0.1)が登録されているため(図４参照。)、フィルタ選択要求部30はクライアント200_1に対して、フィルタ選択要求用の入力フォーム“selected.cgi(図８参照。)”を含むフレーム704(選択要求804)をクライアント側送受信部10に渡す(ステップS310の“Yes”，S230参照。)。このときの送信元はサーバ300のIPアドレス(50.0.0.1)に設定し、クライアント200_1からはフレーム703aに含まれる“request.cgi(上述した実施例(1)における処理パターン(a)のステップT170のGETリクエスト参照。)”に対する応答に見えるようにする。さらに、フィルタ選択要求部30は、受信したデータ802をフィルタ処理選択部40に渡す。
【０１２３】
なお、上記のように本装置が直接入力フォーム704を応答する代わりに、一度HTTPのリダイレクトメッセージをクライアント200_1に送信し、クライアント200_1から改めて本装置(40.0.0.1)100に対して入力フォームを取得するように誘導しても構わない。
【０１２４】
なお、この動作手順例の内のステップS200〜ステップS280は、図５に示した実施例(1)の動作手順例のステップS100〜S180と同じであるとしたが、クライアント200がフレーム704(選択応答805＝“フィルタ処理非実施希望”)を選択入力した場合、図12においてステップS200の“Yes”、ステップS240の“No”、ステップS260の順に進み、ステップS270及びステップS280をスキップして、認証結果確認を省略してもよい(同図の破線部参照。)。
【０１２５】
これにより、認証済の送信元装置のみが、フィルタ処理の非実施を選択することが可能になる。すなわち、認証済の送信元装置からの受信データの不必要なフィルタ処理を実施しないことが可能になる。さらに、予め認証を行った送信元装置(例えば、サイト管理者)以外には、フィルタ処理実施希望/非実施希望の選択要求及びその応答である選択応答を送受信する必要がなくなる。この結果、セキュリティもより強固になる。
【０１２６】
処理パターン(c)
以下に、実施例(2)における処理パターン(c)、すなわち、悪意のあるクライアント200_xがサーバ300にスクリプト(攻撃パターン)を含むフレーム703a(受信データ800)をアップロードする場合であって、“フィルタ処理非実施希望”を選択する場合を説明する。
【０１２７】
図13は、実施例(2)の処理パターン(c)におけるフレームの流れを示している。同図、図11、及び図12を参照して、処理パターン(c)の動作手順を以下に説明する。
【０１２８】
この処理パターン(c)は、図10に示した実施例(1)の処理パターン(c)のステップT200，T210，T500〜T530が次のステップT620及びT630に置き換えたものと同じである。
【０１２９】
ステップT620：フィルタ選択要求部30は、認証結果保持部50(図４参照。)にフレーム703aの送信元であるクライアント200_xのIPアドレス(20.0.0.1)情報が登録されているか否かを確認する(図12のステップS300参照。)。
【０１３０】
ステップT630：クライアント200_xはサイト管理者ではなく、認証結果保持部50にクライアント200_xのIPアドレス(20.0.0.1)の情報が登録されていないので、フィルタ選択要求部30はフレーム(フィルタ対象データ802a)703aをフィルタ処理部60に渡す(図12のステップS300，S310の“No”，ステップS250参照。)。
【０１３１】
以後のステップT540〜T590は、図10に示したステップT540〜T590と同様であるので説明を省略する。これにより、サイト管理者のみに“フィルタ処理実施/非実施”の選択フォームが渡され、悪意のあるクライアントがアクセスした場合は“フィルタ処理実施/非実施”の選択要求フォームを送信することなく、常にフィルタ処理が実施されることになる。
【０１３２】
実施例(3)
図14は、実施例(3)におけるファイアウォール装置100の構成を示している。この構成が、図３に示しため実施例(1)の構成と異なる点は、認証処理部80が、クライアント側送受信部10とフィルタ処理選択部40との間に挿入されるともに、認証処理部80が認証結果保持部50に接続されていることである。また、フィルタ選択要求部30が、選択要求804の代わりに、“フィルタ処理実施希望/非実施希望”の選択要求とパスワードを要求する認証要求とを含む実施/非実施希望選択・認証要求808をクライアント側送受信部10に与えることも異なっている。以下に、フィルタ選択要求部30及び認証処理部80の機能を説明する。
【０１３３】
(3)フィルタ選択要求部30：受信フレームの送信元アドレスに対して、選択要求及び認証要求を含む選択・認証要求808を送信する(図14参照。)。
【０１３４】
図15は、実施/非実施希望選択・認証要求808(フレーム708)に含まれる“selected.cgi”の記載例を示している。この選択・認証要求808が、図８に示した選択要求804の“selected.cgi”と異なる点は、“フィルタ処理非実施/実施選択”欄の他に“パスワード入力”欄が追加されていることである。
【０１３５】
(8)認証処理部80：選択・認証要求808の応答フレーム(認証応答809)内のパスワードに基づきクライアント200のパスワード認証を行い、認証結果保持部50に認証結果807aを保存する(図14参照。)。
【０１３６】
図16は、実施例(3)における動作手順例を示している。この動作手順のステップS400〜S420，S440〜S480は、図５に示した実施例(1)の動作手順のステップS100〜S120，S140〜S180と同様であるが、ステップS400とステップS440の間にステップS500〜S530が挿入されていることが異なっている。また、ステップS430において、図８に示したフレーム704(選択要求804)の代わりに、図15に示したフレーム708(選択・認証要求808)を送信することも異なっている。
【０１３７】
処理パターン(a)
実施例(3)における処理パターン(a)、すなわち、クライアント(サイト管理者)200_1がサーバ300にスクリプト(攻撃パターン)を含むデータをアップロードする場合であって、“フィルタ処理非実施希望”を選択する場合を図６、図14、及び図16を参照して説明する。
【０１３８】
実施例(3)の処理パターン(a)では、実施例(1)における処理パターン(a)を示した図６におけるステップT200〜ステップT230が、下記のステップT700〜ステップT740(図示せず。)に置き換えられたものである。
【０１３９】
ステップT700：フィルタ選択要求部30は、受信データ802(フレーム703a)をフィルタ処理選択部40に渡す。さらに、フィルタ選択要求部30は、データ802の送信元であるクライアント200_1のIPアドレス(10.0.0.1)宛に、“フィルタ処理実施希望/非実施希望”の選択要求及びパスワード入力を要求する認証要求の入力フォーム“selected.cgi(図15参照。)”を含む選択・認証要求808(フレーム708)をクライアント側送受信部10に渡す。このときフレーム704の送信元はサーバ300のアドレス(50.0.0.1)に設定し、クライアント200_1には“request.cgi”に対する応答に見えるようにする。
【０１４０】
なお、上記のように本装置が直接入力フォームを応答する代わりに、一度HTTPのリダイレクトメッセージをクライアント200_1に送信し、クライアント200_1から改めて本装置100のIPアドレス(40.0.0.1)に対して入力フォームを取得するように誘導しても構わない。
【０１４１】
ステップT710：クライアント側送受信部10は、フレーム708をクライアント200_1に対して転送する(図16のステップS430参照。)。
【０１４２】
ステップT720：クライアント200_1はフレーム708を受信し、フレーム708の入力フォームを表示する。サイト管理者は、入力フォームの“select領域”で“フィルタ処理非実施希望(select=1)”を選択すると共に、“password領域”にパスワード“pass1”を入力するものとする(図15参照。)。クライアント200_1は上記入力結果をHTTPのGETリクエスト例：GEThttp://www.test.com/selected.cgi?submit=ok&select=1 &password=pass1HTTP/1.0\r\n…）を含むフレーム705aを、サーバ300のIPアドレス(50.0.0.1)に対して送信する。
【０１４３】
ステップT730：クライアント側送受信部10は、上記フレーム705aが選択・認証要求(selected.cgi)808に対する応答であることを識別し、この応答に含まれる選択応答805及び認証応答809を認証処理部80に渡す(ステップS400の“Yes”参照。)。
【０１４４】
ステップT740：認証処理部80は、認証応答809の“password領域”にあるパスワード＝“pass1”を確認し、この場合は“認証可”とする(ステップS500〜S520の“Yes”参照。)。そして、認証処理部80は、クライアント200_1が“認証可”となったことを示す認証結果807aを認証結果保持部50に登録する(ステップS530参照。)。さらに、認証処理部80は、選択応答805をフィルタ処理選択部40に渡す。
【０１４５】
以後の処理は、図６に示した実施例(1)のステップT240〜ステップT300と同様であるので説明を省略する。
【０１４６】
なお、上記のステップT740により認証結果保持部50にクライアント200_1の情報が登録された後は、実施例(1)の処理パターン(a)及び処理パターン(b)の処理順で処理を行うことで、２回目以降のパスワード認証の手間を省くこともできる。
【０１４７】
これにより、特定のフィルタ対象データを含む受信データの受信時のみ認証処理を行い、全てのクライアント200について、フィルタ対象外のデータをアップロードするときは認証処理を省略可能となる。また、予め認証を行う場合と比べて、送信元装置(サイト管理者)は、フィルタ対象データを含むデータを送信するときのみ認証確認を行うため、サイト管理者の入力の手間を省き、利便性が向上する。さらに、例えば、フィルタ対象データをアップロードする場合は、“フィルタ処理実施/非実施”選択時に認証するため、悪意のあるクライアント200_xのフレームは必ずフィルタ処理されることになる。
【０１４８】
実施例(4)
図17は、実施例(4)における本発明のファイアウォール装置100の構成を示している。この構成が、図３に示した実施例(1)の構成と異なる点は、フィルタポリシー保持部90が追加され、この保持部90がフィルタ対象識別部20に接続されていることである。この保持部90の機能を以下に説明する。
【０１４９】
(10)フィルタポリシー保持部90：フィルタ処理の有無を特定のパラメータ毎に設定したデータを保持する。
【０１５０】
図18は、本実施例(4)におけるフィルタポリシー保持部90の構成例を示している。この保持部90は、URL(Uniform Resource Locator、パラメータ)90aとフィルタポリシー90bとで構成されている。URL90aには、“http://www.test.com/request.cgi”、“http://www.test.com/nofilter.cgi”、…が登録され、フィルタポリシー90bには、それぞれ、URL90a＝“http://www.test.com/request.cgi”のアクセス時には、フィルタ処理を「実施する＝“1”」というフィルタポリシーが予め設定され、URL90a＝“http://www.test.com/nofilter.cgi”のアクセス時には、フィルタ処理を「実施しない＝“0”」が予め設定されている。なお、本実施例(4)のフィルタポリシー保持部90では、パラメータとして“URL”を用いたが、例えば、宛先IPアドレスやGET/POSTで指定する変数値等とすることも可能である。
【０１５１】
図19は、実施例(4)の動作手順を示している。この動作手順の内のステップS600〜ステップS680は、図５に示した実施例(1)の動作手順のステップS100〜ステップS180と同様である。実施例(4)の動作手順が、実施例(1)の動作手順と異なる点は、ステップS600とステップS610の間、及びステップS600とステップS660の間に、ステップS700及びステップS710が挿入されていることである。
【０１５２】
処理パターン(a)
実施例(4)における処理パターン(a)、すなわち、クライアント(サイト管理者)200_1がサーバ300にスクリプト(攻撃パターン)を含むデータをアップロードする場合であって、“フィルタ処理非実施希望”を選択する場合を説明する。
【０１５３】
フレーム703aのアクセス先が“http://www.test.com/request.cgi”である場合では、実施例(4)における処理パターン(a)は、図６に示した実施例(1)の処理パターン(a)と同様であるが、異なる点は図６のステップT190を次のステップT800(図示せず。)に変更したものである。
【０１５４】
ステップT800：フィルタ対象識別部20は、受信したフレーム703a(受信データ800)のアクセス先が“URL＝http://www.test.com/request.cgi”であるので、このURLをパラメータ811としてフィルタポリシー保持部90に与える。フィルタポリシー保持部90は、URL90a＝“http://www.test.com/request.cgi”に対応するフィルタポリシー90b＝「フィルタ処理実施する＝“1”」をフィルタポリシー812に含めてフィルタ対象識別部20に応答する(図19のステップS700及び図17参照。)。フィルタ対象識別部20は、「フィルタ処理実施する＝“1”」、且つフレーム703aの内容が“<script>”を含む“GETリクエスト”であるため、受信データ800をフィルタ対象データ802としてフィルタ選択要求部30に渡す(ステップS710の“Yes”，ステップS610，ステップS620の“Yes”参照。)。
【０１５５】
このステップT800以降の処理は実施例(1)のステップT200〜ステップT300と同様であるので説明を省略する。
【０１５６】
フレーム703aが“http://www.test.com/nofilter.cgi”に対する通信の場合
図20は、実施例(4)の処理パターン(a)において、フレーム703aが“http://www.test.com/nofilter.cgi”に対する通信の場合を示している。この実施例(4)の処理パターン(a)は、図６に示した実施例(1)の処理パターン(a)のステップT170以降を次のステップT900〜ステップT970に変更したものになる。
【０１５７】
ステップT900：クライアント(サイト管理者)200_1はフレーム702aを受信し、“form.htm”の“field領域”にサイト管理者がスクリプトを含むデータを書き込むことにより、HTTPのGETリクエスト例：GEThttp://www.test.com/nofiletr.cgi?field=<script>alert(‘test’)</script>HTTP/1.0\r\n…)を含むフレーム703aを、サーバ300のIPアドレス(50.0.0.1)宛に送信する。
【０１５８】
ステップT910：ファイアウォール装置100において、クライアント側送受信部10は、フレーム703aを受信し、このフレーム703aを受信データ800としてフィルタ対象識別部20に渡す。
【０１５９】
ステップT920：フィルタ対象識別部20は、フィルタポリシー保持部90のエントリを確認し、データ(フレーム703a)800のアクセス先のURL90a＝http://www.test.com/nofilter.cgiに対応するフィルタポリシー90b＝「フィルタ処理非実施＝“0”」であることから、受信データ800(フレーム703a)をフィルタ非対象データ801(フレーム703a)としてサーバ側送受信部70に渡す(図19のステップS700，S710の“No”参照)。
【０１６０】
ステップT930：サーバ側送受信部70はフレーム703a(フィルタ非対象データ801)をサーバ300に送信する(ステップS660参照)。
【０１６１】
ステップT940：サーバ300はフレーム703aを受信し、“field領域”に「<script>alert(‘test’)</script>」が含まれているデータを処理し、処理結果を表示するページを含むフレーム706をクライアント200_1のIPアドレス(10.0.0.1)宛で送信する。
【０１６２】
ステップT950：ファイアウォール装置100において、サーバ側送受信部70はフレーム706を受信し、このフレーム(受信データ810)706をクライアント側送受信部10に渡す。
【０１６３】
ステップT960：クライアント側送受信部10は、フレーム706をクライアント200_1に転送する。
【０１６４】
ステップT970：クライアント200_1は上記フレーム706を受信し、処理結果をサイト管理者に対して表示する。すなわち、スクリプト<script>alert(‘test’)</script>が実行された。
【０１６５】
これにより、フィルタポリシー保持部90を参照して、フレーム(受信データ)703aのフィルタの実施/非実施を、フレーム703aに含まれるURLに基づき識別することが可能になる。すなわち、特定のサイト/入力フィールドに対してフィルタ処理の実施/非実施を指定することが可能になる。
【０１６６】
なお、上記実施例によって本発明は限定されるものではなく、特許請求の範囲に記載に基づき、当業者によって種々の変更が可能なことは明らかである。
【０１６７】
（付記１）
受信データにフィルタ対象データが含まれているか否かを識別するフィルタ対象識別部と、
該受信データにフィルタ対象データが含まれているとき、該受信データの送信元装置に、該受信データのフィルタ処理の実施希望又は非実施希望の選択要求を送信し、該選択要求に対する選択応答がフィルタ処理の非実施希望を示し且つ該送信元装置が認証されている条件では、該送信元装置からの該受信データのフィルタ処理実施を選択せず、該条件以外では、該受信データのフィルタ処理実施を選択するフィルタ処理実施/非実施選択部と、
該選択された受信データに含まれるフィルタ対象データをフィルタ処理するフィルタ処理部と、
を備えたことを特徴とするファイアウォール装置。
（付記２）上記の付記１において、
該フィルタ処理実施/非実施選択部が、認証結果保持部、フィルタ選択要求部、及びフィルタ処理選択部で構成され、
該認証結果保持部が該送信元装置の認証結果を保持し、
該フィルタ選択要求部が、該受信データの送信元装置に、該受信データのフィルタ処理の実施希望又は非実施希望の選択要求を送信し、
該フィルタ処理選択部が、該選択要求に対する選択応答がフィルタ処理の非実施希望を示し且つ該送信元装置が該認証結果において認証されている条件では、該送信元装置からの該フィルタ対象データを含む受信データのフィルタ処理実施を選択せず、該条件以外では、該フィルタ対象データを含む他の受信データのみのフィルタ処理実施を選択するファイアウォール装置。
（付記３）上記の付記１において、
該フィルタ処理実施/非実施選択部が、認証結果保持部、フィルタ選択要求部、及びフィルタ処理選択部で構成され、
該認証結果保持部が該送信元装置の認証結果を保持し、
該フィルタ選択要求部は、該送信元装置が該認証結果において認証されていないときには、該受信データのフィルタ処理実施を選択し、該認証結果において認証されている送信元装置には、該選択要求を送信し、
該フィルタ処理選択部は、該選択要求に対する選択応答がフィルタ処理の非実施希望を示す条件では、該認証されている送信元装置からの該受信データのフィルタ処理実施を選択せず、該条件以外では、フィルタ対象データを含む他の受信データのフィルタ処理実施を選択することを特徴としたファイアウォール装置。
（付記４）上記の付記１において、
認証処理部をさらに備え、
該フィルタ選択要求部が、該送信元装置に認証要求をさらに送信し、
該認証処理部は、該認証要求に対する認証応答に基づき該送信元装置の認証処理を行い、この認証結果を該認証結果保持部に登録することを特徴としたファイアウォール装置。
（付記５）上記の付記１において、
該受信データに含まれるパラメータに対応付けて該受信データのフィルタ処理の実施/非実施を決定するフィルタポリシーを保持するフィルタポリシー保持部をさらに備え、
該フィルタ対象識別部は、該フィルタポリシーが該フィルタ処理の実施を決定している時のみ該受信データを該フィルタ処理実施/非実施選択部に与えることを特徴としたファイアウォール装置。
（付記６）上記の付記１において、
該フィルタ処理が、該フィルタ対象データの無害化処理、又は該受信データの廃棄処理であることを特徴としたファイアウォール装置。
（付記７）上記の付記１において、
該フィルタ対象データが、該フィルタ対象識別部に予め設定されていることを特徴としたファイアウォール装置。
（付記８）上記の付記４において、
該フィルタ選択要求部が、該送信元装置に該認証要求を該選択要求と同時に送信することを特徴としたファイアウォール装置。
（付記９）上記の付記５において、
該パラメータが、該受信データの宛先アドレス、URL、或いはGET又はPOSTで指定する変数値であり、これらのパラメータに基づき該フィルタポリシーが決定されることを特徴としたファイアウォール装置。
【図面の簡単な説明】
【０１６８】
【図１】本発明に係るファイアウォール装置の原理を示した図である。
【図２】本発明に係るファイアウォール装置の実施例(1)〜(4)におけるネットワークの構成例を示したブロック図である。
【図３】本発明に係るファイアウォール装置の実施例(1)による構成を示したブロック図である。
【図４】本発明に係るファイアウォール装置における認証結果保持部の構成を示した図である。
【図５】本発明に係るファイアウォール装置の実施例(1)における動作手順例を示したフローチャート図である。
【図６】本発明に係るファイアウォール装置の実施例(1)の処理パターン(a)におけるフレームの流れを示した図である。
【図７】本発明に係るファイアウォール装置の実施例(1)〜(4)におけるフレーム702a(form.htm)の記載例を示した図である。
【図８】本発明に係るファイアウォール装置の実施例(1)、(2)、(4)におけるフレーム704(selected.cgi)の記載例を示した図である。
【図９】本発明に係るファイアウォール装置の実施例(1)の処理パターン(b)におけるフレームの流れを示した図である。
【図１０】本発明に係るファイアウォール装置の実施例(1)の処理パターン(c)におけるフレームの流れを示した図である。
【図１１】本発明に係るファイアウォール装置の実施例(2)による構成を示したブロック図である。
【図１２】本発明に係るファイアウォール装置の実施例(2)における動作手順例を示したフローチャート図である。
【図１３】本発明に係るファイアウォール装置の実施例(2)の処理パターン(c)におけるフレームの流れを示した図である。
【図１４】本発明に係るファイアウォール装置の実施例(3)による構成を示したブロック図である。
【図１５】本発明に係るファイアウォール装置の実施例(3)におけるフレーム704(selected.cgi)の記載例を示した図である。
【図１６】本発明に係るファイアウォール装置の実施例(3)における動作手順例を示したフローチャート図である。
【図１７】本発明に係るファイアウォール装置の実施例(4)による構成を示したブロック図である。
【図１８】本発明に係るファイアウォール装置におけるフィルタポリシー保持部の構成例を示した図である。
【図１９】本発明に係るファイアウォール装置の実施例(4)における動作手順例を示したフローチャート図である。
【図２０】本発明に係るファイアウォール装置の実施例(4)の処理パターン(a)におけるnofilter.cgiに対するフレームの流れを示した図である。
【図２１】従来のファイアウォール装置を含む一般的なネットワーク構成例を示したブロック図である。
【図２２】従来のファイアウォール装置の構成を示したブロック図である。
【図２３】一般的なファイアウォール装置におけるフィルタ処理を示したブロック図である。
【図２４】従来のファイアウォール装置の動作手順を示したフローチャート図である。
【符号の説明】
【０１６９】
100，100x  ファイアウォール装置，WAF   10，10x  クライアント側送受信部
20，20x  フィルタ対象識別部            30，31  フィルタ選択要求部
40  フィルタ処理選択部                 50  認証結果保持部
60，60x  フィルタ処理部                70，70x  サーバ側送受信部
80  認証処理部                         90  フィルタポリシー保持部
90a  パラメータ(URL)                   90b  フィルタポリシー
95  フィルタ処理実施/非実施選択部
200，200_2〜4，200_x  クライアント     200_1  クライアント(サイト管理者)
200_x  悪意のあるクライアント
300  サーバ                            310  サイト
301，301_1〜301_n  コンテンツ          400  インターネット/イントラネット
700a〜700c，701，702a，702b，703a，703b，706，710a，710b  フレーム
704  実施/非実施希望選択要求フレーム
708  実施/非実施希望選択・認証要求フレーム
705，705a，705b  選択応答フレーム      800，810  受信データ
801，802b  フィルタ非対象データ        802，802a  フィルタ対象データ
803  データ
804  実施/非実施希望選択要求           805  選択応答
806a，806b  クライアント情報           807a，807b  認証結果
808  実施/非実施希望選択・認証要求     809  認証応答
811  パラメータ(URL)                   812  フィルタポリシー
図中、同一符号は同一又は相当部分を示す。
【図１】
0004545085.tif 000002
【図２】
0004545085.tif 000003
【図３】
0004545085.tif 000004
【図４】
0004545085.tif 000005
【図５】
0004545085.tif 000006
【図６】
0004545085.tif 000007
【図７】
0004545085.tif 000008
【図８】
0004545085.tif 000009
【図９】
0004545085.tif 000010
【図１０】
0004545085.tif 000011
【図１１】
0004545085.tif 000012
【図１２】
0004545085.tif 000013
【図１３】
0004545085.tif 000014
【図１４】
0004545085.tif 000015
【図１５】
0004545085.tif 000016
【図１６】
0004545085.tif 000017
【図１７】
0004545085.tif 000018
【図１８】
0004545085.tif 000019
【図１９】
0004545085.tif 000020
【図２０】
0004545085.tif 000021
【図２１】
0004545085.tif 000022
【図２２】
0004545085.tif 000023
【図２３】
0004545085.tif 000024
【図２４】
0004545085.tif 000025