(57)【特許請求の範囲】
【請求項１】
サイバー攻撃の演習に用いられる攻撃シナリオを生成するシナリオ生成装置において、
サイバー攻撃の攻撃活動を部品化した攻撃手段を表す攻撃手段データであって前記攻撃手段の前提条件と攻撃成果とを含む攻撃手段データを記憶する攻撃手段記憶部と、
作業者に、前記攻撃シナリオに含める攻撃手段をシナリオ編集画面に配置させる編集画面表示部と、
前記攻撃手段記憶部に記憶された攻撃手段データを用いて、前記シナリオ編集画面に配置された攻撃手段の前提条件が攻撃成果となる他の攻撃手段を前記攻撃手段記憶部から抽出し、前記シナリオ編集画面に配置された攻撃手段に前記他の攻撃手段を補完した前記攻撃シナリオを生成する攻撃シナリオ生成部と
を備えたシナリオ生成装置。
【請求項２】
前記編集画面表示部は、
前記攻撃シナリオ生成部により前記攻撃シナリオが生成されると、前記シナリオ編集画面に配置された攻撃手段と前記他の攻撃手段とが時系列に配置された前記攻撃シナリオを前記シナリオ編集画面に表示する請求項１に記載のシナリオ生成装置。
【請求項３】
前記編集画面表示部は、
前記作業者に、前記攻撃シナリオに含める複数の攻撃手段を時系列に前記シナリオ編集画面に配置させ、
前記攻撃シナリオ生成部は、
時系列が前の攻撃手段から、前記攻撃手段の前提条件にマッチする攻撃成果を有する攻撃手段を含むサブシナリオを生成し、前記サブシナリオにおける攻撃成果を前提条件として、時系列が次の攻撃手段についてサブシナリオを生成し、生成した複数のサブシナリオを結合することにより、前記攻撃シナリオを生成する請求項１または２に記載のシナリオ生成装置。
【請求項４】
前記攻撃手段データは、攻撃ツールで実行する攻撃スクリプトを定義する攻撃スクリプト定義を含み、
前記攻撃シナリオ生成部は、
前記攻撃シナリオにおいて時系列に配置された攻撃手段データの攻撃スクリプト定義により生成される攻撃スクリプトを結合することにより、前記攻撃シナリオを前記攻撃ツール上で実行するためのスクリプトを生成する請求項１から請求項３のいずれか１項に記載のシナリオ生成装置。
【請求項５】
前記攻撃スクリプト定義は、前記攻撃手段データに含まれる変数を格納するプレースホルダを記述可能である請求項４に記載のシナリオ生成装置。
【請求項６】
前記攻撃手段データは、前記攻撃手段により用いられるパラメータと前記パラメータのデフォルト値とを含むパラメータ定義部を備え、
前記編集画面表示部は、
前記シナリオ編集画面に配置された攻撃手段のパラメータに対してパラメータ値を前記作業者に指定させるパラメータ編集画面を表示し、
前記攻撃シナリオ生成部は、
前記パラメータ編集画面から指定されたパラメータ値をパラメータに設定するとともに、前記パラメータ編集画面からの指定が無いパラメータにはデフォルト値を設定する請求項１から請求項５のいずれか１項に記載のシナリオ生成装置。
【請求項７】
前記編集画面表示部は、
前記シナリオ編集画面に配置された攻撃手段と、前記攻撃シナリオ生成部により補完された前記他の攻撃手段とを視覚的に区別して表示する請求項１から請求項６のいずれか１項に記載のシナリオ生成装置。
【請求項８】
前記攻撃シナリオ生成部は、
前記シナリオ編集画面に配置された攻撃手段の攻撃成果が、前記攻撃シナリオに含まれるいずれかの攻撃手段の前提条件として活用されていることを確認する請求項１から請求項７のいずれか１項に記載のシナリオ生成装置。
【請求項９】
サイバー攻撃の演習に用いられる攻撃シナリオを生成するシナリオ生成装置のシナリオ生成方法において、
攻撃手段記憶部が、サイバー攻撃の攻撃活動を部品化した攻撃手段を表す攻撃手段データであって前記攻撃手段の前提条件と攻撃成果とを含む攻撃手段データを記憶し、
編集画面表示部が、作業者に、前記攻撃シナリオに含める攻撃手段をシナリオ編集画面に配置させ、
攻撃シナリオ生成部が、前記攻撃手段記憶部に記憶された攻撃手段データを用いて、前記シナリオ編集画面に配置された攻撃手段の前提条件が攻撃成果となる他の攻撃手段を前記攻撃手段記憶部から抽出し、前記シナリオ編集画面に配置された攻撃手段に前記他の攻撃手段を補完した前記攻撃シナリオを生成するシナリオ生成方法。
【請求項１０】
サイバー攻撃の演習に用いられる攻撃シナリオを生成するシナリオ生成装置のシナリオ生成プログラムにおいて、
前記シナリオ生成装置は、
サイバー攻撃の攻撃活動を部品化した攻撃手段を表す攻撃手段データであって前記攻撃手段の前提条件と攻撃成果とを含む攻撃手段データを記憶する攻撃手段記憶部を備え、
作業者に、前記攻撃シナリオに含める攻撃手段をシナリオ編集画面に配置させる編集画面表示処理と、
前記攻撃手段記憶部に記憶された攻撃手段データを用いて、前記シナリオ編集画面に配置された攻撃手段の前提条件が攻撃成果となる他の攻撃手段を前記攻撃手段記憶部から抽出し、前記シナリオ編集画面に配置された攻撃手段に前記他の攻撃手段を補完した前記攻撃シナリオを生成する攻撃シナリオ生成処理と
をコンピュータである前記シナリオ生成装置に実行させるシナリオ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シナリオ生成装置、シナリオ生成方法およびシナリオ生成プログラムに関する。
【背景技術】
【０００２】
特許文献１および非特許文献１には、ユーザが要求する攻撃成果を実現するための一連の攻撃手段の実行列を、攻撃シナリオとして生成する模擬攻撃システムが記載されている。攻撃成果とは、具体的には、機密ファイルを外部に送信するといった成果である。この模擬攻撃システムは、サイバー攻撃の攻撃活動が部品化された攻撃手段に対し、実行の前提条件および実行により得られる攻撃成果を定義することで、攻撃シナリオを生成している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１４５４１３号公報
【非特許文献】
【０００４】
【非特許文献１】河内  清人、北澤  繁樹、中野  初美、大越  丈弘、藤井  誠司、河木  理一著、「一階述語論理を用いた脆弱性診断ツール」情報処理学会研究報告  巻：２００２号：１２２（ＣＳＥＣ−１９）  ページ：４３−４８
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１あるいは非特許文献１の技術によれば、攻撃演習を行う場合、教官が攻撃のゴールのみを示すことにより、そのゴールを達成する攻撃シナリオが自動生成される。しかし、途中の攻撃活動を指定することはできない。そのため、「ＵＳＢメモリを介して端末Ａに侵入し、パスワード全探索で端末Ｘに感染を拡大し、最終的にサーバＹのファイルを外部へ送信する」といった攻撃シナリオの一部を指定し、指定された攻撃活動を含んだ攻撃シナリオを生成することはできない。また、攻撃シナリオに指定された攻撃活動が含まれていたとしても、その攻撃活動が攻撃シナリオ中で意味のある攻撃活動となっていない可能性がある。ここで「意味のある攻撃活動」とは、その攻撃活動をシナリオから取り除いた場合、その後段にある少なくとも一つ以上の攻撃活動が実行できなくなることを意味している。【０００６】
本発明は、教官が演習のポイントとなる攻撃シナリオの一部の攻撃活動を指定するだけで、それらの攻撃活動を全て含み、かつ、それらの攻撃活動が攻撃シナリオ中で意味のある攻撃活動となっている攻撃シナリオを自動生成することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るシナリオ生成装置は、サイバー攻撃の演習に用いられる攻撃シナリオを生成するシナリオ生成装置において、
サイバー攻撃の攻撃活動を部品化した攻撃手段を表す攻撃手段データであって前記攻撃手段の前提条件と攻撃成果とを含む攻撃手段データを記憶する攻撃手段記憶部と、
前記攻撃シナリオに含める攻撃手段をシナリオ編集画面に配置する編集画面表示部と、
前記攻撃手段記憶部に記憶された攻撃手段データを用いて、前記シナリオ編集画面に配置された攻撃手段の前提条件が攻撃成果となる他の攻撃手段を前記攻撃手段記憶部から抽出し、前記シナリオ編集画面に配置された攻撃手段に前記他の攻撃手段を補完した前記攻撃シナリオを生成する攻撃シナリオ生成部と
を備えた。
【発明の効果】
【０００８】
本発明に係るシナリオ生成装置では、編集画面表示部が、攻撃シナリオに含める攻撃手段をシナリオ編集画面に配置する。攻撃シナリオ生成部が、攻撃手段記憶部に記憶された攻撃手段データを用いて、シナリオ編集画面に配置された攻撃手段の前提条件が攻撃成果となる他の攻撃手段を攻撃手段記憶部から抽出する。そして、攻撃シナリオ生成部が、シナリオ編集画面に配置された攻撃手段に他の攻撃手段を補完した攻撃シナリオを生成する。よって、本発明に係るシナリオ生成装置によれば、攻撃シナリオに含める攻撃手段を配置することで、それらの攻撃手段を全て含み、かつ、それらの攻撃手段が攻撃シナリオ中で意味のある攻撃活動となっている攻撃シナリオを生成することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るシナリオ生成装置の構成図。
【図２】実施の形態１に係るシナリオ編集画面の構成図。
【図３】実施の形態１に係るシナリオ生成装置の特徴の一例を説明する図。
【図４】実施の形態１に係るパラメータ編集画面の構成図。
【図５】実施の形態１に係る攻撃手段データの構成を示す図。
【図６】実施の形態１に係る演習環境データの構成を示す図。
【図７】実施の形態１に係る攻撃スクリプトの形式を示す図。
【図８】実施の形態１に係る攻撃シナリオ生成部の動作を示すフローチャート。
【図９】実施の形態１に係るシナリオ候補生成処理を示すフローチャート。
【図１０】実施の形態１に係るサブシナリオ生成処理を示すフローチャート。
【図１１】実施の形態１に係るサブシナリオ生成処理を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１１】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を用いて、本実施の形態に係るシナリオ生成装置１００の構成を説明する。
シナリオ生成装置１００は、コンピュータである。シナリオ生成装置１００は、プロセッサ９１０を備えるとともに、メモリ９２１、補助記憶装置９２２、入出力インタフェース９３０、および通信装置９５０といった他のハードウェアを備える。プロセッサ９１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１２】
シナリオ生成装置１００は、機能要素として、編集画面表示部１１０と攻撃シナリオ生成部２０と攻撃手段記憶部１３０と演習環境記憶部１４０を備える。攻撃シナリオ生成部２０は、攻撃生成部１２０とシナリオ候補生成部１２１とシナリオ貢献チェック部１２２とサブシナリオ生成部１２３を備える。攻撃手段記憶部１３０には、攻撃手段データ１３１が記憶される。演習環境記憶部１４０には、演習環境データ１４１が記憶される。
【００１３】
編集画面表示部１１０と攻撃生成部１２０とシナリオ候補生成部１２１とシナリオ貢献チェック部１２２とサブシナリオ生成部１２３の機能は、ソフトウェアにより実現される。攻撃手段記憶部１３０と演習環境記憶部１４０は、メモリ９２１に備えられる。
【００１４】
プロセッサ９１０は、シナリオ生成プログラムを実行する装置である。シナリオ生成プログラムは、編集画面表示部１１０と攻撃生成部１２０とシナリオ候補生成部１２１とシナリオ貢献チェック部１２２とサブシナリオ生成部１２３の機能を実現するプログラムである。
プロセッサ９１０は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ９１０の具体例は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１５】
メモリ９２１は、データを一時的に記憶する記憶装置である。メモリ９２１の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、あるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
補助記憶装置９２２は、データを保管する記憶装置である。補助記憶装置９２２の具体例は、ＨＤＤである。また、補助記憶装置９２２は、ＳＤ（登録商標）メモリカード、ＣＦ、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤといった可搬記憶媒体であってもよい。なお、ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。ＳＤ（登録商標）は、Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌの略語である。ＣＦは、ＣｏｍｐａｃｔＦｌａｓｈ（登録商標）の略語である。ＤＶＤは、Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋの略語である。
【００１６】
入出力インタフェース９３０は、マウス、キーボード、タッチパネル、およびディスプレイといった入出力装置と接続されるポートである。ディスプレイは、具体的には、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。入出力インタフェース９３０は、具体的には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子あるいはＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。なお、入出力インタフェース９３０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と接続されるポートであってもよい。
本実施の形態では、編集画面表示部１１０は、入出力インタフェース９３０を介して、シナリオ編集画面２００と接続される。編集画面表示部１１０は、入出力インタフェース９３０を介して、シナリオ編集画面２００から情報を取得する。また、編集画面表示部１１０は、入出力インタフェース９３０を介して、シナリオ編集画面２００に情報を出力する。
【００１７】
通信装置９５０は、レシーバとトランスミッタを有する。通信装置９５０は、ＬＡＮ、インターネット、あるいは電話回線といった通信網に接続している。通信装置９５０は、具体的には、通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。シナリオ生成装置１００は、通信装置９５０を介して、シナリオ編集画面２００に接続されていてもよい。
【００１８】
シナリオ生成プログラムは、プロセッサ９１０に読み込まれ、プロセッサ９１０によって実行される。メモリ９２１には、シナリオ生成プログラムだけでなく、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。プロセッサ９１０は、ＯＳを実行しながら、シナリオ生成プログラムを実行する。シナリオ生成プログラムおよびＯＳは、補助記憶装置９２２に記憶されていてもよい。補助記憶装置９２２に記憶されているシナリオ生成プログラムおよびＯＳは、メモリ９２１にロードされ、プロセッサ９１０によって実行される。なお、シナリオ生成プログラムの一部または全部がＯＳに組み込まれていてもよい。
【００１９】
シナリオ生成装置１００は、プロセッサ９１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、シナリオ生成プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ９１０と同じように、シナリオ生成プログラムを実行する装置である。
【００２０】
シナリオ生成プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ９２１、補助記憶装置９２２、または、プロセッサ９１０内のレジスタあるいはキャッシュメモリに記憶される。
【００２１】
編集画面表示部１１０と攻撃シナリオ生成部２０の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてもよい。また編集画面表示処理と攻撃シナリオ生成処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
シナリオ生成プログラムは、上記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、シナリオ生成方法は、シナリオ生成装置１００がシナリオ生成プログラムを実行することにより行われる方法である。
シナリオ生成プログラムは、コンピュータ読取可能な媒体、記録媒体、あるいは記憶媒体に格納されて提供されてもよい。また、シナリオ生成プログラムは、プログラムプロダクトとして提供されてもよい。
【００２２】
＊＊＊機能の概要説明＊＊＊
シナリオ生成装置１００は、サイバー攻撃の演習に用いられる攻撃シナリオ３２を生成する。
【００２３】
編集画面表示部１１０は、攻撃シナリオ３２に含める攻撃手段をシナリオ編集画面２００に配置する。また、編集画面表示部１１０は、シナリオ編集画面２００により攻撃シナリオを編集および表示する。編集画面表示部１１０は、シナリオ編集画面２００により、作業者３０からシナリオ生成指示３１を受け付ける。作業者３０は、具体的には、攻撃演習を行う際の教官といった管理者である。また、編集画面表示部１１０は、シナリオ編集画面２００により、攻撃シナリオ３２および攻撃スクリプト３３を表示する。
【００２４】
攻撃シナリオ生成部２０は、攻撃手段記憶部１３０に記憶された攻撃手段データ１３１を用いて、シナリオ編集画面２００に配置された攻撃手段の前提条件が攻撃成果となる他の攻撃手段を攻撃手段記憶部１３０から抽出する。そして、攻撃シナリオ生成部２０は、シナリオ編集画面２００に配置された攻撃手段に他の攻撃手段を補完した攻撃シナリオ３２を生成する。
攻撃生成部１２０は、攻撃シナリオ３２を生成する際、シナリオ候補生成部１２１とシナリオ貢献チェック部１２２を読み出す。シナリオ候補生成部１２１は、攻撃シナリオの候補を生成する。シナリオ候補生成部１２１は、攻撃シナリオの候補を生成する際、シナリオ候補生成部１２１を再帰読み出しするとともに、サブシナリオ生成部１２３を読み出す。シナリオ貢献チェック部１２２は、攻撃シナリオの候補をチェックする。
【００２５】
攻撃手段記憶部１３０は、サイバー攻撃の攻撃活動を部品化した攻撃手段を表す攻撃手段データ１３１であって攻撃手段の前提条件と攻撃成果とを含む攻撃手段データ１３１を記憶する。攻撃手段記憶部１３０は、一つ以上の攻撃手段データ１３１を蓄積する。攻撃手段データ１３１は、攻撃者の行う攻撃活動を部品化したものである。攻撃シナリオ３２は、攻撃手段データ１３１を時系列に沿って並べたデータとして表現される。
演習環境記憶部１４０は、一つ以上の演習環境データ１４１を蓄積する。演習環境データ１４１は、攻撃対象とするシステムの構成情報を表すデータである。例えばファイルサーバのＩＰアドレス、あるいは、ファイルサーバ中に格納されたファイルのファイルパスといった情報が含まれる。
【００２６】
図２は、本実施の形態に係るシナリオ編集画面２００の構成を示す図である。
シナリオ編集画面２００は、一覧部２０３と配置部２０２を備える。
一覧部２０３には、攻撃手段記憶部１３０に記憶されている攻撃手段データ１３１の名称２０４が一覧となって表示される。一覧部２０３は、攻撃手段一覧表示ペインともいう。
【００２７】
配置部２０２は、格子状に分割されている。配置部２０２の各行は、攻撃シナリオの演習環境となる各ＰＣ（パーソナルコンピュータ）に対応付けられている。図２では、配置部２０２の各行は、ＰＣ１およびＰＣ２といったＰＣに対応付けられている。配置部２０２の各行には、各ＰＣで実行される攻撃手段２０５が時系列順に配置される。作業者３０は、一覧部２０３から攻撃シナリオで実施したい攻撃手段を選択し、選択した攻撃手段を配置部２０２上にドラッグアンドドロップすることによって配置する。図２では、攻撃手段Ｘ，Ｙ，Ｚが時系列に配置されている。配置された攻撃手段は、矢印によって自動的に結合される。黒丸２０８は、上の行の攻撃手段Ｙによって、ＰＣ２上に感染が拡大することを示している。配置部２０２は、攻撃手段配置ペインともいう。
【００２８】
図３は、本実施の形態に係るシナリオ生成装置１００の特徴の一例を説明する図である。図３では、シナリオ生成装置１００による攻撃シナリオの補完が、シナリオ編集画面２００上でどのように表現されるかを説明する。
作業者３０が実施したい攻撃手段Ｘ，Ｙを配置する。すなわち、編集画面表示部１１０は、攻撃シナリオ３２に含める複数の攻撃手段Ｘ，Ｙを時系列にシナリオ編集画面２００に配置する。その後、作業者３０により、シナリオ生成指示３１がシナリオ生成装置１００に入力される。作業者３０は、シナリオ編集画面２００によりシナリオ生成指示３１をシナリオ生成装置１００に入力する。
シナリオ生成装置１００は、攻撃シナリオとして不足している攻撃活動を、攻撃手段記憶部１３０に記憶されている攻撃手段データ１３１から適宜補完する。図３では、攻撃手段αと攻撃手段βが補完された様子を表している。攻撃手段αおよび攻撃手段βといった補完された攻撃手段は、シナリオ編集画面２００上にもともと配置されていた攻撃手段Ｘおよび攻撃手段Ｙといった攻撃手段とは、視覚的に区別できる形式で表示される。
【００２９】
図４は、本実施の形態に係る配置部２０２上に配置された攻撃手段のパラメータを編集するパラメータ編集画面４０１を示す図である。
編集画面表示部１１０は、シナリオ編集画面２００に配置された攻撃手段のパラメータに対してパラメータ値を指定するパラメータ編集画面４０１を表示する。パラメータ編集画面４０１は、具体的には、配置部２０２上の攻撃手段を一つ選択し、ダブルクリックするといった操作によって表示される。パラメータ編集画面４０１では、選択された攻撃手段において指定可能なパラメータに対し、パラメータ名４０２とパラメータ値入力ボックス４０３が一覧表示される。図４では、一つのパラメータしか表示されていないが、複数のパラメータを指定可能な攻撃手段の場合、複数パラメータが表示される。パラメータ値入力ボックス４０３には、現在、攻撃手段のパラメータとして設定されている値が表示される。作業者３０は、この値を必要であれば変更し、ＯＫボタン４０４あるいはキャンセルボタン４０５を押下することでパラメータ値を変更する。
【００３０】
図５は、本実施の形態に係る攻撃手段データ１３１の構成を示す図である。
本実施の形態では、攻撃手段データ１３１はＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のファイルとして攻撃手段記憶部１３０に保存される。しかし、本形式に限定されるものではなく、その他の形式で記述されていてもよい。
攻撃手段データ１３１は、攻撃手段の前提条件５０２と攻撃成果５０４とを含む。また、攻撃手段データ１３１は、攻撃ツールで実行する攻撃スクリプトを定義する攻撃スクリプト定義５０５を含む。
具体的には、以下の通りである。
【００３１】
攻撃手段データ１３１は、攻撃手段名５０１、前提条件５０２、パラメータ定義部５０３、攻撃成果５０４、および攻撃スクリプト定義５０５を有する。攻撃手段名５０１は、シナリオ編集画面２００上に表示される攻撃手段の名称である。
前提条件５０２は、攻撃手段を実行するにあたり、事前に満足していなければならない０個以上の条件を述語として表現した条件定義である。前提条件５０２は、前提条件定義ともいう。
【００３２】
パラメータ定義部５０３は、攻撃手段により用いられるパラメータとパラメータのデフォルト値とを含む。具体的には、パラメータ定義部５０３は、攻撃手段で調整可能なパラメータのパラメータ名５１２と、未指定時のデフォルト値５１３とを定義している。なお、攻撃シナリオ生成部２０は、パラメータ編集画面４０１から指定されたパラメータ値をパラメータに設定するとともに、パラメータ編集画面４０１からの指定が無いパラメータにはデフォルト値を設定する。
【００３３】
攻撃成果５０４は、攻撃手段を実行することで得られる１個以上の効果を述語で表現した攻撃成果の定義である。攻撃成果５０４は、攻撃成果定義ともいう。
攻撃スクリプト定義５０５は、攻撃手段を実行するにあたり、Ｍｅｔａｓｐｌｏｉｔといった攻撃ツールに入力するスクリプトを定義している。攻撃スクリプト定義５０５は、攻撃活動定義ともいう。
【００３４】
述語は、５０６、５０７、５０８で示されるようなｐｒｅｄｉｃａｔｅ要素として表現される。ｐｒｅｄｉｃａｔｅ要素は述語名を表すｎａｍｅ属性５１４を持ち、子要素として同述語の引数を表すｖａｒ要素（例えば５１１）もしくはｓｔｒｉｎｇ要素（例えば５１５）を含む。ｖａｒ要素は述語の変数を示しており、ｓｔｒｉｎｇ要素は定数値を示している。
【００３５】
例えば、前提条件５０２中の述語５０６は、一階述語論理上の記法を用いればＲＡＴ（ＲＡＴ＿ＨＯＳＴ，“ａｄｍｉｎ”，ＳＥＳＳＩＯＮ＿ＩＤ）という述語が成立していることが前提条件の一つである、ことを示している。ＲＡＴ＿ＨＯＳＴ、ＳＥＳＳＩＯＮ＿ＩＤは変数であるため、どのような値もとることができる。そのため、ＲＡＴ（“ＰＣ１”，“ａｄｍｉｎ”，“１２３４５”）という述語が成立していれば、先に例としてとりあげた前提条件ＲＡＴ（ＲＡＴ＿ＨＯＳＴ，“ａｄｍｉｎ”，ＳＥＳＳＩＯＮ＿ＩＤ）は、成立しているとみなされる。そして、その際、変数ＲＡＴ＿ＨＯＳＴには“ＰＣ１”が、ＳＥＳＳＳＩＯＮ＿ＩＤには“１２３４５”がそれぞれ代入される。
同様に、攻撃成果５０４中の述語５０８は、本攻撃手段が実行されることにより、述語５０８が成立することを示している。
【００３６】
また、攻撃スクリプト定義５０５は、攻撃手段データ１３１に含まれる変数を格納するプレースホルダを記述可能である。具体的には、攻撃スクリプト定義５０５は、％｛変数名｝の形式でプレースホルダ５０９，５１０を定義することができる。この部分は、攻撃スクリプト出力時に、同攻撃手段中の変数と関連付けられていた値に置換される。
【００３７】
図６は、本実施の形態に係る演習環境データ１４１の構成を示す図である。
本実施の形態では、演習環境データ１４１はＸＭＬ形式のファイルとして演習環境記憶部１４０に保存される。しかし、本形式に限定されるものではなく、その他の形式で記述されていてもよい。
演習環境データ１４１は、演習環境の構成を表す０個以上の述語６０２で構成される。具体的には、述語６０２は、一階述語論理における記法を用いればＳＥＲＶＥＲ（“ＦＩＬＥ”，“１０．７４．３．１９”）という述語を表している。この述語は、ファイルサーバのＩＰアドレスは１０．７４．３．１９であることを示している。
【００３８】
図７は、本実施の形態に係る攻撃スクリプト３５の形式を示す図である。
図７の攻撃スクリプト３５は、Ｍｅｔａｓｐｌｏｉｔといった攻撃ツールを操作する攻撃スクリプト３５である。攻撃スクリプト３５は、生成された攻撃シナリオ３２に含まれる各攻撃手段の攻撃スクリプト定義５０５について、プレースホルダを対応する変数の値に置換し、その後、時系列に沿って連結したものである。攻撃スクリプト３３の形式は使用する攻撃ツールによって自由に変更可能である。
【００３９】
＊＊＊動作の説明＊＊＊
次に動作について説明する。
図８は、本実施の形態に係る攻撃シナリオ生成部２０の動作を示すフローチャートである。なお、以降のフローチャートで使用する変数は、特別な記載がない限り、当該フローチャート内でのみ有効なローカル変数であるものとする。つまり、異なるフローチャート間で同じ変数名を使用したとしても、それらは独立であるものとする。
【００４０】
攻撃シナリオ生成部２０は、シナリオ編集画面２００を通じ、作業者３０からシナリオ生成指示３１がシナリオ生成装置１００に入力されると起動する。
攻撃シナリオ生成部２０は、時系列が前の攻撃手段から、攻撃手段の前提条件にマッチする攻撃成果を有する攻撃手段を含むサブシナリオを生成する。その後、攻撃シナリオ生成部２０は、生成したサブシナリオにおける攻撃成果を前提条件として、時系列が次の攻撃手段についてサブシナリオを生成する。攻撃シナリオ生成部２０は、このように生成した複数のサブシナリオを結合することにより、攻撃シナリオ３２を生成する。
【００４１】
＜攻撃シナリオ生成処理＞
ステップＳ８０１において、攻撃生成部１２０は、演習環境記憶部１４０に記憶されている演習環境データ１４１に格納されている述語の集合をロードし、変数ＫＢへ格納する。
ステップＳ８０２において、攻撃生成部１２０は、攻撃手段記憶部１３０に記憶されている攻撃手段データ１３１の集合を変数ＳＤＢへ格納する。
ステップＳ８０３において、攻撃生成部１２０は、シナリオ編集画面２００に配置された攻撃手段データ１３１を、時系列的に前のものから順に配列ＳＰ［１］，ＳＰ［２］，…，ＳＰ［Ｎ］に代入する。ＳＰ［１］からＳＰ［Ｎ］に代入された攻撃手段データ１３１の一部または全部は、パラメータ編集画面４０１を通じ作業者３０によってパラメータ値が指定されている。
【００４２】
ステップＳ８０４において、攻撃生成部１２０は、配列ＳＰ、ＳＤＢ、およびＫＢを引数としてシナリオ候補生成処理を呼び出す。シナリオ候補生成処理については後述する。シナリオ候補生成処理は攻撃シナリオの候補を返す。攻撃生成部１２０は、攻撃シナリオの候補を変数ＳＣに代入する。
【００４３】
ステップＳ８０５において、攻撃生成部１２０は、シナリオ候補の生成が成功したかどうかを判定する。シナリオ候補の生成が失敗すると、すなわち条件を満たす攻撃シナリオが生成できなかった場合、シナリオ候補生成処理は空データを返す。空データが返された場合、処理はステップＳ８０９へ分岐する。シナリオ候補の生成が成功すると、すなわち条件を満たす攻撃シナリオが生成できた場合、ＳＣは空ではない。ＳＣが空ではない場合、処理はステップＳ８０６へと進む。
【００４４】
ステップＳ８０６において、攻撃生成部１２０は、配列ＳＰ、ＳＣを引数としてシナリオ貢献チェック処理を呼び出す。シナリオ貢献チェック処理は、作業者３０により指定された攻撃手段、すなわちＳＰに格納されている攻撃手段が、ＳＣに格納されたシナリオ候補により有効に活用されているかを確認する。有効に活用されている場合、シナリオ貢献チェック処理は真、すなわちＴｒｕｅを返す。有効に活用されていない場合、シナリオ貢献チェック処理は偽、すなわちＦａｌｓｅを返す。結果は変数ｉｓＵｓｅｄに格納される。
【００４５】
ステップＳ８０７において、ｉｓＵｓｅｄがＴｒｕｅでなければ、ＳＰを含んだ他のシナリオ候補を探索するためステップＳ８０４に戻る。ｉｓＵｓｅｄがＴｒｕｅであれば、ステップＳ８０８へと進む。
【００４６】
ステップＳ８０８においては、攻撃生成部１２０は、シナリオ候補ＳＣを構成する各攻撃手段の各変数のうち、値が不確定のものに対し、同攻撃手段であらかじめ定義されたデフォルト値を代入する。シナリオ候補ＳＣの各攻撃手段の変数は、他の攻撃手段の変数と同値になるよう制約付けられる場合があるため、ある攻撃手段の変数をデフォルト値にセットすると、他の攻撃手段の不確定変数の値も自動的にその値で確定する場合がある。その場合、その変数についてのデフォルト値設定は行われない。攻撃生成部１２０は、デフォルト値をセットしたシナリオ候補ＳＣを、攻撃シナリオ３２とする。
【００４７】
最後に、ステップＳ８０９において、攻撃生成部１２０は、生成された攻撃シナリオ３２を編集画面表示部１１０に出力する。そして、編集画面表示部１１０は、生成された攻撃シナリオ３２をシナリオ編集画面２００に表示して処理を終了する。
【００４８】
編集画面表示部１１０は、攻撃シナリオ生成部２０により攻撃シナリオ３２が生成されると、シナリオ編集画面２００に配置された攻撃手段と、他の攻撃手段とが時系列に配置された攻撃シナリオ３２をシナリオ編集画面２００に表示する。すなわち、図２の後段に示すように、編集画面表示部１１０は、作業者３０により最初に配置された攻撃手段Ｘ，Ｙと、抽出された他の攻撃手段α，βとを、攻撃シナリオ３２に合わせて時系列に配置する。編集画面表示部１１０は、シナリオ編集画面２００に配置された攻撃手段Ｘ，Ｙと、攻撃シナリオ生成部２０により補完された他の攻撃手段α，βとを視覚的に区別して表示する。
また、攻撃シナリオ生成部２０は、攻撃シナリオ３２において時系列に配置された攻撃手段データ１３１の攻撃スクリプト定義５０５により生成される攻撃スクリプト３５を結合する。攻撃スクリプト３５を結合することにより、攻撃シナリオ生成部２０は、攻撃シナリオ３２を攻撃ツール上で実行するためのスクリプト３３を生成する。
【００４９】
また、ステップ８０５においてＳＣが空データの場合は、ステップＳ８０９において、編集画面表示部１１０は、攻撃シナリオの生成に失敗した旨をシナリオ編集画面２００に表示して処理を終了する。
【００５０】
＜シナリオ候補生成処理＞
図９は、本実施の形態に係るシナリオ候補生成処理、すなわち図８のステップＳ８０４を示すフローチャートである。
ステップＳ９０１では、シナリオ候補生成処理が呼び出された時のパラメータをそれぞれ配列ＳＰ、ＳＤＢ、ＫＢに代入している。ＳＰは、攻撃シナリオに含まなければならない攻撃手段の配列（１，・・・，Ｎ）である。ＳＤＢは、利用可能な攻撃手段の集合である。ＫＢは、達成済み効果の集合である。
【００５１】
ステップＳ９０２において、シナリオ候補生成部１２１は、シナリオ候補を格納する変数ＳＣを空データに初期化する。
ステップＳ９０３において、シナリオ候補生成部１２１は、変数ＫＢ’にＫＢの内容をコピーして初期化する。
【００５２】
ステップＳ９０４において、シナリオ候補生成部１２１は、配列ＳＰの要素数が１か否かを判定する。配列ＳＰの要素数が１だった場合、ステップＳ９０８に進む。配列ＳＰの要素数が１以外の場合、ステップＳ９０５に進む。
【００５３】
ステップＳ９０５において、シナリオ候補生成部１２１は、シナリオ候補生成処理を再帰呼出しする。シナリオ候補生成部１２１は、末尾の攻撃手段を除いたＳＰ［１］からＳＰ［Ｎ−１］を含んだシナリオ候補を生成し、結果を変数ＳＣ’に格納する。
ステップＳ９０６において、シナリオ候補生成部１２１は、ＳＣ’が空かどうかを判定する。シナリオ候補生成部１２１は、ＳＣ’が空か否かにより、ステップＳ９０５のシナリオ候補生成が成功したかどうかを確認する。ＳＣ’が空だった場合シナリオ候補の生成は失敗となるため、ステップＳ９１１において、ＳＣ（空データ）を返して終了となる。ＳＣ’が空でない場合はステップＳ９０７へ進む。
【００５４】
ステップＳ９０７では、シナリオ候補生成部１２１は、ＳＣ’内の各攻撃活動の攻撃手段に含まれる攻撃成果を、ＫＢ’に追加する。
【００５５】
ステップＳ９０８では、シナリオ候補生成部１２１は、サブシナリオ生成処理を呼び出し、ＳＰ［Ｎ］の実行をゴールとするサブシナリオの生成を行う。サブシナリオ生成処理は、ＫＢ’で与えられた前提条件の下、与えられた攻撃手段を実行することをゴールとする攻撃シナリオを生成する処理である。具体的な処理は後述する。これにより、ＳＣ’を実行した後に、さらにＳＰ［Ｎ］を実行するために追加で必要となるサブシナリオを求めることができる。生成されたサブシナリオは変数ＳＣ’’に格納される。サブシナリオの生成に失敗した場合、変数ＳＣ’’は空データとなる。
ステップＳ９０９では、シナリオ候補生成部１２１は、サブシナリオ生成に成功したかどうかを判定している。失敗した場合ステップＳ９１１に分岐し、呼び出し元へ空データを返して処理は終了する。成功した場合はステップＳ９１０へ進む。
【００５６】
ステップＳ９１０では、シナリオ候補生成部１２１は、ＳＣ’にＳＣ’’を連結した結果をＳＣに代入する。このとき、ＳＣはＳＰ［１］からＳＰ［Ｎ］を全て含んだシナリオとなっている。
ステップＳ９１１において、シナリオ候補生成部１２１は、ＳＣを処理結果として、呼び出し元へ返し、処理は終了する。
【００５７】
＜サブシナリオ生成処理＞
図１０および図１１は、本実施の形態に係るサブシナリオ生成処理、すなわち図９のステップＳ９０８を示すフローチャートである。
ステップＳ１００１では、サブシナリオ生成処理が呼び出された時のパラメータをそれぞれ、ＳＰ、ＳＤＢ、ＫＢに代入している。ＳＰは、最終的に実行する攻撃手段である。ＳＤＢは、利用可能な攻撃手段の集合である。ＫＢは、達成済み効果の集合である。
【００５８】
ステップＳ１００２では、サブシナリオ生成部１２３は、生成されたサブシナリオを格納する変数ＳＣを空データに初期化する。
ステップＳ１００３では、サブシナリオ生成部１２３は、変数ＫＢ’にＫＢの内容をコピーして初期化する。
ステップＳ１００４では、サブシナリオ生成部１２３は、攻撃手段ＳＰの前提条件の集合を配列ｐｒｅｄに格納している。同時に、配列の要素数を変数Ｍに格納する。
【００５９】
ステップＳ１００５からステップＳ１０１５まではループとなっており、ループのカウンタ変数ｉは１からＭの範囲でインクリメントされる。
【００６０】
ステップＳ１００６では、サブシナリオ生成部１２３は、ＫＢ’内でｐｒｅｄ［ｉ］にマッチする述語を探索し、マッチした述語を変数Ｋに格納する。ステップＳ１００７において、ｐｒｅｄ［ｉ］にマッチする述語が見つかれば、ステップＳ１０１９に分岐する。ｐｒｅｄ［ｉ］にマッチする述語が見つからなければ、ステップＳ１００８へ進む。
ステップＳ１０１９では、述語Ｋとｐｒｅｄ［ｉ］とが関連付けされる。関連付けとは、述語同士が互いを参照していることを記憶するとともに、片方の述語中の変数がもう片方の述語中の同一位置にある変数または定数と同じ実体を参照するようにする処理である。
【００６１】
ステップＳ１００８では、サブシナリオ生成部１２３は、攻撃手段の集合ＳＤＢ内でｐｒｅｄ［ｉ］にマッチする攻撃成果を持つ攻撃手段を探索し、結果を変数ＳＰ’に格納する。
ステップＳ１００９において、ステップＳ１００８でマッチする攻撃手段が見つからなかった場合、サブシナリオの生成に失敗したことになるため、ステップＳ１０１６へと分岐する。ステップＳ１０１６では、サブシナリオ生成部１２３は、サブシナリオの生成に失敗したことを示すために戻り値ＳＣに空データを代入し、ステップＳ１０１８でＳＣを呼び出し元へ返し、処理を終了する。ステップＳ１００９において、ステップＳ１００８でマッチする攻撃手段が見つかった場合、すなわち攻撃手段の探索に成功すると、ステップＳ１０１０へと進む。
【００６２】
ステップＳ１０１０では、サブシナリオ生成部１２３は、ＳＰ’の攻撃成果の述語とｐｒｅｄ［ｉ］を関連付ける。
ステップＳ１０１１では、サブシナリオ生成部１２３は、ステップＳ１００８で見つかった攻撃手段ＳＰ’をゴールとするサブシナリオを求め、結果をＳＣ’に格納する。サブシナリオ生成部１２３は、サブシナリオ生成処理を再帰的に呼び出すことにより、ステップＳ１００８で見つかった攻撃手段ＳＰ’をゴールとするサブシナリオを求める。
【００６３】
ステップＳ１０１１でサブシナリオの生成に失敗した場合、ステップＳ１０１２でステップＳ１０１６へと分岐し、戻り値ＳＣに空データを代入し、ステップＳ１０１８でＳＣを呼び出し元へ返し、処理を終了する。ステップＳ１０１１でサブシナリオの生成に成功した場合、ステップＳ１０１３へと進む。
【００６４】
ステップＳ１０１３では、サブシナリオ生成部１２３は、サブシナリオＳＣ’に含まれる各攻撃手段の攻撃成果中の述語をＫＢ’に追加する。
ステップＳ１０１４では、サブシナリオ生成部１２３は、生成されたサブシナリオＳＣ’を、それまでに生成されたサブシナリオＳＣの後ろに連結する。
ステップＳ１０１５はループの末端であり、ステップＳ１００５に戻って次のループが開始される。ループが終了した時、ＳＣには、ＳＰの前提条件ｐｒｅｄ［］の全てを満足させるためのサブシナリオが格納されている。
ステップＳ１０１７では、サブシナリオ生成部１２３は、ＳＣの末尾にＳＰを追加する。この処理でＳＣは、ＳＰをゴールとしたサブシナリオとなる。
ステップＳ１０１８では、サブシナリオ生成部１２３は、ＳＣを戻り値として、結果を呼び出し元に返し、処理は終了する。
【００６５】
最後に、図８のステップＳ８０６で示すシナリオ貢献チェック処理について説明する。
シナリオ貢献チェック処理において、シナリオ貢献チェック部１２２は、シナリオ編集画面２００に配置された攻撃手段の攻撃成果が、攻撃シナリオ３２に含まれるいずれかの攻撃手段の前提条件として活用されていることを確認する。具体的には、シナリオ貢献チェック部１２２は、ＳＣ中に含まれるＳＰ［］の各攻撃手段のうち、末端を除き、攻撃成果定義の述語のうち少なくとも一つが他の攻撃手段中の前提条件に含まれる述語と関連付けされていることを確認する。末端とは、すなわち図８で示すＳＰ［Ｎ］である。このシナリオ貢献チェック処理を行わないと、作業者３０が配置した攻撃手段の一部が、攻撃の成功に貢献していないようなシナリオが補完結果として提示されてしまう可能性がある。攻撃の成功に貢献していない攻撃手段は、シナリオにおいて無くてもよい無駄な攻撃活動となってしまう。このため、そのような攻撃活動を含んだシナリオは、合理的な攻撃者ならば決して実施することはない。シナリオ貢献チェック処理は、このようなシナリオが作業者３０に提示されることを避けるための処理となる。
【００６６】
＊＊＊他の構成＊＊＊
＜変形例１＞
本実施の形態では、編集画面表示部１１０と攻撃シナリオ生成部２０の機能がソフトウェアで実現される。変形例として、編集画面表示部１１０と攻撃シナリオ生成部２０の機能がハードウェアで実現されてもよい。
具体的には、シナリオ生成装置１００は、プロセッサ９１０に替えて電子回路を備える。
【００６７】
電子回路は、編集画面表示部１１０と攻撃シナリオ生成部２０の機能を実現する専用の電子回路である。
電子回路は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、または、ＦＰＧＡである。ＧＡは、Ｇａｔｅ  Ａｒｒａｙの略語である。ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。ＦＰＧＡは、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。
【００６８】
編集画面表示部１１０と攻撃シナリオ生成部２０の機能は、１つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
【００６９】
別の変形例として、編集画面表示部１１０と攻撃シナリオ生成部２０の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。また、編集画面表示部１１０と攻撃シナリオ生成部２０の一部またはすべての機能がファームウェアで実現されてもよい。
【００７０】
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、シナリオ生成装置１００において、編集画面表示部１１０と攻撃シナリオ生成部２０の機能は、プロセッシングサーキットリにより実現される。
【００７１】
＊＊＊本実施の形態の効果の説明＊＊＊
本実施の形態に係るシナリオ生成装置１００では、作業者が画面上に配置した攻撃手段のうち、時系列的に早いものから順番にサブシナリオを作成し、サブシナリオ中の攻撃成果を演習環境データに加味した上で次のサブシナリオを作成していく。そして、本実施の形態に係るシナリオ生成装置１００では、それらを結合することで、指定した攻撃手段を全て含んだ攻撃シナリオが作成できるという効果がある。
【００７２】
本実施の形態に係るシナリオ生成装置１００では、教官といった作業者が攻撃シナリオに含めたい攻撃手段を配置するだけで、それらの攻撃手段をすべて含み、かつ、意味のある攻撃活動となっている攻撃シナリオを自動生成できる。よって、本実施の形態に係るシナリオ生成装置１００によれば、教官のサイバー攻撃に関する知識に関わらず、攻撃シナリオを生成できるとともに、攻撃シナリオを手作業で作成するための時間をなくすことができる。
【００７３】
また、本実施の形態に係るシナリオ生成装置１００では、生成した攻撃シナリオにおいて、作業者が配置した攻撃手段の攻撃成果が他の攻撃手段の前提条件として貢献しているかをチェックする。よって、本実施の形態に係るシナリオ生成装置１００によれば、合理的ではない攻撃シナリオを除外できるという効果がある。
【００７４】
また、本実施の形態に係るシナリオ生成装置１００では、各攻撃手段に対し、設定可能なパラメータとそのデフォルト値を定義する。よって、本実施の形態に係るシナリオ生成装置１００によれば、作業者は必要に応じて画面上に配置した攻撃手段の挙動を細かく制御できるとともに、興味のないパラメータについては設定を省略できるという効果がある。
【００７５】
また、本実施の形態に係るシナリオ生成装置１００では、各攻撃手段に対し、同攻撃手段を攻撃実行ツールで実行するための攻撃スクリプトを攻撃活動定義として定義しておく。そして、本実施の形態に係るシナリオ生成装置１００では、生成された攻撃シナリオ中の各攻撃手段から、時系列的に早い順に攻撃活動定義を連結することで、攻撃スクリプトを自動で生成できるという効果がある。
【００７６】
さらに、本実施の形態に係るシナリオ生成装置１００では、攻撃活動定義の中に、前提条件定義および攻撃成果定義のパラメータで置換されるプレースホルダを用意する。よって、本実施の形態に係るシナリオ生成装置１００によれば、ホスト名といった生成された攻撃シナリオ中の変数値を攻撃スクリプトに自動的に反映することができるという効果がある。
【００７７】
さらに、本実施の形態に係るシナリオ生成装置１００では、攻撃手段に攻撃手段名称を定義する事で、シナリオ編集画面上の一覧部、すなわち攻撃手段一覧表示ペインにて、攻撃手段記憶部の攻撃手段の一覧が表示できる。よって、本実施の形態に係るシナリオ生成装置１００によれば、作業者が利用可能な攻撃手段の一覧を視覚的に把握できるという効果がある。
【００７８】
さらに、本実施の形態に係るシナリオ生成装置１００では、教官である作業者が演習のポイントとなる攻撃手段を一覧部から選択し、配置部に配置した後、攻撃シナリオを生成すると、生成された攻撃シナリオが画面上に表示される。このとき、本実施の形態に係るシナリオ生成装置１００では、補完された攻撃手段が、配置された攻撃手段と視覚的に区別できるよう描画される。よって、本実施の形態に係るシナリオ生成装置１００によれば、作業者は、生成されたシナリオが所望のものかどうかを容易に判別できるという効果がある。
【００７９】
以上の実施の形態１では、シナリオ生成装置の各部を独立した機能ブロックとして説明した。しかし、シナリオ生成装置の構成は、上述した実施の形態のような構成でなくてもよい。シナリオ生成装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。また、シナリオ生成装置は、１つの装置でなく、複数の装置から構成されたシステムでもよい。
また、実施の形態１のうち、複数の部分を組み合わせて実施しても構わない。あるいは、この実施の形態のうち、１つの部分を実施しても構わない。その他、この実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
すなわち、実施の形態１では、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【００８０】
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
【符号の説明】
【００８１】
２０  攻撃シナリオ生成部、３０  作業者、３１  シナリオ生成指示、３２  攻撃シナリオ、３３  スクリプト、３５  攻撃スクリプト、１００  シナリオ生成装置、１１０  編集画面表示部、１２０  攻撃生成部、１２１  シナリオ候補生成部、１２２  シナリオ貢献チェック部、１２３  サブシナリオ生成部、１３０  攻撃手段記憶部、１３１  攻撃手段データ、１４０  演習環境記憶部、１４１  演習環境データ、２００  シナリオ編集画面、２０２  配置部、２０３  一覧部、２０４  名称、２０８  黒丸、４０１  パラメータ編集画面、４０２  パラメータ名、４０３  パラメータ値入力ボックス、４０４  ＯＫボタン、４０５  キャンセルボタン、５０１  攻撃手段名、５０２  前提条件、５０３  パラメータ定義部、５０４  攻撃成果、５０５  攻撃スクリプト定義、５１２  パラメータ名、５１３  デフォルト値、５１４  ｎａｍｅ属性、５０９，５１０  プレースホルダ、５０６，５０７，５０８，６０２  述語、９１０  プロセッサ、９２１  メモリ、９２２  補助記憶装置、９３０  入出力インタフェース、９５０  通信装置。
【図１】
0006906715.tif 000002
【図２】
0006906715.tif 000003
【図３】
0006906715.tif 000004
【図４】
0006906715.tif 000005
【図５】
0006906715.tif 000006
【図６】
0006906715.tif 000007
【図７】
0006906715.tif 000008
【図８】
0006906715.tif 000009
【図９】
0006906715.tif 000010
【図１０】
0006906715.tif 000011
【図１１】
0006906715.tif 000012