(57)【要約】【課題】セキュリティを考慮したシステム要求定義を作成する際に、非熟練者であっても、熟練者と同等のレベルのセキュリティ分析を効率的に、かつ低コストで行えるよう支援する。【解決手段】共通用語ＤＢ内に、ドメインと関連する語句とを対応付けた情報と、ドメインに関連する語句の同義語の情報とを保持しておき、ゴールモデルのノードである各要素に含まれる語句、あるいは、その語句の同義語が含まれる数が最も多いドメインを、ゴールモデルの属するドメインであると類推する。そして、攻撃ＤＢから、類推されたドメインに対応する攻撃者モデルを読み出すと、現在作成しているゴールモデル内にすでに記述されているタスクを参照して、不要な攻撃者モデル候補を削除するとともに、攻撃者モデル候補から不要なモデル部分を削除した攻撃者モデル候補を作成して表示し、必要であるか否かをユーザに選択させる。【選択図】図１
2008250680.tif 000002
【特許請求の範囲】
【請求項１】
開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち１以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置であって、
ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部と、
悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベースと、
前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部と、
前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部と、
前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部と、
を備えることを特徴とするセキュリティ要求分析支援装置。
【請求項２】
ドメインに対応する語句、及び、当該語句の類似語の情報を記憶する共通用語データベースをさらに備え、
前記ゴールモデルデータ内の要素の情報は、要素の説明を示す記述の情報を含み、
前記攻撃者モデル情報生成部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の情報から、当該要素の記述に使用されている語句を抽出し、
前記データベース入出力部は、前記ゴールモデルが属するドメインとして、前記攻撃者モデル情報生成部により抽出された語句、及び、当該抽出された語句の類似語が対応付けられているドメインを前記共通用語データベースから読み出す、
ことを特徴とする請求項１に記載のセキュリティ要求分析支援装置。
【請求項３】
前記攻撃データベースは、攻撃者モデルに含まれる要素と同時成立しない要素の説明を示す記述の情報を少なくとも含む同時成立不可要素データをさらに記憶し、
前記攻撃者モデルに含まれる要素と同時成立しない要素の記述に含まれる語句の同義語を記憶する共通用語データベースをさらに備え、
前記データベース入出力部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の記述に使用されている語句の同義語の情報を前記共通用語データベースから読み出すとともに、前記同時成立不可要素データを前記攻撃データベースから読み出し、
前記攻撃者モデル情報生成部は、前記データベース入出力部が読み出した同義語の情報と同時成立不可要素データの入力を受け、当該同時成立不可要素データのうち、前記同義語が記述に含まれる同時成立不可要素データを特定し、前記攻撃者モデル候補群の中から、この特定した同時成立不可要素により示される同時成立しない要素のデータが含まれている攻撃者モデルデータを、前記ゴールモデルデータにより示される要素とは同時に成立しない要素が含まれている攻撃者モデルデータであると判断する、
ことを特徴とする請求項１に記載のセキュリティ要求分析支援装置。
【請求項４】
前記ゴールモデル情報記憶部は、前記ゴールモデル情報制御部により出力が指示された攻撃者モデルデータの中から、ユーザにより選択された攻撃者モデルデータの情報を記憶し、
前記攻撃者モデル情報生成部は、前記ゴールモデルに要素が追加された場合、前記ゴールモデル情報記憶部内に記憶されている前記攻撃者モデルデータの示す同時成立しない要素の情報に基づいて、新たに追加された要素と同時成立しない要素のデータが含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、悪意ゴールが達成されない場合には、当該攻撃者モデルデータを前記ゴールモデル情報記憶部から削除し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、特定した攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更し、
前記ゴールモデル情報制御部は、前記攻撃者モデル情報生成部により削除された攻撃者モデルデータの示す攻撃者モデルを表示から消去するとともに、変更前の攻撃者モデルの表示を変更された前記攻撃者モデルデータの示す新たな攻撃者モデルの表示に変更するよう指示する、
ことを特徴とする請求項１に記載のセキュリティ要求分析支援装置。
【請求項５】
開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち１以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置として用いられるコンピュータを、
ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部、
悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベース、
前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部、
前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部、
前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部、
として機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ要求分析支援装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
コンピュータシステムの開発工程は、要件定義、設計、製造、試験という流れが一般的である。開発工程において、手戻りを極力なくしてスムーズに開発を進め、かつ、システムの品質を上げるためには、要件定義を明確に規定することが効果的である。開発対象システムの要件定義、すなわち、開発対象システムに要求される機能を分析するために用いられる従来の手法の１つにゴール指向要求分析があり、その代表的な分析手法としてｉ＊（アイ・スター）がある。
【０００３】
図１３は、ｉ＊による分析例を示す。ｉ＊では、ゴールの達成などに関心・責任を持つ実体である「アクタ」（モデルでは、アクタの責任範囲を、円形のアクタ境界で示す）、達成されたかどうかが明確なゴールである「ハードゴール」、達成されたかどうかを明確にできない「ソフトゴール」（一般に、０から１までの達成度を持つ）、ゴールを達成するための手順である「タスク」、ゴールの達成やタスク実行のために使用する物理的実体、または情報である「リソース」などの要素をノードとし、これらのノード間の依存関係を図として記述することにより要求を可視可する。これにより、ステークホルダ間の利害関係や依存関係を全体的に俯瞰しながら要求される機能を分析することができ、従って、人間が理解しやすく、効率的な分析を可能としている。
【０００４】
近年、このｉ＊において、セキュリティに関する要求を分析するように拡張された手法が提案されている（例えば、非特許文献１参照）。非特許文献１に記載の手法では、考慮すべき通常のステークホルダに加えて、攻撃者となるステークホルダを考慮し、攻撃者の悪意ある目的を抽出して、それらの目的の達成を不可能にするかまたは軽減させるための目的やタスクを通常のステークホルダに追加する。これにより、セキュリティを考慮した要求分析を行うことができる。
【０００５】
図１４は、通常のｉ＊のプロセスと、非特許文献１によって拡張されたプロセスを示す図であり、図１５及び図１６は、この非特許文献１により拡張されたプロセスによって生成されたゴールモデルの一例である。図１４に示すように、通常のｉ＊のプロセスでは、まずアクタを特定することから始める（ステップＳ９１０）。そして、特定したアクタ間の依存関係を分析して戦略依存モデルを作成した後（ステップＳ９１２）、ゴール及びタスクを特定する（ステップＳ９１４）。続いて、アクタ内の依存関係を分析してゴールを比較評価することによって戦略原理モデルを作成し（ステップＳ９１６）、さらに、ノード間の依存関係を特定する（ステップＳ９１８）。このＳ９１２〜Ｓ９１８の過程を、部分的または全体的に適宜繰り返してゴールモデルを作成する。
【０００６】
拡張プロセスにおいては、攻撃者を特定し、攻撃者モデルを生成する（ステップＳ９２０、Ｓ９２２）。ここでは、攻撃者をアクタとして特定するが、ドメインモデルの全アクタを、潜在的攻撃者（例えば、悪意のあるユーザ、悪意を持って改造された装置）とみなす。この攻撃者は、対応するドメインモデルのアクタと同じゴール、タスク及びリソースを持つものである。
つぎに、アクタの悪意を特定し、悪意モデルを生成する（ステップＳ９２４、Ｓ９２６）。つまり、ドメインモデルの要素に加えて、攻撃者のゴールとして悪意を特定する。
続いて、脆弱性を分析して、脆弱性モデルを生成する（ステップＳ９２８、Ｓ９３０）。脆弱性の分析においては、攻撃の影響を受ける可能性がある要素を特定するが、悪意のゴールやタスクから負の貢献関係を受ける要素、悪意のゴールやタスクに依存する要素は脆弱であるとする。
【０００７】
図１５にも示すように、攻撃者を特定し、その攻撃者の悪意を特定して悪意モデルを生成し、その悪意から発生する攻撃を受ける可能性から脆弱性モデルを生成した後、その脆弱性を突く攻撃方法を特定して、攻撃方法モデルを作成する（ステップＳ９３２、Ｓ９３４）。つまり、攻撃方法を、悪意を達成する手段であるタスクとして特定する。また、ドメインモデル（通常のｉ＊モデル）の要素を利用(「悪用」)してもよい。
【０００８】
攻撃方法のモデルが作成されると、図１６に示すように、その攻撃に対する対策を特定して、対策モデルを生成する（ステップＳ９３６、Ｓ９３８）。つまり、元のドメインモデルに戻り、特定した各攻撃方法に対し、「その攻撃に対抗したい」というソフトゴールを設定する。あるいは、さらに詳しく、「攻撃を回避したい」、あるいは「攻撃を検出したい」といったゴールを設定した方が好ましい。そして、これらのソフトゴールに正の貢献関係を持つタスクとして、対策を特定する。
【０００９】
また、一方、新たな仕様書を作成する際に、既存仕様書事例を格納した事前データベースを利用し、編集作業全体の効率化を図ることのできるセキュリティ設計支援装置がある（例えば、特許文献１参照）。
【特許文献１】特開２００４−２２０４５９号公報
【非特許文献１】Liu他，“Security and Privacy Requirements Analysis within a Social Setting”,11th IEEE International Conference on Requirements Engineering (RE’03)，２００３年，pp.151-161
【発明の開示】
【発明が解決しようとする課題】
【００１０】
非特許文献１には、セキュリティに関する要求を分析するよう拡張された手法について開示されているが、これは、人為的な分析手順を示しているに過ぎない。よって、分析の結果の信頼性（網羅性や妥当性）は、分析者が、分析対象となるドメインにおいて考慮すべき攻撃者（ステップＳ９２０）、悪意（ステップＳ９２４）、攻撃方法（ステップＳ９３２）を漏れなく発見できるかどうかに依存する（図１５）。しかし、それらを漏れなく発見できるかどうかは、分析者のセキュリティに関する知識、対象ドメインに関する知識、分析の熟練度等に依存する。従って、これらの知識や経験を持たない分析者には、この手法を効果的に活用し、精度の高い分析を実施することは困難であった。そのため、セキュリティ要求分析の非熟練者であっても、熟練者に近い高精度な分析を行えるようにすることが求められている。
【００１１】
また、ゴールモデルの作成過程で、要素（ゴール、タスク、資源）の重複や矛盾が発生する可能性がある。図１７は、冗長な要素が含まれている場合の例を示す図である。同図において、悪意ゴールＧ１は、サブゴールＳＧ１及びＳＧ２の両者が成り立つときに達成される。しかし、サブゴールＳＧ２「操作ログを消す」を不可能ならしめるタスクＴ１「消去不能なログをとる」がすでにゴールモデルに存在しているため、サブゴールＳＧ２は達成されない。悪意ゴールＧ１は、サブゴールＳＧ１及びＳＧ２のＡＮＤ条件により成り立っており、サブゴールＳＧ１が達成されないとその上位のゴールＧ１も達成されないため、この部分全体の分析が不要となる。従来は、分析図の作成中に、このような要素の重複や矛盾を自動で検証する手段がないため、人間の目視により確認する必要があった。これは、コストが大きく、モデルが複雑になればなるほど見逃される可能性も大きかった。
【００１２】
そこで、特許文献１では、属性の包含関係を基にして要件定義の重複・矛盾を類推している。この技術により、重複を類推する場合の例について説明する。例えば、「脅威Ａ：特権ユーザが重要データを改ざんする（属性：＜攻撃者・要因＞管理者、＜保護対象資産＞情報、＜脅威種別・攻撃方法＞全ての改ざん）」、「脅威Ｂ:管理者権限を持つ外部委託業者が重要顧客情報を改ざんする（属性：＜攻撃者・要因＞外部委託管理者、＜保護対象資産＞顧客情報、＜脅威種別・攻撃方法＞全ての改ざん）」があったとする。また、管理者には、外部委託管理者と内部管理者が包含されることが定義されているものとする。この場合、＜攻撃者・要因＞で示される関与者、＜保護対象資産＞で示される情報資産の両属性において、脅威Ａと脅威Ｂは階層（包含）関係にあり（管理者⊃外部委託管理者、情報⊃顧客情報）、＜脅威種別・攻撃方法＞で示される攻撃方法属性が一致することから、脅威Ａと脅威Ｂが重複する可能性があると判断する。
【００１３】
また、矛盾を類推する場合の例について説明する。例えば、「前提条件Ａ：システム管理者は特権の悪用をしないものとする。（属性：＜攻撃者・要因＞管理者、＜保護対象資産＞全て、＜脅威種別・攻撃方法＞全て）」、「脅威Ｂ：管理者権限を持つ外部委託業者が重要顧客情報を改ざんする。（属性：＜攻撃者・要因＞外部委託管理者、＜保護対象資産＞顧客情報、＜脅威種別・攻撃方法＞全ての改ざん）」があったとする。また、管理者として、外部委託管理者と内部管理者が包含されることが定義されているものとする。この場合、＜攻撃者・要因＞で示される関与者属性において、前提条件Ａと脅威Ｂが階層（包含）関係にあることから、前提条件Ａと脅威Ｂが矛盾する可能性があると類推する。
【００１４】
このように、特許文献１の技術においては、要件にいくつかの属性を付与して管理し、属性の包含関係を基にして重複・矛盾を類推しているが、全ての脅威・要件等の要素間を比較しなければならないため、処理コストが高いという問題がある。例えば、ｎ個の要素の場合、（ｎ−１）２回の比較を行わなければならない。また、集合の包含関係という単純な判断基準しか持たないため、類推結果の信頼性が低いという問題がある。
【００１５】
本発明は、このような事情に鑑みてなされたものであり、セキュリティを考慮したシステム要件定義を分析する際に、非熟練者であっても、熟練者と同等のレベルのセキュリティ分析を効率的に、かつ低コストで行えるよう支援することのできるセキュリティ要求分析支援装置及びコンピュータプログラムを提供することをその目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、本発明は、開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち１以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置であって、ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部と、悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベースと、前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部と、前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部と、前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部と、を備えることを特徴とするセキュリティ要求分析支援装置である。
【００１７】
また、本発明は、上述するセキュリティ要求分析支援装置であって、ドメインに対応する語句、及び、当該語句の類似語の情報を記憶する共通用語データベースをさらに備え、前記ゴールモデルデータ内の要素の情報は、要素の説明を示す記述の情報を含み、前記攻撃者モデル情報生成部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の情報から、当該要素の記述に使用されている語句を抽出し、前記データベース入出力部は、前記ゴールモデルが属するドメインとして、前記攻撃者モデル情報生成部により抽出された語句、及び、当該抽出された語句の類似語が対応付けられているドメインを前記共通用語データベースから読み出す、ことを特徴とする。
【００１８】
また、本発明は、上述するセキュリティ要求分析支援装置であって、前記攻撃データベースは、攻撃者モデルに含まれる要素と同時成立しない要素の説明を示す記述の情報を少なくとも含む同時成立不可要素データをさらに記憶し、前記攻撃者モデルに含まれる要素と同時成立しない要素の記述に含まれる語句の同義語を記憶する共通用語データベースをさらに備え、前記データベース入出力部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の記述に使用されている語句の同義語の情報を前記共通用語データベースから読み出すとともに、前記同時成立不可要素データを前記攻撃データベースから読み出し、前記攻撃者モデル情報生成部は、前記データベース入出力部が読み出した同義語の情報と同時成立不可要素データの入力を受け、当該同時成立不可要素データのうち、前記同義語が記述に含まれる同時成立不可要素データを特定し、前記攻撃者モデル候補群の中から、この特定した同時成立不可要素により示される同時成立しない要素のデータが含まれている攻撃者モデルデータを、前記ゴールモデルデータにより示される要素とは同時に成立しない要素が含まれている攻撃者モデルデータであると判断する、ことを特徴とする。
【００１９】
また、本発明は、上述するセキュリティ要求分析支援装置であって、前記ゴールモデル情報記憶部は、前記ゴールモデル情報制御部により出力が指示された攻撃者モデルデータの中から、ユーザにより選択された攻撃者モデルデータの情報を記憶し、前記攻撃者モデル情報生成部は、前記ゴールモデルに要素が追加された場合、前記ゴールモデル情報記憶部内に記憶されている前記攻撃者モデルデータの示す同時成立しない要素の情報に基づいて、新たに追加された要素と同時成立しない要素のデータが含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、悪意ゴールが達成されない場合には、当該攻撃者モデルデータを前記ゴールモデル情報記憶部から削除し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、特定した攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更し、前記ゴールモデル情報制御部は、前記攻撃者モデル情報生成部により削除された攻撃者モデルデータの示す攻撃者モデルを表示から消去するとともに、変更前の攻撃者モデルの表示を変更された前記攻撃者モデルデータの示す新たな攻撃者モデルの表示に変更するよう指示する、ことを特徴とする。
【００２０】
また、本発明は、開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち１以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置として用いられるコンピュータを、ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部、悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベース、前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部、前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部、前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部、として機能させることを特徴とするコンピュータプログラムである。
【発明の効果】
【００２１】
本発明によれば、セキュリティ要求分析において、考慮を忘れやすい攻撃を発見できる可能性が高まるという効果がある。また、その際、不必要な分析は除去されるため、分析効率が高まる。また、ゴールモデルの作成過程で、要素の重複や矛盾を検証することもできる。これらの結果、セキュリティに関する要求分析の信頼性（網羅性や妥当性)が高まり、初心者であっても、容易にセキュリティ要求分析を行うことを支援することができる。また、ゴールモデルを構成する全ての要素の組み合わせについて比較を行う必要がないため、処理コストを低減することも可能である。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
図１は、本発明の一実施の形態によるセキュリティ要求分析支援装置１０の動作概要について説明するための図である。
まず、セキュリティ要求分析支援装置１０は、分析者の作成したゴール指向要求分析の分析図、すなわち、ゴールモデルに使用されている語句と、その語句とドメインの関係を解析して、現在分析している対象のドメインを推定する。つまり、共通用語データベース３０（以下、データベースを「ＤＢ」と記載）内に、ドメインと当該ドメインに関連する語句とを対応付けた情報と、ドメインに関連する語句の同義語の情報とを保持しておく。そして、ゴールモデルのノードである各要素に含まれる語句、及び、その語句の同義語が含まれる数が最も多いドメインを、現在作成中のゴールモデルが属するドメインであると類推する。
【００２３】
次に、セキュリティ要求分析支援装置１０は、ドメインごとに想定される攻撃者・悪意ゴール・脆弱性・攻撃手法に関する情報を蓄積した攻撃ＤＢ４０から、類推されたドメインに対応する攻撃者モデルを読み出して、これを攻撃者モデル候補とする。また、これらの攻撃者モデル候補を全て合わせて攻撃者モデル候補群とする。セキュリティ要求分析支援装置１０は、現在作成しているゴールモデル内にすでに記述されているタスクを参照して、矛盾や重複のため、不要な攻撃者モデル候補を削除するとともに、攻撃者モデル候補から不要なモデル部分を削除した、新たな攻撃者モデル候補を作成して、現在の攻撃者モデル候補と置き換え、新たな攻撃者モデル候補群を作成する。セキュリティ要求分析支援装置１０は、新たに作成した攻撃者モデル候補群に含まれる攻撃者モデル候補をゴールモデル上に表示し、これらの表示した攻撃者モデル候補が必要であるか否かをユーザに選択させる。ユーザは、候補から選択した攻撃者モデルの悪意ゴールが達成されないように要素を追加し、セキュリティに関するゴールモデルを作成する。
【００２４】
図２は、図１の動作概要において、セキュリティ要求分析支援装置１０が攻撃者モデル候補群から、不要な攻撃者モデル候補を削除するとともに、攻撃者モデル候補における不要な部分の削除を行って新たな攻撃者モデル候補を作成し、ユーザに表示するときの処理概要について説明するための図である。セキュリティ要求分析支援装置１０は、以下に示す（手順１）〜（手順６）のように動作する。
【００２５】
（手順１）まず、セキュリティ要求分析支援装置１０は、攻撃ＤＢ４０から、推定されたドメインに対応した攻撃者モデル（悪意ゴール木）の集合を全て読み出す。そして、読み出した攻撃者モデルを攻撃者モデル候補とし、これらの攻撃者モデル候補の集合である攻撃者モデル候補群を生成する。
（手順２）セキュリティ要求分析支援装置１０は、（手順１）において生成した攻撃者モデル候補群から、未選択の攻撃者モデル候補を選択する。
（手順３）セキュリティ要求分析支援装置１０は、（手順２）において選択した攻撃者モデルが、現在のゴールモデル内にある要素と重複や矛盾があるか判断する。
（手順４）（手順３）において、重複や矛盾があると判断した場合、攻撃者モデル候補を構成する悪意ゴール木におけるＡＮＤ／ＯＲの関係を考慮して、削除可能な要素を最大限に削除して新しい悪意ゴール木を作成し、新たな攻撃者モデル候補とする。
【００２６】
例えば、図２において、攻撃者モデル候補に含まれる悪意ゴールＧ１は、サブゴールＳＧ１及びＳＧ２のＡＮＤ、つまり、サブゴールＳＧ１及びＳＧ２の両者が成り立つときに達成される。ここで、サブゴールＳＧ２を不可能ならしめるタスクＴ１がすでに現在のゴールモデル内に存在している場合、サブゴールＳＧ２は達成されない。悪意ゴールＧ１は、サブゴールＳＧ１及びＳＧ２のＡＮＤ条件により成り立っており、サブゴールＳＧ１が達成されないとその上位のゴールＧ１も達成されないため、この攻撃者モデル候補自体が不要となる。
あるいは、攻撃者モデル候補の悪意ゴールＧ１が、サブゴールＳＧ１とＳＧ２のＯＲ、つまり、サブゴールＳＧ１またはＳＧ２のどちらかが成り立つときに達成されるとする。ここで、サブゴールＳＧ２を不可能ならしめるタスクＴ１がすでに現在のゴールモデル内に存在しているため、サブゴールＳＧ２は達成されない。このときは、サブゴールＳＧ２のみを削除した悪意ゴール木が新たな攻撃者モデル候補として生成される。
【００２７】
（手順５）セキュリティ要求分析支援装置１０は、（手順４）にて作成した新たな攻撃者モデル候補をゴールモデル内に表示し、ユーザに必要か否かを選択させる。なお、悪意ゴール木自体が削除となった攻撃者モデル候補の場合には、何も表示せずに（手順６）へ進む。
（手順６）攻撃者モデル候補群内の全ての攻撃者モデル候補について（手順３）〜（手順５）を行った場合には処理を終了し、まだ（手順３）〜（手順５）を行っていない攻撃者モデル候補がある場合には、ふたたび（手順２）からの処理を行う。
【００２８】
図３は、同実施の形態によるセキュリティ要求分析支援装置１０の機能ブロック図である。
同図において、セキュリティ要求分析支援装置１０は、外部環境に設置された外部記憶装置２０、共通用語ＤＢ３０、攻撃ＤＢ４０と接続される。外部記憶装置２０、共通用語ＤＢ３０、攻撃ＤＢ４０は、例えば、ぞれぞれ、１または複数のサーバなどで構成することができる。外部記憶装置２０は、ゴール指向要求分析により作成されたゴールモデルのデータを記述したゴールモデルファイルを保存する。共通用語ＤＢ３０は、特定ドメインにおける定型語彙や、当該定型語彙の同義語、類義語などの情報を蓄積する。攻撃ＤＢ４０は、ドメイン毎の攻撃者の典型的な攻撃パターンの悪意ゴール木、すなわち、攻撃者モデルを示す攻撃者モデルデータを保存する。
【００２９】
セキュリティ要求分析支援装置１０は、ゴールモデルファイル入出力部１１、ゴールモデル情報記憶部１２、ゴールモデル情報制御部１３、攻撃者モデル情報生成部１４、ＤＢ入出力部１５、ゴールモデル情報表示部１６からなり、入力装置５０を備える。
【００３０】
ゴールモデルファイル入出力部１１は、外部記憶装置２０に対し、ゴールモデルファイルの入出力を行う。ゴールモデル情報記憶部１２は、ゴールモデルファイル入出力部１１から入力したゴールモデルファイルであるゴールモデル情報を記憶するとともに、ゴールモデル情報制御部１３により生成・編集したゴールモデル情報を記憶する。ゴールモデル情報制御部１３は、ゴールモデル情報記憶部１２内に記憶されているゴールモデル情報の読み込み、更新、および削除を行うとともに、攻撃者モデル情報生成部１４と通信し、攻撃者モデルデータの入出力を行う。
【００３１】
攻撃者モデル情報生成部１４は、ゴールモデル情報制御部１３からゴールモデル情報の入力を受け、当該ゴールモデルを構成するノードの定義データに基づいてＤＢ検索式を作成し、ＤＢ入出力部１５へ出力するとともに、ＤＢ入出力部１５から返送された結果を入力する。攻撃者モデル情報生成部１４は、ＤＢ入出力部１５から検索結果として返送された攻撃者モデルからなる攻撃者モデル候補群について、現在のゴールモデルとの矛盾・重複検証処理を行い、新たな攻撃者モデル候補群を生成してゴールモデル情報制御部１３へ出力する。
【００３２】
ＤＢ入出力部１５は、攻撃者モデル情報生成部１４からＤＢ検索式の入力を受けて共通用語ＤＢ３０または攻撃ＤＢ４０へ当該ＤＢ検索式を出力し、返送された検索結果の入力を受け、攻撃者モデル情報生成部１４へ当該検索結果を出力する。ゴールモデル情報表示部１６は、ゴールモデルや攻撃者モデルを外部の表示装置（ディスプレイなど）に表示する。また、入力装置５０は、キーボードやマウスの操作などによりユーザから入力された情報をゴールモデル情報制御部１３へ出力する。
【００３３】
図４は、図３に示す攻撃者モデル情報生成部１４内の機能ブロック図を示す。
攻撃者モデル情報生成部１４は、ゴールモデル情報入出力部１４ａ、制御部１４ｂ、字句抽出部１４ｃ、攻撃モデル生成部１４ｄを備える。
【００３４】
制御部１４ｂは、ゴールモデル情報入出力部１４ａ、字句抽出部１４ｃ、攻撃モデル生成部１４ｄ、およびＤＢ入出力部１５とのデータの入出力の流れを制御する。ゴールモデル情報入出力部１４ａは、ゴールモデル情報制御部１３から、ゴールモデル情報の入力を受けるとともに、攻撃モデル生成部１４ｄにおいて生成された攻撃者モデル候補を制御部１４ｂから読み込み、ゴールモデル情報制御部１３へ出力する。字句抽出部１４ｃは、制御部１４ｂからゴールモデル情報の入力を受け、各要素（アクタ、ゴール、タスクなど）の名称を抽出するとともに、共通用語ＤＢ３０への検索式を生成し、制御部１４ｂへ出力する。攻撃モデル生成部１４ｄは、制御部１４ｂから現状のゴールモデル情報を入力し、それに対応した攻撃者モデルのデータをＤＢ入出力部１５から読み込む。また、攻撃モデル生成部１４ｄは、現状のゴールモデルの情報と、攻撃者モデル候補の攻撃者モデルデータとを入力し、ＡＮＤ／ＯＲ関係を考慮して新たな候補木（新たな攻撃者モデル候補）に再構築する。
【００３５】
図５は、外部記憶装置２０に記憶される情報を示す図である。
外部記憶装置２０は、ゴールモデルファイルを記憶する。ゴールモデルファイルには、ゴールモデルのノードを構成する各要素の情報を示す要素データが含まれる。要素データには、要素を一意に特定する要素ＩＤ、当該要素がアクタ／ゴール／ソフトゴール／タスク／資源などのうちいずれであるかを示す要素種別、当該要素の名称などの説明を示す記述、アクタ領域、上位の要素を示す上位関連、下位の要素を示す下位関連、同時成立することが矛盾、あるいは、重複する要素などの情報が含まれる。同時成立することが矛盾、あるいは、重複する要素は、要素ＩＤにより示すことができるが、本情報は設定されていなくともよい。
【００３６】
同図に示すゴールモデルの場合、外部記憶装置２０は、複数のゴールモデルファイルを記憶しており、ゴールモデルファイルには、アクタ、ゴール、ソフトゴール、タスク、資源の要素データが含まれる。アクタの要素データには、アクタ名称「医療スタッフ」が設定されている。ゴールの要素データには、要素ＩＤ「ゴール１」、要素種別「ゴール」、記述「カルテの管理を容易にする」、下位関連「ゴール２とゴール３のＡＮＤ」が設定されているもの、要素ＩＤ「ゴール２」、要素種別「ゴール」、記述「高速に検索する」、上位関連「ゴール１（ゴール２とゴール３のＡＮＤ）」、下位関連「タスク１」が設定されているもの、要素ＩＤ「ゴール３」、要素種別「ゴール」、記述「高速に検索する」、上位関連「ゴール１（ゴール２とゴール３のＡＮＤ）」、下位関連「タスク１」が設定されているものがある。タスクの要素データには、要素ＩＤ「タスク１」、要素種別「タスク」、記述「電子的に管理する」、上位関連「ゴール２、ゴール３、ソフトゴール」、下位関連「資源１、資源２」が設定されているものがある。ソフトゴールの要素データには、要素ＩＤ「ソフトゴール１」、要素種別「ソフトゴール」、記述「情報を漏洩しない」、下位関連「タスク１」が設定されているものがある。資源の要素データには、要素ＩＤ「資源１」、要素種別「資源」、記述「端末」、上位関連「タスク１」が設定されているもの、要素ＩＤ「資源２」、要素種別「資源」、記述「ＤＢ」、上位関連「タスク１」が設定されているものがある。
【００３７】
図６は、セキュリティ要求分析支援装置１０のゴールモデル情報記憶部１２に記憶され、ゴールモデルファイル入出力部１１によって外部記憶装置２０へ出力されるゴールモデルファイルを示す図である。同図において、ゴールモデル情報記憶部１２は、現在作業中のゴールモデルファイルを一時的に保持している。ここで保持されるゴールモデルファイルは、外部記憶装置２０に記憶されるゴールモデルファイルと同じデータ構成である。
【００３８】
図７は、共通用語ＤＢ３０が保持する情報を示す図である。
同図において、共通用語ＤＢ３０は、ドメイン名称と、当該ドメイン名称に対応する語句（語句名称）とを対応付けて記憶している。さらに、共通用語ＤＢ３０は、同義の複数の語句を対応付けた情報を示す同義語データ、類似の意味を有する複数の語句を対応付けた情報を示す類義語データを記憶している。例えば、共通用語ＤＢ３０には、ドメイン名称「医療ドメイン」には、語句名称「医者、患者、医療事務員、…」とが対応付けられて記憶される。また、同義語データには、「医療事務員＝医療スタッフ、…」などの情報が含まれる。
【００３９】
図８は、攻撃ＤＢ４０が保持する情報を示す図である。
同図において、攻撃ＤＢ４０は、ドメイン名称と、攻撃者モデルデータとを対応付けた情報を記憶する。攻撃者モデルデータには、攻撃者モデルデータを識別する攻撃ＩＤ、及び、攻撃者の名称の情報と、攻撃者のゴールである悪意ゴール（攻撃者要素）の要素データ、及び、ソフトゴール（攻撃者ソフトゴール）、タスク（攻撃者タスク）、資源（攻撃者資源）などのうち１以上の要素の要素データとが含まれる。さらに、攻撃ＤＢ４０は、攻撃者モデルデータ内の要素データにより示される要素とは同時に成立することが矛盾、あるいは、重複する要素の要素データである同時成立不可要素データを保持する。
【００４０】
図９は、攻撃者モデルデータに含まれる要素データと、同時成立が矛盾する要素データの具体例を示す。
同図に示す、攻撃者モデルの候補は、悪意ゴール「ゴール１」が、サブゴール「ゴール２」と「ゴール３」のＡＮＤに依存しており、サブゴール「ゴール３」は、サブゴール「ゴール４」と「ゴール５」のＯＲに依存するものとする。また、サブゴール「ゴール３」は、タスク「タスク１」とは矛盾するため同時に存在できないものとする。
【００４１】
このとき、悪意ゴールである「ゴール１」の要素データには、要素ＩＤ「Ｇ１」、要素種別「ゴール」、記述「ゴール１」、アクタ領域「悪意のある医療スタッフ」、上位関連「なし」、下位関連「ゴール１＝ＡＮＤ（ゴール２，ゴール３）」、同時成立矛盾「なし」、同時成立重複「なし」が設定される。また、悪意ゴールのサブゴールである「ゴール３」の要素データには、要素ＩＤ「Ｇ３」、要素種別「ゴール」、記述「ゴール３」、アクタ領域「悪意のある医療スタッフ」、上位関連「ゴール１＝ＡＮＤ（ゴール２，ゴール３)」、下位関連「ゴール３＝ＯＲ（ゴール４，ゴール５）」、同時成立矛盾「Ｔ１」、同時成立重複「なし」が設定される。なお、「ゴール１＝ＡＮＤ（ゴール２，ゴール３）」は、ゴール１が、ゴール２及びゴール３の両方が達成されたときに達成されることを、「ゴール３＝ＯＲ（ゴール４，ゴール５）」は、ゴール３が、ゴール４またはゴール５のいずれかが達成されたときに達成されることを示す。
【００４２】
また、「ゴール３」の要素データに、同時成立矛盾するとして記述される要素ＩＤ「Ｔ１」により特定されるタスク１の同時成立不可要素データには、要素ＩＤ「Ｔ１」、要素種別「タスク」、記述「タスク１」、アクタ領域「悪意のある医療スタッフ」、上位関連「なし」、下位関連「なし」、同時成立矛盾「Ｇ３」、同時成立重複「なし」が設定されている。
さらに、同図においては、タスク１と実質的に同値の要素であるタスクｔ１が分析者により生成されたゴールモデルに含まれているものとする。ゴールモデル情報内のタスクｔ１の要素データには、要素ＩＤ「Ｔ９９９」、要素種別「タスク」、記述「タスクｔ１」、アクタ領域「悪意のある医療スタッフ」、上位関連「なし」、下位関連「なし」、同時成立矛盾「なし」、同時成立重複「なし」が設定されている。
【００４３】
次に、セキュリティ要求分析支援装置１０の動作について説明する。
図１０は、セキュリティ要求分析支援装置１０の処理概要を示すフローチャートである。
まず、セキュリティ要求分析支援装置１０のゴールモデルファイル入出力部１１は、外部記憶装置２０から編集対象のゴールモデルファイルを読み込む（ステップＳ１１０）。この編集対象のゴールモデルファイルは、例えば、入力装置５０により入力されたファイル名により特定される。ゴールモデル情報記憶部１２は、ゴールモデルファイル入出力部１１が外部記憶装置２０から読み出したゴールモデルファイルを、ゴールモデル情報として格納する（ステップＳ１２０）。
【００４４】
続いて、攻撃者モデル情報生成部１４が、ゴールモデル情報制御部１３を介してゴールモデル情報記憶部１２からゴールモデル情報の入力を受ける（ステップＳ１３０）。攻撃者モデル情報生成部１４は、ゴールモデル情報内の各要素データの記述に含まれる用語から、ドメインを検索するための検索式を生成してＤＢ入出力部１５へ出力する（ステップＳ１４０）。ＤＢ入出力部１５は、入力された当該検索式により共通用語ＤＢ３０を検索した結果の入力を受ける（ステップＳ１５０）。攻撃者モデル情報生成部１４は、ＤＢ入出力部１５から、ステップＳ１５０におけるドメイン検索結果の入力を受ける。
【００４５】
続いて、ゴールモデル情報記憶部１２は、ステップＳ１５０において受信した結果から、攻撃者モデル候補となる攻撃者モデルデータを検索するための検索式を生成してＤＢ入出力部１５へ出力する（ステップＳ１６０）。ＤＢ入出力部１５は、入力された当該検索式により攻撃ＤＢ４０を検索した結果を受信する（ステップＳ１７０）。攻撃者モデル情報生成部１４は、ＤＢ入出力部１５から、ステップＳ１８０における攻撃者モデル検索結果の入力を受ける。
【００４６】
攻撃者モデル情報生成部１４は、ＤＢ入出力部１５から攻撃者モデルデータの検索結果の入力を受けると、これら攻撃者モデルデータを合わせて攻撃者モデル候補群とする（ステップＳ１８０）。攻撃者モデル情報生成部１４により生成された攻撃者モデル候補群がゴールモデル情報制御部１３に入力されると（ステップＳ１９０）、ゴールモデル情報制御部１３は、入力された攻撃者モデル候補群内の攻撃者モデルデータで規定される攻撃者モデル候補をゴールモデル情報表示部１６へ出力する。ゴールモデル情報表示部１６は、攻撃者モデルデータが入力されると、当該データで示される攻撃者モデル候補を順に表示し、入力装置５０により表示した攻撃者モデル候補の要／不要の情報の入力を受ける（ステップＳ２００）。これにより、ゴールモデル情報制御部１３は、要と入力された攻撃者モデル候補の攻撃者モデルデータを、現在のゴールモデル情報に追加してゴールモデル情報記憶部１２に書き込む。
【００４７】
攻撃者モデル候補群内のすべての攻撃者モデルデータについて要否が選択され、入力装置５０により保存の指示が入力されると、ゴールモデルファイル入出力部１１は、ゴールモデル情報記憶部１２からゴールモデル情報の入力を受ける（ステップＳ２１０）。ゴールモデルファイル入出力部１１は、入力されたゴールモデル情報が設定されたゴールモデルファイルを外部記憶装置２０へ出力する（ステップＳ２２０）。外部記憶装置２０は、ゴールモデルファイル入出力部１１から入力されたゴールモデルファイルを記憶する。
【００４８】
図１１は、セキュリティ要求分析支援装置１０内の攻撃者モデル情報生成部１４において実行される処理のフローチャートである。
攻撃者モデル情報生成部１４のゴールモデル情報入出力部１４ａは、図１０のステップＳ１３０において、ゴールモデル情報制御部１３がゴールモデル情報記憶部１２から読み出したゴールモデル情報の入力を受ける（ステップＳ３１０）。字句抽出部１４ｃは、ステップＳ３１０において入力されたゴールモデル情報から、各要素の属性を抽出する。具体的には、字句抽出部１４ｃは、ゴールモデル情報に含まれる各要素データから記述情報を読み出し、この記述情報に含まれる語句を抽出する（ステップＳ３２０）。例えば、図１のゴールモデルであれば、アクタの記述「医療事務員」、「医者」、「患者」、タスクの記述「カルテ」、「管理」などの語句が抽出される。
【００４９】
字句抽出部１４ｃは、抽出した語句の同義語を読み出すための検索式Ｋ１と、共通用語ＤＢ３０内に登録されているドメイン名のうち、当該ドメイン名に対応して記憶されている語句の中に、抽出した語句、検索式Ｋ１により取得した同義語が含まれている数が最も多いものを読み出すための検索式Ｋ２を生成する。制御部１４ｂは、字句抽出部１４ｃが生成した検索式Ｋ１及びＫ２をＤＢ入出力部１５へ出力し、ＤＢ入出力部１５が共通用語ＤＢ３０から得た検索式Ｋ２による検索結果を受信する。制御部１４ｂがＤＢ入出力部１５から受信した検索式Ｋ２の検索結果の情報を字句抽出部１４ｃへ出力する（ステップＳ３３０）。
【００５０】
例えば、図１のゴールモデルであれば、検索式Ｋ１により、抽出した語句「医療事務員」に対応した「医療スタッフ」という同義語が読み出される。続いて、検索式Ｋ２により、全てのドメインの中から、「医療事務員」、「医者」、「患者」、「管理」、「医療スタッフ」のいずれかが、対応する語句に最も多く含まれるドメインを検索し、その結果、「医者」、「患者」、「医療スタッフ」という３つの語句が対応づけられている「医療ドメイン」が、検索結果として得られる。
【００５１】
字句抽出部１４ｃは、入力された検索結果により示されるドメインに対応した攻撃者モデルデータを読み出すための検索式Ｋ３を生成する。制御部１４ｂは、字句抽出部１４ｃが生成した検索式Ｋ３をＤＢ入出力部１５へ出力し、ＤＢ入出力部１５が共通用語ＤＢ３０から得た検索式Ｋ３による検索結果を受信する。制御部１４ｂは、ＤＢ入出力部１５から受信した検索式Ｋ３の検索結果の情報を攻撃モデル生成部１４ｄへ出力する（ステップＳ３４０）。
【００５２】
攻撃モデル生成部１４ｄは、ステップＳ３４０において入力された検索式Ｋ３の検索結果により示される全ての攻撃者モデルデータの集合を攻撃者モデル候補群とする。そして、現在のゴールモデル情報と、攻撃者モデル候補群内の各攻撃者モデルデータとを参照して、冗長または重複する要素がある場合には、攻撃者モデルデータの示す攻撃者モデルの候補木を再構築するか、あるいは、攻撃者モデルデータ自体を削除する。攻撃モデル生成部１４ｄは、冗長または重複する要素がなく、攻撃モデルの修正を行わなかった攻撃者モデルデータ、あるいは、冗長または重複する要素があったため、攻撃モデルを再構築した攻撃者モデルデータをゴールモデル情報制御部１３に出力する（ステップＳ３５０、ステップＳ３６０：ＮＯ）。
【００５３】
ゴールモデル情報制御部１３は、入力された攻撃者モデルデータで示される攻撃者モデル候補を表示するようゴールモデル情報表示部１６へ指示する。なお、このとき、攻撃者モデルデータの各要素データで示されるアクタ領域に、当該要素データで示される要素が表示されるようにする。ゴールモデル情報制御部１３は、ゴールモデル情報表示部１６により表示されている攻撃者モデル候補の要／不要の情報の入力を受ける。そして、要が入力された攻撃者モデル候補の攻撃者モデルデータを、ゴールモデル情報としてゴールモデル情報記憶部１２に書き込む。攻撃モデル生成部１４ｄは、全ての攻撃者モデル候補群内に含まれる攻撃者モデルデータについて再構築が必要か否かを判断し終えたかを判断し、再構築が必要か否かの判定を全ての攻撃者モデルデータについて完了した場合、処理を終了する（ステップＳ３６０：ＹＥＳ）。
【００５４】
図１２は、図１１のステップＳ３５０において実行される攻撃者モデル候補の候補木再構築処理のフローチャートである。
攻撃モデル生成部１４ｄは、現在のゴールモデル内の各アクタに含まれる要素の全てについて、当該要素と同値の要素の要素データが、攻撃ＤＢ４０内に登録さているか否かの情報を読み出す（ステップＳ４１０）。具体的には、まず、ゴールモデル情報の要素のうち、同時成立不可要素と同値の要素を特定する。つまり、攻撃モデル生成部１４ｄは、ゴールモデル情報記憶部１２内に記憶されているゴールモデル情報内の各要素データから記述データを読み出す。そして、読み出した記述データの示す語句の類義語を検索するための検索式Ｋ４を生成する。制御部１４ｂは、攻撃モデル生成部１４ｄが生成した検索式Ｋ４をＤＢ入出力部１５に出力する。制御部１４ｂは、ＤＢ入出力部１５が、検索式Ｋ４により共通用語ＤＢ３０から取得した類義語検索結果の入力を受け、攻撃モデル生成部１４ｄへ出力する。
【００５５】
攻撃モデル生成部１４ｄは、類義語検索結果で示される類義語が記述データとして設定されている同時成立不可要素データを読み出すための検索式Ｋ５を生成する。制御部１４ｂは、攻撃モデル生成部１４ｄが生成した検索式Ｋ５をＤＢ入出力部１５に出力する。制御部１４ｂは、ＤＢ入出力部１５が、検索式Ｋ５により攻撃ＤＢ４０から取得した同時成立不可要素データの検索結果の入力を受け、攻撃モデル生成部１４ｄへ出力する。
このようにして、ゴールモデルに含まれている要素と同値の要素を示す同時成立不可要素データが得られると、当該同時成立不可要素データの同時成立矛盾、及び、同時成立重複から要素ＩＤを読み出し、内部のメモリに保存する。
【００５６】
なお、図１１において、ドメインに対応した攻撃者モデルデータを読み出すための検索式Ｋ３とともに、検索式Ｋ３により読み出された攻撃者モデルデータ内の同時成立矛盾、同時成立重複の情報で特定される同時成立不可要素データを読み出すための検索式Ｋ５’を攻撃ＤＢ４０に出力するようにしてもよい。この場合、攻撃モデル生成部１４ｄは、類義語検索結果で示される類義語が記述データに設定されている同時成立不可要素データを、検索式Ｋ５’の検索結果として得た同時成立不可要素データの中から特定すればよい。
【００５７】
図９を例にした場合、既に作成されているゴールモデルに、記述「タスクｔ１」のタスク（要素ＩＤ「Ｔ９９９」）があるとする。このとき、ゴールモデル情報に含まれる要素データからは、記述「タスクｔ１」が読み出され、共通用語ＤＢ３０からは、「タスクｔ１」の類義語「タスク１」を含んだ検索結果が読み出される。この類義語「タスク１」が記述に設定され、かつ、同じ要素種別「タスク」、アクタ領域「悪意のある医療スタッフ」である同時成立不可要素データ（要素ＩＤ「Ｔ１」）の要素が、「タスクｔ１」が記述に設定されたゴールモデルのタスク（要素ＩＤ「Ｔ９９９」）と同値であると判断される。この同値であると判断された同時成立不可要素データ（要素ＩＤ「Ｔ１」）から読み出された同時成立矛盾の要素ＩＤ「Ｇ３」が、攻撃モデル生成部１４ｄ内のメモリに保存される。
【００５８】
次に、攻撃モデル生成部１４ｄは、攻撃者モデルデータ内の要素データの中に、ステップＳ４１０においてメモリに保持した要素ＩＤにより特定されるものがあるか否かを判断する（ステップＳ４２０）。そして、メモリに保持した要素ＩＤにより特定される要素データがあった場合、当該要素データ内の上位関連情報から、該当するノードの上位関連を判断する（ステップＳ４３０）。
【００５９】
ステップＳ４３０において、上位関係が「なし」、または、「ＯＲ」であると判断した場合、当該要素が該当するノードの下位階層の全てのノード、および、自ノードを削除した形状の攻撃者モデルを表す攻撃者モデルデータを生成する（ステップＳ４４０）。具体的には、攻撃者モデルデータ内の要素データから、当該要素データを削除し、この削除した要素データ内の下位関連情報に要素ＩＤが記述されていた場合には、当該要素ＩＤにより特定される全ての要素データを削除し、さらに、この削除した要素データ内の下位関連情報に要素ＩＤが記述されていた場合には、当該要素ＩＤにより特定される全ての要素データを削除することを繰り返す。
【００６０】
一方、ステップＳ４３０において、上位関係が「ＡＮＤ」であると判断した場合、当該要素が該当するノードの親ノード、当該要素が該当するノードと同階層の全てのノード、当該要素が該当するノードの下位階層の全てのノード、および、自ノードを削除した形状の攻撃者モデルを表す攻撃者モデルデータを生成する（ステップＳ４５０）。具体的には、攻撃者モデルデータ内の要素データから、当該要素データを削除するとともに、この削除した要素データの上位関連情報に記述されている上位及び同階層の要素の要素ＩＤにより特定される要素データを全て削除する。さらに、この削除した要素データ内の下位関連情報に要素ＩＤが記述されていた場合には、当該要素ＩＤにより特定される全ての要素データを削除し、さらに、この削除した要素データ内の下位関連情報に要素ＩＤが記述されていた場合には、当該要素ＩＤにより特定される全ての要素データを削除することを、下位関連情報が「なし」となるまで繰り返す。
【００６１】
攻撃モデル生成部１４ｄは、ステップＳ４４０またはステップＳ４５０において再構築した攻撃者モデルを示す攻撃者モデルデータをゴールモデル情報制御部１３に出力する（ステップＳ４６０）。ゴールモデル情報制御部１３は、入力した攻撃者モデルデータにより示される、攻撃者モデルを候補としてゴールモデル情報表示部１６に表示させる。
【００６２】
なお、攻撃者モデルデータの選択が終了した後、再び、ゴールモデルが編集されてノードが追加された場合、そのノードが追加されたタイミング、あるいは、ノード追加後に、攻撃者モデルデータ更新指示が入力されたタイミングで、新たに追加されたノードの要素データについて、再び、図１２のステップＳ４１０と同様の手順により、同値の同時成立不可要素データを特定する。そして、ゴールモデル情報記憶部１２内に記憶されている、すなわち、ユーザに一旦選択された攻撃者モデルデータについて、図１１と同様の手順により、新たに追加されたノードの要素と同値の要素を示す同時成立不可要素データとの同時成立性を確認する。そして、同時成立しない要素を削除したときに悪意ゴールが達成されない場合には、当該攻撃者モデルデータをゴールモデル情報記憶部１２から削除するとともに、ゴールモデル情報表示部１６が表示するゴールモデルから当該攻撃者モデルデータの表示を消去する。また、同時成立しない要素を削除したときにも悪意ゴールが達成される場合は、当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除して再構築を行った攻撃者モデルのデータを作成して、ゴールモデル情報記憶部１２内の現在の攻撃者モデルデータと置き換えるとともに、ゴールモデル情報表示部１６に、置き換え前の攻撃者モデルデータに基づいて表示されている現在の攻撃モデルの表示を、置き換え後の攻撃者モデルデータの示す新たなゴールモデルの表示に変更するよう指示することにより、削除した要素の表示を消去する。これにより、新たに追加されたノードについても、矛盾、冗長な攻撃者モデルデータの要素を削除することができる。
【００６３】
上記実施の形態によれば、セキュリティ要求分析において、考慮を忘れやすい攻撃を発見できる可能性が高まるという効果がある。また、その際、不必要な分析は除去されるため、分析効率が高まる。また、ゴールモデルの作成過程で、要素の重複や矛盾を検証することもできる。これらの結果、セキュリティに関する要求分析の信頼性（網羅性や妥当性)が高まり、初心者であっても、容易にセキュリティ要求分析を行うことを支援することができる。また、処理コストを低減することも可能である。
【００６４】
なお、上述のセキュリティ要求分析支援装置１０、外部記憶装置２０、共通用語ＤＢ３０、攻撃ＤＢ４０は、内部にコンピュータシステムを有している。そして、セキュリティ要求分析支援装置１０の、外部記憶装置２０、共通用語ＤＢ３０、攻撃ＤＢ４０の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、ＣＰＵ及び各種メモリやＯＳ、周辺機器等のハードウェアを含むものである。
【００６５】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【図面の簡単な説明】
【００６６】
【図１】本発明の一実施の形態によるセキュリティ要求分析支援装置の動作概要を説明するための図である。
【図２】同実施の形態によるセキュリティ要求分析支援装置における攻撃者モデル再構築の処理概要を説明するための図である。
【図３】同実施の形態によるセキュリティ要求分析支援装置の機能ブロック図である。
【図４】同実施の形態によるセキュリティ要求分析支援装置の攻撃者モデル情報生成部内の機能ブロック図を示す。
【図５】同実施の形態による外部記憶装置に記憶される情報を示す図である。
【図６】同実施の形態によるゴールモデルファイルを示す図である。
【図７】同実施の形態による共通用語ＤＢが保持する情報を示す図である。
【図８】同実施の形態による攻撃ＤＢが保持する情報を示す図である。
【図９】同実施の形態による攻撃者モデルデータに含まれる要素データと、同時成立が矛盾する要素データの例を示す図である。
【図１０】同実施の形態によるセキュリティ要求分析支援装置における処理概要を示すフローチャートである。
【図１１】同実施の形態によるセキュリティ要求分析支援装置内の攻撃者モデル情報生成部における処理のフローチャートである。
【図１２】同実施の形態によるセキュリティ要求分析支援装置内の攻撃者モデル情報生成部における候補木再構築処理のフローチャートである。
【図１３】従来技術のゴール指向要求分析を用いたゴールモデルの分析例を示す。
【図１４】従来技術によって拡張されたプロセスを示す図である。
【図１５】図１４に示すプロセスによって生成されたゴールモデルの例を示す。
【図１６】図１４に示すプロセスによって生成されたゴールモデルの例を示す。
【図１７】ゴールモデルに冗長な要素が含まれている場合の例を示す図である。
【符号の説明】
【００６７】
１０…セキュリティ要求分析支援装置
１１…ゴールモデルファイル入出力部
１２…ゴールモデル情報記憶部
１３…ゴールモデル情報制御部
１４…攻撃者モデル情報生成部
１４ａ…ゴールモデル情報入出力部
１４ｂ…制御部
１４ｃ…字句抽出部
１４ｄ…攻撃モデル生成部
１５…ＤＢ入出力部
１６…ゴールモデル情報表示部
２０…外部記憶装置
３０…共通用語ＤＢ
４０…攻撃ＤＢ
５０…入力装置
【図１】
2008250680.tif 000003
【図２】
2008250680.tif 000004
【図３】
2008250680.tif 000005
【図４】
2008250680.tif 000006
【図５】
2008250680.tif 000007
【図６】
2008250680.tif 000008
【図７】
2008250680.tif 000009
【図８】
2008250680.tif 000010
【図９】
2008250680.tif 000011
【図１０】
2008250680.tif 000012
【図１１】
2008250680.tif 000013
【図１２】
2008250680.tif 000014
【図１３】
2008250680.tif 000015
【図１４】
2008250680.tif 000016
【図１５】
2008250680.tif 000017
【図１６】
2008250680.tif 000018
【図１７】
2008250680.tif 000019