(57)【特許請求の範囲】
【請求項１】
画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ名を含むパラメタ情報とを有する画面情報を記憶する記憶部と、
前記記憶部に記憶されている前記画面情報を、前記画面の表示順に読み出す読出部と、
前記読出部によって読み出された第１の前記画面情報に含まれる第１の前記格納場所情報および第１の前記パラメタ情報に基づいて、当該第１の前記格納場所情報に対応するサーバ装置に、当該第１の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信部と、
前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信部と、
前記レスポンスに含まれる前記情報資源から第２の前記格納場所情報および第２の前記パラメタ情報を抽出する抽出部と、
前記抽出部によって抽出された前記第２の前記格納場所情報および前記第２の前記パラメタ情報と、前記読出部によって前記第１の前記画面情報の次に読み出される第２の前記画面情報に含まれる第３の前記格納場所情報および第３の前記パラメタ情報とをそれぞれ比較する比較部と、
前記比較部による前記比較によって、前記各格納場所情報同士が不一致であり、かつ、前記各パラメタ情報に含まれる前記各パラメタ名同士が全て一致する場合に、前記記憶部に記憶されている前記第２の前記画面情報に含まれる前記第３の前記格納場所情報を、前記抽出部によって抽出された前記第２の前記格納場所情報で書き換える書換部と、
を備えることを特徴とする画面シーケンス確認装置。
【請求項２】
前記比較部による前記比較によって、前記各格納場所情報同士が不一致であり、かつ、前記各パラメタ情報に含まれる前記各パラメタ名同士が全て一致する場合に、前記抽出部によって抽出された前記第２の前記格納場所情報および前記第３の前記パラメタ情報に基づいて、当該第２の前記格納場所情報に対応するサーバ装置に、当該第２の前記格納場所情報に対応する前記情報資源の第２のリクエストを送信する第２の送信部と、
前記第２のリクエストに応じて前記サーバ装置から送信される第２のレスポンスを受信する第２の受信部と、
前記第２のレスポンスに含まれる前記情報資源から第４の前記格納場所情報を抽出する第２の抽出部と、
前記第２の抽出部によって抽出された前記第４の前記格納場所情報と、前記読出部によって前記第２の前記画面情報の次に読み出される第３の前記画面情報に含まれる第５の前記格納場所情報とを比較する第２の比較部と、をさらに備え、
前記書換部は、前記第２の比較部による前記比較によって、前記各格納場所情報同士が一致する場合に、前記記憶部に記憶されている前記第２の前記画面情報に含まれる前記第３の前記格納場所情報を、前記抽出部によって抽出された前記第２の前記格納場所情報で書き換える、ことを特徴とする請求項１記載の画面シーケンス確認装置。
【請求項３】
画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ情報とを有する画面情報を記憶する記憶部と、
前記記憶部に記憶されている前記画面情報を、前記画面の表示順に読み出す読出部と、
前記読出部によって読み出された第１の前記画面情報に基づいて、当該第１の前記画面情報に含まれる第１の前記格納場所情報に対応するサーバ装置に、当該第１の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信部と、
前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信部と、
前記レスポンスに含まれる前記情報資源から所定関数を含むイベント情報を抽出する抽出部と、
前記読出部によって読み出された第１の前記画面情報の前記パラメタ情報に含まれる所定パラメタ値が、前記レスポンスの前記情報資源に含まれている場合に、前記抽出部によって抽出された前記イベント情報に含まれる前記所定関数を解析して前記所定パラメタ値に対応する第２の前記格納場所情報を取得する関数解析部と、
前記関数解析部によって取得された前記第２の前記格納場所情報と、前記読出部によって前記第１の前記画面情報の次に読み出される第２の前記画面情報に含まれる第３の前記格納場所情報とを比較する比較部と、
前記比較部による前記比較によって、前記各格納場所情報同士が不一致である場合に、前記記憶部に記憶されている前記第２の前記画面情報に含まれる前記第３の前記格納場所情報を、前記関数解析部によって取得された前記第２の前記格納場所情報で書き換える書換部と、
を備えることを特徴とする画面シーケンス確認装置。
【請求項４】
画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ名を含むパラメタ情報とを有する画面情報を記憶させる記憶ステップと、
前記記憶ステップにおいて記憶された前記画面情報を、前記画面の表示順に読み出す読出ステップと、
前記読出ステップにおいて読み出された第１の前記画面情報に含まれる第１の前記格納場所情報および第１の前記パラメタ情報に基づいて、当該第１の前記格納場所情報に対応するサーバ装置に、当該第１の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信ステップと、
前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信ステップと、
前記レスポンスに含まれる前記情報資源から第２の前記格納場所情報および第２の前記パラメタ情報を抽出する抽出ステップと、
前記抽出ステップにおいて抽出された前記第２の前記格納場所情報および前記第２の前記パラメタ情報と、前記読出ステップにおいて前記第１の前記画面情報の次に読み出される第２の前記画面情報に含まれる第３の前記格納場所情報および第３の前記パラメタ情報とをそれぞれ比較する比較ステップと、
前記比較ステップにおける前記比較によって、前記各格納場所情報同士が不一致であり、かつ、前記各パラメタ情報に含まれる前記各パラメタ名同士が全て一致する場合に、前記記憶ステップにおいて記憶された前記第２の前記画面情報に含まれる前記第３の前記格納場所情報を、前記抽出部によって抽出された前記第２の前記格納場所情報で書き換える書換ステップと、
を含むことを特徴とする画面シーケンス確認方法。
【請求項５】
請求項４に記載の各ステップをコンピュータに実行させるための画面シーケンス確認プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラムに関する。
【背景技術】
【０００２】
Ｗｅｂアプリケーションに潜む脆弱性を放置すると、不正アクセスやコンピュータウイルス等の攻撃に悪用され、システムやネットワークのダウン、個人情報の漏洩など大きな被害が発生する危険性がある。したがって、脆弱性を早期に発見して適切に対処する必要がある。一般に、Ｗｅｂシステムを開発する際には、脆弱性を検査するソフトウェアを実行させてＷｅｂアプリケーションの脆弱性を検査することが行われている（例えば、下記特許文献１参照）。
【０００３】
脆弱性を検査するソフトウェアの中には、予め、検査対象となるＷｅｂアプリケーションの各画面を表示遷移順に読み込み、各画面に含まれるＵＲＬやパラメタを画面ごとに順次記憶させる事前作業を行ったうえで、この事前作業で記憶させた画面の表示遷移順に脆弱性を検査していくものがある。画面の中には、画面内に設けられた入力項目に入力されなければ次画面に遷移できないものがあり、このような画面を有するシステムでは、上記事前作業を１画面ずつ手作業で行うことになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２４１９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、脆弱性を検査した後などに画面が修正された場合には、修正された画面の脆弱性を再度検査する必要があり、これに伴って上述した事前作業も再度行う必要がある。特に事前作業を手作業で行う場合には、入力項目や修正画面数が多いと事前作業に要する時間が多くなり、作業効率が低下してしまう。
【０００６】
また、画面を修正する場合には、修正対象画面のＵＲＬを変更する場合がある。画面のＵＲＬを変更した場合には、脆弱性を検査する際に、事前作業を再度行う必要がある。ところが、例えば画面の修正作業を行う担当者と脆弱性の検査作業を行う担当者とが異なる場合に、連絡ミス等によって変更内容が正確に伝達されないと、事前作業を再度行うことなく脆弱性を検査してしまうことも考えられる。この場合には、脆弱性の検査漏れが発生してしまう。
【０００７】
一方、連絡ミス等による検査漏れを防止するために、脆弱性検査のたびに全画面を対象にして事前作業を行うことも考えられるが、この場合には、事前作業に要する時間が多くなり、作業効率が低下してしまう。
【０００８】
本発明は、上述した課題を解決するためになされたものであり、脆弱性の検査を確実かつ効率的に行うことができる画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の画面シーケンス確認装置は、画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ名を含むパラメタ情報とを有する画面情報を記憶する記憶部と、前記記憶部に記憶されている前記画面情報を、前記画面の表示順に読み出す読出部と、前記読出部によって読み出された第１の前記画面情報に含まれる第１の前記格納場所情報および第１の前記パラメタ情報に基づいて、当該第１の前記格納場所情報に対応するサーバ装置に、当該第１の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信部と、前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信部と、前記レスポンスに含まれる前記情報資源から第２の前記格納場所情報および第２の前記パラメタ情報を抽出する抽出部と、前記抽出部によって抽出された前記第２の前記格納場所情報および前記第２の前記パラメタ情報と、前記読出部によって前記第１の前記画面情報の次に読み出される第２の前記画面情報に含まれる第３の前記格納場所情報および第３の前記パラメタ情報とをそれぞれ比較する比較部と、前記比較部による前記比較によって、前記各格納場所情報同士が不一致であり、かつ、前記各パラメタ情報に含まれる前記各パラメタ名同士が全て一致する場合に、前記記憶部に記憶されている前記第２の前記画面情報に含まれる前記第３の前記格納場所情報を、前記抽出部によって抽出された前記第２の前記格納場所情報で書き換える書換部と、を備える。
【００１０】
本発明の画面シーケンス確認装置は、画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ情報とを有する画面情報を記憶する記憶部と、前記記憶部に記憶されている前記画面情報を、前記画面の表示順に読み出す読出部と、前記読出部によって読み出された第１の前記画面情報に基づいて、当該第１の前記画面情報に含まれる第１の前記格納場所情報に対応するサーバ装置に、当該第１の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信部と、前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信部と、前記レスポンスに含まれる前記情報資源から所定関数を含むイベント情報を抽出する抽出部と、前記読出部によって読み出された第１の前記画面情報の前記パラメタ情報に含まれる所定パラメタ値が、前記レスポンスの前記情報資源に含まれている場合に、前記抽出部によって抽出された前記イベント情報に含まれる前記所定関数を解析して前記所定パラメタ値に対応する第２の前記格納場所情報を取得する関数解析部と、前記関数解析部によって取得された前記第２の前記格納場所情報と、前記読出部によって前記第１の前記画面情報の次に読み出される第２の前記画面情報に含まれる第３の前記格納場所情報とを比較する比較部と、前記比較部による前記比較によって、前記各格納場所情報同士が不一致である場合に、前記記憶部に記憶されている前記第２の前記画面情報に含まれる前記第３の前記格納場所情報を、前記関数解析部によって取得された前記第２の前記格納場所情報で書き換える書換部と、を備える。
【００１１】
本発明の画面シーケンス確認方法は、画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ名を含むパラメタ情報とを有する画面情報を記憶させる記憶ステップと、前記記憶ステップにおいて記憶された前記画面情報を、前記画面の表示順に読み出す読出ステップと、前記読出ステップにおいて読み出された第１の前記画面情報に含まれる第１の前記格納場所情報および第１の前記パラメタ情報に基づいて、当該第１の前記格納場所情報に対応するサーバ装置に、当該第１の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信ステップと、前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信ステップと、前記レスポンスに含まれる前記情報資源から第２の前記格納場所情報および第２の前記パラメタ情報を抽出する抽出ステップと、前記抽出ステップにおいて抽出された前記第２の前記格納場所情報および前記第２の前記パラメタ情報と、前記読出ステップにおいて前記第１の前記画面情報の次に読み出される第２の前記画面情報に含まれる第３の前記格納場所情報および第３の前記パラメタ情報とをそれぞれ比較する比較ステップと、前記比較ステップにおける前記比較によって、前記各格納場所情報同士が不一致であり、かつ、前記各パラメタ情報に含まれる前記各パラメタ名同士が全て一致する場合に、前記記憶ステップにおいて記憶された前記第２の前記画面情報に含まれる前記第３の前記格納場所情報を、前記抽出部によって抽出された前記第２の前記格納場所情報で書き換える書換ステップと、を含む。
【００１２】
本発明の画面シーケンス確認プログラムは、上記画面シーケンス確認方法に含まれる各ステップをコンピュータに実行させる。
【発明の効果】
【００１３】
本発明によれば、脆弱性の検査を確実かつ効率的に行うことができる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態における画面シーケンス確認装置の機能構成を例示するブロック図である。
【図２】第１実施形態における画面情報ファイルのデータ構成を例示する図である。
【図３】ＰＯＳＴメソッドを含む画面ソースコードを例示する図である。
【図４】第１実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート（その１）である。
【図５】第１実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート（その２）である。
【図６】第２実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート（その１）である。
【図７】第２実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート（その２）である。
【図８】第３実施形態における画面シーケンス確認装置の機能構成を例示するブロック図である。
【図９】第３実施形態における画面情報ファイルのデータ構成を例示する図である。
【図１０】第３実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート（その１）である。
【図１１】第３実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して、本発明に係る画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラムの好適な実施形態について説明する。各実施形態における画面シーケンス確認装置は、脆弱性を検査するソフトウェアを実行させる前に行う脆弱性検査の事前作業で生成される画面情報ファイルを、最新のＷｅｂシステムの状態に併せて管理するための装置である。事前作業では、検査対象となるＷｅｂアプリケーションの各画面を表示遷移順に読み込み、各画面に含まれる他の画面へのＵＲＬやパラメタに関する画面情報を画面ごとに順次記憶していくことで画面情報ファイルを生成する。脆弱性を検査するソフトウェアは、画面情報ファイルに記憶された画面の表示遷移順に脆弱性を検査する。
【００１６】
[第１実施形態]
【００１７】
図１を参照して、第１実施形態における画面シーケンス確認装置の機能構成について説明する。画面シーケンス確認装置１は、機能的には、例えば、記憶部１１と、読出部１２と、送信部１３と、受信部１４と、抽出部１５と、比較部１６と、書換部１７と、出力部１８と、を有する。
【００１８】
ここで、画面シーケンス確認装置１は、物理的には、例えば、ＣＰＵ（Central Processing Unit）と、記憶装置と、入力装置と、表示装置と、通信装置とを含んで構成される。これらの要素は、互いにバスを介して接続されている。記憶装置には、例えば、ＣＰＵで処理されるプログラムやデータを記憶するＲＯＭ（Read Only Memory）やＨＤＤ（Hard Disk Drive）、主として制御処理のための各種作業領域として使用されるＲＡＭ（Random Access Memory）等が含まれる。本実施形態における記憶装置には、例えば、図２に示す画面情報ファイルが格納される。ＣＰＵは、ＲＯＭに記憶されたプログラムを実行し、入力装置から入力された各種の指令等に従ってＲＡＭに展開された各種のデータを処理する。ＣＰＵは、その処理結果を表示装置に表示させる。これにより、以下に詳述する画面シーケンス確認装置１における各部の機能を実現することができる。
【００１９】
記憶部１１は、脆弱性検査の事前作業において生成される画面情報を記憶する画面情報ファイルを有する。図２を参照して、画面情報ファイルのデータ構成について説明する。図２は、画面情報ファイルのデータ構成図である。画面情報ファイルは、画面ごとに一のレコード（以下、「画面情報レコード」という。）を格納する。画面情報レコードは、データ項目として、例えば、画面名項目、ｓｃｈｅｍｅ項目、ｈｏｓｔ項目、ｐｏｒｔ項目、ｐａｔｈ項目、ｍｅｔｈｏｄ項目、パラメタ名項目およびパラメタ値項目を有する。ｓｃｈｅｍｅ項目、ｈｏｓｔ項目およびｐａｔｈ項目により、画面を表示するソースコード（情報資源）の格納場所を特定するＵＲＬ（Uniform Resource Locator；格納場所情報）が表される。パラメタ名項目およびパラメタ値項目により、パラメタ情報が構成される。
【００２０】
図２に示す画面名項目には、画面情報レコードを特定するための画面名称が格納される。ｓｃｈｅｍｅ項目には、例えば、httpやftp等のスキームが格納される。ｈｏｓｔ項目には、コンテンツを提供するＷｅｂサーバ装置を特定する情報が格納される。ｐｏｒｔ項目には、Ｗｅｂサーバ装置のポート番号が格納される。ｐａｔｈ項目には、Ｗｅｂサーバ装置内におけるコンテンツを格納する場所を特定する情報が格納される。ｍｅｔｈｏｄ項目には、Ｗｅｂサーバ装置への命令内容を示すメソッドを特定する情報が格納される。パラメタ名項目には、Ｗｅｂサーバ装置に送信するデータとして画面に設定されたパラメタを特定するパラメタ名称が格納される。パラメタ名称としては、例えば、氏名、住所、電話番号、家族構成、銀行口座等が該当する。パラメタ値項目には、パラメタ名に対応するパラメタ値が格納される。
【００２１】
画面情報ファイルは、Ｗｅｂサーバ装置によって提供されるＷｅｂシステムにおける画面の表示遷移順に画面情報レコードを記憶する。例えば、図２に示す画面情報ファイルでは、Ｗｅｂシステムを操作した場合に、画面名が“Ａ”、“Ｂ”、“Ｃ”の順に画面が遷移して表示されることを示す。
【００２２】
なお、画面情報ファイルの記載方法は、図２に示す表形式には限定されず、例えば、ｘｍｌ形式等の他の形式で記載してもよい。
【００２３】
読出部１２は、画面情報ファイルに記憶されている画面情報レコードを、画面の表示順に読み出す。本実施形態では、画面情報ファイルに記憶されている画面情報レコードが予め画面の表示順に記憶されているため、先頭レコードから順に読み込むこととすればよい。一方、画面情報レコードが表示順に記憶されていない場合には、例えば、表示順を特定するデータ項目を画面情報レコードに設けておき、表示順項目の昇順に画面情報レコードを読み出すこととしてもよい。
【００２４】
送信部１３は、画面情報レコードの画面情報に基づいて、この画面情報のＵＲＬに対応する場所に格納されている画面のソースコードをリクエストするためのＨＴＴＰ（HyperText Transfer Protocol）リクエストを、画面情報のｈｏｓｔに対応するＷｅｂサーバ装置に送信する。
【００２５】
受信部１４は、ＨＴＴＰリクエストに応じてＷｅｂサーバ装置から送信されるＨＴＴＰレスポンスを受信する。
【００２６】
抽出部１５は、ＨＴＴＰレスポンスに含まれる画面のソースコードから、他の画面へのＵＲＬおよびパラメタ情報を抽出する。他の画面へのＵＲＬおよびパラメタ情報としては、例えば、ｈｔｔｐのＧＥＴメソッドやＰＯＳＴメソッドに記述されるリンク先およびパラメタ名が該当する。図３を参照して具体的に説明する。図３は、ＰＯＳＴメソッドを含む画面のソースコードである。抽出部１５は、図３に示すソースコードから、他の画面へのＵＲＬとして、“http://www.test.example.com/testpage1.cgi”を抽出し、パラメタ情報として、“name11”、“name12”、“submit”を抽出する。
【００２７】
比較部１６は、抽出部１５によって抽出されたＵＲＬおよびパラメタ情報と、読出部１２によって次に読み出される画面情報に含まれるＵＲＬおよびパラメタ情報とをそれぞれ比較する。なお、抽出部１５による抽出対象となるＵＲＬが複数ある場合には、一のＵＲＬを抽出し、抽出した一のＵＲＬと画面情報に含まれるＵＲＬとを比較する処理を、順次繰り返すこととすればよい。
【００２８】
書換部１７は、比較部１６による上記比較によって、ＵＲＬ同士が不一致であり、かつ、各パラメタ情報に含まれるパラメタ名同士が全て一致する場合に、画面情報ファイルに記憶されている画面情報のうち、上記比較に用いられた画面情報に含まれるＵＲＬを、上記比較に用いられた抽出部１５によって抽出されたＵＲＬで書き換える。
【００２９】
出力部１８は、各種のメッセージを表示装置に出力して表示させる。各種のメッセージとしては、例えば、他の画面へのＵＲＬが抽出できなかった旨のメッセージ、画面構成の一部が変更になった可能性がある旨のメッセージ、新規画面が追加された可能性がある旨のメッセージ等が該当する。なお、各種のメッセージを表示装置に出力するのではなく、メッセージファイルに出力することとしてもよい。
【００３０】
次に、図４および図５を参照して、第１実施形態における画面シーケンス確認装置の動作について説明する。図４および図５は、画面シーケンスを確認する際の処理手順を示すフローチャートである。
【００３１】
最初に、読出部１２は、画面情報ファイルに記憶されている１件目の画面情報レコードを読み出す（ステップＳ１０１）。例えば、図２に示す画面情報ファイルでは、１件目の画面情報レコードとして画面名が“Ａ”である画面情報レコードが読み出される。
【００３２】
上記ステップＳ１０１で画面情報レコードが読み出せなかった場合（ステップＳ１０２；ＮＯ）には、処理を終了する。一方、画面情報レコードが読み出せた場合（ステップＳ１０２；ＹＥＳ）に、送信部１３は、上記ステップＳ１０１で読み出された画面情報レコードに格納されている画面情報のＵＲＬおよびパラメタ情報に基づいて、この画面情報のＵＲＬに対応する場所に格納されている画面のソースコードをリクエストするためのＨＴＴＰリクエストを、画面情報のｈｏｓｔに対応するＷｅｂサーバ装置に送信する（ステップＳ１０３）。
【００３３】
続いて、受信部１４は、ＨＴＴＰリクエストに応じてＷｅｂサーバ装置から送信されるＨＴＴＰレスポンスを受信する（ステップＳ１０４）。
【００３４】
続いて、抽出部１５は、ＨＴＴＰレスポンスに含まれる画面のソースコードから、他の画面へのＵＲＬおよびパラメタ情報を抽出する（ステップＳ１０５）。
【００３５】
上記ステップＳ１０５で他の画面へのＵＲＬおよびパラメタ情報が抽出できなかった場合（ステップＳ１０６；ＮＯ）に、出力部１８は、他の画面へのＵＲＬが抽出できなかった旨のメッセージと上記ステップＳ１０１で読み出された画面情報レコードのＵＲＬとを表示装置に出力し（ステップＳ１０７）、処理を終了する。
【００３６】
一方、上記ステップＳ１０５で他の画面へのＵＲＬおよびパラメタ情報が抽出できた場合（ステップＳ１０６；ＹＥＳ）に、読出部１２は、画面情報ファイルから次の画面情報レコードを読み出す（ステップＳ１０８）。例えば、図２に示す画面情報ファイルでは、次の画面情報レコードとして画面名が“Ｂ”である画面情報レコードが読み出される。
【００３７】
上記ステップＳ１０８で画面情報レコードが読み出せなかった場合（ステップＳ１０９；ＮＯ）には、処理を終了する。一方、画面情報レコードが読み出せた場合（ステップＳ１０９；ＹＥＳ）に、比較部１６は、上記ステップＳ１０５で抽出されたＵＲＬおよびパラメタ情報と、上記ステップＳ１０８で直近に読み出された画面情報レコードに含まれるＵＲＬおよびパラメタ情報とをそれぞれ比較する（ステップＳ１１０）。
【００３８】
上記ステップＳ１１０での比較の結果、全てのパラメタ名同士が一致し（ステップＳ１１１；ＹＥＳ）、かつ、ＵＲＬ同士が一致した場合（ステップＳ１１２；ＹＥＳ）には、上記ステップＳ１０８で直近に読み出された画面情報レコードには変更がないと判定できる。したがって、後述するステップＳ１１４に処理を移行する。
【００３９】
一方、全てのパラメタ名同士が一致し（ステップＳ１１１；ＹＥＳ）、かつ、ＵＲＬ同士が不一致である場合（ステップＳ１１２；ＮＯ）には、上記ステップＳ１０８で直近に読み出された画面情報レコードのＵＲＬに変更があったと判定できる。したがって、書換部１７は、画面情報ファイルに記憶されている画面情報レコードのうち、上記ステップＳ１０８で直近に読み出された画面情報レコードに含まれるＵＲＬを、上記ステップＳ１０５で抽出されたＵＲＬで書き換えて更新する（ステップＳ１１３）。
【００４０】
続いて、送信部１３は、上記ステップＳ１０８で直近に読み出された画面情報レコードに格納されている画面情報のＵＲＬおよびパラメタ情報（上記ステップＳ１１３でＵＲＬを更新した場合には、更新後のＵＲＬおよびパラメタ情報）に基づいて、このＵＲＬに対応する場所に格納されている画面のソースコードをリクエストするＨＴＴＰリクエストを、画面情報のｈｏｓｔに対応するＷｅｂサーバ装置に送信する（ステップＳ１１４）。そして、上述したステップＳ１０４に処理を移行する。
【００４１】
一方、上述したステップＳ１１１の判定で、不一致のパラメタ名が存在すると判定された場合（ステップＳ１１１；ＮＯ）に、上記ステップＳ１０４で受信したＨＴＴＰレスポンスの画面ソースコード中に、他の画面へのＵＲＬが別に存在するか否かを判定する（ステップＳ１１５）。この判定がＹＥＳである場合（ステップＳ１１５；ＹＥＳ）には、別に存在するＵＲＬを、上記ステップＳ１０５で抽出されたＵＲＬとして、上述したステップＳ１１０に移行する。
【００４２】
一方、上記ステップＳ１１５の判定で、他の画面へのＵＲＬが他には存在しないと判定された場合（ステップＳ１１５；ＮＯ）に、比較部１６は、上記ステップＳ１１０での比較に基づき、ＵＲＬ同士が一致するか否かを判定する（ステップＳ１１６）。この判定がＹＥＳである場合（ステップＳ１１６；ＹＥＳ）に、出力部１８は、画面構成の一部が変更された可能性がある旨のメッセージを表示装置に出力し（ステップＳ１１７）、処理を終了する。一方、ＵＲＬ同士が不一致である場合（ステップＳ１１６；ＮＯ）に、出力部１８は、新規画面が追加された可能性がある旨のメッセージを表示装置に出力し（ステップＳ１１８）、処理を終了する。
【００４３】
上述してきたように、第１実施形態における画面シーケンス確認装置１によれば、Ｗｅｂシステムを構成する画面のＵＲＬが変更になった場合であっても、Ｗｅｂサーバ装置のレスポンスに基づいて最新の画面情報を取得し、画面情報ファイルに記憶されている情報と、Ｗｅｂサーバ装置から取得した最新の画面情報とを比較して、ＵＲＬ同士が不一致、かつパラメタ名同士が全て一致する場合に、ＵＲＬが変更になったと判定し、画面情報ファイルに記憶されている画面情報のＵＲＬを、Ｗｅｂサーバ装置から取得した最新のＵＲＬに変更することができる。また、Ｗｅｂサーバ装置から最新の画面情報を取得する際に、画面情報ファイルに記憶されているパラメタ情報を用いてＨＴＴＰリクエストを生成することができる。これらにより、脆弱性検査の事前作業を、手作業で再度行う必要がなくなるため、作業効率を向上させることができる。つまり、脆弱性の検査を確実かつ効率的に行うことができる。
【００４４】
また、画面情報ファイルに記憶されている情報と、Ｗｅｂサーバ装置から取得した最新の画面情報とを比較して、ＵＲＬ同士が一致、かつパラメタ名同士の全てが不一致または一部のみが一致する場合に、画面構成の一部が変更された可能性があることを通知することや、ＵＲＬ同士が不一致、かつパラメタ名同士の全てが不一致または一部のみが一致する場合に、新規画面が追加された可能性があることを通知することができるため、脆弱性の検査漏れを確実に防止することが可能となる。
【００４５】
[第２実施形態]
本発明の第２実施形態について説明する。第２実施形態における画面シーケンス確認装置が、上述した第１実施形態における画面シーケンス確認装置と相違する点は、画面情報ファイルのＵＲＬを書き換える前に、ＵＲＬが変更されたことをさらに確認する機能を各構成要素に追加した点である。第２実施形態における画面シーケンス確認装置の機能構成は、図１に示す第１実施形態における画面シーケンス確認装置の機能構成と同様であるため、各構成要素には同一の符合を付し、その説明を省略する。以下においては、主に第１実施形態との相違点について説明する。
【００４６】
図６および図７を参照して、第２実施形態における画面シーケンス確認装置の動作について説明する。図５は、画面シーケンスを確認する際の処理手順を示すフローチャートである。ここで、図６および図７に示すステップＳ２０１〜ステップＳ２１１およびステップＳ２２１〜ステップＳ２２４までの各処理は、上述した第１実施形態において説明した図４および図５に示すステップＳ１０１〜ステップＳ１１１およびステップＳ１１５〜ステップＳ１１８までの各処理と同様であるため、これら各処理の説明については省略する。以下においては、上述した第１実施形態とは異なるステップＳ２１２〜ステップＳ２２０までの各処理について説明する。
【００４７】
図７に示すステップＳ２１０での比較の結果、全てのパラメタ名同士が一致し（ステップＳ２１１；ＹＥＳ）、かつ、ＵＲＬ同士が一致した場合（ステップＳ２１２；ＹＥＳ）に、ステップＳ２０８で直近に読み出された画面情報レコードには変更がないと判定できる。したがって、送信部１３は、ステップＳ２０８で直近に読み出された画面情報レコードに格納されている画面情報に基づいて、この画面情報のＵＲＬに対応する場所に格納されている画面のソースコードをリクエストするためのＨＴＴＰリクエストを、画面情報のｈｏｓｔに対応するＷｅｂサーバ装置に送信する（ステップＳ２２０）。そして、ステップＳ２０４に処理を移行する。
【００４８】
一方、図７に示すステップＳ２１０での比較の結果、全てのパラメタ名同士が一致し（ステップＳ２１１；ＹＥＳ）、かつ、ＵＲＬ同士が不一致である場合（ステップＳ２１２；ＮＯ）には、ステップＳ２０８で直近に読み出された画面情報レコードのＵＲＬに変更があった可能性が高いと判定できる。したがって、送信部１３は、ステップＳ２０５で抽出されたＵＲＬおよびステップＳ２０８で直近に読み出された画面情報レコードに格納されているパラメタ情報に基づいて、この画面情報のＵＲＬに対応する場所に格納されている画面のソースコードをリクエストするためのＨＴＴＰリクエストを、画面情報のｈｏｓｔに対応するＷｅｂサーバ装置に送信する（ステップＳ２１３）。
【００４９】
続いて、受信部１４は、上記ステップＳ２１３で送信したＨＴＴＰリクエストに応じてＷｅｂサーバ装置から送信されるＨＴＴＰレスポンスを受信する（ステップＳ２１４）。
【００５０】
続いて、抽出部１５は、上記ステップＳ２１４で受信したＨＴＴＰレスポンスに含まれる画面のソースコードから、他の画面へのＵＲＬを抽出する（ステップＳ２１５）。
【００５１】
続いて、読出部１２は、画面情報ファイルから次の画面情報レコードを読み出す（ステップＳ２１６）。例えば、図２に示す画面情報ファイルでは、次の画面情報レコードとして画面名が“Ｃ”である画面情報レコードが読み出される。
【００５２】
続いて、比較部１６は、上記ステップＳ２１５で抽出されたＵＲＬに、上記ステップＳ２１６で直近に読み出されたＵＲＬが含まれているか否かを判定する（ステップＳ２１７）。この判定がＮＯである場合（ステップＳ２１７；ＮＯ）に、出力部１８は、ステップＳ２０８で読み出された画面情報レコードのＵＲＬを含むメッセージを表示装置に出力し（ステップＳ２１８）、処理を終了する。
【００５３】
一方、上記ステップＳ２１７の判定で、上記ステップＳ２１５で抽出されたＵＲＬに上記ステップＳ２１６で直近に読み出されたＵＲＬが含まれていると判定された場合（ステップＳ２１７；ＹＥＳ）には、ステップＳ２０８で読み出された画面情報レコードのＵＲＬに変更があったと判定できる。したがって、書換部１７は、画面情報ファイルに記憶されている画面情報レコードのうち、ステップＳ２０８で読み出された画面情報レコードに含まれるＵＲＬを、ステップＳ２０５で抽出されたＵＲＬで書き換えて更新する（ステップＳ２１９）。そして、上述したステップＳ２０５に処理を移行する。
【００５４】
上述してきたように、第２実施形態における画面シーケンス確認装置１によれば、パラメタ名が全て一致してＵＲＬが異なっているため、ＵＲＬが変更された可能性が高いと判定できる場合であっても、さらに、変更された可能性が高いＵＲＬの画面に含まれる他の画面へのＵＲＬが、次の画面情報レコードのＵＲＬに記憶されているか否かを確認し、記憶されていることが確認できたときにＵＲＬを書き換えることができる。これにより、ＵＲＬが変更された場合に、変更後のシーケンス状態を確実に確認してから画面情報レコードを変更することができる。
【００５５】
[第３実施形態]
本発明の第３実施形態について説明する。上述した各実施形態では、画面のソースコードに他の画面へのＵＲＬが直接記述されている場合について説明しているが、画面のソースコードに他の画面へのＵＲＬが直接記述されていない場合もある。したがって、第３実施形態では、他の画面へのＵＲＬが直接記述されていない場合の実施形態について説明する。
【００５６】
第３実施形態では、例えば、画面上に設けられた複数のラジオボタンの選択箇所によってリンク先が変わる場合の実施例について説明する。第３実施形態では、例えば、各ラジオボタンに対応してそれぞれｖａｌｕｅ値（所定パラメタ値）が設定され、各ｖａｌｕｅ値に対応してそれぞれＵＲＬが設定されており、一のラジオボタンが選択された場合に、選択されたラジオボタンのｖａｌｕｅ値に対応するＵＲＬを取得する所定関数を含むイベントハンドラ情報が画面ソースコードのＦｏｒｍタグに記述されていることを前提にして説明する。
【００５７】
図８を参照して、第３実施形態における画面シーケンス確認装置の機能構成について説明する。第３実施形態における画面シーケンス確認装置２は、機能的には、例えば、記憶部２１と、読出部２２と、送信部２３と、受信部２４と、抽出部２５と、比較部２６と、書換部２７と、出力部２８と、関数解析部２９とを有する。記憶部２１、読出部２２、送信部２３および受信部２４は、第１実施形態における記憶部１１、読出部１２、送信部１３および受信部１４と同様であるため、その説明を省略するとともに、以下においては、主に第１実施形態との相違点について説明する。
【００５８】
図９を参照して、第３実施形態における画面情報ファイルに記憶される画面情報について説明する。画面情報レコードのデータ項目は、図２に示す第１実施形態における画面情報レコードのデータ項目と同様である。図９に示す画面情報レコードのパラメタ名には、選択されたラジオボタンのｖａｌｕｅ値を格納するためのパラメタの名称である“Ｖａｌｕｅ”が記憶されており、この“Ｖａｌｕｅ”パラメタに格納されるパラメタ値として“ＡＡＡ”または“ＣＣＣ”が記憶されている。Ｖａｌｕｅ値は、同一画面上のラジオボタンごとに設定される。したがって、Ｖａｌｕｅ値がわかれば、画面上で選択されたラジオボタンを識別することが可能となる。
【００５９】
図９に示す先頭の画面情報レコードは、Ｖａｌｕｅ値“ＡＡＡ”に対応するラジオボタンが選択され、送信ボタンがクリックされた結果、画面名“Ｄ”のソースコードのＦｏｒｍタグに記述されたイベントハンドラ情報に含まれる所定関数が実行され、選択されたラジオボタンのｖａｌｕｅ値“ＡＡＡ”に対応して設定されているＵＲＬの画面に移行したことを示している。
【００６０】
抽出部２５は、ＨＴＴＰレスポンスに含まれる画面ソースコードのｆｏｒｍタグから、イベントハンドラ情報を抽出する。イベントハンドラ情報としては、例えば、“ＯｎＳｕｂｍｉｔ”、“ＯｎＣｌｉｃｋ”、“ＯｎＳｅｌｅｃｔ”、“ＯｎＦｏｃｕｓ”、“ＯｎＣｈａｎｇｅ”等が該当する。なお、イベントハンドラ情報が抽出できなかった場合に、出力部２８は、イベントハンドラ情報が抽出できなかった旨のメッセージを表示装置に出力する。
【００６１】
関数解析部２９は、読出部２２によって直近に読み出された画面情報レコードのパラメタ名に“ｖａｌｕｅ”が登録されているか否かを判定する。関数解析部２９は、“ｖａｌｕｅ”パラメタが登録されている場合に、その“ｖａｌｕｅ”パラメタに対応するパラメタ値に一致するｖａｌｕｅ値が、ＨＴＴＰレスポンスの画面ソースコードのｆｏｒｍタグに記述されているか否かを判定する。
【００６２】
関数解析部２９は、“ｖａｌｕｅ”パラメタに対応するパラメタ値に一致するｖａｌｕｅ値が画面ソースコードのｆｏｒｍタグに記述されている場合に、抽出部２５によって抽出されたイベントハンドラ情報に記述されている所定関数を解析し、“ｖａｌｕｅ”パラメタのパラメタ値に対応して設定されているＵＲＬを取得する。
【００６３】
イベントハンドラ情報に記述されている関数を解析する手順の具体例を説明する。例えば、イベントハンドラ情報に“ＯｎＳｕｂｍｉｔ＝ｅｘａｍｐｌｅｆｕｎｃ（）”と記述されている場合に、関数解析部２９は、“ｅｘａｍｐｌｅｆｕｎｃ（）”という関数を解析することになる。この場合に、関数解析部２９は、“ｖａｌｕｅ”パラメタのパラメタ値を用いて“ｅｘａｍｐｌｅｆｕｎｃ（）”関数を実行させた場合に取得できるＵＲＬを、上記“ｖａｌｕｅ”パラメタのパラメタ値に対応して設定されているＵＲＬとして取得する。
【００６４】
比較部２６は、読出部２２によって次に読み出される画面情報レコードに含まれるＵＲＬが、関数解析部２９によって取得されたＵＲＬと一致するか否かを判定する。
【００６５】
書換部２７は、比較部１６による上記比較によって、ＵＲＬ同士が不一致である場合に、画面情報ファイルに記憶されている画面情報レコードのうち、上記比較に用いられた画面情報に含まれるＵＲＬを、上記比較に用いられた関数解析部２９によって取得されたＵＲＬで書き換える。
【００６６】
図１０および図１１を参照して、第３実施形態における画面シーケンス確認装置の動作について説明する。図１０および図１１は、画面シーケンスを確認する際の処理手順を示すフローチャートである。
【００６７】
最初に、読出部２２は、画面情報ファイルに記憶されている１件目の画面情報レコードを読み出す（ステップＳ３０１）。
【００６８】
上記ステップＳ３０１で画面情報レコードが読み出せなかった場合（ステップＳ３０２；ＮＯ）には、処理を終了する。一方、画面情報レコードが読み出せた場合（ステップＳ３０２；ＹＥＳ）に、送信部２３は、上記ステップＳ３０１で読み出された画面情報レコードに格納されている画面情報に基づいて、この画面情報のＵＲＬに対応する場所に格納されている画面のソースコードをリクエストするためのＨＴＴＰリクエストを、画面情報のｈｏｓｔに対応するＷｅｂサーバ装置に送信する（ステップＳ３０３）。
【００６９】
続いて、受信部２４は、ＨＴＴＰリクエストに応じてＷｅｂサーバ装置から送信されるＨＴＴＰレスポンスを受信する（ステップＳ３０４）。
【００７０】
続いて、抽出部２５は、ＨＴＴＰレスポンスに含まれる画面のソースコードから、イベントハンドラ情報を抽出する（ステップＳ３０５）。
【００７１】
上記ステップＳ３０５でイベントハンドラ情報が抽出できなかった場合（ステップＳ３０６；ＮＯ）に、出力部２８は、直近に読み出された画面情報レコードのＵＲＬとイベントハンドラ情報が抽出できなかった旨のメッセージとを表示装置に出力し（ステップＳ３０７）、処理を終了する。
【００７２】
一方、上記ステップＳ３０５でイベントハンドラ情報が抽出できた場合（ステップＳ３０６；ＹＥＳ）に、関数解析部２９は、直近に読み出された画面情報レコードのパラメタ名に“ｖａｌｕｅ”が登録されているか否かを判定する（ステップＳ３０８）。この判定がＮＯである場合（ステップＳ３０８；ＮＯ）には、処理を終了する。
【００７３】
一方、上記ステップＳ３０８の判定で画面情報レコードのパラメタ名に“ｖａｌｕｅ”が登録されていると判定された場合（ステップＳ３０８；ＹＥＳ）に、関数解析部２９は、直近に読み出された画面情報レコードの“ｖａｌｕｅ”パラメタに対応するパラメタ値と一致するｖａｌｕｅ値が、上記ステップＳ３０４で受信したＨＴＴＰレスポンスの画面ソースコードのｆｏｒｍタグに記述されているか否かを判定する（ステップＳ３０９）。この判定がＮＯである場合（ステップＳ３０９；ＮＯ）には、処理を終了する。
【００７４】
一方、上記ステップＳ３０９の判定で画面情報レコードの“ｖａｌｕｅ”パラメタに対応するパラメタ値と一致するｖａｌｕｅ値が画面ソースコードのｆｏｒｍタグに記述されていると判定された場合（ステップＳ３０９；ＹＥＳ）に、関数解析部２９は、上記ステップＳ３０５で抽出されたイベントハンドラ情報に記述されている所定関数を解析し、上記“ｖａｌｕｅ”パラメタのパラメタ値に対応して設定されているＵＲＬを取得する（ステップＳ３１０）。
【００７５】
続いて、読出部２２は、画面情報ファイルから次の画面情報レコードを読み出す（ステップＳ３１１）。画面情報レコードが読み出せなかった場合（ステップＳ３１２；ＮＯ）には、処理を終了する。
【００７６】
一方、画面情報レコードが読み出せた場合（ステップＳ３１２；ＹＥＳ）に、比較部２６は、上記ステップＳ３１１で直近に読み出された画面情報レコードに含まれるＵＲＬが、上記ステップＳ３１０で取得されたＵＲＬと一致するか否かを判定する（ステップＳ３１３）。この判定がＹＥＳである場合（ステップＳ３１３；ＹＥＳ）には、上記ステップＳ３１１で読み出された画面情報レコードには変更がないと判定できる。したがって、後述するステップＳ３１５に処理を移行する。
【００７７】
一方、上記ステップＳ３１３の判定において上記ステップＳ３１１で直近に読み出された画面情報レコードに含まれるＵＲＬが、上記ステップＳ３１０で取得されたＵＲＬと一致しないと判定された場合（ステップＳ３１３；ＮＯ）には、上記ステップＳ３１１で直近に読み出された画面情報レコードのＵＲＬに変更があったと判定できる。したがって、書換部１７は、画面情報ファイルに記憶されている画面情報レコードのうち、上記ステップＳ３１１で直近に読み出された画面情報レコードのＵＲＬを、上記ステップＳ３１０で取得されたＵＲＬで書き換えて更新する（ステップＳ３１４）。
【００７８】
続いて、送信部１３は、上記ステップＳ３１１で直近に読み出された画面情報レコードに格納されている画面情報（上記ステップＳ３１４でＵＲＬを更新した場合には、更新後の画面情報）に基づいて、この画面情報のＵＲＬに格納されている画面のソースコードをリクエストするＨＴＴＰリクエストを、画面情報のｈｏｓｔに対応するＷｅｂサーバ装置に送信する（ステップＳ３１５）。そして、上述したステップＳ３０４に処理を移行する。
【００７９】
上述してきたように、第３実施形態における画面シーケンス確認装置２によれば、例えば、選択したラジオボタンの位置によってリンク先が変わる等のように、画面のソースコードに他の画面へのＵＲＬが直接記述されていない画面からなるＷｅｂシステムであっても、他の画面へのＵＲＬを特定することができる。このように他の画面へのＵＲＬを特定することができれば、上述した各実施形態と同様に、画面情報ファイルに記憶されている画面情報のＵＲＬを、Ｗｅｂサーバ装置から取得された最新のＵＲＬに変更することができる。これにより、脆弱性検査の事前作業を、手作業で再度行う必要がなくなるため、作業効率を向上させることができる。つまり、脆弱性の検査を確実かつ効率的に行うことができる。
【００８０】
なお、上述した各実施形態は、単なる例示に過ぎず、各実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【００８１】
例えば、上述した各実施形態では、画面シーケンス確認装置が全ての構成要素を備えているが、これに限定されず、各構成要素を複数の異なる装置に分散して備えることとしてもよい。
【符号の説明】
【００８２】
１、２…画面シーケンス確認装置、１１、２１…記憶部、１２、２２…読出部、１３、２３…送信部、１４、２４…受信部、１５、２５…抽出部、１６、２６…比較部、１７、２７…書換部、１８、２８…出力部、２９…関数解析部。
【図１】
0005435351.tif 000002
【図２】
0005435351.tif 000003
【図３】
0005435351.tif 000004
【図４】
0005435351.tif 000005
【図５】
0005435351.tif 000006
【図６】
0005435351.tif 000007
【図７】
0005435351.tif 000008
【図８】
0005435351.tif 000009
【図９】
0005435351.tif 000010
【図１０】
0005435351.tif 000011
【図１１】
0005435351.tif 000012