(57)【要約】      （修正有）【課題】プラグインがインストールされた対象装置の脆弱性を検証する脆弱性検証装置及び検証プログラムを提供する。【解決手段】脆弱性検証装置２００において、攻撃リスト２９１は攻撃識別子にプラグイン群識別子を対応付ける。攻撃選択部２１０は攻撃リスト２９１から攻撃識別子を選択する。プラグイン選択部２２０は攻撃識別子に対応付いたプラグイン群識別子を攻撃リスト２９１から選択する。プラグイン埋め込み部２３０はプラグイン群識別子で識別されるプラグイン群を対象装置にインストールする。プラグイン操作部２４０は対象装置にインストールされたプラグイン２８１を操作する。攻撃実行部２５０は対象装置に対する攻撃を実行する。脆弱性判定部２６０は攻撃の実行結果に基づいて対象装置の脆弱性を検証する。【選択図】図２
2016149055.tif 000002
【特許請求の範囲】
【請求項１】
対象装置に対する攻撃を識別する攻撃識別子に、１つ以上のプラグインであるプラグイン群を識別するプラグイン群識別子、を対応付けた攻撃リストから、攻撃識別子を選択する攻撃選択部と、
選択された攻撃識別子に対応付いたプラグイン群識別子を前記攻撃リストから選択するプラグイン選択部と、
選択されたプラグイン群識別子で識別されるプラグイン群を前記対象装置にインストールするプラグイン埋め込み部と、
を備える脆弱性検証装置。
【請求項２】
前記対象装置にインストールされたプラグイン群を操作するプラグイン操作部を備える
請求項１に記載の脆弱性検証装置。
【請求項３】
前記プラグイン操作部は、
プラグインを操作するプラグイン操作を識別する操作識別子を、攻撃識別子とプラグイン識別子と、に対応付けたプラグイン操作ファイルから、選択された攻撃識別子と、前記プラグイン群に含まれるプラグインを識別するプラグイン識別子と、に対応付いた操作識別子を選択し、選択した操作識別子で識別されるプラグイン操作を実行する
請求項２に記載の脆弱性検証装置。
【請求項４】
前記プラグイン操作部は、前記プラグイン操作を実行することによって、前記プラグインの動作を指定する動作パラメータを前記対象装置に送信し、
前記プラグインは、前記動作パラメータに従って動作することによって、前記対象装置を攻撃する
請求項３に記載の脆弱性検証装置。
【請求項５】
前記攻撃リストは、１つ以上の攻撃識別子を含み、１つ以上の攻撃識別子のそれぞれに対応付けて、プラグインが必要な攻撃である埋め込み攻撃を意味する第１のフラグ値と、前記埋め込み攻撃以外の攻撃を意味する第２のフラグ値と、のいずれかが設定される埋め込み攻撃フラグを含み、前記第１のフラグ値が設定された埋め込み攻撃フラグに対応付いた攻撃識別子に対応付けて前記プラグイン群識別子を含み、
前記プラグイン選択部は、選択された攻撃識別子に対応付いた埋め込み攻撃フラグに前記第１のフラグ値が設定されている場合に、前記プラグイン群識別子を選択する
請求項１に記載の脆弱性検証装置。
【請求項６】
前記プラグイン埋め込み部は、プラグインをそれぞれに識別する１つ以上のプラグイン識別子をプラグイン群識別子に対応付けたプラグイン規則ファイルから、選択されたプラグイン群識別子に対応付いた１つ以上のプラグイン識別子を選択し、選択した１つ以上のプログラム識別子で識別される１つ以上のプラグインを前記プラグイン群として前記対象装置にインストールする
請求項１に記載の脆弱性検証装置。
【請求項７】
選択されたプラグイン群識別子で識別されるプラグイン群が前記対象装置にインストールされた後に、選択された攻撃識別子で識別される攻撃を前記対象装置に対して実行する攻撃実行部を備える
請求項１に記載の脆弱性検証装置。
【請求項８】
前記攻撃実行部は、攻撃を実行するためのプログラムである攻撃パターンを生成する攻撃規則を攻撃識別子に対応付けた攻撃規則ファイルを用いて、攻撃識別子で識別される攻撃を実行するための攻撃パターンを生成し、前記攻撃パターンを実行することによって、前記対象装置に対する攻撃を実行する
請求項７に記載の脆弱性検証装置。
【請求項９】
前記対象装置と通信し、通信結果に基づいて前記対象装置が有する脆弱性を判定する脆弱性判定部を備える
請求項１に記載の脆弱性検証装置。
【請求項１０】
前記脆弱性判定部は、前記対象装置に対する攻撃の実行前の通信と、前記対象装置に対する攻撃の実行中の通信と、前記対象装置に対する攻撃の実行後の通信との少なくともいずれかを含んだ通信手順を攻撃識別子に対応付けた通信手順ファイルを用いて、前記対象装置に対する攻撃の攻撃識別子に対応付いた通信手順に従って、前記対象装置と通信する
請求項９に記載の脆弱性検証装置。
【請求項１１】
前記脆弱性判定部は、脆弱性の有無の判定基準を攻撃識別子に対応付けた判定基準ファイルを用いて、前記対象装置に対する攻撃の攻撃識別子に対応付いた判定基準と前記通信結果を比較し、比較結果に基づいて脆弱性の有無を判定する
請求項９に記載の脆弱性検証装置。
【請求項１２】
対象装置に対する攻撃を識別する攻撃識別子に、１つ以上のプラグインであるプラグイン群を識別するプラグイン群識別子、を対応付けた攻撃リストから、攻撃識別子を選択する攻撃選択処理と、
選択された攻撃識別子に対応付いたプラグイン群識別子を前記攻撃リストから選択するプラグイン選択処理と、
選択されたプラグイン群識別子で識別されるプラグイン群を前記対象装置にインストールするプラグイン埋め込み処理と
をコンピュータに実行させるための脆弱性検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティに対する脆弱性を検証する技術に関するものである。
【背景技術】
【０００２】
インターネットの発展に伴い、ネットワークを介してセキュリティ攻撃による被害が広がっている。セキュリティ攻撃の多くは、システムの脆弱性を悪用したものである。脆弱性の多くは対策の不備が原因である。
【０００３】
一方で、新たなサービスの提供のため、組込み機器がネットワークに接続される傾向にある。組込み機器はサイバー空間だけでなく物理空間と密接なつながりを持つ。そして、組込み機器に対するセキュリティ攻撃は、企業機密の漏えい及び個人情報の流出の他、人命および環境に直接の害を及ぼす可能性がある。
セキュリティ攻撃による害を防ぐには、組込み機器の脆弱性に対して漏れなく対策を実施する必要がある。そのためには、脆弱性の有無を漏れなく検証することが重要である。
【０００４】
脆弱性の有無を検証する単純な方法として、検証対象に対して実際にセキュリティ攻撃を実行する、という方法がある。
ＯＷＡＳＰで公開されているＷｅｂＳｃａｒａｂ、Ｐａｒｏｓ  Ｐｒｏｊｅｃｔで公開されているＰａｒｏｓｐｒｏｘｙなど、セキュリティ攻撃を自動で行う脆弱性検証ツールが存在する。ＯＷＡＳＰはｔｈｅ  Ｏｐｅｎ  Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ  Ｐｒｏｊｅｃｔの略称である。
【０００５】
近年、組込み機器のプラットフォームが標準化される傾向にある。これにより、異なるサプライヤによって開発された複数のソフトウェアを組込み機器に統合することが可能となる。そして、機能を自由にカスタマイズできる組込み機器が増加することが予想される。
これに伴い、不正なプラグインが組込み機器に埋め込まれる危険性が増加するため、不正なプラグインが埋め込まれた際の対策技術の開発が必要になる。一方で、対策技術が正しく機能しているか検証を行う検証技術も必要である。
従来の脆弱性検証ツールは、不正なプラグインが組み込まれた際のセキュリティを検証することができない。
【０００６】
特許文献１は、容易に高度な攻撃シナリオを実行することを目的とした技術を開示している。特許文献１に開示された技術は記憶手段と制御手段と踏み台制御手段とを備えることを特徴とする。
記憶手段は、攻撃を実行するプラグインを検証装置に記憶する。
制御手段は、検証装置においてプラグインによる攻撃を実行する。
踏み台制御手段は、検証装置と検証対象機器との間で、踏み台プログラムを実行させる。
【０００７】
しかし、特許文献１の技術を実施するためにはセキュリティに関する知識が必要である。また、セキュリティの検証効率は良くない。
なお、特許文献１は、検証対象機器においてプラグインを動作させるための手段を開示していない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４―１４５４１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、脆弱性を検証する対象である対象装置にプラグインをインストールできるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の脆弱性検証装置は、
対象装置に対する攻撃を識別する攻撃識別子に、１つ以上のプラグインであるプラグイン群を識別するプラグイン群識別子、を対応付けた攻撃リストから、攻撃識別子を選択する攻撃選択部と、
選択された攻撃識別子に対応付いたプラグイン群識別子を前記攻撃リストから選択するプラグイン選択部と、
選択されたプラグイン群識別子で識別されるプラグイン群を前記対象装置にインストールするプラグイン埋め込み部とを備える。
【発明の効果】
【００１１】
本発明によれば、対象装置にプラグインをインストールすることができる。
これにより、プラグインがインストールされた対象装置に攻撃を実行し、実行結果に基づいて対象装置の脆弱性を検証することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１における脆弱性検証システム１００の構成図。
【図２】実施の形態１における脆弱性検証装置２００の機能構成図。
【図３】実施の形態１における攻撃リスト２９１の構成図。
【図４】実施の形態１におけるプラグイン規則ファイル２９２の構成図。
【図５】実施の形態１におけるプラグイン操作ファイル２９３の構成図。
【図６】実施の形態１における攻撃規則ファイル２９４の構成図。
【図７】実施の形態１における通信手順ファイル２９５の構成図。
【図８】実施の形態１における判定基準ファイル２９６の構成図。
【図９】実施の形態１における依存関係ファイル２９７の構成図。
【図１０】実施の形態１における脆弱性検証装置２００のハードウェア構成図。
【図１１】実施の形態１における脆弱性検証方法［攻撃］のフローチャート。
【図１２】実施の形態１における脆弱性検証方法［検証］のフローチャート。
【発明を実施するための形態】
【００１３】
実施の形態１．
プラグインがインストールされた対象装置１１０の脆弱性を検証する脆弱性検証装置２００について、図１から図１２に基づいて説明する。
【００１４】
＊＊＊構成の説明＊＊＊
図１に基づいて、脆弱性検証システム１００について説明する。
脆弱性検証システム１００は、入力装置１０１と、出力装置１０２と、脆弱性検証装置２００と、対象装置１１０とを備える。
入力装置１０１は、ＧＵＩまたはＣＵＩを介して、脆弱性検証装置２００にデータを入力する装置である。入力装置１０１の一例はキーボード、マウスまたはタッチパネルである。ＧＵＩはＧｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅの略称であり、ＣＵＩはＣｈａｒａｃｔｅｒ  ｂａｓｅｄ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅの略称である。
出力装置１０２は、脆弱性検証装置２００からデータを出力される装置である。出力装置１０２の一例はモニタである。
脆弱性検証装置２００は、対象装置１１０にプラグインをインストールして、対象装置１１０の脆弱性を検証するコンピュータである。
対象装置１１０は、脆弱性を検証される対象のコンピュータである。対象装置１１０の一例は組み込み機器である。
対象装置１１０は、インストールされたプラグインを実行するプラグイン実行部１１１を備える。
【００１５】
プラグインは、プログラムの一種であり、拡張プログラムという。
実施の形態１において、プラグインは、対象装置１１０の脆弱性を攻撃する不正なプログラムである。
【００１６】
図２に基づいて、脆弱性検証装置２００の機能構成について説明する。
脆弱性検証装置２００は、攻撃選択部２１０と、プラグイン選択部２２０と、プラグイン埋め込み部２３０と、プラグイン操作部２４０と、攻撃実行部２５０と、脆弱性判定部２６０とを備える。
さらに、脆弱性検証装置２００は、プラグイン記憶部２８０と、検証記憶部２９０とを備える。
【００１７】
プラグイン記憶部２８０は、１つ以上のプラグイン２８１を記憶する。
【００１８】
検証記憶部２９０は、脆弱性検証装置２００で使用、生成または入出力されるデータを記憶する。
攻撃リスト２９１、プラグイン規則ファイル２９２、プラグイン操作ファイル２９３、攻撃規則ファイル２９４、通信手順ファイル２９５、判定基準ファイル２９６、依存関係ファイル２９７は、検証記憶部２９０に記憶されるデータの一例である。
【００１９】
攻撃リスト２９１は、１つ以上の攻撃識別子を含む。攻撃識別子は、対象装置１１０に対する攻撃を識別する。
攻撃リスト２９１は、１つ以上の攻撃識別子のそれぞれに対応付けて、埋め込み攻撃フラグを含む。埋め込み攻撃フラグは、第１のフラグ値と第２のフラグ値とのいずれかが設定される。第１のフラグ値は、プラグインが必要な攻撃である埋め込み攻撃を意味する。第２のフラグ値は、埋め込み攻撃以外の攻撃を意味する。実施の形態１において、第１のフラグ値は１であり、第２のフラグ値は０である。
攻撃リスト２９１は、第１のフラグ値が設定された埋め込み攻撃フラグに対応付いた攻撃識別子に対応付けて、プラグイン群識別子を含む。プラグイン群識別子はプラグイン群を識別する。プラグイン群は１つ以上のプラグインである。
【００２０】
プラグイン規則ファイル２９２は、１つ以上のプラグイン識別子をプラグイン群識別子に対応付けている。プラグイン識別子はプラグインを識別する。
【００２１】
プラグイン操作ファイル２９３は、攻撃識別子とプラグイン識別子とに操作識別子を対応付けている。操作識別子は、プラグインを操作するプラグイン操作を識別する。
【００２２】
攻撃規則ファイル２９４は、攻撃パターンを生成する攻撃規則を攻撃識別子に対応付けている。攻撃パターンは攻撃を実行するためのプログラムである。スクリプトおよびスクリプトファイルはプログラムの一例である。
【００２３】
通信手順ファイル２９５は、攻撃前通信と攻撃中通信と攻撃後通信との少なくともいずれかを含んだ通信手順を攻撃識別子に対応付けている。攻撃前通信は対象装置１１０に対する攻撃の実行前の通信であり、攻撃中通信は対象装置１１０に対する攻撃の実行中の通信であり、攻撃後通信は対象装置１１０に対する攻撃の実行後の通信である。
【００２４】
判定基準ファイル２９６は、脆弱性の有無の判定基準を攻撃識別子に対応付けている。
【００２５】
依存関係ファイル２９７は、脆弱性識別子に攻撃識別子を対応付けている。脆弱性識別子は、対象装置１１０が有するか検証される脆弱性を識別する。脆弱性は、セキュリティ上の欠陥および弱点を意味する。脆弱性は欠陥または弱点と読み替えることができる。
【００２６】
攻撃選択部２１０は、攻撃リスト２９１から、攻撃識別子を選択する。
【００２７】
プラグイン選択部２２０は、選択された攻撃識別子に対応付いたプラグイン群識別子を攻撃リスト２９１から選択する。
【００２８】
プラグイン選択部２２０は、以下のようにプラグイン群識別子を選択する。
プラグイン選択部２２０は、選択された攻撃識別子に対応付いた埋め込み攻撃フラグを攻撃リスト２９１から選択する。
プラグイン選択部２２０は、選択した攻撃フラグに第１のフラグ値が設定されている場合に、選択された攻撃識別子に対応付いたプラグイン群識別子を攻撃リスト２９１から選択する。
【００２９】
プラグイン埋め込み部２３０は、選択されたプラグイン群識別子で識別されるプラグイン群を対象装置１１０にインストールする。
【００３０】
プラグイン埋め込み部２３０は、以下のようにプラグイン群を対象装置１１０にインストールする。
プラグイン埋め込み部２３０は、プラグイン規則ファイル２９２から、選択されたプラグイン群識別子に対応付いた１つ以上のプラグイン識別子を選択する。
プラグイン埋め込み部２３０は、選択した１つ以上のプログラム識別子で識別される１つ以上のプラグインをプラグイン群として対象装置１１０にインストールする。
【００３１】
プラグイン操作部２４０は、対象装置１１０にインストールされたプラグイン群を操作する。
【００３２】
プラグイン操作部２４０は、以下のようにプラグイン群を操作する。
プラグイン操作部２４０は、プラグイン操作ファイル２９３から、選択された攻撃識別子と、プラグイン群に含まれるプラグインを識別するプラグイン識別子と、に対応付いた操作識別子を選択する。そして、プラグイン操作部２４０は、選択した操作識別子で識別されるプラグイン操作を実行する。
プラグイン操作部２４０は、プラグイン操作を実行することによって、動作パラメータを対象装置１１０に送信する。動作パラメータはプラグインの動作を指定するパラメータである。
対象装置１１０にインストールされたプラグインは、動作パラメータに従って動作することによって、対象装置１１０を攻撃する。
プラグイン操作は操作モジュールとして実装される。操作モジュールは、プラグインを操作する操作手順が記述されたプログラムである。脆弱性検証装置２００は、操作モジュールを記憶する操作モジュール記憶部を備えてもよい。
【００３３】
攻撃実行部２５０は、選択された攻撃識別子で識別される攻撃を、選択されたプラグイン群識別子で識別されるプラグイン群が対象装置１１０にインストールされた後に、対象装置１１０に対して実行する。
【００３４】
攻撃実行部２５０は、以下のように攻撃を実行する。
攻撃実行部２５０は、攻撃規則ファイル２９４を用いて、攻撃識別子で識別される攻撃を実行するための攻撃パターンを生成する。
攻撃実行部２５０は、攻撃パターンを実行することによって、対象装置１１０に対する攻撃を実行する。
【００３５】
脆弱性判定部２６０は、対象装置１１０と通信し、通信結果に基づいて対象装置１１０が有する脆弱性を判定する。対象装置１１０が有する脆弱性を示すデータを脆弱性リスト２６９という。
【００３６】
脆弱性判定部２６０は、以下のように通信および判定を行う。
脆弱性判定部２６０は、通信手順ファイル２９５を用いて、対象装置１１０に対する攻撃の攻撃識別子に対応付いた通信手順に従って、対象装置１１０と通信する。
脆弱性判定部２６０は、判定基準ファイル２９６を用いて、対象装置１１０に対する攻撃の攻撃識別子に対応付いた判定基準と通信結果を比較し、比較結果に基づいて脆弱性の有無を判定する。
【００３７】
図３に基づいて、攻撃リスト２９１について説明する。
攻撃リスト２９１は、攻撃識別子に埋め込み攻撃フラグとプラグイン群識別子とを対応付けている。
埋め込み攻撃フラグに第１のフラグ値（１）が設定されている場合、攻撃識別子で識別される攻撃は、プラグインを必要とする埋め込み攻撃である。
埋め込み攻撃を識別する攻撃識別子には、プラグイン群識別子が対応付けられている。
【００３８】
図４に基づいて、プラグイン規則ファイル２９２について説明する。
プラグイン規則ファイル２９２は、プラグイン群識別子に１つ以上のプラグイン識別子を対応付けている。
【００３９】
図５に基づいて、プラグイン操作ファイル２９３について説明する。
プラグイン操作ファイル２９３は、攻撃識別子とプラグイン識別子とに操作識別子を対応付けている。
【００４０】
図６に基づいて、攻撃規則ファイル２９４について説明する。
攻撃規則ファイル２９４は、攻撃識別子に攻撃規則を対応付けている。
「ＳＹＮ  Ｆｌｏｏｄ」および「Ｐｉｎｇ  ｏｆ  Ｄｅａｔｈ」は、攻撃識別子で識別される攻撃の方法の一例である。
「ｗｅｌｌ−ｋｎｏｗｎポートのみ」というような実行粒度は、攻撃規則に含まれる情報の一例である。
【００４１】
図７に基づいて、通信手順ファイル２９５について説明する。
通信手順ファイル２９５は、攻撃識別子に通信手順を対応付けている。
「ＳＹＮ  Ｆｌｏｏｄ」および「ＳＳＬの不正証明書によるなりすまし攻撃」は、攻撃識別子で識別される攻撃の方法の一例である。
「ＳＹＮ  Ｆｌｏｏｄ」に対する通信手順として、攻撃前通信は無し、攻撃中通信は正常パケットの送信、攻撃後通信は正常パケットの送信、という内容が定義されている。
【００４２】
図８に基づいて、判定基準ファイル２９６について説明する。
判定基準ファイル２９６は、攻撃識別子に判定基準を対応付けている。
「正常パケットを送信後、１０ミリ秒以内に正常パケットを受信」および「ＳＹＮパケットを送信後、１ミリ秒以内にＳＹＮ／ＡＣＫパケットを受信」は、判定基準の一例である。
【００４３】
図９に基づいて、依存関係ファイル２９７について説明する。
依存関係ファイル２９７は、脆弱性識別子に１つ以上の攻撃識別子を対応付けている。
【００４４】
図１０に基づいて、脆弱性検証装置２００のハードウェア構成例について説明する。
脆弱性検証装置２００は、プロセッサ９０１、補助記憶装置９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、出力インタフェース９０６といったハードウェアを備えるコンピュータである。
プロセッサ９０１は信号線９１０を介して他のハードウェアと接続されている。入力インタフェース９０５はケーブル９１１を介して入力装置１０１に接続されている。出力インタフェース９０６はケーブル９１２を介して出力装置１０２に接続されている。
【００４５】
プロセッサ９０１は、プロセッシングを行うＩＣであり、他のハードウェアを制御する。プロセッサ９０１の一例は、ＣＰＵ、ＤＳＰ、ＧＰＵである。ＩＣはＩｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称である。ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称であり、ＤＳＰはＤｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒの略称であり、ＧＰＵはＧｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。
補助記憶装置９０２はデータを記憶する。補助記憶装置９０２の一例は、ＲＯＭ、フラッシュメモリ、ＨＤＤである。ＲＯＭはＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称であり、ＨＤＤはＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。
メモリ９０３はデータを記憶する。メモリ９０３の一例はＲＡＭである。ＲＡＭはＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。
通信装置９０４は、データを受信するレシーバ９０４１と、データを送信するトランスミッタ９０４２とを備える。通信装置９０４の一例は通信チップまたはＮＩＣである。ＮＩＣはＮｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略称である。
入力インタフェース９０５はケーブル９１１が接続されるポートであり、ポートの一例はＵＳＢ端子である。ＵＳＢはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略称である。
出力インタフェース９０６はケーブル９１２が接続されるポートであり、ＵＳＢ端子およびＨＤＭＩ端子はポートの一例である。ＨＤＭＩ（登録商標）はＨｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅの略称である。
【００４６】
補助記憶装置９０２にはＯＳが記憶されている。ＯＳはＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略称である。
また、補助記憶装置９０２には、脆弱性検証装置２００に備わる「記憶部」を除いて、脆弱性検証装置２００に備わる「部」の機能を実現するプログラムが記憶されている。
ＯＳの少なくとも一部はメモリ９０３にロードされ、プロセッサ９０１はＯＳを実行しながら「部」の機能を実現するプログラムを実行する。「部」の機能を実現するプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。
なお、脆弱性検証装置２００が複数のプロセッサ９０１を備えて、複数のプロセッサ９０１が「部」の機能を実現するプログラムを連携して実行してもよい。
【００４７】
「部」の処理の結果を示すデータ、情報、信号値および変数値などは、メモリ９０３、補助記憶装置９０２、プロセッサ９０１内のレジスタ、または、プロセッサ９０１内のキャッシュメモリに記憶される。
【００４８】
「部」は「サーキットリ」で実装してもよい。「部」は「回路」、「工程」、「手順」または「処理」に読み替えてもよい。
「回路」及び「サーキットリ」は、プロセッサ９０１、ロジックＩＣ、ＧＡ、ＡＳＩＣ、ＦＰＧＡといった処理回路を包含する概念である。ＧＡはＧａｔｅ  Ａｒｒａｙの略称であり、ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
【００４９】
＊＊＊動作の説明＊＊＊
脆弱性検証装置２００の動作は脆弱性検証方法に相当する。また、脆弱性検証方法は脆弱性検証プログラムの処理手順に相当する。
【００５０】
図１１に基づいて、脆弱性検証方法［攻撃］について説明する。脆弱性検証方法［攻撃］は、対象装置１１０の脆弱性を検証するために、対象装置１１０に対する攻撃を実行する方法である。
【００５１】
Ｓ１１０において、攻撃選択部２１０は、攻撃識別子の並び順で未選択の攻撃識別子を攻撃リスト２９１から１つ選択する。
Ｓ１２０からＳ１６０は、Ｓ１１０で攻撃識別子が選択される毎に実行される。
【００５２】
Ｓ１２０において、プラグイン選択部２２０は、Ｓ１１０で選択された攻撃識別子に対応付いた埋め込み攻撃フラグを攻撃リスト２９１から選択し、選択した埋め込み攻撃フラグに設定されているフラグ値を判定する。
フラグ値が１である場合、プラグイン操作部２４０はプラグイン操作無しを脆弱性判定部２６０に通知する。処理はＳ１２１に進む。
フラグ値が０である場合、処理はＳ１６０に進む。
【００５３】
Ｓ１２１において、プラグイン選択部２２０は、Ｓ１１０で選択された攻撃識別子に対応付いたプラグイン群識別子を攻撃リスト２９１から選択する。
プラグイン選択部２２０は、選択したプラグイン群識別子に対応付いた１つ以上のプラグイン識別子をプラグイン規則ファイル２９２から選択する。
プラグイン選択部２２０は、選択したプラグイン識別子毎に、プラグイン識別子で識別されるプラグイン２８１をプラグイン記憶部２８０から取得する。
【００５４】
Ｓ１２２において、プラグイン埋め込み部２３０は、対象装置１１０と通信することによって、Ｓ１２１で取得された１つ以上のプラグイン２８１を対象装置１１０にインストールする。
【００５５】
Ｓ１３０において、プラグイン操作部２４０は、Ｓ１２１で選択されたプラグイン識別子毎に、以下のように動作する。
プラグイン操作部２４０は、プラグイン識別子とＳ１１０で選択された攻撃識別子とに対応付いた操作識別子をプラグイン操作ファイル２９３から選択し、選択した操作識別子で識別されるプラグイン操作を実行する。
【００５６】
プラグイン操作が実行されることによって、プラグイン２８１の動作パラメータが対象装置１１０に送信される。
対象装置１１０のプラグイン実行部１１１は、動作パラメータを用いてプラグイン２８１を実行する。
そして、プラグイン２８１は、動作パラメータに従って動作することによって、対象装置１１０を攻撃する。
【００５７】
また、プラグイン操作部２４０は、プラグイン操作の実行を開始したときに、プラグイン操作の開始を脆弱性判定部２６０に通知する。
さらに、プラグイン操作部２４０は、プラグイン操作の実行を終了したときに、プラグイン操作の終了を脆弱性判定部２６０に通知する。
【００５８】
Ｓ１４０において、攻撃実行部２５０は、Ｓ１１０で選択された攻撃識別子に対応付いた攻撃規則を攻撃規則ファイル２９４から選択し、選択した攻撃規則に従って攻撃パターンを生成する。
【００５９】
Ｓ１５０において、攻撃実行部２５０は、Ｓ１４０で生成した攻撃パターンを実行する。これにより、対象装置１１０に対する攻撃が実行される。
攻撃の実行には、市販のソフトウェア、フリーのソフトウェアまたは自作ツールを利用することができる。ＤｏＳ攻撃の実行には、ｈｐｉｎｇ３またはｆｒａｇｍｅｎｔａｔｉｏｎ６などのソフトウェアを利用することができる。ｆｕｚｚｉｎｇという攻撃の実行には、Ｐｅａｃｈなどのソフトウェアを利用することができる。
【００６０】
また、攻撃実行部２５０は、攻撃パターンの実行を開始したときに、対象装置１１０に対する攻撃の開始を脆弱性判定部２６０に通知する。
さらに、攻撃実行部２５０は、攻撃パターンの実行を終了したときに、対象装置１１０に対する攻撃の終了を脆弱性判定部２６０に通知する。
【００６１】
Ｓ１６０において、攻撃選択部２１０は、対象装置１１０に対する攻撃を終了させるか判定する。
例えば、攻撃終了命令が脆弱性検証装置２００に入力された場合、攻撃選択部２１０は、対象装置１１０に対する攻撃を終了させる。
攻撃を終了させる場合、処理は終了する。
攻撃を終了させない場合、処理はＳ１６１に進む。
【００６２】
Ｓ１６１において、攻撃選択部２１０は、Ｓ１１０で選択していない攻撃識別子があるか判定する。
未選択の攻撃識別子がある場合、処理はＳ１１０に戻る。
未選択の攻撃識別子がない場合、処理は終了する。
【００６３】
図１２に基づいて、脆弱性検証方法［検証］について説明する。脆弱性検証方法［検証］は、対象装置１１０に対する攻撃の結果に基づいて対象装置１１０の脆弱性を検証する方法である。
【００６４】
Ｓ２１０において、脆弱性判定部２６０は、対象装置１１０に対する攻撃の攻撃識別子を攻撃実行部２５０から取得する。
脆弱性判定部２６０は、取得した攻撃識別子に対応付いた通信手順を通信手順ファイル２９５から選択する。
【００６５】
Ｓ２２０において、脆弱性判定部２６０は、Ｓ２１０で選択された通信手順に示される攻撃前通信を実行する。但し、攻撃前通信が通信手順に含まれていない場合、Ｓ２２０は実行されない。
【００６６】
Ｓ２３０において、脆弱性判定部２６０は、対象装置１１０に対する攻撃の開始が攻撃実行部２５０から通知されるまで待機する。
さらに、脆弱性判定部２６０は、プラグイン操作の開始またはプラグイン操作無しがプラグイン操作部２４０から通知されるまで待機する。
【００６７】
Ｓ２４０において、脆弱性判定部２６０は、Ｓ２１０で選択された通信手順に示される攻撃中通信を実行する。但し、攻撃中通信が通信手順に含まれていない場合、Ｓ２４０は実行されない。
【００６８】
Ｓ２５０において、脆弱性判定部２６０は、対象装置１１０に対する攻撃の終了が攻撃実行部２５０から通知されるまで待機する。
さらに、脆弱性判定部２６０は、プラグイン操作の終了がプラグイン操作部２４０から通知されるまで待機する。但し、Ｓ２３０でプラグイン操作無しが通知された場合、プラグイン操作の終了が通知されるまで待機する必要はない。
【００６９】
Ｓ２６０において、脆弱性判定部２６０は、Ｓ２１０で選択された通信手順に示される攻撃後通信を実行する。但し、攻撃後通信が通信手順に含まれていない場合、Ｓ２６０は実行されない。
【００７０】
Ｓ２７０において、脆弱性判定部２６０は、Ｓ２１０で取得された攻撃識別子に対応付いた判定基準を判定基準ファイル２９６から選択する。
脆弱性判定部２６０は、攻撃前通信の通信結果と攻撃中通信と攻撃後通信とのうち実行した通信の通信結果を判定基準と比較し、比較結果に基づいて脆弱性の有無を判定する。判定される脆弱性は、依存関係ファイル２９７に含まれる脆弱性識別子のうち、Ｓ２１０で取得された攻撃識別子に対応付いた脆弱性識別子で識別される脆弱性である。
【００７１】
Ｓ２８０において、脆弱性判定部２６０は、Ｓ２１０で取得された攻撃識別子に対応付いた脆弱性識別子を依存関係ファイル２９７から選択する。
そして、脆弱性判定部２６０は、選択した脆弱性識別子をＳ２７０の判定結果に対応付けて脆弱性リスト２６９に登録する。
【００７２】
＊＊＊効果の説明＊＊＊
対象装置１１０にプラグイン２８１をインストールすることができる。
プラグイン２８１を操作することによって、対象装置１１０に対する攻撃を実行することができる。
攻撃の実行結果に基づいて、対象装置１１０の脆弱性を検証することができる。
【００７３】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は部分的に実施してもよい。
フローチャート等を用いて説明した処理手順は、脆弱性検証装置、脆弱性検証方法および脆弱性検証プログラムの処理手順の一例である。
【符号の説明】
【００７４】
１００  脆弱性検証システム、１０１  入力装置、１０２  出力装置、１１０  対象装置、１１１  プラグイン実行部、２００  脆弱性検証装置、２１０  攻撃選択部、２２０  プラグイン選択部、２３０  プラグイン埋め込み部、２４０  プラグイン操作部、２５０  攻撃実行部、２６０  脆弱性判定部、２６９  脆弱性リスト、２８０  プラグイン記憶部、２８１  プラグイン、２９０  検証記憶部、２９１  攻撃リスト、２９２  プラグイン規則ファイル、２９３  プラグイン操作ファイル、２９４  攻撃規則ファイル、２９５  通信手順ファイル、２９６  判定基準ファイル、２９７  依存関係ファイル、９０１  プロセッサ、９０２  補助記憶装置、９０３  メモリ、９０４  通信装置、９０４１  レシーバ、９０４２  トランスミッタ、９０５  入力インタフェース、９０６  出力インタフェース、９１０  信号線、９１１  ケーブル、９１２  ケーブル。
【図１】
2016149055.tif 000003
【図２】
2016149055.tif 000004
【図３】
2016149055.tif 000005
【図４】
2016149055.tif 000006
【図５】
2016149055.tif 000007
【図６】
2016149055.tif 000008
【図７】
2016149055.tif 000009
【図８】
2016149055.tif 000010
【図９】
2016149055.tif 000011
【図１０】
2016149055.tif 000012
【図１１】
2016149055.tif 000013
【図１２】
2016149055.tif 000014