(57)【要約】      （修正有）【課題】複数の診断エンジンを用いることにより脆弱性の検出精度を高めた脆弱性診断装置、脆弱性診断方法及びプログラムを提供する。【解決手段】診断対象３０の脆弱性の有無を診断する複数の診断エンジン１０４を有する脆弱性診断装置１０であって、診断項目毎に、複数の診断エンジン１０４のうち、前記診断項目に関する脆弱性の有無を診断する診断エンジン１０４が対応付けられたマッピング情報を作成する作成手段１０２と、作成手段１０２により作成されたマッピング情報に基づいて、前記診断項目毎に、該診断項目に対応付けられている診断エンジン１０４によって診断対象３０の脆弱性を診断する診断手段１０３と、を有する。【選択図】図２
2020003899.tif 000002
【特許請求の範囲】
【請求項１】
診断対象の脆弱性の有無を診断する複数の診断エンジンを有する脆弱性診断装置であって、
診断項目毎に、前記複数の診断エンジンのうち、前記診断項目に関する脆弱性の有無を診断する診断エンジンが対応付けられたマッピング情報を作成する作成手段と、
前記作成手段により作成されたマッピング情報に基づいて、前記診断項目毎に、該診断項目に対応付けられている診断エンジンによって前記診断対象の脆弱性を診断する診断手段と、
を有することを特徴とする脆弱性診断装置。
【請求項２】
前記作成手段は、
前記診断エンジンの特性に応じて、前記診断項目毎に、該診断項目に関する脆弱性の有無を診断する診断エンジンを対応付けることで、前記マッピング情報を作成する、
ことを特徴とする請求項１に記載の脆弱性診断装置。
【請求項３】
前記診断エンジンの特性は、高精度に脆弱性の有無を診断可能な診断項目を示す情報と、高速に脆弱性の有無を診断可能な診断項目を示す情報との少なくとも一方であり、
前記作成手段は、
前記診断項目毎に、該診断項目に関する脆弱性の有無を最も高精度に診断可能な診断エンジン又は前記診断項目に関する脆弱性の有無を最も高速に診断可能な診断エンジンを対応付けることで、前記マッピング情報を作成する、
ことを特徴とする請求項２に記載の脆弱性診断装置。
【請求項４】
前記作成手段は、
更に、ユーザによる設定にも応じて、前記マッピング情報を作成する、
ことを特徴とする請求項２又は３に記載の脆弱性診断装置。
【請求項５】
前記設定には、前記脆弱性の有無を診断する診断項目を示す設定と、前記診断項目に関する脆弱性の有無を診断する診断エンジンの数を示す設定との少なくとも一方が含まれる、
ことを特徴とする請求項４に記載の脆弱性診断装置。
【請求項６】
前記作成手段は、
前記診断項目毎に、該診断項目に関する脆弱性の有無を診断する１以上の診断エンジンが対応付けられたマッピング情報を作成する、
ことを特徴とする請求項１乃至５の何れか一項に記載の脆弱性診断装置。
【請求項７】
複数の前記診断エンジンからそれぞれ出力される第１の診断結果に基づいて、所定のフォーマットの第２の診断結果を作成する結果作成手段と、
前記結果作成手段により作成された第２の診断結果を、前記脆弱性診断装置とネットワークを介して接続される端末装置に表示させる表示手段と、
を有することを特徴とする請求項１乃至６の何れか一項に記載の脆弱性診断装置。
【請求項８】
診断対象の脆弱性の有無を診断する複数の診断エンジンを有するコンピュータが、
診断項目毎に、前記複数の診断エンジンのうち、前記診断項目に関する脆弱性の有無を診断する診断エンジンが対応付けられたマッピング情報を作成する作成手順と、
前記作成手順により作成されたマッピング情報に基づいて、前記診断項目毎に、該診断項目に対応付けられている診断エンジンによって前記診断対象の脆弱性を診断する診断手順と、
を実行することを特徴とする脆弱性診断方法。
【請求項９】
コンピュータを、請求項１乃至７の何れか一項に記載の脆弱性診断装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、脆弱性診断装置、脆弱性診断方法及びプログラムに関する。
【背景技術】
【０００２】
Ｗｅｂアプリケーションスキャナと呼ばれるソフトウェアが従来から知られている。Ｗｅｂアプリケーションスキャナでは、Ｗｅｂアプリケーションに対して疑似的な攻撃を行うことで、当該Ｗｅｂアプリケーションの脆弱性を検出する。また、このようなＷｅｂアプリケーションスキャナを診断エンジンに用いて、Ｗｅｂアプリケーションの脆弱性を診断するサービス（以降では、このサービスを「脆弱性診断サービス」とも表す。）がクラウドサービスとして提供されている。
【０００３】
他方で、検査データをＷｅｂアプリケーションに送信することで、当該Ｗｅｂアプリケーションの脆弱性を検出する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２４１９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、Ｗｅｂアプリケーションスキャナは、様々なベンダ等から様々な種類のソフトウェアが販売又は配布されており、その性能も異なる。このため、Ｗｅｂアプリケーションスキャナの種類によって、或る脆弱性については他のＷｅｂアプリケーションスキャナよりも高精度に検出することができる一方で、他の或る脆弱性については他のＷｅｂアプリケーションスキャナよりも検出精度が劣る場合等がある。
【０００６】
しかしながら、従来の脆弱性診断サービスでは、或る１つのＷｅｂアプリケーションスキャナを診断エンジンとして用いており、診断対象の脆弱性によっては必ずしも検出精度が高くない場合があった。
【０００７】
本発明の実施の形態は、上記の点に鑑みてなされたもので、複数の診断エンジンを用いて脆弱性を検出することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の実施の形態は、診断対象の脆弱性の有無を診断する複数の診断エンジンを有する脆弱性診断装置であって、診断項目毎に、前記複数の診断エンジンのうち、前記診断項目に関する脆弱性の有無を診断する診断エンジンが対応付けられたマッピング情報を作成する作成手段と、前記作成手段により作成されたマッピング情報に基づいて、前記診断項目毎に、該診断項目に対応付けられている診断エンジンによって前記診断対象の脆弱性を診断する診断手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明の実施の形態によれば、複数の診断エンジンを用いて脆弱性を検出することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る脆弱性診断システムの全体構成の一例を示す図である。
【図２】本実施形態に係る脆弱性診断システムの機能構成の一例を示す図である。
【図３】診断項目情報の一例を示す図である。
【図４】エンジン特性情報の一例を示す図である。
【図５】脆弱性の診断処理の一例を示すフローチャートである。
【図６】診断開始画面の一例を示す図である。
【図７】マッピング情報の一例を示す図である。
【図８】診断結果画面の一例を示す図である。
【図９】エンジン特性情報の他の例を示す図である。
【図１０】診断開始画面の他の例を示す図（その１）である。
【図１１】診断開始画面の他の例を示す図（その２）である。
【図１２】マッピング情報の他の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態（以降、「本実施形態」と表す。）について説明する。以降では、複数の診断エンジンを用いてＷｅｂアプリケーションの脆弱性を診断する脆弱性診断システム１について説明する。診断エンジンとは、Ｗｅｂアプリケーションスキャナ等により実現され、Ｗｅｂアプリケーションの脆弱性の検出を行うソフトウェアのことである。
【００１２】
なお、本実施形態では、脆弱性の診断対象はＷｅｂアプリケーションであるものとするが、これに限られず、例えば、Ｗｅｂアプリケーションの実現に必要なＯＳ（Operating System）やミドルウェア等も脆弱性の診断対象としても良い。このようなミドルウェアとしては、例えば、Ｗｅｂサーバとして機能するソフトウェアやサーブレットコンテナとして機能するソフトウェア等が挙げられる。
【００１３】
＜全体構成＞
まず、本実施形態に係る脆弱性診断システム１の全体構成について、図１を参照しながら説明する。図１は、本実施形態に係る脆弱性診断システム１の全体構成の一例を示す図である。
【００１４】
図１に示すように、本実施形態に係る脆弱性診断システム１には、脆弱性診断装置１０と、端末装置２０と、診断対象サーバ３０とが含まれる。脆弱性診断装置１０と、端末装置２０と、診断対象サーバ３０とは、例えばインターネット等のネットワークＮを介して通信可能に接続される。
【００１５】
脆弱性診断装置１０は、クラウドサービスとして脆弱性診断サービスを提供するコンピュータ又はコンピュータシステムである。脆弱性診断装置１０は、端末装置２０における診断開始操作に応じて、当該端末装置２０のユーザにより指定された診断対象（Ｗｅｂアプリケーション）の脆弱性を診断する。このとき、本実施形態に係る脆弱性診断装置１０は、複数の診断エンジンを用いてＷｅｂアプリケーションの脆弱性を診断する。
【００１６】
端末装置２０は、脆弱性診断サービスのユーザが利用するコンピュータである。ユーザは、端末装置２０を用いて、診断対象のＵＲＬ（Uniform Resource Locator）等を指定することで、当該ＵＲＬにより示されるＷｅｂアプリケーションの脆弱性を診断することができる。なお、端末装置２０としては、例えば、ＰＣ（パーソナルコンピュータ）、スマートフォン、タブレット端末等を用いることができる。
【００１７】
診断対象サーバ３０は、脆弱性診断装置１０によって脆弱性が診断されるＷｅｂアプリケーションサーバである。
【００１８】
なお、図１に示す脆弱性診断システム１の構成は一例であって、他の構成であっても良い。例えば、脆弱性診断装置１０と端末装置２０とが一体で構成されていても良い。また、脆弱性診断装置１０は、クラウドサービスとして脆弱性診断サービスを提供する場合に限られず、例えば、端末装置２０及び診断対象サーバ３０と同一ネットワーク内に設置されていても良い。すなわち、脆弱性診断装置１０は、オンプレミスとして設置されていても良い。
【００１９】
＜機能構成＞
次に、本実施形態に係る脆弱性診断システム１の機能構成について、図２を参照しながら説明する。図２は、本実施形態に係る脆弱性診断システム１の機能構成の一例を示す図である。
【００２０】
図２に示すように、本実施形態に係る脆弱性診断システム１に含まれる脆弱性診断装置１０は、入出力部１０１と、マッピング作成部１０２と、エンジン制御部１０３と、複数の診断エンジン１０４と、診断結果作成部１０５とを有する。これら各機能部は、脆弱性診断装置１０にインストールされた１以上のプログラムがＣＰＵ（Central Processing Unit）に実行させる処理により実現される。
【００２１】
また、本実施形態に係る脆弱性診断装置１０は、診断項目情報記憶部１１０と、エンジン特性情報記憶部１２０とを有する。これら各記憶部は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の補助記憶装置を用いて実現可能である。なお、これら各記憶部のうちの少なくとも１つが、脆弱性診断装置１０とネットワークＮを介して接続される記憶装置等を用いて実現されていても良い。
【００２２】
入出力部１０１は、端末装置２０に対して各種画面を表示させたり、端末装置２０における各種操作を受け付けたりする。端末装置２０における各種操作としては、例えば、Ｗｅｂアプリケーションの脆弱性診断を開始させるための診断開始操作等が挙げられる。
【００２３】
マッピング作成部１０２は、診断項目情報記憶部１１０に記憶されている診断項目情報とエンジン特性情報記憶部１２０に記憶されているエンジン特性情報とを参照して、脆弱性に関するどの診断項目をどの診断エンジン１０４によって診断するかを示すマッピング情報を作成する。
【００２４】
エンジン制御部１０３は、マッピング情報を用いて複数の診断エンジン１０４を制御することで、これら複数の診断エンジン１０４にＷｅｂアプリケーションの脆弱性を診断させる。
【００２５】
診断エンジン１０４は、Ｗｅｂアプリケーションの脆弱性を診断するエンジンである。診断エンジン１０４は、Ｗｅｂアプリケーションスキャナ等により実現される。診断エンジン１０４は、例えば、診断対象のＷｅｂアプリケーションに対して、診断項目に応じた疑似的な攻撃を行い、この攻撃に対するＷｅｂアプリケーションからの応答を検証することで、当該診断項目に関して当該Ｗｅｂアプリケーションの脆弱性を診断する。
【００２６】
ここで、複数の診断エンジン１０４の各々を区別して表すときは、「第１の診断エンジン１０４Ａ」、「第２の診断エンジン１０４Ｂ」等と表す。なお、複数の診断エンジン１０４の各々を区別して表した場合、各々の診断エンジン１０４は異なる種類のＷｅｂアプリケーションスキャナ等により実現されるものとする。例えば、第１の診断エンジン１０４Ａと第２の診断エンジン１０４Ｂとは、それぞれ異なる種類のＷｅｂアプリケーションスキャナ等により実現されるものとする。
【００２７】
診断結果作成部１０５は、複数の診断エンジン１０４の各々の診断結果から最終的な診断結果を作成する。診断結果作成部１０５により作成された診断結果は、入出力部１０１により端末装置２０に出力され、診断結果画面として当該端末装置２０上に表示される。
【００２８】
診断項目情報記憶部１１０は、脆弱性に関する診断項目を示す診断項目情報を記憶する。ここで、診断項目情報記憶部１１０に記憶されている診断項目情報について、図３を参照しながら説明する。図３は、診断項目情報の一例を示す図である。
【００２９】
図３に示すように、診断項目情報記憶部１１０には、複数の診断項目情報（図３に示す例では、１４件の診断項目情報）が記憶されている。各診断項目情報には、「項番」と、「診断項目」とが含まれる。「項番」は、各診断項目情報を識別する番号である。「診断項目」は、脆弱性に関する診断項目の内容である。
【００３０】
例えば、項番「１」の診断項目情報には、診断項目として、「ファイルアップロードに関するチェック」が含まれる。このことは、項番「１」の診断項目情報は、ファイルアップロードに関する脆弱性を診断するための診断項目の情報であることを示している。
【００３１】
同様に、項番「２」の診断項目情報には、診断項目として、「内部データ／ログデータ露出に関するチェック」が含まれる。このことは、項番「２」の診断項目情報は、内部データ／ログデータの露出に関する脆弱性を診断するための診断項目の情報であることを示している。他の項番の診断項目情報についても上記と同様である。
【００３２】
このように、診断項目情報記憶部１１０には、診断項目毎に、この診断項目を示す診断項目情報が記憶されている。なお、図３に示す例では、１４件の診断項目情報が診断項目情報記憶部１１０に記憶されているが、これは一例である。診断項目の数は、例えば、脆弱性診断装置１０の管理者等が任意に変更することができる。また、各診断項目の内容も、例えば、脆弱性診断装置１０の管理者等が任意に変更することができる。
【００３３】
エンジン特性情報記憶部１２０は、各診断エンジン１０４の特性を示すエンジン特性情報を記憶する。ここで、エンジン特性情報記憶部１２０に記憶されているエンジン特性情報について、図４を参照しながら説明する。図４は、エンジン特性情報の一例を示す図である。
【００３４】
図４に示すように、エンジン特性情報記憶部１２０には、複数のエンジン特性情報（図４に示す例では、２件のエンジン特性情報）が記憶されている。各エンジン特性情報には、「エンジン名」と、「エンジン特性」とが含まれる。
【００３５】
「エンジン名」は、診断エンジン１０４の名称である。例えば、エンジン名「エンジンＡ」は、第１の診断エンジン１０４Ａの名称である。同様に、例えば、エンジン名「エンジンＢ」は、第２の診断エンジン１０４Ｂの名称である。
【００３６】
「エンジン特性」は、エンジン名に対応する診断エンジン１０４の特性として、高精度で診断が可能な診断項目の項番が設定される。
【００３７】
例えば、エンジン名「エンジンＡ」のエンジン特性は「項番１，２，４」である。このことは、第１の診断エンジン１０４Ａは、項番「１」の診断項目と、項番「２」の診断項目と、項番「４」の診断項目とを高精度に診断することができることを示している。
【００３８】
同様に、例えば、エンジン名「エンジンＢ」のエンジン特性は「項番３，６，９」である。このことは、第２の診断エンジン１０４Ｂは、項番「３」の診断項目と、項番「６」の診断項目と、項番「９」の診断項目とを高精度に診断することができることを示している。
【００３９】
このように、エンジン特性情報記憶部１２０には、診断エンジン１０４毎に、当該診断エンジン１０４の特性を示すエンジン特性情報が記憶されている。なお、図４に示す例では、２件のエンジン特性情報がエンジン特性情報記憶部１２０に記憶されているが、エンジン特性情報記憶部１２０には、診断エンジン１０４の数と同数のエンジン特性情報が記憶される。したがって、診断エンジン１０４の数が増減した場合、エンジン特性情報記憶部１２０に記憶されているエンジン特性情報の数も増減する。診断エンジン１０４の増減に伴うエンジン特性情報の増減は、例えば、脆弱性診断装置１０の管理者等が行うことができる。
【００４０】
＜脆弱性の診断処理＞
次に、脆弱性診断装置１０が実行する処理（脆弱性の診断処理）の詳細について、図５を参照しながら説明する。図５は、脆弱性の診断処理の一例を示すフローチャートである。
【００４１】
まず、脆弱性診断装置１０の入出力部１０１は、端末装置２０からの要求（脆弱性診断サービスの利用開始要求）に応じて、例えば図６に示す診断開始画面Ｇ１００を当該端末装置２０に表示させる（ステップＳ１０１）。なお、端末装置２０は、例えば、脆弱性診断サービスの利用を開始するためのＵＲＬがＷｅｂブラウザに入力等されることで、脆弱性診断サービスの利用開始要求を行うことができる。
【００４２】
図６に示す診断開始画面Ｇ１００には、ＵＲＬ入力欄Ｇ１１０と、診断開始ボタンＧ１２０とが含まれる。ＵＲＬ入力欄Ｇ１１０は、診断対象のＷｅｂアプリケーション（診断対象サーバ３０が提供するＷｅｂアプリケーション）を示すＵＲＬを入力するための入力欄である。端末装置２０のユーザは、診断対象のＷｅｂアプリケーションを示すＵＲＬをＵＲＬ入力欄Ｇ１１０に入力した上で、診断開始ボタンＧ１２０を押下することで、当該Ｗｅｂアプリケーションの脆弱性の診断を開始するための診断開始操作を行うことができる。
【００４３】
次に、脆弱性診断装置１０の入出力部１０１は、端末装置２０における診断開始操作を受け付ける（ステップＳ１０２）。
【００４４】
次に、脆弱性診断装置１０のマッピング作成部１０２は、診断項目情報記憶部１１０に記憶されている診断項目情報とエンジン特性情報記憶部１２０に記憶されているエンジン特性情報とを参照して、マッピング情報を作成する（ステップＳ１０３）。マッピング情報は、上述したように、どの診断項目をどの診断エンジン１０４によって診断するかを示す情報である。
【００４５】
ここで、マッピング作成部１０２は、例えば、各診断項目情報がそれぞれ示す各診断項目毎に、診断項目と、当該診断項目に関する脆弱性を最も高い精度で診断可能な診断エンジン１０４のエンジン名とを対応付ける（マッピングする）ことで作成する。
【００４６】
例えば、エンジン特性情報記憶部１２０に記憶されているエンジン特性情報を参照すると、項番「１」の診断項目については、エンジン名「エンジンＡ」が高精度に診断することできる。このため、マッピング作成部１０２は、項番「１」の診断項目と、エンジン名「エンジンＡ」とを対応付ける。
【００４７】
同様に、例えば、エンジン特性情報記憶部１２０に記憶されているエンジン特性情報を参照すると、項番「３」の診断項目については、エンジン名「エンジンＢ」が高精度に診断することができる。このため、マッピング作成部１０２は、項番「３」の診断項目と、エンジン名「エンジンＢ」とを対応付ける。
【００４８】
ここで、或る診断項目について、高精度に診断可能な診断エンジン１０４が存在しない場合も有り得る。この場合、例えば、予め決められた１つの診断エンジン１０４（デフォルトの診断エンジン１０４等）のエンジン名を当該診断項目に対応付けても良いし、全て又は一部の診断エンジン１０４のエンジン名を当該診断項目に対応付けても良い。
【００４９】
同様に、或る診断項目について、高精度に診断可能な診断エンジン１０４が複数存在する場合も有り得る。この場合、例えば、これらの複数の診断エンジン１０４のうち予め決められた１つの診断エンジン１０４（例えば、特に高精度に診断可能な診断エンジン１０４等）のエンジン名を当該診断項目に対応付ければ良い。
【００５０】
このように、マッピング作成部１０２は、診断項目毎に、当該診断項目に関する脆弱性を最も高い精度で診断可能な診断エンジン１０４のエンジン名を対応付けることで、マッピング情報を作成する。マッピング作成部１０２により作成されたマッピング情報の一例を図７に示す。図７に示すように、マッピング情報では、診断項目毎に、当該診断項目に関する脆弱性を診断する診断エンジン１０４のエンジン名が対応付けられている。
【００５１】
なお、本実施形態では、診断開始操作を受け付けた後（ステップＳ１０２の後）に、マッピング作成部１０２によりマッピング情報を作成するものとしたが、これに限られず、例えば、マッピング作成部１０２によりマッピング情報を予め作成し、所定の記憶領域に記憶しておいても良い。また、このとき、マッピング情報は、例えば、脆弱性診断サービスを利用するユーザ毎に作成され、所定の記憶領域に記憶されていても良い。
【００５２】
次に、脆弱性診断装置１０のエンジン制御部１０３は、マッピング情報を用いて複数の診断エンジン１０４を制御し、これら複数の診断エンジン１０４によってＷｅｂアプリケーションの診断を実行する（ステップＳ１０４）。
【００５３】
すなわち、エンジン制御部１０３は、マッピング情報に含まれる診断項目毎に、当該診断項目に対応付けられているエンジン名の診断エンジン１０４に対して診断要求を行うことで、当該診断エンジン１０４によって当該診断項目に関する脆弱性の診断を実行する。
【００５４】
より具体的には、例えば、図７に示すマッピング情報の項番「１」の診断項目には、エンジン名「エンジンＡ」が対応付けられている。このため、エンジン制御部１０３は、第１の診断エンジン１０４Ａに対して、当該診断項目の診断要求を行う。これにより、第１の診断エンジン１０４Ａによって当該診断項目の診断が実行される。
【００５５】
同様に、例えば、図７に示すマッピング情報の項番「３」の診断項目には、エンジン名「エンジンＢ」が対応付けられている。このため、エンジン制御部１０３は、第２の診断エンジン１０４Ｂに対して、当該診断項目の診断要求を行う。これにより、第２の診断エンジン１０４Ｂによって当該診断項目の診断が実行される。
【００５６】
このように、エンジン制御部１０３は、診断項目毎に、当該診断項目に対応する診断エンジン１０４に対して診断要求を行う。これにより、診断項目に応じた診断エンジン１０４（すなわち、当該診断項目を高精度に診断可能な診断エンジン１０４）により脆弱性の診断を行うことができる。
【００５７】
なお、同一の診断エンジン１０４が複数の診断項目を診断する場合、エンジン制御部１０３は、当該診断エンジン１０４に対して、診断項目毎に繰り返し診断要求を行っても良いし、複数の診断項目をまとめて１つの診断要求を行っても良い。
【００５８】
ここで、各診断エンジン１０４は、脆弱性に関する診断の実行が完了すると、診断結果を出力する。これらの診断結果には、例えば、診断項目と、この診断項目に関する脆弱性の検出結果とが含まれる。ただし、これらの診断結果のフォーマット（データ形式等）は、診断エンジン１０４によって異なる場合がある。例えば、第１の診断エンジン１０４Ａから出力される診断結果と、第２の診断エンジン１０４Ｂから出力される診断結果とは、フォーマットが異なる場合がある。
【００５９】
次に、脆弱性診断装置１０の診断結果作成部１０５は、各診断エンジン１０４の各々から出力された診断結果から最終的な診断結果を作成する（ステップＳ１０５）。上述したように、各診断エンジン１０４の各々から出力された診断結果は、そのフォーマットが異なる場合がある。このため、診断結果作成部１０５は、これらの診断結果に含まれる診断項目と、この診断項目に関する脆弱性の検出結果とに基づいて、所定のフォーマットで最終的な診断結果を作成する。これにより、各診断エンジン１０４がそれぞれ出力する診断結果のフォーマットが異なる場合であっても、後述するステップＳ１０６で、端末装置２０のユーザは、各診断項目の診断結果を所定のフォーマットで確認することができるようになる。
【００６０】
なお、このとき、診断結果作成部１０５は、最終的な診断結果として、例えば、診断項目に関する概要の説明や脆弱性が検出された場合における対策方法等も含まれる診断結果を作成する。
【００６１】
次に、脆弱性診断装置１０の入出力部１０１は、例えば図８に示す診断結果画面Ｇ２００を端末装置２０に表示させる（ステップＳ１０６）。
【００６２】
図８に示す診断結果画面Ｇ２００には、診断結果表示欄Ｇ２１０と、詳細ボタンＧ２２０とが含まれる。診断結果表示欄Ｇ２１０には、診断結果作成部１０５が作成した診断結果が含まれる診断結果が表示される。端末装置２０のユーザは、診断結果表示欄Ｇ２１０を参照することで、各診断項目について、脆弱性の検出された数をユーザに通知する検知数、診断項目の概要説明、脆弱性が検出された場合における対策方法等を確認することができる。これにより、端末装置２０のユーザは、診断対象のＷｅｂアプリケーションの脆弱性とその対策方法を知ることができる。
【００６３】
ここで、ユーザにより詳細ボタンＧ２２０が押下された場合、端末装置２０には、より詳細な診断結果が表示される。より詳細な診断結果とは、例えば、各診断項目について、どの診断エンジン１０４で診断されたか等を示す情報である。これにより、端末装置２０のユーザは、どの診断項目がどの診断エンジン１０４によって診断されたのかを知ることができる。なお、より詳細な診断結果として、上記以外にも、例えば、各診断項目について、診断に要した時間や診断に用いたデータ（疑似的な攻撃を行うためのデータ）等が表示されても良い。
【００６４】
以上のように、本実施形態に係る脆弱性診断装置１０では、Ｗｅｂアプリケーション等の診断対象の脆弱性を複数の診断エンジン１０４によって診断することができる。これにより、本実施形態に係る脆弱性診断装置１０では、診断エンジン１０４の特性に応じて、診断項目毎に、当該診断項目を高精度に診断可能な診断エンジン１０４によって診断することができるようになる。
【００６５】
また、本実施形態に係る脆弱性診断装置１０は、マッピング情報によって各診断項目と各診断エンジン１０４とをマッピングすることで、どの診断項目をどの診断エンジン１０４によって診断するかを管理する。このため、本実施形態に係る脆弱性診断装置１０では、診断エンジン１０４の追加や削除、変更を行うことができる。診断エンジン１０４が追加や削除、変更された場合、本実施形態に係る脆弱性診断装置１０は、マッピング情報を再作成することで、追加や削除、変更された後の診断エンジン１０４を用いた診断を行うことができるようになる。
【００６６】
＜他の例（その１）＞
ここで、本実施形態に係る脆弱性診断装置１０の他の例（その１）について説明する。本実施形態に係る脆弱性診断装置１０は、エンジン特性情報記憶部１２０に記憶されているエンジン特性情報として、例えば、図９に示すエンジン特性情報を用いても良い。
【００６７】
図９に示すエンジン特性情報には、エンジン特性として、高精度で診断が可能な診断項目の項番と、高速に診断が可能な診断項目の項番とが設定される。このとき、例えば、図５のステップＳ１０１で端末装置２０に表示させる画面として、図１０に示す診断開始画面Ｇ３００を表示させることができる。
【００６８】
図１０に示す診断開始画面Ｇ３００では、優先選択欄Ｇ３１０が含まれる。優先選択欄Ｇ３１０は、精度優先の診断又は時間優先の診断のいずれを行うかをユーザが選択するための選択欄である。例えば、優先選択欄Ｇ３１０で「時間優先」がユーザにより選択された上で、診断開始ボタンＧ１２０が押下された場合、図５のＳ１０３においてマッピング作成部１０２は、診断項目毎に、診断項目と、当該診断項目に関する脆弱性を最も高速で診断可能な診断エンジン１０４のエンジン名とを対応付けたマッピング情報を作成する。
【００６９】
例えば、図９に示すエンジン特性情報を参照すると、項番「３」の診断項目については、エンジン名「エンジンＢ」が高速に診断することができる。このため、マッピング作成部１０２は、項番「３」の診断項目と、エンジン名「エンジンＢ」とを対応付ける。
【００７０】
同様に、例えば、図９に示すエンジン特性情報を参照すると、項番「４」の診断項目については、エンジン名「エンジンＡ」が高速に診断することできる。このため、マッピング作成部１０２は、項番「４」の診断項目と、エンジン名「エンジンＡ」とを対応付ける。
【００７１】
ここで、或る診断項目について、高速に診断可能な診断エンジン１０４が存在しない場合も有り得る。この場合、例えば、予め決められた１つの診断エンジン１０４（デフォルトの診断エンジン１０４又は高精度に診断可能な診断エンジン１０４等）のエンジン名を当該診断項目に対応付けても良いし、全て又は一部の診断エンジン１０４のエンジン名を当該診断項目に対応付けても良い。
【００７２】
同様に、或る診断項目について、高速に診断可能な診断エンジン１０４が複数存在する場合も有り得る。この場合、例えば、これらの複数の診断エンジン１０４のうち予め決められた１つの診断エンジン１０４（例えば、特に高速に診断可能な診断エンジン１０４又は高精度に診断可能な診断エンジン１０４等）のエンジン名を当該診断項目に対応付ければ良い。
【００７３】
なお、優先選択欄Ｇ３１０で「精度優先」がユーザにより選択された場合で、或る診断項目について、高精度に診断可能な診断エンジン１０４が存在しない場合、例えば、予め決められた１つの診断エンジン１０４（デフォルトの診断エンジン１０４又は高速に診断可能な診断エンジン１０４等）のエンジン名を当該診断項目に対応付けても良いし、全て又は一部の診断エンジン１０４のエンジン名を当該診断項目に対応付けても良い。同様に、高精度に診断可能な診断エンジン１０４が複数存在する場合、例えば、これらの複数の診断エンジン１０４のうち予め決められた１つの診断エンジン１０４（例えば、特に高精度に診断可能な診断エンジン１０４又は高速に診断可能な診断エンジン１０４等）のエンジン名を当該診断項目に対応付ければ良い。
【００７４】
このように、マッピング作成部１０２は、診断項目毎に、当該診断項目に関する脆弱性を最も高速で診断可能な診断エンジン１０４のエンジン名を対応付けたマッピング情報を作成しても良い。
【００７５】
＜他の例（その２）＞
ここで、本実施形態に係る脆弱性診断装置１０の他の例（その２）について説明する。本実施形態に係る脆弱性診断装置１０は、図５のステップＳ１０１で端末装置２０に表示させる画面として、図１１に示す診断開始画面Ｇ４００を表示させても良い。
【００７６】
図１１に示す診断開始画面Ｇ４００では、詳細設定ボタンＧ４１０が含まれる。ユーザにより詳細設定ボタンＧ４１０が押下された場合、端末装置２０には、例えば図１１に示す詳細設定画面Ｇ５００が表示される。図１１に示す詳細設定画面Ｇ５００は、脆弱性に関する診断の詳細な設定を行うための画面であり、例えば、エンジン数設定欄Ｇ５１０と、診断項目カスタマイズ欄Ｇ５２０とが含まれる。
【００７７】
エンジン数設定欄Ｇ５１０は、診断を実行するエンジン数を設定するための設定欄である。エンジン数として「シングル」が設定された場合、１つの診断項目に対して１つのエンジン名が対応付けられたマッピング情報が作成される。一方で、エンジン数として「マルチ（並列実行）」が設定され、かつ、エンジン数が入力された場合、１つの診断項目に対して、入力されたエンジン数のエンジン名が対応付けられたマッピング情報が作成される。
【００７８】
例えば、エンジン数「２」が入力された場合、１つの診断項目に対して２つのエンジン名が対応付けられたマッピング情報が作成される。したがって、この場合、１つの診断項目に関する脆弱性が、２つの診断エンジン１０４によって診断される。
【００７９】
なお、更に、ユーザは、診断項目毎に、当該診断項目に関する脆弱性を診断する診断エンジン１０４の数を設定することができても良い。これにより、ユーザは、例えば、或る診断項目については１つの診断エンジン１０４で診断し、別の或る診断項目（例えば、特に重要と考える診断項目等）については複数の診断エンジン１０４で診断する、といった設定を行うことが可能となる。
【００８０】
また、ユーザは、診断項目毎に、当該診断項目に関する脆弱性を診断する診断エンジン１０４を指定できても良い。これにより、ユーザは、所望の診断項目に関する脆弱性ついて所望の診断エンジン１０４によって診断することができるようになる。
【００８１】
診断項目カスタマイズ欄Ｇ５２０は、診断対象に対して診断を行う診断項目をカスタマイズするための設定欄である。診断項目カスタマイズ欄Ｇ５２０では、例えば、「インジェクション系の脆弱性を診断」、「データ露出系の脆弱性を診断」等の選択項目を選択することができる。例えば、「インジェクション系の脆弱性を診断」がユーザにより選択された場合、インジェクション系の脆弱性を診断するための診断項目のみが含まれるマッピング情報が作成される。同様に、例えば、「データ露出系の脆弱性を診断」がユーザにより選択された場合、データ露出系の脆弱性を診断するための診断項目のみが含まれるマッピング情報が作成される。これにより、ユーザは、例えば、或る特定の種類（例えば、インジェクション系やデータ露出系等）の脆弱性のみを診断する、といった設定を行うことが可能となる。なお、インジェクション系の脆弱性を診断するための診断項目としては、例えば、項番「５」、項番「８」、及び項番「９」等の診断項目が挙げられる。また、データ露出系の脆弱性を診断するための診断項目としては、例えば、項番「２」及び項番「３」等の診断項目が挙げられる。
【００８２】
ユーザは、エンジン数設定欄Ｇ５１０や診断項目カスタマイズ欄Ｇ５２０等で所望の設定を行った上で、ＯＫボタンＧ５３０を押下することで、これらの設定を確定することができる。
【００８３】
ここで、一例として、診断項目カスタマイズ欄Ｇ５２０で「インジェクション系の脆弱性を診断」が選択された上で、項番「５」及び項番「８」の診断項目に対するエンジン数を「２」、項番「９」の診断項目に対するエンジン数を「１」とユーザが設定した場合に、図５のステップＳ１０３でマッピング作成部１０２により作成されるマッピング情報を図１２に示す。図１２に示すマッピング情報では、インジェクション系の脆弱性を診断するための各診断項目に対して、ユーザにより設定された数のエンジン名が対応付けられている。このように、ユーザにより行われた設定に応じたマッピング情報がマッピング作成部１０２により作成される。これにより、図５のステップＳ１０４で、項番「５」及び項番「８」の診断項目に関する脆弱性は第１の診断エンジン１０４Ａ及び第２の診断エンジン１０４Ｂによって診断されると共に、項番「９」の診断項目に関する脆弱性は第２の診断エンジン１０４Ｂによって診断される。
【００８４】
以上のように、本実施形態に係る脆弱性診断装置１０では、どの診断項目に関する脆弱性を診断するか、１つの診断項目に対していくつの診断エンジン１０４によって診断を実行するか等をユーザが詳細に設定することができる。これにより、例えば、脆弱性の診断に関する知見を有するユーザ等は、所望のマッピング情報を作成することができるようになる。
【００８５】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００８６】
１        脆弱性診断システム
１０      脆弱性診断装置
２０      端末装置
３０      診断対象サーバ
１０１    入出力部
１０２    マッピング作成部
１０３    エンジン制御部
１０４    診断エンジン
１０４Ａ  第１の診断エンジン
１０４Ｂ  第２の診断エンジン
１０５    診断結果作成部
１１０    診断項目情報記憶部
１２０    エンジン特性情報記憶部
【図１】
2020003899.tif 000003
【図２】
2020003899.tif 000004
【図３】
2020003899.tif 000005
【図４】
2020003899.tif 000006
【図５】
2020003899.tif 000007
【図６】
2020003899.tif 000008
【図７】
2020003899.tif 000009
【図８】
2020003899.tif 000010
【図９】
2020003899.tif 000011
【図１０】
2020003899.tif 000012
【図１１】
2020003899.tif 000013
【図１２】
2020003899.tif 000014