(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-25
(45)【発行日】2022-08-02
(54)【発明の名称】脆弱性診断装置、脆弱性診断方法及びプログラム
(51)【国際特許分類】
G06F 21/57 20130101AFI20220726BHJP
【FI】
G06F21/57 370
(21)【出願番号】P 2018120542
(22)【出願日】2018-06-26
【審査請求日】2020-11-27
(73)【特許権者】
【識別番号】000102717
【氏名又は名称】NTTテクノクロス株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】奥津 純
(72)【発明者】
【氏名】鈴木 秀昭
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2017-167766(JP,A)
【文献】特開2018-055340(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
診断対象の脆弱性の有無を診断する複数の診断エンジンを有する脆弱性診断装置であって、
前記診断エンジンの特性に応じて、診断項目毎に、前記複数の診断エンジンのうち、前記診断項目に関する脆弱性の有無を診断する診断エンジンが対応付けられたマッピング情報を作成する作成手段と、
前記作成手段により作成されたマッピング情報に基づいて、前記診断項目毎に、該診断項目に対応付けられている診断エンジンによって前記診断対象の脆弱性を診断する診断手段と、
を有
し、
前記診断エンジンの特性は、高精度に脆弱性の有無を診断可能な診断項目を示す情報と、高速に脆弱性の有無を診断可能な診断項目を示す情報との少なくとも一方であり、
前記作成手段は、
前記診断項目毎に、該診断項目に関する脆弱性の有無を最も高精度に診断可能な診断エンジン又は前記診断項目に関する脆弱性の有無を最も高速に診断可能な診断エンジンを対応付けることで、前記マッピング情報を作成する、ことを特徴とする脆弱性診断装置。
【請求項2】
前記作成手段は、
前記診断エンジンの特性と、ユーザによ
って行われた設定内容とに応じて、前記マッピング情報を作成する、
ことを特徴とする請求項
1に記載の脆弱性診断装置。
【請求項3】
前記設定
内容には、前記脆弱性の有無を診断する診断項目を示す設定
内容と、前記診断項目に関する脆弱性の有無を診断する診断エンジンの数を示す設定
内容との少なくとも一方が含まれる、
ことを特徴とする請求項
2に記載の脆弱性診断装置。
【請求項4】
前記作成手段は、
前記診断項目毎に、該診断項目に関する脆弱性の有無を診断する1以上の診断エンジンが対応付けられたマッピング情報を作成する、
ことを特徴とする請求項1乃至
3の何れか一項に記載の脆弱性診断装置。
【請求項5】
複数の前記診断エンジンからそれぞれ出力される第1の診断結果に基づいて、所定のフォーマットの第2の診断結果を作成する結果作成手段と、
前記結果作成手段により作成された第2の診断結果を、前記脆弱性診断装置とネットワークを介して接続される端末装置に表示させる表示手段と、
を有することを特徴とする請求項1乃至
4の何れか一項に記載の脆弱性診断装置。
【請求項6】
診断対象の脆弱性の有無を診断する複数の診断エンジンを有するコンピュータが、
前記診断エンジンの特性に応じて、診断項目毎に、前記複数の診断エンジンのうち、前記診断項目に関する脆弱性の有無を診断する診断エンジンが対応付けられたマッピング情報を作成する作成手順と、
前記作成手順により作成されたマッピング情報に基づいて、前記診断項目毎に、該診断項目に対応付けられている診断エンジンによって前記診断対象の脆弱性を診断する診断手順と、
を実行
し、
前記診断エンジンの特性は、高精度に脆弱性の有無を診断可能な診断項目を示す情報と、高速に脆弱性の有無を診断可能な診断項目を示す情報との少なくとも一方であり、
前記作成手順は、
前記診断項目毎に、該診断項目に関する脆弱性の有無を最も高精度に診断可能な診断エンジン又は前記診断項目に関する脆弱性の有無を最も高速に診断可能な診断エンジンを対応付けることで、前記マッピング情報を作成する、ことを特徴とする脆弱性診断方法。
【請求項7】
コンピュータを、請求項1乃至
5の何れか一項に記載の脆弱性診断装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、脆弱性診断装置、脆弱性診断方法及びプログラムに関する。
【背景技術】
【0002】
Webアプリケーションスキャナと呼ばれるソフトウェアが従来から知られている。Webアプリケーションスキャナでは、Webアプリケーションに対して疑似的な攻撃を行うことで、当該Webアプリケーションの脆弱性を検出する。また、このようなWebアプリケーションスキャナを診断エンジンに用いて、Webアプリケーションの脆弱性を診断するサービス(以降では、このサービスを「脆弱性診断サービス」とも表す。)がクラウドサービスとして提供されている。
【0003】
他方で、検査データをWebアプリケーションに送信することで、当該Webアプリケーションの脆弱性を検出する技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、Webアプリケーションスキャナは、様々なベンダ等から様々な種類のソフトウェアが販売又は配布されており、その性能も異なる。このため、Webアプリケーションスキャナの種類によって、或る脆弱性については他のWebアプリケーションスキャナよりも高精度に検出することができる一方で、他の或る脆弱性については他のWebアプリケーションスキャナよりも検出精度が劣る場合等がある。
【0006】
しかしながら、従来の脆弱性診断サービスでは、或る1つのWebアプリケーションスキャナを診断エンジンとして用いており、診断対象の脆弱性によっては必ずしも検出精度が高くない場合があった。
【0007】
本発明の実施の形態は、上記の点に鑑みてなされたもので、複数の診断エンジンを用いて脆弱性を検出することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明の実施の形態は、診断対象の脆弱性の有無を診断する複数の診断エンジンを有する脆弱性診断装置であって、診断項目毎に、前記複数の診断エンジンのうち、前記診断項目に関する脆弱性の有無を診断する診断エンジンが対応付けられたマッピング情報を作成する作成手段と、前記作成手段により作成されたマッピング情報に基づいて、前記診断項目毎に、該診断項目に対応付けられている診断エンジンによって前記診断対象の脆弱性を診断する診断手段と、を有することを特徴とする。
【発明の効果】
【0009】
本発明の実施の形態によれば、複数の診断エンジンを用いて脆弱性を検出することができる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態に係る脆弱性診断システムの全体構成の一例を示す図である。
【
図2】本実施形態に係る脆弱性診断システムの機能構成の一例を示す図である。
【
図5】脆弱性の診断処理の一例を示すフローチャートである。
【
図10】診断開始画面の他の例を示す図(その1)である。
【
図11】診断開始画面の他の例を示す図(その2)である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態(以降、「本実施形態」と表す。)について説明する。以降では、複数の診断エンジンを用いてWebアプリケーションの脆弱性を診断する脆弱性診断システム1について説明する。診断エンジンとは、Webアプリケーションスキャナ等により実現され、Webアプリケーションの脆弱性の検出を行うソフトウェアのことである。
【0012】
なお、本実施形態では、脆弱性の診断対象はWebアプリケーションであるものとするが、これに限られず、例えば、Webアプリケーションの実現に必要なOS(Operating System)やミドルウェア等も脆弱性の診断対象としても良い。このようなミドルウェアとしては、例えば、Webサーバとして機能するソフトウェアやサーブレットコンテナとして機能するソフトウェア等が挙げられる。
【0013】
<全体構成>
まず、本実施形態に係る脆弱性診断システム1の全体構成について、
図1を参照しながら説明する。
図1は、本実施形態に係る脆弱性診断システム1の全体構成の一例を示す図である。
【0014】
図1に示すように、本実施形態に係る脆弱性診断システム1には、脆弱性診断装置10と、端末装置20と、診断対象サーバ30とが含まれる。脆弱性診断装置10と、端末装置20と、診断対象サーバ30とは、例えばインターネット等のネットワークNを介して通信可能に接続される。
【0015】
脆弱性診断装置10は、クラウドサービスとして脆弱性診断サービスを提供するコンピュータ又はコンピュータシステムである。脆弱性診断装置10は、端末装置20における診断開始操作に応じて、当該端末装置20のユーザにより指定された診断対象(Webアプリケーション)の脆弱性を診断する。このとき、本実施形態に係る脆弱性診断装置10は、複数の診断エンジンを用いてWebアプリケーションの脆弱性を診断する。
【0016】
端末装置20は、脆弱性診断サービスのユーザが利用するコンピュータである。ユーザは、端末装置20を用いて、診断対象のURL(Uniform Resource Locator)等を指定することで、当該URLにより示されるWebアプリケーションの脆弱性を診断することができる。なお、端末装置20としては、例えば、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末等を用いることができる。
【0017】
診断対象サーバ30は、脆弱性診断装置10によって脆弱性が診断されるWebアプリケーションサーバである。
【0018】
なお、
図1に示す脆弱性診断システム1の構成は一例であって、他の構成であっても良い。例えば、脆弱性診断装置10と端末装置20とが一体で構成されていても良い。また、脆弱性診断装置10は、クラウドサービスとして脆弱性診断サービスを提供する場合に限られず、例えば、端末装置20及び診断対象サーバ30と同一ネットワーク内に設置されていても良い。すなわち、脆弱性診断装置10は、オンプレミスとして設置されていても良い。
【0019】
<機能構成>
次に、本実施形態に係る脆弱性診断システム1の機能構成について、
図2を参照しながら説明する。
図2は、本実施形態に係る脆弱性診断システム1の機能構成の一例を示す図である。
【0020】
図2に示すように、本実施形態に係る脆弱性診断システム1に含まれる脆弱性診断装置10は、入出力部101と、マッピング作成部102と、エンジン制御部103と、複数の診断エンジン104と、診断結果作成部105とを有する。これら各機能部は、脆弱性診断装置10にインストールされた1以上のプログラムがCPU(Central Processing Unit)に実行させる処理により実現される。
【0021】
また、本実施形態に係る脆弱性診断装置10は、診断項目情報記憶部110と、エンジン特性情報記憶部120とを有する。これら各記憶部は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置を用いて実現可能である。なお、これら各記憶部のうちの少なくとも1つが、脆弱性診断装置10とネットワークNを介して接続される記憶装置等を用いて実現されていても良い。
【0022】
入出力部101は、端末装置20に対して各種画面を表示させたり、端末装置20における各種操作を受け付けたりする。端末装置20における各種操作としては、例えば、Webアプリケーションの脆弱性診断を開始させるための診断開始操作等が挙げられる。
【0023】
マッピング作成部102は、診断項目情報記憶部110に記憶されている診断項目情報とエンジン特性情報記憶部120に記憶されているエンジン特性情報とを参照して、脆弱性に関するどの診断項目をどの診断エンジン104によって診断するかを示すマッピング情報を作成する。
【0024】
エンジン制御部103は、マッピング情報を用いて複数の診断エンジン104を制御することで、これら複数の診断エンジン104にWebアプリケーションの脆弱性を診断させる。
【0025】
診断エンジン104は、Webアプリケーションの脆弱性を診断するエンジンである。診断エンジン104は、Webアプリケーションスキャナ等により実現される。診断エンジン104は、例えば、診断対象のWebアプリケーションに対して、診断項目に応じた疑似的な攻撃を行い、この攻撃に対するWebアプリケーションからの応答を検証することで、当該診断項目に関して当該Webアプリケーションの脆弱性を診断する。
【0026】
ここで、複数の診断エンジン104の各々を区別して表すときは、「第1の診断エンジン104A」、「第2の診断エンジン104B」等と表す。なお、複数の診断エンジン104の各々を区別して表した場合、各々の診断エンジン104は異なる種類のWebアプリケーションスキャナ等により実現されるものとする。例えば、第1の診断エンジン104Aと第2の診断エンジン104Bとは、それぞれ異なる種類のWebアプリケーションスキャナ等により実現されるものとする。
【0027】
診断結果作成部105は、複数の診断エンジン104の各々の診断結果から最終的な診断結果を作成する。診断結果作成部105により作成された診断結果は、入出力部101により端末装置20に出力され、診断結果画面として当該端末装置20上に表示される。
【0028】
診断項目情報記憶部110は、脆弱性に関する診断項目を示す診断項目情報を記憶する。ここで、診断項目情報記憶部110に記憶されている診断項目情報について、
図3を参照しながら説明する。
図3は、診断項目情報の一例を示す図である。
【0029】
図3に示すように、診断項目情報記憶部110には、複数の診断項目情報(
図3に示す例では、14件の診断項目情報)が記憶されている。各診断項目情報には、「項番」と、「診断項目」とが含まれる。「項番」は、各診断項目情報を識別する番号である。「診断項目」は、脆弱性に関する診断項目の内容である。
【0030】
例えば、項番「1」の診断項目情報には、診断項目として、「ファイルアップロードに関するチェック」が含まれる。このことは、項番「1」の診断項目情報は、ファイルアップロードに関する脆弱性を診断するための診断項目の情報であることを示している。
【0031】
同様に、項番「2」の診断項目情報には、診断項目として、「内部データ/ログデータ露出に関するチェック」が含まれる。このことは、項番「2」の診断項目情報は、内部データ/ログデータの露出に関する脆弱性を診断するための診断項目の情報であることを示している。他の項番の診断項目情報についても上記と同様である。
【0032】
このように、診断項目情報記憶部110には、診断項目毎に、この診断項目を示す診断項目情報が記憶されている。なお、
図3に示す例では、14件の診断項目情報が診断項目情報記憶部110に記憶されているが、これは一例である。診断項目の数は、例えば、脆弱性診断装置10の管理者等が任意に変更することができる。また、各診断項目の内容も、例えば、脆弱性診断装置10の管理者等が任意に変更することができる。
【0033】
エンジン特性情報記憶部120は、各診断エンジン104の特性を示すエンジン特性情報を記憶する。ここで、エンジン特性情報記憶部120に記憶されているエンジン特性情報について、
図4を参照しながら説明する。
図4は、エンジン特性情報の一例を示す図である。
【0034】
図4に示すように、エンジン特性情報記憶部120には、複数のエンジン特性情報(
図4に示す例では、2件のエンジン特性情報)が記憶されている。各エンジン特性情報には、「エンジン名」と、「エンジン特性」とが含まれる。
【0035】
「エンジン名」は、診断エンジン104の名称である。例えば、エンジン名「エンジンA」は、第1の診断エンジン104Aの名称である。同様に、例えば、エンジン名「エンジンB」は、第2の診断エンジン104Bの名称である。
【0036】
「エンジン特性」は、エンジン名に対応する診断エンジン104の特性として、高精度で診断が可能な診断項目の項番が設定される。
【0037】
例えば、エンジン名「エンジンA」のエンジン特性は「項番1,2,4」である。このことは、第1の診断エンジン104Aは、項番「1」の診断項目と、項番「2」の診断項目と、項番「4」の診断項目とを高精度に診断することができることを示している。
【0038】
同様に、例えば、エンジン名「エンジンB」のエンジン特性は「項番3,6,9」である。このことは、第2の診断エンジン104Bは、項番「3」の診断項目と、項番「6」の診断項目と、項番「9」の診断項目とを高精度に診断することができることを示している。
【0039】
このように、エンジン特性情報記憶部120には、診断エンジン104毎に、当該診断エンジン104の特性を示すエンジン特性情報が記憶されている。なお、
図4に示す例では、2件のエンジン特性情報がエンジン特性情報記憶部120に記憶されているが、エンジン特性情報記憶部120には、診断エンジン104の数と同数のエンジン特性情報が記憶される。したがって、診断エンジン104の数が増減した場合、エンジン特性情報記憶部120に記憶されているエンジン特性情報の数も増減する。診断エンジン104の増減に伴うエンジン特性情報の増減は、例えば、脆弱性診断装置10の管理者等が行うことができる。
【0040】
<脆弱性の診断処理>
次に、脆弱性診断装置10が実行する処理(脆弱性の診断処理)の詳細について、
図5を参照しながら説明する。
図5は、脆弱性の診断処理の一例を示すフローチャートである。
【0041】
まず、脆弱性診断装置10の入出力部101は、端末装置20からの要求(脆弱性診断サービスの利用開始要求)に応じて、例えば
図6に示す診断開始画面G100を当該端末装置20に表示させる(ステップS101)。なお、端末装置20は、例えば、脆弱性診断サービスの利用を開始するためのURLがWebブラウザに入力等されることで、脆弱性診断サービスの利用開始要求を行うことができる。
【0042】
図6に示す診断開始画面G100には、URL入力欄G110と、診断開始ボタンG120とが含まれる。URL入力欄G110は、診断対象のWebアプリケーション(診断対象サーバ30が提供するWebアプリケーション)を示すURLを入力するための入力欄である。端末装置20のユーザは、診断対象のWebアプリケーションを示すURLをURL入力欄G110に入力した上で、診断開始ボタンG120を押下することで、当該Webアプリケーションの脆弱性の診断を開始するための診断開始操作を行うことができる。
【0043】
次に、脆弱性診断装置10の入出力部101は、端末装置20における診断開始操作を受け付ける(ステップS102)。
【0044】
次に、脆弱性診断装置10のマッピング作成部102は、診断項目情報記憶部110に記憶されている診断項目情報とエンジン特性情報記憶部120に記憶されているエンジン特性情報とを参照して、マッピング情報を作成する(ステップS103)。マッピング情報は、上述したように、どの診断項目をどの診断エンジン104によって診断するかを示す情報である。
【0045】
ここで、マッピング作成部102は、例えば、各診断項目情報がそれぞれ示す各診断項目毎に、診断項目と、当該診断項目に関する脆弱性を最も高い精度で診断可能な診断エンジン104のエンジン名とを対応付ける(マッピングする)ことで作成する。
【0046】
例えば、エンジン特性情報記憶部120に記憶されているエンジン特性情報を参照すると、項番「1」の診断項目については、エンジン名「エンジンA」が高精度に診断することできる。このため、マッピング作成部102は、項番「1」の診断項目と、エンジン名「エンジンA」とを対応付ける。
【0047】
同様に、例えば、エンジン特性情報記憶部120に記憶されているエンジン特性情報を参照すると、項番「3」の診断項目については、エンジン名「エンジンB」が高精度に診断することができる。このため、マッピング作成部102は、項番「3」の診断項目と、エンジン名「エンジンB」とを対応付ける。
【0048】
ここで、或る診断項目について、高精度に診断可能な診断エンジン104が存在しない場合も有り得る。この場合、例えば、予め決められた1つの診断エンジン104(デフォルトの診断エンジン104等)のエンジン名を当該診断項目に対応付けても良いし、全て又は一部の診断エンジン104のエンジン名を当該診断項目に対応付けても良い。
【0049】
同様に、或る診断項目について、高精度に診断可能な診断エンジン104が複数存在する場合も有り得る。この場合、例えば、これらの複数の診断エンジン104のうち予め決められた1つの診断エンジン104(例えば、特に高精度に診断可能な診断エンジン104等)のエンジン名を当該診断項目に対応付ければ良い。
【0050】
このように、マッピング作成部102は、診断項目毎に、当該診断項目に関する脆弱性を最も高い精度で診断可能な診断エンジン104のエンジン名を対応付けることで、マッピング情報を作成する。マッピング作成部102により作成されたマッピング情報の一例を
図7に示す。
図7に示すように、マッピング情報では、診断項目毎に、当該診断項目に関する脆弱性を診断する診断エンジン104のエンジン名が対応付けられている。
【0051】
なお、本実施形態では、診断開始操作を受け付けた後(ステップS102の後)に、マッピング作成部102によりマッピング情報を作成するものとしたが、これに限られず、例えば、マッピング作成部102によりマッピング情報を予め作成し、所定の記憶領域に記憶しておいても良い。また、このとき、マッピング情報は、例えば、脆弱性診断サービスを利用するユーザ毎に作成され、所定の記憶領域に記憶されていても良い。
【0052】
次に、脆弱性診断装置10のエンジン制御部103は、マッピング情報を用いて複数の診断エンジン104を制御し、これら複数の診断エンジン104によってWebアプリケーションの診断を実行する(ステップS104)。
【0053】
すなわち、エンジン制御部103は、マッピング情報に含まれる診断項目毎に、当該診断項目に対応付けられているエンジン名の診断エンジン104に対して診断要求を行うことで、当該診断エンジン104によって当該診断項目に関する脆弱性の診断を実行する。
【0054】
より具体的には、例えば、
図7に示すマッピング情報の項番「1」の診断項目には、エンジン名「エンジンA」が対応付けられている。このため、エンジン制御部103は、第1の診断エンジン104Aに対して、当該診断項目の診断要求を行う。これにより、第1の診断エンジン104Aによって当該診断項目の診断が実行される。
【0055】
同様に、例えば、
図7に示すマッピング情報の項番「3」の診断項目には、エンジン名「エンジンB」が対応付けられている。このため、エンジン制御部103は、第2の診断エンジン104Bに対して、当該診断項目の診断要求を行う。これにより、第2の診断エンジン104Bによって当該診断項目の診断が実行される。
【0056】
このように、エンジン制御部103は、診断項目毎に、当該診断項目に対応する診断エンジン104に対して診断要求を行う。これにより、診断項目に応じた診断エンジン104(すなわち、当該診断項目を高精度に診断可能な診断エンジン104)により脆弱性の診断を行うことができる。
【0057】
なお、同一の診断エンジン104が複数の診断項目を診断する場合、エンジン制御部103は、当該診断エンジン104に対して、診断項目毎に繰り返し診断要求を行っても良いし、複数の診断項目をまとめて1つの診断要求を行っても良い。
【0058】
ここで、各診断エンジン104は、脆弱性に関する診断の実行が完了すると、診断結果を出力する。これらの診断結果には、例えば、診断項目と、この診断項目に関する脆弱性の検出結果とが含まれる。ただし、これらの診断結果のフォーマット(データ形式等)は、診断エンジン104によって異なる場合がある。例えば、第1の診断エンジン104Aから出力される診断結果と、第2の診断エンジン104Bから出力される診断結果とは、フォーマットが異なる場合がある。
【0059】
次に、脆弱性診断装置10の診断結果作成部105は、各診断エンジン104の各々から出力された診断結果から最終的な診断結果を作成する(ステップS105)。上述したように、各診断エンジン104の各々から出力された診断結果は、そのフォーマットが異なる場合がある。このため、診断結果作成部105は、これらの診断結果に含まれる診断項目と、この診断項目に関する脆弱性の検出結果とに基づいて、所定のフォーマットで最終的な診断結果を作成する。これにより、各診断エンジン104がそれぞれ出力する診断結果のフォーマットが異なる場合であっても、後述するステップS106で、端末装置20のユーザは、各診断項目の診断結果を所定のフォーマットで確認することができるようになる。
【0060】
なお、このとき、診断結果作成部105は、最終的な診断結果として、例えば、診断項目に関する概要の説明や脆弱性が検出された場合における対策方法等も含まれる診断結果を作成する。
【0061】
次に、脆弱性診断装置10の入出力部101は、例えば
図8に示す診断結果画面G200を端末装置20に表示させる(ステップS106)。
【0062】
図8に示す診断結果画面G200には、診断結果表示欄G210と、詳細ボタンG220とが含まれる。診断結果表示欄G210には、診断結果作成部105が作成した診断結果が含まれる診断結果が表示される。端末装置20のユーザは、診断結果表示欄G210を参照することで、各診断項目について、脆弱性の検出された数をユーザに通知する検知数、診断項目の概要説明、脆弱性が検出された場合における対策方法等を確認することができる。これにより、端末装置20のユーザは、診断対象のWebアプリケーションの脆弱性とその対策方法を知ることができる。
【0063】
ここで、ユーザにより詳細ボタンG220が押下された場合、端末装置20には、より詳細な診断結果が表示される。より詳細な診断結果とは、例えば、各診断項目について、どの診断エンジン104で診断されたか等を示す情報である。これにより、端末装置20のユーザは、どの診断項目がどの診断エンジン104によって診断されたのかを知ることができる。なお、より詳細な診断結果として、上記以外にも、例えば、各診断項目について、診断に要した時間や診断に用いたデータ(疑似的な攻撃を行うためのデータ)等が表示されても良い。
【0064】
以上のように、本実施形態に係る脆弱性診断装置10では、Webアプリケーション等の診断対象の脆弱性を複数の診断エンジン104によって診断することができる。これにより、本実施形態に係る脆弱性診断装置10では、診断エンジン104の特性に応じて、診断項目毎に、当該診断項目を高精度に診断可能な診断エンジン104によって診断することができるようになる。
【0065】
また、本実施形態に係る脆弱性診断装置10は、マッピング情報によって各診断項目と各診断エンジン104とをマッピングすることで、どの診断項目をどの診断エンジン104によって診断するかを管理する。このため、本実施形態に係る脆弱性診断装置10では、診断エンジン104の追加や削除、変更を行うことができる。診断エンジン104が追加や削除、変更された場合、本実施形態に係る脆弱性診断装置10は、マッピング情報を再作成することで、追加や削除、変更された後の診断エンジン104を用いた診断を行うことができるようになる。
【0066】
<他の例(その1)>
ここで、本実施形態に係る脆弱性診断装置10の他の例(その1)について説明する。本実施形態に係る脆弱性診断装置10は、エンジン特性情報記憶部120に記憶されているエンジン特性情報として、例えば、
図9に示すエンジン特性情報を用いても良い。
【0067】
図9に示すエンジン特性情報には、エンジン特性として、高精度で診断が可能な診断項目の項番と、高速に診断が可能な診断項目の項番とが設定される。このとき、例えば、
図5のステップS101で端末装置20に表示させる画面として、
図10に示す診断開始画面G300を表示させることができる。
【0068】
図10に示す診断開始画面G300では、優先選択欄G310が含まれる。優先選択欄G310は、精度優先の診断又は時間優先の診断のいずれを行うかをユーザが選択するための選択欄である。例えば、優先選択欄G310で「時間優先」がユーザにより選択された上で、診断開始ボタンG120が押下された場合、
図5のS103においてマッピング作成部102は、診断項目毎に、診断項目と、当該診断項目に関する脆弱性を最も高速で診断可能な診断エンジン104のエンジン名とを対応付けたマッピング情報を作成する。
【0069】
例えば、
図9に示すエンジン特性情報を参照すると、項番「3」の診断項目については、エンジン名「エンジンB」が高速に診断することができる。このため、マッピング作成部102は、項番「3」の診断項目と、エンジン名「エンジンB」とを対応付ける。
【0070】
同様に、例えば、
図9に示すエンジン特性情報を参照すると、項番「4」の診断項目については、エンジン名「エンジンA」が高速に診断することできる。このため、マッピング作成部102は、項番「4」の診断項目と、エンジン名「エンジンA」とを対応付ける。
【0071】
ここで、或る診断項目について、高速に診断可能な診断エンジン104が存在しない場合も有り得る。この場合、例えば、予め決められた1つの診断エンジン104(デフォルトの診断エンジン104又は高精度に診断可能な診断エンジン104等)のエンジン名を当該診断項目に対応付けても良いし、全て又は一部の診断エンジン104のエンジン名を当該診断項目に対応付けても良い。
【0072】
同様に、或る診断項目について、高速に診断可能な診断エンジン104が複数存在する場合も有り得る。この場合、例えば、これらの複数の診断エンジン104のうち予め決められた1つの診断エンジン104(例えば、特に高速に診断可能な診断エンジン104又は高精度に診断可能な診断エンジン104等)のエンジン名を当該診断項目に対応付ければ良い。
【0073】
なお、優先選択欄G310で「精度優先」がユーザにより選択された場合で、或る診断項目について、高精度に診断可能な診断エンジン104が存在しない場合、例えば、予め決められた1つの診断エンジン104(デフォルトの診断エンジン104又は高速に診断可能な診断エンジン104等)のエンジン名を当該診断項目に対応付けても良いし、全て又は一部の診断エンジン104のエンジン名を当該診断項目に対応付けても良い。同様に、高精度に診断可能な診断エンジン104が複数存在する場合、例えば、これらの複数の診断エンジン104のうち予め決められた1つの診断エンジン104(例えば、特に高精度に診断可能な診断エンジン104又は高速に診断可能な診断エンジン104等)のエンジン名を当該診断項目に対応付ければ良い。
【0074】
このように、マッピング作成部102は、診断項目毎に、当該診断項目に関する脆弱性を最も高速で診断可能な診断エンジン104のエンジン名を対応付けたマッピング情報を作成しても良い。
【0075】
<他の例(その2)>
ここで、本実施形態に係る脆弱性診断装置10の他の例(その2)について説明する。本実施形態に係る脆弱性診断装置10は、
図5のステップS101で端末装置20に表示させる画面として、
図11に示す診断開始画面G400を表示させても良い。
【0076】
図11に示す診断開始画面G400では、詳細設定ボタンG410が含まれる。ユーザにより詳細設定ボタンG410が押下された場合、端末装置20には、例えば
図11に示す詳細設定画面G500が表示される。
図11に示す詳細設定画面G500は、脆弱性に関する診断の詳細な設定を行うための画面であり、例えば、エンジン数設定欄G510と、診断項目カスタマイズ欄G520とが含まれる。
【0077】
エンジン数設定欄G510は、診断を実行するエンジン数を設定するための設定欄である。エンジン数として「シングル」が設定された場合、1つの診断項目に対して1つのエンジン名が対応付けられたマッピング情報が作成される。一方で、エンジン数として「マルチ(並列実行)」が設定され、かつ、エンジン数が入力された場合、1つの診断項目に対して、入力されたエンジン数のエンジン名が対応付けられたマッピング情報が作成される。
【0078】
例えば、エンジン数「2」が入力された場合、1つの診断項目に対して2つのエンジン名が対応付けられたマッピング情報が作成される。したがって、この場合、1つの診断項目に関する脆弱性が、2つの診断エンジン104によって診断される。
【0079】
なお、更に、ユーザは、診断項目毎に、当該診断項目に関する脆弱性を診断する診断エンジン104の数を設定することができても良い。これにより、ユーザは、例えば、或る診断項目については1つの診断エンジン104で診断し、別の或る診断項目(例えば、特に重要と考える診断項目等)については複数の診断エンジン104で診断する、といった設定を行うことが可能となる。
【0080】
また、ユーザは、診断項目毎に、当該診断項目に関する脆弱性を診断する診断エンジン104を指定できても良い。これにより、ユーザは、所望の診断項目に関する脆弱性ついて所望の診断エンジン104によって診断することができるようになる。
【0081】
診断項目カスタマイズ欄G520は、診断対象に対して診断を行う診断項目をカスタマイズするための設定欄である。診断項目カスタマイズ欄G520では、例えば、「インジェクション系の脆弱性を診断」、「データ露出系の脆弱性を診断」等の選択項目を選択することができる。例えば、「インジェクション系の脆弱性を診断」がユーザにより選択された場合、インジェクション系の脆弱性を診断するための診断項目のみが含まれるマッピング情報が作成される。同様に、例えば、「データ露出系の脆弱性を診断」がユーザにより選択された場合、データ露出系の脆弱性を診断するための診断項目のみが含まれるマッピング情報が作成される。これにより、ユーザは、例えば、或る特定の種類(例えば、インジェクション系やデータ露出系等)の脆弱性のみを診断する、といった設定を行うことが可能となる。なお、インジェクション系の脆弱性を診断するための診断項目としては、例えば、項番「5」、項番「8」、及び項番「9」等の診断項目が挙げられる。また、データ露出系の脆弱性を診断するための診断項目としては、例えば、項番「2」及び項番「3」等の診断項目が挙げられる。
【0082】
ユーザは、エンジン数設定欄G510や診断項目カスタマイズ欄G520等で所望の設定を行った上で、OKボタンG530を押下することで、これらの設定を確定することができる。
【0083】
ここで、一例として、診断項目カスタマイズ欄G520で「インジェクション系の脆弱性を診断」が選択された上で、項番「5」及び項番「8」の診断項目に対するエンジン数を「2」、項番「9」の診断項目に対するエンジン数を「1」とユーザが設定した場合に、
図5のステップS103でマッピング作成部102により作成されるマッピング情報を
図12に示す。
図12に示すマッピング情報では、インジェクション系の脆弱性を診断するための各診断項目に対して、ユーザにより設定された数のエンジン名が対応付けられている。このように、ユーザにより行われた設定に応じたマッピング情報がマッピング作成部102により作成される。これにより、
図5のステップS104で、項番「5」及び項番「8」の診断項目に関する脆弱性は第1の診断エンジン104A及び第2の診断エンジン104Bによって診断されると共に、項番「9」の診断項目に関する脆弱性は第2の診断エンジン104Bによって診断される。
【0084】
以上のように、本実施形態に係る脆弱性診断装置10では、どの診断項目に関する脆弱性を診断するか、1つの診断項目に対していくつの診断エンジン104によって診断を実行するか等をユーザが詳細に設定することができる。これにより、例えば、脆弱性の診断に関する知見を有するユーザ等は、所望のマッピング情報を作成することができるようになる。
【0085】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【0086】
1 脆弱性診断システム
10 脆弱性診断装置
20 端末装置
30 診断対象サーバ
101 入出力部
102 マッピング作成部
103 エンジン制御部
104 診断エンジン
104A 第1の診断エンジン
104B 第2の診断エンジン
105 診断結果作成部
110 診断項目情報記憶部
120 エンジン特性情報記憶部