(57)【要約】【課題】Ｗｅｂページ上の入力フォームを構成する各入力欄に入力すべき入力値の推測精度を高め、より効率良く自動クロールを行うことが可能な脆弱性検査装置、脆弱性検査方法、及び脆弱性検査プログラムを提供する。【解決手段】本発明は、第１のＷｅｂページ上で入力フォームを構成する各入力欄に対応付けられて表示される各文字列に基づいて、各入力項目の入力値であって入力条件を満たすと推測される各入力値を決定し、決定した各入力値を含むリクエストを、Ｗｅｂアプリケーションが動作しているＷｅｂサーバへ送信するように構成した。【選択図】図４
2012078877.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の入力項目の各々に対応する入力欄から構成される入力フォームが設けられた第１のＷｅｂページを端末へ送信しユーザにより前記入力フォームを通じて入力された各入力項目の入力値を受け付け当該各入力値が所定の入力条件を満たす場合に第２のＷｅｂページを前記端末へ送信するように構成されたＷｅｂアプリケーションの脆弱性を検査する脆弱性検査装置において、
前記第１のＷｅｂページ上で前記各入力欄に対応付けられて表示される各文字列に基づいて、前記各入力項目の各入力値であって前記入力条件を満たすと推測される前記各入力値を決定する決定手段と、
前記第２のＷｅｂページのリクエストであって、前記決定手段により決定された各入力値を含むリクエストを、前記Ｗｅｂアプリケーションが動作しているＷｅｂサーバへ送信する送信手段と、
を備えることを特徴とする脆弱性検査装置。
【請求項２】
請求項１に記載の脆弱性検査装置において、
前記決定手段は、前記第１のＷｅｂページから、前記入力欄の入力例として表示される文字列を、予め定められた特定の文字を手がかりに抽出して、抽出した文字列を、前記入力条件を満たすと推測される前記入力値として決定することを特徴とする脆弱性検査装置。
【請求項３】
請求項１に記載の脆弱性検査装置において、
前記入力項目の項目名と、前記入力値の候補と、を前記入力項目毎に対応付けて登録した第１の表を備え、
前記決定手段は、前記第１のＷｅｂページ上の前記入力欄に対応して表示される文字列が、前記第１の表に登録されている項目名を含むときは、前記第１の表から当該項目名に対応付けて登録されている入力値の候補を取得し、当該取得した入力値の候補を、前記入力条件を満たすと推測される前記入力値として決定することを特徴とする脆弱性検査装置。
【請求項４】
請求項１に記載の脆弱性検査装置において、
前記入力欄への入力方法を示す文字列と、前記入力値の候補と、を前記入力方法毎に対応付けて登録する第２の表を備え、
前記決定手段は、前記第１のＷｅｂページ上の前記入力欄に対応して表示される文字列が、前記第２の表に登録されている入力方法を示す文字列を含むときは、前記第２の表から当該入力方法に対応付けて登録されている入力値の候補を取得し、当該取得した入力値の候補を、前記入力条件を満たすと推測される前記入力値として決定することを特徴とする脆弱性検査装置。
【請求項５】
請求項１乃至４の何れか一項に記載の脆弱性検査装置において、
前記第１のＷｅｂページは、当該Ｗｅｂページを構成する各構成要素の役割と範囲を定義する複数種類のタグが記述された構造化文書ファイルからなり、
前記決定手段は、前記複数種類のタグのうち、前記入力フォームを構成する各入力欄が表示される行を定義する開始タグと終了タグにより囲まれた文字列の中から当該入力欄へ入力される入力値を決定することを特徴とする脆弱性検査装置。
【請求項６】
請求項１に記載の脆弱性検査装置において、
前記入力項目の項目名と、パラメータ名と、前記入力値の候補と、を前記入力項目毎に対応付けて登録する第１の表を備え、
前記第１のＷｅｂページは、当該Ｗｅｂページを構成する各構成要素の役割と範囲を定義する複数種類のタグが記述された構造化文書ファイルからなり、
前記決定手段は、前記複数種類のタグのうち、前記入力欄が表示される行を定義する開始タグと終了タグの間に配置されるｉｎｐｕｔタグを構成する文字列が、前記第１の表に登録されているパラメータ名を含むときは、前記第１の表から当該パラメータ名に対応付けて登録されている入力値の候補を取得し、当該取得した入力値の候補を、前記入力条件を満たすと推測される前記入力値として決定することを特徴とする脆弱性検査装置。
【請求項７】
請求項１乃至４の何れか一項に記載の脆弱性検査装置において、
前記第１のＷｅｂページは、当該Ｗｅｂページを構成する各構成要素の役割と範囲を定義する複数種類のタグが記述された構造化文書ファイルからなり、
前記決定手段は、前記複数種類のタグのうち、前記入力欄を定義するタグの直前又は直後に記述されている文字列から当該入力欄へ入力される入力値を決定することを特徴とする脆弱性検査装置。
【請求項８】
請求項１に記載の脆弱性検査装置において、
前記入力項目の項目名と、前記入力値の候補と、を前記入力項目毎に対応付けて登録した第１の表を備え、
前記決定手段は、前記第１のＷｅｂページから、前記入力欄の入力例として表示される文字列を、予め定められた特定の文字を手がかりに抽出できたとき、抽出した文字列を前記入力条件を満たすと推測される前記入力値として決定し、
前記入力欄の入力例として表示される文字列を、予め定められた特定の文字を手がかりに抽出できないとき、前記第１のＷｅｂページ上の前記入力欄に対応して表示される文字列が、前記第１の表に登録されている項目名を含むか否かを判定し、前記第１の表に登録されている項目名を含むときは、前記第１の表から当該項目名に対応付けて登録されている前記入力値の候補を取得し、当該取得した入力値の候補を、前記入力条件を満たすと推測される前記入力値として決定することを特徴とする脆弱性検査装置。
【請求項９】
１つ以上の入力項目の各々に対応する入力欄から構成される入力フォームが設けられた第１のＷｅｂページを端末へ送信しユーザにより前記各入力フォームを通じて入力された各入力項目の入力値を受け付け当該各入力値が所定の入力条件を満たす場合に第２のＷｅｂページを前記端末へ送信するように構成されたＷｅｂアプリケーションプログラムの脆弱性を検査する脆弱性検査方法において、
検査装置が、前記第１のＷｅｂページ上で前記各入力欄に対応付けられて表示される各文字列に基づいて、前記各入力項目の入力値であって前記入力条件を満たすと推測される前記各入力値を決定するステップと、
前記検査装置が、前記第２のＷｅｂページのリクエストであって、前記決定された各入力値を含むリクエストを、前記Ｗｅｂアプリケーションプログラムを実行しているＷｅｂサーバへ送信するステップと、
を含むことを特徴とする脆弱性検査方法。
【請求項１０】
１つ以上の入力項目の各々に対応する入力欄から構成される入力フォームが設けられた第１のＷｅｂページを端末へ送信しユーザにより前記各入力フォームを通じて入力された各入力項目の入力値を受け付け当該各入力値が所定の入力条件を満たす場合に第２のＷｅｂページを前記端末へ送信するように構成されたＷｅｂアプリケーションプログラムの脆弱性を検査するコンピュータを、
前記第１のＷｅｂページ上で前記各入力欄に対応付けられて表示される各文字列に基づいて、前記各入力項目の入力値であって前記入力条件を満たすと推測される前記各入力値を決定する決定手段、及び
前記第２のＷｅｂページのリクエストであって、前記決定手段により決定された各入力値を含むリクエストを、前記Ｗｅｂアプリケーションプログラムを実行しているＷｅｂサーバへ送信する送信手段として機能させることを特徴とする脆弱性検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサーバ上で動作して情報提供や商品購入決済等の処理を実行するＷｅｂアプリケーションの脆弱性を検査する脆弱性検査装置及び方法等の技術分野に関する。
【背景技術】
【０００２】
近年、Ｗｅｂサーバからクライアント端末に送信され、Ｗｅｂブラウザにより表示されたＷｅｂページ上の入力フォームを通じて入力された入力項目の入力値に基づいて動作するＷｅｂアプリケーションが広く普及している。一方で、Ｗｅｂページ上の入力フォームを通じて特殊な値が入力されることにより、Ｗｅｂアプリケーションにより想定外の処理が実行される場合がある。これを利用することにより、例えばデータベースに格納されている情報が漏洩したり、改ざんされたりする可能性がある。そのため、このようなＷｅｂアプリケーションの脆弱性（セキュリティ上の欠陥）の検査を行うことが一般的となってきている。Ｗｅｂアプリケーションの脆弱性の検査は、一般に、（１）クロール、（２）スキャン（検査）、（３）レポートという手順で行われる。具体的には、先ず、（１）クロールでは、Ｗｅｂサイトを巡回して検査対象となるＷｅｂページをできる限り抽出する。次に、（２）スキャンでは、抽出したＷｅｂページに対して、実際の攻撃者と同じような擬似攻撃（擬似攻撃リクエスト送信）を行う。最後に、（３）レポートでは、検査結果をレポートとして例えばディスプレイに表示する。
【０００３】
このような脆弱性を検査するための手法として、脆弱性によるエラーが生じた際に表示される文字列を予めデータベースに格納しておき、Ｗｅｂサーバからの応答中の文字列とデータベースに格納しておいた文字列を照合する方法が知られている（例えば特許文献１）。この方法では、まず、脆弱性に起因するエラーが生じると思われる検査文字列をＷｅｂサーバに送信し、これに対するＷｅｂサーバからの応答（レスポンス）中の文字列を、データベースに格納されている文字列と照合し、一致する文字列があれば該当する脆弱性が存在すると判断するようになっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許６５８４５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、Ｗｅｂアプリケーションの脆弱性の検査を行う公知の検査ツールを用いて脆弱性の検査を行う場合、昨今の検査案件の増加に伴い、全てのＷｅｂサイトに対して手動で検査を行うことは困難になってきている。そのため、検査ツールによる脆弱性の自動検査が不可欠となってきている。このような自動検査を行うためには、先ずはＷｅｂページ上の入力フォームを構成する各入力欄に対して何を入力すべきかを自動的に推測して適切な入力値を決定する処理を含む自動クロールを実行する必要がある。この自動クロールでは、例えば、Ｗｅｂページを構成するＨＴＭＬ（HyperText Markup Language）文書中で入力フォームを構成する各入力欄を定義する＜input＞タグ内に含まれるname属性の属性値（name=“xxxxx”における「xxxxx」の部分）から入力すべき入力値を推測する。より具体的には、name=“address”となっている場合、入力欄には住所（address）を入力すべきであると推測できるので、予め用意しておいた特定の住所を示す文字列を入力欄に入力すべき入力値として決定することができる。
【０００６】
しかしながら、入力欄に入力すべき入力値を推測することが困難な場合がある。例えば、上述した例において、name=“adr”となっている場合、検査ツールは入力欄すべき入力値を推測することができない。このような場合、エラーチェックに引っ掛かってしまい、その先のＷｅｂページに遷移できず、その結果、入力欄に対して手動入力を行った上で、脆弱性の自動検査を行わなければならない。
【０００７】
そこで、本発明は、このような点に鑑みてなされたもので、Ｗｅｂページ上の入力フォームを構成する各入力欄に入力すべき入力値の推測精度を高め、より効率良く自動クロールを行うことが可能な脆弱性検査装置、脆弱性検査方法、及び脆弱性検査プログラムを提供することを課題の一例とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、１つ以上の入力項目の各々に対応する入力欄から構成される入力フォームが設けられた第１のＷｅｂページを端末へ送信しユーザにより前記入力フォームを通じて入力された各入力項目の入力値を受け付け当該各入力値が所定の入力条件を満たす場合に第２のＷｅｂページを前記端末へ送信するように構成されたＷｅｂアプリケーションの脆弱性を検査する脆弱性検査装置において、前記第１のＷｅｂページ上で前記各入力欄に対応付けられて表示される各文字列に基づいて、前記各入力項目の各入力値であって前記入力条件を満たすと推測される前記各入力値を決定する決定手段と、前記第２のＷｅｂページのリクエストであって、前記決定手段により決定された各入力値を含むリクエストを、前記Ｗｅｂアプリケーションが動作しているＷｅｂサーバへ送信する送信手段と、を備えることを特徴とする。
【０００９】
請求項２に記載の発明は、請求項１に記載の脆弱性検査装置において、前記決定手段は、前記第１のＷｅｂページから、前記入力欄の入力例として表示される文字列を、予め定められた特定の文字を手がかりに抽出して、抽出した文字列を、前記入力条件を満たすと推測される前記入力値として決定することを特徴とする。  請求項３に記載の発明は、請求項１に記載の脆弱性検査装置において、前記入力項目の項目名と、前記入力値の候補と、を前記入力項目毎に対応付けて登録した第１の表を備え、前記決定手段は、前記第１のＷｅｂページ上の前記入力欄に対応して表示される文字列が、前記第１の表に登録されている項目名を含むときは、前記第１の表から当該項目名に対応付けて登録されている入力値の候補を取得し、当該取得した入力値の候補を、前記入力条件を満たすと推測される前記入力値として決定することを特徴とする。
【００１０】
請求項４に記載の発明は、請求項１に記載の脆弱性検査装置において、前記入力欄への入力方法を示す文字列と、前記入力値の候補と、を前記入力方法毎に対応付けて登録する第２の表を備え、前記決定手段は、前記第１のＷｅｂページ上の前記入力欄に対応して表示される文字列が、前記第２の表に登録されている入力方法を示す文字列を含むときは、前記第２の表から当該入力方法に対応付けて登録されている入力値の候補を取得し、当該取得した入力値の候補を、前記入力条件を満たすと推測される前記入力値として決定することを特徴とする。
【００１１】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載の脆弱性検査装置において、前記第１のＷｅｂページは、当該Ｗｅｂページを構成する各構成要素の役割と範囲を定義する複数種類のタグが記述された構造化文書ファイルからなり、前記決定手段は、前記複数種類のタグのうち、前記入力フォームを構成する各入力欄が表示される行を定義する開始タグと終了タグにより囲まれた文字列の中から当該入力欄へ入力される入力値を決定することを特徴とする。
【００１２】
請求項６に記載の発明は、請求項１に記載の脆弱性検査装置において、前記入力項目の項目名と、パラメータ名と、前記入力値の候補と、を前記入力項目毎に対応付けて登録する第１の表を備え、前記第１のＷｅｂページは、当該Ｗｅｂページを構成する各構成要素の役割と範囲を定義する複数種類のタグが記述された構造化文書ファイルからなり、前記決定手段は、前記複数種類のタグのうち、前記入力欄が表示される行を定義する開始タグと終了タグの間に配置されるｉｎｐｕｔタグを構成する文字列が、前記第１の表に登録されているパラメータ名を含むときは、前記第１の表から当該パラメータ名に対応付けて登録されている入力値の候補を取得し、当該取得した入力値の候補を、前記入力条件を満たすと推測される前記入力値として決定することを特徴とする。
【００１３】
請求項７に記載の発明は、請求項１乃至４の何れか一項に記載の脆弱性検査装置において、前記第１のＷｅｂページは、当該Ｗｅｂページを構成する各構成要素の役割と範囲を定義する複数種類のタグが記述された構造化文書ファイルからなり、前記決定手段は、前記複数種類のタグのうち、前記入力欄を定義するタグの直前又は直後に記述されている文字列から当該入力欄へ入力される入力値を決定することを特徴とする。
【００１４】
請求項８に記載の発明は、請求項１に記載の脆弱性検査装置において、前記入力項目の項目名と、前記入力値の候補と、を前記入力項目毎に対応付けて登録した第１の表を備え、前記決定手段は、前記第１のＷｅｂページから、前記入力欄の入力例として表示される文字列を、予め定められた特定の文字を手がかりに抽出できたとき、抽出した文字列を前記入力条件を満たすと推測される前記入力値として決定し、前記入力欄の入力例として表示される文字列を、予め定められた特定の文字を手がかりに抽出できないとき、前記第１のＷｅｂページ上の前記入力欄に対応して表示される文字列が、前記第１の表に登録されている項目名を含むか否かを判定し、前記第１の表に登録されている項目名を含むときは、前記第１の表から当該項目名に対応付けて登録されている前記入力値の候補を取得し、当該取得した入力値の候補を、前記入力条件を満たすと推測される前記入力値として決定することを特徴とする。
【００１５】
請求項９に記載の発明は、１つ以上の入力項目の各々に対応する入力欄から構成される入力フォームが設けられた第１のＷｅｂページを端末へ送信しユーザにより前記各入力フォームを通じて入力された各入力項目の入力値を受け付け当該各入力値が所定の入力条件を満たす場合に第２のＷｅｂページを前記端末へ送信するように構成されたＷｅｂアプリケーションプログラムの脆弱性を検査する脆弱性検査方法において、検査装置が、前記第１のＷｅｂページ上で前記各入力欄に対応付けられて表示される各文字列に基づいて、前記各入力項目の入力値であって前記入力条件を満たすと推測される前記各入力値を決定するステップと、前記検査装置が、前記第２のＷｅｂページのリクエストであって、前記決定された各入力値を含むリクエストを、前記Ｗｅｂアプリケーションプログラムを実行しているＷｅｂサーバへ送信するステップと、を含むことを特徴とする。
【００１６】
請求項１０に記載の発明は、１つ以上の入力項目の各々に対応する入力欄から構成される入力フォームが設けられた第１のＷｅｂページを端末へ送信しユーザにより前記各入力フォームを通じて入力された各入力項目の入力値を受け付け当該各入力値が所定の入力条件を満たす場合に第２のＷｅｂページを前記端末へ送信するように構成されたＷｅｂアプリケーションプログラムの脆弱性を検査するコンピュータを、前記第１のＷｅｂページ上で前記各入力欄に対応付けられて表示される各文字列に基づいて、前記各入力項目の入力値であって前記入力条件を満たすと推測される前記各入力値を決定する決定手段、及び前記第２のＷｅｂページのリクエストであって、前記決定手段により決定された各入力値を含むリクエストを、前記Ｗｅｂアプリケーションプログラムを実行しているＷｅｂサーバへ送信する送信手段として機能させる脆弱性検査プログラムである。
【発明の効果】
【００１７】
本発明によれば、第１のＷｅｂページ上で入力フォームを構成する各入力欄に対応付けられて表示される各文字列に基づいて、各入力項目の入力値であって入力条件を満たすと推測される各入力値を決定し、決定した各入力値を含むリクエストを、Ｗｅｂアプリケーションが動作しているＷｅｂサーバへ送信するように構成したので、Ｗｅｂページ上の入力フォームを構成する各入力欄に入力すべき入力値の推測精度を高め、より効率良く自動クロールを行うことができる。
【図面の簡単な説明】
【００１８】
【図１】（Ａ）は、本実施形態に係る脆弱性検査装置の概要構成例を示す図である。（Ｂ）は、入力値抽出用テーブル１２ａ〜１２ｃ、及び補助テーブル１２ｄの登録例を示す図である。
【図２】入力項目の項目名、入力欄への入力方法、及び入力例が表示された第１のＷｅｂページの一例を示す図である。
【図３】図２に示す第１のＷｅｂページのＨＴＭＬ文書の一例を示す図である。
【図４】自動入力クローラ部１５ａにおける自動クロール処理の一例を示すフローチャートである。
【図５】（Ａ）に、確認画面を有する第２のＷｅｂページの一例を示す図である。（Ｂ）に、エラーメッセージ（エラー画面）が含まれるＷｅｂページの一例を示す図である。（Ｃ）は、項目名が“郵便番号”である入力項目に対応するＨＴＭＬソースを示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【００２０】
先ず、本発明の一実施形態に係る脆弱性検査装置の構成について、図１を用いて説明する。図１（Ａ）は、本実施形態に係る脆弱性検査装置の概要構成例を示す図である。この脆弱性検査装置１は、インターネット等からなるネットワークＮＷに接続されたＷｅｂサーバＳＡ上で動作するＷｅｂアプリケーション（ソフトウェア）ＡＰの脆弱性の検査を行う装置である。なお、図１（Ａ）の例では、ＷｅｂサーバＳＡ及びＷｅｂアプリケーションＡＰは夫々１つずつ図示しているが、実際には、例えば、ショッピングやブログサイト等の様々なＷｅｂサイト毎に複数存在する。検査対象となるＷｅｂアプリケーションＡＰは、１つ以上の入力項目の各々に対応する入力欄から構成される入力フォームが設けられたＷｅｂページをクライアント端末（図示せず）へ送信しユーザにより入力フォームを通じて入力された各入力項目の入力値を受け付け当該各入力値が所定の入力条件を満たす場合に、後に続くＷｅｂページをクライアント端末へ送信するように構成されている。ここで、クライアント端末は、ＷｅｂサーバＳＡからＷｅｂページを取得して表示するＷｅｂブラウザ（ソフトウェア）がインストールされた装置であり、例えば、パーソナルコンピュータ、携帯電話機、又はスマートフォン等が一例として挙げられる。
【００２１】
本実施形態に係る脆弱性検査装置１は、図１（Ａ）に示すように、通信部１１、記憶部１２、操作部１３、表示部１４、及び演算処理部１５等を含んで構成されている。
【００２２】
通信部１１は、ネットワークＮＷを通じてＷｅｂサーバＳＡとの間の通信制御を行う。
【００２３】
記憶部１２は、例えばハードディスクドライブ等から構成され、ここには、オペレーティングシステム、及び脆弱性検査プログラム等が記憶されている。
【００２４】
また、記憶部１２には、各種テーブル（表）が記憶されている。例えば、図１（Ａ）に示すように、記憶部１２には、自動クロールを実行するために必要な入力値抽出用テーブル１２ａ〜１２ｃ、及び補助テーブル１２ｄが設けられている。図１（Ｂ）は、入力値抽出用テーブル１２ａ〜１２ｃ、及び補助テーブル１２ｄの登録例を示す図である。入力値抽出用テーブル１２ａ（第１の表の一例）には、パラメータ名と、入力項目の項目名と、入力値の候補とが、入力項目毎に対応付けられて登録されている。ここで、パラメータ名は、入力項目に対応するname属性の属性値を示す。また、入力値の候補は、入力項目の入力値に入力すべき入力値の候補である。また、入力値抽出用テーブル１２ｂ（第２の表の一例）には、入力欄への入力方法を示す文字列と、入力値の候補と、が入力方法毎に対応付けられて登録されている。ここで、入力方法は、例えば、入力欄に入力される文字種や文字数等を規定する入力条件の全部又は一部を示す。また、入力値抽出用テーブル１２ｃには、同じ意味を表す同義語が対応付けられて登録されている。また、補助テーブル１２ｄは、入力欄に対応付けられて表示される文字列が入力方法を示す文字列かどうかを調べる際に、入力値抽出用テーブル１２ｂと合わせて参照することにより、数字（漢字等）を何文字入力すべきかを判定するために用いられる。
【００２５】
操作部１３は、検査者からの指示を受け付け、その指示信号を演算処理部１５へ出力する。
【００２６】
表示部１４は、演算処理部１５からの指令に応じて、検査結果等の情報をディスプレイに表示する。
【００２７】
演算処理部１５は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、及びＲＯＭ（Read Only Memory）等から構成されており、ＣＰＵが脆弱性検査プログラムを実行することにより、自動入力クローラ部１５ａ、脆弱性検査部１５ｂ、及び検査結果出力部１５ｃ等として機能する。なお、自動入力クローラ部１５ａは、本発明における特定手段、決定手段、及び送信手段の一例である。
【００２８】
自動入力クローラ部１５ａは、Ｗｅｂブラウザ機能を有し、ＷｅｂサイトのＵＲＬ（Uniform Resource Locator）にしたがってＷｅｂサーバＳＡにアクセスして検査対象となるＷｅｂページを取得する。なお、ＷｅｂサイトのＵＲＬは、例えば記憶部１２に予め記憶されたＵＲＬ登録リストから取得される。ＵＲＬ登録リストには、検査者側により、予め決定された多数のＷｅｂサイトのＵＲＬが登録されている。また、Ｗｅｂページは、当該Ｗｅｂページを構成する各構成要素の役割と範囲を定義する複数種類のタグ（＜…＞）が記述されたＨＴＭＬ（HyperText Markup Language）文書等の構造化文書ファイルからなる。
【００２９】
そして、自動入力クローラ部１５ａは、検査対象として取得したＷｅｂページ（このＷｅｂページを、以下、「第１のＷｅｂページ」という）上で各入力欄に対応付けられて表示される各文字列に基づいて、各入力項目の入力値であって入力条件を満たすと推測される各入力値を決定する処理を行う。ここで、入力欄に対応付けられて表示される文字列としては、例えば、入力項目の項目名、入力欄への入力方法、及び入力例が挙げられる。入力例は、ユーザにより入力欄に入力値が入力される際の参考となる文字列である。
【００３０】
図２に、入力項目の項目名、入力欄への入力方法、及び入力例が表示された第１のＷｅｂページの一例を示す。また、図３に、図２に示す第１のＷｅｂページのＨＴＭＬ文書（ＨＴＭＬソース）の一例を示す。図２の例において、破線５１内に示される文字列は、入力項目の項目名を示す。各項目名は、破線５２内に示される各入力欄に対応付けられて（横並びに）表示されている。また、破線５３内に示される文字列は、入力欄への入力例を示す。図２の例では、項目名が「住所」と「メールアドレス」に対してのみ入力例が、各入力欄に対応付けられて表示されている。また、破線５４内に示される文字列は、入力欄への入力方法を示す。なお、図２の例では、各入力項目の入力欄及び文字列は一行毎に表示されている。また、図３の例において、複数種類のタグのうち、入力フォームを構成する各入力欄が表示される行を定義するｔｒタグである＜ｔｒ＞（開始タグ）と＜／ｔｒ＞（終了タグ）により囲まれた文字列の中に、その入力欄に対応する項目名、入力例、及び入力方法を示す文字列が含まれている。
【００３１】
なお、入力条件を満たすと推測される入力値を決定する処理の具体例については後述する。
【００３２】
そして、自動入力クローラ部１５ａは、入力条件を満たすと推測される入力値を決定すると、第１のＷｅｂページの後に続く（つまり、第１のＷｅｂページから遷移する）Ｗｅｂページ（このＷｅｂページを、以下、「第２のＷｅｂページ」という）のリクエストであって、上記決定した各入力値を含むリクエストを、ＷｅｂアプリケーションＡＰが動作しているＷｅｂサーバＳＡへ送信するようになっている。このリクエストは、第２のＷｅｂページの送信要求を示すＨＴＴＰ（HyperText Transfer Protocol）リクエストである。そして、このリクエストに含まれる各入力値が所定の入力条件を満たす場合、ＷｅｂサーバＳＡから第２のＷｅｂページがレスポンスとして自動入力クローラ部１５ａへ送信されることになる。これにより、自動入力クローラ部１５ａは、第１のＷｅｂページを検査対象となるＷｅｂページとして特定する。一方、このリクエストに含まれる各入力値の中で、一つでも入力条件を満たさない入力値がある場合、ＷｅｂサーバＳＡからエラーメッセージが含まれるＷｅｂページがレスポンスとして自動入力クローラ部１５ａへ送信されることになる。なお、第２のＷｅｂページにも入力フォームが設けられている場合、自動入力クローラ部１５ａは、第２のＷｅｂページ（この場合、第２のＷｅｂページは第１のＷｅｂページとして扱われる）に対しても、上記と同様に入力条件を満たすと推測される入力値を決定する処理を行うことになる。
【００３３】
脆弱性検査部１５ｂは、検査対象となるＷｅｂページに対して脆弱性を検査する処理を行う。例えば、脆弱性検査部１５ｂは、検査対象となるＷｅｂページに設けられた入力フォームを構成する入力欄に特殊な値（例えば、スクリプト等）を入力し擬似攻撃リクエストをＷｅｂサーバＳＡに送信し、そのレスポンスに基づいて脆弱性を検査する。なお、脆弱性を検査する処理は、公知の種々の方法を利用することができるので、これ以上の詳しい説明は省略する。
【００３４】
検査結果出力部１５ｃは、脆弱性検査部１５ｂによる検査結果をレポートとして表示部１４のディスプレイに表示する。
【００３５】
次に、脆弱性検査装置１における自動入力クローラ部１５ａの自動クロール処理の具体例について図４等を用いて説明する。図４は、自動入力クローラ部１５ａにおける自動クロール処理の一例を示すフローチャートである。なお、この自動クロール処理の前段階で、例えば検査者により、入力値の候補と項目名等とが対応付けられて入力値抽出用テーブル１２ａ，１２ｂに登録される。
【００３６】
図４に示す処理は、例えば、ＷｅｂサーバＳＡから検査対象となる第１のＷｅｂページが取得されることにより開始される。図４に示す処理が開始されると、自動入力クローラ部１５ａは、複数の入力項目のうち、一の入力項目に対応するテキストデータを第１のＷｅｂページから抽出する（ステップＳ１）。例えば、自動入力クローラ部１５ａは、第１のＷｅｂページのＨＴＭＬ文書において最初に記述されたｔｒタグである＜ｔｒ＞と＜／ｔｒ＞により囲まれたテキストデータを、一の入力項目（例えば、項目名が“名前”である入力項目）に対応するテキストデータとして抽出する。これにより、当該一の入力項目に対応する入力欄が表示される行を定義するｔｒタグである＜ｔｒ＞と＜／ｔｒ＞により囲まれた文字列の中から、当該入力項目の入力値が、以降の処理で決定されることになる。
【００３７】
次いで、自動入力クローラ部１５ａは、抽出したテキストデータに対応する入力欄に入力例を示す文字列が対応付けられているか否かを判定する（ステップＳ２）。一般に、入力欄を定義するｉｎｐｕｔタグ（＜ｉｎｐｕｔ ｔｙｐｅ＝“…”＞）の直後には、入力方法を示す文字列、又は入力例を示す文字列が記述されている（図３参照）。そこで、自動入力クローラ部１５ａは、入力欄を定義するｉｎｐｕｔタグの直後に文字列が記述されている場合、この文字列が、入力例を示すか、又は入力方法を示すかを区別することで、入力欄に入力例を示す文字列が対応付けられているか否かを判定する。例えば、自動入力クローラ部１５ａは、ｉｎｐｕｔタグの直後に記述されている文字列中に、入力例中で一般に使用される文字（この文字は事前に設定される）が含まれている場合、入力欄に入力例を示す文字列が対応付けられていると判定する。なお、入力例中で一般に使用される文字としては、例えば、「例」や「※」などの特定の文字が挙げられる。つまり、自動入力クローラ部１５ａは、当該入力欄の入力例として表示される文字列を、予め定められた特定の文字を手がかりに抽出する。一方、自動入力クローラ部１５ａは、ｉｎｐｕｔタグの直後に記述されている文字列中に、入力例中で一般に使用される文字が含まれていない場合、入力欄に入力例を示す文字列が対応付けられていないと判定する。
【００３８】
或いは、ｉｎｐｕｔタグの直後に記述されている文字列中に入力例中で一般に使用される文字が含まれていない場合において、ｉｎｐｕｔタグの直後に記述されている文字列中に入力値抽出用テーブル１２ｂに登録されている文字列（入力方法を示す文字列）が含まれていない場合、入力クローラ部１５ａは、入力欄に入力例を示す文字列が対応付けられていると判定するように構成してもよい。
【００３９】
そして、自動入力クローラ部１５ａは、抽出したテキストデータに対応する入力欄に入力例を示す文字列が対応付けられていると判定した場合には（ステップＳ２：ＹＥＳ）、当該入力例を示す文字列を入力条件を満たすと推測される入力値として決定し（ステップＳ３）、ステップＳ１１に進む。つまり、第１のＷｅｂページから、当該入力欄の入力例として表示される文字列が、予め定められた特定の文字を手がかりに抽出できたとき、抽出された文字列が、入力条件を満たすと推測される入力値として決定されることになる。こうして決定された入力値は、上記抽出されたテキストデータに対応する入力欄を定義するｉｎｐｕｔタグ内に記述されたパラメータ名（name属性の属性値）に対応付けられて記憶される（この入力値及びパラメータ名は、ステップＳ１２でリクエストに含められる）。このように、先ずは入力例を示す文字列から入力値を決定することで、より推測精度を高めることができる。つまり、Ｗｅｂページの作成者により提示された入力例を利用することで、より確実に入力条件を満たす入力値を決定することができる。
【００４０】
一方、自動入力クローラ部１５ａは、抽出したテキストデータに対応する入力欄に入力例を示す文字列が対応付けられていないと判定した場合（言い換えれば、入力欄の入力例として表示される文字列を、予め定められた特定の文字を手がかりに抽出できないとき）には（ステップＳ２：ＮＯ）、当該入力欄に対応する入力項目の項目名が当該入力欄に対応付けられているか否かを判定（言い換えれば、第１のＷｅｂページ上の当該入力欄に対応して表示される文字列が、入力値抽出用テーブル１２ａに登録されている項目名を含むか否かを判定）する（ステップＳ４）。一般に、入力欄が表示される行を定義するｔｒタグである＜ｔｒ＞（開始タグ）の直後には、項目名を示す文字列が記述されている（図３参照）。そこで、自動入力クローラ部１５ａは、入力欄が表示される行を定義するｔｒタグである＜ｔｒ＞（開始タグ）の直後に文字列が記述されている場合、この文字列（項目名を示す文字列と見做す）が入力値抽出用テーブル１２ａに登録されているか否かを判別することで、当該入力欄に対応する入力項目の項目名が当該入力欄に対応付けられているか否かを判定する。また、入力欄を定義するｉｎｐｕｔタグ（＜ｉｎｐｕｔ ｔｙｐｅ＝“…”＞）の直前に、項目名を示す文字列が記述されている場合もある（図示せず）。そこで、自動入力クローラ部１５ａは、入力欄を定義するｉｎｐｕｔタグの直前に文字列が記述されている場合、この文字列が入力値抽出用テーブル１２ａに登録されているか否かを判別することで、当該入力欄に対応する入力項目の項目名が当該入力欄に対応付けられているか否かを判定するように構成してもよい。
【００４１】
そして、自動入力クローラ部１５ａは、抽出したテキストデータに対応する入力欄の入力項目の項目名が当該入力欄に対応付けられていると判定した場合には（ステップＳ４：ＹＥＳ）、当該文字列で示される項目名に対応付けられている入力値の候補を、入力値抽出用テーブル１２ａから取得し、当該取得した入力値の候補を入力条件を満たすと推測される入力値として決定し（ステップＳ５）、ステップＳ１１に進む。つまり、第１のＷｅｂページ上の当該入力欄に対応して表示される文字列が、入力値抽出用テーブル１２ａに登録されている項目名を含むときは、入力値抽出用テーブル１２ａから当該項目名に対応付けて登録されている入力値の候補が取得され、当該取得された入力値の候補が、入力条件を満たすと推測される入力値として決定されることになる。こうして決定された入力値は、上記抽出されたテキストデータに対応する入力欄を定義するｉｎｐｕｔタグ内に記述されたパラメータ名に対応付けられて記憶される（この入力値及びパラメータ名は、ステップＳ１２でリクエストに含められる）。
【００４２】
一方、自動入力クローラ部１５ａは、抽出したテキストデータに対応する入力欄の入力項目の項目名が当該入力欄に対応付けられていないと判定した場合には（ステップＳ４：ＮＯ）、当該入力欄にパラメータ名が対応付けられているか否かを判定する（ステップＳ６）。例えば、自動入力クローラ部１５ａは、当該入力欄を定義するｉｎｐｕｔタグ内に記述されているパラメータ名が、入力値抽出用テーブル１２ａに登録されているか否かを判別することで、当該入力欄にパラメータ名が対応付けられているか否かを判定する。
【００４３】
そして、自動入力クローラ部１５ａは、抽出したテキストデータに対応する入力欄にパラメータ名が対応付けられていると判定した場合には（ステップＳ６：ＹＥＳ）、当該パラメータ名に対応付けられている入力値の候補を、入力値抽出用テーブル１２ａから取得し、当該取得した入力値の候補を入力条件を満たすと推測される入力値として決定し（ステップＳ７）、ステップＳ１１に進む。つまり、入力欄が表示される行を定義するｔｒタグである＜ｔｒ＞（開始タグ）と＜／ｔｒ＞（終了タグ）の間に配置されるｉｎｐｕｔタグを構成する文字列が、入力値抽出用テーブル１２ａに登録されているパラメータ名を含むときは、当該入力値抽出用テーブル１２ａから当該パラメータ名に対応付けて登録されている入力値の候補が取得され、当該取得された入力値の候補が、入力条件を満たすと推測される入力値として決定されることになる。こうして決定された入力値は、当該パラメータ名に対応付けられて記憶される（この入力値及びパラメータ名は、ステップＳ１２でリクエストに含められる）。
【００４４】
一方、自動入力クローラ部１５ａは、抽出したテキストデータに対応する入力欄にパラメータ名が対応付けられていないと判定した場合には（ステップＳ６：ＮＯ）、当該入力欄に入力方法を示す文字列が対応付けられているか否かを判定する（ステップＳ８）。例えば、自動入力クローラ部１５ａは、ｉｎｐｕｔタグの直後に記述されている文字列が入力値抽出用テーブル１２ｂに登録されているか否かを判別することで、当該入力欄に入力方法を示す文字列が当該入力欄に対応付けられているか否かを判定する。
【００４５】
そして、自動入力クローラ部１５ａは、抽出したテキストデータに対応する入力欄に入力方法を示す文字列が対応付けられていると判定した場合には（ステップＳ８：ＹＥＳ）、当該入力方法を示す文字列に対応付けられている入力値の候補を、入力値抽出用テーブル１２ｂから取得する。ここで、入力方法を示す文字列中に文字数が示されている場合、当該入力値の候補の例えば先頭からその文字数分が、入力値の候補として取得される。なお、文字数が示されているかどうかは補助テーブル１２ｄを参照することにより判定することができる。例えば、入力方法を示す文字列中に、補助テーブル１２ｄに登録された“文字以内”という文字列が含まれる場合、文字数が示されていると判定される。
【００４６】
そして、自動入力クローラ部１５ａは、当該取得した入力値の候補を入力条件を満たすと推測される入力値として決定し（ステップＳ９）、ステップＳ１１に進む。つまり、第１のＷｅｂページ上の当該入力欄に対応して表示される文字列が、入力値抽出用テーブル１２ｂに登録されている入力方法を示す文字列を含むときは、入力値抽出用テーブル１２ｂから当該入力方法に対応付けて登録されている入力値の候補が取得され、当該取得された入力値の候補が、入力条件を満たすと推測される入力値として決定されることになる。こうして決定された入力値は、上記抽出されたテキストデータに対応する入力欄を定義するｉｎｐｕｔタグ内に記述されたパラメータ名に対応付けられて記憶される（この入力値及びパラメータ名は、ステップＳ１２でリクエストに含められる）。
【００４７】
一方、自動入力クローラ部１５ａは、抽出したテキストデータに対応する入力欄に入力方法を示す文字列が対応付けられていないと判定した場合には（ステップＳ８：ＮＯ）、例えば予め設定された入力値の候補（例えば、任意の英数字が所定数連続した値）を入力条件を満たすと推測される入力値として決定し（ステップＳ１０）、ステップＳ１１に進む。こうして決定された入力値は、上記抽出されたテキストデータに対応する入力欄を定義するｉｎｐｕｔタグ内に記述されたパラメータ名に対応付けられて記憶される（この入力値及びパラメータ名は、ステップＳ１２でリクエストに含められる）。
【００４８】
そして、ステップＳ１１では、自動入力クローラ部１５ａは、複数の入力項目のうち、未だテキストデータが抽出されていない入力項目が有るか否かを判定し、無いと判定した場合には（ステップＳ１１：ＮＯ）、ステップＳ１２へ進む。一方、自動入力クローラ部１５ａは、未だテキストデータが抽出されていない入力項目が有ると判定した場合には（ステップＳ１１：ＹＥＳ）、ステップＳ１に戻り、複数の入力項目のうち、未だテキストデータが抽出されていない入力項目（例えば、項目名が“郵便番号”である入力項目）に対応するテキストデータを第１のＷｅｂページから抽出し、当該抽出したテキストデータに対して、上記と同様にステップＳ２以降の処理を行う。こうして、第１のＷｅｂページに設けられた全ての入力欄への入力値が決定される。
【００４９】
ステップＳ１２では、自動入力クローラ部１５ａは、第１のＷｅｂページに設けられた各入力欄に対して決定された各入力値及びパラメータ名を含むリクエスト（第２のＷｅｂページのリクエスト）を、上記第１のＷｅｂページの取得元のＷｅｂサーバＳＡへ送信する。こうしてリクエストを受信したＷｅｂサーバＳＡのＷｅｂアプリケーションＡＰは、当該リクエストに含まれる各入力値を受け付け当該各入力値が所定の入力条件を満たす場合に例えば確認画面が含まれる第２のＷｅｂページをレスポンスとして自動入力クローラ部１５ａへ送信する。図５（Ａ）に、確認画面を有する第２のＷｅｂページの一例を示す。図５（Ａ）に示すＷｅｂページ上にはエラーメッセージは表示されない。
【００５０】
一方、ＷｅｂアプリケーションＡＰは、リクエストに含まれる入力値の中で入力条件を満たさない入力値がある場合、当該入力値に対応するパラメータ名に対して予め設定されたエラーメッセージが含まれるＷｅｂページをレスポンスとして自動入力クローラ部１５ａへ送信する。図５（Ｂ）に、エラーメッセージ（エラー画面）が含まれるＷｅｂページの一例を示す。図５（Ｂ）の例では、項目名が“郵便番号”と、“会社名”と、“メールアドレス”である入力項目に対してエラーメッセージが表示されている。このうち、項目名が“郵便番号”である入力項目に対するエラーメッセージは、「郵便番号を入力してください。※数字３文字−（ハイフン）数字４文字」という文字列から構成されている。なお、図５（Ｃ）は、項目名が“郵便番号”である入力項目に対応するＨＴＭＬソースを示す図である。
【００５１】
次いで、自動入力クローラ部１５ａは、Ｗｅｂページからレスポンスとして送信されたＷｅｂページを受信すると（ステップＳ１３）、当該Ｗｅｂページにエラーメッセージが含まれるか否かを判定する（ステップＳ１４）。例えば、自動入力クローラ部１５ａは、受信されたＷｅｂページのＨＴＭＬ文書中に、エラーメッセージ中で一般に使用される文字（この文字は事前に設定される）が含まれている場合、当該Ｗｅｂページにエラーメッセージが含まれていると判定する。これにより、エラーメッセージの文字列が特定される。なお、エラーメッセージ中で一般に使用される文字としては、例えば、「を入力してください」などの文字列が挙げられる。また、例えば、「を入力してください」の前又は後に、入力方法を示す文字列（例えば、“全角文字”又は“数字３文字”）又は入力例を示す文字列が記述されている場合に、当該Ｗｅｂページにエラーメッセージが含まれていると判定されるように構成してもよい。また、エラーメッセージが含まれるＷｅｂページのＨＴＭＬ文書には、パラメータ名が記述されていないことが多い。そのため、受信されたＷｅｂページのＨＴＭＬ文書中にパラメータ名が記述されていない場合、当該Ｗｅｂページにエラーメッセージが含まれていないと判定されるように構成してもよい。
【００５２】
そして、自動入力クローラ部１５ａは、Ｗｅｂページにエラーメッセージが含まれないと判定した場合には（ステップＳ１４：ＮＯ）、検査対象として取得したＷｅｂページに対する上記処理を終了し、次の検査対象となるＷｅｂページに対する上記処理を開始する。ここで、次の検査対象となるＷｅｂページには、上記第２のＷｅｂページに入力フォームが設けられていれば、この第２のＷｅｂページが該当する。一方、上記第２のＷｅｂページに入力フォームが設けられていなければ、次の検査対象となるＷｅｂページには、ＵＲＬ登録リストに登録された次のＵＲＬにしたがってＷｅｂサーバＳＡから取得された次の第１のＷｅｂページが該当する。そして、自動入力クローラ部１５ａにより例えばＵＲＬ登録リストに登録された全てのＵＲＬに対応するＷｅｂサイトから取得されたＷｅｂページに対して上記図４に示す処理が行われた後、続いて、脆弱性検査部１５ｂにより検査対象となるＷｅｂページに対して脆弱性を検査する処理が行われることになる。
【００５３】
なお、Ｗｅｂページにエラーメッセージが含まれない場合、このＷｅｂページに設けられた入力欄への入力値は確定したことになる。そのため、自動入力クローラ部１５ａは、特に、入力例を示す文字列から決定された入力値を、次回以降に使用可能な入力値の候補としてパラメータ名等に対応付けて入力値抽出用テーブル１２ａに登録する。これにより、入力値抽出用テーブル１２ａの内容が次第に充実され、入力欄に入力すべき入力値の推測精度を高めていくことができる。
【００５４】
一方、自動入力クローラ部１５ａは、Ｗｅｂページにエラーメッセージが含まれると判定した場合には（ステップＳ１４：ＹＥＳ）、ステップＳ１５に進む。そして、ステップＳ１５では、自動入力クローラ部１５ａは、当該エラーメッセージを解析して当該エラーメッセージに対応する入力欄への入力条件を満たすと推測される入力値を決定する。例えば、エラーメッセージの文字列が含まれるテキストデータを囲む＜ｔｒ＞と＜／ｔｒ＞内に入力例を示す文字列が含まれる場合、自動入力クローラ部１５ａは、当該入力例を示す文字列を入力条件を満たすと推測される入力値として決定する。また、エラーメッセージの文字列が含まれるテキストデータを囲む＜ｔｒ＞と＜／ｔｒ＞内に入力方法を示す文字列が含まれる場合、自動入力クローラ部１５ａは、当該入力方法を示す文字列に対応付けられている入力値の候補を、入力値抽出用テーブル１２ｂから取得し、当該取得した入力値の候補を入力条件を満たすと推測される入力値として決定する。
【００５５】
ここで、図５（Ｂ），（Ｃ）に示す「郵便番号を入力してください。※数字３文字−（ハイフン）数字４文字」というエラーメッセージに基づき入力値を決定する場合について説明する。この場合、自動入力クローラ部１５ａは、例えば、エラーメッセージに含まれる“数字３文字”（入力方法を示す文字列）に基づき、入力値抽出用テーブル１２ｂに登録された「半角数字」又は「全角数字」に対応付けられている入力値の候補を特定し、当該特定した入力値の候補の先頭からその３文字分取得する。このとき、自動入力クローラ部１５ａは、入力値抽出用テーブル１２ｂと併せて補助テーブル１２ｄを参照することにより「３」（字数）を判定する。同様に、自動入力クローラ部１５ａは、エラーメッセージに含まれる“数字４文字”に基づき、入力値抽出用テーブル１２ｂに登録された「半角数字」又は「全角数字」に対応付けられている入力値の候補を特定し、当該特定した入力値の先頭からその４文字分取得する。このとき、自動入力クローラ部１５ａは、入力値抽出用テーブル１２ｂと併せて補助テーブル１２ｄを参照することにより「４」（字数）を判定する。また、自動入力クローラ部１５ａは、入力値抽出用テーブル１２ｃを参照して、エラーメッセージに含まれる“ハイフン”に対応付けられている“−”を取得する。そして、自動入力クローラ部１５ａは、数字３文字と“−”と数字４文字とを組み合わせて入力値（郵便番号）を決定する。
【００５６】
以上のように、自動入力クローラ部１５ａは、エラーメッセージを解析することにより入力値を決定すると、ステップＳ１２に移行し、当該決定した入力値を含むリクエストをＷｅｂサーバＳＡへ送信する。そして、ＷｅｂアプリケーションＡＰから、再度、エラーメッセージが含まれるＷｅｂページが自動入力クローラ部１５ａへ送信された場合、上記ステップＳ１５の処理が行われる。なお、同じエラーメッセージが含まれるＷｅｂページが所定回数（例えば２回）続けて受信された場合、自動入力クローラ部１５ａは、例えば、当該ＷｅｂページのＵＲＬをエラーページリストに登録して、当該Ｗｅｂページに対する上記処理を終了し次の検査対象となるＷｅｂページに対する上記処理へ移行する。なお、エラーページリストにＵＲＬが登録されたＷｅｂページについては、例えば検査対象となる全てのＷｅｂページに対する上記処理の終了後に、検査者により手動で入力欄への入力操作により入力値が決定されることになる。
【００５７】
以上説明したように、上記実施形態によれば、自動入力クローラ部１５ａは、検査対象として取得した第１のＷｅｂページ上で入力フォームを構成する各入力欄に対応付けられて表示される各文字列に基づいて、各入力項目の入力値であって入力条件を満たすと推測される各入力値を決定し、決定した各入力値を含むリクエストを、ＷｅｂアプリケーションＡＰが動作しているＷｅｂサーバＳＡへ送信するように構成したので、Ｗｅｂページ上の入力フォームを構成する各入力欄に入力すべき入力値の推測精度を高め、より効率良く自動クロールを行うことができる。これにより、複数のＷｅｂページについて連続した脆弱性の自動検査が可能となり、その結果、手動による検査の作業負荷を軽減することができる。また、複数の決定方法を用いて図４に示す処理手順で入力値を決定するように構成したので、より確実に入力値を決定することができる。
【符号の説明】
【００５８】
１  脆弱性検査装置
１１  通信部
１２  記憶部
１２ａ〜１２ｃ  入力値抽出用テーブル
１２ｄ  補助テーブル
１３  操作部
１４  表示部
１５  演算処理部
１５ａ  自動入力クローラ部
１５ｂ  脆弱性検査部  
１５ｃ  検査結果出力部
【図１】
2012078877.tif 000003
【図２】
2012078877.tif 000004
【図３】
2012078877.tif 000005
【図４】
2012078877.tif 000006
【図５】
2012078877.tif 000007