(57)【特許請求の範囲】
【請求項１】
ウェブブラウザが搭載されたユーザ装置と、検査装置とを備え、
前記ユーザ装置のウェブブラウザは、
ユーザにより指定されたウェブページである指定ウェブページを取得して画面に表示させるページ表示部と、
前記ページ表示部によるウェブページ表示処理とは非同期の処理として、前記指定ウェブページに対応する検証用ウェブページを前記検査装置から取得し、取得した検証用ウェブページのデータを前記検査装置へ提供する検証データ処理部と、を含み、
前記検査装置は、前記ユーザ装置へ提供した検証用ウェブページのデータと、前記ユーザ装置から提供された検証用ウェブページのデータとが一致するか否かを判定する判定部を含むことを特徴とするウェブシステム。
【請求項２】
前記検査装置は、前記検証用ウェブページのデータを分割すべき位置を決定して前記ユーザ装置へ通知する分割位置通知部をさらに備え、
前記ユーザ装置の検証データ処理部は、前記検査装置から取得した検証用ウェブページのデータを、前記分割すべき位置で分割した態様で前記検査装置へ提供し、
前記検査装置の判定部は、前記ユーザ装置から提供された検証用ウェブページのデータが、前記分割すべき位置で分割されているか否かをさらに判定することを特徴とする請求項１に記載のウェブシステム。
【請求項３】
前記検査装置は、前記判定部の処理が完了した場合に、所定の完了情報を前記ユーザ装置へ送信する完了情報送信部をさらに含み、
前記ユーザ装置のウェブブラウザは、前記完了情報を受信済であることを条件として、前記指定ウェブページの画面に対してユーザが入力した情報を、前記指定ウェブページの提供元装置へ送信する入力情報送信部をさらに含み、
前記検査装置は、前記判定部による判定結果に関する情報を前記提供元装置へ送信する判定結果送信部をさらに含むことを特徴とする請求項１または２に記載のウェブシステム。
【請求項４】
ウェブブラウザを備え、
前記ウェブブラウザは、
ユーザにより指定されたウェブページである指定ウェブページを取得して画面に表示させるページ表示部と、
前記ページ表示部によるウェブページ表示処理とは非同期の処理として、前記指定ウェブページに対応する検証用ウェブページを所定の検査装置から取得し、取得した検証用ウェブページのデータを前記検査装置へ提供することにより、前記検査装置から本装置へ提供された検証用ウェブページのデータと、本装置から前記検査装置へ提供した検証用ウェブページのデータとが一致するか否かを前記検査装置に判定させる検証データ処理部と、を含むことを特徴とするウェブクライアント装置。
【請求項５】
ユーザ装置のウェブブラウザにより所定のウェブページが表示される場合に、前記ユーザ装置の要求に応じて所定の検証プログラムを前記ユーザ装置へ提供する検証プログラム提供部と、
前記所定のウェブページに対応する検証用ウェブページを前記ユーザ装置へ提供する検証データ提供部と、
判定部と、を備え、
前記検証プログラムは、ウェブページ表示処理とは非同期の処理として、前記検証用ウェブページを本装置から取得し、取得した検証用ウェブページのデータを本装置へ提供する処理を前記ユーザ装置のウェブブラウザに実行させるものであり、
前記判定部は、前記ユーザ装置へ提供した検証用ウェブページのデータと、前記ユーザ装置から提供された検証用ウェブページのデータとが一致するか否かを判定することを特徴とする改ざん検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理技術に関し、特にウェブシステム、ウェブクライアント装置および改ざん検査装置に関する。
【背景技術】
【０００２】
近年、顧客の利便性を高めるために、インターネットを介して顧客へサービスを提供する企業が増加している。例えば、顧客はインターネットバンキングサービスを利用することで、自宅や勤務先等、様々な場所で銀行のサービスを享受することができる。
【０００３】
ユーザ端末のインターネット接続が当たり前になっている現在、悪意のあるソフトウェアや悪質なプログラムコードであるマルウェアが、ユーザが知らぬ間にユーザ端末へ導入されてしまうことがある。マルウェアの中には、ユーザ端末で表示されるウェブページを改ざんし、ユーザやウェブページ提供元の企業に損害を与えるものがある。以下の特許文献１は、ユーザ端末内に存在するマルウェアを検出する技術を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１１／０２３９３００号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、予め知られた態様でウェブページ改ざんが行われたか否かを判定することにより、ウェブクライアント装置にマルウェアが存在するか否かを検出する（特許文献１の段落００４１〜００４８）。そのため特許文献１の技術では、マルウェアによるウェブページ改ざんの態様を予め把握しておくことが前提であり、未知のマルウェアによるウェブページの改ざんを検出することは困難であると本願発明者は考えた。
【０００６】
本願発明は発明者の上記課題認識にもとづきなされたものであり、その主な目的は、ウェブページの改ざんがウェブクライアント装置で行われたか否かを検出する精度を高めるための技術を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様のウェブシステムは、ウェブブラウザが搭載されたユーザ装置と、検査装置とを備える。ユーザ装置のウェブブラウザは、ユーザにより指定されたウェブページである指定ウェブページを取得して画面に表示させるページ表示部と、ページ表示部によるウェブページ表示処理とは非同期の処理として、指定ウェブページに対応する検証用ウェブページを検査装置から取得し、取得した検証用ウェブページのデータを検査装置へ提供する検証データ処理部と、を含む。検査装置は、ユーザ装置へ提供した検証用ウェブページのデータと、ユーザ装置から提供された検証用ウェブページのデータとが一致するか否かを判定する判定部を含む。
【０００８】
本発明の別の態様は、ウェブクライアント装置である。この装置は、ウェブブラウザを備える。ウェブブラウザは、ユーザにより指定されたウェブページである指定ウェブページを取得して画面に表示させるページ表示部と、ページ表示部によるウェブページ表示処理とは非同期の処理として、指定ウェブページに対応する検証用ウェブページを所定の検査装置から取得し、取得した検証用ウェブページのデータを検査装置へ提供することにより、検査装置から本装置へ提供された検証用ウェブページのデータと、本装置から検査装置へ提供した検証用ウェブページのデータとが一致するか否かを検査装置に判定させる検証データ処理部と、を含む。
【０００９】
本発明のさらに別の態様は、改ざん検査装置である。この装置は、ユーザ装置のウェブブラウザにより所定のウェブページが表示される場合に、ユーザ装置の要求に応じて所定の検証プログラムをユーザ装置へ提供する検証プログラム提供部と、所定のウェブページに対応する検証用ウェブページをユーザ装置へ提供する検証データ提供部と、判定部と、を備える。検証プログラムは、ウェブページ表示処理とは非同期の処理として、検証用ウェブページを本装置から取得し、取得した検証用ウェブページのデータを本装置へ提供する処理をユーザ装置のウェブブラウザに実行させるものであり、判定部は、ユーザ装置へ提供した検証用ウェブページのデータと、ユーザ装置から提供された検証用ウェブページのデータとが一致するか否かを判定する。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を、方法、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、ウェブページの改ざんがウェブクライアント装置で行われたか否かを検出する精度を高めることができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態のウェブシステムの構成を示す図である。
【図２】図１の改ざん検査装置の機能構成を示すブロック図である。
【図３】図１のユーザ装置の機能構成を示すブロック図である。
【図４】実施の形態のウェブシステムの動作を示すシーケンス図である
【発明を実施するための形態】
【００１３】
実施の形態においてウェブページを改ざんするマルウェアは、ユーザ装置のソフトウェアスタック上、ウェブブラウザよりも下位で動作する。例えば、ＴＣＰ／ＩＰ参照モデルにおけるトランスポート層とアプリケーション層との間で動作するコンピュータウィルスであってもよい。Ｗｉｎｄｏｗｓ（登録商標）ＯＳ（Operating System）の場合、ｗｉｎｉｎｅｔ．ｄｌｌなどに感染し、ＷｉｎｄｏｗｓＡＰＩをフックして、ウェブページデータを書き換え、また入力データやメッセージを盗窃するものであってもよい。したがって、アプリケーション層で動作するウェブブラウザは、マルウェアによる改ざん後のウェブページを取得し、表示することになる。
【００１４】
既述したように、特許文献１に記載のマルウェア検出方法では、予め知られた態様でのウェブページ改ざんが行われたか否かを判定することにより、ウェブページの改ざんがユーザ装置で行われたか否かを検出する。特許文献１の技術は、言わばブラックリスト方式で改ざんを検出するものである。
【００１５】
これに対し、実施の形態のウェブシステムでは、保護対象となるウェブページに対応する検証データを検査装置からユーザ装置へ提供し、ユーザ装置はその検証データを検査装置へ返却する。ユーザ装置にマルウェアが存在する場合、マルウェアは検証データを改ざんするため、ユーザ装置から返却された検証データは、検査装置からユーザ装置へ提供したオリジナルの検証データとは異なるものになる。検査装置は、オリジナルの検証データと、ユーザ装置から返却された検証データとの異同を判定することで、ウェブページの改ざんがユーザ装置で行われたか否かを検出する。
【００１６】
このように、実施の形態のウェブシステムでは、言わばホワイトリスト方式で改ざんを検出することにより、ウェブページの改ざんがユーザ装置で行われたか否かを検出する精度を高めることができる。例えば、マルウェアによるウェブページの改ざん態様が未知であっても、また、未知のマルウェアによるウェブページ改ざんであっても、実際にユーザ装置１２で行われたウェブページの改ざんを精度よく検出できる。
【００１７】
図１は、実施の形態のウェブシステム１０の構成を示す。ウェブシステム１０は、ユーザ装置１２、ＩＢサーバ１４、改ざん検査装置１６を備える。これらの装置は、通信網１８を介して接続される。通信網１８は、ＬＡＮ・ＷＡＮ・インターネット等、公知のデータ伝送網を含む。なお「ＩＢ」は「インターネットバンキング」を意味する。
【００１８】
ユーザ装置１２は、ユーザにより操作される情報処理装置であり、ウェブページを閲覧するためのユーザエージェントであるウェブブラウザが搭載されたウェブクライアント装置である。ユーザ装置１２は、ＰＣ、タブレット端末、スマートフォン、携帯電話機等であってもよい。ユーザ装置１２の詳細機能については後述する。
【００１９】
ＩＢサーバ１４は、銀行等の金融機関が保有する情報処理装置であり、インターネットバンキングサービスを提供する。ＩＢサーバ１４は、ウェブサーバの機能を備え、ＩＢのユーザインタフェースであるウェブページ（以下「ＩＢページ」とも呼ぶ。）をユーザ装置１２へ提供する。
【００２０】
改ざん検査装置１６は、ユーザ装置１２におけるウェブページの改ざんリスクを検出する情報処理装置である。実施の形態では、ＩＢページの改ざんがユーザ装置１２で行われたか否かを検出するためのデータ処理を実行する。
【００２１】
なお、改ざん検出の対象となるウェブページであり、言い換えれば、改ざんから保護されるべきウェブページ（以下「保護対象ページ」とも呼ぶ。）は、ＩＢページに限られないことはもちろんである。Ｂ２Ｂサイト・Ｂ２Ｃサイト・企業サイト等、様々なウェブサイトが提供する様々なウェブページが保護対象ページになり得る。図１のＩＢサーバ１４は、保護対象ページを提供する様々な企業や団体、個人が保有するサーバや装置に置き換えることもできる。また、複数の装置が提供する複数の保護対象ページが、改ざん検査装置１６による改ざん検出の対象となり得る。
【００２２】
図２は、図１の改ざん検査装置１６の機能構成を示すブロック図である。改ざん検査装置１６は、通信部２０、制御部２２、記憶部２４を備える。通信部２０は、各種通信プロトコル（ＨＴＴＰ等）にしたがって通信処理を実行する。制御部２２は、改ざん検査のためのデータ処理を実行し、また通信部２０を介してユーザ装置１２およびＩＢサーバ１４とデータを送受する。記憶部２４は、各種データを記憶する記憶領域である。
【００２３】
本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵやメモリをはじめとする素子や機械装置、電子回路で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現される。ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００２４】
例えば、制御部２２の各機能ブロックに対応するモジュールを含むコンピュータプログラムが改ざん検査装置１６のストレージへインストールされてもよい。改ざん検査装置１６のＣＰＵは、当該コンピュータプログラムをメインメモリへ読み出して実行することにより各機能ブロックの機能を発揮してもよい。記憶部２４の各機能ブロックは、改ざん検査装置１６のメインメモリやストレージ等の記憶装置がデータを記憶することにより実現されてもよい。
【００２５】
記憶部２４は、検証データ保持部３０、ユーザ情報保持部３２、検査結果保持部３４を含む。制御部２２は、要求受付部４０、トークン発行部４２、分割位置決定部４４、検証プログラム生成部４６、検証プログラム提供部４８、検証データ提供部５０、検査実行部５２、完了情報提供部５４、検査結果提供部５６を含む。
【００２６】
検証データ保持部３０は、ユーザ装置１２におけるウェブページの改ざん有無を検証するためのウェブページデータ（以下「検証データ」と呼ぶ。）を保持する。検証データは、ＩＢサーバ１４がユーザ装置１２へ提供するＩＢページに対応する内容が予め設定されたデータであり、実施の形態ではＩＢページと同一内容のウェブページデータとする。検証データ保持部３０は、ＩＢページに対して予め付与された識別情報であるサイトＩＤおよびページＩＤと、そのＩＢページに対応する検証データとを対応づけて保持する。改ざん検査装置１６による改ざん検出対象となる保護対象ページが複数存在する場合、検証データ保持部３０は、複数の保護対象ページに対応する複数の検証データを保持する。
【００２７】
ユーザ情報保持部３２は、検査対象となるユーザ（ユーザ装置１２）に関する情報であるユーザ情報を保持する。具体的には、ユーザ情報として、チェックトークン、サイトＩＤ、ページＩＤ、ユーザエージェント情報、ＩＰアドレス、検証データ分割位置を対応付けて保持する。チェックトークンは、検査毎に改ざん検査装置１６がユーザ装置１２へ払い出したＩＤである。サイトＩＤおよびページＩＤは、保護対象ページの識別情報である。例えば、あるサイトＩＤは、ユーザ装置１２がアクセスしたＩＢサーバ１４が提供するウェブサイトについて予め定められたＩＤである。また、あるページＩＤは、ＩＢサーバ１４が提供するウェブページ（例えばインターネットバンキングへのログインページ）のＩＤである。
【００２８】
検査結果保持部３４は、改ざん検査装置１６によるユーザ装置１２の検査結果を保持する。この検査結果は、ユーザ装置１２におけるウェブページ改ざんの検出有無を示す情報とも言える。具体的には、検査結果保持部３４は、チェックトークン、検査日時、検査結果情報を対応付けて保持する。
【００２９】
要求受付部４０は、ユーザ装置１２およびＩＢサーバ１４から送信されたＨＴＴＰリクエストを受信する。要求受付部４０が受信するＨＴＴＰリクエストは、検証プログラムの提供を要求する検証プログラム要求、検証データの提供を要求する検証データ要求、検証データの検査を要求する検査要求、検査結果の照会を要求する検査結果照会要求を含む。検証プログラム要求はサイトＩＤとページＩＤを含む。検証データ要求はチェックトークンとＩＢページのＵＲＩ（ＵＲＬ）を含む。検査要求は、チェックトークンと分割された検証データを含む。検査結果照会要求はチェックトークンを含む。
【００３０】
トークン発行部４２は、ユーザ装置１２から検証プログラム要求が受信された場合に、ユニークなチェックトークンを生成する。チェックトークンは、検証プログラム要求の単位でユニークであり、保護対象ページに対する接続毎に発行されるランダムな値である。したがって、異なるユーザに異なるチェックトークンを割当てることはもちろん、同じユーザであっても閲覧するウェブページが異なれば異なるチェックトークンを割当てる。さらにまた、同じユーザが同じページへ接続しても接続セッションが異なれば異なるチェックトークンを割当てる。トークン発行部４２は、検証プログラム要求元のユーザ（ユーザ装置１２）、当該ユーザが閲覧するウェブページ（サイトＩＤ・ページＩＤ）、日時等の組み合わせに基づきユニークなチェックトークンを生成してもよい。
【００３１】
分割位置決定部４４は、ユーザ装置１２から検証プログラム要求が受信された場合に、ユーザ装置１２が検証データを分割すべき位置をランダムに決定する。例えば、ハードウエア乱数やソフトウエア乱数等により発生させた擬似乱数にしたがって、検証データの先頭から末尾までのいずれかの位置を分割位置として決定してもよい。分割位置は、検証データの先頭からの距離（文字列長等）を示す値であってもよい。
【００３２】
検証プログラム生成部４６は、ウェブページ改ざんの検査のためにユーザ装置１２のウェブブラウザに実行させる動作を定めたコンピュータプログラム（以下「検証プログラム」と呼ぶ。）を生成する。実施の形態の検証プログラムは、ＪａｖａＳｃｒｉｐｔ（登録商標）コードとして構成され、図３にて後述する検証プログラム（検証データ処理部）の機能を含む。検証プログラム生成部４６は、トークン発行部４２により生成されたチェックトークンと、分割位置決定部４４により決定された検証データ分割位置の情報を検証プログラムに設定する。
【００３３】
また検証プログラム生成部４６は、検証プログラム要求からユーザ装置１２のユーザエージェント情報（ＯＳやウェブブラウザの種類等）とＩＰアドレスを取得し、これらの情報を含むユーザ情報をユーザ情報保持部３２へ記録する。検証プログラム生成部４６が記録するユーザ情報は、トークン発行部４２が生成したチェックトークン、検証プログラム要求が含むサイトＩＤおよびページＩＤ、ユーザエージェント情報、ＩＰアドレス、分割位置決定部４４が決定した検証データ分割位置を含む。
【００３４】
検証プログラム提供部４８は、検証プログラム要求に対する応答として、検証プログラム生成部４６が生成した検証プログラムを要求元のユーザ装置１２へ送信する。既述したように検証プログラムには検証データ分割位置が含まれ、検証プログラム提供部４８は、検証データ分割位置をユーザ装置１２へ通知する分割位置通知部とも言える。
【００３５】
検証データ提供部５０は、ユーザ装置１２から検証データ要求が受信された場合に、ユーザ情報保持部３２のユーザ情報を参照し、検証データ要求で指定されたチェックトークンに対応するサイトＩＤとページＩＤを識別する。そして、検証データ保持部３０に格納された検証データのうち、識別したサイトＩＤとページＩＤで特定される検証データを送信対象として識別する。検証データ提供部５０は、検証データ要求に対する応答として、送信対象として識別した検証データを要求元のユーザ装置１２へ送信する。
【００３６】
検査実行部５２は、ユーザ装置１２におけるウェブページ改ざんのリスクを検出するための検査処理を実行する。検査実行部５２は、ユーザ装置１２から検査要求が受信された場合に、検査要求が含むチェックトークンにしたがってサイトＩＤとページＩＤを識別し、そのサイトＩＤとページＩＤに対応づけられた検証データを取得する。この検証データは、検証データ提供部５０がユーザ装置１２へ送信した検証データであり、以下「原本検証データ」とも呼ぶ。
【００３７】
検査実行部５２は、検査要求が含む検証データを取得する。検査要求では、検証データが第１検証データと第２検証データの２つに分割されている。検査実行部５２は、第１検証データと第２検証データをマージして、１つの検証データ（以下「返却検証データ」とも呼ぶ。）を生成する。返却検証データは、ユーザ装置１２から返却された、改ざんの可能性のある検証データである。また検査実行部５２は、返却検証データの分割位置を記憶する。例えば、第１検証データの長さ（バイト長）を分割位置として記憶してもよい。
【００３８】
検査実行部５２は、原本検証データと返却検証データとを比較し、両者が一致するか否かを判定する。言い換えれば、原本検証データと返却検証データとが不一致である場合にその事実を検出する。また検査実行部５２は、ユーザ情報保持部３２のユーザ情報を参照し、検査要求のチェックトークンと対応付けられた（すなわち分割位置決定部４４により予め定められた）検証データ分割位置と、返却検証データの分割位置とを比較し、両者が一致するか否かを判定する。
【００３９】
検査実行部５２は、検査結果情報として、原本検証データと返却検証データとが一致するか否かを示す情報と、予め定められた検証データ分割位置と返却検証データの分割位置とが一致するか否かを示す情報を検査結果保持部３４に記録する。検査実行部５２は、検査結果情報を、検査結果要求が含むチェックトークン、検査の実行日時と対応付けて検査結果保持部３４へ格納する。
【００４０】
検査結果情報は任意の形式であってよい。例えば、原本検証データと返却検証データとの一致有無、および、予め定められた検証データ分割位置と返却検証データ分割位置との一致有無を示すコード値（ワーニングコード、ステータスコード等）であってもよい。また、原本検証データと返却検証データの不一致、予め定めた検証データ分割位置と返却検証データ分割位置の不一致のいずれかを検出した場合、検査実行部５２は、ユーザ装置１２におけるウェブページ改ざんリスクが高いことを示すコード値を検査結果として設定してもよい。検査結果情報は、ユーザ装置１２におけるウェブページ改ざんの有無や、改ざんの可能性の高低を示す情報とも言え、ユーザ装置１２にマルウェアが存在することを報知し、または示唆する情報とも言える。
【００４１】
完了情報提供部５４は、検査実行部５２による検査処理が完了した場合に、検査要求に対する応答として、予め定められた完了情報を要求元のユーザ装置１２へ送信する。完了情報は、ユーザ装置１２から返却された検証データを改ざん検査装置１６が受信したことを示す受信確認データとも言える。完了情報提供部５４は、検査実行部５２から検査処理の完了通知を受け付ける、または、検査結果情報が検査結果保持部３４に格納されたことを検出することにより、検査処理の完了を検出してもよい。
【００４２】
検査結果提供部５６は、ＩＢサーバ１４から検査結果照会要求が受信された場合に、検査結果保持部３４に格納された検査結果情報のうち検査結果照会が指定するチェックトークンに対応付けられた検査結果情報を取得する。検査結果提供部５６は、検査結果照会に対する応答として、検査結果保持部３４から取得した検査結果情報をＩＢサーバ１４へ送信する。
【００４３】
図３は、図１のユーザ装置１２の機能構成を示すブロック図である。ユーザ装置１２は、入力装置６０、表示装置６２、通信部６４、制御部６６を備える。図３には不図示だが、通常、制御部６６が処理するデータを格納するための記憶部をさらに備える。入力装置６０は、キーボードやタッチパネルであってもよい。表示装置６２は液晶ディスプレイであってもよい。通信部６４は、各種通信プロトコル（ＨＴＴＰ等）にしたがって通信処理を実行する。
【００４４】
制御部６６は、各種データ処理を実行し、また通信部６４を介してＩＢサーバ１４および改ざん検査装置１６とデータを送受する。制御部６６は、操作受付部７０、表示制御部７２、ウェブブラウザ部７４を含む。操作受付部７０は、入力装置６０に対してユーザが入力した操作を検出し、その操作情報を適宜ウェブブラウザ部７４に渡す。表示制御部７２は、表示装置６２における表示内容を制御する。例えば、ウェブコンテンツ等の画像データを表示装置６２へ出力し、その画像データを表示装置６２に表示させる。
【００４５】
ウェブブラウザ部７４は、ＪａｖａＳｃｒｉｐｔ実行エンジン（例えばインタプリタ）を備えた公知のウェブブラウザである。ウェブブラウザ部７４は、要求送信部８０、応答取得部８２、ページ表示部８４、検証プログラム取得部８６を含む。要求送信部８０、応答取得部８２、ページ表示部８４は、ユーザにより指定されたウェブページを取得して、表示装置６２の画面に表示させる。
【００４６】
具体的には、要求送信部８０は、ユーザの操作に応じてＨＴＴＰリクエスト（ＧＥＴ、ＰＯＳＴ等）をＩＢサーバ１４や改ざん検査装置１６へ送信する。応答取得部８２は、ＨＴＴＰリクエストに対する応答データ（例えばウェブページデータ）をＩＢサーバ１４や改ざん検査装置１６から取得する。ページ表示部８４は、ウェブページのレンダリング処理を実行する。例えば、応答取得部８２により取得されたウェブページのデータ（ＨＴＭＬコード等）を解析して、ウェブページのコンテンツを、表示制御部７２を介して表示装置６２に表示させる。
【００４７】
検証プログラム取得部８６は、要求送信部８０を介して、検証プログラム要求を改ざん検査装置１６へ送信する。検証プログラム取得部８６の機能は、ＩＢサーバ１４からユーザ装置１２へ提供されたＩＢページが含むＪａｖａＳｃｒｉｐｔプログラムに記述され、そのプログラムをウェブブラウザ部７４が実行することにより実現される。
【００４８】
ウェブブラウザ部７４は、検証データ処理を実行する機能として、検証データ取得部８８、データ分割部９０、検証データ送信部９２、完了情報取得部９４をさらに含む。これらの機能は、改ざん検査装置１６からユーザ装置１２へ提供された検証プログラムに記述され、ウェブブラウザ部７４が検証プログラムを実行することにより実現される。
【００４９】
検証データ取得部８８は、Ａｊａｘ（Asynchronous JavaScript + XML）の仕組みを使用して、ＩＢページの画面表示や画面遷移、言い換えれば、ページ表示部８４によるレンダリング処理とは非同期の処理として、チェックトークンを含む検証データ要求を改ざん検査装置１６へ送信する。そして、改ざん検査装置１６から返信された検証データを取得する。例えば、検証データ取得部８８は、ＸＭＬＨＴＴＰＲｅｑｕｅｓｔ関数を使用して検証データ要求を送信し、検証データを取得してもよい。
【００５０】
また検証データ取得部８８は、ＩＢページのＵＲＩ（ＵＲＬ）を検証データ要求に含める。このＵＲＩには、ＩＢサーバ１４へ送信したＧＥＴ要求で指定したＩＢページのＵＲＩを設定する。これにより、ユーザ装置１２にマルウェアが存在する場合、そのマルウェアに、検証データ要求への応答として改ざん検査装置１６が提供した検証データが、ＩＢサーバ１４が提供したＩＢページであると認識（言わば誤認）させ、ＩＢページと同様に検証データを改ざんさせる。
【００５１】
データ分割部９０は、検証プログラムに予め設定された（言い換えれば改ざん検査装置１６で予め定められた）検証データ分割位置にしたがって、検証データ取得部８８が取得した検証データを第１検証データと第２検証データに分割する。例えば、オリジナルの検証データが２０００バイトで、分割位置が５００バイトの場合、検証データの先頭から５００バイトのデータを第１検証データとして抽出し、検証データの残り１５００バイトを第２検証データとして設定してもよい。
【００５２】
検証データ送信部９２は、検証データ取得部８８と同様に、ページ表示部８４によるレンダリング処理とは非同期の処理として、検査要求を改ざん検査装置１６へ送信する。検査要求は、チェックトークン、第１検証データ、第２検証データを含む。検証データ送信部９２は、第１検証データと第２検証データを異なる隠し（hidden）パラメータに設定する。完了情報取得部９４は、検査要求に対して改ざん検査装置１６から返信された完了情報を取得する。完了情報取得部９４は、予め定められたユーザ装置１２の記憶領域に完了情報を格納する。
【００５３】
以上の構成によるウェブシステム１０の動作を以下説明する。
図４は、ウェブシステム１０の動作を示すシーケンス図である。なお、同図の破線で示す矢印は、要求に対する同期応答を示している。ユーザ装置１２は、保護対象ページであるＩＢページのＵＲＬを指定したＧＥＴ要求をＩＢサーバ１４へ送信する（Ｓ１０）。ＩＢサーバ１４は、ＧＥＴ要求で指定されたＩＢページをユーザ装置１２へ送信する（Ｓ１２）。ユーザ装置１２へ提供されるＩＢページは、インターネットバンキングサイトの識別情報である所定のサイトＩＤと、ＩＢページの識別情報である所定のページＩＤの情報を含む。さらに、改ざん検査装置１６から検証プログラムを取得する処理を記述したＪａｖａＳｃｒｉｐｔコードを含む。
【００５４】
ユーザ装置１２のウェブブラウザ部７４は、ＩＢページを取得して、ＩＢページのレンダリング処理を実行する（Ｓ１４）。ウェブブラウザ部７４は、ＩＢページに設定されたＪａｖａＳｃｒｉｐｔコードを解釈して検証プログラム取得部８６の機能を発揮させる。ウェブブラウザ部７４の検証プログラム取得部８６は、サイトＩＤとページＩＤを含む検証プログラム要求を改ざん検査装置１６へ送信する（Ｓ１６）。改ざん検査装置１６のトークン発行部４２は、ユニークなチェックトークンを払出し、分割位置決定部４４は、検証データの分割位置をランダムに決定する（Ｓ１８）。
【００５５】
改ざん検査装置１６の検証プログラム生成部４６は、チェックトークンと検証データ分割位置を設定した検証プログラムを生成する。また、チェックトークン、サイトＩＤ、ページＩＤ、検証データ分割位置を含むユーザ情報を記録する（Ｓ１８）。改ざん検査装置１６の検証プログラム提供部４８は検証プログラムをユーザ装置１２へ送信し、ユーザ装置１２のウェブブラウザ部７４は検証プログラムを取得する（Ｓ２０）。ユーザ装置１２のウェブブラウザ部７４がＩＢページのレンダリング処理を完了すると、ウェブブラウザ部７４のＪａｖａＳｃｒｉｐｔエンジンは、検証プログラムの実行を開始する（Ｓ２２）。これにより、ウェブブラウザ部７４は、検証データ取得部８８、データ分割部９０、検証データ送信部９２、完了情報取得部９４の機能を発揮する。
【００５６】
検証データ取得部８８は、ウェブブラウザ部７４におけるウェブページ表示処理とは非同期の処理として、Ｓ１０と同様のＩＢページのＵＲＬを含む検証データ要求を改ざん検査装置１６へ送信する（Ｓ２４）。改ざん検査装置１６の検証データ提供部５０は、検証データ要求が含むチェックトークンに基づいて、ＩＢページに対応する検証データを選択する。具体的には、ＩＢページと同内容のウェブページデータを検証データとして選択する（Ｓ２６）。検証データ提供部５０は、選択した検証データをユーザ装置１２へ送信する（Ｓ２８）。ユーザ装置１２のデータ分割部９０は、検証プログラムに設定された分割位置情報にしたがって検証データを分割する（Ｓ３０）。検証データ送信部９２は、ウェブブラウザ部７４におけるウェブページ表示処理とは非同期の処理として、検査要求を改ざん検査装置１６へ送信する（Ｓ３２）。
【００５７】
改ざん検査装置１６の検査実行部５２は、検査要求が含む第１分割データと第２分割データを連結することにより返却検証データを生成する。検査実行部５２は、原本検証データと返却検証データとを比較し、両者の内容が一致するか否かを判定する。また、検査要求が含むチェックトークンに予め対応付けられた検証データ分割位置を識別し、その検証データ分割位置と、返却検証データの分割位置とを比較し、両者が一致するか否かを判定する。検査実行部５２は、判定結果を示す検査結果情報を検査結果保持部３４へ格納する（Ｓ３４）。検査実行部５２の判定処理が終了すると、完了情報提供部５４は、所定の完了情報をユーザ装置１２へ送信する（Ｓ３６）。ユーザ装置１２の完了情報取得部９４は、改ざん検査装置１６から提供された完了情報を所定の記憶領域へ格納する（Ｓ３８）。
【００５８】
ここで、Ｓ１２において取得したＩＢページのフォームは、所定の記憶領域に完了情報が格納されている場合にサブミットを有効にするよう構成される。すなわち、ウェブブラウザ部７４がＩＢページを読み込むことにより、ウェブブラウザ部７４の要求送信部８０は、サーバ１４から完了情報を受信済であることを条件として、ＩＢページに対するユーザの入力情報をＩＢサーバ１４へ送信する入力情報送信部としての機能を発揮する。
【００５９】
すなわち要求送信部８０は、ＩＢページに対してユーザが情報を入力後、送信操作を入力すると、所定の記憶領域に完了情報が記録されていることを条件として、ＩＢページへの入力情報をＩＢサーバ１４へ送信する（Ｓ４０）。具体的には、隠し（hidden）パラメータにチェックトークンを含めたＰＯＳＴ要求を送信する。これにより、改ざん検査装置１６によるウェブページ改ざん検査が未完了の間に、ＩＢページに対する入力情報がＩＢサーバ１４へ送信されることを防止できる。言い換えれば、ユーザ装置１２におけるウェブページ改ざんの有無が不明のまま、ＩＢページに対する入力情報に基づくＩＢサーバ１４の処理を進めてしまうことを防止できる。
【００６０】
ＩＢサーバ１４は、ユーザ装置１２からＩＢページへの入力情報を受信した場合に、入力情報とともに受信したチェックトークンを含む検査結果照会要求を改ざん検査装置１６へ送信する（Ｓ４２）。改ざん検査装置１６の検査結果提供部５６は、検査結果照会要求で指定されたチェックトークンに対応づけられた検査結果情報をＩＢサーバ１４へ送信する（Ｓ４４）。ＩＢサーバ１４は、検査結果情報に応じて、ユーザ装置１２から受信した入力情報に関する処理を実行する。そして、検査結果に応じたウェブページをユーザ装置１２へ送信する（Ｓ４６）。
【００６１】
ＩＢサーバ１４は、原本検証データと返却検証データとの不一致、または、検証データ分割位置の不正を示す検査結果情報を受け付けた場合、インターネットバンキング処理を中断してもよい。例えば、保護対象ページがログインページの場合、ログインを拒否してもよく、保護対象ページが送金ページの場合、送金処理をキャンセルしてもよい。またＩＢサーバ１４は、ウェブページ改ざんやマルウェア導入の虞（可能性）を示す警告情報をユーザ装置１２へ送信してもよい。このように、改ざん検査装置１６は、ユーザ装置１２におけるウェブページ改ざんの有無を検出し、検出結果をＩＢサーバ１４へ提供するが、その結果に応じた具体的な処理はＩＢサーバ１４に委ねる。
【００６２】
実施の形態のウェブシステム１０によると、保護対象ページに対応する検証データを改ざん検査装置１６からユーザ装置１２へ提供し、提供したオリジナルデータと、ユーザ装置１２から返却された検証データとを比較して、改ざんの有無を検出する。これにより、未知の態様でウェブページ改ざんを行うマルウェアがユーザ装置１２に存在する場合も、ウェブページ改ざんの事実を精度よく検出できる。また、検証プログラムをロードするコードを保護対象ページに記述すれば、改ざん検査のための処理をユーザ装置１２のウェブブラウザに実行させることができ、改ざん検査用のアプリケーションをユーザ装置１２に別途インストールさせる必要がない。
【００６３】
また検証プログラムは、ウェブブラウザ部７４によるウェブページ表示とは非同期の処理として、改ざん検査装置１６から検証データを取得し、取得した検証データを改ざん検査装置１６へ返却するよう構成される。ユーザ装置１２から改ざん検査装置１６へ返却される検証データは、ウェブブラウザ部７４による表示処理（言い換えればレンダリング処理）を経ないデータとなる。これにより、ウェブブラウザ部７４によるレンダリング処理にて行われ得るウェブページの変更であり、本来は検出すべきでない言わば正常な改ざんを改ざん検査装置１６で検出することを回避できる。言い換えれば、ウェブページの不正な改ざんがないにも関わらず、不正な改ざんがあると誤判定することを抑制できる。ウェブブラウザ部７４のレンダリング処理によるウェブページの変更は、例えば、ウェブブラウザ画面におけるツールバー表示に伴う表示内容の変更、ヘルパーオブジェクトやプラグインによる表示内容の変更を含む。
【００６４】
また、実施の形態のウェブシステム１０によると、改ざん検査装置１６が検査の都度、検証データの分割位置を動的に決定し、ユーザ装置１２にその分割位置にて検証データを分割させる。これにより、ユーザ装置１２に存在するマルウェアの検出精度を高めることができる。例えば、ユーザ装置１２内のマルウェアがオリジナルの検証データをそのまま改ざん検査装置１６へ送信したとしても、改ざん検査装置１６を欺瞞することはできない。また、分割位置はランダムな数値に決まり、その値も複数の変数に分割されてユーザ装置１２に伝達されるため、検証データ分割のパターン化が困難であり、不特定多数に有効な攻撃コードを作成することを困難にすることができる。そのため、改ざん検査装置１６において返却検証データの分割位置の妥当性をチェックすることで、ユーザ装置１２におけるマルウェアの存在を精度よく検出できる。
【００６５】
また、実施の形態のウェブシステム１０では、ウェブページ改ざんの検査結果をユーザ装置１２へ提供するではなく、保護対象ページの提供元装置であるＩＢサーバ１４へ直接提供する。これにより、改ざん検査装置１６による検査結果をユーザ装置１２内のマルウェアが書き換えてしまうことを回避できる。すなわち、改ざん検査装置１６による検査結果を確実にＩＢサーバ１４へ提供し、ＩＢサーバ１４が適切な処理を実行できるよう支援できる。
【００６６】
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せによりいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６７】
例えば、改ざん検査装置１６の検査実行部５２は、検査処理終了時に、ユーザ情報保持部３２に保持されたユーザ情報のうち検査要求で指定されたチェックトークンで特定されるユーザ情報を削除してもよい。検証データ提供部５０（または検査実行部５２）は、検証データ要求（または検査要求）で指定されるチェックトークンに対応するユーザ情報が存在しない場合、所定の例外処理を実行してもよい。例えば、検証データ提供部５０は、検証データ要求への応答として、検証データに代えて異常を示すエラーコードを返してもよい。また、検証データ提供部５０または検査実行部５２は、異常を示す検査結果情報を検査結果保持部３４に記録してもよい。この態様によると、図４のＳ２４〜Ｓ３２を繰り返すリプレイ攻撃によって正常な検査結果が生じてしまうことを防止できる。
【００６８】
また、改ざん検査装置１６の検査実行部５２は、検査要求に基づいて要求元装置のユーザエージェント情報とＩＰアドレスを取得してもよい。そして、検査要求で指定されたチェックトークンで特定されるユーザ情報について、そのユーザ情報に記録されたユーザエージェント情報とＩＰアドレスとの異同を判定してもよい。言い換えれば、検査要求におけるユーザエージェント情報およびＩＰアドレスと、検査プログラム要求におけるユーザエージェント情報およびＩＰアドレスとが一致するか否かをさらに判定してもよい。不一致の場合、検査実行部５２は、異常を示す検査結果情報を検査結果保持部３４に記録してもよい。この態様によると、通信経路上に存在する悪意のある第三者装置による中間者攻撃を検出しやすくなる。
【００６９】
次に、改ざん検査装置１６による検査処理の変形例を説明する。改ざん検査装置１６の検査実行部５２は、検証データ保持部３０から取得した原本検証データを、ユーザ情報保持部３２において検査要求のチェックトークンと対応付けられた検証データ分割位置で分割する。ここでは、原本検証データを分割した前半部分を「第１原本データ」と呼び、後半部分を「第２原本データ」と呼ぶ。検査実行部５２は、ユーザ装置１２からの検査要求が含む第１検証データと第１原本データが一致するか否かを判定するとともに、検査要求が含む第２検証データと第２原本データが一致するか否かを判定する。このように、原本検証データと返却検証データが一致するか否かの判定と、ユーザ装置１２による検証データの分割位置が、改ざん検査装置１６が決定した分割位置と一致するか否かの判定を同じプロセスで実行してもよい。
【００７０】
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【符号の説明】
【００７１】
１０  ウェブシステム、  １２  ユーザ装置、  １６  改ざん検査装置、  ４４  分割位置決定部、  ４８  検証プログラム提供部、  ５０  検証データ提供部、  ５２  検査実行部、  ５４  完了情報提供部、  ５６  検査結果提供部、  ８０  要求送信部、  ８４  ページ表示部、  ８８  検証データ取得部、  ９０  データ分割部、  ９２  検証データ送信部。
【図１】
0006291441.tif 000002
【図２】
0006291441.tif 000003
【図３】
0006291441.tif 000004
【図４】
0006291441.tif 000005