(57)【特許請求の範囲】
【請求項１】
コンピュータが、
悪質な資源情報の格納先を示すＵＲＬである悪性ＵＲＬから、当該悪性ＵＲＬの中で変更されることが推定される文字列以外の文字列から構成される部分ＵＲＬを生成し、当該生成した部分ＵＲＬを部分ＵＲＬ記憶部に格納する部分ＵＲＬ生成ステップと、
前記部分ＵＲＬ記憶部に格納された前記部分ＵＲＬを包含するＵＲＬを悪性ＵＲＬとしてＵＲＬフィルタリングを行なうフィルタリングステップと、
悪性ＵＲＬが含まれるＵＲＬの集合を収集してＵＲＬ記憶部に格納する格納ステップと、
情報資源を格納するホストが所属する所属ドメイン空間を示すＵＲＬのホスト部において当該ホストが当該所属ドメイン空間にて位置する特定のドメイン空間を示すドメイン名を根ノードとし、当該ドメイン名以外のホスト部の文字列をホスト部に固有の区切り文字により区切った文字列をノードとして、当該文字列の後方から前方に向かった順に、前記根ノードに対する子ノード、当該子ノードに対する子ノード、として順次連結し、更に、前記ホスト内で前記情報資源が配置される位置を示すＵＲＬのパス部をパス部に固有の区切り文字により区切った文字列をノードとして、当該文字列の前方から後方に向かった順に、前記ホスト部に由来する子ノードの中で末端に位置するノードに対する子ノード、当該子ノードに対する子ノード、として順次連結する連結順序を用いることで当該ＵＲＬを木構造に変換する処理を、前記ＵＲＬ記憶部に格納された各ＵＲＬに対して実行し、各ＵＲＬから変換した木構造を共通するノードに基づいて統合する変換ステップと、
を含み、
前記部分ＵＲＬ生成ステップは、前記変換ステップにより統合された木構造において、悪性ＵＲＬの末端ノードの根ノードである前記ドメイン名の文字列のノードから当該末端ノードの親ノードまでを前記連結順序に準じてＵＲＬとして復元することで前記部分ＵＲＬを生成し、当該生成した部分ＵＲＬの中で未格納の部分ＵＲＬを前記部分ＵＲＬ記憶部に格納することを特徴とするフィルタリング方法。
【請求項２】
前記部分ＵＲＬ生成ステップは、悪性ＵＲＬの末端ノードの親ノードを前記部分ＵＲＬの生成に用いられる末端ノードの候補ノードと設定し、当該設定した候補ノードの親ノードの全子ノード数に対する候補ノード数の割合に応じて、当該親ノードを候補ノードとして新たに設定し、更に、当該新たに設定した候補ノードの親ノードの全子ノード数に対する候補ノード数の割合に応じて、当該親ノードを候補ノードとして新たに設定する設定処理を前記変換ステップにより統合された木構造の各根ノードについて実行した後、当該木構造の各根ノードを起点とする経路それぞれにおいて最上位に位置する候補ノードを特定し、当該特定した候補ノードを末端ノードとして前記部分ＵＲＬを生成することを特徴とする請求項１に記載のフィルタリング方法。
【請求項３】
悪質な資源情報の格納先を示すＵＲＬである悪性ＵＲＬから、当該悪性ＵＲＬの中で変更されることが推定される文字列以外の文字列から構成される部分ＵＲＬを生成し、当該生成した部分ＵＲＬを部分ＵＲＬ記憶部に格納する部分ＵＲＬ生成手段と、
前記部分ＵＲＬ記憶部に格納された前記部分ＵＲＬを包含するＵＲＬを悪性ＵＲＬとしてＵＲＬフィルタリングを行なうフィルタリング手段と、
悪性ＵＲＬが含まれるＵＲＬの集合を収集してＵＲＬ記憶部に格納するＵＲＬ収集手段と、
情報資源を格納するホストが所属する所属ドメイン空間を示すＵＲＬのホスト部において当該ホストが当該所属ドメイン空間にて位置する特定のドメイン空間を示すドメイン名を根ノードとし、当該ドメイン名以外のホスト部の文字列をホスト部に固有の区切り文字により区切った文字列をノードとして、当該文字列の後方から前方に向かった順に、前記根ノードに対する子ノード、当該子ノードに対する子ノード、として順次連結し、更に、前記ホスト内で前記情報資源が配置される位置を示すＵＲＬのパス部をパス部に固有の区切り文字により区切った文字列をノードとして、当該文字列の前方から後方に向かった順に、前記ホスト部に由来する子ノードの中で末端に位置するノードに対する子ノード、当該子ノードに対する子ノード、として順次連結する連結順序を用いることで当該ＵＲＬを木構造に変換する処理を、前記ＵＲＬ記憶部に格納された各ＵＲＬに対して実行し、各ＵＲＬから変換した木構造を共通するノードに基づいて統合する変換手段と、
を含み、
前記部分ＵＲＬ生成手段は、前記変換手段により統合された木構造において、悪性ＵＲＬの末端ノードの根ノードである前記ドメイン名の文字列のノードから当該末端ノードの親ノードまでを前記連結順序に準じてＵＲＬとして復元することで前記部分ＵＲＬを生成し、当該生成した部分ＵＲＬの中で未格納の部分ＵＲＬを前記部分ＵＲＬ記憶部に格納することを特徴とするフィルタリングシステム。
【請求項４】
請求項１または請求項２に記載のフィルタリング方法をコンピュータに実行させることを特徴とするフィルタリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、フィルタリング方法、フィルタリングシステム及びフィルタリングプログラムに関する。
【背景技術】
【０００２】
ＷＷＷ（World  Wide  Web）に存在する多数のＷｅｂサイトの中には、悪質なＷｅｂサイトや悪質なＷｅｂコンテンツが存在することが知られている。そこで、従来、悪質なＷｅｂサイトや悪質なＷｅｂコンテンツからＷＷＷを利用するユーザを保護するために、フィルタリングが実施されている。
【０００３】
フィルタリングは、悪質なＷｅｂサイトや悪質なＷｅｂコンテンツをリスト化したブラックリストを利用することで行なわれる。ブラックリストに含まれる悪質なＷｅｂサイトや悪質なＷｅｂコンテンツに対する通信は、ＤＮＳ（Domain  Name  System）サーバやＷｅｂプロキシサーバなどのネットワーク装置でフィルタリングされる。
【０００４】
また、ブラックリストによるフィルタリングには、ＤＮＳ、統一資源位置指定子（ＵＲＬ：Uniform  Resource  Locator）、ＩＰ（Internet  Protocol）アドレスそれぞれを対象としたＤＳＮフィルタリング、ＵＲＬフィルタリング、ＩＰフィルタリングなどがある。ＤＳＮフィルタリングは、通信先ドメインに基づいてフィルタリングを行う。また、ＵＲＬフィルタリングは、ＨＴＴＰ（HyperText  Transfer  Protocol）のリクエストＵＲＬに基づいてフィルタリングを行うものである。また、ＩＰフィルタリングは、通信先ホストのＩＰアドレスに基づいてフィルタリングを行うものである。
【０００５】
フィルタリングに用いられるブラックリストは、アンチウィルスベンダ、セキュリティＳＩ（System  Integration）事業者、通信事業組織などの営利組織や、大学などの非営利組織など様々な組織によって独自の観点で作成及び運用されている。ブラックリストの利用形態は、クライアント端末上での利用形態とネットワーク装置上での利用形態とに分けられる。
【０００６】
クライアント端末上でのブラックリストの利用形態には、クライアント端末に搭載されたＷｅｂブラウザ上でフィルタリングを実施する形態や、クライアント端末にブラックリストをｈｏｓｔｓファイルとして提供することでフィルタリングを実施する形態がある。
【０００７】
また、ネットワーク装置上でのブラックリストの利用形態には、ブラックリストをＤＮＳＢＬ（DNS-based  Blackhole  List）として利用する形態や、セキュリティアプライアンス装置などでフィルタリングを実施する形態などがある。さらに、ブラックリストの利用形態には、Ｇｏｏｇｌｅ（登録商標）のＳＢ（Safe  Browsing）サービス（登録商標）のように、アプリケーションサービス上で適用される形態や、Ｗｅｂサイトの検索エンジンによる検索結果に活用される形態などがある。例えば、検索エンジンには、ブラックリストを参照することで、検索結果に悪質なＷｅｂサイトが含まれる場合、警告を表示する仕様になっているものがある。
【０００８】
このように、ブラックリストは、フィルタリングを支える重要な情報原であり、悪質なＷｅｂサイトや悪質なＷｅｂコンテンツに対する対策の効果は、ブラックリストの品質に依存する。ここで、Ｗｅｂを対象としてフィルタリングを行なう場合、Ｗｅｂコンテンツを単位とするＵＲＬフィルタリングが適している。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】“DOMAIN  NAMES  -  IMPLEMENTATION  AND  SPECIFICATION”、1987、［online］、［平成２２年１０月８日検索］、インターネット＜http://www.ietf.org/rfc/rfc1035.txt＞
【非特許文献２】“Uniform  Resource  Locators  (URL)  ”、1994、[online]、[平成２２年１０年８日検索]、インターネット＜http://www.ietf.org/rfc/rfc1738.txt＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、ＵＲＬフィルタリングに用いられるブラックリストのＵＲＬに存在するＷｅｂサイトやＷｅｂコンテンツは、時間経過と共に消失する場合がある。また、悪質なＷｅｂサイトや悪質なＷｅｂコンテンツが新規に生成された場合、ブラックリストは、新規の情報が追加される必要がある。すなわち、ＵＲＬフィルタリングに用いられるブラックリストは、常に維持管理をする必要がある。ブラックリストの維持管理を行なう際には、新規に生成された悪質なＷｅｂサイトや悪質なＷｅｂコンテンツをＷｅｂ空間から検出して、検出した情報を追加する必要があるが、Ｗｅｂ空間は、数百億ページ存在すると言われており、また、Ｗｅｂコンテンツは、日々、更新され続けているため、ブラックリストの維持管理コストは、膨大となる。
【００１１】
また、攻撃者は、ＵＲＬを部分的に変更することで、ブラックリストを用いた完全一致のフィルタリングを回避する事ができる。例えば、攻撃者は、新規ドメインの取得によるＵＲＬのホスト名の部分変更や、ＵＲＬのパス名やサブドメイン名の部分変更を行なうことができる。ここで、攻撃者にとっては、新規ドメインを確保するよりは、新たなパス名やサブドメイン名を生成する方がコストを低減できる。このため、攻撃者は、ＵＲＬのパス名やサブドメイン名の部分変更により、フィルタリングを回避することが多いと考えられる。例えば、攻撃者が悪質なＷｅｂサイトや悪質なＷｅｂコンテンツのＵＲＬのドメイン管理者である場合、該当するドメインに対する任意のサブドメイン名を生成する事ことができる。また、攻撃者がサイトの管理権限を持つ場合、攻撃者は、悪性コンテンツの再配置によりＵＲＬのパス名を任意に変更できる。
【００１２】
すなわち、従来のＵＲＬフィルタリングは、ブラックリストの維持管理コストがかかるうえに、ブラックリストに登録されているＵＲＬとの完全一致により行なわれているため、ＵＲＬを部分的に変更することで行なわれる攻撃を簡易かつ確実に防御することができなかった。
【００１３】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、ＵＲＬを部分的に変更することで行なわれる攻撃を簡易かつ確実に防御することが可能となるフィルタリング方法、フィルタリングシステム及びフィルタリングプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するために、本願の開示するフィルタリング方法は、コンピュータが、悪質な資源情報の格納先を示すＵＲＬである悪性ＵＲＬから、当該悪性ＵＲＬの中で変更されることが推定される文字列以外の文字列から構成される部分ＵＲＬを生成し、当該生成した部分ＵＲＬを部分ＵＲＬ記憶部に格納する部分ＵＲＬ生成ステップと、前記部分ＵＲＬ記憶部に格納された前記部分ＵＲＬを包含するＵＲＬを悪性ＵＲＬとしてＵＲＬフィルタリングを行なうフィルタリングステップと、を含んだことを特徴とする。
【００１５】
また、本願の開示するフィルタリングシステムは、悪質な資源情報の格納先を示すＵＲＬである悪性ＵＲＬから、当該悪性ＵＲＬの中で変更されることが推定される文字列以外の文字列から構成される部分ＵＲＬを生成し、当該生成した部分ＵＲＬを部分ＵＲＬ記憶部に格納する部分ＵＲＬ生成手段と、前記部分ＵＲＬ記憶部に格納された前記部分ＵＲＬを包含するＵＲＬを悪性ＵＲＬとしてＵＲＬフィルタリングを行なうフィルタリング手段と、を備えたことを特徴とする。
【００１６】
また、本願の開示するフィルタリングプログラムは、上記のフィルタリング方法をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１７】
本願の開示するフィルタリング方法、フィルタリングシステム及びフィルタリングプログラムによれば、ＵＲＬを部分的に変更することで行なわれる攻撃を簡易かつ確実に防御することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】図１は、実施例１に係るフィルタリングシステムの構成例を説明するための図である。
【図２】図２は、実施例１に係るフィルタリング装置の構成例を説明するための図である。
【図３】図３は、ＵＲＬ記憶部が記憶するＵＲＬの一例を説明するための図である。
【図４】図４は、変換部が行なう木構造変換処理の一例を説明するための図（１）である。
【図５】図５は、変換部が行なう木構造変換処理を説明するための図（２）である。
【図６】図６は、変換部が行なう木構造変換処理を説明するための図（３）である。
【図７】図７は、変換部が行なう木構造変換処理を説明するための図（４）である。
【図８】図８は、変換部が行なう木構造の統合処理を説明するための図である。
【図９】図９は、部分ＵＲＬ生成部が行なう木構造からＵＲＬへの復元処理を説明するための図（１）である。
【図１０】図１０は、部分ＵＲＬ生成部が行なう木構造からＵＲＬへの復元処理を説明するための図（２）である。
【図１１】図１１は、実施例１に係る部分ＵＲＬ生成部により生成される部分ＵＲＬの一例を説明するための図である。
【図１２】図１２は、実施例１に係るフィルタリング装置の部分ＵＲＬ生成処理を説明するためのフローチャートである。
【図１３】図１３は、実施例１に係るフィルタリング装置のフィルタリング処理を説明するためのフローチャートである。
【図１４】図１４は、実施例２に係る部分ＵＲＬ生成部の部分ＵＲＬ生成処理を説明するための図（１）である。
【図１５】図１５は、実施例２に係る部分ＵＲＬ生成部の部分ＵＲＬ生成処理を説明するための図（２）である。
【図１６】図１６は、実施例２に係る部分ＵＲＬ生成部の部分ＵＲＬ生成処理を説明するための図（３）である。
【図１７】図１７は、実施例２に係る部分ＵＲＬ生成部の部分ＵＲＬ生成処理を説明するための図（４）である。
【図１８】図１８は、実施例２に係る部分ＵＲＬ生成部による候補ノード設定処理の変形例を説明するための図である。
【図１９】図１９は、実施例２に係るフィルタリング装置の部分ＵＲＬ生成処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本願の開示するフィルタリング方法、フィルタリングシステム及びフィルタリングプログラムの実施例を詳細に説明する。以下では、本願の開示するフィルタリング方法を実行するフィルタリング装置が組み込まれたフィルタリングシステムを実施例として説明する。なお、以下の実施例により本発明が限定されるものではない。
【実施例１】
【００２０】
まず、実施例１に係るフィルタリングシステムについて、図１を参照して説明する。図１は、実施例１に係るフィルタリングシステムの構成例を説明するための図である。
【００２１】
図１に示すように、実施例１におけるフィルタリングシステムは、ユーザ端末２と、プロキシサーバ１と、ウェブサーバ群３とを有し、ユーザ端末２と、プロキシサーバ１と、ウェブサーバ群３とは、インターネットなどの通信ネットワークを介してそれぞれ接続されている。なお、図１に示すフィルタリングシステムにおいては、ユーザ端末２が１台のみ示されているが、実際には、複数のユーザ端末がプロキシサーバ１を介してウェブサーバ群３と接続されている。
【００２２】
ユーザ端末２は、例えば、パーソナルコンピュータやワークステーション、家庭用ゲーム機、インターネットＴＶや、ＰＤＡ（Personal  Digital  Assistants）、携帯電話、ＰＨＳ（Personal  Handyphone  System）など、ユーザが利用する端末装置である。また、ユーザ端末２は、Ｗｅｂブラウザが組み込まれている。Ｗｅｂブラウザは、プロキシサーバ１を介してウェブサーバ群３に対しＷｅｂサイトやＷｅｂコンテンツなどの資源情報の閲覧要求を送信したり、閲覧要求に応じてウェブサーバ群３が送信した資源情報を、ユーザ端末２のモニタに表示させたりする。
【００２３】
すなわち、ユーザ端末２は、ユーザがＷｅｂブラウザを起動させて統一資源位置指定子（ＵＲＬ：Uniform  Resource  Locator）を入力した場合、当該ＵＲＬで指定される格納先に格納されている資源情報（Ｗｅｂコンテンツ）の閲覧要求をプロキシサーバ１に対し送信する。プロキシサーバ１は、ウェブサーバ群３の中で、ユーザが入力したＵＲＬにて指定したウェブサーバに対して資源情報の閲覧要求を送信し、資源情報の閲覧要求を受信したウェブサーバは、該当する情報資源のデータを、プロキシサーバ１を介してユーザ端末２に送信する。
【００２４】
プロキシサーバ１は、ユーザ端末２とウェブサーバ群３との間に設置されるネットワーク装置であり、ネットワーク網に出入りするアクセスの一元管理を行なう。例えば、プロキシサーバ１は、ユーザ端末２から送信されたＵＲＬを受信し、当該ＵＲＬにて指定される位置にあるウェブサーバに対して資源情報を要求する。そして、プロキシサーバ１は、ウェブサーバから送信された資源情報をユーザ端末２に送信する。また、プロキシサーバ１は、外部ネットワークからユーザ端末２への不正なアクセスを遮断したり、ユーザ端末２から特定の外部ネットワークへの接続のみを許可したりする。
【００２５】
そして、プロキシサーバ１は、図１に示すフィルタリング装置１０により、ＵＲＬフィルタリングを行なう。ここで、従来のＵＲＬフィルタリングでは、悪質な資源情報の格納先を示すＵＲＬである悪性ＵＲＬの集合（リスト）をブラックリストとして登録しておき、ユーザ端末２から送信されたＵＲＬがブラックリストに登録されている悪性ＵＲＬのいずれかと完全一致している場合、当該ＵＲＬによるアクセスを不許可としていた。
【００２６】
しかし、攻撃者は、例えば、ＵＲＬのパス名やサブドメイン名の部分変更を行なうことで、悪性ＵＲＬを部分的に変更することができる。悪性ＵＲＬが部分的に変更された場合、プロキシサーバ１は、完全一致を条件とする限り、ＵＲＬフィルタリングを行なうことができない。
【００２７】
そこで、図１に示すフィルタリング装置１０は、ＵＲＬを部分的に変更することで行なわれる攻撃を簡易かつ確実に防御するため、以下の処理を行なう。すなわち、実施例１に係るフィルタリング装置１０は、悪性ＵＲＬの中で変更されることが推定される文字列以外の文字列から構成される部分ＵＲＬを生成し、当該生成した部分ＵＲＬを部分ＵＲＬ記憶部に格納する。そして、フィルタリング装置１０は、部分ＵＲＬ記憶部に格納された部分ＵＲＬを包含するＵＲＬを悪性ＵＲＬとしてＵＲＬフィルタリングを行なう。
【００２８】
具体的には、上述した処理を行なうため、実施例１に係るフィルタリング装置１０は、図２に示すように、構成される。図２は、実施例１に係るフィルタリング装置の構成例を説明するための図である。
【００２９】
図２に示すように、実施例１に係るフィルタリング装置１０は、ＵＲＬ収集部１１と、ＵＲＬ記憶部１２と、変換部１３と、木構造記憶部１４と、部分ＵＲＬ生成部１５と、ＵＲＬ記憶部１６と、フィルタリング部１７とを有する。
【００３０】
ＵＲＬ収集部１１は、悪性ＵＲＬが含まれるＵＲＬの集合（リスト）を収集し、収集したＵＲＬのリストをＵＲＬ記憶部１２に格納する。
【００３１】
悪性ＵＲＬのリストのみを収集する場合、ＵＲＬ収集部１１は、例えば、悪性ＵＲＬのリスト作成を行なっている組織がＷｅｂ上で公開している悪性ＵＲＬのリストを収集する。悪性ＵＲＬの作成を行なっている組織としては、アンチウィルスベンダ、セキュリティＳＩ（System  Integration）事業者、通信事業組織などの営利組織や、大学などの非営利組織などが挙げられる。
【００３２】
また、悪性ＵＲＬと悪性でないＵＲＬとが混合されたリストを収集する場合、ＵＲＬ収集部１１は、悪性ＵＲＬのリストを収集する他に、例えば、自装置をハニーポットとして、以下に説明する処理を行なう。すなわち、ＵＲＬ収集部１１は、Ｗｅｂブラウザとして故意に種々のサイトにアクセスし、攻撃を受けたアクセス先のサイトのＵＲＬを悪性サイトとして収集する。例えば、ＵＲＬ収集部１１は、受信したＷｅｂコンテンツを解析し、解析したＷｅｂコンテンツにマルウェアなどが含まれているか否かを判定することで、アクセス先のサイトが悪質であるか否かを判定する。その際、ＵＲＬ収集部１１は、攻撃を受けなかったアクセス先のサイトのＵＲＬも収集する。
【００３３】
ここで、攻撃を受ける際には、悪性サイトにアクセスするとリンクで別のサイトに次々と飛ばされ、その過程で、例えば、マルウェアに感染することもあり、どこに真の悪性サイトが潜んでいるのかわからない場合がある。そこで、ＵＲＬ収集部１１は、攻撃を受けるまでＷｅｂ空間を巡回し、真の悪性サイトに到達するまでの経路に位置する踏み台となるサイト全てのＵＲＬも悪性ＵＲＬとして収集することも可能である。なお、ＵＲＬ記憶部１２に格納されるＵＲＬのリストは、ＵＲＬ収集部１１により収集されたリストに限定されるものではなく、他の装置により収集されたＵＲＬのリストやフィルタリング装置１０の管理者により収集されたＵＲＬのリストなど、何らかの手段によって作成されたＵＲＬのリストであれば本実施例に適用可能である。
【００３４】
以下では、ＵＲＬ収集部１１が悪性ＵＲＬと悪性でないＵＲＬとが混合されたリストを収集する場合について説明する。なお、本実施例１は、プロキシサーバ１の管理者が悪性ＵＲＬを含むＵＲＬのリストを収集する場合であっても適用可能である。また、本実施例１は、ＵＲＬ収集部１１が収集するＵＲＬが全て悪性ＵＲＬである場合であっても適用可能である。
【００３５】
ＵＲＬ記憶部１２は、ＵＲＬ収集部１１が収集した悪性ＵＲＬが含まれるＵＲＬのリストを記憶する。図３は、ＵＲＬ記憶部が記憶するＵＲＬの一例を説明するための図である。
【００３６】
例えば、ＵＲＬ記憶部１２は、ＵＲＬ収集部１１が収集したＵＲＬ１〜ＵＲＬ７などを記憶し、更に、ＵＲＬ１、ＵＲＬ２、ＵＲＬ５、ＵＲＬ６などが悪性ＵＲＬであると記憶する。
【００３７】
図２に戻って、変換部１３は、ＵＲＬ記憶部１２に格納された各ＵＲＬを木構造に変換する。ここで、変換部１３は、ＵＲＬを分割した文字列を以下に説明する連結順序により連結することでＵＲＬの木構造への変換処理を行なう。ここで、以下では、情報資源を格納するホスト（ウェブサーバ）が所属する所属ドメイン空間を示すＵＲＬの文字列を「ホスト部」と定義する。また、以下では、「ホスト部」においてホストが所属ドメイン空間にて位置する特定のドメイン空間を示す文字列を「ドメイン名」と定義する。また、以下では、ホスト内で情報資源が配置される位置を示すＵＲＬの文字列を「パス部」と定義する。
【００３８】
変換部１３は、ＵＲＬの「ドメイン名」を根ノードとし、「ドメイン名」以外の「ホスト部」の文字列を「ホスト部」に固有の区切り文字により区切った文字列をノードとして、当該文字列の後方から前方に向かった順に、根ノードに対する子ノード、当該子ノードに対する子ノード、として順次連結する。そして、変換部１３は、更に、ＵＲＬの「パス部」を「パス部」に固有の区切り文字により区切った文字列をノードとして、当該文字列の前方から後方に向かった順に、ホスト部に由来する子ノードの中で末端に位置するノードに対する子ノード、当該子ノードに対する子ノード、として順次連結する。換言すると、変換部１３は、資源情報が格納される位置情報が階層構造で示されるＵＲＬの各文字列要素を、上位の概念から下位の概念に向かった順番に連結することで、木構造変換処理を行なう。
【００３９】
以下、図４〜図７を用いて変換部１３が行なう木構造変換処理を具体的に説明する。図４〜図７は、変換部が行なう木構造変換処理を説明するための図である。
【００４０】
まず、変換部１３は、ＵＲＬをホスト部とパス部とに分割する。ここで、ＨＴＴＰ（HyperText  Transfer  Protocol）のＵＲＬは、図４の（Ａ）に示す形態を取る。図４の（Ａ）に示す「<host>」は、Ｗｅｂサイトを示すＦＱＤＮ（Fully  Qualified  Domain  Name）、又は、ＩＰアドレスである。「<host>」の文字列は、「．（ドット）」で区切られる。また、ここで、図４の（Ａ）に示す「:<port>」は、Ｗｅｂに対して接続するためのポート番号である。ＨＴＴＰスキームでは、デフォルトポート番号として「８０番」が定義されており、ポート番号が省略される場合は、デフォルトポート番号である「８０」が適用される。デフォルトポート番号とは異なるポート番号をサイトが利用する場合、ホスト部においては、ポート番号が「：（コロン）」を用いて  「<host>」  と区切って付与される。
【００４１】
また、図４の（Ａ）に示す「<path>」は、Ｗｅｂサイト内での特定のコンテンツが格納される位置を示すものであり、図４の（Ａ）に示す「<searchpart>」  は、クエリー文字列である。ここで、「<path>」は、「<searchpart>」及び「<searchpart>」の前の  「?」とともに省略可能である。なお、「<path>」の文字列は、階層構造を示す「／（スラッシュ）」で区切られる。
【００４２】
かかるＵＲＬの形態に基づいて、変換部１３は、図４の（Ａ）に示すように、「<host>:<port>」をホスト部として抽出し、「<path>?<searchpart>」をパス部として抽出する。なお、「:<port>」及び「?<searchpart>」は省略可能なため、変換部１３は、「<host>  」と「<path>」とのみを抽出する。
【００４３】
例えば、図４の（Ｂ）に示すように、処理対象となるＵＲＬが「http://www.example.com/test/index.html」である場合、変換部１３は、「www.example.com」をホスト部として抽出し、「test/index.html」をパス部として抽出する。
【００４４】
そして、変換部１３は、抽出したホスト部を「．（ドット）」を区切り文字として文字列に分解し、分解した文字列を後方から前方に向かって列挙する。ただし、ドメイン名に関しては、一つの文字列とする。上述したように、ドメイン名は、情報資源を格納するホストが所属する所属ドメイン空間にて位置する特定のドメイン空間を示す文字列であり、具体的には、一般的なドメイン空間を示すパブリックサフィックス（例えば、com，net，co.jpなど）からパブリックサフィックスの前方に付与された文字列まで（例えば、example.com，example.co.jpなど）を示す。なお、ドメイン名は、プライベートサフィックスとも呼ばれる。
【００４５】
すなわち、変換部１３は、図５の（Ａ）に示すように、抽出したホスト部が「Ｈ１．Ｈ２．Ｈ３．Ｈ４」であり、ドメイン名が「Ｈ３．Ｈ４」である場合、後方から前方に向かう連結方向にて、「Ｈ３．Ｈ４、Ｈ２、Ｈ１」の順に並べる。
【００４６】
具体的には、変換部１３は、図５の（Ｂ）に示すように、抽出したホスト部が「www.example.com」である場合、「example.com」を「ドメイン名」として特定し、「example.com、www」の順に並べる。また、変換部１３は、図５の（Ｃ）に示すように、抽出したホスト部が「test1.www.example.co.jp」である場合、「example.co.jp」を「ドメイン名」として特定し、「example.co.jp、www、test1」の順に並べる。
【００４７】
そして、変換部１３は、抽出したパス部を「／（スラッシュ）」を区切り文字として文字列に分解し、分解した文字列を前方から後方に向かって列挙する。
【００４８】
すなわち、変換部１３は、図６の（Ａ）に示すように、抽出したパス部が「Ｐ１／Ｐ２／Ｐ３／Ｐ４」である場合、前方から後方に向かう連結方向にて、「Ｐ１、Ｐ２、Ｐ３、Ｐ４」の順に並べる。
【００４９】
具体的には、変換部１３は、図６の（Ｂ）に示すように、抽出したパス部が「news/old/test.html」である場合、「news、old、test.html」の順に並べる。
【００５０】
ここで、変換部１３は、図６の（Ｃ）に示すように、抽出したパス部が「Ｐ１／Ｐ２／Ｐ３／」のようにスラッシュで終わる場合、末尾の要素を空集合である「（ｎｕｌｌ）」として扱い、前方から後方に向かう連結方向にて、「Ｐ１、Ｐ２、Ｐ３、（ｎｕｌｌ）」の順に並べる。
【００５１】
具体的には、変換部１３は、図６の（Ｄ）に示すように、抽出したパス部が「news/old/」である場合、「news、old、(null)」の順に並べる。
【００５２】
そして、変換部１３は、連結順序に準じて並べ替えたホスト部及びパス部の各要素（各文字列）に対して、ホスト部の文字列に対してはホスト部由来であることを示す識別子「Ｈ」を付与し、パス部の文字列に対してはパス部由来であることを示す識別子「Ｐ」を付与する。また、変換部１３は、末尾の要素（末端ノード）に対しては末尾であることを示す識別子「Ｌ」を付与する。更に、変換部１３は、処理対象となるＵＲＬが悪性ＵＲＬである場合、末尾の要素（末端ノード）に対し、更に、悪性ＵＲＬ由来であることを示す識別子「Ｍ」を付与する。
【００５３】
すなわち、変換部１３は、「http://H1.H2.H3.H4/P1/P2/P3/P4」が悪性ＵＲＬであり、「Ｈ３．Ｈ４」がドメイン名である場合、図７の（Ａ）に示すように、ホスト部の配列「Ｈ３．Ｈ４、Ｈ２、Ｈ１」に対して識別子「Ｈ」を付与し、パス部の配列「Ｐ１／Ｐ２／Ｐ３／Ｐ４」に対して識別子「Ｐ」を付与する。さらに、変換部１３は、図７の（Ａ）に示すように、悪性ＵＲＬ由来の末端ノードである「Ｐ４」に対して識別子「Ｌ」及び識別子「Ｍ」を付与する。そして、変換部１３は、各要素を連結順序に沿って連結することで、ＵＲＬを木構造に変換する。例えば、変換部１３は、図７の（Ａ）に示すように、各要素に付与された識別子に基づいて、ホスト部要素を矩形で、パス部要素を楕円で、パス部末尾要素を二重の楕円で表した木構造に変換する。なお、図示していないが、パス部末尾要素に識別子「Ｍ」が付与されている場合、変換部１３は、パス部末尾要素（末端ノード）が悪性ＵＲＬ由来であることを表わすために、例えば、二重の楕円内を点でハッチングする。
【００５４】
例えば、変換部１３は、「http://www.example.com/news/old/news.html」を、図７の（Ｂ）に示すように、「example.com」を根ノードとし、「example.com」から順にホスト部ノード「www」、パス部ノード「news」、パス部ノード「old」、末端ノード「news.html」が連結された木構造に変換する。
【００５５】
また、変換部１３は、「http://www.example.com/news/old/」を、図７の（Ｃ）に示すように、「example.com」を根ノードとし、「example.com」から順にホスト部ノード「www」、パス部ノード「news」、パス部ノード「old」、末端ノード「(null)」が連結された木構造に変換する。
【００５６】
また、変換部１３は、「http://www.example.com/news/new/index.html」を、図７の（Ｄ）に示すように、「example.com」を根ノードとし、「example.com」から順にホスト部ノード「www」、パス部ノード「news」、パス部ノード「new」、末端ノード「index.html」が連結された木構造に変換する。
【００５７】
そして、変換部１３は、図４〜図７を用いて説明した木構造変換処理を、ＵＲＬ記憶部１２に格納された各ＵＲＬに対して実行し、各ＵＲＬから変換した木構造を共通するノードに基づいて統合する。そして、変換部１３は、統合した木構造を木構造記憶部１４に格納する。図８は、変換部が行なう木構造の統合処理を説明するための図である。
【００５８】
例えば、変換部１３は、図８に示すように、図７の（Ａ）、（Ｂ）及び（Ｃ）で例示した３つの木構造を共通するノードに基づいて統合する。なお、図８に示す一例では、一つの根ノードからなる木構造を示しているが、収集した全ＵＲＬのドメイン部の文字列が異なる場合に変換部１３により統合される木構造は、複数の根ノードからなる木構造となる。
【００５９】
図２に戻って、部分ＵＲＬ生成部１５は、木構造記憶部１４に格納された木構造からＵＲＬを復元する機能を有する。ここで、木構造からＵＲＬを復元する際、部分ＵＲＬ生成部１５は、変換部１３の木構造変換処理における文字列の連結順序に準じて木構造からＵＲＬを復元する。
【００６０】
部分ＵＲＬ生成部１５が行なう木構造からＵＲＬへの復元処理について、図９及び図１０を用いて説明する。図９及び図１０は、部分ＵＲＬ生成部が行なう木構造からＵＲＬへの復元処理を説明するための図である。
【００６１】
まず、部分ＵＲＬ生成部１５は、復元対象となる木構造を末端ノードから順に親ノードを根ノードに至るまで辿ることで、複数の文字列からなる配列を生成する。例えば、図９の（Ａ）に示す木構造が復元対象となる場合、部分ＵＲＬ生成部１５は、「news.html,  old,  news,  www,  example.com」からなる配列を生成する。そして、部分ＵＲＬ生成部１５は、木構造に付与された識別子に基づいて、生成した配列を、パス部に由来するパス列と、ホスト部に由来するホスト列とに分割する。例えば、部分ＵＲＬ生成部１５は、図９の（Ａ）に示すように、生成した配列を、パス列「news.html,  old,  news」とホスト列「www,  example.com」に分割する。
【００６２】
そして、部分ＵＲＬ生成部１５は、ホスト列については、ホスト列の各ノードを、列挙された順番に「．（ドット）」を付与して文字列の連結を行なう。例えば、部分ＵＲＬ生成部１５は、図９の（Ｂ）に示すように、ホスト列「www,  example.com」の「www」を先頭にし、「www」「．」「example.com」の順に連結することで、ホスト部「www.example.com」を復元する。
【００６３】
また、部分ＵＲＬ生成部１５は、パス列については、パス列の各ノードを、列挙された順番とは逆の順番に「／（スラッシュ）」を付与して文字列の連結を行なう。例えば、部分ＵＲＬ生成部１５は、図９の（Ｃ）に示すように、パス列「news.html,  old,  news」の「news」を先頭にし、「news」「/」「old」「/」「news.html」の順に連結することで、パス部「news/old/news.html」を復元する。
【００６４】
そして、部分ＵＲＬ生成部１５は、復元したホスト部及びパス部を「／（スラッシュ）」で連結し、更に、ＵＲＬにおけるＨＴＴＰのｓｃｈｅｍｅ「ｈｔｔｐ：／／」を接頭辞として付与することで、木構造からＵＲＬを復元する。例えば、部分ＵＲＬ生成部１５は、図９の（Ｄ）に示すように、ホスト部「www.example.com」とパス部「news/old/news.html」とを「/」で連結し、更に、「http://」を先頭に付与することで、ＵＲＬ「http://www.example.com/news/old/news.html」を復元する。
【００６５】
ここで、部分ＵＲＬは、木構造の中間ノードを末端ノードとすることで、ＵＲＬを部分的に復元することも可能である。すなわち、図１０の（Ａ）に示す一例では、部分ＵＲＬ生成部１５は、元々の末端ノードが末端ノードであることから、元々のＵＲＬ「http://www.example.com/news/old/news.html」を復元する。一方、図１０の（Ｂ）に示す一例では、部分ＵＲＬ生成部１５は、元々の末端ノードの親ノード「old」が末端ノードであることから、ＵＲＬ「http://www.example.com/news/old/」を復元する。また、図１０の（Ｃ）に示す一例では、部分ＵＲＬ生成部１５は、元々の末端ノードの親ノードの親ノード「news」が末端ノードであることから、ＵＲＬ「http://www.example.com/news/」を復元する。
【００６６】
図２に示す部分ＵＲＬ生成部１５は、上述したＵＲＬ復元機能を用いて、悪性ＵＲＬが変更されることが推定される文字列以外の文字列から構成される部分ＵＲＬを生成する。具体的には、部分ＵＲＬ生成部１５は、変換部１３により統合された木構造において、悪性ＵＲＬの末端ノードの根ノードから当該末端ノードの親ノードまでを連結順序に準じてＵＲＬとして復元することで部分ＵＲＬを生成する。そして、部分ＵＲＬ生成部１５は、生成した部分ＵＲＬを部分ＵＲＬ記憶部１６に格納する。具体的には、部分ＵＲＬ生成部１５は、生成した部分ＵＲＬの中で未格納の部分ＵＲＬを部分ＵＲＬ記憶部１６に格納する。
【００６７】
例えば、部分ＵＲＬ生成部１５は、図８にて例示した木構造を木構造記憶部１４から読み出す。ここで、図８に例示した木構造の末端ノードが全て悪性ＵＲＬ由来の末端ノードであるとする。以下では、悪性ＵＲＬ由来の末端ノードを、悪性末端ノードと記載する場合がある。かかる場合、部分ＵＲＬ生成部１５は、図１１に示すように、「news.html」の根ノード「example.com」から「news.html」の親ノード「old」までを連結順序に準じてＵＲＬとして復元することで部分ＵＲＬ「http://www.example.com/news/old/」を生成する。ここで、部分ＵＲＬ「http://www.example.com/news/old/」が未格納である場合、部分ＵＲＬ生成部１５は、当該部分ＵＲＬを新規の部分ＵＲＬとして部分ＵＲＬ記憶部１６に格納する。
【００６８】
また、部分ＵＲＬ生成部１５は、図１１に示すように、「(null)」の根ノード「example.com」から「(null)」の親ノード「old」までを連結順序に準じてＵＲＬとして復元することで部分ＵＲＬ「http://www.example.com/news/old/」を生成する。ただし、部分ＵＲＬ生成部１５は、生成した部分ＵＲＬ部分「http://www.example.com/news/old/」が格納済みであることから、格納処理を行なわない。
【００６９】
また、部分ＵＲＬ生成部１５は、図１１に示すように、「index.html」の根ノード「example.com」から「index.html」の親ノード「new」までを連結順序に準じてＵＲＬとして復元することで部分ＵＲＬ「http://www.example.com/news/new/」を生成し、新規の部分ＵＲＬとして部分ＵＲＬ記憶部１６に格納する。
【００７０】
図２に戻って、フィルタリング部１７は、部分ＵＲＬ記憶部１６に格納された部分ＵＲＬを包含するＵＲＬを悪性ＵＲＬとしてＵＲＬフィルタリングを行なう。すなわち、フィルタリング部１７は、部分ＵＲＬがアクセス先のＵＲＬの文字列に先頭から含まれるかどうかを調べることで、ＵＲＬフィルタリングを行なう。例えば、フィルタリング部１７は、ユーザ端末２から受信したＵＲＬに包含される部分ＵＲＬが部分ＵＲＬ記憶部１６に格納されている場合、当該ＵＲＬによるアクセスを不許可とする。
【００７１】
続いて、図１２及び図１３を用いて、実施例１に係るフィルタリングシステムが有するフィルタリング装置１０の処理の手順を説明する。図１２は、実施例１に係るフィルタリング装置の部分ＵＲＬ生成処理を説明するためのフローチャートである。また、図１３は、実施例１に係るフィルタリング装置のフィルタリング処理を説明するためのフローチャートである。
【００７２】
図１２に示すように、実施例１に係るフィルタリング装置１０は、ＵＲＬ収集部１１の処理により、悪性ＵＲＬを含むＵＲＬのリストがＵＲＬ記憶部１２に格納されたか否かを判定する（ステップＳ１０１）。ここで、ＵＲＬのリストが格納されない場合（ステップＳ１０１否定）、フィルタリング装置１０は、待機状態となる。
【００７３】
一方、ＵＲＬのリストが格納された場合（ステップＳ１０１肯定）、変換部１３は、全ＵＲＬを木構造に変換し、各ＵＲＬから変換した木構造を共通するノードに基づいて統合する（ステップＳ１０２）。そして、部分ＵＲＬ生成部１５は、統合された木構造の末端ノード数（Ｎ）を取得し、各末端ノード（Ｌ）に対してＩＤ（ｉ＝１〜Ｎ）を割り振る（ステップＳ１０３）。なお、「ｉ」は、「１〜Ｎ」の整数となる。
【００７４】
続いて、部分ＵＲＬ生成部１５は、「ｉ＝１」と設定し（ステップＳ１０４）、悪性末端ノードであることを示す識別子「Ｍ」が付与されているか否かを判定することで、Ｌ（ｉ）が悪性であるか否かを判定する（ステップＳ１０５）。ここで、Ｌ（ｉ）が悪性である場合（ステップＳ１０５肯定）、部分ＵＲＬ生成部１５は、Ｌ（ｉ）の根ノードからＬ（ｉ）の親ノードまでをＵＲＬとして復元することで部分ＵＲＬを生成し（ステップＳ１０６）、生成した部分ＵＲＬが部分ＵＲＬ記憶部１６に格納済みであるか否かを判定する（ステップＳ１０７）。
【００７５】
ここで、生成した部分ＵＲＬが部分ＵＲＬ記憶部１６に未格納である場合（ステップＳ１０７否定）、部分ＵＲＬ生成部１５は、Ｌ（ｉ）の根ノードからＬ（ｉ）の親ノードまでの部分ＵＲＬを部分ＵＲＬ記憶部１６に格納する（ステップＳ１０８）。
【００７６】
Ｌ（ｉ）が悪性でない場合（ステップＳ１０５否定）、又は、ステップＳ１０８の処理を行なった場合、部分ＵＲＬ生成部１５は、「ｉ＝Ｎ」であるか否かを判定する（ステップＳ１０９）。また、部分ＵＲＬが部分ＵＲＬ記憶部１６に格納済みである場合（ステップＳ１０７肯定）、部分ＵＲＬ生成部１５は、ステップＳ１０６にて生成した部分ＵＲＬを格納せずに、「ｉ＝Ｎ」であるか否かを判定する（ステップＳ１０９）。
【００７７】
ここで、「ｉ＝Ｎ」でない場合（ステップＳ１０９否定）、部分ＵＲＬ生成部１５は、「ｉ」をインクリメントして「ｉ＝ｉ＋１」とし（ステップＳ１１０）、ステップＳ１０５の判定処理を行なう。
【００７８】
一方、「ｉ＝Ｎ」である場合（ステップＳ１０９肯定）、部分ＵＲＬ生成部１５は、部分ＵＲＬの生成処理を終了する。
【００７９】
そして、図１３に示すように、実施例１に係るフィルタリング装置１０は、ユーザ端末２からＵＲＬを受信したか否かを判定する（ステップＳ２０１）。ここで、ＵＲＬを受信しない場合（ステップＳ２０１否定）、フィルタリング装置１０は、待機状態となる。
【００８０】
一方、ＵＲＬを受信した場合（ステップＳ２０１肯定）、フィルタリング部１７は、受信したＵＲＬを包含する部分ＵＲＬが部分ＵＲＬ記憶部１６に格納されているか否かを判定する（ステップＳ２０２）。ここで、格納されていない場合（ステップＳ２０２否定）、フィルタリング部１７は、受信したＵＲＬによるアクセスを許可し（ステップＳ２０４）、フィルタリング処理を終了する。
【００８１】
一方、格納されている場合（ステップＳ２０２肯定）、フィルタリング部１７は、受信したＵＲＬによるアクセスを不許可とし（ステップＳ２０３）、フィルタリング処理を終了する。
【００８２】
なお、ＵＲＬ収集部１１によるＵＲＬリストの収集は、例えば、フィルタリング装置１０の管理者の設定により定期的に実行され、ＵＲＬ記憶部１２に格納されるＵＲＬは、定期的に更新される。ＵＲＬのリストが更新された場合、変換部１３は、更新された全ＵＲＬについて木構造の変換処理を行なう。そして、変換部１３は、更新された全ＵＲＬから変換した木構造と統合済みの木構造とを共通するノードに基づいて再度統合する。そして、部分ＵＲＬ生成部１５は、新たに統合された木構造を用いて、部分ＵＲＬの生成処理及び部分ＵＲＬの格納処理を行なう。
【００８３】
上述したように、実施例１によれば、部分ＵＲＬ生成部１５は、悪質な資源情報の格納先を示すＵＲＬである悪性ＵＲＬから、当該悪性ＵＲＬの中で変更されることが推定される文字列以外の文字列から構成される部分ＵＲＬを生成し、当該生成した部分ＵＲＬを部分ＵＲＬ記憶部１６に格納する。
【００８４】
具体的には、まず、ＵＲＬ収集部１１は、悪性ＵＲＬが含まれるＵＲＬの集合（リスト）を収集してＵＲＬ記憶部１２に格納する。そして、変換部１３は、情報資源を格納するホストが所属する所属ドメイン空間を示すＵＲＬのホスト部において当該ホストが当該所属ドメイン空間にて位置する特定のドメイン空間を示すドメイン名を根ノードとし、当該ドメイン名以外のホスト部の文字列をホスト部に固有の区切り文字により区切った文字列をノードとして、当該文字列の後方から前方に向かった順に、根ノードに対する子ノード、当該子ノードに対する子ノード、として順次連結し、更に、ホスト内で情報資源が配置される位置を示す当該ＵＲＬのパス部をパス部に固有の区切り文字により区切った文字列をノードとして、当該文字列の前方から後方に向かった順に、ホスト部に由来する子ノードの中で末端に位置するノードに対する子ノード、当該子ノードに対する子ノード、として順次連結する連結順序を用いることで当該ＵＲＬを木構造に変換する。
【００８５】
変換部１３は、かかる木構造変換処理を、ＵＲＬ記憶部１２に格納された各ＵＲＬに対して実行し、各ＵＲＬから変換した木構造を共通するノードに基づいて統合する。そして、部分ＵＲＬ生成部１５は、統合された木構造において、悪性ＵＲＬの末端ノードの根ノードから当該末端ノードの親ノードまでを連結順序に準じてＵＲＬとして復元することで部分ＵＲＬを生成し、当該生成した部分ＵＲＬの中で未格納の部分ＵＲＬを部分ＵＲＬ記憶部１６に格納する。そして、フィルタリング部１７は、部分ＵＲＬ記憶部１６に格納された部分ＵＲＬを包含するＵＲＬを悪性ＵＲＬとしてＵＲＬフィルタリングを行なう。
【００８６】
すなわち、実施例１では、悪性末端ノードの根ノードから悪性末端ノードの親ノードまでの文字列を、悪性ＵＲＬの中で変更されることが推定される文字列以外の文字列として特定し、部分ＵＲＬを生成する。これにより、実施例１では、悪性ＵＲＬが部分的に変更される場合でも、部分ＵＲＬを包含するＵＲＬに対してＵＲＬフィルタリングを行なえる部分ＵＲＬのリストを作成することができる。また、実施例１では、ＵＲＬにて定義される位置情報の概念に沿って、収集した全ＵＲＬを木構造に変換及び統合することにより、部分ＵＲＬとして復元するための末端ノードを簡易に特定することができる。また、実施例１では、部分ＵＲＬを用いることで既存の悪性ＵＲＬの部分的変化に対応できるので、完全一致を判断基準とするＵＲＬフィルタリングと比較して、悪性ＵＲＬのリストの維持管理にかかるコストを低減することができる。
【００８７】
従って、実施例１では、ＵＲＬを部分的に変更することで行なわれる攻撃を簡易かつ確実に防御することが可能となる。
【実施例２】
【００８８】
実施例２では、実施例１で説明した部分ＵＲＬ生成方法とは異なる方法により、部分ＵＲＬを生成する場合について説明する。
【００８９】
実施例２に係るフィルタリングシステムは、図１を用いて説明した実施例１に係るフィルタリングシステムと同様に構成され、実施例２に係るフィルタリング装置１０は、図２を用いて説明した実施例１に係るフィルタリング装置１０と同様に構成される。しかし、実施例２に係る部分ＵＲＬ生成部１５は、実施例１とは異なる処理により部分ＵＲＬを生成する。以下、これを中心に説明する。
【００９０】
実施例２に係る部分ＵＲＬ生成部１５は、悪性ＵＲＬの末端ノードの親ノードを部分ＵＲＬの生成に用いられる末端ノードの候補ノードと設定する。そして、部分ＵＲＬ生成部１５は、設定した候補ノードの親ノードの全子ノード数に対する候補ノード数の割合に応じて、当該親ノードを候補ノードとして新たに設定する。具体的には、部分ＵＲＬ生成部１５は、設定した候補ノードの親ノードの全子ノード数に対する候補ノード数の割合が所定の閾値以上である場合、当該親ノードを候補ノードとして新たに設定する。例えば、部分ＵＲＬ生成部１５は、所定の閾値を「１００％」とし、設定した候補ノードの親ノードの子ノードがすべて候補ノードと設定されている場合、当該親ノードを候補ノードとして新たに設定する。
【００９１】
更に、部分ＵＲＬ生成部１５は、新たに設定した候補ノードの親ノードの全子ノード数に対する候補ノード数の割合に応じて、当該親ノードを候補ノードとして新たに設定する。具体的には、部分ＵＲＬ生成部１５は、新たに設定した候補ノードの親ノードの全子ノード数に対する候補ノード数の割合が所定の閾値以上である場合、当該親ノードを候補ノードとして新たに設定する。例えば、部分ＵＲＬ生成部１５は、所定の閾値を「１００％」とし、新たに設定した候補ノードの親ノードの子ノードがすべて候補ノードと設定されている場合、当該親ノードを候補ノードとして新たに設定する。
【００９２】
そして、部分ＵＲＬ生成部１５は、上述した候補ノードの設定処理を、変換部１３により統合された木構造の各根ノードについて実行した後、当該木構造の各根ノードを起点とする経路それぞれにおいて最上位に位置する候補ノードを特定し、当該特定した候補ノードを末端ノードとして部分ＵＲＬを生成する。
【００９３】
ここで、実施例２に係る部分ＵＲＬ生成部１５は、候補ノードとして設定したノード、及び、新たに候補ノードとして設定するか否かを判定したノードまでを探索対象とした深さ優先探索（depth-first  search）を行なう。すなわち、実施例２に係る部分ＵＲＬ生成部１５は、最初に設定した候補ノード配下のノードを探索対象から除外する。そして、実施例２に係る部分ＵＲＬ生成部１５は、候補ノードの探索を行なって、新たに候補ノードとして設定するか否かを判定したノード配下のノードも探索対象から除外する。図１４〜図１７は、実施例２に係る部分ＵＲＬ生成部の部分ＵＲＬ生成処理を説明するための図である。
【００９４】
まず、変換部１３により統合された木構造が、図１４に例示するように、根ノード「example.com」の３つの末端ノード（exploit1.html,  exploit2.html,  exploit3.html）が全て悪性末端ノードであった場合について説明する。
【００９５】
図１４に例示する木構造から部分ＵＲＬを生成する場合、実施例１では、３つの悪性末端ノードそれぞれの親ノード（malice-path1，malice-path2，malice-path3）に悪質なコンテンツが存在することから、これら３つの親ノードそれぞれを末端ノードとすることで部分ＵＲＬを生成する。すなわち、図１４に例示する木構造を部分ＵＲＬの生成対象とする場合、実施例１では、「http://www.examle.com/malice-path1」、「http://www.examle.com/malice-path2」、「http://www.examle.com/malice-path3」の３つが部分ＵＲＬとして生成されることとなる。かかる場合、仮に、攻撃者が新たなパス「malice-path4」を生成して、「malice-path4」の下に悪質なコンテンツを配置した場合、フィルタリング部１７によるフィルタリングが実行されないこととなる。
【００９６】
そこで、実施例２に係る部分ＵＲＬ生成部１５は、図１４に例示する木構造から、攻撃者が新たなパス「malice-path4」の下に悪質なコンテンツを配置してもフィルタリングが実行可能な部分ＵＲＬを生成するため、まず、図１５の（Ａ）に示す候補ノード設定処理を行なう。
【００９７】
すなわち、実施例２に係る部分ＵＲＬ生成部１５は、図１５の（Ａ）に示すように、まず、３つの悪性末端ノードそれぞれの親ノード（malice-path1，malice-path2，malice-path3）を候補ノードとして設定する。そして、部分ＵＲＬ生成部１５は、図１５の（Ｂ）に示すように、根ノードを起点として候補ノードの深さ優先探索を開始し、「malice-path1」を候補ノードとして探索する。そして、部分ＵＲＬ生成部１５は、図１５の（Ｂ）に示すように、「malice-path1」の親ノードである「www」を親ノードとする２つの子ノード「malice-path2，malice-path3」が全て候補ノードであるか否かを探索する。
【００９８】
ここで、「malice-path2，malice-path3」が全て候補ノードとして設定されていることから、実施例２に係る部分ＵＲＬ生成部１５は、図１５の（Ｂ）に示すように、「www」を新たに候補ノードとして設定する。そして、部分ＵＲＬ生成部１５は、根ノード「example.com」の子ノード「www」が候補ノードであるので深さ優先探索を終了する。
【００９９】
そして、実施例２に係る部分ＵＲＬ生成部１５は、図１５の（Ｃ）に示すように、根ノード「example.com」を起点とする経路で最上位にある候補ノード「www」を末端ノードとする部分ＵＲＬ「http://www.examle.com/」を生成する。これにより、攻撃者が新たなパス「malice-path4」の下に悪質なコンテンツを配置しても、フィルタリング部１７は、部分ＵＲＬを用いることで、フィルタリングを実行することができる。
【０１００】
次に、１つの悪性ＵＲＬ「http://www.examle.com/malice-user1/exploit1.html」と、悪性でない２つのＵＲＬ「http://www.examle.com/ligitimate-user1/index.html,  http://www.examle.com/ligitimate-user2/index.html」との３つのＵＲＬから「example.com」を根ノードとする木構造が部分ＵＲＬの生成対象となる場合について説明する。
【０１０１】
かかる場合、実施例２に係る部分ＵＲＬ生成部１５は、図１６の（Ａ）に示すように、まず、１つの悪性末端ノード（exploit1.html）の親ノード（malice-user1）を候補ノードとして設定する。
【０１０２】
そして、部分ＵＲＬ生成部１５は、図１６の（Ｂ）に示すように、根ノードを起点として候補ノードの深さ優先探索を開始し、「malice-user1」を候補ノードとして探索する。そして、部分ＵＲＬ生成部１５は、図１６の（Ｂ）に示すように、「malice-user1」の親ノードである「www」を親ノードとする２つの子ノード「ligitimate-user1，malice-path3」が全て候補ノードであるか否かを探索する。
【０１０３】
ここで、「ligitimate-user1，malice-path3」が候補ノードとして設定されていないことから、実施例２に係る部分ＵＲＬ生成部１５は、深さ優先探索を継続する。そして、部分ＵＲＬ生成部１５は、深さ優先探索が終了した結果、図１６の（Ｃ）に示すように、根ノード「example.com」を起点とする経路で最上位にある候補ノード「malice-user1」を末端ノードとする部分ＵＲＬ「http://www.examle.com/malice-user1」を生成する。すなわち、図１６の（Ｃ）で例示した場合に生成される部分ＵＲＬは、実施例１の部分ＵＲＬ生成部１５により生成される部分ＵＲＬと同様となる。
【０１０４】
図１５及び図１６で説明した実施例２に係る部分ＵＲＬ生成部１５の処理を、図１７を用いて改めて説明する。
【０１０５】
図１７の（Ａ）に例示する木構造は、根ノード「Ｒ」を起点とする１６個の末端ノード（Ｎ１〜Ｎ１６）からなる。また、図１７の（Ａ）に例示する木構造は、末端ノード「Ｌ１〜Ｌ１６」の中で「Ｌ１，Ｌ２，Ｌ３，Ｌ４，Ｌ５，Ｌ９，Ｌ１３，Ｌ１５」が悪性末端ノードである。
【０１０６】
そして、部分ＵＲＬ生成部１５は、図１７の（Ｂ）に示すように、末端ノードの親ノード「Ｎ１〜Ｎ８」の中で、「Ｌ１」及び「Ｌ２」の親ノード「Ｎ１」と、「Ｌ３」及び「Ｌ４」の親ノード「Ｎ２」と、「Ｌ５」の親ノード「Ｎ３」と、「Ｌ９」の親ノード「Ｎ５」と、「Ｌ１３」の親ノード「Ｎ７」と、「Ｌ１５」の親ノード「Ｎ８」とをそれぞれ候補ノードとして設定する。
【０１０７】
そして、部分ＵＲＬ生成部１５は、図１７の（Ｃ）に示すように、候補ノード「Ｎ１」の親ノード「Ｎ９」に連結される他の子ノード「Ｎ２」が候補ノードであることから、「Ｎ９」を候補ノードとして設定する。また、部分ＵＲＬ生成部１５は、図１７の（Ｃ）に示すように、候補ノード「Ｎ７」の親ノード「Ｎ１２」に連結される他の子ノード「Ｎ８」が候補ノードであることから、「Ｎ１２」を候補ノードとして設定する。ここで、部分ＵＲＬ生成部１５は、図１７の（Ｃ）に示すように、候補ノード「Ｎ３」の親ノード「Ｎ１０」に連結される他の子ノード「Ｎ４」が候補ノードでないことから、「Ｎ１０」を候補ノードとして設定しない。また、部分ＵＲＬ生成部１５は、図１７の（Ｃ）に示すように、候補ノード「Ｎ５」の親ノード「Ｎ１１」に連結される他の子ノード「Ｎ６」が候補ノードでないことから、「Ｎ１１」を候補ノードとして設定しない。
【０１０８】
そして、部分ＵＲＬ生成部１５は、図１７の（Ｄ）に示すように、根ノード「Ｒ」を起点とする経路それぞれにおいて最上位に位置する候補ノード「Ｎ９，Ｎ３，Ｎ５，Ｎ１２」を特定する。そして、部分ＵＲＬ生成部１５は、図１７の（Ｄ）に示すように、根ノード「Ｒ」から候補ノード「Ｎ９」までの部分ＵＲＬと、根ノード「Ｒ」から候補ノード「Ｎ３」までの部分ＵＲＬと、根ノード「Ｒ」から候補ノード「Ｎ５」までの部分ＵＲＬと、根ノード「Ｒ」から候補ノード「Ｎ１２」までの部分ＵＲＬとを生成する。
【０１０９】
なお、統合された木構造の根ノードが複数である場合、部分ＵＲＬ生成部１５は、根ノードごとに候補ノードの探索及び新規の候補ノードの設定を行なう。ここで、統合された木構造の根ノードが複数である場合、部分ＵＲＬ生成部１５は、部分ＵＲＬの生成処理を、全ての根ノードについて候補ノードの設定処理が終わった後に一括して実行しても良いし、根ノードごとの候補ノードの探索及び新規の候補ノードの設定が終わった後に根ノード単位で実行しても良い。
【０１１０】
そして、実施例２においても、部分ＵＲＬ生成部１５は、生成した部分ＵＲＬの中で、未格納の部分ＵＲＬを部分ＵＲＬ記憶部１６に格納する。そして、実施例２においても、フィルタリング部１７は、部分ＵＲＬ記憶部１６に格納された部分ＵＲＬを包含するＵＲＬに対して、フィルタリングを行なう。
【０１１１】
上記で説明した部分ＵＲＬ生成法により生成される部分ＵＲＬを用いることで、フィルタリング部１７は、上述したように、パス部の変更に対応したＵＲＬフィルタリングを行なうことができる。すなわち、複数のディレクトリ配下に悪性コンテンツを持つドメインが存在する場合、部分ＵＲＬ生成部１５は、ＵＲＬの分岐点配下をＵＲＬフィルタリングの対象範囲としてＵＲＬフィルタリングを行なうことができる部分ＵＲＬを生成することができる。例えば、「http://example.com/path_1/path2_1/exploit.html」と「http://example.com/path_1/path2_2/exploit.php」とが悪性ＵＲＬとして存在する場合、部分ＵＲＬ生成部１５は、「http://example.com/path_1/」を部分ＵＲＬとして生成することができる。
【０１１２】
また、上記で説明した部分ＵＲＬ生成法により生成される部分ＵＲＬを用いることで、フィルタリング部１７は、ホスト部の変更にも対応したＵＲＬフィルタリングを行なうことができる。すなわち、特定プライベートサフィックスの配下に複数のサブドメインを持ち、そのサブドメイン上に悪性コンテンツが存在する場合、部分ＵＲＬ生成部１５は、プライベートサフィックスまでをフィルタリング対象範囲とすることで、攻撃者が新たにサブドメインを生成したとしても一括してＵＲＬフィルタリングを行なうことができる部分ＵＲＬを生成することができる。例えば、「http://malicious.example.com/exploit.html」と「http://exploit.example.com/exploit.php」とが悪性ＵＲＬとして存在する場合、部分ＵＲＬ生成部１５は、「http://*.example.com/」を部分ＵＲＬとして生成することができる。ここで、「*」は、ワイルドカードであることを表す記号である。
【０１１３】
なお、上記では、部分ＵＲＬ生成部１５が、候補ノードの親ノードの子ノードが全て候補ノードである場合、当該親ノードを候補ノードとして新たに設定する場合について説明した。しかし、実施例２に係る部分ＵＲＬ生成部１５は、候補ノードの親ノードの全子ノード数に対する候補ノード数の割合が所定の閾値以上である場合、当該親ノードを候補ノードとして新たに設定しても良い。図１８は、実施例２に係る部分ＵＲＬ生成部による候補ノード設定処理の変形例を説明するための図である。
【０１１４】
例えば、所定の閾値として「７５％」が設定されている場合について説明する。かかる場合、部分ＵＲＬ生成部１５は、図１８に示すように、親ノード「Ｐ」の５個の子ノードの中で４個の子ノードが候補ノードであり、７５％以上が候補ノードであることから、親ノード「Ｐ」を新規の候補ノードとして設定する。なお、上記の変形例では、候補ノード設定に用いられる所定の閾値が、全木構造において同一である場合について説明した。しかし、本変形例は、候補ノードの設定に用いられる所定の閾値が、木構造における根ノードからの深さごとに異なる値で個別に設定される場合であっても良いし、各ノードにおいて個別に設定される場合であっても良い。
【０１１５】
続いて、図１９を用いて、実施例２に係るフィルタリングシステムが有するフィルタリング装置１０の処理の手順を説明する。図１９は、実施例２に係るフィルタリング装置の部分ＵＲＬ生成処理を説明するためのフローチャートである。なお、実施例２に係るフィルタリングシステムが有するフィルタリング装置１０のフィルタリング処理は、図１３を用いて説明した実施例１の処理と同様であるので、説明を省略する。
【０１１６】
図１９に示すように、実施例２に係るフィルタリング装置１０は、ＵＲＬ収集部１１の処理により、悪性ＵＲＬを含むＵＲＬのリストがＵＲＬ記憶部１２に格納されたか否かを判定する（ステップＳ３０１）。ここで、ＵＲＬのリストが格納されない場合（ステップＳ３０１否定）、フィルタリング装置１０は、待機状態となる。
【０１１７】
一方、ＵＲＬのリストが格納された場合（ステップＳ３０１肯定）、変換部１３は、全ＵＲＬを木構造に変換し、各ＵＲＬから変換した木構造を共通するノードに基づいて統合する（ステップＳ３０２）。そして、部分ＵＲＬ生成部１５は、統合された木構造の根ノード数（Ｍ）を取得し、各根ノード（Ｒ）に対してＩＤ（ｊ＝１〜Ｍ）を割り振り、（ステップＳ３０３）、「ｊ＝１」と設定する（ステップＳ３０４）。なお、「ｊ」は、「１〜Ｍ」の整数となる。
【０１１８】
続いて、部分ＵＲＬ生成部１５は、識別子「Ｍ」が付与されているか否かを判定することで、ステップＳ３０２にて統合された木構造から悪性末端ノードを抽出し（ステップＳ３０５）、抽出した悪性末端ノードの親ノードを候補ノードに設定する（ステップＳ３０６）。そして、部分ＵＲＬ生成部１５は、ステップＳ３０６にて設定した候補ノードまでを探索対象として設定する（ステップＳ３０７）。
【０１１９】
その後、部分ＵＲＬ生成部１５は、根ノード「Ｒ（ｊ）」を起点とする候補ノードの深さ優先探索を開始し（ステップＳ３０８）、候補ノードを探索したか否かを判定する（ステップＳ３０９）。ここで、候補ノードを探索していない場合（ステップＳ３０９否定）、部分ＵＲＬ生成部１５は、ステップＳ３０７で設定した探索対象にて、根ノード「Ｒ（ｊ）」を起点とする候補ノードの深さ優先探索を継続し（ステップＳ３１０）、ステップＳ３０９の判定処理を行なう。
【０１２０】
一方、候補ノードを探索した場合（ステップＳ３０９肯定）、部分ＵＲＬ生成部１５は、探索した候補ノードの親ノードの子ノード全てが候補ノードか否かを判定する（ステップＳ３１１）。ここで、探索した候補ノードの親ノードの子ノード全てが候補ノードでない場合（ステップＳ３１１否定）、部分ＵＲＬ生成部１５は、探索した候補ノードの親ノード配下のノードを探索対象から除外する（ステップＳ３１４）。
【０１２１】
一方、探索した候補ノードの親ノードの子ノード全てが候補ノードである場合（ステップＳ３１１肯定）、部分ＵＲＬ生成部１５は、探索した候補ノードの親ノードを候補ノードに設定し（ステップＳ３１２）、ステップＳ３１２で設定した候補ノード配下のノードを探索対象から除外する（ステップＳ３１３）。
【０１２２】
そして、ステップＳ３１３又はステップＳ３１４において探索対象の再設定を行なった部分ＵＲＬ生成部１５は、根ノード「Ｒ（ｊ）」の探索処理が終了したか否かを判定する（ステップＳ３１５）。ここで、根ノード「Ｒ（ｊ）」の探索処理が終了していない場合（ステップＳ３１５否定）、部分ＵＲＬ生成部１５は、ステップＳ３１３又はステップＳ３１４で再設定した探査対象にて根ノード「Ｒ（ｊ）」の深さ優先探索を継続し（ステップＳ３１６）、ステップＳ３０９の判定処理を行なう。
【０１２３】
一方、根ノード「Ｒ（ｊ）」の探索処理が終了した場合（ステップＳ３１５肯定）、部分ＵＲＬ生成部１５は、根ノード「Ｒ（ｊ）」を起点とする各経路にて最上位に位置する候補ノードを特定する（ステップＳ３１７）。そして、部分ＵＲＬ生成部１５は、根ノード「Ｒ（ｊ）」からステップＳ３１７で特定した候補ノードまでの部分ＵＲＬのうち、未格納の部分ＵＲＬを部分ＵＲＬ記憶部１６に格納する（ステップＳ３１８）。
【０１２４】
そして、部分ＵＲＬ生成部１５は、「ｊ＝Ｍ」であるか否かを判定する（ステップＳ３１９）。ここで、「ｊ＝Ｍ」でない場合（ステップＳ３１９否定）、部分ＵＲＬ生成部１５は、「ｊ」をインクリメントして「ｊ＝ｊ＋１」とし（ステップＳ３２０）、ステップＳ３０８に戻って、根ノード「Ｒ（ｊ）」を起点とする候補ノードの深さ優先探索を開始する。
【０１２５】
なお、実施例２においても、ＵＲＬ収集部１１によるＵＲＬリストの収集は、例えば、フィルタリング装置１０の管理者の設定により定期的に実行され、ＵＲＬ記憶部１２に格納されるＵＲＬは、定期的に更新される。ＵＲＬのリストが更新された場合、変換部１３は、更新された全ＵＲＬについて木構造の変換処理を行なう。そして、変換部１３は、更新された全ＵＲＬから変換した木構造と統合済みの木構造とを共通するノードに基づいて再度統合する。そして、部分ＵＲＬ生成部１５は、新たに統合された木構造を用いて、部分ＵＲＬの生成処理及び部分ＵＲＬの格納処理を行なう。
【０１２６】
上述したように、実施例２によれば、部分ＵＲＬ生成部１５は、悪性ＵＲＬの末端ノードの親ノードを部分ＵＲＬの生成に用いられる末端ノードの候補ノードと設定し、当該設定した候補ノードの親ノードの全子ノード数に対する候補ノード数の割合に応じて、当該親ノードを候補ノードとして新たに設定する。更に、部分ＵＲＬ生成部１５は、当該新たに設定した候補ノードの親ノードの全子ノード数に対する候補ノード数の割合に応じて、当該親ノードを候補ノードとして新たに設定する。
【０１２７】
そして、部分ＵＲＬ生成部１５は、かかる候補ノードの設定処理を変換部１３により統合された木構造の各根ノードについて実行した後、当該木構造の各根ノードを起点とする経路それぞれにおいて最上位に位置する候補ノードを特定し、当該特定した候補ノードを末端ノードとして部分ＵＲＬを生成する。
【０１２８】
すなわち、実施例２では、悪質な資源情報を格納するパスの最上位に位置する可能性の高いパス名を、木構造の同一階層にある各ノード配下にあるノードが候補ノードである割合に基づいて特定する。かかる処理により特定されたパス名は、攻撃者が管理する悪質な資源情報の格納先を示す情報として変更せずに用いられる可能性が高い。すなわち、実施例２では、最上位にある候補ノードの配下のノードが、攻撃者により変更されることが推定されるＵＲＬの部分であり、最上位にある候補ノードを末端ノードとする部分ＵＲＬを、悪性ＵＲＬ間で共有される可能性が高いＵＲＬとして生成する。なお、初期設定後、新たに候補ノードが設定されない場合、実施例２で生成される部分ＵＲＬは、実施例１で生成される部分ＵＲＬと同じとなる。
【０１２９】
従って、実施例２では、新たなパスを用いた悪性ＵＲＬによる攻撃に対してもフィルタリングを行なうことができ、ＵＲＬを部分的に変更することで行なわれる攻撃をより確実に防御することが可能となる。
【０１３０】
なお、本実施例２で用いられるＵＲＬのリストは、実施例１と同様に、悪性ＵＲＬを含むＵＲＬのリストである場合でも、全てが悪性ＵＲＬであるＵＲＬのリストであっても良い。ただし、実施例２では、末端ノードのレベルで悪性末端ノードでない末端ノードが混在することが、悪性ＵＲＬ間で共有される可能性が高い部分を統計的に精度よく特定することに繋がるので、悪性でないＵＲＬが混在するＵＲＬのリストを用いることが望ましい。
【０１３１】
また、実施例２によれば、部分ＵＲＬ生成部１５は、候補ノードとして設定したノード、及び、新たに候補ノードとして設定するか否かを判定したノードまでを探索対象とした深さ優先探索を行なう。従って、実施例２では、候補ノードの探索及び候補ノードの新規設定に要する負荷を低減することが可能となる。
【０１３２】
なお、上記した実施例１及び２では、ＵＲＬのホスト部におけるポート番号「:<port>」を木構造の変換対象から除外した場合について説明した。しかし、上記した実施例１及び２は、ポート番号「:<port>」も含めてＵＲＬを木構造に変換する場合であっても適用可能である。「:<port>」が付与されているＵＲＬを木構造に変換する際、変換部１３により変換される木構造においては、ドメイン部とパス部の間にポート番号が挿入される形になる。すなわち、変換部１３は、「．（ドット）」及び「：（コロン）」をドメイン部固有の区切り文字として用いて用いる。例えば、変換部１３は、「http://www.example.com:8080/path/index.html」を、根ノードが「example.com」であり、「example.com」に対して順に「www」、「8080」、「path」及び「index.html」が子ノードとして連結される木構造に変換する。
【０１３３】
ここで、ポート番号がデフォルトポート番号の「８０番」であることから、変換対象となるＵＲＬにポート番号が記述されていない場合、変換部１３は、ホスト部のノードとパス部のノードとの間に「80」のノードを追加することで、木構造変換処理を行なう。例えば、変換部１３は、「http://www.example.com/path/index.html」を、根ノードが「example.com」であり、「example.com」に対して順に「www」、「80」、「path」及び「index.html」が子ノードとして連結される木構造に変換する。
【０１３４】
そして、木構造にポート番号のノードが含まれる場合、変換部１３は、悪性末端ノードの根ノードから悪性末端ノードの親ノードまで、又は、候補ノードの根ノードから候補ノードまでを、ポート番号を含めてＵＲＬとして復元することで、部分ＵＲＬを生成する。そして、フィルタリング部１７は、ポート番号を含む部分ＵＲＬを用いる場合、受信したＵＲＬにポート番号が省略されているならば、当該ＵＲＬに「:80」を挿入したうえで、フィルタリングを行なうか否かを判定する。
【０１３５】
また、上記した実施例１及び２では、フィルタリング装置１０がプロキシサーバ１に設置される場合について説明した。しかし、実施例１及び２で説明したフィルタリング装置１０は、プロキシサーバ１以外のネットワーク装置や、エンドホスト上の装置に設置される場合であってもよい。プロキシサーバ１以外のネットワーク装置としては、ネットワーク型ＩＤＳ（Intrusion  Detection  System）／ＩＰＳ（Intrusion  Prevention  System）などが挙げられる。また、エンドホスト上の装置としては、アンチウィルスソフトやＷｅｂブラウザのフィルタリング機能を行なうための装置が挙げられる。これらの装置は、フィルタリング用のＵＲＬをインポート可能なものが多く、実施例１及び２で説明したフィルタリング方法により生成した部分ＵＲＬを入力することでフィルタリングが可能になる。
【０１３６】
また、上記した実施例１及び２では、フィルタリング方法が一つの装置にて実行される場合について説明した。しかし、実施例１及び２で説明したフィルタリング方法は、複数の装置にて分散されて実行される場合であっても良い。例えば、実施例１及び２で説明したフィルタリング方法は、ＵＲＬ収集部１１の機能を有する装置と、変換部１３及び部分ＵＲＬ生成部１５の機能を有する装置と、フィルタリング部１７の機能を有する装置とが一つの仮想的なフィルタリング装置１０として機能することにより実現される場合であっても良い。また、１装置または２以上の装置からなるシステム内に、仮想マシンが起動される環境であって、この仮想マシン上で複数の仮想化されたコンピュータが動作するものであり、この仮想化されたコンピュータ上で実施例１及び２で説明したフィルタリング方法が実行される場合であってもよい。
【０１３７】
また、上記した実施例１及び２で説明したフィルタリング方法は、あらかじめ用意されたフィルタリングプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。なお、実施例１及び２で説明したフィルタリング方法は、上述したように、一つのコンピュータにて実行される場合であっても、複数のコンピュータにて分散されて実行される場合であっても良い。また、実施例１及び２で説明したフィルタリング方法は、上述したように、仮想化されたコンピュータ上で実行される場合であっても良い。
【産業上の利用可能性】
【０１３８】
以上のように、本発明に係るフィルタリング方法、フィルタリングシステム及びフィルタリングプログラムは、ＵＲＬフィルタリングを行なう場合に有用であり、特に、ＵＲＬを部分的に変更することで行なわれる攻撃を簡易かつ確実に防御することに適する。
【符号の説明】
【０１３９】
１  プロキシサーバ
１０  フィルタリング装置
１１  ＵＲＬ収集部
１２  ＵＲＬ記憶部
１３  変換部
１４  木構造記憶部
１５  部分ＵＲＬ生成部
１６  ＵＲＬ記憶部
１７  フィルタリング部
２  ユーザ端末
３  ウェブサーバ群
【図１】
0005415390.tif 000002
【図２】
0005415390.tif 000003
【図３】
0005415390.tif 000004
【図４】
0005415390.tif 000005
【図５】
0005415390.tif 000006
【図６】
0005415390.tif 000007
【図７】
0005415390.tif 000008
【図８】
0005415390.tif 000009
【図９】
0005415390.tif 000010
【図１０】
0005415390.tif 000011
【図１１】
0005415390.tif 000012
【図１２】
0005415390.tif 000013
【図１３】
0005415390.tif 000014
【図１４】
0005415390.tif 000015
【図１５】
0005415390.tif 000016
【図１６】
0005415390.tif 000017
【図１７】
0005415390.tif 000018
【図１８】
0005415390.tif 000019
【図１９】
0005415390.tif 000020