(57)【要約】【課題】検証する複数の脆弱性のそれぞれの優先度を決定できるようにする。【解決手段】機能評価ファイル２９１は複数の機能のそれぞれの機能識別子に評価項目毎の評価値を対応付けている。機能優先度決定部２１０は機能評価ファイル２９１を用いて複数の機能のそれぞれの機能優先度を決定する。攻撃計測ファイル２９２は複数の攻撃のそれぞれの攻撃識別子に計測項目毎の計測値を対応付けている。攻撃優先度決定部２２０は攻撃計測ファイル２９２を用いて複数の攻撃のそれぞれの攻撃優先度を決定する。依存関係ファイル２９３は複数の脆弱性のそれぞれの脆弱性識別子に機能識別子と攻撃識別子とを対応付けている。脆弱性優先度決定部２３０は依存関係ファイル２９３を用いて複数の脆弱性のそれぞれの脆弱性優先度を決定する。【選択図】図２
2016149052.tif 000002
【特許請求の範囲】
【請求項１】
対象装置が有する複数の機能のそれぞれを識別する機能識別子に評価項目毎の評価値を対応付けた機能評価ファイルを用いて、前記複数の機能のそれぞれの機能識別子に対応付いた評価項目毎の評価値に基づいて、前記複数の機能のそれぞれの機能優先度を決定する機能優先度決定部と、
前記対象装置に対する複数の攻撃のそれぞれを識別する攻撃識別子に計測項目毎の計測値を対応付けた攻撃計測ファイルを用いて、前記複数の攻撃のそれぞれの攻撃識別子に対応付いた計測項目毎の計測値に基づいて、前記複数の攻撃のそれぞれの攻撃優先度を決定する攻撃優先度決定部と、
前記対象装置が有するか検証される複数の脆弱性のそれぞれを識別する脆弱性識別子に機能識別子と攻撃識別子とを対応付けた依存関係ファイルを用いて、前記複数の脆弱性のそれぞれの脆弱性識別子に対応付いた機能識別子で識別される機能の機能優先度と、前記複数の脆弱性のそれぞれの脆弱性識別子に対応付いた攻撃識別子で識別される攻撃の攻撃優先度とに基づいて、前記複数の脆弱性のそれぞれの脆弱性優先度を決定する脆弱性優先度決定部と
を備える脆弱性検証装置。
【請求項２】
前記機能評価ファイルは、評価項目毎の基準値と、評価項目毎の重み値とを含み、
前記機能優先度決定部は、評価項目毎に評価値を基準値と比較し、比較結果に基づいて評価項目を選択し、選択した評価項目の重み値を合計した値を前記機能優先度として算出する
請求項１に記載の脆弱性検証装置。
【請求項３】
前記機能評価ファイルは、評価項目毎の特性値を含み、
特性値が第１の値である場合、評価値が基準値よりも大きい評価項目が選択され、
特性値が第２の値である場合、評価値が基準値よりも小さい評価項目が選択される
請求項２に記載の脆弱性検証装置。
【請求項４】
前記攻撃計測ファイルは、計測項目毎の重み値を含み、
前記攻撃優先度決定部は、計測項目毎に計測値に重み値を掛けて重み付け計測値を算出し、計測項目毎の重み付け計測値を合計した値を前記攻撃優先度として算出する
請求項１に記載の脆弱性検証装置。
【請求項５】
前記依存関係ファイルは、前記脆弱性識別子に１つ以上の機能識別子と１つ以上の攻撃識別子とを対応付け、
前記脆弱性優先度決定部は、前記脆弱性識別子に対応付いた１つ以上の機能識別子で識別される１つ以上の機能のそれぞれの機能優先度から１つの機能優先度を選択し、前記脆弱性識別子に対応付いた１つ以上の攻撃識別子で識別される１つ以上の攻撃のそれぞれの攻撃優先度から１つの攻撃優先度を選択し、前記１つの機能優先度と前記１つの攻撃優先度とを用いて前記脆弱性優先度を算出する
請求項１に記載の脆弱性検証装置。
【請求項６】
前記１つの機能優先度として選択される機能優先度は最大の機能優先度であり、前記１つの攻撃優先度として選択される攻撃優先度は最大の攻撃優先度である
請求項５に記載の脆弱性検証装置。
【請求項７】
前記脆弱性優先度は、重み付け機能優先度と重み付け攻撃優先度とを合計した値であり、前記重み付け機能優先度は、前記１つの機能優先度に機能重み値を掛けた値であり、前記重み付け攻撃優先度は、前記１つの攻撃優先度に攻撃重み値を掛けた値である
請求項５に記載の脆弱性検証装置。
【請求項８】
前記依存関係ファイルは、前記脆弱性識別子に１つ以上の攻撃識別子を対応付け、
脆弱性優先度の順に脆弱性識別子を選択し、選択した脆弱性識別子に対応付いた１つ以上の攻撃識別子を前記依存関係ファイルから選択し、選択した１つ以上の攻撃識別子を攻撃優先度の順に並べて攻撃リストを生成する攻撃リスト生成部を備える
請求項１に記載の脆弱性検証装置。
【請求項９】
前記攻撃リストに含まれる１つ以上の攻撃識別子で識別される１つ以上の攻撃を攻撃識別子の並び順で前記対象装置に対して実行する攻撃実行部を備える
請求項８に記載の脆弱性検証装置。
【請求項１０】
前記攻撃実行部は、攻撃を実行するためのプログラムである攻撃パターンを生成する攻撃規則を攻撃識別子に対応付けた攻撃規則ファイルを用いて、攻撃識別子で識別される攻撃を実行するための攻撃パターンを生成し、前記攻撃パターンを実行することによって、前記対象装置に対する攻撃を実行する
請求項９に記載の脆弱性検証装置。
【請求項１１】
前記対象装置と通信し、通信結果に基づいて前記対象装置が有する脆弱性を判定する脆弱性判定部を備える
請求項９に記載の脆弱性検証装置。
【請求項１２】
前記脆弱性判定部は、前記対象装置に対する攻撃の実行前の通信と、前記対象装置に対する攻撃の実行中の通信と、前記対象装置に対する攻撃の実行後の通信との少なくともいずれかを含んだ通信手順を攻撃識別子に対応付けた通信手順ファイルを用いて、前記対象装置に対する攻撃の攻撃識別子に対応付いた通信手順に従って、前記対象装置と通信する
請求項１１に記載の脆弱性検証装置。
【請求項１３】
前記脆弱性判定部は、脆弱性の有無の判定基準を攻撃識別子に対応付けた判定基準ファイルを用いて、前記対象装置に対する攻撃の攻撃識別子に対応付いた判定基準と前記通信結果を比較し、比較結果に基づいて脆弱性の有無を判定する
請求項１１に記載の脆弱性検証装置。
【請求項１４】
対象装置が有する複数の機能のそれぞれを識別する機能識別子に評価項目毎の評価値を対応付けた機能評価ファイルを用いて、前記複数の機能のそれぞれの機能識別子に対応付いた評価項目毎の評価値に基づいて、前記複数の機能のそれぞれの機能優先度を決定する機能優先度決定処理と、
前記対象装置に対する複数の攻撃のそれぞれを識別する攻撃識別子に計測項目毎の計測値を対応付けた攻撃計測ファイルを用いて、前記複数の攻撃のそれぞれの攻撃識別子に対応付いた計測項目毎の計測値に基づいて、前記複数の攻撃のそれぞれの攻撃優先度を決定する攻撃優先度決定処理と、
前記対象装置が有するか検証される複数の脆弱性のそれぞれを識別する脆弱性識別子に機能識別子と攻撃識別子とを対応付けた依存関係ファイルを用いて、前記複数の脆弱性のそれぞれの脆弱性識別子に対応付いた機能識別子で識別される機能の機能優先度と、前記複数の脆弱性のそれぞれの脆弱性識別子に対応付いた攻撃識別子で識別される攻撃の攻撃優先度とに基づいて、前記複数の脆弱性のそれぞれの脆弱性優先度を決定する脆弱性優先度決定処理と
をコンピュータに実行させるための脆弱性検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティに対する脆弱性を検証する技術に関するものである。
【背景技術】
【０００２】
インターネットの発展に伴い、ネットワークを介してセキュリティ攻撃による被害が広がっている。セキュリティ攻撃の多くは、システムの脆弱性を悪用したものである。脆弱性の多くは対策の不備が原因である。
【０００３】
一方で、新たなサービスの提供のため、組込み機器がネットワークに接続される傾向にある。組込み機器はサイバー空間だけでなく物理空間と密接なつながりを持つ。そして、組込み機器に対するセキュリティ攻撃は、企業機密の漏えい及び個人情報の流出の他、人命および環境に直接の害を及ぼす可能性がある。
セキュリティ攻撃による害を防ぐには、組込み機器の脆弱性に対して漏れなく対策を実施する必要がある。そのためには、脆弱性の有無を漏れなく検証することが重要である。
【０００４】
脆弱性の有無を検証する単純な方法として、検証対象に対して実際にセキュリティ攻撃を実行する、という方法がある。
ＯＷＡＳＰで公開されているＷｅｂＳｃａｒａｂ、Ｐａｒｏｓ  Ｐｒｏｊｅｃｔで公開されているＰａｒｏｓｐｒｏｘｙなど、セキュリティ攻撃を自動で行う脆弱性検証ツールが存在する。ＯＷＡＳＰはｔｈｅ  Ｏｐｅｎ  Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ  Ｐｒｏｊｅｃｔの略称である。
しかし、脆弱性検証ツールを大規模なシステムに対して実行すると検証時間が長くなるため、脆弱性を検出するまでに長い時間がかかる。
【０００５】
脆弱性が検出された場合、脆弱性の検証の途中であっても改修の検討を開始することで、脆弱性の検証から改修の完了までの１サイクルにかかる時間を短縮させることができる。
しかし、従来の脆弱性検証ツールでは、脆弱性の検証の開始後、早期に脆弱性が検出されないという課題がある。
【０００６】
特許文献１は、重要と判断される機能からソフトウェアテストを実行することを目的とした技術を開示している。
特許文献１に開示された技術は、記憶手段と優先度算出手段と並び替え手段とを備えることを特徴とする。
記憶手段は、ソフトウェアの各機能に対するメトリクスの値を定義したファイルを記憶する。
優先度算出手段は、ソフトウェアの機能毎に決定されたメトリクスから、各機能の優先度を算出する。
並び替え手段は、各機能の優先度に基づいてテスト項目を並び替える。
【０００７】
一般に一つの機能に対して複数の脆弱性が存在するが、複数の脆弱性の中には対策の不備を生じやすいものと対策の不備を生じにくいものがある。
しかし、特許文献１の技術は、複数の脆弱性を同一に扱うため、脆弱性を早期に検出できるとは限らない。
【０００８】
脆弱性の検証から改修の完了までの１サイクルの時間の効率化のためには、改修に時間を要する脆弱性に関する検証を早期に実行することが有効であると思われる。
しかし、特許文献１の技術は、改修に時間を要する脆弱性に関する検証を脆弱性の検証の終了直前に実行する場合がある。そのため、脆弱性の検証から改修の完了までの１サイクルの時間の効率化が図れない。
【０００９】
非特許文献１は、ＥＳＱＲという品質指標を推奨している。ＥＳＱＲはＥｍｂｅｄｄｅｄ  Ｓｙｓｔｅｍ  ｄｅｖｅｌｏｐｍｅｎｔ  Ｑｕａｌｉｔｙ  Ｒｅｆｅｒｅｎｃｅの略称である。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００３―９９２８３号公報
【非特許文献】
【００１１】
【非特許文献１】“改訂版  組込みソフトウェア開発向け  品質作り込みガイド”、独立行政法人情報処理推進機構  技術本部、ソフトウェア・エンジニアリング・センター、２０１２．
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、検証する複数の脆弱性のそれぞれの優先度を決定できるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明の脆弱性検証装置は、
対象装置が有する複数の機能のそれぞれを識別する機能識別子に評価項目毎の評価値を対応付けた機能評価ファイルを用いて、前記複数の機能のそれぞれの機能識別子に対応付いた評価項目毎の評価値に基づいて、前記複数の機能のそれぞれの機能優先度を決定する機能優先度決定部と、
前記対象装置に対する複数の攻撃のそれぞれを識別する攻撃識別子に計測項目毎の計測値を対応付けた攻撃計測ファイルを用いて、前記複数の攻撃のそれぞれの攻撃識別子に対応付いた計測項目毎の計測値に基づいて、前記複数の攻撃のそれぞれの攻撃優先度を決定する攻撃優先度決定部と、
前記対象装置が有するか検証される複数の脆弱性のそれぞれを識別する脆弱性識別子に機能識別子と攻撃識別子とを対応付けた依存関係ファイルを用いて、前記複数の脆弱性のそれぞれの脆弱性識別子に対応付いた機能識別子で識別される機能の機能優先度と、前記複数の脆弱性のそれぞれの脆弱性識別子に対応付いた攻撃識別子で識別される攻撃の攻撃優先度とに基づいて、前記複数の脆弱性のそれぞれの脆弱性優先度を決定する脆弱性優先度決定部とを備える。
【発明の効果】
【００１４】
本発明によれば、検証する複数の脆弱性のそれぞれの優先度を決定することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１における脆弱性検証システム１００の構成図。
【図２】実施の形態１における脆弱性検証装置２００の機能構成図。
【図３】実施の形態１における機能評価ファイル２９１の構成図。
【図４】実施の形態１における攻撃計測ファイル２９２の構成図。
【図５】実施の形態１における依存関係ファイル２９３の構成図。
【図６】実施の形態１における攻撃リスト２４９の構成図。
【図７】実施の形態１における攻撃規則ファイル２９４の構成図。
【図８】実施の形態１における通信手順ファイル２９５の構成図。
【図９】実施の形態１における判定基準ファイル２９６の構成図。
【図１０】実施の形態１における脆弱性検証システム１００のハードウェア構成図。
【図１１】実施の形態１における脆弱性検証方法のフローチャート。
【図１２】実施の形態１における機能優先度決定処理（Ｓ１１０）のフローチャート。
【図１３】実施の形態１における攻撃優先度決定処理（Ｓ１２０）のフローチャート。
【図１４】実施の形態１における脆弱性優先度決定処理（Ｓ１３０）のフローチャート。
【図１５】実施の形態１における攻撃リスト生成処理（Ｓ１４０）のフローチャート。
【図１６】実施の形態１における攻撃実行処理（Ｓ１５０）のフローチャート。
【図１７】実施の形態１における脆弱性判定処理（Ｓ１６０）のフローチャート。
【発明を実施するための形態】
【００１６】
実施の形態１．
対象装置１１０の脆弱性を検証する脆弱性検証装置２００について、図１から図１７に基づいて説明する。
【００１７】
＊＊＊構成の説明＊＊＊
図１に基づいて、脆弱性検証システム１００の構成について説明する。
脆弱性検証システム１００は、入力装置１０１と、出力装置１０２と、脆弱性検証装置２００と、対象装置１１０とを備える。
入力装置１０１は、ＧＵＩまたはＣＵＩを介して、脆弱性検証装置２００にデータを入力する装置である。入力装置１０１の一例はキーボード、マウスまたはタッチパネルである。ＧＵＩはＧｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅの略称であり、ＣＵＩはＣｈａｒａｃｔｅｒ  ｂａｓｅｄ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅの略称である。
出力装置１０２は、脆弱性検証装置２００からデータを出力される装置である。出力装置１０２の一例はモニタである。
脆弱性検証装置２００は、対象装置１１０の脆弱性を検証するコンピュータである。
対象装置１１０は、脆弱性を検証される対象のコンピュータである。対象装置１１０の一例は組み込み機器である。
【００１８】
図２に基づいて、脆弱性検証装置２００の機能構成について説明する。
脆弱性検証装置２００は、機能優先度決定部２１０と、攻撃優先度決定部２２０と、脆弱性優先度決定部２３０と、攻撃リスト生成部２４０とを備える。
さらに、脆弱性検証装置２００は、攻撃実行部２５０と、脆弱性判定部２６０と、検証記憶部２９０とを備える。
【００１９】
検証記憶部２９０は、脆弱性検証装置２００で使用、生成または入出力されるデータを記憶する。
機能評価ファイル２９１、攻撃計測ファイル２９２、依存関係ファイル２９３、攻撃規則ファイル２９４および判定基準ファイル２９６は、検証記憶部２９０に記憶されるデータの一例である。
機能重み値２９７および攻撃重み値２９８は、検証記憶部２９０に記憶されるデータの一例である。
【００２０】
機能評価ファイル２９１は、機能識別子に評価項目毎の評価値を対応付けている。機能識別子は、対象装置１１０が有する複数の機能のそれぞれを識別する。さらに、機能評価ファイル２９１は、評価項目毎の基準値と、評価項目毎の重み値と特性値とを含む。
【００２１】
攻撃計測ファイル２９２は、攻撃識別子に計測項目毎の計測値を対応付けている。攻撃識別子は、対象装置１１０に対する複数の攻撃のそれぞれを識別する。さらに、攻撃計測ファイル２９２は、計測項目毎の重み値を含む。
【００２２】
依存関係ファイル２９３は、脆弱性識別子に１つ以上の機能識別子と１つ以上の攻撃識別子とを対応付けている。脆弱性識別子は、対象装置１１０が有するか検証される複数の脆弱性のそれぞれを識別する。脆弱性は、セキュリティ上の欠陥および弱点を意味する。脆弱性は欠陥または弱点と読み替えることができる。
【００２３】
攻撃規則ファイル２９４は、攻撃パターンを生成する攻撃規則を攻撃識別子に対応付けている。攻撃パターンは攻撃を実行するためのプログラムである。スクリプトおよびスクリプトファイルはプログラムの一例である。
【００２４】
通信手順ファイル２９５は、攻撃前通信と攻撃中通信と攻撃後通信との少なくともいずれかを含んだ通信手順を攻撃識別子に対応付けている。攻撃前通信は対象装置１１０に対する攻撃の実行前の通信であり、攻撃中通信は対象装置１１０に対する攻撃の実行中の通信であり、攻撃後通信は対象装置１１０に対する攻撃の実行後の通信である。
【００２５】
判定基準ファイル２９６は、脆弱性の有無の判定基準を攻撃識別子に対応付けている。
【００２６】
機能優先度決定部２１０は、機能評価ファイル２９１を用いて、複数の機能のそれぞれの機能識別子に対応付いた評価項目毎の評価値に基づいて、複数の機能のそれぞれの機能優先度を決定する。複数の機能のそれぞれの機能優先度を示すデータを機能優先度リスト２１９という。
【００２７】
機能優先度は、以下のように算出される。
機能優先度決定部２１０部は、評価項目毎に評価値を基準値と比較し、比較結果に基づいて評価項目を選択し、選択した評価項目の重み値を合計した値を機能優先度として算出する。
特性値が第１の値である場合、評価値が基準値よりも大きい評価項目が選択される。実施の形態１において、第１の値は１である。
特性値が第２の値である場合、評価値が基準値よりも小さい評価項目が選択される。実施の形態１において、第２の値は０である。
【００２８】
攻撃優先度決定部２２０は、攻撃計測ファイル２９２を用いて、複数の攻撃のそれぞれの攻撃識別子に対応付いた計測項目毎の計測値に基づいて、複数の攻撃のそれぞれの攻撃優先度を決定する。複数の攻撃のそれぞれの攻撃優先度を示すデータを攻撃優先度リスト２２９という。
【００２９】
攻撃優先度は、以下のように算出される。
攻撃優先度決定部２２０は、計測項目毎に計測値に重み値を掛けて重み付け計測値を算出し、計測項目毎の重み付け計測値を合計した値を前記攻撃優先度として算出する。
【００３０】
脆弱性優先度決定部２３０は、依存関係ファイル２９３を用いて、複数の脆弱性のそれぞれの機能優先度と、複数の脆弱性のそれぞれの攻撃優先度とに基づいて、複数の脆弱性のそれぞれの脆弱性優先度を決定する。複数の脆弱性のそれぞれの機能優先度は、複数の脆弱性のそれぞれの脆弱性識別子に対応付いた機能識別子で識別される機能の機能優先度である。複数の脆弱性のそれぞれの攻撃優先度は、複数の脆弱性のそれぞれの脆弱性識別子に対応付いた攻撃識別子で識別される攻撃の攻撃優先度である。
【００３１】
脆弱性優先度は、以下のように算出される。
脆弱性優先度決定部２３０は、脆弱性識別子に対応付いた１つ以上の機能識別子で識別される１つ以上の機能のそれぞれの機能優先度から１つの機能優先度を選択する。脆弱性優先度決定部２３０は、脆弱性識別子に対応付いた１つ以上の攻撃識別子で識別される１つ以上の攻撃のそれぞれの攻撃優先度から１つの攻撃優先度を選択する。そして、脆弱性優先度決定部２３０は、１つの機能優先度と１つの攻撃優先度とを用いて、脆弱性優先度を算出する。
１つの機能優先度として選択される機能優先度は最大の機能優先度である。１つの攻撃優先度として選択される攻撃優先度は最大の攻撃優先度である。
脆弱性優先度は、重み付け機能優先度と重み付け攻撃優先度とを合計した値である。重み付け機能優先度は、１つの機能優先度に機能重み値２９７を掛けた値である。重み付け攻撃優先度は、１つの攻撃優先度に攻撃重み値２９８を掛けた値である。
【００３２】
攻撃リスト生成部２４０は、以下のように攻撃リスト２４９を生成する。
攻撃リスト生成部２４０は、脆弱性優先度の順に脆弱性識別子を選択する。
攻撃リスト生成部２４０は、選択した脆弱性識別子に対応付いた１つ以上の攻撃識別子を前記依存関係ファイルから選択する。
攻撃リスト生成部２４０は、選択した１つ以上の攻撃識別子を攻撃優先度の順に並べて攻撃リスト２４９を生成する。
攻撃リスト生成部２４０は、攻撃リスト２４９を生成する際に攻撃識別子リスト２４８を生成する。攻撃識別子リスト２４８については後述する。
【００３３】
攻撃実行部２５０は、攻撃リスト２４９に含まれる１つ以上の攻撃識別子で識別される１つ以上の攻撃を攻撃識別子の並び順で対象装置１１０に対して実行する。
【００３４】
攻撃実行部２５０は、以下のように攻撃を実行する。
攻撃実行部２５０は、攻撃規則ファイル２９４を用いて、攻撃識別子で識別される攻撃を実行するための攻撃パターンを生成する。
攻撃実行部２５０は、攻撃パターンを実行することによって、対象装置１１０に対する攻撃を実行する。
【００３５】
脆弱性判定部２６０は、対象装置１１０と通信し、通信結果に基づいて対象装置１１０が有する脆弱性を判定する。対象装置１１０が有する脆弱性を示すデータを脆弱性リスト２６９という。
【００３６】
脆弱性判定部２６０は、以下のように通信および判定を行う。
脆弱性判定部２６０は、通信手順ファイル２９５を用いて、対象装置１１０に対する攻撃の攻撃識別子に対応付いた通信手順に従って、対象装置１１０と通信する。
脆弱性判定部２６０は、判定基準ファイル２９６を用いて、対象装置１１０に対する攻撃の攻撃識別子に対応付いた判定基準と通信結果を比較し、比較結果に基づいて脆弱性の有無を判定する。
【００３７】
図３に基づいて、機能評価ファイル２９１について説明する。実施の形態１において、機能評価ファイル２９１はＥＳＱＲという品質指標に基づいて作成される。
機能評価ファイル２９１は、機能識別子に評価項目毎の評価値を対応付けている。
「１：認証」の「１」、「２：ファイル送信」の「２」は機能識別子の一例である。「１：認証」の「認証」、「２：ファイル送信」の「ファイル送信」は機能名である。機能名が機能識別子として用いられてもよい。
「変更」、「流用率」「制御文記述率」「テスト密度」などは評価項目の一例である。
「１：認証」に対応付いた「変更」の評価値は０であり、「１：認証」に対応付いた「流用率」の評価値は２８である。
【００３８】
機能評価ファイル２９１は、評価項目毎の特性値、基準値および重み値を含んでいる。
特性値は、評価値の大小と評価の高低との関係を示す値である。特性値が０である場合、評価値が大きいほど評価は高く、評価値が小さいほど評価は低い。特性値が１である場合、評価値が小さいほど評価は高く、評価値が大きいほど評価は低い。
「変更」の特性値は１であり、「変更」の基準値は０であり、「変更」の重み値は１０である。
【００３９】
「テスト密度」は動的テストの網羅性の値を示す。動的テストが十分に網羅されていれば、機能の品質が高いと考えられる。そのため、「テスト密度」の特性値は０である。
「制御文記述率」は制御文の多さを示す。制御文が多ければ分岐が多いため、機能の複雑度が高く、機能の品質が低いと考えられる。そのため、「制御文記述率」の特性値は１である。
【００４０】
図４に基づいて、攻撃計測ファイル２９２について説明する。
攻撃計測ファイル２９２は、攻撃識別子に計測項目毎の計測値を対応付けている。計測値は、過去の実績を示す値である。
「１：ＳＹＮ  Ｆｌｏｏｄ」の「１」、「２：ＬＡＮＤ  Ａｔｔａｃｋ」の「２」は攻撃識別子の一例である。「１：ＳＹＮ  Ｆｌｏｏｄ」の「ＳＹＮ  Ｆｌｏｏｄ」、「２：ＬＡＮＤ  Ａｔｔａｃｋ」の「ＬＡＮＤ  Ａｔｔａｃｋ」は攻撃名である。攻撃名が攻撃識別子として用いられてもよい。
「過去のＮＧ件数」、「ＮＧ件数率」などは評価項目の一例である。
「１：ＳＹＮ  Ｆｌｏｏｄ」に対応付いた「過去のＮＧ件数」の計測値は８であり、「１：ＳＹＮ  Ｆｌｏｏｄ」に対応付いた「ＮＧ件数率」の計測値は３である。
【００４１】
攻撃計測ファイル２９２は、計測項目毎の重み値を含んでいる。
「過去のＮＧ件数」の重み値は２であり、「ＮＧ件数率」の重み値は５である。
【００４２】
図５に基づいて、依存関係ファイル２９３について説明する。
依存関係ファイル２９３は、脆弱性識別子に１つ以上の機能識別子と１つ以上の攻撃識別子とを対応付けている。
脆弱性識別子「１」に対応付いた機能識別子は「１」「７」であり、脆弱性識別子「１」に対応付いた攻撃識別子は「５」「１０」である。
【００４３】
図６に基づいて、攻撃リスト２４９について説明する。
攻撃リスト２４９は、脆弱性優先度の順に並んだ脆弱性識別子に攻撃識別子と攻撃優先度と攻撃名とを対応付けている。
【００４４】
図７に基づいて、攻撃規則ファイル２９４について説明する。
攻撃規則ファイル２９４は、攻撃識別子に攻撃規則を対応付けている。
「ＳＹＮ  Ｆｌｏｏｄ」および「Ｐｉｎｇ  ｏｆ  Ｄｅａｔｈ」は、攻撃識別子で識別される攻撃の方法の一例である。
「ｗｅｌｌ−ｋｎｏｗｎポートのみ」というような実行粒度は、攻撃規則に含まれる情報の一例である。
【００４５】
図８に基づいて、通信手順ファイル２９５について説明する。
通信手順ファイル２９５は、攻撃識別子に通信手順を対応付けている。
「ＳＹＮ  Ｆｌｏｏｄ」および「ＳＳＬの不正証明書によるなりすまし攻撃」は、攻撃識別子で識別される攻撃の方法の一例である。
「ＳＹＮ  Ｆｌｏｏｄ」に対する通信手順として、攻撃前通信は無し、攻撃中通信は正常パケットの送信、攻撃後通信は正常パケットの送信、という内容が定義されている。
【００４６】
図９に基づいて、判定基準ファイル２９６について説明する。
判定基準ファイル２９６は、攻撃識別子に判定基準を対応付けている。
「正常パケットを送信後、１０ミリ秒以内に正常パケットを受信」および「ＳＹＮパケットを送信後、１ミリ秒以内にＳＹＮ／ＡＣＫパケットを受信」は、判定基準の一例である。
【００４７】
図１０に基づいて、脆弱性検証装置２００のハードウェア構成例について説明する。
脆弱性検証装置２００は、プロセッサ９０１、補助記憶装置９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、出力インタフェース９０６といったハードウェアを備えるコンピュータである。
プロセッサ９０１は信号線９１０を介して他のハードウェアと接続されている。入力インタフェース９０５はケーブル９１１を介して入力装置１０１に接続されている。出力インタフェース９０６はケーブル９１２を介して出力装置１０２に接続されている。
【００４８】
プロセッサ９０１は、プロセッシングを行うＩＣであり、他のハードウェアを制御する。プロセッサ９０１の一例は、ＣＰＵ、ＤＳＰ、ＧＰＵである。ＩＣはＩｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称である。ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称であり、ＤＳＰはＤｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒの略称であり、ＧＰＵはＧｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。
補助記憶装置９０２はデータを記憶する。補助記憶装置９０２の一例は、ＲＯＭ、フラッシュメモリ、ＨＤＤである。ＲＯＭはＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称であり、ＨＤＤはＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。
メモリ９０３はデータを記憶する。メモリ９０３の一例はＲＡＭである。ＲＡＭはＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。
通信装置９０４は、データを受信するレシーバ９０４１と、データを送信するトランスミッタ９０４２とを備える。通信装置９０４の一例は通信チップまたはＮＩＣである。ＮＩＣはＮｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略称である。
入力インタフェース９０５はケーブル９１１が接続されるポートであり、ポートの一例はＵＳＢ端子である。ＵＳＢはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略称である。
出力インタフェース９０６はケーブル９１２が接続されるポートであり、ＵＳＢ端子およびＨＤＭＩ端子はポートの一例である。ＨＤＭＩ（登録商標）はＨｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅの略称である。
【００４９】
補助記憶装置９０２にはＯＳが記憶されている。ＯＳはＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略称である。
また、補助記憶装置９０２には、脆弱性検証装置２００に備わる「記憶部」を除いて、脆弱性検証装置２００に備わる「部」の機能を実現するプログラムが記憶されている。
ＯＳの少なくとも一部はメモリ９０３にロードされ、プロセッサ９０１はＯＳを実行しながら「部」の機能を実現するプログラムを実行する。「部」の機能を実現するプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。
なお、脆弱性検証装置２００が複数のプロセッサ９０１を備えて、複数のプロセッサ９０１が「部」の機能を実現するプログラムを連携して実行してもよい。
【００５０】
「部」の処理の結果を示すデータ、情報、信号値および変数値などは、メモリ９０３、補助記憶装置９０２、プロセッサ９０１内のレジスタ、または、プロセッサ９０１内のキャッシュメモリに記憶される。
【００５１】
「部」は「サーキットリ」で実装してもよい。「部」は「回路」、「工程」、「手順」または「処理」に読み替えてもよい。
「回路」及び「サーキットリ」は、プロセッサ９０１、ロジックＩＣ、ＧＡ、ＡＳＩＣ、ＦＰＧＡといった処理回路を包含する概念である。ＧＡはＧａｔｅ  Ａｒｒａｙの略称であり、ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
【００５２】
＊＊＊動作の説明＊＊＊
脆弱性検証装置２００の動作は脆弱性検証方法に相当する。また、脆弱性検証方法は脆弱性検証プログラムの処理手順に相当する。
【００５３】
図１１に基づいて、脆弱性検証方法について説明する。
Ｓ１１０は機能優先度決定処理である。
Ｓ１１０において、機能優先度決定部２１０は、複数の機能のそれぞれの機能優先度を決定し、機能優先度リスト２１９を生成する。
図１２に基づいて、機能優先度決定処理（Ｓ１１０）の流れについて説明する。
【００５４】
Ｓ１１１において、機能優先度決定部２１０は、未選択の機能識別子を機能評価ファイル２９１から１つ選択する。
Ｓ１１２からＳ１１８は、Ｓ１１１で機能識別子が選択される毎に実行される。
【００５５】
Ｓ１１２において、機能優先度決定部２１０は、未選択の評価項目を機能評価ファイル２９１から１つ選択する。
Ｓ１１３からＳ１１６は、Ｓ１１２で評価項目が選択される毎に実行される。
【００５６】
Ｓ１１３において、機能優先度決定部２１０は、Ｓ１１２で選択された評価項目に対応付いた特性値を機能評価ファイル２９１から選択し、選択した特性値を判定する。
特性値が１である場合、処理はＳ１１４に進む。「制御文記述率」の特性値は１である。Ｓ１１２で選択された評価項目が「制御文記述率」である場合、処理はＳ１１４に進む。
特性値が０である場合、処理はＳ１１５に進む。「テスト密度」の特性値は０である。Ｓ１１２で選択された評価項目が「テスト密度」である場合、処理はＳ１１５に進む。
【００５７】
Ｓ１１４において、機能優先度決定部２１０は、Ｓ１１１で選択された機能識別子とＳ１１２で選択された評価項目とに対応付いた評価値を機能評価ファイル２９１から選択する。
機能優先度決定部２１０は、Ｓ１１２で選択された評価項目に対応付いた基準値を機能評価ファイル２９１から選択する。
そして、機能優先度決定部２１０は、選択した評価値と選択した基準値とを比較する。
評価値が基準値よりも大きい場合、処理はＳ１１６に進む。
評価値が基準値以下である場合、処理はＳ１１７に進む。例えば、「制御文記述率」の基準値は２５であり、「１：認証」の評価値は２４である。この場合、評価値が基準値以下であるため、処理はＳ１１７に進む。
【００５８】
Ｓ１１５において、機能優先度決定部２１０は、Ｓ１１１で選択された機能識別子とＳ１１２で選択された評価項目とに対応付いた評価値を機能評価ファイル２９１から選択する。
機能優先度決定部２１０は、Ｓ１１２で選択された評価項目に対応付いた基準値を機能評価ファイル２９１から選択する。
そして、機能優先度決定部２１０は、選択した評価値と選択した基準値とを比較する。
評価値が基準値よりも小さい場合、処理はＳ１１６に進む。例えば、「テスト密度」の基準値は７５であり、「１：認証」の評価値は７３である。この場合、評価値が基準値よりも小さいため、処理はＳ１１６に進む。
評価値が基準値以上である場合、処理はＳ１１７に進む。
【００５９】
Ｓ１１６において、機能優先度決定部２１０は、Ｓ１１２で選択された評価項目に対応付いた重み値を機能評価ファイル２９１から選択する。
そして、機能優先度決定部２１０は、Ｓ１１１で選択された機能識別子で識別される機能の機能優先度に重み値を加算する。機能優先度の初期値は０である。「テスト密度」の重み値は５である。Ｓ１１２で選択された評価項目が「テスト密度」である場合、機能優先度に５が加算される。
【００６０】
Ｓ１１７において、機能優先度決定部２１０は、Ｓ１１２で選択されていない評価項目があるか判定する。
未選択の評価項目がある場合、処理はＳ１１２に戻る。
未選択の評価項目がない場合、処理はＳ１１８に進む。
【００６１】
Ｓ１１８において、機能優先度決定部２１０は、Ｓ１１１で選択された機能識別子に対応付けて機能優先度を機能優先度リスト２１９に登録する。
【００６２】
Ｓ１１９において、機能優先度決定部２１０は、Ｓ１１１で選択されていない機能識別子があるか判定する。
未選択の機能識別子がある場合、処理はＳ１１１に戻る。
未選択の機能識別子がない場合、機能優先度決定処理（Ｓ１１０）は終了する。
【００６３】
図１１に戻り、Ｓ１２０から説明を続ける。
Ｓ１２０は攻撃優先度決定処理である。
Ｓ１２０において、攻撃優先度決定部２２０は、複数の攻撃のそれぞれの攻撃優先度を決定し、攻撃優先度リスト２２９を生成する。
図１３に基づいて、攻撃優先度決定処理（Ｓ１２０）の流れについて説明する。
【００６４】
Ｓ１２１において、攻撃優先度決定部２２０は、未選択の攻撃識別子を攻撃計測ファイル２９２から１つ選択する。
Ｓ１２２からＳ１２５は、Ｓ１２１で機能識別子が選択される子毎に実行される。
【００６５】
Ｓ１２２において、攻撃優先度決定部２２０は、未選択の計測項目を攻撃計測ファイル２９２から１つ選択する。
Ｓ１２３は、Ｓ１２２で計測項目が選択される毎に実行される。
【００６６】
Ｓ１２３において、攻撃優先度決定部２２０は、Ｓ１２１で選択された攻撃識別子とＳ１２２で選択された計測項目とに対応付いた計測値を攻撃計測ファイル２９２から選択する。
攻撃優先度決定部２２０は、Ｓ１２２で選択された計測項目に対応付いた重み値を攻撃計測ファイル２９２から選択する。
攻撃優先度決定部２２０は、選択した計測値に選択した重み値を掛けて重み付け計測値を算出する。
そして、攻撃優先度決定部２２０は、Ｓ１２１で選択された攻撃識別子で識別される攻撃の攻撃優先度に重み付け計測値を加算する。攻撃優先度の初期値は０である。
【００６７】
例えば、「過去のＮＧ件数」の重み値は２であり、「１：ＳＹＮ  Ｆｌｏｏｄ」の計測値は８である。この場合、重み付け計測値は１６（＝２×８）である。
また、「回収平均時間」の重み値は５であり、「１：ＳＹＮ  Ｆｌｏｏｄ」の計測値は２である。この場合、重み付け計測値は１０（＝５×２）である。
【００６８】
Ｓ１２４において、攻撃優先度決定部２２０は、Ｓ１２２で選択されていない計測項目があるか判定する。
未選択の計測項目がある場合、処理はＳ１２２に戻る。
未選択の計測項目がない場合、処理はＳ１２５に進む。
【００６９】
Ｓ１２５において、攻撃優先度決定部２２０は、Ｓ１２１で選択された攻撃識別子に対応付けて攻撃優先度を攻撃優先度リスト２２９に登録する。
【００７０】
Ｓ１２６において、攻撃優先度決定部２２０は、Ｓ１２１で選択されていない攻撃識別子があるか判定する。
未選択の攻撃識別子がある場合、処理はＳ１２１に戻る。
未選択の攻撃識別子がない場合、攻撃優先度決定処理（Ｓ１２０）は終了する。
【００７１】
図１１に戻り、Ｓ１３０から説明を続ける。
Ｓ１３０は脆弱性優先度決定処理である。
Ｓ１３０において、脆弱性優先度決定部２３０は、複数の脆弱性のそれぞれの脆弱性優先度を決定し、脆弱性優先度リスト２３９を生成する。
図１４に基づいて、脆弱性優先度決定処理（Ｓ１３０）の流れについて説明する。
【００７２】
Ｓ１３１において、脆弱性優先度決定部２３０は、未選択の脆弱性識別子を依存関係ファイル２９３から１つ選択する。
Ｓ１３２からＳ１３５は、Ｓ１３１で脆弱性識別子が選択される毎に実行される。
【００７３】
Ｓ１３２において、脆弱性優先度決定部２３０は、Ｓ１３１で選択された脆弱性識別子に対応付いた機能識別子群を依存関係ファイル２９３から選択する。機能識別子群は１つ以上の機能識別子である。
脆弱性優先度決定部２３０は、選択した機能識別子群に含まれる機能識別子毎に機能優先度を機能優先度リスト２１９から選択する。
脆弱性優先度決定部２３０は、機能識別子毎に選択した機能優先度のうちの最大の機能優先度を選択する。
【００７４】
例えば、脆弱性識別子「１」に対応付いた機能識別子は「１」「７」である。機能識別子「１」の機能優先度は１０であり、機能識別子「７」の機能優先度は３３である。この場合、最大の機能優先度は３３である。
【００７５】
Ｓ１３３において、脆弱性優先度決定部２３０は、Ｓ１３１で選択された脆弱性識別子に対応付いた攻撃識別子群を依存関係ファイル２９３から選択する。攻撃識別子群は１つ以上の攻撃識別子である。
脆弱性優先度決定部２３０は、選択した攻撃識別子群に含まれる攻撃識別子毎に攻撃優先度を攻撃優先度リスト２２９から選択する。
脆弱性優先度決定部２３０は、攻撃識別子毎に選択した攻撃優先度のうちの最大の攻撃優先度を選択する。
【００７６】
例えば、脆弱性識別子「１」に対応付いた攻撃識別子は「５」「１０」である。攻撃識別子「５」の攻撃優先度は１４であり、攻撃識別子「１０」の攻撃優先度は２２である。この場合、最大の攻撃優先度は２２である。
【００７７】
Ｓ１３４において、脆弱性優先度決定部２３０は、Ｓ１３２で選択した最大の機能優先度に機能重み値２９７を掛けて重み付け機能優先度を算出する。
脆弱性優先度決定部２３０は、Ｓ１３３で選択した最大の攻撃優先度に攻撃重み値２９８を掛けて重み付け攻撃優先度を算出する。
そして、脆弱性優先度決定部２３０は、Ｓ１３１で選択された脆弱性識別子で識別される脆弱性の脆弱性優先度に重み付け機能優先度と重み付け攻撃優先度とを加算する。脆弱性優先度の初期値は０である。
【００７８】
例えば、最大の機能優先度は３３であり、機能重み値２９７は１．０である。また、最大の攻撃優先度は２２であり、攻撃重み値２９８は１．５である。この場合、重み付け機能優先度は３３（＝３３×１．０）であり、重み付け攻撃優先度は３３（＝２２×１．５）である。したがって、脆弱性優先度に加算される値は６６（＝３３＋３３）である。
【００７９】
Ｓ１３５において、脆弱性優先度決定部２３０は、Ｓ１３１で選択された脆弱性識別子に対応付けて脆弱性優先度を脆弱性優先度リスト２３９に登録する。
【００８０】
Ｓ１３６において、脆弱性優先度決定部２３０は、Ｓ１３１で選択されていない脆弱性識別子があるか判定する。
未選択の脆弱性識別子がある場合、処理はＳ１３１に戻る。
未選択の脆弱性識別子がない場合、脆弱性優先度決定処理（Ｓ１３０）は終了する。
【００８１】
図１１に戻り、Ｓ１４０から説明を続ける。
Ｓ１４０は攻撃リスト生成処理である。
Ｓ１４０において、攻撃リスト生成部２４０は、攻撃の実行順に攻撃識別子を示す攻撃リスト２４９を生成する。
図１５に基づいて、攻撃リスト生成処理（Ｓ１４０）の流れについて説明する。
【００８２】
Ｓ１４１において、攻撃リスト生成部２４０は、脆弱性優先度の高い順に未選択の脆弱性識別子を脆弱性優先度リスト２３９から１つ選択する。
Ｓ１４２からＳ１４５は、Ｓ１４１で脆弱性識別子が選択される毎に実行される。
【００８３】
Ｓ１４２において、攻撃リスト生成部２４０は、Ｓ１４１で選択された脆弱性識別子に対応付いた攻撃識別子群を依存関係ファイル２９３から選択する。
攻撃リスト生成部２４０は、選択した攻撃識別子群に含まれる攻撃識別子毎に攻撃優先度を攻撃優先度リスト２２９から選択する。
攻撃リスト生成部２４０は、選択した攻撃識別子群に含まれる攻撃識別子を攻撃優先度の順に並べて攻撃識別子リスト２４８を生成する。
【００８４】
例えば、脆弱性識別子「４９」に対応付いた攻撃識別子は「３１」「３７」「４５」である。また、攻撃識別子「３１」の攻撃優先度は７３であり、攻撃識別子「３７」の攻撃優先度は９７であり、攻撃識別子「４５」の攻撃優先度は４５である。この場合、攻撃識別子は「３７」、「３１」、「４５」の順に並べられる。
【００８５】
Ｓ１４３において、攻撃リスト生成部２４０は、攻撃優先度の順に未選択の攻撃識別子を攻撃識別子リスト２４８から１つ選択する。
Ｓ１４４およびＳ１４５は、Ｓ１４３で攻撃識別子が選択される毎に実行される。
【００８６】
Ｓ１４４において、攻撃リスト生成部２４０は、Ｓ１４３で選択した攻撃識別子が攻撃リスト２４９に登録されているか判定する。
Ｓ１４３で選択した攻撃識別子が攻撃リスト２４９に登録されている場合、処理はＳ１４６に進む。
Ｓ１４３で選択した攻撃識別子が攻撃リスト２４９に登録されていない場合、処理はＳ１４５に進む。
【００８７】
Ｓ１４５において、攻撃リスト生成部２４０は、Ｓ１４３で選択した攻撃識別子を攻撃リスト２４９の最後に追加する。
さらに、攻撃リスト生成部２４０は、追加した攻撃識別子に対応付けて、攻撃優先度と攻撃名と脆弱性識別子と脆弱性優先度とを攻撃リスト２４９に登録する。攻撃リスト２４９に登録される攻撃名は攻撃計測ファイル２９２において該当の攻撃識別子に対応付いた攻撃名である。
【００８８】
Ｓ１４６において、攻撃リスト生成部２４０は、Ｓ１４３で選択されていない攻撃識別子があるか判定する。
未選択の攻撃識別子がある場合、処理はＳ１４３に戻る。
未選択の攻撃識別子がない場合、処理はＳ１４７に進む。
【００８９】
Ｓ１４７において、攻撃リスト生成部２４０は、Ｓ１４１で選択されていない脆弱性識別子があるか判定する。
未選択の脆弱性識別子がある場合、処理はＳ１４１に戻る。
未選択の脆弱性識別子がない場合、攻撃リスト生成処理（Ｓ１４０）は終了する。
【００９０】
図１１に戻り、Ｓ１５０から説明を続ける。
Ｓ１５０は攻撃実行処理である。
Ｓ１５０において、攻撃実行部２５０は、攻撃リスト２４９に含まれる１つ以上の攻撃識別子で識別される１つ以上の攻撃を攻撃識別子の並び順で対象装置１１０に対して実行する。
図１６に基づいて、攻撃実行処理（Ｓ１５０）の流れについて説明する。
【００９１】
Ｓ１５１において、攻撃実行部２５０は、攻撃識別子の並び順で未選択の攻撃識別子を攻撃リスト２４９から１つ選択する。
Ｓ１５２からＳ１５４は、Ｓ１５１で攻撃識別子が選択される毎に実行される。
【００９２】
Ｓ１５２において、攻撃実行部２５０は、Ｓ１５１で選択した攻撃識別子に対応付いた攻撃規則を攻撃規則ファイル２９４から選択し、選択した攻撃規則に従って攻撃パターンを生成する。
【００９３】
Ｓ１５３において、攻撃実行部２５０は、Ｓ１５２で生成した攻撃パターンを実行する。これにより、対象装置１１０に対する攻撃が実行される。
攻撃の実行には、市販のソフトウェア、フリーのソフトウェアまたは自作ツールを利用することができる。ＤｏＳ攻撃の実行には、ｈｐｉｎｇ３またはｆｒａｇｍｅｎｔａｔｉｏｎ６などのソフトウェアを利用することができる。ｆｕｚｚｉｎｇという攻撃の実行には、Ｐｅａｃｈなどのソフトウェアを利用することができる。
【００９４】
また、攻撃実行部２５０は、攻撃パターンの実行を開始したときに、対象装置１１０に対する攻撃の開始を脆弱性判定部２６０に通知する。
さらに、攻撃実行部２５０は、攻撃パターンの実行を終了したときに、対象装置１１０に対する攻撃の終了を脆弱性判定部２６０に通知する。
【００９５】
Ｓ１５４において、攻撃実行部２５０は、対象装置１１０に対する攻撃を終了するか判定する。
例えば、攻撃終了命令が脆弱性検証装置２００に入力された場合、攻撃実行部２５０は、対象装置１１０に対する攻撃を終了する。
攻撃を終了する場合、攻撃実行処理（Ｓ１５０）は終了する。
攻撃を終了しない場合、処理はＳ１５５に進む。
【００９６】
Ｓ１５５において、攻撃実行部２５０は、Ｓ１５１で選択していない攻撃識別子があるか判定する。
未選択の攻撃識別子がある場合、処理はＳ１５１に戻る。
未選択の攻撃識別子がない場合、攻撃実行処理（Ｓ１５０）は終了する。
【００９７】
図１１に戻り、Ｓ１６０から説明を続ける。
Ｓ１６０は脆弱性判定処理である。
Ｓ１６０において、脆弱性判定部２６０は、対象装置１１０と通信し、通信結果に基づいて対象装置１１０が有する脆弱性を判定し、脆弱性リスト２６９を生成する。
【００９８】
図１７に基づいて、脆弱性判定処理（Ｓ１６０）の流れについて説明する。
図１７に示す脆弱性判定処理（Ｓ１６０）は、攻撃実行部２５０によって対象装置１１０に対する攻撃が実行される毎に実行される。
【００９９】
Ｓ１６１において、脆弱性判定部２６０は、対象装置１１０に対する攻撃の攻撃識別子を攻撃実行部２５０から取得する。
脆弱性判定部２６０は、取得した攻撃識別子に対応付いた通信手順を通信手順ファイル２９５から選択する。
【０１００】
Ｓ１６２において、脆弱性判定部２６０は、Ｓ１６１で選択された通信手順に示される攻撃前通信を実行する。但し、攻撃前通信が通信手順に含まれていない場合、Ｓ１６２は実行されない。
【０１０１】
Ｓ１６３において、脆弱性判定部２６０は、対象装置１１０に対する攻撃の開始が攻撃実行部２５０から通知されるまで待機する。
【０１０２】
Ｓ１６４において、脆弱性判定部２６０は、Ｓ１６１で選択された通信手順に示される攻撃中通信を実行する。但し、攻撃中通信が通信手順に含まれていない場合、Ｓ１６４は実行されない。
【０１０３】
Ｓ１６５において、脆弱性判定部２６０は、対象装置１１０に対する攻撃の終了が攻撃実行部２５０から通知されるまで待機する。
【０１０４】
Ｓ１６６において、脆弱性判定部２６０は、Ｓ１６１で選択された通信手順に示される攻撃後通信を実行する。但し、攻撃後通信が通信手順に含まれていない場合、Ｓ１６６は実行されない。
【０１０５】
Ｓ１６７において、脆弱性判定部２６０は、Ｓ１６１で取得された攻撃識別子に対応付いた判定基準を判定基準ファイル２９６から選択する。
脆弱性判定部２６０は、攻撃前通信の通信結果と攻撃中通信と攻撃後通信とのうち実行した通信の通信結果を判定基準と比較し、比較結果に基づいて脆弱性の有無を判定する。判定される脆弱性は、依存関係ファイル２９３に含まれる脆弱性識別子のうち、Ｓ１６１で取得された攻撃識別子に対応付いた脆弱性識別子で識別される脆弱性である。
【０１０６】
Ｓ１６８において、脆弱性判定部２６０は、Ｓ１６１で取得された攻撃識別子に対応付いた脆弱性識別子を依存関係ファイル２９３から選択する。
そして、脆弱性判定部２６０は、選択した脆弱性識別子をＳ１６７の判定結果に対応付けて脆弱性リスト２６９に登録する。
【０１０７】
＊＊＊効果の説明＊＊＊
検証する複数の脆弱性のそれぞれの優先度を決定し、優先度が高い順に脆弱性の有無を検証することが可能になる。例えば、改修に時間を要する脆弱性に関する検証を早期に実行することが可能になる。
【０１０８】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は部分的に実施してもよい。
フローチャート等を用いて説明した処理手順は、脆弱性検証装置、脆弱性検証方法および脆弱性検証プログラムの処理手順の一例である。
【符号の説明】
【０１０９】
１００  脆弱性検証システム、１０１  入力装置、１０２  出力装置、１１０  対象装置、２００  脆弱性検証装置、２１０  機能優先度決定部、２１９  機能優先度リスト、２２０  攻撃優先度決定部、２２９  攻撃優先度リスト、２３０  脆弱性優先度決定部、２３９  脆弱性優先度リスト、２４０  攻撃リスト生成部、２４８  攻撃識別子リスト、２４９  攻撃リスト、２５０  攻撃実行部、２６０  脆弱性判定部、２６９  脆弱性リスト、２９０  検証記憶部、２９１  機能評価ファイル、２９２  攻撃計測ファイル、２９３  依存関係ファイル、２９４  攻撃規則ファイル、２９５  通信手順ファイル、２９６  判定基準ファイル、２９７  機能重み値、２９８  攻撃重み値、９０１  プロセッサ、９０２  補助記憶装置、９０３  メモリ、９０４  通信装置、９０４１  レシーバ、９０４２  トランスミッタ、９０５  入力インタフェース、９０６  出力インタフェース、９１０  信号線、９１１  ケーブル、９１２  ケーブル。
【図１】
2016149052.tif 000003
【図２】
2016149052.tif 000004
【図３】
2016149052.tif 000005
【図４】
2016149052.tif 000006
【図５】
2016149052.tif 000007
【図６】
2016149052.tif 000008
【図７】
2016149052.tif 000009
【図８】
2016149052.tif 000010
【図９】
2016149052.tif 000011
【図１０】
2016149052.tif 000012
【図１１】
2016149052.tif 000013
【図１２】
2016149052.tif 000014
【図１３】
2016149052.tif 000015
【図１４】
2016149052.tif 000016
【図１５】
2016149052.tif 000017
【図１６】
2016149052.tif 000018
【図１７】
2016149052.tif 000019