(57)【要約】【課題】従来は、WEBページの改竄をクライアント側で検知するには動的情報を示す追加情報を、動的情報が現れる箇所毎に埋め込む必要があり、開発負荷が大きく、またWEBページ全てが改竄検知対象となり、目的に応じ改竄検知対象情報の選定、例えば、画面レイアウトなど視覚情報の変更は検知対象外としたい等の選定が困難であった。【解決手段】WEBサーバで生成され、改竄検知装置に入力されたWEBページに対して、既存のWEBページにおいて利用されている情報のみを利用した改竄検知規則を用いて、改竄検知情報再現部で改竄検知情報を再生成し、一方、改竄されていないと信頼できる、WEBページを生成するプログラムから前記改竄検知規則を用いて、改竄検知情報生成部で改竄検査情報を生成し、前記改竄検知情報と前記改竄検査情報とを改竄検知部で比較して、当該WEBページが改竄されたか否かを検知する。【選択図】図２
2014102612.tif 000002
【特許請求の範囲】
【請求項１】
改竄が為されていないWEBページに記述される既存情報の内、静的情報のみから改竄検知対象を規定する改竄検知規則を用いて、WEBページを生成するプログラムから生成された、改竄検査情報を保持する改竄検知情報記憶部と、
前記WEBページを生成するプログラムが格納され、信頼を補償されていないWEBサーバで生成され、ネットワークを介して送付されたWEBページから、前記改竄検知規則を利用し、改竄検知情報を再現する改竄検知情報再現部と、
前記改竄検知情報再現部により再現された改竄検知情報と、前記改竄検知情報記憶部に格納された改竄検査情報とを比較し、生成されたWEBページが改竄された否かを判定する改竄検知部と、
を有することを特徴とする改竄検知装置。
【請求項２】
前記改竄検知規則は、複数の規則から成り、各規則に、規則を一意に識別可能な識別子が割り当てられており、
前記改竄検知情報記憶部には、各WEBページに対して、どの改竄検知規則を適用するかの情報が、改竄検知情報と対応付けて管理記憶されている
ことを特徴とする請求項１に記載の改竄検知装置。
【請求項３】
請求項１または２に記載の改竄検知装置は、信頼を補償されていないWEBサーバからの情報をネットワークを介してWEBページを受信するクライアント端末を制御できるものであって、
前記改竄検知部は、改竄された否かの判定結果により、WEBページが改竄されたと判定された場合に、前記クライアント側機器からのデータ送信を無効化する命令を出力する構成にされることを特徴とする請求項１または２に記載の改竄検知装置。
【請求項４】
改竄が為されていないWEBページに記述される既存情報の内、静的情報のみから改竄検知対象を規定する前記改竄検知規則を用いて、WEBページを生成するプログラムから前記改竄検査情報を生成する改竄検知情報生成部、
を備えることを特徴とする請求項１乃至３のいずれかに記載の改竄検知装置。
【請求項５】
前記改竄検知規則は、WEBページ内に記述されるタグと属性、及び属性値のうちの少なくとも一つから改竄検知対象を規定する規則であることを特徴とする請求項１乃至４のいずれかに記載の改竄検知装置。
【請求項６】
前記WEBページはマークアップ言語で記述されたファイルであって、
前記改竄検知規則で用いられるタグは、クライアントサイドスクリプトを表すタグ、データ入力及び送信のためのフォームを表すタグ、データ入力欄を表すタグ、WEBページへのリンクを表すタグ、から選択されることを特徴とする請求項５に記載の改竄検知装置。
【請求項７】
前記改竄検知規則は、改竄検知対象としたタグ内に、特定の属性、或いは特定の属性値が記述されているときに、特定の属性、及び特定の属性値を、改竄検知対象から除外する構成にされることを特徴とする請求項５または６に記載の改竄検知装置。
【請求項８】
改竄が為されていないWEBページに記述される既存情報の内、静的情報のみから改竄検知対象を規定する改竄検知規則を用いて、WEBページを生成するプログラムから改竄検査情報を生成する保持する改竄検知情報生成工程と、
前記WEBページを生成するプログラムが格納され、信頼を補償されていないWEBサーバで生成され、ネットワークを介して送付されたWEBページから、前記改竄検知規則を利用し、改竄検知情報を再現する改竄検知情報再現工程と、
前記改竄検知情報再現工程により再現された改竄検知情報と、前記改竄検知情報生成工程に生成された改竄検査情報とを比較し、生成されたWEBページが改竄された否かを判定する改竄検知工程と、
を有することを特徴とする改竄検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はWEBページの改竄をクライアント端末又はプロキシサーバ等クライアント側で検知する改竄検知装置及びその方法に関するものである。
【背景技術】
【０００２】
近年、多様な業務及びサービスが、WEBアプリケーションによって実現されている。WEBアプリケーションには、クライアント端末にインストールされたWEBブラウザから容易に利用可能であるという利点がある。
【０００３】
WEBアプリケーションでは、クライアントの要求に応じて、WEBサーバで動的にWEBページを生成し、クライアントに返却するという仕組みが利用される。動的にWEBページを生成するサーバサイドプログラミングの手段としては、JSP(Java Server Pages)、ASP(Active Server Pages)といった様々な技術が実用化されている。
【０００４】
一方で、WEBアプリケーションでは、信頼できないサーバ管理者、マルウェア等を含む悪意を持った攻撃者により、WEBページの改竄を受けやすいという性質がある。WEBページの実体であるHTMLファイルや、HTMLファイルを動的に生成するためのプログラムであるJSPファイル、ASPファイルはテキストファイルであるため、バイナリプログラムと比較し、改竄が容易である。従って、クライアント端末など、クライアントサイドでWEBページの改竄検知を可能とするための技術が求められる。
【０００５】
WEBページが改竄されることにより発生するセキュリティリスクの例として、クライアントサイドスクリプトの改竄により、予期しないデータがクライアント端末からネットワーク上へ流出するというものがある。
【０００６】
以下にデータ暗号化に関する具体例について説明する。
個人情報や機密情報をWEBアプリケーションで取り扱う場合、データ暗号化がデータ流出を防止する有効な手段となる。この際、WEBサーバでデータを暗号化するのではなく、クライアント端末でデータを暗号化しておき、WEBサーバへ送信することで、安全性をより高めることができる。しかしながら、データをクライアント端末で暗号化するために、ユーザに暗号化処理を負担させると、ユーザ負荷が高くなり、容易に利用可能であるというWEBアプリケーションの利点が活かされなくなるという問題がある。
【０００７】
そこで、WEBページ中に暗号化処理を実施する命令を組み込んでおき、WEBアプリケーション処理の一環としてデータ暗号化処理をクライアント端末で実施する方法が考えられる。WEBページからクライアント端末で特定の処理を実行させる手段として、JavaScriptに代表されるクライアントサイドスクリプトを用いる方法がある。
【０００８】
JavaScriptを用いてデータを暗号化するHTMLファイルの擬似コードを図１に示す。図１のHTMLファイルは、テキストボックスに入力されたデータをPOSTメソッドにより送信する際に、JavaScriptの関数encrypt()を呼び出し、入力データの暗号化処理を行う。このようなHTMLファイルを利用することで、WEBアプリケーション処理の一環として所望のデータをクライアント端末で暗号化し、WEBサーバへ送信することができる。
【０００９】
しかしながら、図１のHTMLファイルが改竄された場合、期待した暗号化処理が実施されない可能性がある。例えば、関数encrypt()を、何もしないダミーの関数に書き換えることで、暗号化処理は実施されず、平文データがそのままPOSTメソッドによりWEBサーバへ送信される。或いは、送信ボタンに対応するinputタグにおいて、onclick属性の属性値を、別の関数名に書き換えることにより、関数encrypt()が呼ばれず、結果として、平文データがそのままPOSTメソッドによりWEBサーバへ送信される。このように、HTMLファイルの改竄がセキュリティ事故を招く可能性がある。そのため、クライアント端末で受信したHTMLファイルから、そのWEBページが改竄されたものか否かを検知するための技術が求められる。
【００１０】
WEBページが静的な情報のみを含む場合、改竄検知は容易に可能である。例えば、HTMLファイルに対して予めハッシュ値のような改竄検知情報を計算しておき、クライアント端末に保存しておく。そして、WEBアプリケーション利用時にクライアント端末で受信したHTMLファイルに対して、同様の方法で改竄検知情報を計算してやり、両者の一致比較を行うことで、HTMLファイルが改竄されたか否かの検知が可能である。但し、ここでは改竄検知情報を安全にクライアント端末に保管する手段があることを前提とする。
【００１１】
一方で、WEBページがサーバサイドプログラミングによって動的に生成される場合には、同一WEBページであっても、時刻やユーザ等の利用条件によって、クライアント端末で受信するページ内容が異なるため、静的なWEBページと同様の手法を単純に適用することはできない。
【００１２】
このような課題を解決するために、特許文献１では、WEBページ内の動的情報に相当する箇所を、動的情報を示す追加定義のタグで囲むことにより、動的に生成されるWEBページの改竄をクライアント端末で検知可能とした。動的情報を示す追加定義のタグは、JSPファイルやHTMLファイルからはコメントとして認識されるため、クライアント端末で受信したHTMLファイルにおいても付加したタグを参照することができ、動的情報をクライアント端末で特定することが可能となる。
【００１３】
クライアント端末に保存する改竄検知情報としては、動的情報を示す追加定義のタグと、静的情報部分に対するハッシュ値のような特徴量があれば良い。このようにして精度の高い改竄検知が実現される。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開2012−141876号公報「Webページ改竄検知装置及びプログラム」
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、従来技術では、精度の高い改竄検知を実現するために、動的情報であることを示す追加情報を、動的情報が現れる箇所毎に埋め込んでいく必要があり、開発負荷が大きく増大するという課題があった。
【００１６】
また、従来技術では、WEBページに記述された全ての情報が改竄検知対象となってしまうため、目的に応じて改竄検知対象としたい情報を選定することが困難であった。例えば、画面レイアウトなどの視覚情報の変更は、スクリプト動作の改竄やリンク先の詐称とは独立であるため改竄検知の対象外としたいという要求があるが、従来技術の範疇では、視覚情報を変更した際にも、改竄検知情報を再生成する必要がある。
【００１７】
この発明は、上記のような問題点を解決するためになされたものであり、WEBページに記述される既存の静的情報のみを利用した改竄検知規則を用いることで、動的情報を示す追加情報をプログラムに埋め込むことを不要化し、精度の高い改竄検知を、開発負荷を増大させることなく可能とする改竄検知装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
この発明に係る改竄検知装置は、
改竄が為されていないWEBページに記述される既存情報の内、静的情報のみから改竄検知対象を規定する改竄検知規則を用いて、WEBページを生成するプログラムから生成された、改竄検査情報を保持する改竄検知情報記憶部と、
前記WEBページを生成するプログラムが格納され、信頼を補償されていないWEBサーバで生成され、ネットワークを介して送付されたWEBページから、改竄検知規則を利用し、改竄検知情報を再現する改竄検知情報再現部と、
改竄検知情報再現部により再現された改竄検知情報と、改竄検知情報記憶部に格納された改竄検査情報とを比較し、生成されたWEBページが改竄された否かを判定する改竄検知部と、を有する。
【発明の効果】
【００１９】
この発明に係る改竄検知装置によれば、
改竄検知装置に入力されたWEBページに対して、既存のWEBページにおいて利用されている情報のみを利用した改竄検知規則を用いて、改竄検知情報を再生成し、一方、改竄されていないと信頼できる、WEBページを生成するプログラムから改竄検知規則を用いて、改竄検査情報を生成し、改竄検知情報と改竄検査情報とを改竄検知部で比較して、当該WEBページが改竄されたか否かで改竄を検知しているので、改竄検知のための追加情報を、JSPのようなプログラムに埋め込む必要がなく、開発負荷が軽減される。
更に、スクリプト動作の改竄やリンク先の詐称を検知したい場合における改竄検知対象外の情報を変更した場合においては、画面レイアウトなどの視覚情報の変更は、スクリプト動作の改竄やリンク先の詐称とは独立であるため改竄検知の対象外とすることができ、改竄検知情報の再生成が不要となる。
【図面の簡単な説明】
【００２０】
【図１】JavaScriptを用いたデータ暗号化におけるHTMLファイルの擬似コードを示す図である。
【図２】この発明の実施の形態１による改竄検知装置を適用したWEBアプリケーションの構成図である。
【図３】改竄検知のための初期設定動作を表す流れ図である。
【図４】WEBアプリケーション運用開始後の改竄検知動作を表す流れ図である。
【図５】改竄検知情報を生成するJSPファイルの対象テキストを示す図である。
【図６】WEBページのHTMLファイルから改竄検知情報を再現する対象テキストを示す図である。
【図７】改竄検知情報生成部により生成される改竄検査情報の例を示す図である。
【図８】改竄検知規則の具体的な記述例を示す図である。
【図９】改竄検知規則の具体的な他の記述例を示す図である。
【図１０】HTMLファイルから他の方法で改竄検知情報を再現する対象テキストを示す図である。
【図１１】細則が追加された改竄検知規則の指定方法例を示す図である。
【図１２】改竄検知情報生成部による改竄検査情報生成の一般化動作を表す流れ図である。
【図１３】IDが割り振られた改竄検知規則の指定方法の例を示す図である。
【図１４】この発明の実施の形態２の改竄検知装置を適用したWEBアプリケーションを示す構成図である。
【発明を実施するための形態】
【００２１】
実施の形態１．
図２は、この発明の実施の形態１による改竄検知装置を適用した、WEBアプリケーションを示す構成図である。改竄検知装置１００は、クライアント側機器としてのクライアント端末２００、及び管理端末４００の構成要素として適用される。
【００２２】
改竄検知装置１００は、改竄検知情報再現部１１０、改竄検知部１２０、改竄検知情報記憶部１３０、改竄検知情報生成部１４０及び改竄検知規則部１５０とを備える。このうち、改竄検知規則部１５０はクライアント端末２００と管理端末４００の両方に備えられ、WEBページに記述された既存情報のみからWEBページ内の改竄検知対象を規定する複数の改竄検知規則が格納される。改竄検知情報生成部１４０は管理端末４００に備えられ、それ以外の構成要素、即ち、改竄検知情報再現部１１０、改竄検知部１２０、改竄検知情報記憶部１３０はクライアント端末２００に備えられる。本実施の形態の特徴は、改竄検知情報再現部１１０と改竄検知情報生成部１４０において、改竄検知規則部１５０に格納された改竄検知規則を用いて、WEBページとプログラム記憶部３３０に格納されたプログラムから改竄検知情報を再現および管理端末４００のプログラム４１０Aから改竄検査情報を生成する方法にある。詳しくは後述する。
【００２３】
クライアント端末２００は、改竄検知装置１００の一部とWEB情報送受信部２１０とから成り、WEB情報送受信部２１０がネットワーク５００を通じて、WEBサーバ３００のWEB情報送受信部３１０と接続される。このように構成されることで、クライアント端末２００はWEBサーバ３００に接続される。WEB情報送受信部２１０は、HTTPプロトコルベースでWEBサーバ３００のWEB情報送受信部３１０とデータ送受信を行う。
【００２４】
WEBサーバ３００は、WEB情報送受信部３１０、WEBページ生成部３２０、及びプログラム記憶部３３０とを備える。WEB情報送受信部３１０は、クライアント端末２００からの要求をWEB情報送受信部２１０から受信し、クライアント端末２００の要求に応じたWEBページをWEBページ生成部３２０で生成し、クライアント端末２００のWEB情報送受信部２１０へ送信する。WEBページ生成部３２０は、WEB情報送受信部３１０で受信したクライアント端末２００からの要求に応じて、プログラム記憶部３３０に格納されたプログラムから、WEBページを生成する。本実施の形態において、生成されたWEBページは、HTML言語で記述されたファイルとするが、たとえばHTML言語の上位概念に相当するマークアップ言語のうちのいずれかであってもよい。プログラム記憶部３３０には、WEBページを生成するための複数のプログラムが格納される。WEBページを生成するためのサーバサイドプログラムの例として、JSPファイルやASPファイルがある。以下の説明では、プログラムとしてJSPファイルを例に取り説明するが、この発明の適用範囲はこれらのプログラムに限定されるものではない。
【００２５】
管理端末４００は、プログラム４１０Ａを格納したプログラム格納部４１０及び改竄検知装置１００の一部である改竄検知情報生成部１４０、改竄検知規則部１５０とを備える。プログラム４１０Ａは、複数のプログラムからなり、WEBサーバ３００のプログラム記憶部３３０に格納されるファイル群と同一のファイル群である。改竄検知情報生成部１４０は、プログラム４１０Ａを元に、改竄検知規則部１５０の改竄検知規則を用いて改竄検知情報を生成し、改竄検知情報記憶部１３０へ格納する。
【００２６】
本実施の形態においては、管理端末４００は信頼できるが、WEBサーバ３００は信頼できないものとして扱う。従って、管理端末４００のプログラム格納部４１０に保管されたプログラム４１０Ａ、及び改竄検知情報生成部１４０で生成される改竄検知情報は、改竄されないことが保証される。更に、改竄検知情報生成部１４０で生成された改竄検知情報は、安全に改竄検知情報記憶部１３０へ格納されるものとする。従って、改竄検知情報記憶部１３０に格納された改竄検知情報は、ユーザが自ら改竄しない限りは、改竄されていないことが保証される。
【００２７】
一方、WEBサーバ３００は信頼できないため、プログラム記憶部３３０に格納されたプログラムファイル群は改竄されている可能性がある。本実施の形態における改竄検知装置１００の目的は、プログラム記憶部３３０に格納されたプログラムファイルに対する改竄を、改竄検知情報生成部１４０で生成された改竄検知情報を元に、クライアント端末２００で検知することである。
【００２８】
次に、本実施の形態における改竄検知方法を、改竄検知装置１００の動作を中心に図３、図４を用いて説明する。図３は改竄検知のための初期設定の動作を表しており、図４は、WEBアプリケーション運用開始後の改竄検知動作を表している。
【００２９】
まず、図３を用いて初期設定の動作について説明する。管理端末４００において、改竄検知情報生成部１４０は、改竄検知規則部１５０の改竄検知規則を用いてプログラム４１０Ａから改竄検査情報を生成する（ステップS１１０）。ここでは、改竄検知の対象としたい全てのファイルに対して、改竄検査情報を生成する。改竄検査情報の具体的な生成方法については後述する。ステップS１１０で生成された改竄検査情報は、改竄検知情報記憶部１３０に格納される（ステップS１２０）。また、ステップS１１０で用いられた改竄検知規則部１５０の改竄検知規則はクライアント端末２００の改竄検知情報再現部１１０に配布される（ステップS１３０）。
【００３０】
ステップS１２０、及びステップS１３０の処理結果は、前述したとおり、管理端末４００を信頼できるものとして扱っているため、改竄検知情報記憶部１３０へ格納された改竄検査情報、及び配布された改竄検知規則部１５０の改竄検知規則は、改竄されていないことが保証される。
【００３１】
続いて、図４を用いて、クライアント端末２００における本実施の形態による改竄検知動作について説明する。クライアント端末２００はWEB情報送受信部２１０にて、WEBサーバ３００からのWEBページを受信する（ステップS２１０）。ステップS２１０の処理によりWEB情報送受信部２１０に受信されたWEBページは、改竄検知情報再現部１１０へ入力される（ステップS２２０）。改竄検知情報再現部１１０は、改竄検知規則部１５０の改竄検知規則を用いて、入力されたWEBページから改竄検知情報を再現する（ステップS２３０）。改竄検知情報の具体的な再現方法については、後述する。
【００３２】
改竄検知部１２０は、ステップS２１０で受信されたWEBページに対応し、かつ、ステップS１１０で改竄検知情報生成部１４０により生成され、ステップS１２０で改竄検知情報記憶部１３０に格納された改竄検査情報を、改竄検知情報記憶部１３０から取り出す（ステップS２４０）。改竄検知部１２０は、ステップS２３０で再現された改竄検知情報と、ステップS２４０で改竄検知情報記憶部１３０から取り出された改竄検査情報とを比較し（ステップS２５０）、両者が一致するか否かを判定する（ステップS２６０）。両者が一致した場合、WEBページは改竄されていないと判断し、改竄検知の後処理を実行する（ステップS２７０）。両者が一致しなかった場合、WEBページは改竄されたと判断し、改竄検知の後処理を実行する（ステップS２８０）。ステップS２７０、及びステップS２８０における後処理については後述する。
【００３３】
次に、ステップS１１０の改竄検査情報生成、及びステップS２３０の改竄検知情報再現の動作詳細を説明する。まずは、図５、図６を用いて簡単な具体例から説明し、その後に一般化した動作を説明する。図５は、ステップS１１０において、改竄検知情報生成部１４０によりプログラム４１０ＡのJSPファイルから改竄検査情報を生成する様子を表し、図６は、ステップS２３０において、改竄検知情報再現部１１０によりWEBページであるHTMLファイルから改竄検知情報を再現する様子を表す。図５、図６において、改竄検知規則部１５０の改竄検知規則は、クライアントサイドスクリプトを表すscriptタグの内容全て、及びscriptタグで囲まれた地のテキスト、データ入力及び送信のためのフォームを表すformタグの内容全て、およびデータ入力欄を表すinputタグの内容全て、を改竄検知対象とするような規則を用いている。
【００３４】
ステップS１１０及びステップS２３０における処理結果により、生成される改竄検査情報または再現される改竄検知情報の例を図７に示す。図７には、改竄検知対象となった情報がテキストのまま記述されているが、実際には、ハッシュ関数を用いて、図７のテキストから生成されたハッシュ値を改竄検知情報としても良い。このような改竄検知規則を用いることで、クライアント端末２００から送信されるデータの処理に関わる部分に関して、高精度の改竄検知が可能となる。一方、それ以外の部分、例えば図６の<h1>タグで囲まれたテキスト情報は、変更が為されたとしても、改竄があったとは見做されない。
【００３５】
図５、図６の例では、クライアントサイドスクリプトと、フォームの動作にかかわる部分のみを改竄検知対象としたが、改竄検知対象は目的に応じて、自由に設定可能である。例えば、リンク先の詐称を検知したい場合には、WEBページへのリンクを表す<a>タグを改竄検知対象に含めるよう、改竄検知規則部１５０の改竄検知規則を設定すれば良い。
なお、データ入力欄を表すタグは、<input>タグの外に、<select>タグ, <textarea>タグ等がある。
【００３６】
このように、改竄検知規則部１５０の改竄検知規則では、HTMLファイルで利用されるタグ名や属性名など、既存情報のみを用いて改竄検知対象部分を規定する。改竄検知対象外となったテキストについては、変更が為されたとしても、改竄があったとは見做さない。
【００３７】
このような改竄検知規則を用いることにより、次の２点の効果が生まれる。
１点目として、改竄検知規則では、WEBページにおいて利用されている既存情報のみが利用されるため、改竄検知のための追加情報を、JSPのようなプログラムに埋め込む必要がない。また、改竄検知規則についても、WEBページ毎に特化した設定を行うこと無く、広い範囲のWEBページに対して適用可能であるという汎用性を持つ。これにより、開発負荷が軽減される。
【００３８】
２点目として、改竄検知の対象外としたい情報を変更した場合においては、改竄検知情報の再生成が不要となる。例えば、スクリプト動作の改竄やリンク先の詐称を検知したい場合、画面レイアウトなどの視覚情報の変更は、スクリプト動作の改竄やリンク先の詐称とは独立であるため改竄検知の対象外とすることができる。
【００３９】
図５、図６の例に対応する改竄検知規則部１５０に格納された改竄検知規則の具体的な記述例を図８に示す。改竄検知規則の一般化された指定方法については後述する。改竄検知規則は１行につき改竄検知対象としたい１つのタグに関する指定が記述されたテキストファイルである。図８において、１つ目のトークンはタグ名を表し、２つ目以降のトークンが、タグに関してどの情報を改竄検知対象とするかを表している。図８の例で、allは「タグの内容全て、及びタグで囲まれた地のテキスト全て」を意味する指定子であり、attr-allは「タグの内容全て」を表す指定子である。
【００４０】
改竄検知規則で改竄検知対象と規定した情報には、動的生成される情報が含まれないことが前提となる。仮に、動的な情報が含まれる場合、クライアント端末でWEBページを受信する度に、その実体が異なるテキストで記述されるため、改竄されていない正常なファイルであっても、改竄有と判定されてしまう。従って、改竄検知規則を用いた改竄検知方法は、WEBアプリケーションの仕様を制限することになりかねない。
【００４１】
しかしながら、このような課題は改竄検知規則に細則を追加することで、ある程度解消される。その具体例を図９に示す。図９は、図８で定めた改竄検知規則のinputタグに関する規則として、４,５行目に除外指定条件を２つ追加したものである。４行目は、inputタグにおいて、typeがtext（テキストボックス）であるような場合、同一タグ内のvalue属性を無視し空文字列として扱うという意味である。５行目も同様に、type属性がradio（ラジオボタン）である場合、同一タグ内のchecked属性を無視し空文字列として扱うことを表す。なお、図９における。“\”記号は続く行が同一行であることを表しており、“,”記号は、複数条件を記述する際の区切りを表す。
【００４２】
図９で表される改竄検知規則を適用し、改竄検知情報再現部１１０にて改竄検知情報を再現する様子を図１０に示す。基本的には、図６と同じであるが、inputタグ中にtype属性がtextのものが現れるため、該inputタグ内の「value="foobar"」が改竄検知情報を再現する際に無視される。結果として、図１０により出力される改竄検知情報は図７で示したものと同じになる。このようにすることで、value属性が動的に生成される情報であるような場合であっても、正しく改竄検知が可能となる。
【００４３】
図９で用いた改竄検知規則は、例えば、ユーザがフォームへの入力を行った際に、入力項目にエラーがあったために、入力した情報が既定値としてフォームに予め入力されたWEBページが再表示される、という場面において有効である。この場合、フォームの既定値が動的情報となるが、図９の改竄検知規則を用いることで、既定値を改竄検知の対象外とすることができる。
【００４４】
以上を踏まえて、改竄検知規則による指定方法の例を図１１に示す。図中の属性条件とは、図９における「if type="text"」などに相当する条件であり、以降に続く除外属性指定を適用するための条件を記述する。属性条件は省略可能であり、省略された場合は、除外属性指定が常に有効となる。除外属性指定は、図９における「ignore value」などに相当し、特定の属性及び属性値を改竄検知対象から除外することを表す。除外属性指定は、図９のように“,”により複数指定することが可能である。また、除外属性指定が指定された場合、指定されなかった属性値は、改竄検知対象として扱われる。
【００４５】
改竄検知規則においては、タグに囲まれた地のテキストを扱う必要がある。そこで、改竄検知装置１００においては、地のテキストに対して仮想的に属性名「_content」を与える。これにより、属性「_content」を図１１の改竄検知規則の表記法に従って、他の属性と同じように扱うことが可能となる。なお、この場合、指定子「attr-all」は、除外属性として「ignore _content」のみを指定することと等しくなる。
【００４６】
次に、図３に示すステップS１１０の改竄検査情報生成、及び図４に示すステップS２３０の改竄検知情報再現の一般化した動作を、図１２を用いて説明する。なお、図１２では、図３に示すステップS１１０の改竄検査情報生成の動作について説明するが、図４におけるステップS２３０の改竄検知情報再現についても同様の手順で実現可能である。
改竄検知情報生成部１４０はWEBページを生成するプログラムのトークン読み込みを開始する（ステップS３０１）。ここで読み込むトークンは、WEBページとして出力される部分のみであり、サーバサイドプログラムの処理が記述されたテキストは読み込まない。次のトークンが開始タグであった場合（ステップS３０２）、スタックに該開始タグをプッシュする（ステップS３０３）。該開始タグが改竄検知規則において、改竄検知対象に指定されているか否かを判定（ステップS３０４）し、指定されていない場合、何も出力せずにステップS３０２へ戻る。改竄検知対象に指定されている場合、改竄検知規則を元に属性の除外処理を行い、残ったものを出力（ステップS３０５）し、ステップS３０２へ戻る。
【００４７】
ステップS３０２で次のトークンが終了タグであった場合、スタックをポップする（ステップS３０６）。該終了タグが改竄検知規則において、改竄検知対象に指定されているか否かを判定（ステップS３０７）し、改竄検知対象に指定されていない場合、何も出力せずにステップS３０２へ戻る。改竄検知対象に指定されている場合、当該終了タグを出力（ステップS３０８）し、ステップS３０２へ戻る。
【００４８】
次のトークンが地のテキストであった場合（ステップS３０２）、スタック先頭のタグに対応する改竄検知規則で_contentが除外指定されているか否かを判定する（ステップS３０９）。除外指定されている場合は、何も出力せずにステップS３０２へ戻る。ここで、「除外指定されている場合」には、該タグが改竄検知規則に指定されていない場合を含む。除外指定されていない場合は、該地のテキストを出力し（ステップS３１０）、ステップS３０２へ戻る。次のトークンがWEBページの終端である場合は（ステップS３０２）、終了する。
【００４９】
なお、タグの中には、inputタグのように終了タグが存在しないものがある。この場合は、ステップS３０３からステップS３０５において開始タグの処理を施した後、ステップS３０２において、次のトークンは空文字列の終了タグであると見做し、処理をすれば良い。
【００５０】
WEBページにおいては、外部ファイルが読み込まれることもある。例えば、scriptタグにおいて、src属性を指定すれば、JavaScriptの外部ファイルを読み込むことが可能である。外部ファイルについても改竄されるリスクがあるため、外部ファイルの改竄検知方法が必要となる。外部ファイルには動的な情報は含まれないため、ステップS３０５において、src属性が改竄検知対象となっている場合には、外部ファイルの内容を改竄検知情報として出力すれば良い。
【００５１】
改竄検知規則部１５０の改竄検知規則には、規則を一意に識別するID(identification)が割り振られていても良い。IDが割り振られる場合の改竄検知規則の指定方法の例を図１３に示す。IDを用いることで、改竄検知の対象であるWEBページ毎に、適用する規則を制御することが可能となる。例えば、あるページに対しては、aタグを改竄検知対象とするが、別のページに対しては、aタグを改竄検知対象外とする、といった個別の制御が、IDを用いることで、容易に管理可能となる。
【００５２】
図４に戻り、ステップS２４０の詳細を説明する。ステップS２１０で受信されたWEBページに対応する改竄検査情報を特定する手段としては、URL(Uniform Resource Locator)を用いる方法がある。WEBアプリケーションにおいては、予め、ページ毎にURLが定まっているため、改竄検知情報記憶部１３０において、改竄検査情報とURLとを対応付けて管理することで、ステップS２４０の動作が可能となる。
【００５３】
次に、ステップS２７０における後処理について説明する。ステップS２７０は、改竄が為されていない場合の処理であるので、特別な後処理は施さないことができる。或いは、改竄が為されていないことを明示的にユーザに示すために、改竄検知部１２０からの信号によりポップアップ等でメッセージを表示しても良い。
【００５４】
次に、ステップS２８０における後処理について説明する。ステップS２８０は、改竄が為された場合の処理であるので、そのWEBアプリケーションは信頼できない状態である可能性が高い。従って、考えられる後処理としては、改竄検知部１２０からの信号によりPOSTを無効化し、ユーザ入力した情報がサーバ３００に送信されないようすることが挙げられる。或いは、単に、改竄が為されたことをユーザに示すために、改竄検知部１２０からの信号によりポップアップ等でメッセージを表示しても良い。
【００５５】
実施の形態２．
以下の説明では、この発明の改竄検知装置１００を、WEBアプリケーションに適用した別の例を挙げる。本実施の形態は、実施の形態１と類似しているため、本実施の形態では、実施の形態１との差異のみを記述する。
【００５６】
図１４は、この発明である改竄検知装置を適用した、WEBアプリケーションを示す構成図である。本実施の形態において、改竄検知装置１００は、管理端末４００、及びクライアント側機器を構成するプロキシサーバ６００の構成要素として適用される。改竄検知装置１００、WEBサーバ３００、及び管理端末４００における構成の細部は、実施の形態１と同様なので割愛する。
なお、本実施の形態においてはクライアント側機器はクライアント端末２００とプロキシサーバ６００とで構成される。
【００５７】
クライアント端末２００は、WEB情報送受信部２１０を構成要素に含み、WEB情報送受信部２１０がプロキシサーバ６００のクライアント側WEB情報送受信部６２０とネットワーク５１０を通じて、接続されることで、プロキシサーバ６００と接続される。ネットワーク５１０は、サーバ側WEB情報送受信部６１０とWEBサーバ３００とを接続するネットワーク５００から切り離されており、クライアント端末２００からWEBサーバ３００への接続は、全てプロキシサーバ６００を経由して行われる。
【００５８】
プロキシサーバ６００は、改竄検知装置１００の一部、サーバ側WEB情報送受信部６１０、及びクライアント側WEB情報送受信部６２０とから成る。サーバ側WEB情報送受信部６１０は、WEBサーバ３００との間でHTTPプロトコルベースのデータ送受信を担う。クライアント側WEB情報送受信部６２０は、クライアント端末２００との間でのHTTPプロトコルベースのデータ送受信を担う。
【００５９】
本実施の形態における改竄検知装置１００の目的は、WEBサーバ３００に格納されたプログラムに対する改竄を、プロキシサーバ６００上で検知することである。本実施の形態において、プロキシサーバは信頼できるものとして扱う。検知する場所がクライアント端末２００かプロキシサーバ６００かの違いを除けば、目的、動作は上述の実施の形態１と同様であるため、割愛する。
【００６０】
以上で述べたように、実施の形態１、及び実施の形態２においては、改竄検知装置１００に入力されたWEBページに対して、既存のWEBページにおいて利用されている情報のみを利用した改竄検知規則を用いるため、改竄検知のための追加情報を、JSPのようなプログラムに埋め込む必要がなく、開発負荷が軽減される。更に、改竄検知の対象外としたい情報を変更した場合においては、改竄検知情報の再生成が不要となる。例えば、スクリプト動作の改竄やリンク先の詐称を検知したい場合、画面レイアウトなどの視覚情報の変更は、スクリプト動作の改竄やリンク先の詐称とは独立であるため改竄検知の対象外とすることができる。
【００６１】
なお、上記実施の形態１では、管理端末４００にプログラム４１０Ａを格納したプログラム格納部４１０及び改竄検知装置１００の一部である改竄検知情報生成部１４０並びに改竄検知規則部１５０とを備えたものについて説明したが、プログラム格納部４１０及び改竄検知情報生成部１４０を管理端末４００ではなくクライアント端末２００に備えることで、改竄検知装置１００をクライアント端末２００のみに備えることができる。これらプログラム格納部４１０、改竄検知情報生成部１４０の動作は実施の形態１と同様であり、改竄検知情報生成部１４０はクライアント端末２００に備えられていた改竄検知規則部１５０の改竄検知規則を用いて改竄検知情報を生成する。
このような構成により、実施の形態１と同様にWEBページの改竄をクライアント端末で検知することができる。
【００６２】
また、WEB情報送受信部２１０及び、実施の形態１でクライアント端末２００に備えられている改竄検知装置１００の一部である改竄検知情報再現部１１０、改竄検知部１２０、改竄検知情報記憶部１３０をクライアント端末２００ではなく管理端末４００に備えることで、改竄検知装置１００を管理端末４００にのみ備えることができる。
この場合においても、実施の形態１と同様な動作を行い、同様な効果が得られる。
なお、改竄検知部１２０の判定結果をクライアント端末２００に送信し、クライアント端末２００に表示可能とする。
【産業上の利用可能性】
【００６３】
この発明に係る改竄検知装置は、WEBアプリケーションを用いてWEBプラウザからデータを受け取ってファイルに記録したり、データベースと連携した動的なWEBページを作成したりするシステムにおいて、信頼できないサーバ管理者や、悪意を持った攻撃者によりWEBページが改竄されたか否かを検知する際に利用される可能性がある。
【符号の説明】
【００６４】
１００；改竄検知装置、１１０；改竄検知情報再現部、１２０；改竄検知部、１３０；改竄検知情報記憶部、１４０；改竄検知情報生成部、１５０；改竄検知規則部、２００；クライアント端末、２１０；WEB情報送受信部、３００；WEBサーバ、３１０；WEB情報送受信部、３２０；WEBページ生成部、３３０；プログラム記憶部、４００；管理端末、４１０；プログラム格納部、５００，５１０；ネットワーク、６００；プロキシサーバ、６１０；サーバ側WEB情報送受信部、６２０；クライアント側WEB情報送受信部。
【図１】
2014102612.tif 000003
【図２】
2014102612.tif 000004
【図３】
2014102612.tif 000005
【図４】
2014102612.tif 000006
【図５】
2014102612.tif 000007
【図６】
2014102612.tif 000008
【図７】
2014102612.tif 000009
【図８】
2014102612.tif 000010
【図９】
2014102612.tif 000011
【図１０】
2014102612.tif 000012
【図１１】
2014102612.tif 000013
【図１２】
2014102612.tif 000014
【図１３】
2014102612.tif 000015
【図１４】
2014102612.tif 000016