JP5435351B2 - 画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラム - Google Patents

画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラム Download PDF

Info

Publication number
JP5435351B2
JP5435351B2 JP2010000119A JP2010000119A JP5435351B2 JP 5435351 B2 JP5435351 B2 JP 5435351B2 JP 2010000119 A JP2010000119 A JP 2010000119A JP 2010000119 A JP2010000119 A JP 2010000119A JP 5435351 B2 JP5435351 B2 JP 5435351B2
Authority
JP
Japan
Prior art keywords
information
screen
storage location
unit
location information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010000119A
Other languages
English (en)
Other versions
JP2011138456A (ja
Inventor
弘人 川白
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010000119A priority Critical patent/JP5435351B2/ja
Publication of JP2011138456A publication Critical patent/JP2011138456A/ja
Application granted granted Critical
Publication of JP5435351B2 publication Critical patent/JP5435351B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラムに関する。
Webアプリケーションに潜む脆弱性を放置すると、不正アクセスやコンピュータウイルス等の攻撃に悪用され、システムやネットワークのダウン、個人情報の漏洩など大きな被害が発生する危険性がある。したがって、脆弱性を早期に発見して適切に対処する必要がある。一般に、Webシステムを開発する際には、脆弱性を検査するソフトウェアを実行させてWebアプリケーションの脆弱性を検査することが行われている(例えば、下記特許文献1参照)。
脆弱性を検査するソフトウェアの中には、予め、検査対象となるWebアプリケーションの各画面を表示遷移順に読み込み、各画面に含まれるURLやパラメタを画面ごとに順次記憶させる事前作業を行ったうえで、この事前作業で記憶させた画面の表示遷移順に脆弱性を検査していくものがある。画面の中には、画面内に設けられた入力項目に入力されなければ次画面に遷移できないものがあり、このような画面を有するシステムでは、上記事前作業を1画面ずつ手作業で行うことになる。
特開2007−241906号公報
ところで、脆弱性を検査した後などに画面が修正された場合には、修正された画面の脆弱性を再度検査する必要があり、これに伴って上述した事前作業も再度行う必要がある。特に事前作業を手作業で行う場合には、入力項目や修正画面数が多いと事前作業に要する時間が多くなり、作業効率が低下してしまう。
また、画面を修正する場合には、修正対象画面のURLを変更する場合がある。画面のURLを変更した場合には、脆弱性を検査する際に、事前作業を再度行う必要がある。ところが、例えば画面の修正作業を行う担当者と脆弱性の検査作業を行う担当者とが異なる場合に、連絡ミス等によって変更内容が正確に伝達されないと、事前作業を再度行うことなく脆弱性を検査してしまうことも考えられる。この場合には、脆弱性の検査漏れが発生してしまう。
一方、連絡ミス等による検査漏れを防止するために、脆弱性検査のたびに全画面を対象にして事前作業を行うことも考えられるが、この場合には、事前作業に要する時間が多くなり、作業効率が低下してしまう。
本発明は、上述した課題を解決するためになされたものであり、脆弱性の検査を確実かつ効率的に行うことができる画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラムを提供することを目的とする。
本発明の画面シーケンス確認装置は、画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ名を含むパラメタ情報とを有する画面情報を記憶する記憶部と、前記記憶部に記憶されている前記画面情報を、前記画面の表示順に読み出す読出部と、前記読出部によって読み出された第1の前記画面情報に含まれる第1の前記格納場所情報および第1の前記パラメタ情報に基づいて、当該第1の前記格納場所情報に対応するサーバ装置に、当該第1の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信部と、前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信部と、前記レスポンスに含まれる前記情報資源から第2の前記格納場所情報および第2の前記パラメタ情報を抽出する抽出部と、前記抽出部によって抽出された前記第2の前記格納場所情報および前記第2の前記パラメタ情報と、前記読出部によって前記第1の前記画面情報の次に読み出される第2の前記画面情報に含まれる第3の前記格納場所情報および第3の前記パラメタ情報とをそれぞれ比較する比較部と、前記比較部による前記比較によって、前記各格納場所情報同士が不一致であり、かつ、前記各パラメタ情報に含まれる前記各パラメタ名同士が全て一致する場合に、前記記憶部に記憶されている前記第2の前記画面情報に含まれる前記第3の前記格納場所情報を、前記抽出部によって抽出された前記第2の前記格納場所情報で書き換える書換部と、を備える。
本発明の画面シーケンス確認装置は、画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ情報とを有する画面情報を記憶する記憶部と、前記記憶部に記憶されている前記画面情報を、前記画面の表示順に読み出す読出部と、前記読出部によって読み出された第1の前記画面情報に基づいて、当該第1の前記画面情報に含まれる第1の前記格納場所情報に対応するサーバ装置に、当該第1の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信部と、前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信部と、前記レスポンスに含まれる前記情報資源から所定関数を含むイベント情報を抽出する抽出部と、前記読出部によって読み出された第1の前記画面情報の前記パラメタ情報に含まれる所定パラメタ値が、前記レスポンスの前記情報資源に含まれている場合に、前記抽出部によって抽出された前記イベント情報に含まれる前記所定関数を解析して前記所定パラメタ値に対応する第2の前記格納場所情報を取得する関数解析部と、前記関数解析部によって取得された前記第2の前記格納場所情報と、前記読出部によって前記第1の前記画面情報の次に読み出される第2の前記画面情報に含まれる第3の前記格納場所情報とを比較する比較部と、前記比較部による前記比較によって、前記各格納場所情報同士が不一致である場合に、前記記憶部に記憶されている前記第2の前記画面情報に含まれる前記第3の前記格納場所情報を、前記関数解析部によって取得された前記第2の前記格納場所情報で書き換える書換部と、を備える。
本発明の画面シーケンス確認方法は、画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ名を含むパラメタ情報とを有する画面情報を記憶させる記憶ステップと、前記記憶ステップにおいて記憶された前記画面情報を、前記画面の表示順に読み出す読出ステップと、前記読出ステップにおいて読み出された第1の前記画面情報に含まれる第1の前記格納場所情報および第1の前記パラメタ情報に基づいて、当該第1の前記格納場所情報に対応するサーバ装置に、当該第1の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信ステップと、前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信ステップと、前記レスポンスに含まれる前記情報資源から第2の前記格納場所情報および第2の前記パラメタ情報を抽出する抽出ステップと、前記抽出ステップにおいて抽出された前記第2の前記格納場所情報および前記第2の前記パラメタ情報と、前記読出ステップにおいて前記第1の前記画面情報の次に読み出される第2の前記画面情報に含まれる第3の前記格納場所情報および第3の前記パラメタ情報とをそれぞれ比較する比較ステップと、前記比較ステップにおける前記比較によって、前記各格納場所情報同士が不一致であり、かつ、前記各パラメタ情報に含まれる前記各パラメタ名同士が全て一致する場合に、前記記憶ステップにおいて記憶された前記第2の前記画面情報に含まれる前記第3の前記格納場所情報を、前記抽出部によって抽出された前記第2の前記格納場所情報で書き換える書換ステップと、を含む。
本発明の画面シーケンス確認プログラムは、上記画面シーケンス確認方法に含まれる各ステップをコンピュータに実行させる。
本発明によれば、脆弱性の検査を確実かつ効率的に行うことができる。
第1実施形態における画面シーケンス確認装置の機能構成を例示するブロック図である。 第1実施形態における画面情報ファイルのデータ構成を例示する図である。 POSTメソッドを含む画面ソースコードを例示する図である。 第1実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート(その1)である。 第1実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート(その2)である。 第2実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート(その1)である。 第2実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート(その2)である。 第3実施形態における画面シーケンス確認装置の機能構成を例示するブロック図である。 第3実施形態における画面情報ファイルのデータ構成を例示する図である。 第3実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート(その1)である。 第3実施形態における画面シーケンスを確認する際の処理手順を示すフローチャート(その2)である。
以下、添付図面を参照して、本発明に係る画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラムの好適な実施形態について説明する。各実施形態における画面シーケンス確認装置は、脆弱性を検査するソフトウェアを実行させる前に行う脆弱性検査の事前作業で生成される画面情報ファイルを、最新のWebシステムの状態に併せて管理するための装置である。事前作業では、検査対象となるWebアプリケーションの各画面を表示遷移順に読み込み、各画面に含まれる他の画面へのURLやパラメタに関する画面情報を画面ごとに順次記憶していくことで画面情報ファイルを生成する。脆弱性を検査するソフトウェアは、画面情報ファイルに記憶された画面の表示遷移順に脆弱性を検査する。
[第1実施形態]
図1を参照して、第1実施形態における画面シーケンス確認装置の機能構成について説明する。画面シーケンス確認装置1は、機能的には、例えば、記憶部11と、読出部12と、送信部13と、受信部14と、抽出部15と、比較部16と、書換部17と、出力部18と、を有する。
ここで、画面シーケンス確認装置1は、物理的には、例えば、CPU(Central Processing Unit)と、記憶装置と、入力装置と、表示装置と、通信装置とを含んで構成される。これらの要素は、互いにバスを介して接続されている。記憶装置には、例えば、CPUで処理されるプログラムやデータを記憶するROM(Read Only Memory)やHDD(Hard Disk Drive)、主として制御処理のための各種作業領域として使用されるRAM(Random Access Memory)等が含まれる。本実施形態における記憶装置には、例えば、図2に示す画面情報ファイルが格納される。CPUは、ROMに記憶されたプログラムを実行し、入力装置から入力された各種の指令等に従ってRAMに展開された各種のデータを処理する。CPUは、その処理結果を表示装置に表示させる。これにより、以下に詳述する画面シーケンス確認装置1における各部の機能を実現することができる。
記憶部11は、脆弱性検査の事前作業において生成される画面情報を記憶する画面情報ファイルを有する。図2を参照して、画面情報ファイルのデータ構成について説明する。図2は、画面情報ファイルのデータ構成図である。画面情報ファイルは、画面ごとに一のレコード(以下、「画面情報レコード」という。)を格納する。画面情報レコードは、データ項目として、例えば、画面名項目、scheme項目、host項目、port項目、path項目、method項目、パラメタ名項目およびパラメタ値項目を有する。scheme項目、host項目およびpath項目により、画面を表示するソースコード(情報資源)の格納場所を特定するURL(Uniform Resource Locator;格納場所情報)が表される。パラメタ名項目およびパラメタ値項目により、パラメタ情報が構成される。
図2に示す画面名項目には、画面情報レコードを特定するための画面名称が格納される。scheme項目には、例えば、httpやftp等のスキームが格納される。host項目には、コンテンツを提供するWebサーバ装置を特定する情報が格納される。port項目には、Webサーバ装置のポート番号が格納される。path項目には、Webサーバ装置内におけるコンテンツを格納する場所を特定する情報が格納される。method項目には、Webサーバ装置への命令内容を示すメソッドを特定する情報が格納される。パラメタ名項目には、Webサーバ装置に送信するデータとして画面に設定されたパラメタを特定するパラメタ名称が格納される。パラメタ名称としては、例えば、氏名、住所、電話番号、家族構成、銀行口座等が該当する。パラメタ値項目には、パラメタ名に対応するパラメタ値が格納される。
画面情報ファイルは、Webサーバ装置によって提供されるWebシステムにおける画面の表示遷移順に画面情報レコードを記憶する。例えば、図2に示す画面情報ファイルでは、Webシステムを操作した場合に、画面名が“A”、“B”、“C”の順に画面が遷移して表示されることを示す。
なお、画面情報ファイルの記載方法は、図2に示す表形式には限定されず、例えば、xml形式等の他の形式で記載してもよい。
読出部12は、画面情報ファイルに記憶されている画面情報レコードを、画面の表示順に読み出す。本実施形態では、画面情報ファイルに記憶されている画面情報レコードが予め画面の表示順に記憶されているため、先頭レコードから順に読み込むこととすればよい。一方、画面情報レコードが表示順に記憶されていない場合には、例えば、表示順を特定するデータ項目を画面情報レコードに設けておき、表示順項目の昇順に画面情報レコードを読み出すこととしてもよい。
送信部13は、画面情報レコードの画面情報に基づいて、この画面情報のURLに対応する場所に格納されている画面のソースコードをリクエストするためのHTTP(HyperText Transfer Protocol)リクエストを、画面情報のhostに対応するWebサーバ装置に送信する。
受信部14は、HTTPリクエストに応じてWebサーバ装置から送信されるHTTPレスポンスを受信する。
抽出部15は、HTTPレスポンスに含まれる画面のソースコードから、他の画面へのURLおよびパラメタ情報を抽出する。他の画面へのURLおよびパラメタ情報としては、例えば、httpのGETメソッドやPOSTメソッドに記述されるリンク先およびパラメタ名が該当する。図3を参照して具体的に説明する。図3は、POSTメソッドを含む画面のソースコードである。抽出部15は、図3に示すソースコードから、他の画面へのURLとして、“http://www.test.example.com/testpage1.cgi”を抽出し、パラメタ情報として、“name11”、“name12”、“submit”を抽出する。
比較部16は、抽出部15によって抽出されたURLおよびパラメタ情報と、読出部12によって次に読み出される画面情報に含まれるURLおよびパラメタ情報とをそれぞれ比較する。なお、抽出部15による抽出対象となるURLが複数ある場合には、一のURLを抽出し、抽出した一のURLと画面情報に含まれるURLとを比較する処理を、順次繰り返すこととすればよい。
書換部17は、比較部16による上記比較によって、URL同士が不一致であり、かつ、各パラメタ情報に含まれるパラメタ名同士が全て一致する場合に、画面情報ファイルに記憶されている画面情報のうち、上記比較に用いられた画面情報に含まれるURLを、上記比較に用いられた抽出部15によって抽出されたURLで書き換える。
出力部18は、各種のメッセージを表示装置に出力して表示させる。各種のメッセージとしては、例えば、他の画面へのURLが抽出できなかった旨のメッセージ、画面構成の一部が変更になった可能性がある旨のメッセージ、新規画面が追加された可能性がある旨のメッセージ等が該当する。なお、各種のメッセージを表示装置に出力するのではなく、メッセージファイルに出力することとしてもよい。
次に、図4および図5を参照して、第1実施形態における画面シーケンス確認装置の動作について説明する。図4および図5は、画面シーケンスを確認する際の処理手順を示すフローチャートである。
最初に、読出部12は、画面情報ファイルに記憶されている1件目の画面情報レコードを読み出す(ステップS101)。例えば、図2に示す画面情報ファイルでは、1件目の画面情報レコードとして画面名が“A”である画面情報レコードが読み出される。
上記ステップS101で画面情報レコードが読み出せなかった場合(ステップS102;NO)には、処理を終了する。一方、画面情報レコードが読み出せた場合(ステップS102;YES)に、送信部13は、上記ステップS101で読み出された画面情報レコードに格納されている画面情報のURLおよびパラメタ情報に基づいて、この画面情報のURLに対応する場所に格納されている画面のソースコードをリクエストするためのHTTPリクエストを、画面情報のhostに対応するWebサーバ装置に送信する(ステップS103)。
続いて、受信部14は、HTTPリクエストに応じてWebサーバ装置から送信されるHTTPレスポンスを受信する(ステップS104)。
続いて、抽出部15は、HTTPレスポンスに含まれる画面のソースコードから、他の画面へのURLおよびパラメタ情報を抽出する(ステップS105)。
上記ステップS105で他の画面へのURLおよびパラメタ情報が抽出できなかった場合(ステップS106;NO)に、出力部18は、他の画面へのURLが抽出できなかった旨のメッセージと上記ステップS101で読み出された画面情報レコードのURLとを表示装置に出力し(ステップS107)、処理を終了する。
一方、上記ステップS105で他の画面へのURLおよびパラメタ情報が抽出できた場合(ステップS106;YES)に、読出部12は、画面情報ファイルから次の画面情報レコードを読み出す(ステップS108)。例えば、図2に示す画面情報ファイルでは、次の画面情報レコードとして画面名が“B”である画面情報レコードが読み出される。
上記ステップS108で画面情報レコードが読み出せなかった場合(ステップS109;NO)には、処理を終了する。一方、画面情報レコードが読み出せた場合(ステップS109;YES)に、比較部16は、上記ステップS105で抽出されたURLおよびパラメタ情報と、上記ステップS108で直近に読み出された画面情報レコードに含まれるURLおよびパラメタ情報とをそれぞれ比較する(ステップS110)。
上記ステップS110での比較の結果、全てのパラメタ名同士が一致し(ステップS111;YES)、かつ、URL同士が一致した場合(ステップS112;YES)には、上記ステップS108で直近に読み出された画面情報レコードには変更がないと判定できる。したがって、後述するステップS114に処理を移行する。
一方、全てのパラメタ名同士が一致し(ステップS111;YES)、かつ、URL同士が不一致である場合(ステップS112;NO)には、上記ステップS108で直近に読み出された画面情報レコードのURLに変更があったと判定できる。したがって、書換部17は、画面情報ファイルに記憶されている画面情報レコードのうち、上記ステップS108で直近に読み出された画面情報レコードに含まれるURLを、上記ステップS105で抽出されたURLで書き換えて更新する(ステップS113)。
続いて、送信部13は、上記ステップS108で直近に読み出された画面情報レコードに格納されている画面情報のURLおよびパラメタ情報(上記ステップS113でURLを更新した場合には、更新後のURLおよびパラメタ情報)に基づいて、このURLに対応する場所に格納されている画面のソースコードをリクエストするHTTPリクエストを、画面情報のhostに対応するWebサーバ装置に送信する(ステップS114)。そして、上述したステップS104に処理を移行する。
一方、上述したステップS111の判定で、不一致のパラメタ名が存在すると判定された場合(ステップS111;NO)に、上記ステップS104で受信したHTTPレスポンスの画面ソースコード中に、他の画面へのURLが別に存在するか否かを判定する(ステップS115)。この判定がYESである場合(ステップS115;YES)には、別に存在するURLを、上記ステップS105で抽出されたURLとして、上述したステップS110に移行する。
一方、上記ステップS115の判定で、他の画面へのURLが他には存在しないと判定された場合(ステップS115;NO)に、比較部16は、上記ステップS110での比較に基づき、URL同士が一致するか否かを判定する(ステップS116)。この判定がYESである場合(ステップS116;YES)に、出力部18は、画面構成の一部が変更された可能性がある旨のメッセージを表示装置に出力し(ステップS117)、処理を終了する。一方、URL同士が不一致である場合(ステップS116;NO)に、出力部18は、新規画面が追加された可能性がある旨のメッセージを表示装置に出力し(ステップS118)、処理を終了する。
上述してきたように、第1実施形態における画面シーケンス確認装置1によれば、Webシステムを構成する画面のURLが変更になった場合であっても、Webサーバ装置のレスポンスに基づいて最新の画面情報を取得し、画面情報ファイルに記憶されている情報と、Webサーバ装置から取得した最新の画面情報とを比較して、URL同士が不一致、かつパラメタ名同士が全て一致する場合に、URLが変更になったと判定し、画面情報ファイルに記憶されている画面情報のURLを、Webサーバ装置から取得した最新のURLに変更することができる。また、Webサーバ装置から最新の画面情報を取得する際に、画面情報ファイルに記憶されているパラメタ情報を用いてHTTPリクエストを生成することができる。これらにより、脆弱性検査の事前作業を、手作業で再度行う必要がなくなるため、作業効率を向上させることができる。つまり、脆弱性の検査を確実かつ効率的に行うことができる。
また、画面情報ファイルに記憶されている情報と、Webサーバ装置から取得した最新の画面情報とを比較して、URL同士が一致、かつパラメタ名同士の全てが不一致または一部のみが一致する場合に、画面構成の一部が変更された可能性があることを通知することや、URL同士が不一致、かつパラメタ名同士の全てが不一致または一部のみが一致する場合に、新規画面が追加された可能性があることを通知することができるため、脆弱性の検査漏れを確実に防止することが可能となる。
[第2実施形態]
本発明の第2実施形態について説明する。第2実施形態における画面シーケンス確認装置が、上述した第1実施形態における画面シーケンス確認装置と相違する点は、画面情報ファイルのURLを書き換える前に、URLが変更されたことをさらに確認する機能を各構成要素に追加した点である。第2実施形態における画面シーケンス確認装置の機能構成は、図1に示す第1実施形態における画面シーケンス確認装置の機能構成と同様であるため、各構成要素には同一の符合を付し、その説明を省略する。以下においては、主に第1実施形態との相違点について説明する。
図6および図7を参照して、第2実施形態における画面シーケンス確認装置の動作について説明する。図5は、画面シーケンスを確認する際の処理手順を示すフローチャートである。ここで、図6および図7に示すステップS201〜ステップS211およびステップS221〜ステップS224までの各処理は、上述した第1実施形態において説明した図4および図5に示すステップS101〜ステップS111およびステップS115〜ステップS118までの各処理と同様であるため、これら各処理の説明については省略する。以下においては、上述した第1実施形態とは異なるステップS212〜ステップS220までの各処理について説明する。
図7に示すステップS210での比較の結果、全てのパラメタ名同士が一致し(ステップS211;YES)、かつ、URL同士が一致した場合(ステップS212;YES)に、ステップS208で直近に読み出された画面情報レコードには変更がないと判定できる。したがって、送信部13は、ステップS208で直近に読み出された画面情報レコードに格納されている画面情報に基づいて、この画面情報のURLに対応する場所に格納されている画面のソースコードをリクエストするためのHTTPリクエストを、画面情報のhostに対応するWebサーバ装置に送信する(ステップS220)。そして、ステップS204に処理を移行する。
一方、図7に示すステップS210での比較の結果、全てのパラメタ名同士が一致し(ステップS211;YES)、かつ、URL同士が不一致である場合(ステップS212;NO)には、ステップS208で直近に読み出された画面情報レコードのURLに変更があった可能性が高いと判定できる。したがって、送信部13は、ステップS205で抽出されたURLおよびステップS208で直近に読み出された画面情報レコードに格納されているパラメタ情報に基づいて、この画面情報のURLに対応する場所に格納されている画面のソースコードをリクエストするためのHTTPリクエストを、画面情報のhostに対応するWebサーバ装置に送信する(ステップS213)。
続いて、受信部14は、上記ステップS213で送信したHTTPリクエストに応じてWebサーバ装置から送信されるHTTPレスポンスを受信する(ステップS214)。
続いて、抽出部15は、上記ステップS214で受信したHTTPレスポンスに含まれる画面のソースコードから、他の画面へのURLを抽出する(ステップS215)。
続いて、読出部12は、画面情報ファイルから次の画面情報レコードを読み出す(ステップS216)。例えば、図2に示す画面情報ファイルでは、次の画面情報レコードとして画面名が“C”である画面情報レコードが読み出される。
続いて、比較部16は、上記ステップS215で抽出されたURLに、上記ステップS216で直近に読み出されたURLが含まれているか否かを判定する(ステップS217)。この判定がNOである場合(ステップS217;NO)に、出力部18は、ステップS208で読み出された画面情報レコードのURLを含むメッセージを表示装置に出力し(ステップS218)、処理を終了する。
一方、上記ステップS217の判定で、上記ステップS215で抽出されたURLに上記ステップS216で直近に読み出されたURLが含まれていると判定された場合(ステップS217;YES)には、ステップS208で読み出された画面情報レコードのURLに変更があったと判定できる。したがって、書換部17は、画面情報ファイルに記憶されている画面情報レコードのうち、ステップS208で読み出された画面情報レコードに含まれるURLを、ステップS205で抽出されたURLで書き換えて更新する(ステップS219)。そして、上述したステップS205に処理を移行する。
上述してきたように、第2実施形態における画面シーケンス確認装置1によれば、パラメタ名が全て一致してURLが異なっているため、URLが変更された可能性が高いと判定できる場合であっても、さらに、変更された可能性が高いURLの画面に含まれる他の画面へのURLが、次の画面情報レコードのURLに記憶されているか否かを確認し、記憶されていることが確認できたときにURLを書き換えることができる。これにより、URLが変更された場合に、変更後のシーケンス状態を確実に確認してから画面情報レコードを変更することができる。
[第3実施形態]
本発明の第3実施形態について説明する。上述した各実施形態では、画面のソースコードに他の画面へのURLが直接記述されている場合について説明しているが、画面のソースコードに他の画面へのURLが直接記述されていない場合もある。したがって、第3実施形態では、他の画面へのURLが直接記述されていない場合の実施形態について説明する。
第3実施形態では、例えば、画面上に設けられた複数のラジオボタンの選択箇所によってリンク先が変わる場合の実施例について説明する。第3実施形態では、例えば、各ラジオボタンに対応してそれぞれvalue値(所定パラメタ値)が設定され、各value値に対応してそれぞれURLが設定されており、一のラジオボタンが選択された場合に、選択されたラジオボタンのvalue値に対応するURLを取得する所定関数を含むイベントハンドラ情報が画面ソースコードのFormタグに記述されていることを前提にして説明する。
図8を参照して、第3実施形態における画面シーケンス確認装置の機能構成について説明する。第3実施形態における画面シーケンス確認装置2は、機能的には、例えば、記憶部21と、読出部22と、送信部23と、受信部24と、抽出部25と、比較部26と、書換部27と、出力部28と、関数解析部29とを有する。記憶部21、読出部22、送信部23および受信部24は、第1実施形態における記憶部11、読出部12、送信部13および受信部14と同様であるため、その説明を省略するとともに、以下においては、主に第1実施形態との相違点について説明する。
図9を参照して、第3実施形態における画面情報ファイルに記憶される画面情報について説明する。画面情報レコードのデータ項目は、図2に示す第1実施形態における画面情報レコードのデータ項目と同様である。図9に示す画面情報レコードのパラメタ名には、選択されたラジオボタンのvalue値を格納するためのパラメタの名称である“Value”が記憶されており、この“Value”パラメタに格納されるパラメタ値として“AAA”または“CCC”が記憶されている。Value値は、同一画面上のラジオボタンごとに設定される。したがって、Value値がわかれば、画面上で選択されたラジオボタンを識別することが可能となる。
図9に示す先頭の画面情報レコードは、Value値“AAA”に対応するラジオボタンが選択され、送信ボタンがクリックされた結果、画面名“D”のソースコードのFormタグに記述されたイベントハンドラ情報に含まれる所定関数が実行され、選択されたラジオボタンのvalue値“AAA”に対応して設定されているURLの画面に移行したことを示している。
抽出部25は、HTTPレスポンスに含まれる画面ソースコードのformタグから、イベントハンドラ情報を抽出する。イベントハンドラ情報としては、例えば、“OnSubmit”、“OnClick”、“OnSelect”、“OnFocus”、“OnChange”等が該当する。なお、イベントハンドラ情報が抽出できなかった場合に、出力部28は、イベントハンドラ情報が抽出できなかった旨のメッセージを表示装置に出力する。
関数解析部29は、読出部22によって直近に読み出された画面情報レコードのパラメタ名に“value”が登録されているか否かを判定する。関数解析部29は、“value”パラメタが登録されている場合に、その“value”パラメタに対応するパラメタ値に一致するvalue値が、HTTPレスポンスの画面ソースコードのformタグに記述されているか否かを判定する。
関数解析部29は、“value”パラメタに対応するパラメタ値に一致するvalue値が画面ソースコードのformタグに記述されている場合に、抽出部25によって抽出されたイベントハンドラ情報に記述されている所定関数を解析し、“value”パラメタのパラメタ値に対応して設定されているURLを取得する。
イベントハンドラ情報に記述されている関数を解析する手順の具体例を説明する。例えば、イベントハンドラ情報に“OnSubmit=examplefunc()”と記述されている場合に、関数解析部29は、“examplefunc()”という関数を解析することになる。この場合に、関数解析部29は、“value”パラメタのパラメタ値を用いて“examplefunc()”関数を実行させた場合に取得できるURLを、上記“value”パラメタのパラメタ値に対応して設定されているURLとして取得する。
比較部26は、読出部22によって次に読み出される画面情報レコードに含まれるURLが、関数解析部29によって取得されたURLと一致するか否かを判定する。
書換部27は、比較部16による上記比較によって、URL同士が不一致である場合に、画面情報ファイルに記憶されている画面情報レコードのうち、上記比較に用いられた画面情報に含まれるURLを、上記比較に用いられた関数解析部29によって取得されたURLで書き換える。
図10および図11を参照して、第3実施形態における画面シーケンス確認装置の動作について説明する。図10および図11は、画面シーケンスを確認する際の処理手順を示すフローチャートである。
最初に、読出部22は、画面情報ファイルに記憶されている1件目の画面情報レコードを読み出す(ステップS301)。
上記ステップS301で画面情報レコードが読み出せなかった場合(ステップS302;NO)には、処理を終了する。一方、画面情報レコードが読み出せた場合(ステップS302;YES)に、送信部23は、上記ステップS301で読み出された画面情報レコードに格納されている画面情報に基づいて、この画面情報のURLに対応する場所に格納されている画面のソースコードをリクエストするためのHTTPリクエストを、画面情報のhostに対応するWebサーバ装置に送信する(ステップS303)。
続いて、受信部24は、HTTPリクエストに応じてWebサーバ装置から送信されるHTTPレスポンスを受信する(ステップS304)。
続いて、抽出部25は、HTTPレスポンスに含まれる画面のソースコードから、イベントハンドラ情報を抽出する(ステップS305)。
上記ステップS305でイベントハンドラ情報が抽出できなかった場合(ステップS306;NO)に、出力部28は、直近に読み出された画面情報レコードのURLとイベントハンドラ情報が抽出できなかった旨のメッセージとを表示装置に出力し(ステップS307)、処理を終了する。
一方、上記ステップS305でイベントハンドラ情報が抽出できた場合(ステップS306;YES)に、関数解析部29は、直近に読み出された画面情報レコードのパラメタ名に“value”が登録されているか否かを判定する(ステップS308)。この判定がNOである場合(ステップS308;NO)には、処理を終了する。
一方、上記ステップS308の判定で画面情報レコードのパラメタ名に“value”が登録されていると判定された場合(ステップS308;YES)に、関数解析部29は、直近に読み出された画面情報レコードの“value”パラメタに対応するパラメタ値と一致するvalue値が、上記ステップS304で受信したHTTPレスポンスの画面ソースコードのformタグに記述されているか否かを判定する(ステップS309)。この判定がNOである場合(ステップS309;NO)には、処理を終了する。
一方、上記ステップS309の判定で画面情報レコードの“value”パラメタに対応するパラメタ値と一致するvalue値が画面ソースコードのformタグに記述されていると判定された場合(ステップS309;YES)に、関数解析部29は、上記ステップS305で抽出されたイベントハンドラ情報に記述されている所定関数を解析し、上記“value”パラメタのパラメタ値に対応して設定されているURLを取得する(ステップS310)。
続いて、読出部22は、画面情報ファイルから次の画面情報レコードを読み出す(ステップS311)。画面情報レコードが読み出せなかった場合(ステップS312;NO)には、処理を終了する。
一方、画面情報レコードが読み出せた場合(ステップS312;YES)に、比較部26は、上記ステップS311で直近に読み出された画面情報レコードに含まれるURLが、上記ステップS310で取得されたURLと一致するか否かを判定する(ステップS313)。この判定がYESである場合(ステップS313;YES)には、上記ステップS311で読み出された画面情報レコードには変更がないと判定できる。したがって、後述するステップS315に処理を移行する。
一方、上記ステップS313の判定において上記ステップS311で直近に読み出された画面情報レコードに含まれるURLが、上記ステップS310で取得されたURLと一致しないと判定された場合(ステップS313;NO)には、上記ステップS311で直近に読み出された画面情報レコードのURLに変更があったと判定できる。したがって、書換部17は、画面情報ファイルに記憶されている画面情報レコードのうち、上記ステップS311で直近に読み出された画面情報レコードのURLを、上記ステップS310で取得されたURLで書き換えて更新する(ステップS314)。
続いて、送信部13は、上記ステップS311で直近に読み出された画面情報レコードに格納されている画面情報(上記ステップS314でURLを更新した場合には、更新後の画面情報)に基づいて、この画面情報のURLに格納されている画面のソースコードをリクエストするHTTPリクエストを、画面情報のhostに対応するWebサーバ装置に送信する(ステップS315)。そして、上述したステップS304に処理を移行する。
上述してきたように、第3実施形態における画面シーケンス確認装置2によれば、例えば、選択したラジオボタンの位置によってリンク先が変わる等のように、画面のソースコードに他の画面へのURLが直接記述されていない画面からなるWebシステムであっても、他の画面へのURLを特定することができる。このように他の画面へのURLを特定することができれば、上述した各実施形態と同様に、画面情報ファイルに記憶されている画面情報のURLを、Webサーバ装置から取得された最新のURLに変更することができる。これにより、脆弱性検査の事前作業を、手作業で再度行う必要がなくなるため、作業効率を向上させることができる。つまり、脆弱性の検査を確実かつ効率的に行うことができる。
なお、上述した各実施形態は、単なる例示に過ぎず、各実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
例えば、上述した各実施形態では、画面シーケンス確認装置が全ての構成要素を備えているが、これに限定されず、各構成要素を複数の異なる装置に分散して備えることとしてもよい。
1、2…画面シーケンス確認装置、11、21…記憶部、12、22…読出部、13、23…送信部、14、24…受信部、15、25…抽出部、16、26…比較部、17、27…書換部、18、28…出力部、29…関数解析部。

Claims (5)

  1. 画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ名を含むパラメタ情報とを有する画面情報を記憶する記憶部と、
    前記記憶部に記憶されている前記画面情報を、前記画面の表示順に読み出す読出部と、
    前記読出部によって読み出された第1の前記画面情報に含まれる第1の前記格納場所情報および第1の前記パラメタ情報に基づいて、当該第1の前記格納場所情報に対応するサーバ装置に、当該第1の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信部と、
    前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信部と、
    前記レスポンスに含まれる前記情報資源から第2の前記格納場所情報および第2の前記パラメタ情報を抽出する抽出部と、
    前記抽出部によって抽出された前記第2の前記格納場所情報および前記第2の前記パラメタ情報と、前記読出部によって前記第1の前記画面情報の次に読み出される第2の前記画面情報に含まれる第3の前記格納場所情報および第3の前記パラメタ情報とをそれぞれ比較する比較部と、
    前記比較部による前記比較によって、前記各格納場所情報同士が不一致であり、かつ、前記各パラメタ情報に含まれる前記各パラメタ名同士が全て一致する場合に、前記記憶部に記憶されている前記第2の前記画面情報に含まれる前記第3の前記格納場所情報を、前記抽出部によって抽出された前記第2の前記格納場所情報で書き換える書換部と、
    を備えることを特徴とする画面シーケンス確認装置。
  2. 前記比較部による前記比較によって、前記各格納場所情報同士が不一致であり、かつ、前記各パラメタ情報に含まれる前記各パラメタ名同士が全て一致する場合に、前記抽出部によって抽出された前記第2の前記格納場所情報および前記第3の前記パラメタ情報に基づいて、当該第2の前記格納場所情報に対応するサーバ装置に、当該第2の前記格納場所情報に対応する前記情報資源の第2のリクエストを送信する第2の送信部と、
    前記第2のリクエストに応じて前記サーバ装置から送信される第2のレスポンスを受信する第2の受信部と、
    前記第2のレスポンスに含まれる前記情報資源から第4の前記格納場所情報を抽出する第2の抽出部と、
    前記第2の抽出部によって抽出された前記第4の前記格納場所情報と、前記読出部によって前記第2の前記画面情報の次に読み出される第3の前記画面情報に含まれる第5の前記格納場所情報とを比較する第2の比較部と、をさらに備え、
    前記書換部は、前記第2の比較部による前記比較によって、前記各格納場所情報同士が一致する場合に、前記記憶部に記憶されている前記第2の前記画面情報に含まれる前記第3の前記格納場所情報を、前記抽出部によって抽出された前記第2の前記格納場所情報で書き換える、ことを特徴とする請求項1記載の画面シーケンス確認装置。
  3. 画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ情報とを有する画面情報を記憶する記憶部と、
    前記記憶部に記憶されている前記画面情報を、前記画面の表示順に読み出す読出部と、
    前記読出部によって読み出された第1の前記画面情報に基づいて、当該第1の前記画面情報に含まれる第1の前記格納場所情報に対応するサーバ装置に、当該第1の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信部と、
    前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信部と、
    前記レスポンスに含まれる前記情報資源から所定関数を含むイベント情報を抽出する抽出部と、
    前記読出部によって読み出された第1の前記画面情報の前記パラメタ情報に含まれる所定パラメタ値が、前記レスポンスの前記情報資源に含まれている場合に、前記抽出部によって抽出された前記イベント情報に含まれる前記所定関数を解析して前記所定パラメタ値に対応する第2の前記格納場所情報を取得する関数解析部と、
    前記関数解析部によって取得された前記第2の前記格納場所情報と、前記読出部によって前記第1の前記画面情報の次に読み出される第2の前記画面情報に含まれる第3の前記格納場所情報とを比較する比較部と、
    前記比較部による前記比較によって、前記各格納場所情報同士が不一致である場合に、前記記憶部に記憶されている前記第2の前記画面情報に含まれる前記第3の前記格納場所情報を、前記関数解析部によって取得された前記第2の前記格納場所情報で書き換える書換部と、
    を備えることを特徴とする画面シーケンス確認装置。
  4. 画面に関する情報資源の格納場所を特定する格納場所情報と前記情報資源に対応するパラメタ名を含むパラメタ情報とを有する画面情報を記憶させる記憶ステップと、
    前記記憶ステップにおいて記憶された前記画面情報を、前記画面の表示順に読み出す読出ステップと、
    前記読出ステップにおいて読み出された第1の前記画面情報に含まれる第1の前記格納場所情報および第1の前記パラメタ情報に基づいて、当該第1の前記格納場所情報に対応するサーバ装置に、当該第1の前記格納場所情報に対応する前記情報資源のリクエストを送信する送信ステップと、
    前記リクエストに応じて前記サーバ装置から送信されるレスポンスを受信する受信ステップと、
    前記レスポンスに含まれる前記情報資源から第2の前記格納場所情報および第2の前記パラメタ情報を抽出する抽出ステップと、
    前記抽出ステップにおいて抽出された前記第2の前記格納場所情報および前記第2の前記パラメタ情報と、前記読出ステップにおいて前記第1の前記画面情報の次に読み出される第2の前記画面情報に含まれる第3の前記格納場所情報および第3の前記パラメタ情報とをそれぞれ比較する比較ステップと、
    前記比較ステップにおける前記比較によって、前記各格納場所情報同士が不一致であり、かつ、前記各パラメタ情報に含まれる前記各パラメタ名同士が全て一致する場合に、前記記憶ステップにおいて記憶された前記第2の前記画面情報に含まれる前記第3の前記格納場所情報を、前記抽出部によって抽出された前記第2の前記格納場所情報で書き換える書換ステップと、
    を含むことを特徴とする画面シーケンス確認方法。
  5. 請求項4に記載の各ステップをコンピュータに実行させるための画面シーケンス確認プログラム。
JP2010000119A 2010-01-04 2010-01-04 画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラム Expired - Fee Related JP5435351B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010000119A JP5435351B2 (ja) 2010-01-04 2010-01-04 画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010000119A JP5435351B2 (ja) 2010-01-04 2010-01-04 画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラム

Publications (2)

Publication Number Publication Date
JP2011138456A JP2011138456A (ja) 2011-07-14
JP5435351B2 true JP5435351B2 (ja) 2014-03-05

Family

ID=44349791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010000119A Expired - Fee Related JP5435351B2 (ja) 2010-01-04 2010-01-04 画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラム

Country Status (1)

Country Link
JP (1) JP5435351B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6261244B2 (ja) * 2013-09-06 2018-01-17 株式会社富士通マーケティング Webアプリケーションテスト装置およびそのプログラム
JP7390070B1 (ja) * 2022-09-20 2023-12-01 株式会社エーアイセキュリティラボ ウェブサイトを検査するためのシステム、方法、及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04181455A (ja) * 1990-11-16 1992-06-29 Hitachi Ltd 画面遷移仕様作成方法
JP4630572B2 (ja) * 2004-05-27 2011-02-09 株式会社野村総合研究所 整合性チェックプログラム及び整合性チェック装置
JP4849929B2 (ja) * 2006-03-28 2012-01-11 富士通株式会社 シナリオ作成プログラム
JP2009122970A (ja) * 2007-11-15 2009-06-04 Nomura Research Institute Ltd プログラム検証システム
JP5066499B2 (ja) * 2008-09-24 2012-11-07 株式会社日立ソリューションズ Webアプリケーションの操作手順書生成システム

Also Published As

Publication number Publication date
JP2011138456A (ja) 2011-07-14

Similar Documents

Publication Publication Date Title
CN110324311B (zh) 漏洞检测的方法、装置、计算机设备和存储介质
JP5497173B2 (ja) Xss検出方法および装置
US9954886B2 (en) Method and apparatus for detecting website security
US9614862B2 (en) System and method for webpage analysis
US12130909B1 (en) Enterprise search
JP5425699B2 (ja) 情報処理装置、テストケース生成方法、プログラムおよび記録媒体
CN103279710B (zh) Internet信息系统恶意代码的检测方法和系统
CN106484611B (zh) 基于自动化协议适配的模糊测试方法和装置
JP2013520719A (ja) ウェブサービスのリアルタイム脆弱性診断及び結果情報提供サービスシステム
US9069963B2 (en) Statistical inspection systems and methods for components and component relationships
US9450980B2 (en) Automatic malignant code collecting system
EP3547121A1 (en) Combining device, combining method and combining program
CN113114680B (zh) 用于文件上传漏洞的检测方法和检测装置
CN111651347B (zh) 测试系统的跳转验证方法、装置、设备及存储介质
US20150012608A1 (en) Web content prefetch control device, web content prefetch control program, and web content prefetch control method
CN110851681A (zh) 爬虫处理方法、装置、服务器及计算机可读存储介质
CN114465741B (zh) 一种异常检测方法、装置、计算机设备及存储介质
CN102436402A (zh) 一种软件中的模块修复方法及该软件设备
CN104050409A (zh) 一种识别被捆绑软件的方法及其装置
KR20150124020A (ko) 악성코드 식별 태그 설정 시스템 및 방법, 및 악성코드 식별 태그를 이용한 악성코드 검색 시스템
JP5112401B2 (ja) Web行動履歴取得システム、Web行動履歴取得方法、ゲートウェイ装置、及びプログラム
US20170116336A1 (en) Synchronizing http requests with respective html context
JP5435351B2 (ja) 画面シーケンス確認装置、画面シーケンス確認方法および画面シーケンス確認プログラム
CN107026854B (zh) 漏洞验证方法及装置
CN110457900B (zh) 一种网站监测方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131128

R150 Certificate of patent or registration of utility model

Ref document number: 5435351

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees