(57)【特許請求の範囲】
【請求項１】
配信要求の宛先を示す複数のＵＲＩであって、当該ＵＲＩを宛先として配信要求を送信すると解析対象の配信情報が配信されるＵＲＩが記憶されているＵＲＩ情報記憶部と、
前記ＵＲＩから配信される配信情報を取得し、取得した配信情報に更新があったか否かを判定する判定処理を行う配信情報更新判定部と、
前記ＵＲＩから配信情報のヘッダ情報のみを取得し、取得したヘッダ情報に基づいて当該ＵＲＩから配信される配信情報に更新があったか否かを判定する判定処理を行うヘッダ情報更新判定部と、
前記ＵＲＩ情報記憶部に記憶されている複数のＵＲＩについて、前記配信情報更新判定部による判定処理と、前記ヘッダ情報更新判定部による判定処理とのいずれかまたは双方を行わせ、当該判定処理の結果と、当該判定処理を行わせた回数とに基づいて、前記ＵＲＩから配信される配信情報の解析を行うか否かを判定する解析実行可否判定部と、
前記解析実行可否判定部によって解析を行うと判定されると、前記判定処理が行われた回数に基づいて、前記ＵＲＩから配信される配信情報に更新がなかった期間の長さを示す未更新期間指標値を算出する指標値算出部と、
前記未更新期間指標値に基づいて、解析を行うと判定された複数の前記ＵＲＩから配信される配信情報を解析する順番を示す優先順位を決定する優先順位決定部と、
前記優先順位に基づいて、前記ＵＲＩから配信される配信情報を取得し、当該配信情報が予め定められた不正な配信情報であるか否かを判定する解析部と、
を備えることを特徴とする配信情報解析装置。
【請求項２】
前記ヘッダ情報更新判定部は、前記ヘッダ情報に含まれる定められた複数項目の情報に基づいて前記判定処理を行う第１のヘッダ情報更新判定部と、前記複数項目より少ない項目数の情報に基づいて前記判定処理を行う第２のヘッダ情報更新判定部とを備える
ことを特徴とする請求項１に記載の配信情報解析装置。
【請求項３】
前記配信情報更新判定部は、前記ＵＲＩから配信される配信情報のハッシュ値が、前回取得した配信情報のハッシュ値と一致するか否かを判定することにより、配信情報に更新があったか否かを判定する
ことを特徴とする請求項１または請求項２に記載の配信情報解析装置。
【請求項４】
前記解析実行可否判定部は、前記ＵＲＩから配信される配信情報がテキスト情報である場合は前記配信情報更新判定部に判定処理を行わせ、前記ＵＲＩから配信される配信情報がテキスト情報でない場合は前記ヘッダ情報更新判定部に判定処理を行わせる
ことを特徴とする請求項１から請求項３までのいずれか１項に記載の配信情報解析装置。
【請求項５】
解析対象の配信情報を配信するドメインを示す複数のドメイン情報が記憶されているドメイン情報記憶部と、
前記ドメイン情報記憶部に記憶されている前記ドメイン情報を読み出し、当該ドメイン情報が示すドメインから配信される配信情報のＵＲＩを抽出し、抽出した当該ＵＲＩを前記ＵＲＩ情報記憶部に記憶させるＵＲＩ抽出部と、
を備えることを特徴とする請求項１から請求項４までのいずれか１項に記載の配信情報解析装置。
【請求項６】
前記解析実行可否判定部は、前記ドメインから配信される配信情報のＵＲＩの数と、当該ＵＲＩの階層とに基づいて、前記配信情報更新判定部と前記ヘッダ情報更新判定部とに前記判定処理を行わせる回数の上限値を決定する
ことを特徴とする請求項５に記載の配信情報解析装置。
【請求項７】
配信要求の宛先を示す複数のＵＲＩであって、当該ＵＲＩを宛先として配信要求を送信すると解析対象の配信情報が配信されるＵＲＩが記憶されているＵＲＩ情報記憶部と、前記ＵＲＩから配信される配信情報を取得し、取得した配信情報に更新があったか否かを判定する判定処理を行う配信情報更新判定部と、前記ＵＲＩから配信情報のヘッダ情報のみを取得し、取得したヘッダ情報に基づいて当該ＵＲＩから配信される配信情報に更新があったか否かを判定する判定処理を行うヘッダ情報更新判定部と、を備える配信情報解析装置が、
前記ＵＲＩ情報記憶部に記憶されている複数のＵＲＩについて、前記配信情報更新判定部による判定処理と、前記ヘッダ情報更新判定部による判定処理とのいずれかまたは双方を行わせ、当該判定処理の結果と、当該判定処理を行わせた回数とに基づいて、前記ＵＲＩから配信される配信情報の解析を行うか否かを判定するステップと、
解析を行うと判定すると、前記判定処理が行われた回数に基づいて、前記ＵＲＩから配信される配信情報に更新がなかった期間の長さを示す未更新期間指標値を算出するステップと、
前記未更新期間指標値に基づいて、解析を行うと判定された複数の前記ＵＲＩから配信される配信情報を解析する順番を示す優先順位を決定するステップと、
前記優先順位に基づいて、前記ＵＲＩから配信される配信情報を取得し、当該配信情報が予め定められた不正な配信情報であるか否かを判定するステップと、
を備えることを特徴とする配信情報解析方法。
【請求項８】
配信要求の宛先を示す複数のＵＲＩであって、当該ＵＲＩを宛先として配信要求を送信すると解析対象の配信情報が配信されるＵＲＩが記憶されているＵＲＩ情報記憶部を備える配信情報解析装置のコンピュータを、
前記ＵＲＩから配信される配信情報を取得し、取得した配信情報に更新があったか否かを判定する判定処理を行う配信情報更新判定部、
前記ＵＲＩから配信情報のヘッダ情報のみを取得し、取得したヘッダ情報に基づいて当該ＵＲＩから配信される配信情報に更新があったか否かを判定する判定処理を行うヘッダ情報更新判定部、
前記ＵＲＩ情報記憶部に記憶されている複数のＵＲＩについて、前記配信情報更新判定部による判定処理と、前記ヘッダ情報更新判定部による判定処理とのいずれかまたは双方を行わせ、当該判定処理の結果と、当該判定処理を行わせた回数とに基づいて、前記ＵＲＩから配信される配信情報の解析を行うか否かを判定する解析実行可否判定部、
前記解析実行可否判定部によって解析を行うと判定されると、前記判定処理が行われた回数に基づいて、前記ＵＲＩから配信される配信情報に更新がなかった期間の長さを示す未更新期間指標値を算出する指標値算出部、
前記未更新期間指標値に基づいて、解析を行うと判定された複数の前記ＵＲＩから配信される配信情報を解析する順番を示す優先順位を決定する優先順位決定部、
前記優先順位に基づいて、前記ＵＲＩから配信される配信情報を取得し、当該配信情報が予め定められた不正な配信情報であるか否かを判定する解析部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配信サーバから配信される配信情報を解析する技術に関する。
【背景技術】
【０００２】
インターネット等のネットワークを介して、様々な配信情報が配信されている。例えば、配信サーバに付与されたドメイン（例えば、www.aaa.com）の配下に複数階層のＵＲＩ（Uniform Resource Identifier）（例えば、「http://www.aa.com/index.html」、「http://www.aa.com/aa/aa.html」等）を持ち、自身のドメイン配下のＵＲＩを宛先とする配信要求を受信すると、そのＵＲＩに対応する配信情報を配信する。特許文献１には、このような配信情報であるウェブページを配信する配信サーバのサーバ名や配信サーバに近いルータ名が、予め定められた不正なものであるか否かに基づいて、そのウェブページが有害情報等を含むか否かを判定することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２４８５００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の方法では、例えば、サーバ名やルータ名は不正なものではないが、配信サーバが攻撃を受けて改ざんされた配信情報を配信しているようなことの検知は遅れてしまう可能性がある。そこで、このような改ざんが行われたことを、効率良く検知することが望ましい。
【０００５】
本発明は、このような状況に鑑みてなされたもので、配信情報の改ざんを検知する配信情報解析装置、配信情報解析方法、配信情報解析プログラムを提供する。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明は、配信要求の宛先を示す複数のＵＲＩであって、ＵＲＩを宛先として配信要求を送信すると解析対象の配信情報が配信されるＵＲＩが記憶されているＵＲＩ情報記憶部と、ＵＲＩから配信される配信情報を取得し、取得した配信情報に更新があったか否かを判定する判定処理を行う配信情報更新判定部と、ＵＲＩから配信情報のヘッダ情報のみを取得し、取得したヘッダ情報に基づいてＵＲＩから配信される配信情報に更新があったか否かを判定する判定処理を行うヘッダ情報更新判定部と、ＵＲＩ情報記憶部に記憶されている複数のＵＲＩについて、配信情報更新判定部による判定処理と、ヘッダ情報更新判定部による判定処理とのいずれかまたは双方を行わせ、判定処理の結果と、判定処理を行わせた回数とに基づいて、ＵＲＩから配信される配信情報の解析を行うか否かを判定する解析実行可否判定部と、解析実行可否判定部によって解析を行うと判定されると、判定処理が行われた回数に基づいて、ＵＲＩから配信される配信情報に更新がなかった期間の長さを示す未更新期間指標値を算出する指標値算出部と、未更新期間指標値に基づいて、解析を行うと判定された複数のＵＲＩから配信される配信情報を解析する順番を示す優先順位を決定する優先順位決定部と、優先順位に基づいて、ＵＲＩから配信される配信情報を取得し、配信情報が予め定められた不正な配信情報であるか否かを判定する解析部と、を備えることを特徴とする配信情報解析装置である。
【０００７】
また、本発明は、ヘッダ情報更新判定部が、ヘッダ情報に含まれる定められた複数項目の情報に基づいて判定処理を行う第１のヘッダ情報更新判定部と、複数項目より少ない項目数の情報に基づいて判定処理を行う第２のヘッダ情報更新判定部とを備えることを特徴とする。
【０００８】
また、本発明は、配信情報更新判定部が、ＵＲＩから配信される配信情報のハッシュ値が、前回取得した配信情報のハッシュ値と一致するか否かを判定することにより、配信情報に更新があったか否かを判定することを特徴とする。
【０００９】
また、本発明は、解析実行可否判定部が、ＵＲＩから配信される配信情報がテキスト情報である場合は配信情報更新判定部に判定処理を行わせ、ＵＲＩから配信される配信情報がテキスト情報でない場合はヘッダ情報更新判定部に判定処理を行わせることを特徴とする。
【００１０】
また、本発明は、上述の配信情報解析装置が、解析対象の配信情報を配信するドメインを示す複数のドメイン情報が記憶されているドメイン情報記憶部と、ドメイン情報記憶部に記憶されているドメイン情報を読み出し、ドメイン情報が示すドメインから配信される配信情報のＵＲＩを抽出し、抽出したＵＲＩをＵＲＩ情報記憶部に記憶させるＵＲＩ抽出部と、を備えることを特徴とする。
【００１１】
また、本発明は、解析実行可否判定部が、ドメインから配信される配信情報のＵＲＩの数と、ＵＲＩの階層とに基づいて、配信情報更新判定部とヘッダ情報更新判定部とに判定処理を行わせる回数の上限値を決定することを特徴とする。
【００１２】
また、本発明は、配信要求の宛先を示す複数のＵＲＩであって、ＵＲＩを宛先として配信要求を送信すると解析対象の配信情報が配信されるＵＲＩが記憶されているＵＲＩ情報記憶部と、ＵＲＩから配信される配信情報を取得し、取得した配信情報に更新があったか否かを判定する判定処理を行う配信情報更新判定部と、ＵＲＩから配信情報のヘッダ情報のみを取得し、取得したヘッダ情報に基づいてＵＲＩから配信される配信情報に更新があったか否かを判定する判定処理を行うヘッダ情報更新判定部と、を備える配信情報解析装置が、ＵＲＩ情報記憶部に記憶されている複数のＵＲＩについて、配信情報更新判定部による判定処理と、ヘッダ情報更新判定部による判定処理とのいずれかまたは双方を行わせ、判定処理の結果と、判定処理を行わせた回数とに基づいて、ＵＲＩから配信される配信情報の解析を行うか否かを判定するステップと、解析を行うと判定すると、判定処理が行われた回数に基づいて、ＵＲＩから配信される配信情報に更新がなかった期間の長さを示す未更新期間指標値を算出するステップと、未更新期間指標値に基づいて、解析を行うと判定された複数のＵＲＩから配信される配信情報を解析する順番を示す優先順位を決定するステップと、優先順位に基づいて、ＵＲＩから配信される配信情報を取得し、配信情報が予め定められた不正な配信情報であるか否かを判定するステップと、を備えることを特徴とする配信情報解析方法である。
【００１３】
また、本発明は、配信要求の宛先を示す複数のＵＲＩであって、ＵＲＩを宛先として配信要求を送信すると解析対象の配信情報が配信されるＵＲＩが記憶されているＵＲＩ情報記憶部を備える配信情報解析装置のコンピュータを、ＵＲＩから配信される配信情報を取得し、取得した配信情報に更新があったか否かを判定する判定処理を行う配信情報更新判定部、ＵＲＩから配信情報のヘッダ情報のみを取得し、取得したヘッダ情報に基づいてＵＲＩから配信される配信情報に更新があったか否かを判定する判定処理を行うヘッダ情報更新判定部、ＵＲＩ情報記憶部に記憶されている複数のＵＲＩについて、配信情報更新判定部による判定処理と、ヘッダ情報更新判定部による判定処理とのいずれかまたは双方を行わせ、判定処理の結果と、判定処理を行わせた回数とに基づいて、ＵＲＩから配信される配信情報の解析を行うか否かを判定する解析実行可否判定部、解析実行可否判定部によって解析を行うと判定されると、判定処理が行われた回数に基づいて、ＵＲＩから配信される配信情報に更新がなかった期間の長さを示す未更新期間指標値を算出する指標値算出部、未更新期間指標値に基づいて、解析を行うと判定された複数のＵＲＩから配信される配信情報を解析する順番を示す優先順位を決定する優先順位決定部、優先順位に基づいて、ＵＲＩから配信される配信情報を取得し、配信情報が予め定められた不正な配信情報であるか否かを判定する解析部、として機能させるためのプログラムである。
【発明の効果】
【００１４】
以上説明したように、本発明によれば、配信情報解析装置が、解析対象のＵＲＩから配信される配信情報に更新があったか否かを判定する判定処理を行う配信情報更新判定部と、ＵＲＩから配信情報のヘッダ情報のみを取得して配信情報に更新があったか否かを判定する判定処理を行うヘッダ情報更新判定部とを備え、解析対象の複数のＵＲＩについて、上記２つの判定処理のいずれかまたは双方を行わせて配信情報の解析を行うか否かを判定し、解析を行うと判定すると、配信情報に更新がなかった期間の長さを示す未更新期間指標値を算出し、未更新期間指標値に基づいて、解析を行うと判定された複数のＵＲＩから配信される配信情報を解析する順番を示す優先順位を決定し、優先順位に基づいて、ＵＲＩから配信される配信情報を取得し、配信情報が予め定められた不正な配信情報であるか否かを判定するようにしたので、配信情報の改ざんを検知することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態による通信システムの構成を示すブロック図である。
【図２】本発明の一実施形態によるドメイン情報記憶部に記憶されるドメイン情報のデータ例を示す図である。
【図３】本発明の一実施形態によるＵＲＩ情報記憶部に記憶されるＵＲＩ情報のデータ例を示す図である。
【図４】本発明の一実施形態による解析情報記憶部に記憶される解析情報のデータ例を示す図である。
【図５】本発明の一実施形態による解析実行時間記憶部に記憶される解析実行時間のデータ例を示す図である。
【図６】本発明の一実施形態による攻撃情報記憶部に記憶される攻撃情報のデータ例を示す図である。
【図７】本発明の一実施形態による悪性振る舞い記憶部に記憶される振る舞い情報のデータ例を示す図である。
【図８】本発明の一実施形態によるシステム運用者情報記憶部に記憶されるシステム運用者情報のデータ例を示す図である。
【図９】本発明の一実施形態によるＵＲＩ抽出処理の動作例を示すフローチャートである。
【図１０】本発明の一実施形態による事前巡回処理の動作例を示すフローチャートである。
【図１１】本発明の一実施形態の配信情報更新判定部による判定処理の動作例を示すフローチャートである。
【図１２】本発明の一実施形態の第１のヘッダ情報更新判定部による判定処理の動作例を示すフローチャートである。
【図１３】本発明の一実施形態の第２のヘッダ情報更新判定部による判定処理の動作例を示すフローチャートである。
【図１４】本発明の一実施形態による本巡回スケジューリング処理の動作例を示すフローチャートである。
【図１５】本発明の一実施形態による本巡回処理の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態について、図面を参照して説明する。
図１は、本実施形態による通信システム１の構成を示すブロック図である。通信システム１は、複数の配信サーバ１００（配信サーバ１００−１、配信サーバ１００−２、配信サーバ１００−３、・・・）と、複数の配信サーバ１００にネットワークを介して接続された配信情報解析装置２００とを備えている。配信サーバ１００−１、配信サーバ１００−２、配信サーバ１００−３は同様の構成であるので、特に区別をしない場合には配信サーバ１００として説明する。図には３台の配信サーバ１００を示して説明するが、任意の台数の配信サーバ１００がネットワークを介して接続されていてもよい。
【００１７】
配信サーバ１００は、定められたドメインに対して複数階層のＵＲＩを持ち、自身のドメイン配下のＵＲＩを宛先とする配信要求を受信すると、そのＵＲＩに対応する配信情報を配信するコンピュータ装置である。例えば、配信サーバ１００は、ウェブサーバの機能を備えており、定められたＵＲＩ毎に、ＨＴＭＬ（HyperText Markup Language）ファイルやＣＳＳ（Cascading Style Sheets）ファイル等のウェブページや、画像ファイル、音声ファイル、動画ファイル等の配信情報を対応付けて記憶している。配信サーバ１００は、そのＵＲＩを宛先とする配信要求に応じて、対応付けられた配信情報を配信する。
【００１８】
配信情報解析装置２００は、配信サーバ１００から配信される配信情報を解析し、配信情報の改ざんを検知するコンピュータ装置である。配信情報解析装置２００は、記憶部２１０と、ＵＲＩ抽出部２２０と、事前巡回処理部２３０と、本巡回スケジューリング部２４０と、本巡回処理部２５０とを備えている。ＵＲＩ抽出部２２０は、改ざん検知の監視対象であるＵＲＩを抽出する。事前巡回処理部２３０は、ＵＲＩ抽出部２２０が抽出したＵＲＩから配信される配信情報が更新されたか否かを判定する判定処理を行う。本巡回スケジューリング部２４０は、配信情報が更新されたと事前巡回処理部２３０によって判定されたＵＲＩについて、その更新が不正なものであるか否かを解析する優先順位を決定する。本巡回処理部２５０は、本巡回スケジューリング部２４０が決定した優先順位に基づいて、ＵＲＩから配信情報が不正なものであるか否かを解析する解析処理を行う。以下、このような配信情報解析装置２００の構成について詳細に説明する。
【００１９】
記憶部２１０には、配信情報解析装置２００が動作するために参照する情報が記憶されており、ドメイン情報記憶部２１１と、ＵＲＩ情報記憶部２１２と、解析情報記憶部２１３と、解析実行時間記憶部２１４と、攻撃情報記憶部２１５と、悪性振る舞い記憶部２１６と、システム運用者情報記憶部２１７とを備えている。
【００２０】
ドメイン情報記憶部２１１には、解析対象の配信情報を配信するドメインを示す複数のドメイン情報が記憶されている。図２は、ドメイン情報記憶部２１１に記憶されるドメイン情報のデータ例を示す図である。ドメイン情報記憶部２１１には、識別情報である項番に、ドメイン情報とＵＲＩ数とが対応付けられて記憶される。ドメイン情報は、予めシステム運用者によって入力される情報であり、監視対象であるドメインを示す。例えば、システム運用者は、監視対象である配信サーバ１００のドメインを予め入力してドメイン情報記憶部２１１に記憶させておく。ＵＲＩ数は、対応するドメイン配下のＵＲＩの数であり、ＵＲＩ抽出部２２０によって記憶される。
【００２１】
ＵＲＩ情報記憶部２１２には、監視対象であるドメイン配下の配信要求の宛先を示す複数のＵＲＩであって、そのＵＲＩを宛先として配信要求を送信すると解析対象の配信情報が配信されるＵＲＩが記憶されている。図３は、ＵＲＩ情報記憶部２１２に記憶されるＵＲＩ情報のデータ例を示す図である。ＵＲＩ情報には、識別情報である項番毎に、ドメイン情報と、ＵＲＩと、階層情報と、ページ種別と、基本情報と、未更新カウンタＡと、未更新カウンタＢと、未更新カウンタＣと、未更新カウンタＡ閾値と、未更新カウンタＢ閾値と、未更新カウンタＣ閾値と、パターンと、ハッシュ値と、更新有無と、初巡回フラグとの情報が対応付けられる。
【００２２】
ドメイン情報と、ＵＲＩと、階層情報と、ページ種別との情報は、ＵＲＩ抽出部２２０によって取得され、記憶される。ドメイン情報は、対応するＵＲＩのドメインである。ＵＲＩは、対応するドメイン配下のＵＲＩである。階層情報は、対応するＵＲＩのドメイン配下の階層を示す。例えば、階層情報は、ドメイン直下のトップページの階層を１とし、階層が深くなる毎に１の値が加算された値である。このとき、ドメイン「www.aa.com」における直下であるＵＲＩ「http://www.aa.com/index.html」の階層は１である。ページ種別は、対応するＵＲＩから配信される配信情報のページ種別を示す。
【００２３】
基本情報と、未更新カウンタＡと、未更新カウンタＢと、未更新カウンタＣと、未更新カウンタＡ閾値と、未更新カウンタＢ閾値と、未更新カウンタＣ閾値と、パターンと、ハッシュ値と、更新有無との情報は、事前巡回処理部２３０によって記憶される。
基本情報は、対応するＵＲＩから配信される配信情報のヘッダに含まれる情報であり、ここでは、ｃｏｎｔｅｎｔ−ｔｙｐｅと、ｌａｓｔ−ｍｏｄｉｆｉｅｄと、ｃｏｎｔｅｎｔ−ｌｅｎｇｔｈと、ステータスコードとの情報が含まれる。ｃｏｎｔｅｎｔ−ｔｙｐｅは、配信情報の種別を示す。ｌａｓｔ−ｍｏｄｉｆｉｅｄは、配信情報が更新された日時を示す。ｃｏｎｔｅｎｔ−ｌｅｎｇｔｈは、配信情報のデータ量を示す。ステータスコードは、対応するＵＲＩを宛先とする配信要求（ＨＴＴＰ（Hypertext Transfer Protocol）リクエスト）に応じた配信サーバ１００からのレスポンスの意味を示す。
【００２４】
未更新カウンタＡ、未更新カウンタＢ、未更新カウンタＣは、事前巡回処理部２３０によって配信情報の更新があったか否かがループして複数回判定される際に、更新がなかった（未更新であった）と判定された回数を示す変数である。未更新カウンタＡ閾値と、未更新カウンタＢ閾値と、未更新カウンタＣ閾値とは、対応する未更新カウンタの閾値（上限値）を示す値である。パターンは、第２のヘッダ情報更新判定部２３４による更新判定処理において参照される値である。初期値は０であり、第２のヘッダ情報更新判定部２３４によって選択された値が記憶される。未更新カウンタとパターンとについては、処理の説明とともに後述する。ハッシュ値は、配信情報更新判定部２３１によって算出され、記憶される配信情報に基づくハッシュ値である。更新有無は、対応するＵＲＩから配信される配信情報に更新があったか否かを示す値である。更新有無が０である場合は更新が無いことを示し、更新有無が１である場合は更新が有ったことを示す。対応するＵＲＩからの配信情報を一度も取得していない場合は、更新有無に２の値が対応付けられる。初巡回フラグは、対応するＵＲＩからの配信情報を一度も取得していないか否か（初巡回であるか否か）を示す。ここでは、対応するＵＲＩからの配信情報を一度も取得していない（初巡回である）場合は１が対応付けられ、対応するＵＲＩからの配信情報を既に取得している（初巡回でない）場合は０が対応付けられる。初期値は１である。
【００２５】
解析情報記憶部２１３には、解析対象のＵＲＩ毎に行う配信情報の解析処理において参照される解析情報が記憶される。図４は、解析情報記憶部２１３に記憶される解析情報のデータ例を示す図である。解析情報には、識別情報である項番毎に、ドメイン情報と、ＵＲＩと、未更新期間指標値と、更新有無と、優先順位と、改ざん有無との情報が対応付けられる。ドメイン情報は、解析対象であるＵＲＩのドメインである。ＵＲＩは、解析対象のＵＲＩである。未更新期間指標値は、事前巡回処理部２３０による判定処理の結果と判定処理が行われた回数とに基づいて算出される値であり、対応するＵＲＩから配信される配信情報が更新されていない期間の長さを示す。更新有無は、対応するＵＲＩから配信される配信情報に更新があったか否かを示す。優先順位は、対応するＵＲＩに対する解析処理を行う順番を示す。例えば、優先順位の値が小さいほど、優先して早い順番で解析処理が行われる。改ざん有無は、対応するＵＲＩから配信される配信情報の解析処理を行った結果、配信情報の改ざんが検知されたか否かを示す。例えば、改ざん有無が０であれば改ざんが無いと判定されたことを示し、改ざん有無が１であれば改ざんが有ったと判定されたことを示す。
【００２６】
解析実行時間記憶部２１４には、本巡回処理部２５０による配信情報の解析処理が行われた時間を示す。図５は、解析実行時間記憶部２１４に記憶される解析実行時間のデータ例を示す図である。解析実行時間は、例えば、解析処理が行われた時刻を「ＹＹＹＹ／ＭＭ／ＤＤ  ｈｈ：ｍｍ：ｓｓ」の形式で示す情報である。
攻撃情報記憶部２１５には、本巡回処理部２５０による解析処理において参照される攻撃情報が記憶される。図６は、攻撃情報記憶部２１５に記憶される攻撃情報のデータ例を示す図である。ここでは、識別情報である項番毎に、攻撃情報が対応付けられる。攻撃情報は、攻撃によって配信情報が改ざんされた場合に、改ざん後の配信情報に含まれている可能性が高い文字列である。例えば、不正なウェブページのＵＲＩ（http://www.xx.com/index.html）や、不正な動作を起こすスクリプト（<script>…）や、攻撃を行ったことを示す文字列（Hack）等である。
【００２７】
悪性振る舞い記憶部２１６には、本巡回処理部２５０による解析処理において参照される振る舞い情報が記憶される。図７は、悪性振る舞い記憶部２１６に記憶される振る舞い情報のデータ例を示す図である。ここでは、識別情報である項番毎に、振る舞い情報が対応付けられる。振る舞い情報は、攻撃によって配信情報が改ざんされた場合に、改ざん後の配信情報をブラウザに表示した際に起きる可能性が高いブラウザの振る舞いを示している。例えば、リダイレクト処理が実行されることや、クライアント端末の脆弱性を突く通信が存在すること等である。クライアント端末の脆弱性を突く通信とは、例えば配信情報に応じてクライアント端末において特定のアプリケーションが起動される際に、そのアプリケーションの脆弱性を突いて起こす不正な振る舞いである。
【００２８】
システム運用者情報記憶部２１７には、システム運用者の情報が記憶される。図８は、システム運用者情報記憶部２１７に記憶されるシステム運用者情報のデータ例を示す図である。システム運用者情報には、識別情報である項番毎に、システム運用者の氏名と、そのシステム運用者のメールアドレスとが対応付けられる。
【００２９】
図１に戻り、ＵＲＩ抽出部２２０は、ドメイン情報記憶部２１１に記憶されているドメイン情報を読み出し、読み出したドメイン情報が示すドメインから配信される配信情報のＵＲＩを抽出し、抽出したＵＲＩをＵＲＩ情報記憶部２１２に記憶させる。
事前巡回処理部２３０は、ＵＲＩ情報記憶部２１２に記憶されたＵＲＩを判定対象として、判定対象のＵＲＩから配信される配信情報に更新があったか否かを判定し、更新があった場合にはそのＵＲＩを解析情報記憶部２１３に記憶させる事前巡回処理を行う。ここで、更新とは、そのＵＲＩの正規の管理者による更新と、第三者による不正な変更（改ざん）とを含む。事前巡回処理部２３０は、配信情報更新判定部２３１と、ヘッダ情報更新判定部２３２と、解析実行可否判定部２３５と、指標値算出部２３６とを備えている。
【００３０】
配信情報更新判定部２３１は、ＵＲＩ情報記憶部２１２に記憶されている判定対象のＵＲＩを読み出し、読み出したＵＲＩを宛先として配信要求を送信し、送信した配信要求に応じて宛先から配信される配信情報を取得し、取得した配信情報に更新があったか否かを判定する判定処理を行う。例えば、配信情報更新判定部２３１は、判定対象のＵＲＩから配信される配信情報のハッシュ値をＵＲＩ情報記憶部２１２に記憶させておき、新たに判定対象のＵＲＩから取得した配信情報に基づいてハッシュ値を算出し、前回取得した配信情報のハッシュ値と新たに算出したハッシュ値とが一致するか否かを判定することにより、配信情報に更新があったか否かを判定する。配信情報が変更されればハッシュ値も変更するため、このような判定処理により、配信情報に変更があったか否かを精度良く判定できる。ここで、配信情報更新判定部２３１は、ブラウザを用いることなく、判定対象のＵＲＩが示す配信サーバ１００と通信を行う。また、配信情報更新判定部２３１は、予め定められたハッシュアルゴリズムを自身の記憶領域に記憶しているものとする。
【００３１】
ヘッダ情報更新判定部２３２は、ＵＲＩ情報記憶部２１２に記憶されている判定対象のＵＲＩを読み出し、読み出したＵＲＩを宛先としてヘッダ情報のみの配信要求を送信し、送信した配信要求に応じて宛先から配信されるヘッダ情報を取得し、取得したヘッダ情報に基づいて判定対象のＵＲＩから配信される配信情報に更新があったか否かを判定する判定処理を行う。ヘッダ情報のみの配信要求とは、例えばＨＥＡＤメソッドを指定したＨＴＴＰリクエストメッセージである。例えば、ヘッダ情報更新判定部２３２は、判定対象のＵＲＩから配信されるヘッダ情報を基本情報としてＵＲＩ情報記憶部２１２に記憶させておき、新たに判定対象のＵＲＩから取得したヘッダ情報を算出し、前回取得したヘッダ情報と新たに取得したヘッダ情報とが一致するか否かを判定する。これにより、配信情報に更新があったか否かを判定する。ヘッダ情報更新判定部２３２は、第１のヘッダ情報更新判定部２３３と、第２のヘッダ情報更新判定部２３４とを備えている。
【００３２】
第１のヘッダ情報更新判定部２３３は、ヘッダ情報に含まれる定められた複数項目の基本情報に基づいて判定処理を行う。ここでは、ヘッダ情報に含まれる項目のうち、ｃｏｎｔｅｎｔ−ｔｙｐｅと、ｌａｓｔ−ｍｏｄｉｆｉｅｄと、ｃｏｎｔｅｎｔ−ｌｅｎｇｔｈと、ステータスコードとの４項目の情報に基づいて判定処理を行う例を説明する。例えば、配信情報の種別が変更されれば、ｃｏｎｔｅｎｔ−ｔｙｐｅの値が変更されるため配信情報が変更されたことを検知できる。配信情報が更新されれば、ｌａｓｔ−ｍｏｄｉｆｉｅｄの値が更新されるため配信情報が変更されたことを検知できる。配信情報が変更されてデータ量が変更すれば、ｃｏｎｔｅｎｔ−ｌｅｎｇｔｈの値が変更されるため配信情報が変更されたことを検知できる。宛先がリダイレクトされるように変更されれば、ステータスコードが変更されるため配信情報が変更されたことを検知できる。ただし、ここに挙げた他の項目のヘッダ情報を用いて判定処理を行ってもよい。このようにヘッダ情報による判定処理を行えば、配信情報の実体を取得する必要がないため、配信情報更新判定部２３１が配信情報の実体を取得してハッシュ値を算出することに比べて、より低負荷、高速に判定処理を行うことができる。
【００３３】
第２のヘッダ情報更新判定部２３４は、第１のヘッダ情報更新判定部２３３が行う複数項目より少ない項目数の基本情報に基づいて同様の判定処理を行う。例えば、４つの項目からランダムに選択した２つの項目の情報を用いて、判定処理を行う。ヘッダ情報の４つの基本情報の項目から２つの項目を選択するパターン数は、４Ｃ２＝６パターンである。そこで、第２のヘッダ情報更新判定部２３４は、このようなパターンをランダムに選択し、選択したパターンを識別する値を、判定対象のＵＲＩに対応付けてＵＲＩ情報記憶部２１２に記憶させる。このように、取得する項目数、比較する項目数を少なくすることで、第１のヘッダ情報更新判定部２３３による判定処理に比べて、より低負荷、高速に判定処理を行うことができる。
【００３４】
このように、本実施形態の事前巡回処理部２３０は、異なる方法によって判定対象のＵＲＩから配信される配信情報が更新されたか否かを判定する判定処理を行うヘッダ情報更新判定部２３２と、第１のヘッダ情報更新判定部２３３と、第２のヘッダ情報更新判定部２３４とを備えている。配信情報更新判定部２３１による判定処理は第１のヘッダ情報更新判定部２３３による判定処理よりも精度が高く、第１のヘッダ情報更新判定部２３３による判定処理は第２のヘッダ情報更新判定部２３４による判定処理よりも精度が高い。一方、第２のヘッダ情報更新判定部２３４による判定処理は第１のヘッダ情報更新判定部２３３による判定処理よりも処理負荷が小さく高速であり、第１のヘッダ情報更新判定部２３３による判定処理は配信情報更新判定部２３１による判定処理よりも処理負荷が小さく高速である。
【００３５】
解析実行可否判定部２３５は、このようなヘッダ情報更新判定部２３２と、ヘッダ情報更新判定部２３２と、第２のヘッダ情報更新判定部２３４との判定処理を、判定対象のＵＲＩから配信される配信情報の特性に応じて使い分けることで、配信情報が更新されたか否かを精度良く、効率良く判定する。すなわち、解析実行可否判定部２３５は、ＵＲＩ情報記憶部２１２に記憶されている複数のＵＲＩについて、配信情報更新判定部２３１による判定処理と、第１のヘッダ情報更新判定部２３３による判定処理と、第２のヘッダ情報更新判定部２３４による判定処理とのいずれかまたは複数を行わせ、その判定処理の結果と、その判定処理を行わせた回数とに基づいて、判定対象のＵＲＩから配信される配信情報の解析を行うか否かを判定する。また、解析実行可否判定部２３５は、配信情報の解析を行うと判定したＵＲＩを、解析情報記憶部２１３に記憶させる。
【００３６】
指標値算出部２３６は、解析実行可否判定部２３５によって判定対象のＵＲＩから配信される配信情報の解析を行うと判定されると、事前巡回処理部２３０による判定処理が行われた回数に基づいて、判定対象のＵＲＩから配信される配信情報に更新がなかった期間の長さを示す未更新期間指標値を算出する。指標値算出部２３６は、算出した未更新期間指標値を、解析情報記憶部２１３に記憶させる。
【００３７】
本巡回スケジューリング部２４０は、解析情報記憶部２１３に記憶されたＵＲＩについて、本巡回処理部２５０が解析処理を行う順序を決定する。本巡回スケジューリング部２４０は、優先順位決定部２４１を備えている。
優先順位決定部２４１は、指標値算出部２３６によって算出された未更新期間指標値に基づいて、解析を行うと判定された複数のＵＲＩから配信される配信情報を解析する順番を示す優先順位を決定する。例えば、優先順位決定部２４１は、未更新期間指標値が示す期間が長いほど、優先順位を上げる。
【００３８】
本巡回処理部２５０は、第１の解析部２５１と、第２の解析部２５２と、ブラウザ２５３と、解析制御部２５４とを備えている。
第１の解析部２５１は、優先順位決定部２４１によって決定された優先順位に基づいて、解析対象のＵＲＩから配信される配信情報を取得し、その配信情報が予め定められた不正な配信情報であるか否かを判定する。具体的には、第１の解析部２５１は、ブラウザ２５３を用いることなく、解析対象のＵＲＩを宛先とした配信要求を配信サーバ１００に送信し、送信した配信要求に応じて配信サーバ１００から配信される配信情報を受信する。また、第１の解析部２５１は、攻撃情報記憶部２１５に記憶されている攻撃情報を読み出し、読み出した攻撃情報に示される文字列が、配信サーバ１００から受信した配信情報に含まれるか否かを判定する。第１の解析部２５１は、攻撃情報に示される文字列が、配信サーバ１００から受信した配信情報に含まれると判定した場合、その配信情報は不正な配信情報であると判定する。一方、第１の解析部２５１は、攻撃情報に示される文字列が、配信サーバ１００から受信した配信情報に含まれないと判定した場合、その配信情報は不正な配信情報でないと判定する。
【００３９】
第２の解析部２５２は、優先順位決定部２４１によって決定された優先順位に基づいて、解析対象のＵＲＩから配信される配信情報を取得し、その配信情報が予め定められた不正な配信情報であるか否かを判定する。具体的には、第２の解析部２５２は、ブラウザ２５３を動作させ、ブラウザ２５３に判定対象のＵＲＩを宛先とした配信要求を配信サーバ１００に送信させ、送信させた配信要求に応じて配信サーバ１００から配信される配信情報をブラウザ２５３に読み込ませる。第２の解析部２５２は、悪性振る舞い記憶部２１６に記憶されている振る舞い情報を読み出し、受信した配信情報に基づくブラウザ２５３の動作が、悪性振る舞い記憶部２１６から読み出した振る舞い情報に一致するか否かを判定する。第２の解析部２５２は、受信した配信情報に基づくブラウザ２５３の動作が、悪性振る舞い記憶部２１６から読み出した振る舞い情報に一致すると判定すると、その配信情報は不正な配信情報であると判定する。一方、第２の解析部２５２は、受信した配信情報に基づくブラウザ２５３の動作が、悪性振る舞い記憶部２１６から読み出した振る舞い情報に一致しないと判定すると、その配信情報は不正な配信情報でないと判定する。
ブラウザ２５３は、入力されるＵＲＩを宛先として配信要求を送信し、送信した配信要求に応じて配信される配信情報を受信して出力するウェブブラウザである。
【００４０】
解析制御部２５４は、上述したような第１の解析部２５１と、第２の解析部２５２との解析処理を、解析対象のＵＲＩから配信される配信情報の特性に応じて使い分けることで、配信情報が改ざんされたか否かを効率良く判定する。解析制御部２５４は、配信情報が改ざんされたと判定すると、システム運用者情報記憶部２１７に記憶されているシステム運用者メールアドレスを読み出し、読み出したシステム運用者メールアドレスを宛先として、そのＵＲＩからの配信情報が改ざんされた可能性があることを通知するメールを送信する。
【００４１】
次に、図面を参照して、本実施形態による配信情報解析装置２００の動作例を詳細に説明する。図９は、本実施形態の配信サーバ１００によるＵＲＩ抽出処理の動作例を示すフローチャートである。
ＵＲＩ抽出部２２０は、ドメイン情報記憶部２１１に記憶されているドメイン情報に対応付けられたＵＲＩを読み出し（ステップＳ１）、読み出したＵＲＩを宛先として配信サーバ１００に配信要求を送信し、そのドメイン配下のＵＲＩの階層情報、ページ種別、配信情報に埋め込まれているＵＲＩを取得する（ステップＳ２）。例えば、ＵＲＩ抽出部２２０は、配信サーバ１００に送信した配信要求に応じてＨＴＭＬファイルが配信されると、そのＨＴＭＬファイルを解析し、ＨＴＭＬファイルに埋め込まれているＡタグ等のリンクを検出し、リンク先のＵＲＩを検出する。
【００４２】
ＵＲＩ抽出部２２０は、検出したリンク先のＵＲＩが、そのドメイン内のＵＲＩであれば（ステップＳ３：ＹＥＳ）、そのＵＲＩと、ドメイン情報と、階層情報と、ページ種別とをＵＲＩ情報記憶部２１２に記憶させる（ステップＳ４）。初巡回フラグには初期値である１を対応付け、他の項目はこの時点では記憶させない。また、ＵＲＩ抽出部２２０は、そのドメインに対応付けられてドメイン情報記憶部２１１に記憶されているＵＲＩ数に１を加算し、カウントアップする（ステップＳ５）。事前巡回処理部２３０は、ステップＳ２において取得したＵＲＩの全てについて処理を行っていなければ、（ステップＳ６：ＮＯ）、ステップＳ３に戻る。全てのＵＲＩについて処理を行うと（ステップＳ６：ＹＥＳ）、ＵＲＩ抽出部２２０は、全てのドメイン情報について処理を行っていなければ（ステップＳ７：ＮＯ）、ステップＳ１に戻る。全てのドメイン情報について処理を行うと（ステップＳ７：ＹＥＳ）、処理を終了する。ステップＳ３において、ＵＲＩ抽出部２２０は、検出したリンク先のＵＲＩが、そのドメイン内のＵＲＩでなければ（ステップＳ３：ＮＯ）、そのＵＲＩをＵＲＩ情報記憶部２１２に記憶させずに、ステップＳ７に進む。ドメイン内のみのＵＲＩを判定対象とし、外部のサイトの改ざん検知は行わないためである。ただし、ＵＲＩ抽出処理において、外部のリンク先についても判定対象のＵＲＩとしてＵＲＩ情報記憶部２１２に記憶させ、改ざん検知を行うこともできる。
【００４３】
図１０は、本実施形態の配信サーバ１００による事前巡回処理の動作例を示すフローチャートである。
事前巡回処理部２３０の解析実行可否判定部２３５は、ＵＲＩ情報記憶部２１２に記憶されている判定対象のＵＲＩ情報を読み出す（ステップＳ１０）。解析実行可否判定部２３５は、読み出したＵＲＩ情報の初巡回フラグが０であるか否かを判定する（ステップＳ１１）。解析実行可否判定部２３５は、ＵＲＩ情報の初巡回フラグが０であると判定すると（ステップＳ１１：ＹＥＳ）、そのドメインに対応付けられてドメイン情報記憶部２１１に記憶されているＵＲＩ数を読み出し、読み出したＵＲＩ数がα以上であるか否かを判定する（ステップＳ１２）。αは正の整数であり、例えば、１０００である。解析実行可否判定部２３５は、自身の記憶領域に予めαの値を記憶させておく。
【００４４】
解析実行可否判定部２３５は、ドメインに対応付けられたＵＲＩ数がα以上であると判定すると（ステップＳ１２：ＹＥＳ）、ステップＳ１３に進む。一方、ドメインに対応付けられたＵＲＩ数がα以上でないと判定すると（ステップＳ１２：ＮＯ）、判定対象のＵＲＩに対応する階層情報がβ未満であるか否かを判定する（ステップＳ１４）。βは正の整数であり、例えば、３である。解析実行可否判定部２３５は、自身の記憶領域に予めβの値を記憶させておく。解析実行可否判定部２３５は、判定対象のＵＲＩに対応する階層情報がβ未満であると判定すると（ステップＳ１４：ＹＥＳ）、その判定対象のＵＲＩに対応付けられたＵＲＩ情報記憶部２１２におけるＵＲＩ情報の未更新カウンタ閾値に、高めの値を記憶させる（ステップＳ１３）。高めの値とは、ステップＳ１５において記憶させる値よりも相対的に高いことをいい、例えば更新カウンタＡ閾値に５、更新カウンタＢ閾値に８、更新カウンタＣ閾値に５の値を記憶させる。
【００４５】
ステップＳ１４において、解析実行可否判定部２３５が、判定対象のＵＲＩに対応する階層情報はβ未満でないと判定すると（ステップＳ１４：ＮＯ）、その判定対象のＵＲＩに対応付けられたＵＲＩ情報記憶部２１２におけるＵＲＩ情報の未更新カウンタ閾値に、低めの値を記憶させる（ステップＳ１５）。低めの値とは、例えば、ステップＳ１３において記憶させる値よりも相対的に低いことをいい、例えば更新カウンタＡ閾値に３、更新カウンタＢ閾値に５、更新カウンタＣ閾値に３の値を記憶させる。このように、解析実行可否判定部２３５は、判定対象のドメインから配信される配信情報のＵＲＩ数と、そのドメインにおける判定対象のＵＲＩの階層とに基づいて、配信情報更新判定部２３１とヘッダ情報更新判定部２３２とに判定処理を行わせる回数の上限値である更新カウンタ閾値を決定する。
【００４６】
ここで、ドメイン配下のＵＲＩ数が多いほど、そのドメインに対するアクセス数は多いと考えられる。また、ドメイン内における階層が浅いほど、そのＵＲＩに対するアクセス数は多いと考えられる。アクセス数が多いと、攻撃の対象として選ばれやすく、攻撃者により改ざんされる可能性が高いと考えられる。一方、更新カウンタ閾値が高いほど、配信情報更新判定部２３１とヘッダ情報更新判定部２３２とによる判定処理は多く行われる。そこで、ドメイン配下のＵＲＩ数が多ければ、あるいはドメイン内における階層が浅ければ、相対的に高い値の更新カウンタ閾値を設定することで、改ざんされやすいＵＲＩについて、精度の高い判定処理を行わせることができる。
【００４７】
次に、解析実行可否判定部２３５は、判定対象のＵＲＩに対応付けられたページ種別が「ｈｔｍｌ／ｃｓｓ」であるか否かを判定する（ステップＳ１６）。解析実行可否判定部２３５が、判定対象のＵＲＩに対応付けられたページ種別は「ｈｔｍｌ／ｃｓｓ」であると判定すると（ステップＳ１６：ＹＥＳ）、判定対象のＵＲＩに対応付けられた更新カウンタＡが更新カウンタＡ閾値未満であるか否かを判定する（ステップＳ１７）。解析実行可否判定部２３５が、判定対象のＵＲＩに対応付けられた更新カウンタＡは更新カウンタＡ閾値未満であると判定すると（ステップＳ１７：ＹＥＳ）、判定対象のＵＲＩについて配信情報更新判定部２３１に判定処理を行わせる（ステップＳ１８）。
【００４８】
ステップＳ１６において、解析実行可否判定部２３５が、判定対象のＵＲＩに対応付けられたページ種別は「ｈｔｍｌ／ｃｓｓ」でないと判定した場合（ステップＳ１６：ＮＯ）、および、ステップＳ１７において、解析実行可否判定部２３５が、判定対象のＵＲＩに対応付けられた更新カウンタＡは更新カウンタＡ閾値未満でないと判定した場合（ステップＳ１７：ＮＯ）、判定対象のＵＲＩに対応付けられた更新カウンタＢが更新カウンタＢ閾値未満であるか否かを判定する（ステップＳ１９）。解析実行可否判定部２３５が、判定対象のＵＲＩに対応付けられた更新カウンタＢは更新カウンタＢ閾値未満であると判定すると（ステップＳ１９：ＹＥＳ）、判定対象のＵＲＩについて第１のヘッダ情報更新判定部２３３に判定処理を行わせる（ステップＳ２０）。
【００４９】
ステップＳ１９において、解析実行可否判定部２３５が、判定対象のＵＲＩに対応付けられた更新カウンタＢは更新カウンタＢ閾値未満でないと判定すると（ステップＳ１９：ＮＯ）、判定対象のＵＲＩについて第２のヘッダ情報更新判定部２３４に判定処理を行わせる（ステップＳ２１）。このように、解析実行可否判定部２３５は、判定対象のＵＲＩから配信される配信情報のページ種別が「ｈｔｍｌ／ｃｓｓ」でありテキスト情報である場合は配信情報更新判定部２３１に判定処理を行わせ、テキスト情報でない場合はヘッダ情報更新判定部２３２に判定処理を行わせる。
【００５０】
上述のように、配信情報更新判定部２３１による判定処理の処理負荷は、ヘッダ情報更新判定部２３２による判定処理の処理負荷よりも大きい。ページ種別が「ｈｔｍｌ／ｃｓｓ」でない配信情報は、例えば文書ファイル、動画ファイル、音声ファイル等の、テキストよりも容量の大きいデータであると推定できるため、ハッシュ値の算出処理等を含む配信情報更新判定部２３１による判定処理を行うと、過大な負荷がかかることがあると考えられる。そこで、本実施形態では、ページ種別が「ｈｔｍｌ／ｃｓｓ」であり、データ容量が相対的に小さいと推定できるテキスト情報である場合にのみ、配信情報更新判定部２３１による判定処理を行わせる。これにより、処理負荷を低減し、効率良く判定処理を行うことができる。
【００５１】
ここで、ステップＳ１８における配信情報更新判定部２３１の判定処理と、ステップＳ２０における第１のヘッダ情報更新判定部２３３の判定処理と、ステップＳ２１における第２のヘッダ情報更新判定部２３４の判定処理とについてそれぞれ詳細に説明する。
図１１は、本実施形態の配信情報更新判定部２３１による判定処理の動作例を示すフローチャートである。
配信情報更新判定部２３１は、ＵＲＩ情報記憶部２１２に記憶されている判定対象のＵＲＩを読み出し、読み出したＵＲＩを宛先として配信要求を送信し、送信した配信要求に応じて宛先から配信される配信情報を取得する。配信情報更新判定部２３１は、取得した配信情報に基づいてハッシュ値を算出する。また、配信情報更新判定部２３１は、判定対象のＵＲＩに対応付けられてＵＲＩ情報記憶部２１２に記憶されているハッシュ値を読み出し、読み出したハッシュ値と、算出したハッシュ値とが一致しているか否かを判定する（ステップＳ３０）。
【００５２】
配信情報更新判定部２３１は、ハッシュ値が一致していると判定すれば（ステップＳ３１：ＹＥＳ）、その判定対象のＵＲＩに対応する更新有無に０を対応付け、更新カウンタＡの値に１を加算して、ＵＲＩ情報記憶部２１２に記憶させる（ステップＳ３２）。ステップＳ３１において、配信情報更新判定部２３１が、ハッシュ値は一致していないと判定すれば（ステップＳ３１：ＮＯ）、その判定対象のＵＲＩに対応する更新有無に１を対応付けて、ＵＲＩ情報記憶部２１２に記憶させる。また、その判定対象のＵＲＩと更新有無が１である値とを対応付けて、解析情報記憶部２１３に記憶させ（ステップＳ３３）、処理を終了する。このように解析情報記憶部２１３にＵＲＩが記憶されることにより、本巡回処理部２５０によって本巡回処理が行われる。
【００５３】
図１２は、本実施形態の第１のヘッダ情報更新判定部２３３による判定処理の動作例を示すフローチャートである。
第１のヘッダ情報更新判定部２３３は、ＵＲＩ情報記憶部２１２に記憶されている判定対象のＵＲＩを読み出し、読み出したＵＲＩを宛先としてヘッダ情報のみの配信要求を送信し、送信した配信要求に応じて宛先から配信されるヘッダ情報を取得する。第１のヘッダ情報更新判定部２３３は、判定対象のＵＲＩに対応付けられてＵＲＩ情報記憶部２１２に記憶されている基本情報の４項目を読み出し、読み出した基本情報と、配信されたヘッダ情報とが一致しているか否かを判定する（ステップＳ４０）。
【００５４】
第１のヘッダ情報更新判定部２３３は、基本情報が一致していると判定すれば（ステップＳ４１：ＹＥＳ）、その判定対象のＵＲＩに対応する更新有無に０を対応付け、更新カウンタＢの値に１を加算して、ＵＲＩ情報記憶部２１２に記憶させる（ステップＳ４２）。ステップＳ４１において、第１のヘッダ情報更新判定部２３３が、基本情報は一致していないと判定すれば（ステップＳ４１：ＮＯ）、その判定対象のＵＲＩに対応する更新有無に１を対応付けて、ＵＲＩ情報記憶部２１２に記憶させる。また、その判定対象のＵＲＩと更新有無が１である値とを対応付けて、解析情報記憶部２１３に記憶させて（ステップＳ４３）、処理を終了する。
【００５５】
図１３は、本実施形態の第２のヘッダ情報更新判定部２３４による判定処理の動作例を示すフローチャートである。
第２のヘッダ情報更新判定部２３４は、ＵＲＩ情報記憶部２１２に記憶されている判定対象のＵＲＩ情報を読み出し、パターンの値が０であるか否かを判定する（ステップＳ５０）。パターンの値が０であれば（ステップＳ５０：ＹＥＳ）、比較するヘッダ情報のパターンをランダムに選択し、選択したパターンを識別する値をＵＲＩ情報記憶部２１２に記憶させる（ステップＳ５１）。ステップＳ５０において、パターンの値が０でなければ（ステップＳ５０：ＮＯ）、パターンに示される２項目のヘッダ情報を、判定対象のＵＲＩから取得する。第２のヘッダ情報更新判定部２３４は、判定対象のＵＲＩに対応付けられてＵＲＩ情報記憶部２１２に記憶されている基本情報のパターンに応じた２項目を読み出し、読み出した２項目の基本情報と、配信されたヘッダ情報の２項目とが一致しているか否かを判定する（ステップＳ５２）。
【００５６】
第２のヘッダ情報更新判定部２３４は、２項目の基本情報が一致していると判定すると（ステップＳ５３：ＹＥＳ）、第２のヘッダ情報更新判定部２３４は、判定対象のＵＲＩに対応付けられてＵＲＩ情報記憶部２１２に記憶されている更新カウンタＣの値を読み出し、更新カウンタＣの値が更新カウンタＣ閾値の値未満であるか否かを判定する（ステップＳ５４）。第２のヘッダ情報更新判定部２３４は、更新カウンタＣの値が更新カウンタＣ閾値の値未満であると判定すると（ステップＳ５４：ＹＥＳ）、その判定対象のＵＲＩに対応する更新有無に０を対応付け、更新カウンタＣの値に１を加算して、ＵＲＩ情報記憶部２１２に記憶させる（ステップＳ５５）。
【００５７】
ステップＳ５４において、第２のヘッダ情報更新判定部２３４が、更新カウンタＣの値は更新カウンタＣ閾値の値未満でないと判定すると（ステップＳ５４：ＮＯ）、その判定対象のＵＲＩに対応する更新有無に０を対応付けてＵＲＩ情報記憶部２１２に記憶させるとともに、その判定対象のＵＲＩを解析情報記憶部２１３に記憶させる（ステップＳ５６）。これにより、判定対象のＵＲＩに対して、本巡回処理部２５０によって本巡回処理が行われる。すなわち、更新カウンタＣが閾値以上になった場合は、長期間の間、判定対象のＵＲＩから配信される配信情報が更新されておらず、本巡回処理部２５０による本巡回処理が長期間の間、行われていないものである。ただし、第２のヘッダ情報更新判定部２３４による判定処理は、ヘッダ情報の２項目のみによる判定であるため、配信情報が更新されているにも関わらず、その２項目の値が変更していないという場合が考えられる。そこで、ここでは、更新カウンタＣが閾値以上になった場合は、本巡回処理部２５０による本巡回処理を行わせるようにしている。
【００５８】
ステップＳ５３において、第２のヘッダ情報更新判定部２３４が、２項目の基本情報は一致していないと判定すると（ステップＳ５３：ＮＯ）、その判定対象のＵＲＩに対応する更新有無に１を対応付けて、ＵＲＩ情報記憶部２１２に記憶させる。また、その判定対象のＵＲＩと更新有無が１である値とを対応付けて、解析情報記憶部２１３に記憶させて（ステップＳ５７）、処理を終了する。
【００５９】
図１０に戻り、ステップＳ１８、ステップＳ２０、ステップＳ２１のいずれかによる判定処理が行われると、指標値算出部２３６は、事前巡回処理部２３０による判定処理が行われた回数を示す更新カウンタの値に基づいて、判定対象のＵＲＩから配信される配信情報に更新がなかった期間の長さを示す未更新期間指標値を算出する。具体的には、指標値算出部２３６は、判定対象のＵＲＩに対応付けられた更新カウンタの値に基づいて、（更新カウンタＡの値×τＡ＋更新カウンタＢの値×τＢ＋更新カウンタＣの値×τＣ）の値を未更新期間指標値として算出する。ここで、τＡ、τＢ、τＣは係数であり、指標値算出部２３６が自身の記憶領域に予め記憶しておく。τＡとτＢとτＣとは、τＡ＞τＢ＞τＣの関係になる値であり、例えば、τＡ＝１．０、τＢ＝０．８、τＣ＝０．５である。
【００６０】
ここで、更新カウンタＡは配信情報更新判定部２３１による判定処理によって未更新であると判定された回数を示す値である。更新カウンタＢは第１のヘッダ情報更新判定部２３３による判定処理によって未更新であると判定された回数を示す値である。更新カウンタＣは第２のヘッダ情報更新判定部２３４による判定処理によって未更新であると判定された回数を示す値である。配信情報更新判定部２３１による判定処理は第１のヘッダ情報更新判定部２３３による判定処理よりも精度が高く、第１のヘッダ情報更新判定部２３３による判定処理は第２のヘッダ情報更新判定部２３４による判定処理よりも精度が高いものであるから、更新カウンタＡの信頼度は更新カウンタＢよりも高く、更新カウンタＢの信頼度は更新カウンタＣよりも高いと考えられる。そこで、このような信頼度に応じた係数（τＡ、τＢ、τＣ）を掛けることにより、より妥当な未更新期間指標値を算出することができる。指標値算出部２３６は、このように算出した未更新期間指標値を、判定対象のＵＲＩに対応付けて解析情報記憶部２１３に記憶させる（ステップＳ２２）。
【００６１】
解析実行可否判定部２３５は、判定対象のＵＲＩに対応付けられてＵＲＩ情報記憶部２１２に記憶されている更新有無の値が１であれば（ステップＳ２３：ＹＥＳ）、その判定対象のＵＲＩに対応する更新カウンタＡと、更新カウンタＢと、更新カウンタＣとの値に０を記憶させてリセットし（ステップＳ２４）、ステップＳ１０に戻り、他の判定対象のＵＲＩについて同様の処理を行う。この場合は、判定対象のＵＲＩが解析情報記憶部２１３に記憶された場合だからである。ステップＳ２３において、判定対象のＵＲＩに対応付けられてＵＲＩ情報記憶部２１２に記憶されている更新有無の値が１でなければ（ステップＳ２３：ＮＯ）、更新カウンタＣが更新カウンタＣ閾値以上であるか否か（更新カウンタＣと一致するか否か）を判定する（ステップＳ２５）。更新カウンタＣが更新カウンタＣ閾値以上であれば（ステップＳ２５：ＹＥＳ）、ステップＳ２４に進み、更新カウンタをリセットする。この場合も、判定対象のＵＲＩが解析情報記憶部２１３に記憶された場合だからである。
【００６２】
ステップＳ２５において、解析実行可否判定部２３５は、更新カウンタＣが更新カウンタＣ閾値以上でないと判定すると（ステップＳ２５：ＮＯ）、ステップＳ１０に戻る。ステップＳ１１において、解析実行可否判定部２３５が、ＵＲＩ情報の初巡回フラグは０でないと判定すると（ステップＳ１１：ＮＯ）、その判定対象のＵＲＩに対応する更新有無に２を対応付け、初回フラグに０を対応付けて、ＵＲＩ情報記憶部２１２に記憶させる。また、その判定対象のＵＲＩと更新有無が２である値とを対応付けて解析情報記憶部２１３に記憶させて（ステップＳ２６）、ステップＳ１０に戻る。
【００６３】
図１４は、本実施形態の配信サーバ１００による本巡回スケジューリング処理の動作例を示すフローチャートである。
本巡回スケジューリング部２４０の優先順位決定部２４１は、解析情報記憶部２１３に記憶されている解析実行時間を読み出し、現在時刻が読み出した解析実行時間からＸ時間経過しているか否かを判定する（ステップＳ６０）。ここで、Ｘは正の数であり、例えば１である。優先順位決定部２４１は、自身の記憶領域にＸの値を予め記憶しておく。
【００６４】
優先順位決定部２４１が、現在時刻は解析実行時間からＸ時間経過していると判定すると（ステップＳ６０：ＹＥＳ）、解析情報記憶部２１３に記憶されている複数のＵＲＩを読み出し、ＵＲＩに対応付けられた更新有無の値が２、０、１の順に並ぶようにソートする（ステップＳ６１）。ここで、更新有無の値が２であるＵＲＩは、一度も本巡回処理部２５０による解析処理を行っていないものであるため、本巡回処理部２５０による解析処理を行っている他のＵＲＩよりも優先順位を高くする。更新有無の値が０であるＵＲＩは、本巡回処理部２５０による解析処理を長期間行っていないものであるため、更新有無の値が１であるＵＲＩよりも優先順位を高くする。そして、更新有無の値が同じであるＵＲＩ同士で、未更新期間指標値が大きい順にソートし、ソートした順番を優先順位として対応付けて解析情報記憶部２１３に記憶させる（ステップＳ６２）。すなわち、本巡回処理部２５０による解析処理を長期間行っていないものほど、優先順位を高くする。ステップＳ６０において、優先順位決定部２４１が、現在時刻は解析実行時間からＸ時間経過していないと判定すれば（ステップＳ６０：ＮＯ）、優先順位の判定処理を行わずに処理を終了する。
【００６５】
図１５は、本実施形態の配信サーバ１００による本巡回処理の動作例を示すフローチャートである。
解析制御部２５４は、解析情報記憶部２１３から、優先順位に応じて解析対象のＵＲＩを読み出す（ステップＳ７０）。そして、解析制御部２５４は、解析対象のＵＲＩに対応付けられたページ種別が「ｈｔｍｌ／ｃｓｓ」であるか否かを判定する（ステップＳ７１）。解析制御部２５４は、解析対象のＵＲＩに対応付けられたページ種別が「ｈｔｍｌ／ｃｓｓ」であると判定すると（ステップＳ７１：ＹＥＳ）、そのドメインのＵＲＩ数がα以上であるか否かを判定する（ステップＳ７２）。αは正の整数であり、例えば、１０００である。解析制御部２５４は、自身の記憶領域に予めαの値を記憶させておく。
【００６６】
解析制御部２５４が、解析対象のドメインのＵＲＩ数がα以上であると判定すると（ステップＳ７２：ＹＥＳ）、第１の解析部２５１に解析処理を行わせる。第１の解析部２５１は、ブラウザ２５３を用いることなく、解析対象のＵＲＩを宛先とした配信要求を配信サーバ１００に送信し、送信した配信要求に応じて配信サーバ１００から配信される配信情報を受信する。そして、第１の解析部２５１は、攻撃情報記憶部２１５に記憶されている攻撃情報を読み出し、読み出した攻撃情報に示される文字列と受信した配信情報とを比較する（ステップＳ７３）。第１の解析部２５１は、攻撃情報に示される文字列が、配信サーバ１００から受信した配信情報に含まれると判定すると（ステップＳ７４：ＹＥＳ）、改ざん有無に１を対応付けて解析情報記憶部２１３に記憶させる。また、解析制御部２５４は、システム運用者情報記憶部２１７に記憶されているメールアドレスを読み出し、読みだしたメールアドレスを宛先として、ＵＲＩからの配信情報が改ざんされた可能性があることを通知するメールを送信する（ステップＳ７５）。
【００６７】
ステップＳ７４において、第１の解析部２５１が、攻撃情報に示される文字列は配信サーバ１００から受信した配信情報に含まれないと判定すると（ステップＳ７４：ＮＯ）、解析対象のＵＲＩの改ざん有無に０を対応付けて、解析情報記憶部２１３に記憶させる（ステップＳ７６）。そして、解析制御部２５４は、解析対象のＵＲＩに対応付けられて解析情報記憶部２１３に記憶されている更新有無の値が２であれば（ステップＳ７７：ＹＥＳ）、ステップＳ７３において取得した配信情報のハッシュ値を算出し、ＵＲＩ情報記憶部２１２に記憶させる（ステップＳ７８）。この場合は、解析対象のＵＲＩに対する解析処理を初めて行う初巡回の場合であり、ＵＲＩ情報記憶部２１２にハッシュ値が記憶されていないからである。ステップＳ７７において、解析制御部２５４が、更新有無の値は２でないと判定すれば（ステップＳ７７：ＮＯ）、ステップＳ７０に戻る。
【００６８】
ステップＳ７１において、解析制御部２５４が、解析対象のＵＲＩに対応付けられたページ種別は「ｈｔｍｌ／ｃｓｓ」でないと判定した場合（ステップＳ７１：ＮＯ）、および、ステップＳ７２において、解析制御部２５４が、解析対象のドメインのＵＲＩ数がα以上でないと判定した場合（ステップＳ７２：ＮＯ）、解析制御部２５４は、第２の解析部２５２に解析処理を行わせる。第２の解析部２５２は、ブラウザ２５３を用いて、解析対象のＵＲＩを宛先とした配信要求を配信サーバ１００に送信し、送信した配信要求に応じて配信サーバ１００から配信される配信情報を受信する。そして、第２の解析部２５２は、悪性振る舞い記憶部２１６に記憶されている振る舞い情報を読み出し、ブラウザ２５３の動作と、読み出した振る舞い情報に示される振る舞いとを比較する（ステップＳ７９）。第２の解析部２５２は、受信した配信情報に基づくブラウザ２５３の動作が、悪性振る舞い記憶部２１６から読み出した振る舞い情報に一致すると判定すると（ステップＳ８０：ＹＥＳ）、改ざん有無に１を対応付けて解析情報記憶部２１３に記憶させる。また、解析制御部２５４は、システム運用者情報記憶部２１７に記憶されているメールアドレスを読み出し、読みだしたメールアドレスを宛先として、ＵＲＩからの配信情報が改ざんされた可能性があることを通知するメールを送信する（ステップＳ８１）。
【００６９】
ステップＳ８０において、第２の解析部２５２が、受信した配信情報に基づくブラウザ２５３の動作が、悪性振る舞い記憶部２１６から読み出した振る舞い情報に一致しないと判定すると（ステップＳ８０：ＮＯ）、解析対象のＵＲＩの改ざん有無に０を対応付けて、解析情報記憶部２１３に記憶させる（ステップＳ８２）。そして、解析制御部２５４は、解析対象のＵＲＩに対応付けられて解析情報記憶部２１３に記憶されている更新有無の値が２であれば（ステップＳ８３：ＹＥＳ）、ステップＳ７９において取得した配信情報のヘッダ情報に含まれる基本情報を、ＵＲＩ情報記憶部２１２に記憶させる（ステップＳ８４）。この場合は、解析対象のＵＲＩに対する解析処理を初めて行う場合であり、ＵＲＩ情報記憶部２１２に基本情報が記憶されていないからである。ステップＳ８３において、解析制御部２５４が、更新有無の値は２でないと判定すれば（ステップＳ８３：ＮＯ）、ステップＳ７０に戻る。
【００７０】
以上説明したように、本実施形態によれば、まず、配信情報更新判定部２３１と第１のヘッダ情報更新判定部２３３と第２のヘッダ情報更新判定部２３４との異なる判定処理により、判定対象のＵＲＩから配信される配信情報に更新があったか否かを判定する事前巡回を行う。この判定処理の際、ドメインのＵＲＩ数が多い（α以上）場合、またＵＲＩの階層が浅い（β未満）場合には、未更新カウンタの値を高めに設定し、より精度の高い判定処理が多く行われるようにした。ＵＲＩ数が多いドメインに含まれるＵＲＩからの配信情報や、階層が浅いＵＲＩからの配信情報は、より多くのアクセスがあるものと考えられる。このため、攻撃の標的になる可能性が高いと考えられる。そこで、このようなＵＲＩについては、より精度の高い判定処理を行うことにより、改ざんを検知しやすくすることができる。
【００７１】
また、配信情報の更新頻度が高いＵＲＩについても、より多くのアクセスがあり、攻撃の標的になる可能性が高いと考えられる。そこで、更新カウンタＡや更新カウンタＢの値が小さい場合（未更新期間が短い期間である場合）には、より精度の高い判定処理を行うようにした。これにより、配信情報の更新頻度が高いＵＲＩについての改ざんを検知しやすくすることができる。
【００７２】
さらに、配信情報の更新が検知されないＵＲＩについても、更新カウンタＣの値が閾値以上になった場合には、解析制御部２５４による配信情報の解析を行うようにした。これにより、例えばヘッダ情報を書き換えないように改ざんを行うような攻撃が行われていた場合にも、改ざんを検知することができる。
【００７３】
このように、本実施形態によれば、ドメイン配下のＵＲＩ数、ＵＲＩの階層、配信情報の更新頻度等の特性に基づいて、攻撃される可能性が高いＵＲＩについてはより精度の高い判定処理、解析処理を行い、攻撃される可能性が低いＵＲＩについては高速な判定処理、解析処理を行うことができる。これにより、大量のＵＲＩに応じた配信情報の改ざんを、精度良く、効率良く監視することができる。
【００７４】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより配信情報の解析を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７５】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００７６】
１  通信システム
１００  配信サーバ
２００  配信情報解析装置
２１０  記憶部
２１１  ドメイン情報記憶部
２１２  ＵＲＩ情報記憶部
２１３  解析情報記憶部
２１４  解析実行時間記憶部
２１５  攻撃情報記憶部
２１６  悪性振る舞い記憶部
２１７  システム運用者情報記憶部
２２０  ＵＲＩ抽出部
２３０  事前巡回処理部
２３１  配信情報更新判定部
２３２  ヘッダ情報更新判定部
２３３  第１のヘッダ情報更新判定部
２３４  第２のヘッダ情報更新判定部
２３５  解析実行可否判定部
２３６  指標値算出部
２４０  本巡回スケジューリング部
２４１  優先順位決定部
２５０  本巡回処理部
２５１  第１の解析部
２５２  第２の解析部
２５３  ブラウザ
２５４  解析制御部
【図１】
0005826086.tif 000002
【図２】
0005826086.tif 000003
【図３】
0005826086.tif 000004
【図４】
0005826086.tif 000005
【図５】
0005826086.tif 000006
【図６】
0005826086.tif 000007
【図７】
0005826086.tif 000008
【図８】
0005826086.tif 000009
【図９】
0005826086.tif 000010
【図１０】
0005826086.tif 000011
【図１１】
0005826086.tif 000012
【図１２】
0005826086.tif 000013
【図１３】
0005826086.tif 000014
【図１４】
0005826086.tif 000015
【図１５】
0005826086.tif 000016