(57)【特許請求の範囲】
【請求項１】
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるＷｅｂページを選別するための選別基準が定義されている選別基準情報を記憶する選別基準情報記憶部と、
疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を記憶するパラメタ情報記憶部と、
前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Ｗｅｂページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Ｗｅｂページを選別するＷｅｂページ選別部と、
前記Ｗｅｂページ選別部により選別された疑似攻撃対象Ｗｅｂページに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出し、抽出した疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施部とを有することを特徴とする情報処理装置。
【請求項２】
前記選別基準情報記憶部は、
Ｗｅｂページのカテゴリーが複数示され、カテゴリーごとに、各カテゴリーに属するＷｅｂページの特徴としてＷｅｂページ内のページ構成における特徴及び他のＷｅｂページとのリンクにおける特徴が示され、更に、Ｗｅｂアプリケーションにより提供される複数の取引フローが示され、取引フローごとに、各取引フローにおいて利用されるＷｅｂページのカテゴリーが示され、取引フローごとに、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されている選別基準情報を記憶し、
前記Ｗｅｂページ選別部は、
前記選別基準情報に示されているカテゴリーごとのページ構成における特徴及び他のＷｅｂページとのリンクにおける特徴に基づいて、各候補Ｗｅｂページを複数のカテゴリーのうちのいずれかのカテゴリーに分類し、候補Ｗｅｂページのカテゴリーの分類結果に基づき、前記複数の候補Ｗｅｂページが前記複数の取引フローのうちのいずれの取引フローに対応しているのかを判定し、判定した取引フローにおいて疑似改ざん攻撃の攻撃対象とされているカテゴリーに分類されたＷｅｂページを疑似攻撃対象Ｗｅｂページとして選別することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記選別基準情報記憶部は、
取引フローごとに、各取引フローにおいて利用されるＷｅｂページのカテゴリーと、カテゴリー間のリンク関係とが示され、取引フローごとに、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されている選別基準情報を記憶し、
前記Ｗｅｂページ選別部は、
各候補Ｗｅｂページを複数のカテゴリーのうちのいずれかのカテゴリーに分類した後に、前記複数の候補Ｗｅｂページの間のリンク関係を解析して、前記複数の候補Ｗｅｂページが前記複数の取引フローのうちのいずれの取引フローに対応しているのかを判定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記パラメタ情報記憶部は、
取引フローごとに疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を記憶しており、
前記疑似改ざん攻撃実施部は、
前記Ｗｅｂページ選別部により判定された取引フローに対応するパラメタを前記パラメタ情報から取得し、前記Ｗｅｂページ選別部により選別された疑似攻撃対象Ｗｅｂページに含まれているパラメタの中から、取得したパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出することを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記疑似改ざん攻撃実施部は、
前記Ｗｅｂページ選別部により選別された疑似攻撃対象Ｗｅｂページ内のｆｏｒｍタグに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタ抽出することを特徴とする請求項１〜４のいずれかに記載の情報処理装置。
【請求項６】
前記疑似改ざん攻撃実施部は、
前記Ｗｅｂページ選別部により選別された疑似攻撃対象Ｗｅｂページ内のｆｏｒｍタグごとに、ａｃｔｉｏｎ値で指定されているリンク先のＷｅｂページをリンク先としている他のＷｅｂページの存否を判断し、
前記リンク先のＷｅｂページをリンク先としている他のＷｅｂページが存在しないｆｏｒｍタグに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記疑似改ざん攻撃実施部は、
疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にした疑似攻撃対象Ｗｅｂページを、当該疑似攻撃対象Ｗｅｂページの提供元のＷｅｂサーバ装置に送信して、疑似改ざん攻撃を実施することを特徴とする請求項１〜６のいずれかに記載の情報処理装置。
【請求項８】
前記選別基準情報記憶部は、
改ざん攻撃があった場合の被害が他のＷｅｂページに比べて大きいと推測されるＷｅｂページが疑似改ざん攻撃の攻撃対象として選別される選別基準が定義されている選別基準情報を記憶しており、
前記パラメタ情報記憶部は、
改ざん攻撃があった場合の被害が他のパラメタに比べて大きいと推測されるパラメタが定義されているパラメタ情報を記憶していることを特徴とする請求項１〜７のいずれかに記載の情報処理装置。
【請求項９】
前記情報処理装置は、更に、
Ｗｅｂページに対する試験項目が複数示されている試験項目情報を入力し、
試験の対象となるＷｅｂページごとに、前記試験項目情報に示されている試験項目が対象としている対象属性が含まれているか否かを判断し、Ｗｅｂページに対象属性が含まれていない場合に当該対象属性に対応する試験項目を当該Ｗｅｂページに対する試験での試験実施項目から除外して、Ｗｅｂページごとに試験実施項目を決定する試験実施項目決定部とを有することを特徴とする請求項１〜８のいずれかに記載の情報処理装置。
【請求項１０】
前記試験実施項目決定部は、
試験の対象となるＷｅｂページの仕様書情報を参照して、Ｗｅｂページに対象属性が含まれているか否かを判断することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるＷｅｂページを選別するための選別基準が定義されている選別基準情報を、コンピュータが、所定の記憶領域から読み出す選別基準情報読み出しステップと、
疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を、前記コンピュータが、所定の記憶領域から読み出すパラメタ情報読み出しステップと、
前記コンピュータが、前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Ｗｅｂページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Ｗｅｂページを選別するＷｅｂページ選別ステップと、
前記コンピュータが、前記Ｗｅｂページ選別ステップにより選別された疑似攻撃対象Ｗｅｂページに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出し、抽出した疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施ステップとを有することを特徴とする情報処理方法。
【請求項１２】
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるＷｅｂページを選別するための選別基準が定義されている選別基準情報を、所定の記憶領域から読み出す選別基準情報読み出しステップと、
疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を、所定の記憶領域から読み出すパラメタ情報読み出しステップと、
前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Ｗｅｂページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Ｗｅｂページを選別するＷｅｂページ選別ステップと、
前記Ｗｅｂページ選別ステップにより選別された疑似攻撃対象Ｗｅｂページに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出し、抽出した疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施ステップとをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂページの改ざん攻撃に対する脆弱性を検査する技術に関する。
【背景技術】
【０００２】
通常、Ｗｅｂアプリケーションの開発では、一般的なアプリケーションの開発と同様、開発元において開発仕様に基づいて試験を行い、開発仕様どおりにＷｅｂアプリケーションが動作することを確認してからリリースされる。
昨今、Ｗｅｂアプリケーションの脆弱性を狙った攻撃による被害が増加する中、Ｗｅｂアプリケーションに対しては、開発仕様に基づいた機能の動作試験だけではなく、Ｗｅｂアプリケーションのセキュリティに関する試験も実施する必要性がでてきた。
一般には、この場合、Ｗｅｂアプリケーションの機能試験を完了した後、Ｗｅｂアプリケーションをインターネットへ公開する前に、セキュリティサービスベンダが提供するＷｅｂアプリケーション診断サービスを利用して、開発したＷｅｂアプリケーションにセキュリティの脆弱性がないことを確認する。
これは、Ｗｅｂアプリケーションのセキュリティ試験では、Ｗｅｂアプリケーションの脆弱性に関する専門的な知識が必要とされるため、Ｗｅｂアプリケーションの開発元では、十分な試験が行えないためである。
しかしながら、Ｗｅｂアプリケーションのセキュリティ試験は、Ｗｅｂアプリケーションが完成してからの実施となるため、仮に、Ｗｅｂアプリケーションに脆弱性が見つかった場合には、脆弱性を修正するための工期が別途かかってしまうことが課題であった。
【０００３】
上記の課題を解決するため、Ｗｅｂアプリケーション開発時の試験においてＷｅｂアプリケーションの脆弱性に関する専門的な知識がない開発元においても、セキュリティ試験を実施できるようにすることを目的とした従来技術として、システム仕様や設計書に記載されているブラウザ画面上の入力項目に関する項目属性（データ長・文字データ種類・データ範囲など）を予め仕様情報として設定しておくことによって、正常または異常系の評価データの生成、及び、試験の実施を自動で行えるようにしている技術がある（例えば、特許文献１）。
また、同様にシステム仕様や設計書の情報を予め設定しておき、設定した仕様書情報を基に、Ｗｅｂアプリケーションの応答メッセージに含まれる値が仕様書の定義と一致しているかどうかを自動で検査する方法も提案されている（例えば、特許文献２、特許文献３）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１１３９９３号公報
【特許文献２】特開２００８−１１２３００号公報
【特許文献３】特開２００８−２４２７３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のＷｅｂアプリケーションのセキュリティ試験では、Ｗｅｂアプリケーションから出力されるＷｅｂページに含まれるパラメタ値の改ざん攻撃に成功したとしても、そのパラメタ値が持つ意味やセキュリティ上の重要性が不明であったため、それが、後の処理においてセキュリティの不具合を引き起こすかどうかまでは検出できないことが課題としてある。
つまり、セキュリティ上の不具合を引き起こす重要なパラメタについて、改ざん攻撃に対する脆弱性検査を確実に実施すること必要であるが、従来技術では、重要なパラメタであっても改ざん攻撃に対する脆弱性検査から漏れてしまうという課題がある。
【０００６】
この発明は上記のような課題を解決することを主な目的としており、従来のＷｅｂアプリケーションのセキュリティ試験では実施できなかった、重要な意味を持つパラメタについての改ざん攻撃に対する脆弱性の検査を確実にできるようにし、Ｗｅｂアプリケーションのセキュリティ試験の精度向上を実現することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるＷｅｂページを選別するための選別基準が定義されている選別基準情報を記憶する選別基準情報記憶部と、
疑似改ざん攻撃の対象となるパラメタが疑似攻撃対象パラメタとして定義されているパラメタ情報を記憶するパラメタ情報記憶部と、
前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Ｗｅｂページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Ｗｅｂページを選別するＷｅｂページ選別部と、
前記Ｗｅｂページ選別部により選別された疑似攻撃対象Ｗｅｂページに含まれているパラメタの中から前記パラメタ情報に定義されている疑似攻撃対象パラメタに該当するパラメタを抽出し、抽出したパラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明では、疑似改ざん攻撃の攻撃対象となるＷｅｂページの選別基準が定義されている選別基準情報に基づき疑似攻撃対象Ｗｅｂページを選別し、また、疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報に基づき、疑似攻撃対象Ｗｅｂページに含まれているパラメタの中から疑似改ざん攻撃の対象となるパラメタを抽出し、抽出したパラメタのパラメタ値を改ざん値にして疑似改ざん攻撃を実施する。
このため、セキュリティ上の不具合を引き起こす重要なＷｅｂページを選別基準情報において定義し、また、セキュリティ上の不具合を引き起こす重要なパラメタをパラメタ情報において定義することにより、重要なＷｅｂページの重要なパラメタについて改ざん攻撃に対する脆弱性の検査を実施することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るＷｅｂアプリケーション自動試験装置の構成例を示す図。
【図２】実施の形態１に係る試験対象ページ情報ＤＢに記憶されているデータの例を示す図。
【図３】実施の形態１に係るＷｅｂページ画面遷移情報ＤＢに記憶されているデータの例を示す図。
【図４】実施の形態１に係るＷｅｂページ特徴情報ＤＢに記憶されているデータの例を示す図。
【図５】実施の形態１に係るＷｅｂページ構成要素ＤＢに記憶されているデータの例を示す図。
【図６】実施の形態１に係るＷｅｂページ種類特定部の動作例を示すフローチャート図。
【図７】実施の形態１に係るＷｅｂページ種類特定部の動作例を示すフローチャート図。
【図８】実施の形態１に係る取引フローパターンＤＢに記憶されているデータの例を示す図。
【図９】実施の形態１に係るＷｅｂページ重要度判定部の動作例を示すフローチャート図。
【図１０】実施の形態１に係るパラメタ属性ＤＢに記憶されているデータの例を示す図。
【図１１】実施の形態１に係る重要パラメタ特定部の動作例を示すフローチャート図。
【図１２】実施の形態１に係る重要パラメタ特定部の動作例を示すフローチャート図。
【図１３】実施の形態１に係るＷｅｂページ重要パラメタＤＢに記憶されているデータの例を示す図。
【図１４】実施の形態２に係るＷｅｂアプリケーション自動試験装置の構成例を示す図。
【図１５】実施の形態２に係る仕様書ＤＢに記憶されているデータの例を示す図。
【図１６】実施の形態２に係る評価項目決定部の動作例を示すフローチャート図。
【図１７】実施の形態２に係る評価項目決定部の動作例を示すフローチャート図。
【図１８】実施の形態１に係る脆弱性検査データＤＢに記憶されているデータの例を示す図。
【図１９】実施の形態１及び２に係るＷｅｂアプリケーション自動試験装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
本実施の形態では、従来のＷｅｂアプリケーションのセキュリティ試験では分からなかった、重要な意味を持つパラメタの改ざん攻撃成功を検出できるようにすることで、Ｗｅｂアプリケーションのセキュリティ試験の精度向上を実現する構成を説明する。
【００１１】
図１は、実施の形態１におけるＷｅｂアプリケーション自動試験装置の構成概要を示す図である。
【００１２】
図１において、１０１は、Ｗｅｂアプリケーション自動試験装置を表しており、１０２は、試験対象となるＷｅｂアプリケーション１３１が動作するＷｅｂサーバ装置（以下、単にＷｅｂサーバともいう）を表している。
Ｗｅｂアプリケーション自動試験装置１０１は、情報処理装置の例である。
【００１３】
また、図１において、試験対象ページ情報ＤＢ１１１は、試験対象となるＷｅｂアプリケーションが提供するＷｅｂページの情報を格納したデータベースである。
評価データ生成部１１２は、試験対象ページ情報ＤＢ１１１、Ｗｅｂアプリケーションのセキュリティ脆弱性を検査するための脆弱性検査データを格納した脆弱性検査データＤＢ１１３、Ｗｅｂアプリケーションのセキュリティ試験で行う一般的な評価項目を定義したセキュリティ評価項目一覧１１８からＷｅｂアプリケーションを試験するための評価データを生成する。
セキュリティ評価項目一覧１１８で定義される一般的な評価項目の例としては、ＳＱＬインジェクション、ＯＳコマンドインジェクション／ステルスコマンド、パス名やパラメタの未チェック／ディレクトリトラバーサル、セッション管理の不備／強制ブラウジング／セキュアモードでないクッキー、クロスサイトスクリプティング、クロスサイトリクエストフォージェリ、ＨＴＴＰヘッダインジェクション、メールの第三者中継、アクセス制御や認可制御の欠落、隠しフィールドの操作、パラメタの改ざん、バックドアとデバッグオプション、Ｃｏｏｋｉｅの濫用、不要な情報の開示、などがある。
【００１４】
生成された評価データは、評価データ送信部１１４からＷｅｂサーバ１０２で稼動しているＷｅｂアプリケーション１３１に送信され、その応答メッセージを、応答受信部１１５で受信する。
応答メッセージは、評価結果判定部１１６に送られ、そこで脆弱性の有無の判定を行い、判定結果を評価結果表示部１１７に表示する。
【００１５】
また、Ｗｅｂページ種類特定部１２２は、Ｗｅｂページ画面遷移情報ＤＢ１２０、Ｗｅｂページ特徴情報ＤＢ１２１、Ｗｅｂページ構成要素ＤＢ１２３の情報を基に、試験対象ページのＷｅｂページのカテゴリー（商品ページ、購入フォーム、確認ページ、決済完了ページ、ユーザ登録ページ、ユーザ情報表示・編集ページ、パスワード変更ページ、情報一覧ページなど）を特定する。
【００１６】
Ｗｅｂページ重要度判定部１２５は、Ｗｅｂページ種類特定部１２２で特定された試験対象ページのＷｅｂページのカテゴリー、Ｗｅｂページ画面遷移情報ＤＢ１２０、Ｗｅｂアプリケーションで提供される各取引フローのパターンを格納した取引フローパターンＤＢ１２４を基に、試験対象となる一連の取引フローにおける重要ページを特定する。
【００１７】
重要パラメタ特定部１２７は、Ｗｅｂページ間で渡されるパラメタのうち、改ざん攻撃が成功することによって、後の処理においてセキュリティの不具合を発生させる可能性のある重要なパラメタ（商品購入フローにおける、金額、ユーザ情報、クレジットカード番号など）を、取引フローごと重要となるパラメタ文字列を格納したパラメタ属性ＤＢ１２６の情報を参照して決定する。
【００１８】
Ｗｅｂページ重要度判定部１２５及び重要パラメタ特定部１２７によって特定された取引フロー（商品購入フロー、ユーザ登録フロー、ユーザパスワードの変更フローなど）における重要ページ、及び、重要ページに含まれる重要パラメタの情報は、Ｗｅｂページ重要パラメタＤＢ１２８に格納され、後の、評価結果判定部１１６における重要パラメタ改ざん攻撃の成否の判定で用いられる。
【００１９】
ここで、Ｗｅｂアプリケーション自動試験装置１０１の動作を詳細に説明する前に、Ｗｅｂアプリケーション自動試験装置１０１の動作の概要を説明する。
【００２０】
本実施の形態に係るＷｅｂアプリケーション自動試験装置１０１は、改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となる重要なＷｅｂページ（以下、疑似攻撃対象Ｗｅｂページともいう）を選別する。
つまり、本実施の形態に係るＷｅｂアプリケーション自動試験装置１０１は、疑似改ざん攻撃の攻撃対象の候補である複数の試験対象ページ（以下、候補Ｗｅｂページともいう）の中から疑似攻撃対象Ｗｅｂページを選別し、選別した疑似攻撃対象Ｗｅｂページ内のパラメタのうち疑似改ざん攻撃の対象となるパラメタ（以下、疑似攻撃対象パラメタともいう）を抽出し、抽出したパラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する。
疑似改ざん攻撃とは、Ｗｅｂアプリケーションの試験の一試験項目として実施される改ざん攻撃を模擬したテストであり、パラメタ値を改ざん値にしたＷｅｂページ（評価データ）をＷｅｂサーバ１０２に送信することである。
疑似改ざん攻撃により疑似攻撃対象Ｗｅｂページの改ざん攻撃に対する脆弱性を評価することができる。
疑似攻撃対象Ｗｅｂページは、例えば、改ざん攻撃があった場合の被害が他のＷｅｂページに比べて大きいと推測されるＷｅｂページである。
また、疑似改ざん攻撃の対象となるパラメタも、例えば、改ざん攻撃があった場合の被害が他のパラメタに比べて大きいと推測されるパラメタである。
【００２１】
Ｗｅｂページ特徴情報ＤＢ１２１、Ｗｅｂページ構成要素ＤＢ１２３、取引フローパターンＤＢ１２４には、疑似攻撃対象Ｗｅｂページを選別するための選別基準が定義されている。
より具体的には、Ｗｅｂページ特徴情報ＤＢ１２１には、Ｗｅｂページのカテゴリー（商品ページ、購入フォーム、確認ページ等）が複数示され、カテゴリーごとに、各カテゴリーに属するＷｅｂページのページ構成における特徴及び他のＷｅｂページとのリンクにおける特徴が示されるデータが格納されている。
また、Ｗｅｂページ構成要素ＤＢ１２３には、Ｗｅｂページのリンク先ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）に出現する可能性のある文字列が示されるデータが格納されている。
更に、取引フローパターンＤＢ１２４には、Ｗｅｂアプリケーションにより提供される複数の取引フロー（商品購入フロー、ユーザ登録フロー、ユーザパスワードの変更フローなど）が示され、取引フローごとに、各取引フローにおいて利用されるＷｅｂページのカテゴリーが示され、取引フローごとに、重要ページのカテゴリー、つまり、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されるデータが格納されている。
詳細は、後述するが、Ｗｅｂページ特徴情報ＤＢ１２１には、例えば図４に示すデータが記憶されており、Ｗｅｂページ構成要素ＤＢ１２３には、例えば図５に示すデータが記憶されており、取引フローパターンＤＢ１２４には、例えば図８に示すデータが記憶されている。
なお、Ｗｅｂページ特徴情報ＤＢ１２１、Ｗｅｂページ構成要素ＤＢ１２３、取引フローパターンＤＢ１２４に記憶されているデータは、疑似攻撃対象Ｗｅｂページを選別するための選別基準を定義しており、選別基準情報の例に相当する。
また、Ｗｅｂページ特徴情報ＤＢ１２１、Ｗｅｂページ構成要素ＤＢ１２３、取引フローパターンＤＢ１２４は、選別基準情報記憶部の例に相当する。
【００２２】
Ｗｅｂページ種類特定部１２２は、Ｗｅｂページ特徴情報ＤＢ１２１に示されているカテゴリーごとのページ構成における特徴及び他のＷｅｂページとのリンクにおける特徴に基づいて、各候補Ｗｅｂページを複数のカテゴリーのうちのいずれかのカテゴリーに分類する。
つまり、ＷｅｂページＡは商品ページ、ＷｅｂページＢは購入フォーム、ＷｅｂページＣは確認ページというように各候補Ｗｅｂページを該当するカテゴリーに分類する。
また、Ｗｅｂページ重要度判定部１２５は、取引フローパターンＤＢ１２４の取引フローパターンとＷｅｂページ種類特定部１２２による候補Ｗｅｂページのカテゴリーの分類結果に基づき、複数の候補Ｗｅｂページが複数の取引フローのうちのいずれの取引フローに対応しているのかを判定する。
また、Ｗｅｂページ重要度判定部１２５は、取引フローパターンＤＢ１２４の取引フローパターンに基づき、判定した取引フローにおける重要ページ（すなわち、疑似攻撃対象Ｗｅｂページ）を選別する。
前述したように、取引フローパターンには、重要ページのカテゴリー、つまり、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されている。
このため、Ｗｅｂページ重要度判定部１２５は、取引フローパターンを参照し、判定した取引フローについて疑似改ざん攻撃の攻撃対象とされているカテゴリーに分類されたＷｅｂページを疑似攻撃対象Ｗｅｂページとして選別する。
なお、Ｗｅｂページ種類特定部１２２とＷｅｂページ重要度判定部１２５は、Ｗｅｂページ選別部の例である。
また、Ｗｅｂページ種類特定部１２２とＷｅｂページ重要度判定部１２５による重要ページの選別処理は、Ｗｅｂページ選別ステップに相当する。
また、Ｗｅｂページ種類特定部１２２によるＷｅｂページ特徴情報ＤＢ１２０の情報及びＷｅｂページ構成要素ＤＢ１２３の情報の読み出し処理、Ｗｅｂページ重要度判定部１２５による取引フローパターンＤＢ１２４の情報の読み出し処理は、選別基準情報読み出しステップに相当する。
【００２３】
パラメタ属性ＤＢ１２６には、重要パラメタ、つまり、疑似改ざん攻撃の対象となるパラメタが定義されているデータが格納されている。
パラメタ属性ＤＢ１２６に格納されているデータはパラメタ情報の例であり、パラメタ属性ＤＢ１２６はパラメタ情報記憶部の例に相当する。
【００２４】
重要パラメタ特定部１２７は、Ｗｅｂページ重要度判定部１２５により選別された疑似攻撃対象Ｗｅｂページに含まれているパラメタの中からパラメタ属性ＤＢ１２６で定義されている重要パラメタに該当するパラメタを抽出する。
重要パラメタに該当するとして抽出されたパラメタは疑似攻撃対象パラメタの例に相当する。
また、評価データ生成部１１２と評価データ送信部１１４は、疑似改ざん攻撃を実施する。
具体的には、評価データ生成部１１２が、重要パラメタ特定部１２７により抽出されたパラメタのパラメタ値を所定の改ざん値にしたＷｅｂページ（評価データ）を生成し、評価データ送信部１１４が、評価データをＷｅｂサーバ１０２に送信する。
重要パラメタ特定部１２７、評価データ生成部１１２及び評価データ送信部１１４は、疑似改ざん攻撃実施部の例に相当する。
なお、重要パラメタ特定部１２７、評価データ生成部１１２及び評価データ送信部１１４による重要パラメタの抽出処理、疑似改ざん攻撃の実施処理は、疑似改ざん攻撃実施ステップに相当する。
また、重要パラメタ特定部１２７によるパラメタ属性ＤＢ１２６からの情報の読み出し処理は、パラメタ情報読み出しステップに相当する。
【００２５】
次に、図面を参照して、本実施の形態に係るＷｅｂアプリケーション自動試験装置１０１の動作を詳細に説明する。
【００２６】
まず、準備として、Ｗｅｂアプリケーションによって提供されるＷｅｂページの一覧の取得と、それらの画面遷移情報の生成を行う。
また、Ｗｅｂアプリケーション１３１によって提供されるＷｅｂページ一覧は、試験実施者が手動でＷｅｂアプリケーションにアクセスして収集してもよいし、自動でＷｅｂページ一覧を収集する技術（Ｗｅｂクローリング技術）を用いて収集してもよい。
Ｗｅｂページの画面遷移情報に関しては、収集したＷｅｂページのＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記載されているページのリンク関係を抽出することで、各ページを頂点とし、リンク関係をエッジとした有向グラフで生成する。
抽出したＷｅｂページの画面遷移情報は、Ｗｅｂページ画面遷移情報ＤＢ１２０に格納しておく。
【００２７】
図２に、Ｗｅｂアプリケーション１３１によって提供されるＷｅｂページの一覧を格納しておく、試験対象ページ情報ＤＢ１１１の構造（２００）を示す。
図２では、試験対象ページのＵＲＬ、Ｗｅｂアプリケーション１３１への送信メッセージと、送信メッセージに対するＷｅｂアプリケーション１３１からの応答メッセージ（Ｗｅｂページ）を関連付けて保存しておく。
【００２８】
図３に、Ｗｅｂページ画面遷移情報ＤＢ１２０の構造（３００）を示す。
図３では、試験対象ページＵＲＬに対する、リンク元ＵＲＬ、及び、リンク先ＵＲＬが格納されている。
複数のリンク元ＵＲＬからリンクされている試験対象ページのＵＲＬに関しては、リンク元ＵＲＬが異なる複数の行が格納される。
複数のリンク先ＵＲＬを持つ試験対象ページＵＲＬに関しても同様である。
Ｗｅｂページ画面遷移情報ＤＢ１２０の情報を基に、試験対象ページのＵＲＬのリンク関係を有向グラフで抽出できる。
【００２９】
次に、評価結果判定部１１６において重要パラメタ（疑似攻撃対象パラメタ）の改ざん攻撃の成否を判定するために用いるＷｅｂページ重要パラメタＤＢ１２８に格納されている、重要ページ（疑似攻撃対象Ｗｅｂページ）と重要ページに含まれる重要パラメタを決定する方法について説明する。
【００３０】
Ｗｅｂページ種類特定部１２２では、Ｗｅｂページ特徴情報ＤＢ１２１に格納されているＷｅｂページの種類を特定するための特徴情報、及び、Ｗｅｂページ構成要素ＤＢ１２３に格納されているＷｅｂページの構成要素を特定するための構成要素特定文字列を基に、読み込んだＷｅｂページ（候補Ｗｅｂページ）の種類（カテゴリー）を特定する。
Ｗｅｂページの種類としては、例えば、商品取引であれば、商品情報表示ページ、購入のための購入フォーム入力ページ、購入フォーム入力で入力した値の確認ページ、購入決済完了ページなどがある。
それぞれのページには種類を示す特徴がある。
【００３１】
図４に、Ｗｅｂページ特徴情報ＤＢ１２１の構造（４００）を示す。
なお、図４では説明を簡単にするため、各Ｗｅｂページ種類別の特徴を文章で記載しているが、実際には、コンピュータで処理しやすいよう、条件式や数値によって記述するものとする。
Ｗｅｂページの種類を示す特徴としては、例えば、購入決済完了ページであれば、トップページからのリンク経路が長い傾向にある。
また、購入決済完了ページには、例えば、印刷ボタンが表示されている、結果を送信するためのメールアドレス入力がある、購入後アンケート入力画面へのリンクがあるといった構成要素の存在が考えられる。
これらの各構成要素にスコアをつけておき、ページを構成する要素のスコアを加算していき、得られたスコアが予め定められた閾値を超えた場合に、購入決済完了ページであると特定する。
なお、判定で用いる閾値は、ページ種類ごとに設定してもよいし、ページ種類間で同一の閾値としてもよい。
【００３２】
また、図５に、Ｗｅｂページ構成要素ＤＢ１２３の構造（５００）を示す。
図５に示すように、構成要素ごとに構成要素特定文字列が定義されており、試験対象ページのリンク先ＵＲＬ（構成要素）に、構成要素特定文字列と一致する文字列があった場合に、その構成要素名を特定できる。
ＵＲＬに関しては、その主たるコンテンツに関係した文字列がＵＲＬに表れる可能性が高い。
例えば、印刷ページへのＵＲＬであれば、印刷に最適なページ整形を行うコンテンツが主たるコンテンツとなるため、印刷に関連した文字列（例えば、ｐｒｉｎｔ、ｏｕｔｐｕｔなど）の文字列がＵＲＬに含まれている可能性が高い。
このような、ＵＲＬに現れる主たるコンテンツに関連した文字列を手がかりに、試験対象ページの構成要素を特定する。
なお、図５に示すように、構成要素特定文字列は、正規表現を用いて定義してもよい。
正規表現を用いることにより、類似した複数の構成要素特定文字列をまとめて定義できるため、Ｗｅｂページ構成要素ＤＢ１２３に格納しておくデータ量を削減できる。
【００３３】
次に、Ｗｅｂページ種類特定部１２２の動作について詳細を説明する。
図６及び図７に、Ｗｅｂページ種類特定部１２２の処理のフローチャートを示す。
【００３４】
Ｗｅｂページ種類特定部１２２では、最初に、試験対象ページ情報ＤＢ１１１に格納されている、Ｗｅｂアプリケーション１３１からの応答メッセージ（Ｗｅｂページ）を１つ読み込む（Ｓ６０１）。
次に、Ｗｅｂページ種類特定部１２２は、試験対象ページ（候補Ｗｅｂページ）のＵＲＬを基に、Ｗｅｂページ画面遷移情報ＤＢ１２０を参照して、ＴＯＰページからのリンクの長さを計算する（Ｓ６０２）。
このとき複雑な画面遷移の構造をもつＷｅｂアプリケーションでは冗長な経路やループが発生する場合がある。
これらに関しては、最短の経路を探索する既存の技術が応用できる。
例えば、ダイクストラ法などが有名である。
次に、Ｗｅｂページ種類特定部１２２は、得られたＴＯＰページからのリンクの長さを基に、Ｗｅｂページ特徴情報ＤＢ１２１の情報を読み出し、リンクの長さが条件と一致するＷｅｂページ種類を検索する（Ｓ６０３）。
リンクの長さの特徴に当てはまるＷｅｂページ種類が検索で抽出された場合は、特徴の当てはまるＷｅｂページ種類のスコアを加算する（Ｓ６０４、Ｓ６０５）。
次に、Ｗｅｂページ種類特定部１２２は、Ｗｅｂページ画面遷移情報ＤＢ１２０から試験対象ページのリンク先ＵＲＬを抽出し（Ｓ６０６）、リンク先を１つ選択し（Ｓ６０７）、抽出したリンク先ＵＲＬの文字列を基にＷｅｂページ構成要素ＤＢ１２３を検索し、該当する情報を読み出し、試験対象ページの構成要素を特定する（Ｓ６０８）。
次に、Ｗｅｂページ種類特定部１２２は、Ｗｅｂページ画面遷移情報ＤＢ１２０から抽出した全てのリンク先ＵＲＬについて構成要素を特定する（Ｓ６０９）。
【００３５】
次に、Ｗｅｂページ種類特定部１２２は、特定した構成要素から１つを選択し（Ｓ６１０）、Ｗｅｂページ特徴情報ＤＢ１２１を検索（Ｓ６１１）した結果として、構成要素の特徴が当てはまるＷｅｂページ種類が存在した場合には、特徴の当てはまるＷｅｂページ種類にスコアを加算する（Ｓ６１２、Ｓ６１３）。
Ｓ６０９で特定した試験対象ページの構成要素全てに関してＷｅｂページ特徴情報ＤＢ１２１を検索して、Ｗｅｂページ種類のスコアについて加算が完了（Ｓ６１４）した後に、仮に、スコアが加算されたＷｅｂページ種類が１つも存在しなかった場合は、Ｗｅｂページ種類特定部１２２は、Ｓ６０１で読み込んだ試験対象ページに関するＷｅｂページ種類は不明と判定する（Ｓ６１５、Ｓ６１６）。
スコアが加算されたＷｅｂページ種類が１つでも存在した場合、Ｗｅｂページ種類特定部１２２は、そのスコアが閾値を超えているかどうかを判断する（Ｓ６１７）。
スコアが閾値を超えたＷｅｂページ種類がただ１つであった場合、試験対象ページは、そのＷｅｂページ種類であると判定する（Ｓ６１８、Ｓ６２２）。
閾値を超えたＷｅｂページ種類が複数あった場合、及び、閾値を超えたＷｅｂページ種類が無かった場合は、スコアの大きさからＷｅｂページ種類を判定する。
仮に、スコアの最高値を持つＷｅｂページ種類が複数同じスコアであった場合には、試験対象ページは、複数のＷｅｂページ種類の特徴を持つものと判定する（Ｓ６１９、Ｓ６２０、Ｓ６２２）。
また、スコアの最高値を持つＷｅｂページ種類がただ１つであった場合、その試験対象ページのＷｅｂページ種類として判定する（Ｓ６１９、Ｓ６２１、Ｓ６２２）。
最終的に、試験対象ページ情報ＤＢ１１１に含まれる全ての試験対象ページに対して、Ｗｅｂページ種類が特定できた場合に処理を終了する（Ｓ６２３）。
【００３６】
例えば、購入決済完了ページが特定された場合、購入決済完了ページへリンクしているページを確認ページ、また、確認ページへリンクしているページは、購入フォーム入力ページ、購入フォーム入力ページへリンクしているページは、商品情報表示ページ、というようにリンクをさかのぼって、各Ｗｅｂページの種類を特定していくことも可能である。
さらに、各ページの種類は、ページのタイトルにも特徴が表れたり、確認ページではＣＳＲＦ（Ｃｒｏｓｓ  Ｓｉｔｅ  Ｒｅｑｕｅｓｔ  Ｆｏｒｇｅｒｉｅｓ）対策のための乱数を値にもつパラメタが含まれていたりといった特徴もあるため、これらの情報も併用することによって、Ｗｅｂページの種類を特定する精度が向上する。
【００３７】
次に、Ｗｅｂページ重要度判定部１２５の動作について説明する。
Ｗｅｂページ重要度判定部１２５は、Ｗｅｂアプリケーションで提供される各取引フローのパターンを格納した取引フローパターンＤＢ１２４を基に、試験対象となる一連の取引フローにおける重要ページを特定する。
【００３８】
図８に、取引フローパターンＤＢ１２４の構造（７００）を示す。
図８に示すように、Ｗｅｂページのリンク元、及び、リンク先の情報を下に、取引フローパターンごとにページのリンクパターン、取引フローパターンにおいて重要なページに対する重要フラグが定義されている。
【００３９】
取引フローパターンＤＢ１２４では、取引フローにおいて重要なページには、重要フラグが設定されている（図８の確認ページ）。
例えば、商品購入フローにおいては、最終的に購入決済完了ページへ遷移する確認ページが重要である。
なぜなら、確認ページから購入決済完了ページへ送信されるパラメタは、そのまま購入決済の処理に利用される可能性があるため、確認ページから購入決済完了ページへ送信されるパラメタが改ざんされた場合、適切な処理を行っていなければ、改ざんされた値で決済処理が行われてしまう危険性がある。
したがって、Ｗｅｂページ重要度判定部１２５は、この各取引フローにおける重要フラグの情報を基に、確認ページを意味する試験対象ページを重要ページ（疑似攻撃対象Ｗｅｂページ）として特定する。
【００４０】
図９に、Ｗｅｂページ重要度判定部１２５における重要ページの特定処理を表すフローチャートを示す。
図９を用いて、Ｗｅｂページ重要度判定部１２５の処理を説明する。
【００４１】
Ｗｅｂページ重要度判定部１２５では、まず、Ｗｅｂページ種類特定部１２２の出力である、試験対象ページのＷｅｂページ種類特定結果から、試験対象ページのＵＲＬと、そのＷｅｂページ種類を選択する（Ｓ８０１）。
次に、Ｗｅｂページ重要度判定部１２５は、試験対象ページのＵＲＬを基に、Ｗｅｂページ画面遷移情報ＤＢ１２０を検索して、試験対象ページのリンク元ＵＲＬとリンク先ＵＲＬを取得する（Ｓ８０２）。
次に、Ｗｅｂページ重要度判定部１２５は、リンク元ＵＲＬとリンク先ＵＲＬのＷｅｂページ種類を、Ｗｅｂページ種類特定部１２２の出力から特定し、それらと、試験対象ページのＷｅｂページ種類を基に、取引フローパターンＤＢ１２４の情報を検索し、取引フローパターンと重要フラグを取得する（読み出す）（Ｓ８０３）。
取引パターンが特定された場合（Ｓ８０４）、Ｗｅｂページ重要度判定部１２５は、試験対象ページ、取引フローパターン、重要フラグを取引フロー特定結果として記憶する（Ｓ８０５）。
全ての試験対象ページについて、取引フローパターンの特定の処理を完了した場合、Ｗｅｂページ重要度判定部１２５は、取引フローパターンの特定結果から、重要フラグが１である試験対象ページを、取引フロー上重要ページとして抽出し、取引フローパターンと重要ページ（複数可）を、重要ページ特定結果として出力して処理を終了する（Ｓ８０６、Ｓ８０７、Ｓ８０８）。
【００４２】
Ｗｅｂページ重要度判定部１２５では、例えば、商品情報表示ページ、購入フォーム入力ページ、確認ページ、購入決済完了ページが順にリンクされている取引フローパターンは、商品購入フローであると特定する。
【００４３】
次に、重要パラメタ特定部１２７の動作について説明する。
重要パラメタ特定部１２７では、Ｗｅｂページ重要度判定部１２５の出力である、重要ページ特定結果に含まれる、取引フローパターンと重要ページからパラメタ属性ＤＢ１２６を参照して、重要パラメタ（疑似攻撃対象パラメタ）を特定する。
【００４４】
重要パラメタ（疑似攻撃対象パラメタ）とは、その後の処理においてセキュリティの不具合を引き起こす可能性のある値が設定されたＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）のｆｏｒｍタグ内の変数を指す。
したがって重要パラメタが存在する試験対象ページには、少なくとも１つのｆｏｒｍタグが存在する。
ｆｏｒｍタグ内の変数は、次の画面へ遷移する際に、Ｗｅｂアプリケーションに送られ処理される。
【００４５】
図１０にパラメタ属性ＤＢ１２６の構成（９００）を示す。
図１０に示すように、取引フローごとに、重要なパラメタ文字列が定義されている。
なお、図１０に示すように、重要パラメタ文字列は、正規表現を用いて定義してもよい。
正規表現を用いることにより、類似した複数のパラメタ名をまとめて定義できるため、パラメタ属性ＤＢ１２６に格納しておくデータ量を削減できる。
【００４６】
重要パラメタ特定部１２７では、まず、Ｗｅｂページ重要度判定部１２５によって特定された取引フローを基にパラメタ属性ＤＢ１２６を検索し、重要パラメタ文字列を取得する。
【００４７】
図１１及び図１２に、重要パラメタ特定部１２７における重要パラメタの特定処理を表すフローチャートを示す。
図１１及び図１２を用いて、重要パラメタ特定部１２７の処理を説明する。
【００４８】
重要パラメタ特定部１２７では、まず、Ｗｅｂページ重要度判定部１２５によって特定された重要ページに複数のｆｏｒｍタグがあるかどうか判断する（Ｓ１００１）。
重要ページに複数のｆｏｒｍタグが含まれている場合には、その中から１つのｆｏｒｍタグを選択する（Ｓ１００２）。
次に、重要パラメタ特定部１２７は、選択したｆｏｒｍタグ内のａｃｔｉｏｎ（リンク先ページ）の値を基に、Ｗｅｂページ画面遷移情報ＤＢ１２０を参照し、リンク先ページへリンクしている全てのページを抽出する（Ｓ１００３）。つまり、リンク先ページをリンク先としている他のＷｅｂページの存否を判断する。
抽出した結果、リンク先ページへリンクしているページが複数あった場合（当該リンク先ページをリンク先としている他のＷｅｂページが存在する場合）、当該リンク先ページは広告ページや検索ページといった、取引フローとは関係のないリンクであると判断し、次のｆｏｒｍタグを選択する（Ｓ１００４）。
重要パラメタ特定部１２７は、Ｓ１００２からＳ１００４の処理を繰り返し、重要ページのみからリンクされているページへのｆｏｒｍタグ（つまり、リンク先のＷｅｂページにリンクしている他のＷｅｂページが存在しないｆｏｒｍタグ）を特定する。
なお、重要ページには、重要パラメタを含むｆｏｒｍタグからのみ遷移するページが必ず１つ存在するため、Ｓ１００２からＳ１００４のループは、必ず終了する。
重要ページにｆｏｒｍタグが１つしかなかった場合、及び、Ｓ１００２からＳ１００４の処理によって、重要ページにこのページからのみリンクされたページへのリンクを持つｆｏｒｍが特定された場合、Ｓ１００５の処理に移る。
Ｓ１００５では、重要パラメタ特定部１２７は、Ｗｅｂページ重要度判定部１２５で特定された、取引フローパターンを基に、パラメタ属性ＤＢ１２６を検索し、重要パラメタ文字列を抽出する（読み出す）。
【００４９】
次に、重要パラメタ特定部１２７は、重要ページのｆｏｒｍ内に含まれているパラメタを１つ選択（Ｓ１００６）し、選択したｆｏｒｍタグ内のパラメタ名と重要パラメタ文字列を比較する（Ｓ１００７）。
比較の結果、重要パラメタ文字列と一致するパラメタ名がｆｏｒｍタグ内に存在した場合、そのパラメタを重要パラメタとして記憶する（Ｓ１００８）。
重要パラメタ特定部１２７は、ｆｏｒｍタグ内に存在する全てのパラメタ名について比較を行った後に（Ｓ１００９）、比較の結果得られた重要パラメタ（複数可）を出力する（Ｓ１０１０）。
出力された、重要ページのＵＲＬ、重要パラメタが含まれているｆｏｒｍタグのａｃｔｉｏｎの値、重要パラメタはＷｅｂページ重要パラメタＤＢ１２８に格納される（Ｓ１０１１）。
【００５０】
図１３に、Ｗｅｂページ重要パラメタＤＢ１２８の構造（１１００）を示す。
Ｗｅｂページ重要パラメタＤＢ１２８では、重要ページのＵＲＬ、重要パラメタを含むｆｏｒｍタグに設定されたａｃｔｉｏｎの値（リンク先ページ）、重要パラメタのパラメタ名を重要パラメタのパラメタ名別に関連付けて保存しておく。
これらの情報は、後の、評価結果判定部１１６において参照され、重要パラメタに関する改ざん攻撃の成否の判定で用いられる。
【００５１】
試験対象ページに含まれる全ての重要ページについて、Ｗｅｂページ重要パラメタＤＢ１２８への重要パラメタの特定が完了した後に、Ｗｅｂアプリケーション自動試験装置１０１は、Ｗｅｂサーバ１０２上で動作するＷｅｂアプリケーション１３１の試験を開始する。
試験は、試験対象ページ情報ＤＢ１１１、及び、脆弱性検査データＤＢ１１３の情報を基に、評価データ生成部１１２において、試験対象ページに対して、セキュリティ評価項目一覧１１８に記載された全ての試験を実施するために必要な評価データを生成するところから始まる。
【００５２】
図１８に、脆弱性検査データＤＢ１１３の構造（１５００）を示す。
図１８に示すように、脆弱性検査データＤＢ１１３では、試験項目と、その試験項目を検査するために用いられる脆弱性検査データが対応づけられて格納されている。
評価データ生成部１１２は、脆弱性検査データＤＢ１１３で定義されている試験項目、脆弱性検査データに基づいて、重要ページの重要パラメタの値を改ざん値に変更して評価ページを生成する。
例えば、図１３の重要パラメタ名に含まれるｐｒｏｄｕｃｔＩＤに対して、評価データ生成部１１２は、現実には存在しない商品名を設定したＷｅｂページを評価データとして生成する。
評価データの作成が完了した後、評価データ送信部１１４によって、作成された評価データが試験対象ページ別に、試験対象ページの提供元であるＷｅｂアプリケーション１３１に対して送信される。
送信した評価データに対するＷｅｂアプリケーションからの応答メッセージは、応答受信部１１５で受信する。
【００５３】
評価結果判定部１１６では、応答受信部１１５で受信した応答メッセージと、試験対象ページ情報ＤＢ１１１に格納されているＷｅｂアプリケーション１３１へ正常にアクセスした際のＷｅｂアプリケーション１３１からの応答メッセージとを比較し、送信した評価データによって、Ｗｅｂアプリケーション１３１の応答メッセージに変化が見られたかどうか判定する。
【００５４】
なお、上述した、評価データ生成部１１２での評価データの作成処理、作成した評価データをＷｅｂアプリケーション１３１に送信する評価データ送信部１１４の処理、Ｗｅｂアプリケーション１３１からの応答を受信する応答受信部１１５の処理、応答受信部１１５で受信したＷｅｂアプリケーション１３１からの応答メッセージを判定する評価結果判定部１１６における、重要パラメタ改ざん攻撃成功の判定処理以外の処理は、既存技術として様々な手法が公開されており、本実施の形態においても既存技術と同様の実装が行われているものとする。
【００５５】
評価結果判定部１１６において、パラメタが改ざんされた評価データを送信した場合のＷｅｂアプリケーション１３１の応答メッセージが、Ｗｅｂページ画面遷移情報ＤＢ１２０に格納されているＷｅｂアプリケーション１３１の遷移情報と比較した結果、エラーページなど正常ページとは異なるページへ遷移しなかった場合、疑似改ざん攻撃が成功した可能性がある。
この場合、評価結果判定部１１６では、Ｗｅｂページ重要パラメタＤＢ１２８を参照し、疑似改ざん攻撃に成功したパラメタが重要パラメタかどうか判定する。
つまり、重要パラメタを改ざんした評価データに対するＷｅｂアプリケーション１３１からの応答がエラーページ等のＷｅｂアプリケーション１３１において異常を検知したことが示される応答ではない場合には、重要パラメタを改ざんした疑似改ざん攻撃が成功したと判定する。
疑似改ざん攻撃に成功したパラメタが、重要パラメタであった場合には、セキュリティ上重要なパラメタの改ざん攻撃に成功したものとして検出する。
それ以外は、改ざんされてもセキュリティ上のリスクが低いパラメタか、改ざんされたパラメタをＷｅｂアプリケーション１３１が検出し、エラー処理したことを意味するため、改ざん攻撃の成功とは見なさない。
最終的に、評価結果判定部１１６で判定された結果は、評価結果表示部１１７に表示され、ユーザへ通知される。
【００５６】
以上のように、本実施の形態では、試験対象ページの種類をＷｅｂページの特徴情報を基に特定して、特定したＷｅｂページの前後関係から、取引フローパターン情報を基に、Ｗｅｂ取引フローの種別を特定し、特定した取引フローに対してセキュリティ上重要なＷｅｂページを特定するとともに、パラメタ値に改ざん攻撃が発生した場合にその後の処理においてセキュリティの不具合を引き起こす可能性のある重要パラメタを予め特定しておく。
このため、これまでは、難しかった重要なパラメタの改ざん攻撃の成否を検出することができる。
また、重要パラメタの特定では、重要ページに複数のｆｏｒｍタグがあった場合であっても正確に重要なパラメタを特定可能である。
これにより、Ｗｅｂアプリケーションの試験において、セキュリティ試験精度が向上する。
【００５７】
以上、本実施の形態では、
試験対象ページの種類を、Ｗｅｂページの特徴情報を基に特定する手段と、特定したＷｅｂページの前後関係から、取引フローパターン情報を基に、Ｗｅｂ取引フローの種別を特定する手段と、特定した取引フローに対してセキュリティ上重要なＷｅｂページを特定する手段と、パラメタ値の改ざん攻撃が発生した場合にその後の処理においてセキュリティの不具合を引き起こす可能性のある重要なパラメタを特定する手段と、重要なパラメタの改ざん攻撃の成否を検査する手段とを備えた、Ｗｅｂアプリケーション自動試験装置を説明した。
【００５８】
実施の形態２．
以上の実施の形態１では、試験対象であるＷｅｂアプリケーションが出力するＷｅｂページにおける重要ページを特定し、その重要ページに含まれる重要パラメタを特定しておくことにより、重要パラメタの改ざん攻撃の成否を検出するようにしたものであるが、次に、試験を効率的に実施する場合の形態を示す。
【００５９】
図１４は、実施の形態２におけるＷｅｂアプリケーション自動試験装置１０１の構成概要を示す図である。
図１４において、仕様書ＤＢ１２０１は、ユーザが入力したＷｅｂアプリケーションの仕様書情報を格納しておくデータベースである。
評価項目決定部１２０２は、試験対象ページ情報ＤＢ、仕様書ＤＢ１２０１、Ｗｅｂアプリケーションのセキュリティ試験で行う一般的な評価項目を定義したセキュリティ評価項目一覧１１８の情報を基に、試験で実施する評価項目を自動で決定する。
より具体的には、評価項目決定部１２０２は、Ｗｅｂページに対する評価項目（試験項目）が複数示されているセキュリティ評価項目一覧１１８（試験項目情報の例）を入力し、仕様書情報を参照して、試験対象ページごとに、セキュリティ評価項目一覧１１８に示されている評価項目（試験項目）が対象としている対象属性が含まれているか否かを判断する。
そして、試験対象ページに対象属性が含まれていない場合に当該対象属性に対応する評価項目を当該試験対象ページに対する試験での実施項目（試験実施項目）から除外して、試験対象ページごとに実施項目を決定する。
なお、評価項目決定部１２０２は試験実施項目決定部の例である。
なお、符号１１１から１３１は、図１の構成と同様であるため説明を省略する。
【００６０】
次に動作について説明する。
まず、実施の形態１で説明したＷｅｂページ重要パラメタＤＢ１２８への情報の出力（図１２のＳ１０１１）までの一連の処理は既に完了しているものとする。
ユーザは、Ｗｅｂアプリケーションの試験を開始する際に、ユーザインタフェースから、Ｗｅｂアプリケーションの仕様情報を入力する。
入力されたＷｅｂアプリケーションの仕様情報は、仕様書ＤＢ１２０１に格納される。
【００６１】
図１５に、仕様書ＤＢの構造と、ユーザが入力するＷｅｂアプリケーションの仕様書情報の例を示す（１３００）。
図１５に示すように、仕様書情報には、試験対象ページごとに、試験対象ページに設定されている属性が示される。
なお、設定項目にＤＢと記述されている試験対象ページは、ＤＢアクセスを行うという属性を有する。
また、設定項目にＰＡＲＡＭと記述され、タイプにｈｉｄｄｅｎと記述されている試験対象ページは、ｈｉｄｄｅｎパラメタが存在するという属性を有する。
また、設定項目にＳＳＬと記述されている試験対象ページは、ＳＳＬ通信を行うという属性を有する。
また、設定項目にＣＯＯＫＩＥと記述されている試験対象ページは、Ｃｏｏｋｉｅを用いるという属性を有する。
また、設定項目にＭＡＩＬと記述されている試験対象ページは、電子メール送信を行うという属性を有する。
【００６２】
次に、評価項目決定部１２０２では、仕様書ＤＢ１２０１、及び、試験対象ページ情報ＤＢ１１１の情報を基に、セキュリティ評価項目一覧１１８から、ページごと試験する項目を自動で決定する。
【００６３】
図１６及び図１７に、評価項目決定部１２０２における動作のフローチャートを示す。
図１６及び図１７を用いて、評価項目決定部１２０２における動作を説明する。
【００６４】
評価項目決定部１２０２では、まず、試験対象ページ情報ＤＢ１１１を参照し、試験対象ページの一覧を取得する（Ｓ１４０１）。
次に、評価項目決定部１２０２は、取得した試験対象ページの一覧から、試験対象ページを１つ選択する（Ｓ１４０２）。
次に、評価項目決定部１２０２は、選択した試験対象ページに関して、仕様書ＤＢ１２０１から仕様情報を取得する（Ｓ１４０３）。
次に、評価項目決定部１２０２は、セキュリティ評価項目一覧１１８を読み込み、初期設定として、セキュリティ評価項目一覧１１８に記載の全ての項目を実施するよう設定する（Ｓ１４０４）。
次に、評価項目決定部１２０２は、仕様書ＤＢ１２０１から取得した仕様情報を基に、不要な評価項目を不実施に設定していく（Ｓ１４０５〜Ｓ１４１６）。
Ｓ１４０５では、評価項目決定部１２０２は、仕様情報を基に、試験対象ページがＤＢアクセスするかどうかを判定して、ＤＢアクセスしない場合は、ＳＱＬインジェクションの項目を不実施に設定する（Ｓ１４０６）。
Ｓ１４０７では、評価項目決定部１２０２は、試験対象ページにｈｉｄｄｅｎパラメタがあるかどうか判定して、無い場合には、隠しフィールドの操作の項目を不実施に設定する（Ｓ１４０８）。
Ｓ１４０９では、評価項目決定部１２０２は、試験対象ページにパラメタがあるかどうか判定し、無い場合には、パラメタの改ざんの項目、及び、クロスサイトスクリプティングの項目を不実施に設定する（Ｓ１４１０）。
Ｓ１４１１では、評価項目決定部１２０２は、診断対象ページにてＣｏｏｋｉｅを使用しているか判断し、使用していない場合には、Ｃｏｏｋｉｅの濫用の項目を不実施に設定する（Ｓ１４１２）。
Ｓ１４１３では、評価項目決定部１２０２は、試験対象ページがＳＳＬ通信を行うかどうか判断して、行わない場合には、セキュアモードでないＣｏｏｋｉｅの項目を不実施に設定する（Ｓ１４１４）。
Ｓ１４１５では、評価項目決定部１２０２は、診断対象ページにて、メールを送信するかどうかを判定し、メールを送信しない場合には、メールの第三者中継の項目を不実施に設定する（Ｓ１４１６）。
Ｓ１４１７まで到達した際に、Ｓ１４０１で取得した試験対象ページの一覧に記載されている全ての試験対象ページについて試験項目を決定したかどうか判断し、残りがあれば、再びＳ１４０２からの処理を行う。
最終的に、Ｓ１４１７にて、全ての試験対象ページについて試験項目を決定したと判断された場合、試験対象ページごとの評価項目を出力して動作を終了する（Ｓ１４１８）。
【００６５】
評価項目決定部１２０２において、全ての試験対象ページに対する試験実施項目が決定された後に、評価データ生成部１１２では、評価項目決定部でページごとに決定された試験実施項目、仕様書ＤＢ１２０１、及び、脆弱性検査データＤＢ１１３の情報を基に、ページごとの評価データを作成する。
評価データに設定するデータは、仕様書ＤＢ１２０１で設定項目がパラメタ（図１５において設定項目がＰＡＲＡＭである項目）に設定されているパラメタの値が取りうる範囲（最小値、最大値）を基に決定される。
作成された評価データは、評価データ送信部１１４を介してＷｅｂアプリケーション１３１に送信される。
その後の、Ｗｅｂアプリケーション１３１からの応答メッセージ受信から、評価結果表示部１１７に評価結果が表示されるまでの処理は、実施の形態１と同様である。
【００６６】
以上のように、本実施の形態では、実施の形態１に加え、ユーザが入力したＷｅｂアプリケーションの仕様情報を基に、ページごと試験を実施するセキュリティ評価項目を決定し、決定した評価項目ごとに評価データを作成することで、Ｗｅｂアプリケーションに対して、仕様上必要のない試験を行わないようにしているため、Ｗｅｂアプリケーションの試験全体の実施効率が向上し、試験実施時間の短縮を図ることができる。
【００６７】
以上、本実施の形態では、
Ｗｅｂアプリケーションの仕様情報を入力する手段と、入力したＷｅｂアプリケーションの仕様情報と、セキュリティ評価項目一覧の情報とを基に、試験項目を自動で決定する手段とを備えた、Ｗｅｂアプリケーション自動試験装置を説明した。
【００６８】
最後に、実施の形態１及び２に示したＷｅｂアプリケーション自動試験装置１０１のハードウェア構成例について説明する。
図１９は、実施の形態１及び２に示すＷｅｂアプリケーション自動試験装置１０１のハードウェア資源の一例を示す図である。
なお、図１９の構成は、あくまでもＷｅｂアプリケーション自動試験装置１０１のハードウェア構成の一例を示すものであり、Ｗｅｂアプリケーション自動試験装置１０１のハードウェア構成は図１９に記載の構成に限らず、他の構成であってもよい。
【００６９】
図１９において、Ｗｅｂアプリケーション自動試験装置１０１は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態１及び２で説明した「〜ＤＢ」は、ＲＡＭ９１４や磁気ディスク装置９２０により実現される。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００７０】
通信ボード９１５は、ネットワークに接続されている。
例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されている。
【００７１】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【００７２】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【００７３】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
Ｗｅｂアプリケーション自動試験装置１０１の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【００７４】
上記プログラム群９２３には、実施の形態１及び２の説明において「〜部」、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００７５】
ファイル群９２４には、実施の形態１及び２の説明において、「〜の判断」、「〜の計算」、「〜の加算」、「〜の比較」、「〜の選択」、「〜の特定」、「〜の抽出」、「〜の評価」、「〜の検索」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の生成」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメタが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメタは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメタは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１及び２で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００７６】
また、実施の形態１及び２の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態１及び２で説明したフローチャートに示すステップ、手順、処理により、本発明に係る情報処理方法を実現することができる。
また、「〜部」、「〜手段」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１及び２の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態１及び２の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【００７７】
このように、実施の形態１及び２に示すＷｅｂアプリケーション自動試験装置１０１は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【００７８】
１０１  Ｗｅｂアプリケーション自動試験装置、１０２  Ｗｅｂサーバ、１１１  試験対象ページ情報ＤＢ、１１２  評価データ生成部、１１３  脆弱性検査データＤＢ、１１４  評価データ送信部、１１５  応答受信部、１１６  評価結果判定部、１１７  評価結果表示部、１１８  セキュリティ評価項目一覧、１２０  Ｗｅｂページ画面遷移情報ＤＢ、１２１  Ｗｅｂページ特徴情報ＤＢ、１２２  Ｗｅｂページ種類特定部、１２３  Ｗｅｂページ構成要素ＤＢ、１２４  取引フローパターンＤＢ、１２５  Ｗｅｂページ重要度判定部、１２６  パラメタ属性ＤＢ、１２７  重要パラメタ特定部、１２８  Ｗｅｂページ重要パラメタＤＢ、１３１  Ｗｅｂアプリケーション、１２０１  仕様書ＤＢ、１２０２  評価項目決定部。
【図１】
0005618861.tif 000002
【図２】
0005618861.tif 000003
【図３】
0005618861.tif 000004
【図４】
0005618861.tif 000005
【図５】
0005618861.tif 000006
【図６】
0005618861.tif 000007
【図７】
0005618861.tif 000008
【図８】
0005618861.tif 000009
【図９】
0005618861.tif 000010
【図１０】
0005618861.tif 000011
【図１１】
0005618861.tif 000012
【図１２】
0005618861.tif 000013
【図１３】
0005618861.tif 000014
【図１４】
0005618861.tif 000015
【図１５】
0005618861.tif 000016
【図１６】
0005618861.tif 000017
【図１７】
0005618861.tif 000018
【図１８】
0005618861.tif 000019
【図１９】
0005618861.tif 000020