(57)【要約】【課題】Ｗｅｂソフトウェアの脆弱性の判定に要する時間やコストを削減すること。【解決手段】Ｗｅｂソフトウェアの脆弱性に関する動的診断において得られる情報である第一の診断情報と、前記動的診断とは異なる分析によって得られるＷｅｂソフトウェアの脆弱性の有無を示す分析結果と、に基づいて機械学習処理を行うことによって得られる学習結果と、第二の診断情報と、に基づいて前記第二の診断情報の診断対象となったＷｅｂソフトウェアの脆弱性について判定結果を取得する判定部、を備える脆弱性判定システム。【選択図】図１
2019148917.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂソフトウェアの脆弱性に関する動的診断において得られる情報である第一の診断情報と、前記動的診断とは異なる分析によって得られるＷｅｂソフトウェアの脆弱性の有無を示す分析結果と、に基づいて機械学習処理を行うことによって得られる学習結果と、第二の診断情報と、に基づいて前記第二の診断情報の診断対象となったＷｅｂソフトウェアの脆弱性について判定結果を取得する判定部、
を備える脆弱性判定システム。
【請求項２】
Ｗｅｂソフトウェアの脆弱性に関する動的診断において得られる情報である第一の診断情報と、前記動的診断とは異なる分析によって得られるＷｅｂソフトウェアの脆弱性の有無を示す分析結果と、に基づいて機械学習処理を行うことによって得られる学習結果を取得する学習制御部と、
前記学習結果と、第二の診断情報と、に基づいて前記第二の診断情報の診断対象となったＷｅｂソフトウェアの脆弱性について判定結果を取得する判定部と、
を備える脆弱性判定システム。
【請求項３】
前記学習制御部は、前記第一の診断情報のうち、要求情報に関する項目、応答情報に関する項目、ＤＡＳＴツールの診断結果に関する項目のうち１つ又は複数の項目の値を用いて学習用データを生成し、生成された学習用データに基づいて行われた機械学習処理の学習結果を取得する、請求項２に記載の脆弱性判定システム。
【請求項４】
前記学習制御部は、前記要求情報に関する項目として、攻撃に用いられたＨＴＴＰリクエストのクエリの値を含む学習用データを生成する、請求項３に記載の脆弱性判定システム。
【請求項５】
前記学習制御部は、前記クエリの文字列のうち、Ｗｅｂページに固有では無い部分の文字列に基づいて前記学習用データを生成する、請求項４に記載の脆弱性判定システム。
【請求項６】
Ｗｅｂソフトウェアの脆弱性に関する動的診断において得られる情報である第一の診断情報と、前記動的診断とは異なる分析によって得られるＷｅｂソフトウェアの脆弱性の有無を示す分析結果と、に基づいて機械学習処理を行うことによって得られる学習結果を取得する学習制御ステップと、
前記学習結果と、第二の診断情報と、に基づいて前記第二の診断情報の診断対象となったＷｅｂソフトウェアの脆弱性について判定結果を取得する判定ステップと、
を有する脆弱性判定方法。
【請求項７】
Ｗｅｂソフトウェアの脆弱性に関する動的診断において得られる情報である第一の診断情報と、前記動的診断とは異なる分析によって得られるＷｅｂソフトウェアの脆弱性の有無を示す分析結果と、に基づいて機械学習処理を行うことによって得られる学習結果を取得する学習制御部と、
前記学習結果と、第二の診断情報と、に基づいて前記第二の診断情報の診断対象となったＷｅｂソフトウェアの脆弱性について判定結果を取得する判定部と、
を備える脆弱性判定システム、としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂソフトウェアの脆弱性を判定するための技術に関する。
【背景技術】
【０００２】
近年、Ｗｅｂは全世界に容易にサービス展開できる手法として知られており、ユーザーの接続手法として最も身近な手法の一つとしても確立されている。それに伴い、攻撃者によるＷｅｂサービスに対するサイバー攻撃は増大の一途を辿っている。そのため、Ｗｅｂサービスを実現するためのソフトウェアであるＷｅｂソフトウェアの脆弱性を予め調査しておく取り組みが進めされてきている（例えば非特許文献１参照）。
【０００３】
Ｗｅｂソフトウェアの脆弱性を診断する手法として、静的診断とよばれるＳＡＳＴ（Static Application Security Testing）と、動的診断とよばれるＤＡＳＴ（Dynamic Application Security Testing）とがある。ＳＡＳＴでは、ソースコード自体を診断対象として脆弱性が診断される。ＤＡＳＴでは、動作しているＷｅｂソフトウェアを診断対象として模擬的に攻撃することによって脆弱性が診断される。これらの手法を用いることによってＷｅｂソフトウェアの脆弱性を診断することが可能となる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Appendix A: Testing Tools”、［online］、平成２９年９月２９日、ＯＷＡＳＰ、［平成３０年２月１１日検索］、インターネット〈URL：https://www.owasp.org/index.php/Appendix_A:_Testing_Tools〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＤＡＳＴツールの診断結果には、誤った診断結果が含まれることが少なくない。そのため、実際には、ＤＡＳＴツールで診断が行われた後に人手を介して最終的な正誤判定を行う必要がある。そのため、Ｗｅｂソフトウェアの脆弱性の判定には多くの時間とコストが必要となっていた。
【０００６】
上記事情に鑑み、本発明は、Ｗｅｂソフトウェアの脆弱性の判定に要する時間やコストを削減することができる技術の提供を目的としている。
【課題を解決するための手段】
【０００７】
本発明の一態様は、Ｗｅｂソフトウェアの脆弱性に関する動的診断において得られる情報である第一の診断情報と、前記動的診断とは異なる分析によって得られるＷｅｂソフトウェアの脆弱性の有無を示す分析結果と、に基づいて機械学習処理を行うことによって得られる学習結果と、第二の診断情報と、に基づいて前記第二の診断情報の診断対象となったＷｅｂソフトウェアの脆弱性について判定結果を取得する判定部、を備える脆弱性判定システムである。
【０００８】
本発明の一態様は、Ｗｅｂソフトウェアの脆弱性に関する動的診断において得られる情報である第一の診断情報と、前記動的診断とは異なる分析によって得られるＷｅｂソフトウェアの脆弱性の有無を示す分析結果と、に基づいて機械学習処理を行うことによって得られる学習結果を取得する学習制御部と、前記学習結果と、第二の診断情報と、に基づいて前記第二の診断情報の診断対象となったＷｅｂソフトウェアの脆弱性について判定結果を取得する判定部と、を備える脆弱性判定システムである。
【０００９】
本発明の一態様は、上記の脆弱性判定システムであって、前記学習制御部は、前記第一の診断情報のうち、要求情報に関する項目、応答情報に関する項目、ＤＡＳＴツールの診断結果に関する項目のうち１つ又は複数の項目の値を用いて学習用データを生成し、生成された学習用データに基づいて行われた機械学習処理の学習結果を取得する。
【００１０】
本発明の一態様は、上記の脆弱性判定システムであって、前記学習制御部は、前記要求情報に関する項目として、攻撃に用いられたＨＴＴＰリクエストのクエリの値を含む学習用データを生成する。
【００１１】
本発明の一態様は、上記の脆弱性判定システムであって、前記学習制御部は、前記クエリの文字列のうち、Ｗｅｂページに固有では無い部分の文字列に基づいて前記学習用データを生成する。
【００１２】
本発明の一態様は、Ｗｅｂソフトウェアの脆弱性に関する動的診断において得られる情報である第一の診断情報と、前記動的診断とは異なる分析によって得られるＷｅｂソフトウェアの脆弱性の有無を示す分析結果と、に基づいて機械学習処理を行うことによって得られる学習結果を取得する学習制御ステップと、前記学習結果と、第二の診断情報と、に基づいて前記第二の診断情報の診断対象となったＷｅｂソフトウェアの脆弱性について判定結果を取得する判定ステップと、を有する脆弱性判定方法である。
【００１３】
本発明の一態様は、Ｗｅｂソフトウェアの脆弱性に関する動的診断において得られる情報である第一の診断情報と、前記動的診断とは異なる分析によって得られるＷｅｂソフトウェアの脆弱性の有無を示す分析結果と、に基づいて機械学習処理を行うことによって得られる学習結果を取得する学習制御部と、前記学習結果と、第二の診断情報と、に基づいて前記第二の診断情報の診断対象となったＷｅｂソフトウェアの脆弱性について判定結果を取得する判定部と、を備える脆弱性判定システム、としてコンピュータを機能させるためのコンピュータプログラムである。
【発明の効果】
【００１４】
本発明により、Ｗｅｂソフトウェアの脆弱性の判定に要する時間やコストを削減することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の脆弱性判定システム１００のシステム構成を示す概略ブロック図である。
【図２】判定装置４０の機能構成の概略を示す概略ブロック図である。
【図３】診断情報及び分析結果が得られるまでの処理の流れの具体例を示すシーケンスチャートである。
【図４】学習結果が得られるまでの処理の流れの具体例を示すシーケンスチャートである。
【図５】診断情報に基づいて判定装置４０による判定結果が得られるまでの処理の流れの具体例を示すシーケンスチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の具体的な構成例について、図面を参照しながら説明する。
図１は、本発明の脆弱性判定システム１００のシステム構成を示す概略ブロック図である。脆弱性判定システム１００は、Ｗｅｂソフトウェアの脆弱性を判定する。Ｗｅｂソフトウェアには、例えばＷｅｂサーバーソフトウェア、Ｗｅｂフレームワーク、Ｗｅｂアプリケーション等のソフトウェアが含まれる。以下に示す説明では、Ｗｅｂソフトウェアのうち特にＷｅｂアプリケーションを例にとって説明する。
【００１７】
脆弱性判定システム１００には、診断対象装置１０及び診断制御装置２０がネットワークを介して通信可能に接続される。
【００１８】
診断対象装置１０は、脆弱性の診断対象となるＷｅｂソフトウェアが動作する情報処理装置である。診断対象装置１０は、例えばパーソナルコンピューターやサーバー装置やスマートフォン等の情報処理装置を用いて構成される。
【００１９】
診断制御装置２０は、脆弱性判定システム１００に対して、診断対象装置１０に対する診断処理の実行を制御する装置である。診断制御装置２０は、例えばパーソナルコンピューターやスマートフォン等の情報処理装置を用いて構成される。例えば、ユーザーは診断制御装置２０を操作することによって、診断対象装置１０に対する診断処理の実行を脆弱性判定システム１００に対して要求する。例えば、診断制御装置２０は、脆弱性判定システム１００から判定結果を受信すると、表示装置等の出力装置から判定結果を示す情報を出力する。
【００２０】
脆弱性判定システム１００は、診断装置３０、判定装置４０及び学習装置５０を備える。診断装置３０、判定装置４０及び学習装置５０は、ネットワークを介してデータ通信可能に接続される。
【００２１】
診断装置３０は、パーソナルコンピューターやサーバー装置等の情報処理装置を用いて構成される。診断装置３０には、動的診断（ＤＡＳＴ）ツールが実装される。診断装置３０に実装される動的診断ツールは、既存のどのようなものが用いられてもよい。診断装置３０には、複数種の動的診断ツールが実装されてもよい。診断装置３０は、動的診断ツールの仕様にしたがって、所定の要求情報（例えばＨＴＴＰリクエスト）を診断対象装置１０のＷｅｂソフトウェアに対して送信する。診断装置３０は、要求情報に応じて診断対象装置１０から送信される応答情報（例えばＨＴＴＰレスポンス）を受信する。診断装置３０は、このような要求情報の送信と応答情報の受信とを、複数種の要求情報について実行する。診断装置３０は、各通信の結果を示す履歴情報を記録する。診断装置３０は、記録された履歴情報に基づいて、診断対象装置１０のＷｅｂソフトウェアに関する脆弱性を診断する。診断結果は、例えば診断対象装置１０で動作しているＷｅｂソフトウェアに設定されている各ＵＲＬと、そのＵＲＬにおいて検出された脆弱性項目と、の組み合わせ毎に、脆弱性の危険度及び診断の確度が対応づけられた情報として取得されてもよい。診断装置３０は、取得された履歴情報及び診断結果の少なくとも一方を含む診断情報を判定装置４０に送信する。
【００２２】
判定装置４０は、パーソナルコンピューターやサーバー装置等の情報処理装置を用いて構成される。判定装置４０は、診断装置３０から診断情報を受信する。判定装置４０は、受信された情報に基づいて、診断対象装置１０におけるＷｅｂソフトウェアの脆弱性について判定する。
【００２３】
図２は、判定装置４０の機能構成の概略を示す概略ブロック図である。判定装置４０は、通信部４１、診断情報記憶部４２、学習結果情報記憶部４３及び制御部４４を備える。
【００２４】
通信部４１は、通信インターフェースである。通信部４１は、ネットワークを介して他の装置とデータ通信する。
【００２５】
診断情報記憶部４２は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。診断情報記憶部４２は、診断装置３０によって生成される診断情報を記憶する。診断情報記憶部４２は、診断情報に対する分析結果が得られている場合には、診断情報に対応づけて分析結果をさらに記憶する。分析結果とは、診断装置３０によって生成された履歴情報や診断結果に基づいて、脆弱性に関する知識を有する人間が診断対象装置１０のＷｅｂソフトウェアに関する脆弱性を分析した結果を示す情報である。分析結果は、例えば実際の脆弱性の有無に関する分析の結果を示す。分析結果が対応づけられて記憶されている診断情報は、学習処理において学習データとして用いられる。
【００２６】
学習結果情報記憶部４３は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。学習結果情報記憶部４３は、学習装置５０によって行われた学習処理の結果を示す学習結果情報を記憶する。
【００２７】
制御部４４は、ＣＰＵ（Central Processing Unit）等のプロセッサ及びメモリを用いて構成される。制御部４４は、プロセッサが所定のプログラムを実行することによって、診断情報取得部４４１、分析結果取得部４４２、学習制御部４４３及び判定部４４４として機能する。なお、制御部４４の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されても良い。プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ、半導体記憶装置（例えばＳＳＤ：Solid State Drive）等の可搬媒体、コンピュータシステムに内蔵されるハードディスクや半導体記憶装置等の記憶装置である。プログラムは、電気通信回線を介して送信されても良い。
【００２８】
診断情報取得部４４１は、診断装置３０によって生成される診断情報を取得する。診断情報取得部４４１は、例えば診断装置３０から送信される診断情報を、ネットワーク及び通信部４１を介して受信してもよい。診断情報取得部４４１は、取得された診断情報を診断情報記憶部４２に記録する。
【００２９】
分析結果取得部４４２は、診断情報に基づいて生成される分析結果を取得する。分析結果取得部４４２は、どのような手段によって分析結果を取得してもよい。例えば、予め分析結果と、分析対象となった診断情報を示す識別情報と、が対応づけて記録された記録媒体から情報を読み出すことによって分析結果が取得されてもよい。このような記録媒体の具体例として、ＣＤ−ＲＯＭやＵＳＢメモリ等の記録媒体がある。例えば、分析結果と、分析対象となった診断情報を示す識別情報と、を対応づけた情報（以下「分析結果情報」という。）を他の装置から受信することによって分析結果が取得されてもよい。分析結果取得部４４２は、取得された分析結果を診断情報記憶部４２に記録する。このとき、分析結果取得部４４２は、分析結果を、その分析結果と対応する診断情報に対応づけて記録することが望ましい。
【００３０】
学習制御部４４３は、学習装置５０に対し、分析結果が得られている診断情報を用いた学習処理の実行を要求する。例えば、学習制御部４４３は、診断情報に含まれる複数の値を各成分として持つ多次元のベクトルを学習用データとして生成することで学習処理の実行を要求してもよい。
【００３１】
このとき、学習制御部４４３は、必ずしも診断情報の全ての値を用いた学習を要求しなくてもよい。例えば、学習制御部４４３は、診断情報に含まれる複数の項目の値のうち、予め定められた項目の値のみを用いて学習用データを生成し、生成された学習用データを用いた学習処理を実行するように学習装置５０に要求してもよい。例えば、学習制御部４４３は、要求情報に関する項目、応答情報に関する項目、ＤＡＳＴツールの診断結果に関する項目のうち１つ又は複数の項目の値のみを用いて学習用データを生成してもよい。例えば、学習制御部４４３は、以下に示す各項目の値で構成される学習用データを生成してもよい。なお、各学習用データには、以下に示す各項目の値に加えてさらに、分析結果の値も与えられる。
【００３２】
・Tool：診断に使用されたＤＡＳＴツールの識別情報
・Vulnerability：ＤＡＳＴツースによって検出された脆弱性の種類
・Method：模擬的な攻撃に用いられたＨＴＴＰリクエストのメソッド
・Query：模擬的な攻撃に用いられたＨＴＴＰリクエストのクエリ
・Status：模擬的な攻撃によって診断対象から返却されたＨＴＴＰレスポンスコード
・Risk：ＤＡＳＴツールによって判定された脆弱性の危険度
・Confidence：ＤＡＳＴツールが判定した診断結果の確度
【００３３】
上記各項目のうち、Method及びQueryは、要求情報に関する項目の具体例である。要求情報に関する項目としてMethod及びQuery以外の項目が用いられてもよい。上記各項目のうち、Statusは、応答情報に関する項目の具体例である。応答情報に関する項目としてStatus以外の項目が用いられてもよい。上記各項目のうち、Vulnerability、Risk及びConfidenceは、ＤＡＳＴツールの診断結果に関する項目の具体例である。ＤＡＳＴツールの診断結果に関する項目としてVulnerability、Risk及びConfidence以外の項目が用いられてもよい。上述した具体例の他にも、ＨＴＴＰレスポンスコードのＢｏｄｙや、要求情報が送信されてから応答情報が受信されるまでの間に要した時間（応答速度）の値が用いられてもよい。なお、上述した各項目の値に加えて他の項目の値が含まれるように学習用データが生成されてもよい。また、Method、Query及びStatusの各値を得る際には、必ずしも模擬的な攻撃に基づく必要は無い。実際に攻撃が行われた場合には、その際に得られた値が学習用データに用いられてもよい。
【００３４】
上記各項目のうち、一部の項目は値として数値ではなく文字列を持つ。しかし、学習装置５０における学習処理では、一般的に数値が用いられることが多い。そのため、項目によってはそのままの値を学習処理に用いることができない場合がある。このような問題に対し、学習制御部４４３は、以下のような処理を行うことで解決を図る。
【００３５】
Vulnerability及びQueryは、取り得る文字列及び文字数が定まっていない。このような項目の値に対しては、例えば文字列の数値化アルゴリズムが適用されてもよい。Vulnerabilityの値については、ハッシュ値の数値化により文字列に応じた数値が得られてもよい。Queryの値については、Ｗｅｂページに固有である文字列の部分（以下「key」という。）と、Ｗｅｂページに固有では無い文字列の部分（以下「value」という。）とに分けられる。このうち、Ｗｅｂページに固有では無い文字列の部分（value）の値のみを抽出してそのハッシュ値を数値化することによって文字列に応じた数値が得られてもよい。上述のように、一般的に、Queryはkey及びvalueの二つの値を用いて構成される。例えば、“＝”によって分割される左辺の文字列がkeyに相当し、右辺の文字列がvalueに相当する。keyはＷｅｂページ毎に固有の値であって脆弱性の有無の判断に影響を与えにくいため、上述したようにkeyの値を用いずにvalueの値のみに基づいたハッシュ値が用いられることで脆弱性の有無の判断をより高い精度で行うことが可能となる。
【００３６】
学習制御部４４３は、学習装置５０によって得られた学習結果を示す情報（以下「学習結果情報」という。）を学習装置５０から取得する。学習制御部４４３は、取得された学習結果情報を学習結果情報記憶部４３に記録する。
【００３７】
判定部４４４は、学習結果情報記憶部４３に記憶されている学習結果を用いて、診断情報取得部４４１によって取得される診断情報に基づき、診断情報の診断対象となったＷｅｂソフトウェアについてＷｅｂ脆弱性の有無を判定する。判定処理において、判定部４４４は、使用される診断情報の項目の値について学習制御部４４３と同じアルゴリズムで文字列を数値に変換する。そして、判定部４４４は、学習制御部４４３と同じアルゴリズムで診断情報に応じた多次元のベクトル（ただし分析結果の値は有さない）を生成し、学習結果情報に基づいて分析結果に相当する判定結果（診断対象装置１０のＷｅｂ脆弱性の判定結果）を取得する。
【００３８】
学習装置５０は、学習制御部４４３による要求にしたがって、複数の学習用データを用いて学習処理を実行する。学習用データに与えられている値のうち、分析結果の値を得るための学習結果が取得される。学習装置５０には、例えば教師付き学習によって識別器を生成又は更新するための機械学習技術が適用される。機械学習技術の具体例として、ＳＶＭ（Support Vector Machine）やＤＬ（Deep Learning）がある。
【００３９】
図３は、診断情報及び分析結果が得られるまでの処理の流れの具体例を示すシーケンスチャートである。まず、ユーザーが診断制御装置２０を操作することによって診断対象装置１０に対する診断処理の開始を指示する（ステップＳ１０１）。診断制御装置２０は、診断処理の開始の指示に応じて、開始指示を診断装置３０に送信する（ステップＳ１０２）。
【００４０】
診断装置３０は、開始指示を受信すると、ＤＡＳＴツールのアルゴリズムに従って要求情報を生成する。図３に示す具体例では、要求情報としてＨＴＴＰリクエストを用いている。なお、診断装置３０が複数のＤＡＳＴツールを実行可能である場合には、どのＤＡＳＴツールを使用するか診断制御装置２０のユーザーによって選択されてもよい。診断装置３０は、生成したＨＴＴＰリクエストを、診断対象装置１０に対して送信する（ステップＳ１０３）。
【００４１】
診断対象装置１０は、予めインストールされているＷｅｂソフトウェアの動作に応じて、ＨＴＴＰリクエストに対する応答情報を生成する（ステップＳ１０４）。図３に示す具体例では、応答情報としてＨＴＴＰレスポンスが用いられる。診断対象装置１０は、生成されたＨＴＴＰレスポンスを診断装置３０に送信する（ステップＳ１０５）。
【００４２】
診断装置３０は、受信されたＨＴＴＰレスポンスの値を含む履歴情報を記録する（ステップＳ１０６）。診断装置３０は、予め定められている１つのＨＴＴＰリクエストの送信が全て終わるまで、ステップＳ１０３以降の処理を繰り返し実行する（ステップＳ１０７−ＮＯ）。予め定められているＨＴＴＰリクエストの送信が全て終わると（ステップＳ１０７−ＹＥＳ）、診断装置３０は、記録された履歴情報に基づいて診断対象装置１０のＷｅｂ脆弱性について診断処理を実行する（ステップＳ１０８）。診断装置３０は、診断処理の実行によって得られる診断結果を記録する（ステップＳ１０９）。診断装置３０は、取得された診断結果と履歴情報とを含む診断情報を判定装置４０に送信する（ステップＳ１１０）。
【００４３】
判定装置４０の診断情報取得部４４１は、診断情報を受信すると、受信された診断情報を診断情報記憶部４２に記録する（ステップＳ１１１）。
【００４４】
また、診断装置３０は、取得された診断情報を診断制御装置２０に送信する（ステップＳ１１２）。診断制御装置２０は、診断情報を受信すると、受信された診断情報に含まれる診断結果や履歴情報を出力する（ステップＳ１１３）。例えば、診断結果や履歴情報を示す画面を、ユーザーの操作に応じて表示装置に表示することで出力が実現されてもよい。診断制御装置２０のユーザーは、出力された診断結果や履歴情報に基づいて、診断対象装置１０のＷｅｂソフトウェアの脆弱性について分析する。そして、診断制御装置２０のユーザーは、診断制御装置２０の入力装置を操作することによって、分析結果を入力する（ステップＳ１１４）。診断制御装置２０は、入力された分析結果を判定装置４０に送信する（ステップＳ１１５）。このとき、診断制御装置２０は、分析結果がどの診断結果又は履歴情報に関するものであるかを示す情報とともに分析結果を送信することが望ましい。判定装置４０の分析結果取得部４４２は、分析結果を受信すると、関連する診断情報に対応づけて診断情報記憶部４２に記録する（ステップＳ１１６）。
【００４５】
図４は、学習結果が得られるまでの処理の流れの具体例を示すシーケンスチャートである。まず、判定装置４０の学習制御部４４３は、診断情報記憶部４２に記録されている診断情報に基づいて、学習用データを生成する（ステップＳ２０１）。学習制御部４４３は、生成された学習用データを用いた学習処理の実行を学習装置５０に要求する（ステップＳ２０２）。学習装置５０は、判定装置４０から学習要求を受信すると、判定装置４０から送信された複数の学習用データを用いて学習処理を実行する。学習装置５０は、学習処理の実行によって得られた学習結果を示す学習結果情報を判定装置４０に送信する（ステップＳ２０４）。判定装置４０の学習制御部４４３は、学習装置５０から学習結果情報を受信すると、受信された学習結果情報を学習結果情報記憶部４３に記録する（ステップＳ２０５）。
【００４６】
図５は、診断情報に基づいて判定装置４０による判定結果が得られるまでの処理の流れの具体例を示すシーケンスチャートである。ステップＳ１０１〜ステップＳ１１１までの処理の流れは、図３に示される処理の流れと同じである。ステップＳ１１１において診断情報が判定装置４０に記録された後、判定装置４０の判定部４４４は、新たに記録された診断情報について、学習結果情報に基づいて脆弱性を判定する（ステップＳ３０１）。判定部４４４は、判定結果を診断情報と対応づけて診断情報記憶部４２に記録する（ステップＳ３０２）。判定部４４４は、判定処理の要求元である診断制御装置２０に対し判定結果を送信する（ステップＳ３０３）。診断制御装置２０は、判定結果を受信すると、判定結果を出力する（ステップＳ３０４）。
【００４７】
このように構成された脆弱性判定システム１００では、一度学習結果を取得できた後は、人手を介してＷｅｂソフトウェアを分析しなくともＷｅｂソフトウェアの脆弱性に関する判定結果を取得することが可能となる。そのため、Ｗｅｂソフトウェアの脆弱性の判定に要する時間やコストを削減することが可能となる。
【００４８】
また、学習処理や判定処理に用いられる情報は、要求情報に関する項目の値、応答情報に関する項目の値、ＤＡＳＴツールの診断結果に関する項目の値であり、いずれも一般的なＤＡＳＴツールに共通して出力される値である。そのため、様々なＤＡＳＴツールに適用することが可能となる。
【００４９】
また、学習処理や判定処理に用いられる情報は、要求情報に関する項目の値、応答情報に関する項目の値、ＤＡＳＴツールの診断結果に関する項目の値であり、いずれの値も脆弱性の判定結果に影響があると考えられる。診断結果では多種多様な項目の値が得られるが、特に上述した項目の値に絞って学習処理及び判定処理を行うことによって、より少ない計算コストで、より精度の高い判定結果を得ることが可能となる。
【００５０】
（変形例）
脆弱性判定システム１００の構成は、図１に示された構成に限定される必要は無い。
例えば、学習装置５０は脆弱性判定システム１００の外部の装置として構築されてもよい。その場合も、図３〜５のシーケンスチャートに示されているように、判定装置４０は学習装置に対して学習処理の要求を行い、学習結果を取得する。
【００５１】
例えば、診断装置３０は脆弱性判定システム１００の外部の装置として構築されてもよい。より具体的な例としては、診断対象装置１０及び診断制御装置２０を有するユーザーのシステム内の装置として診断装置３０が構築されてもよい。このように構成されることにより、判定装置４０による判定結果を取得したいユーザーは、自身が既に有している診断装置３０を用いて診断処理を実行し、その結果に基づいて判定結果を取得することが可能となる。
【００５２】
例えば、判定部４４４及び学習結果情報記憶部４３は、判定装置４０ではなく学習装置５０の機能として構築されてもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００５３】
１００…脆弱性判定システム，  １０…診断対象装置，  ２０…診断制御装置，  ３０…診断装置，  ４０…判定装置，  ４１…通信部，  ４２…診断情報記憶部，  ４３…学習結果情報記憶部，  ４４…制御部，  ４４１…診断情報取得部，  ４４２…分析結果取得部，  ４４３…学習制御部，  ４４４…判定部，  ５０…学習装置
【図１】
2019148917.tif 000003
【図２】
2019148917.tif 000004
【図３】
2019148917.tif 000005
【図４】
2019148917.tif 000006
【図５】
2019148917.tif 000007