(57)【要約】【課題】低コストでセキュリティ診断を実行すること。【解決手段】回帰テスト実行手段１６は、回帰テスト用スクリプトを用いて、ＨＴＴＰリクエストを生成して、回帰テストを実行する。セキュリティ診断テスト実行手段１５は、前記回帰テスト用スクリプトを基に、ページを遷移するリクエストを生成し、セキュリティ診断用データを基に、異常情報を含むリクエスト生成して、セキュリティ診断テストを実行する。【選択図】図１
2016184194.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂサーバと通信するセキュリティ診断装置であって、
前記Ｗｅｂサーバが提供するＷｅｂアプリケーションに、リクエストを送り、レスポンスを得る通信部と、
回帰テスト用スクリプトと、セキュリティ診断用データとを記憶する記憶部と、
前記回帰テスト用スクリプトを基にリクエストを生成し、回帰テストを実行する回帰テスト実行手段と、
前記回帰テスト用スクリプトを基に、ページを遷移するリクエストを生成し、前記セキュリティ診断用データを基に、異常情報を含むリクエストを生成し、セキュリティ診断テストを実行するセキュリティ診断テスト実行手段と、
を有することを特徴とする、セキュリティ診断装置。
【請求項２】
前記セキュリティ診断テスト実行手段は、前記回帰テスト実行手段が、複数の回帰テスト用スクリプトに基づいた回帰テストを全て行った後で、前記Ｗｅｂアプリケーションが提供した複数のページに対して前記回帰テスト用スクリプトを基にページを遷移し、セキュリティ診断テストを行うことを特徴とする、請求項１に記載のセキュリティ診断装置。
【請求項３】
前記セキュリティ診断テスト実行手段は、前記回帰テスト実行手段が複数の回帰テスト用スクリプトに基づいた回帰テストを一つ行うたびに、前記セキュリティ診断用データを用いて、セキュリティ診断テストを行う
ことを特徴とする、請求項１に記載のセキュリティ診断装置。
【請求項４】
前記回帰テスト用スクリプトは、ページを遷移するリクエストを生成するための遷移情報と、リクエストに対して前記Ｗｅｂアプリケーションが返すレスポンスの期待値とを含むことを特徴とする、請求項１から３のいずれか１項に記載のセキュリティ診断装置。
【請求項５】
前記回帰テスト実行手段は、リクエストに対して前記Ｗｅｂアプリケーションが返すレスポンスの期待値と、実際に返ったレスポンスとを比較して相違がある場合に、回帰テストのエラーを出力する
ことを特徴とする、請求項１から４のいずれか１項に記載のセキュリティ診断装置。
【請求項６】
前記セキュリティ診断テスト実行手段は、前記回帰テスト用スクリプトから、ページ遷移スクリプトを抽出し、当該ページ遷移スクリプトに基づくリクエストを前記Ｗｅｂサーバに送信して得られるレスポンスに、フォーム入力がある場合に、セキュリティ診断テストを実行する
ことを特徴とする、請求項１から５のいずれか１項に記載のセキュリティ診断装置。
【請求項７】
Ｗｅｂサーバが提供するＷｅｂアプリケーションに、リクエストを送り、レスポンスを得る通信部と、
回帰テスト用スクリプトと、セキュリティ診断用データとを記憶する記憶部と、
前記回帰テスト用スクリプトを基にリクエストを生成し、回帰テストを実行する回帰テスト実行手段と、
前記回帰テスト用スクリプトを基に、ページを遷移するリクエストを生成し、前記セキュリティ診断用データを基に、異常情報を含むリクエストを生成し、セキュリティ診断テストを実行するセキュリティ診断テスト実行手段と、
を有する
ことを特徴とする、セキュリティ診断システム。
【請求項８】
Ｗｅｂサーバが提供するＷｅｂアプリケーションに、リクエストを送るステップと、
レスポンスを得るステップと、
記憶部に記憶された回帰テスト用スクリプトを基にリクエストを生成し、回帰テストを実行する回帰テスト実行ステップと、
前記回帰テスト用スクリプトを基に、ページを遷移するリクエストを生成し、前記記憶部に記憶されたセキュリティ診断用データを基に、異常情報を含むリクエストを生成し、セキュリティ診断テストを実行するセキュリティ診断テスト実行ステップと、
を有するセキュリティ診断方法。
【請求項９】
Ｗｅｂサーバと通信するコンピュータに、
前記Ｗｅｂサーバが提供するＷｅｂアプリケーションに、リクエストを送るステップと、
レスポンスを得るステップと、
記憶部に記憶された回帰テスト用スクリプトを基にリクエストを生成し、回帰テストを実行する回帰テスト実行ステップと、
前記回帰テスト用スクリプトを基に、ページを遷移するリクエストを生成し、前記記憶部に記憶されたセキュリティ診断用データを基に、異常情報を含むリクエストを生成し、セキュリティ診断テストを実行するセキュリティ診断テスト実行ステップと、
を実行させるセキュリティ診断プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ診断装置、システム、方法及びプログラムに関し、特に、Ｗｅｂアプリケーションのセキュリティ診断に関する。
【背景技術】
【０００２】
昨今のＷｅｂアプリケーション開発では、アプリケーションを修正後、修正による不具合やデグレーションが発生していないことを確認するために、回帰テスト（リグレッションテスト、受入テスト）を実施している。一度書いたスクリプトは何度でも利用できるため、アプリケーションの修正後、回帰テストを実施する開発プロセスが浸透している。
【０００３】
一方で、Ｗｅｂアプリケーションが安全に動作することを確認するために、Ｗｅｂアプリケーション開発時、及び、機能追加等の改修時に、セキュリティ診断テストを行われることがある。セキュリティ診断テストとしては、例えば、特許文献２や特許文献３に開示されているようなものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４６１９８６７号公報
【特許文献２】国際公開第２０１２／０６３４９３号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
セキュリティ診断テストのソフトウェアは、オートモードとマニュアルモードで診断が可能である。オートモードではＷｅｂクローラを使って診断対象となるＷｅｂ画面を自動的に抽出する。抽出結果は「画面に存在するリンクの組み合わせ数」に相当するため、結果的に診断する画面数が膨大となり、時間的コストがかかる。
【０００６】
マニュアルモードでは、エンドユーザがどのようにＷｅｂアプリケーションを利用するか、ログイン情報やページ遷移情報などをＧＵＩを使って手入力し、セキュリティ診断テストのソフトウェアに登録する。セキュリティ診断のためだけにログイン情報やページ遷移情報などをＧＵＩを使って手入力する操作作業が発生するため、人的コストがかかる。
【０００７】
本発明は、上記実情に鑑みてなされたものであって、低コストでセキュリティ診断を実行することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明のセキュリティ診断装置は、Ｗｅｂサーバと通信するセキュリティ診断装置であって、前記Ｗｅｂサーバが提供するＷｅｂアプリケーションに、リクエストを送り、レスポンスを得る通信部と、回帰テスト用スクリプトと、セキュリティ診断用データとを記憶する記憶部と、前記回帰テスト用スクリプトを基にリクエストを生成し、回帰テストを実行する回帰テスト実行手段と、前記回帰テスト用スクリプトを基に、ページを遷移するリクエストを生成し、前記セキュリティ診断用データを基に、異常情報を含むリクエストを生成し、セキュリティ診断テストを実行するセキュリティ診断テスト実行手段と、を有することを特徴とする。
【０００９】
また、本発明のセキュリティ診断システムは、Ｗｅｂサーバが提供するＷｅｂアプリケーションに、リクエストを送り、レスポンスを得る通信部と、回帰テスト用スクリプトと、セキュリティ診断用データとを記憶する記憶部と、前記回帰テスト用スクリプトを基にリクエストを生成し、回帰テストを実行する回帰テスト実行手段と、前記回帰テスト用スクリプトを基に、ページを遷移するリクエストを生成し、前記セキュリティ診断用データを基に、異常情報を含むリクエストを生成し、セキュリティ診断テストを実行するセキュリティ診断テスト実行手段と、を有することを特徴とする。
【００１０】
また、本発明のセキュリティ診断方法は、Ｗｅｂサーバが提供するＷｅｂアプリケーションに、リクエストを送るステップと、レスポンスを得るステップと、記憶部に記憶された回帰テスト用スクリプトを基にリクエストを生成し、回帰テストを実行する回帰テスト実行ステップと、前記回帰テスト用スクリプトを基に、ページを遷移するリクエストを生成し、前記記憶部に記憶されたセキュリティ診断用データを基に、異常情報を含むリクエストを生成し、セキュリティ診断テストを実行するセキュリティ診断テスト実行ステップと、を有する。
【００１１】
また、本発明のセキュリティ診断プログラムは、Ｗｅｂサーバと通信するコンピュータに、前記Ｗｅｂサーバが提供するＷｅｂアプリケーションに、リクエストを送るステップと、レスポンスを得るステップと、記憶部に記憶された回帰テスト用スクリプトを基にリクエストを生成し、回帰テストを実行する回帰テスト実行ステップと、前記回帰テスト用スクリプトを基に、ページを遷移するリクエストを生成し、前記記憶部に記憶されたセキュリティ診断用データを基に、異常情報を含むリクエストを生成し、セキュリティ診断テストを実行するセキュリティ診断テスト実行ステップと、を実行させる。
【発明の効果】
【００１２】
本発明によれば、低コストでセキュリティ診断を実行することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態の構成例を示すブロック図である。
【図２】上記実施形態における回帰テストを説明するための概念図である。
【図３】上記実施形態における回帰テストとセキュリティ診断テストの実行フローを示す図（その１）である。
【図４】上記実施形態における回帰テストとセキュリティ診断テストの実行フローを示す図（その２）である。
【図５】本発明の第２の実施形態における回帰テストとセキュリティ診断テストの実行フローを示す図である。
【図６】上記各実施形態の構成の変形例（その１）を示すブロック図である。
【図７】上記各実施形態の構成の変形例（その２）を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下の実施形態の説明中で現れるBIGLOBE、JavaScript、Ruby、Casperjs、googleなどは登録商標又は商標である。
【００１５】
＜第１の実施形態＞
図１に、本実施形態の構成例を示す。
図示のセキュリティ診断装置１０は、出力部１１、入力部１２、記憶部１３、制御部１４、通信部１７を有する。通信部１７はネットワーク２０を介して診断対象Ｗｅｂサーバ２１と、少なくともＨＴＴＰプロトコルで通信する機能を備える。
【００１６】
制御部１４は、各部の制御をする機能を有し、回帰テスト実行手段１６とセキュリティ診断テスト実行手段１５として機能する。通信部１７は、ネットワーク２０を介して他の装置と通信する機能を有し、ＨＴＴＰリクエスト送信手段１９とＨＴＴＰレスポンス受信手段１８として機能する。
【００１７】
回帰テスト実行手段１６は、記憶部１３から回帰テスト用スクリプトを読み込み、当該スクリプトに応じてＨＴＴＰリクエストを生成し、ＨＴＴＰリクエスト送信手段１９に提供する。
【００１８】
また、回帰テスト実行手段１６は、ＨＴＴＰリクエストに対する診断対象Ｗｅｂサーバ２１からのレスポンスが、回帰テスト用スクリプトに記載されたレスポンスに合致しているか確認し、その確認結果を出力部１１に提供する。
【００１９】
セキュリティ診断テスト実行手段１５は、記憶部１３から回帰テスト用スクリプトを読み込み、当該スクリプトからページ遷移スクリプトを抽出してＨＴＴＰリクエストを生成し、ＨＴＴＰリクエスト送信手段１９に提供する。
【００２０】
また、セキュリティ診断テスト実行手段１５は、ページ遷移スクリプトのＨＴＴＰリクエストの診断対象Ｗｅｂサーバ２１からのレスポンスが、回帰テスト用スクリプトに記載されたレスポンスに合致し、かつ、フォームへの入力ページと確認した場合、記憶部１３に記憶されたセキュリティ診断用データを読み込み、セキュリティ診断用のＨＴＴＰリクエストを生成し、ＨＴＴＰリクエスト送信手段１９に提供する。その後、セキュリティ診断テスト実行手段１５は、セキュリティ診断用のＨＴＴＰリクエストに対する診断対象Ｗｅｂサーバ２１からのレスポンスが、セキュリティ診断用データに記載されたレスポンスに合致しているか確認し、その確認結果を出力部１１に提供する。
【００２１】
ＨＴＴＰリクエスト送信手段１９は、回帰テスト実行手段１６又はセキュリティ診断テスト実行手段１５で生成したＨＴＴＰリクエストをネットワーク２０を介して診断対象Ｗｅｂサーバ２１に送信する。
【００２２】
ＨＴＴＰレスポンス受信手段１８は、ネットワーク２０を介して診断対象Ｗｅｂサーバ２１に受信したレスポンスを回帰テスト実行手段１６又はセキュリティ診断テスト実行手段１５に提供する。
【００２３】
＜回帰テスト＞
まず、回帰テストについて説明する。図２に、回帰テストの説明図を示す。
回帰テストは、大まかに、次の３つのプロセスで構成される。第１に、ＨＴＴＰサーバである診断対象Ｗｅｂサーバ２１に対して、ＨＴＴＰクライアントとして動作するプログラムである回帰テスト用スクリプトがＨＴＴＰリクエストを生成する。第２に、これに診断対象Ｗｅｂサーバ２１がＨＴＴＰレスポンスを返す。第３に、ＨＴＴＰクライアントである回帰テスト実行手段１６が診断対象Ｗｅｂサーバ２１から返されたＨＴＴＰレスポンスが、期待されるテスト結果の情報を含んでいるか否かをチェックする。
【００２４】
回帰テスト用スクリプトは、JavaScript（登録商標）やRubyといったプログラム言語を用いて表記されたスクリプトプログラムであって、エンドユーザがＷｅｂアプリケーションをどう利用するかという情報がスクリプト中に埋め込まれている。以下に、ツールとしてCasperjsを、プログラミング言語としてJavaScriptを用いた場合の、回帰テスト用スクリプトの例を示す。
【００２５】
casper.test.begin('BIGLOBE search retrieves 10 or more results', 5, function suite(test) [
//(1)
casper.start("http://www.biglobe.ne.jp/", function() [
test.assertExists('form[action="/search"]', "main form is found");
this.fill('form[action="/search"]', [ q: "biglobe" ], true);
]);
//(2)
casper.then(function() [
test.assertUrlMatch(/q=biglobe/, "search term has been submitted");
test.assertEval(function() [
return __utils__.findAll("h3.r").length >= 10;
], "google search for \"biglobe\" retrieves 10 or more results"); ]);
//(3)
casper.run(function() [
test.done();
]);
]);
【００２６】
これは、具体的には、
(1) http://www.biglobe.ne.jp/ にアクセスし、フォーム<form action="/search">の存在を確認し、そのフォームにbiglobeと入力して送信する。
(2) レスポンスを待ち、URLが /q=biglobe/ であることを確認し、<h3 class="r">タグが１０個以上存在することを確認する。
(3) テストを終了する。
という、エンドユーザの端末への操作に対応してサーバが動作するような動作と応答を表している。期待通りの応答が返ってきた場合に、回帰テストはＯＫを表示し、期待通りの応答が返って来なかった場合は、ＮＧと表示しつつ、期待通りではなかった部分が表示される。
【００２７】
回帰テスト用スクリプトの例として示した(1)にある
this.fill('form[action="/search"]', [ q: "biglobe" ], true);
が、ＨＴＴＰリクエストを生成する処理に相当する。
【００２８】
また、この回帰テスト用スクリプトにおいて、テスト対象となっているＨＴＭＬのフォームは、例えば、次のようなものである。
<form method="get" action="/search">
<input type="text" name="q">
<input type="submit" value="検索">
</form>
【００２９】
また、上記例の回帰テスト用スクリプトが実行されると、回帰テスト実行手段１６は、次に示すＨＴＴＰリクエストを生成し、ＨＴＴＰリクエスト送信手段１９に提供する。
GET /search?q=biglobe HTTP/1.1
Host: www.biglobe.ne.jp
…
【００３０】
回帰テスト用スクリプトには、上記例のように、フォームに入力するスクリプトだけでなく、ＵＲＬ等を送信するＨＴＴＰリクエストを生成、送信し、ページの遷移後に回帰テスト行うページを確認するページ遷移用スクリプトが含まれる。回帰テスト用スクリプトの例として示した(1)にある
casper.start("http://www.biglobe.ne.jp/", function() [
test.assertExists('form[action="/search"]', "main form is found");
がページ遷移用スクリプトに相当する。
また、ページ遷移用スクリプトには、認証用フォーム等にＩＤ／パスワードを送信するＨＴＴＰリクエストを生成、送信し、認証後のページに遷移させ、認証後のページを確認するスクリプトも含まれる。ページ遷移用スクリプトは、ページ遷移を伴うＨＴＴＰリクエストが生成、送信されるものである。
【００３１】
上述のように、回帰テスト用スクリプトには、後段のＨＴＴＰリクエスト送信手段１９がＨＴＴＰリクエストを生成する際に必要な遷移情報が含まれる。遷移情報は、ＵＲＬ、フォームに入力する値などである。選択されるラジオボタンやチェックボックスなどで送信される値、ファイル名などでもよい。ＨＴＴＰリクエストに、複数の遷移情報が含まれる場合がある。上述の回帰テスト用スクリプトでは、複数の遷移情報がページ遷移用スクリプトの部分に含まれる。
【００３２】
また、上記例のように、回帰テスト用スクリプトには、ＨＴＴＰリクエストを送信した場合に戻るＨＴＴＰレスポンスに含まれる情報の期待値も含まれる。上記例では条件式を用いているが、ＵＲＬのみや文字列のみなど期待値の具体的態様はこの限りではない。
【００３３】
また、上記例のように、回帰テスト用スクリプトには、ＨＴＴＰリクエストを送信して実際に戻ってきたＨＴＴＰレスポンスに含まれる情報（Ｗｅｂページやクッキーなどの形式で受け取る情報）と、スクリプト中に含まれる期待値とを比較して相違があればエラーを出力する処理が含まれる。
【００３４】
したがって、回帰テストは、例えばフォームに既定の正常パラメータを入力し送信、正常なリンク先ＵＲＬへの接続要求などを行い、正常なレスポンスか確認する処理である。なお、フォームへ入力する情報の具体例としては、検索する語句やＩＤやパスワード等のログインに関する情報以外に、住所や電話番号等の個人情報、コメントなどの自由記入情報などがある。また、ラジオボタンや、多項選択によって入力される情報もフォームの中に含ませることができる。
【００３５】
＜セキュリティ診断テスト＞
次に、本発明の回帰テスト用スクリプトを利用して行うセキュリティ診断テストについて説明する。セキュリティ診断テスト実行手段１５は、ＨＴＴＰリクエストの送信先となるＵＲＬや、フォームの情報などのページ遷移スクリプトを回帰テスト用スクリプトから取得し、セキュリティ診断用データを用いて、セキュリティ診断テスト用のＨＴＴＰリクエストを生成する。好ましくは、ページ遷移スクリプトのＨＴＴＰリクエストの診断対象Ｗｅｂサーバ２１からのレスポンスが、回帰テスト用スクリプトに記載されたレスポンスに合致し、かつ、フォームへの入力ページと確認した場合に、セキュリティ診断テスト用のＨＴＴＰリクエストの生成を行う。ただし、セキュリティ診断テストは、フォームへの入力ページ以外の既定の条件に合致するページで実行しても構わない。
【００３６】
セキュリティ診断テスト実行手段１５が生成するＨＴＴＰリクエストには、同ＵＲＬに対して送信された回帰テスト用スクリプトのページ遷移用スクリプトから生成されるＨＴＴＰリクエストの遷移情報（ＵＲＬ、フォームに送信する値など）を含む。また、セキュリティ診断用データを用いて生成されるＨＴＴＰリクエストには、異常情報が含まれる。異常情報とは、診断対象Ｗｅｂサーバ２１ないしＷｅｂアプリケーションへの攻撃を意図した異常パラメータである。
【００３７】
ここで、「攻撃」とは、Ｗｅｂアプリケーションのセキュリティ上の欠陥を探す行為である。攻撃が成功すると、サーバないしＷｅｂアプリケーションにて、開発者が意図しない動作が行われ、本来は公開されていない情報を入手する等の不正行為が可能になる場合がある。セキュリティ診断テスト実行手段１５が生成するＨＴＴＰリクエストには、ページ遷移用スクリプトから取得した送信先に、異常パラメータを送信する場合のように、遷移情報と異常情報の両方が含まれる場合があってもよい。また、ＨＴＴＰリクエストを用いた攻撃以外でも、ＴＥＬＮＥＴの２３ポートに対する攻撃やＤＮＳへの５３ポートに対する攻撃などのリクエストを用いた攻撃でもよい。
【００３８】
異常パラメータは、例えば、制御文字を含んだ文字列や、バッファオーバーフローを起こす危険性のあるほど異常な長さのデータや、ラジオボタンで選択可能となっている値ではない値（選択不可能であるはずの値）、画面に表示されたコンテンツを書き換えるスクリプト、データベースの内容を画面に表示させるスクリプト、データベースの内容を書き換えるスクリプトなどが挙げられる。
【００３９】
また、セキュリティ診断テスト実行手段１５は、遷移情報のＵＲＬ（リンク先ＵＲＬ）とは異なるＵＲＬへの接続要求を行うＨＴＴＰリクエストを生成するものであってもよい。セキュリティ診断テスト実行手段１５は、このＨＴＴＰリクエストが成功するとアラートを出力する。
【００４０】
上述のように、本発明のセキュリティ診断テストは、フォームへの入力ページへページ遷移用スクリプトを用いて遷移し、フォームに既定の異常パラメータを入力し送信したり、リンク先ＵＲＬとは異なる異常ＵＲＬへの接続要求を送信したりするなどのテストを行い、想定しているレスポンスか確認する処理である。
【００４１】
＜Ｗｅｂアプリケーション全体への実行＞
次に、本実施形態の回帰テストとセキュリティ診断テストをＷｅｂアプリケーション全体に実行処理させるための構成及び処理の流れについて説明する。Ｗｅｂアプリケーションは、例えば、オンラインショッピングを可能にするサイトや、電子メールをブラウザで読むためのインターフェイスを提供するいわゆるＷｅｂメールなどである。Ｗｅｂアプリケーションは利用者に複数のＷｅｂページを提供し、条件により提供するＷｅｂページも異なる場合がある。したがって、Ｗｅｂアプリケーションに対して、セキュリティ診断テストに伴うＨＴＴＰリクエストを送るタイミングであるＷｅｂページや送信先ＵＲＬは、複数ある場合がある。本実施形態では下記フローのように、回帰テスト用スクリプトからそのＨＴＴＰリクエストを送るタイミングであるＷｅｂページやＵＲＬの遷移情報を取得するので、Ｗｅｂアプリケーションの各Ｗｅｂページにセキュリティ診断テストを実行することができる。
【００４２】
本実施形態の回帰テストとセキュリティ診断テストをＷｅｂアプリケーション全体に実行処理させるための処理の流れを図３及び図４に示す。
【００４３】
Ｓ１０１．セキュリティ診断装置１０にて、制御部１４は、（セキュリティ診断装置１０に接続されたキーボードやマウス、または、ネットワーク２０経由で接続された診断者端末から）入力部１２に、診断者から回帰テスト用スクリプトが入力されると、回帰テスト用スクリプトを記憶部１３に記憶する。
【００４４】
Ｓ１０２．回帰テスト実行手段１６は、入力部１２に、診断者もしくはタイマー（不図示）から、回帰テストの実行命令が入力されると、記憶部１３から回帰テスト用スクリプトを読み出す。
【００４５】
Ｓ１０３．回帰テスト実行手段１６は、回帰テスト用スクリプトが有する各スクリプトを基に、ＨＴＴＰリクエストを生成し、生成したＨＴＴＰリクエストをＨＴＴＰリクエスト送信手段１９に提供する。
【００４６】
Ｓ１０４．ＨＴＴＰリクエスト送信手段１９は、回帰テスト実行手段１６で生成したＨＴＴＰリクエストをネットワーク２０を介して診断対象Ｗｅｂサーバ２１に送信する。
【００４７】
Ｓ１０５．その後、ＨＴＴＰレスポンス受信手段１８は、ネットワーク２０を介して診断対象Ｗｅｂサーバ２１から受信したレスポンスを回帰テスト実行手段１６に提供する。
【００４８】
Ｓ１０６．回帰テスト実行手段１６は、ＨＴＴＰリクエストに対する診断対象Ｗｅｂサーバ２１からのレスポンスが、回帰テスト用スクリプトに記載されたレスポンスに合致しているか確認し、その確認結果を出力部１１に提供する。確認結果には、スクリプト中の各「確認」に対して、「合致」（「存在する」も含まれる）なら「正常」が、「不一致」（「存在しない」も含まれる）なら「異常」がページアドレスとリクエストに対応付けて出力される。
【００４９】
Ｓ１０７．出力部１１は確認結果を（セキュリティ診断装置１０に接続されたモニタまたはネットワーク２０経由で接続された診断者端末のモニタ）画面に表示する。
【００５０】
Ｓ１０８．回帰テスト実行手段１６は、回帰テスト用スクリプトが有する全てのスクリプトが処理されるまで、Ｓ１０３に戻って繰り返す。全てのスクリプトが処理されたら、終了する。
【００５１】
Ｓ１０９．また、セキュリティ診断テスト実行手段１５は、入力部１２に、診断者もしくはタイマー（不図示）から、セキュリティ診断テストの実行命令が入力されると、記憶部１３から回帰テスト用スクリプトを読み込み、当該スクリプトからページ遷移スクリプトを抽出する。
【００５２】
Ｓ１１０．セキュリティ診断テスト実行手段１５は、抽出したページ遷移スクリプトの各スクリプトからＨＴＴＰリクエストを生成し、ＨＴＴＰリクエスト送信手段１９に提供する。
【００５３】
Ｓ１１１．ＨＴＴＰリクエスト送信手段１９は、セキュリティ診断テスト実行手段１５で生成したＨＴＴＰリクエストをネットワークを介して診断対象Ｗｅｂサーバ２１に送信する。
【００５４】
Ｓ１１２．その後、ＨＴＴＰレスポンス受信手段１８は、ネットワーク２０を介して診断対象Ｗｅｂサーバ２１から受信したレスポンスをセキュリティ診断テスト実行手段１５に提供する。
【００５５】
Ｓ１１３．セキュリティ診断テスト実行手段１５は、ページ遷移スクリプトのＨＴＴＰリクエストの診断対象Ｗｅｂサーバ２１からのレスポンスが、回帰テスト用スクリプトに記載されたレスポンスに合致し、かつ、フォームへの入力ページと確認した場合、記憶部１３に記憶されたセキュリティ診断用データを読み込み、セキュリティ診断用のＨＴＴＰリクエストを生成し、ＨＴＴＰリクエスト送信手段１９に提供する。
【００５６】
Ｓ１１４．ＨＴＴＰリクエスト送信手段１９は、セキュリティ診断テスト実行手段１５で生成したＨＴＴＰリクエストをネットワーク２０を介して診断対象Ｗｅｂサーバ２１に送信する。
【００５７】
Ｓ１１５．その後、ＨＴＴＰレスポンス受信手段１８は、ネットワーク２０を介して診断対象Ｗｅｂサーバ２１から受信したレスポンスをセキュリティ診断テスト実行手段１５に提供する。
【００５８】
Ｓ１１６．セキュリティ診断テスト実行手段１５は、セキュリティ診断用のＨＴＴＰリクエストに対する診断対象Ｗｅｂサーバ２１からのレスポンスが、セキュリティ診断用データに記載されたレスポンスに合致しているか確認し、その確認結果を出力部１１に提供する。確認結果には、セキュリティ診断用データ中の各「確認」に対して、「合致」（例：「入力した値が間違っています」やエラー番号などの特定の語句や番号が「存在する」も含まれる）なら「正常」が、「不一致」（「存在しない」も含まれる）なら「異常」がページアドレスとリクエストに対応付けて出力される。
【００５９】
Ｓ１１７．出力部１１は確認結果を（セキュリティ診断装置１０に接続されたモニタまたはネットワーク２０経由で接続された診断者端末のモニタ）画面に表示する。
【００６０】
Ｓ１１８．セキュリティ診断テスト実行手段１５は、回帰テスト用スクリプトから抽出したページ遷移スクリプトが全て処理されるまで、Ｓ１１０に戻って繰り返す。全てのスクリプトが処理されたら、終了する。
【００６１】
＜第２の実施形態＞
第１の実施形態では、回帰テストを終了してから、セキュリティ診断テストを実行していたが、第２の実施形態では、回帰テストでページにフォームの入力を確認した度ごとにセキュリティ診断テストを実行する。その他の構成は同じでよい。
【００６２】
本実施形態の処理の流れを、図５に示す。
【００６３】
Ｓ２０１．セキュリティ診断装置１０にて、制御部１４は、（セキュリティ診断装置１０に接続されたキーボードやマウス、または、ネットワーク経由で接続された診断者端末から）入力部１２に、診断者から回帰テスト用スクリプトが入力されると、回帰テスト用スクリプトを記憶部１３に記憶する。
【００６４】
Ｓ２０２．回帰テスト実行手段１６は、入力部１２に、診断者もしくはタイマー（不図示）から、回帰テストの実行命令が入力されると、記憶部１３から回帰テスト用スクリプトを読み出す。
【００６５】
Ｓ２０３．回帰テスト実行手段１６は、回帰テスト用スクリプトが有する各スクリプトを基に、ＨＴＴＰリクエストを生成し、生成したＨＴＴＰリクエストをＨＴＴＰリクエスト送信手段１９に提供する。
【００６６】
Ｓ２０４．ＨＴＴＰリクエスト送信手段１９は、回帰テスト実行手段１６で生成したＨＴＴＰリクエストをネットワーク２０を介して診断対象Ｗｅｂサーバ２１に送信する。
【００６７】
Ｓ２０５．その後、ＨＴＴＰリクエスト受信手段１８は、ネットワーク２０を介して診断対象Ｗｅｂサーバ２１から受信したレスポンスを回帰テスト実行手段１６に提供する。
【００６８】
Ｓ２０６．回帰テスト実行手段１６は、ＨＴＴＰリクエストに対する診断対象Ｗｅｂサーバ２１からのレスポンスが、回帰テスト用スクリプトに記載されたレスポンスに合致しているか確認し、その確認結果を出力部１１に提供する。確認結果には、スクリプト中の各「確認」に対して、「合致」（「存在する」も含まれる）なら「正常」が、「不一致」（「存在しない」も含まれる）なら「異常」がページアドレスとリクエストに対応付けて出力される。
【００６９】
Ｓ２０７．また、回帰テスト実行手段１６は、Ｓ２０５またはＳ２０６の際に、ＨＴＴＰリクエストに対する診断対象Ｗｅｂサーバ２１からのレスポンスが、フォームへの入力ページと確認した場合、セキュリティ診断テスト実行手段１５に、セキュリティ診断テストの実行命令を出力する。
【００７０】
Ｓ２０８．セキュリティ診断テスト実行手段１５は、回帰テスト実行手段１６から、セキュリティ診断テストの実行命令が入力されると、記憶部１３に記憶されたセキュリティ診断用データを読み込み、セキュリティ診断用のＨＴＴＰリクエストを生成し、ＨＴＴＰリクエスト送信手段１９に提供する。
【００７１】
Ｓ２０９．ＨＴＴＰリクエスト送信手段１９は、セキュリティ診断テスト実行手段１５で生成したＨＴＴＰリクエストをネットワーク２０を介して診断対象Ｗｅｂサーバ２１に送信する。
【００７２】
Ｓ２１０．その後、ＨＴＴＰレスポンス受信手段１８は、ネットワーク２０を介して診断対象Ｗｅｂサーバ２１から受信したレスポンスをセキュリティ診断テスト実行手段１５に提供する。
【００７３】
Ｓ２１１．セキュリティ診断テスト実行手段１５は、セキュリティ診断用のＨＴＴＰリクエストに対する診断対象Ｗｅｂサーバ２１からのレスポンスが、セキュリティ診断用データに記載されたレスポンスに合致しているか確認し、その確認結果を出力部１１に提供する。確認結果には、キュリティ診断用データ中の各「確認」に対して、「合致」（「存在する」も含まれる）なら「正常」が、「不一致」（「存在しない」も含まれる）なら「異常」がページアドレスとリクエストに対応付けて出力される。
【００７４】
Ｓ２１２．出力部１１は確認結果を（セキュリティ診断装置１０に接続されたモニタまたはネットワーク経由で接続された診断者端末のモニタ）画面に表示する。
【００７５】
Ｓ２１３．回帰テスト実行手段１６は、回帰テスト用スクリプトが有する全てのスクリプトが処理されるまで、Ｓ２０３に戻って繰り返す。全てのスクリプトが処理されたら、終了する。ここで、回帰テストとセキュリティ診断テストとの両方を実行するページについて、例えば、フォームへの入力ページに対して、セキュリティ診断テストを実行した結果、フォームへの入力ページ以外の別のページに遷移する場合がある。その場合は、フォームへの入力ページに戻ってから、他のセキュリティ診断テストを実行するか、全てのセキュリティ診断テストが終了していれば、回帰テストを実行する。また、回帰テストとセキュリティ診断テストとの両方を実行するページでは、回帰テストを実行してから、セキュリティ診断テストを実行しても良い。ただし、その際も、回帰テストで、別のページに遷移した場合は、元のページに戻ってから、セキュリティ診断テストを実行する。
【００７６】
＜上記実施形態の変形例＞
図６と図７に、上記実施形態の変形実施例の構成を示す。
図６に示すように、セキュリティ診断システム１が、回帰テスト装置１０ａとセキュリティ診断テスト装置１０ｂを有し、各装置に、出力部１１、入力部１２、記憶部１３、制御部１４、通信部１７を備え、回帰テスト装置１０ａの制御部１２には、回帰テキスト実行手段１６を有し、セキュリティ診断テスト装置１０ｂの制御部１４には、セキュリティ診断テスト実行手段１５を有するように構成してよく、上記実施形態と同等の効果が得られる。
【００７７】
この構成で、第１の実施形態のように、回帰テストを終了してから、セキュリティ診断テストを実行する場合、回帰テスト装置１０ａに回帰テストの実行命令が入力され、セキュリティ診断テスト装置１０ｂに、セキュリティ診断テストの実行命令が入力され、それぞれの装置が独立にそれぞれのテストを実行するようにしてもよい。この場合、セキュリティ診断テスト装置１０ｂの記憶部１３にも、セキュリティ診断用データだけでなく、回帰テスト用スクリプトを記憶しておく。
【００７８】
また、この構成で、第２の実施形態のように、回帰テストでページにフォームの入力などの既定の条件を確認したごとにセキュリティ診断テストを実行する場合、セキュリティ診断テスト装置１０ｂが提供するＡＰＩ（Application Program Interface）を用いて、回帰テスト装置１０ａは、ページにフォームの入力などの既定の条件を確認すると、ネットワーク２０を経由してセキュリティ診断テスト装置１０ｂに実行命令を出し、セキュリティ診断テスト装置１０ｂからセキュリティ診断テストの診断結果を受け取るようにしてもよい。
【００７９】
また、図７に示すように、上記変形例（図６）のセキュリティ診断システム１の回帰テスト装置１０ａとセキュリティ診断テスト装置１０ｂが、ネットワーク２０を介して接続する記憶部１３を有する記憶装置２２を備えたシステムとなるように構成してもよい。この場合、回帰テスト装置１０ａとセキュリティ診断テスト装置１０ｂが、記憶部１３を有する記憶装置２２を共有するので、各装置がそれぞれ有する記憶部１３を省くことができる。この構成の場合、回帰テスト装置１０ａとセキュリティ診断テスト装置１０ｂが、回帰テスト用スクリプトのデータを共有することができるという効果がある。
【符号の説明】
【００８０】
１０    セキュリティ診断装置
１１    出力部
１２    入力部
１３    記憶部
１４    制御部
１５    セキュリティ診断テスト実行手段
１６    回帰テスト実行手段
１７    通信部
１８    ＨＴＴＰレスポンス受信手段
１９    ＨＴＴＰリクエスト送信手段
２０    ネットワーク
２１    診断対象Ｗｅｂサーバ
２２    記憶装置
【図１】
2016184194.tif 000003
【図２】
2016184194.tif 000004
【図３】
2016184194.tif 000005
【図４】
2016184194.tif 000006
【図５】
2016184194.tif 000007
【図６】
2016184194.tif 000008
【図７】
2016184194.tif 000009