セキュリティ要求分析支援装置及びコンピュータプログラム
【課題】セキュリティを考慮したシステム要求定義を作成する際に、非熟練者であっても、熟練者と同等のレベルのセキュリティ分析を効率的に、かつ低コストで行えるよう支援する。
【解決手段】共通用語DB内に、ドメインと関連する語句とを対応付けた情報と、ドメインに関連する語句の同義語の情報とを保持しておき、ゴールモデルのノードである各要素に含まれる語句、あるいは、その語句の同義語が含まれる数が最も多いドメインを、ゴールモデルの属するドメインであると類推する。そして、攻撃DBから、類推されたドメインに対応する攻撃者モデルを読み出すと、現在作成しているゴールモデル内にすでに記述されているタスクを参照して、不要な攻撃者モデル候補を削除するとともに、攻撃者モデル候補から不要なモデル部分を削除した攻撃者モデル候補を作成して表示し、必要であるか否かをユーザに選択させる。
【解決手段】共通用語DB内に、ドメインと関連する語句とを対応付けた情報と、ドメインに関連する語句の同義語の情報とを保持しておき、ゴールモデルのノードである各要素に含まれる語句、あるいは、その語句の同義語が含まれる数が最も多いドメインを、ゴールモデルの属するドメインであると類推する。そして、攻撃DBから、類推されたドメインに対応する攻撃者モデルを読み出すと、現在作成しているゴールモデル内にすでに記述されているタスクを参照して、不要な攻撃者モデル候補を削除するとともに、攻撃者モデル候補から不要なモデル部分を削除した攻撃者モデル候補を作成して表示し、必要であるか否かをユーザに選択させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュリティ要求分析支援装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
コンピュータシステムの開発工程は、要件定義、設計、製造、試験という流れが一般的である。開発工程において、手戻りを極力なくしてスムーズに開発を進め、かつ、システムの品質を上げるためには、要件定義を明確に規定することが効果的である。開発対象システムの要件定義、すなわち、開発対象システムに要求される機能を分析するために用いられる従来の手法の1つにゴール指向要求分析があり、その代表的な分析手法としてi*(アイ・スター)がある。
【0003】
図13は、i*による分析例を示す。i*では、ゴールの達成などに関心・責任を持つ実体である「アクタ」(モデルでは、アクタの責任範囲を、円形のアクタ境界で示す)、達成されたかどうかが明確なゴールである「ハードゴール」、達成されたかどうかを明確にできない「ソフトゴール」(一般に、0から1までの達成度を持つ)、ゴールを達成するための手順である「タスク」、ゴールの達成やタスク実行のために使用する物理的実体、または情報である「リソース」などの要素をノードとし、これらのノード間の依存関係を図として記述することにより要求を可視可する。これにより、ステークホルダ間の利害関係や依存関係を全体的に俯瞰しながら要求される機能を分析することができ、従って、人間が理解しやすく、効率的な分析を可能としている。
【0004】
近年、このi*において、セキュリティに関する要求を分析するように拡張された手法が提案されている(例えば、非特許文献1参照)。非特許文献1に記載の手法では、考慮すべき通常のステークホルダに加えて、攻撃者となるステークホルダを考慮し、攻撃者の悪意ある目的を抽出して、それらの目的の達成を不可能にするかまたは軽減させるための目的やタスクを通常のステークホルダに追加する。これにより、セキュリティを考慮した要求分析を行うことができる。
【0005】
図14は、通常のi*のプロセスと、非特許文献1によって拡張されたプロセスを示す図であり、図15及び図16は、この非特許文献1により拡張されたプロセスによって生成されたゴールモデルの一例である。図14に示すように、通常のi*のプロセスでは、まずアクタを特定することから始める(ステップS910)。そして、特定したアクタ間の依存関係を分析して戦略依存モデルを作成した後(ステップS912)、ゴール及びタスクを特定する(ステップS914)。続いて、アクタ内の依存関係を分析してゴールを比較評価することによって戦略原理モデルを作成し(ステップS916)、さらに、ノード間の依存関係を特定する(ステップS918)。このS912〜S918の過程を、部分的または全体的に適宜繰り返してゴールモデルを作成する。
【0006】
拡張プロセスにおいては、攻撃者を特定し、攻撃者モデルを生成する(ステップS920、S922)。ここでは、攻撃者をアクタとして特定するが、ドメインモデルの全アクタを、潜在的攻撃者(例えば、悪意のあるユーザ、悪意を持って改造された装置)とみなす。この攻撃者は、対応するドメインモデルのアクタと同じゴール、タスク及びリソースを持つものである。
つぎに、アクタの悪意を特定し、悪意モデルを生成する(ステップS924、S926)。つまり、ドメインモデルの要素に加えて、攻撃者のゴールとして悪意を特定する。
続いて、脆弱性を分析して、脆弱性モデルを生成する(ステップS928、S930)。脆弱性の分析においては、攻撃の影響を受ける可能性がある要素を特定するが、悪意のゴールやタスクから負の貢献関係を受ける要素、悪意のゴールやタスクに依存する要素は脆弱であるとする。
【0007】
図15にも示すように、攻撃者を特定し、その攻撃者の悪意を特定して悪意モデルを生成し、その悪意から発生する攻撃を受ける可能性から脆弱性モデルを生成した後、その脆弱性を突く攻撃方法を特定して、攻撃方法モデルを作成する(ステップS932、S934)。つまり、攻撃方法を、悪意を達成する手段であるタスクとして特定する。また、ドメインモデル(通常のi*モデル)の要素を利用(「悪用」)してもよい。
【0008】
攻撃方法のモデルが作成されると、図16に示すように、その攻撃に対する対策を特定して、対策モデルを生成する(ステップS936、S938)。つまり、元のドメインモデルに戻り、特定した各攻撃方法に対し、「その攻撃に対抗したい」というソフトゴールを設定する。あるいは、さらに詳しく、「攻撃を回避したい」、あるいは「攻撃を検出したい」といったゴールを設定した方が好ましい。そして、これらのソフトゴールに正の貢献関係を持つタスクとして、対策を特定する。
【0009】
また、一方、新たな仕様書を作成する際に、既存仕様書事例を格納した事前データベースを利用し、編集作業全体の効率化を図ることのできるセキュリティ設計支援装置がある(例えば、特許文献1参照)。
【特許文献1】特開2004−220459号公報
【非特許文献1】Liu他,“Security and Privacy Requirements Analysis within a Social Setting”,11th IEEE International Conference on Requirements Engineering (RE’03),2003年,pp.151-161
【発明の開示】
【発明が解決しようとする課題】
【0010】
非特許文献1には、セキュリティに関する要求を分析するよう拡張された手法について開示されているが、これは、人為的な分析手順を示しているに過ぎない。よって、分析の結果の信頼性(網羅性や妥当性)は、分析者が、分析対象となるドメインにおいて考慮すべき攻撃者(ステップS920)、悪意(ステップS924)、攻撃方法(ステップS932)を漏れなく発見できるかどうかに依存する(図15)。しかし、それらを漏れなく発見できるかどうかは、分析者のセキュリティに関する知識、対象ドメインに関する知識、分析の熟練度等に依存する。従って、これらの知識や経験を持たない分析者には、この手法を効果的に活用し、精度の高い分析を実施することは困難であった。そのため、セキュリティ要求分析の非熟練者であっても、熟練者に近い高精度な分析を行えるようにすることが求められている。
【0011】
また、ゴールモデルの作成過程で、要素(ゴール、タスク、資源)の重複や矛盾が発生する可能性がある。図17は、冗長な要素が含まれている場合の例を示す図である。同図において、悪意ゴールG1は、サブゴールSG1及びSG2の両者が成り立つときに達成される。しかし、サブゴールSG2「操作ログを消す」を不可能ならしめるタスクT1「消去不能なログをとる」がすでにゴールモデルに存在しているため、サブゴールSG2は達成されない。悪意ゴールG1は、サブゴールSG1及びSG2のAND条件により成り立っており、サブゴールSG1が達成されないとその上位のゴールG1も達成されないため、この部分全体の分析が不要となる。従来は、分析図の作成中に、このような要素の重複や矛盾を自動で検証する手段がないため、人間の目視により確認する必要があった。これは、コストが大きく、モデルが複雑になればなるほど見逃される可能性も大きかった。
【0012】
そこで、特許文献1では、属性の包含関係を基にして要件定義の重複・矛盾を類推している。この技術により、重複を類推する場合の例について説明する。例えば、「脅威A:特権ユーザが重要データを改ざんする(属性:<攻撃者・要因>管理者、<保護対象資産>情報、<脅威種別・攻撃方法>全ての改ざん)」、「脅威B:管理者権限を持つ外部委託業者が重要顧客情報を改ざんする(属性:<攻撃者・要因>外部委託管理者、<保護対象資産>顧客情報、<脅威種別・攻撃方法>全ての改ざん)」があったとする。また、管理者には、外部委託管理者と内部管理者が包含されることが定義されているものとする。この場合、<攻撃者・要因>で示される関与者、<保護対象資産>で示される情報資産の両属性において、脅威Aと脅威Bは階層(包含)関係にあり(管理者⊃外部委託管理者、情報⊃顧客情報)、<脅威種別・攻撃方法>で示される攻撃方法属性が一致することから、脅威Aと脅威Bが重複する可能性があると判断する。
【0013】
また、矛盾を類推する場合の例について説明する。例えば、「前提条件A:システム管理者は特権の悪用をしないものとする。(属性:<攻撃者・要因>管理者、<保護対象資産>全て、<脅威種別・攻撃方法>全て)」、「脅威B:管理者権限を持つ外部委託業者が重要顧客情報を改ざんする。(属性:<攻撃者・要因>外部委託管理者、<保護対象資産>顧客情報、<脅威種別・攻撃方法>全ての改ざん)」があったとする。また、管理者として、外部委託管理者と内部管理者が包含されることが定義されているものとする。この場合、<攻撃者・要因>で示される関与者属性において、前提条件Aと脅威Bが階層(包含)関係にあることから、前提条件Aと脅威Bが矛盾する可能性があると類推する。
【0014】
このように、特許文献1の技術においては、要件にいくつかの属性を付与して管理し、属性の包含関係を基にして重複・矛盾を類推しているが、全ての脅威・要件等の要素間を比較しなければならないため、処理コストが高いという問題がある。例えば、n個の要素の場合、(n−1)2回の比較を行わなければならない。また、集合の包含関係という単純な判断基準しか持たないため、類推結果の信頼性が低いという問題がある。
【0015】
本発明は、このような事情に鑑みてなされたものであり、セキュリティを考慮したシステム要件定義を分析する際に、非熟練者であっても、熟練者と同等のレベルのセキュリティ分析を効率的に、かつ低コストで行えるよう支援することのできるセキュリティ要求分析支援装置及びコンピュータプログラムを提供することをその目的とする。
【課題を解決するための手段】
【0016】
上記課題を解決するために、本発明は、開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち1以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置であって、ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部と、悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベースと、前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部と、前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部と、前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部と、を備えることを特徴とするセキュリティ要求分析支援装置である。
【0017】
また、本発明は、上述するセキュリティ要求分析支援装置であって、ドメインに対応する語句、及び、当該語句の類似語の情報を記憶する共通用語データベースをさらに備え、前記ゴールモデルデータ内の要素の情報は、要素の説明を示す記述の情報を含み、前記攻撃者モデル情報生成部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の情報から、当該要素の記述に使用されている語句を抽出し、前記データベース入出力部は、前記ゴールモデルが属するドメインとして、前記攻撃者モデル情報生成部により抽出された語句、及び、当該抽出された語句の類似語が対応付けられているドメインを前記共通用語データベースから読み出す、ことを特徴とする。
【0018】
また、本発明は、上述するセキュリティ要求分析支援装置であって、前記攻撃データベースは、攻撃者モデルに含まれる要素と同時成立しない要素の説明を示す記述の情報を少なくとも含む同時成立不可要素データをさらに記憶し、前記攻撃者モデルに含まれる要素と同時成立しない要素の記述に含まれる語句の同義語を記憶する共通用語データベースをさらに備え、前記データベース入出力部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の記述に使用されている語句の同義語の情報を前記共通用語データベースから読み出すとともに、前記同時成立不可要素データを前記攻撃データベースから読み出し、前記攻撃者モデル情報生成部は、前記データベース入出力部が読み出した同義語の情報と同時成立不可要素データの入力を受け、当該同時成立不可要素データのうち、前記同義語が記述に含まれる同時成立不可要素データを特定し、前記攻撃者モデル候補群の中から、この特定した同時成立不可要素により示される同時成立しない要素のデータが含まれている攻撃者モデルデータを、前記ゴールモデルデータにより示される要素とは同時に成立しない要素が含まれている攻撃者モデルデータであると判断する、ことを特徴とする。
【0019】
また、本発明は、上述するセキュリティ要求分析支援装置であって、前記ゴールモデル情報記憶部は、前記ゴールモデル情報制御部により出力が指示された攻撃者モデルデータの中から、ユーザにより選択された攻撃者モデルデータの情報を記憶し、前記攻撃者モデル情報生成部は、前記ゴールモデルに要素が追加された場合、前記ゴールモデル情報記憶部内に記憶されている前記攻撃者モデルデータの示す同時成立しない要素の情報に基づいて、新たに追加された要素と同時成立しない要素のデータが含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、悪意ゴールが達成されない場合には、当該攻撃者モデルデータを前記ゴールモデル情報記憶部から削除し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、特定した攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更し、前記ゴールモデル情報制御部は、前記攻撃者モデル情報生成部により削除された攻撃者モデルデータの示す攻撃者モデルを表示から消去するとともに、変更前の攻撃者モデルの表示を変更された前記攻撃者モデルデータの示す新たな攻撃者モデルの表示に変更するよう指示する、ことを特徴とする。
【0020】
また、本発明は、開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち1以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置として用いられるコンピュータを、ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部、悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベース、前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部、前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部、前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部、として機能させることを特徴とするコンピュータプログラムである。
【発明の効果】
【0021】
本発明によれば、セキュリティ要求分析において、考慮を忘れやすい攻撃を発見できる可能性が高まるという効果がある。また、その際、不必要な分析は除去されるため、分析効率が高まる。また、ゴールモデルの作成過程で、要素の重複や矛盾を検証することもできる。これらの結果、セキュリティに関する要求分析の信頼性(網羅性や妥当性)が高まり、初心者であっても、容易にセキュリティ要求分析を行うことを支援することができる。また、ゴールモデルを構成する全ての要素の組み合わせについて比較を行う必要がないため、処理コストを低減することも可能である。
【発明を実施するための最良の形態】
【0022】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
図1は、本発明の一実施の形態によるセキュリティ要求分析支援装置10の動作概要について説明するための図である。
まず、セキュリティ要求分析支援装置10は、分析者の作成したゴール指向要求分析の分析図、すなわち、ゴールモデルに使用されている語句と、その語句とドメインの関係を解析して、現在分析している対象のドメインを推定する。つまり、共通用語データベース30(以下、データベースを「DB」と記載)内に、ドメインと当該ドメインに関連する語句とを対応付けた情報と、ドメインに関連する語句の同義語の情報とを保持しておく。そして、ゴールモデルのノードである各要素に含まれる語句、及び、その語句の同義語が含まれる数が最も多いドメインを、現在作成中のゴールモデルが属するドメインであると類推する。
【0023】
次に、セキュリティ要求分析支援装置10は、ドメインごとに想定される攻撃者・悪意ゴール・脆弱性・攻撃手法に関する情報を蓄積した攻撃DB40から、類推されたドメインに対応する攻撃者モデルを読み出して、これを攻撃者モデル候補とする。また、これらの攻撃者モデル候補を全て合わせて攻撃者モデル候補群とする。セキュリティ要求分析支援装置10は、現在作成しているゴールモデル内にすでに記述されているタスクを参照して、矛盾や重複のため、不要な攻撃者モデル候補を削除するとともに、攻撃者モデル候補から不要なモデル部分を削除した、新たな攻撃者モデル候補を作成して、現在の攻撃者モデル候補と置き換え、新たな攻撃者モデル候補群を作成する。セキュリティ要求分析支援装置10は、新たに作成した攻撃者モデル候補群に含まれる攻撃者モデル候補をゴールモデル上に表示し、これらの表示した攻撃者モデル候補が必要であるか否かをユーザに選択させる。ユーザは、候補から選択した攻撃者モデルの悪意ゴールが達成されないように要素を追加し、セキュリティに関するゴールモデルを作成する。
【0024】
図2は、図1の動作概要において、セキュリティ要求分析支援装置10が攻撃者モデル候補群から、不要な攻撃者モデル候補を削除するとともに、攻撃者モデル候補における不要な部分の削除を行って新たな攻撃者モデル候補を作成し、ユーザに表示するときの処理概要について説明するための図である。セキュリティ要求分析支援装置10は、以下に示す(手順1)〜(手順6)のように動作する。
【0025】
(手順1)まず、セキュリティ要求分析支援装置10は、攻撃DB40から、推定されたドメインに対応した攻撃者モデル(悪意ゴール木)の集合を全て読み出す。そして、読み出した攻撃者モデルを攻撃者モデル候補とし、これらの攻撃者モデル候補の集合である攻撃者モデル候補群を生成する。
(手順2)セキュリティ要求分析支援装置10は、(手順1)において生成した攻撃者モデル候補群から、未選択の攻撃者モデル候補を選択する。
(手順3)セキュリティ要求分析支援装置10は、(手順2)において選択した攻撃者モデルが、現在のゴールモデル内にある要素と重複や矛盾があるか判断する。
(手順4)(手順3)において、重複や矛盾があると判断した場合、攻撃者モデル候補を構成する悪意ゴール木におけるAND/ORの関係を考慮して、削除可能な要素を最大限に削除して新しい悪意ゴール木を作成し、新たな攻撃者モデル候補とする。
【0026】
例えば、図2において、攻撃者モデル候補に含まれる悪意ゴールG1は、サブゴールSG1及びSG2のAND、つまり、サブゴールSG1及びSG2の両者が成り立つときに達成される。ここで、サブゴールSG2を不可能ならしめるタスクT1がすでに現在のゴールモデル内に存在している場合、サブゴールSG2は達成されない。悪意ゴールG1は、サブゴールSG1及びSG2のAND条件により成り立っており、サブゴールSG1が達成されないとその上位のゴールG1も達成されないため、この攻撃者モデル候補自体が不要となる。
あるいは、攻撃者モデル候補の悪意ゴールG1が、サブゴールSG1とSG2のOR、つまり、サブゴールSG1またはSG2のどちらかが成り立つときに達成されるとする。ここで、サブゴールSG2を不可能ならしめるタスクT1がすでに現在のゴールモデル内に存在しているため、サブゴールSG2は達成されない。このときは、サブゴールSG2のみを削除した悪意ゴール木が新たな攻撃者モデル候補として生成される。
【0027】
(手順5)セキュリティ要求分析支援装置10は、(手順4)にて作成した新たな攻撃者モデル候補をゴールモデル内に表示し、ユーザに必要か否かを選択させる。なお、悪意ゴール木自体が削除となった攻撃者モデル候補の場合には、何も表示せずに(手順6)へ進む。
(手順6)攻撃者モデル候補群内の全ての攻撃者モデル候補について(手順3)〜(手順5)を行った場合には処理を終了し、まだ(手順3)〜(手順5)を行っていない攻撃者モデル候補がある場合には、ふたたび(手順2)からの処理を行う。
【0028】
図3は、同実施の形態によるセキュリティ要求分析支援装置10の機能ブロック図である。
同図において、セキュリティ要求分析支援装置10は、外部環境に設置された外部記憶装置20、共通用語DB30、攻撃DB40と接続される。外部記憶装置20、共通用語DB30、攻撃DB40は、例えば、ぞれぞれ、1または複数のサーバなどで構成することができる。外部記憶装置20は、ゴール指向要求分析により作成されたゴールモデルのデータを記述したゴールモデルファイルを保存する。共通用語DB30は、特定ドメインにおける定型語彙や、当該定型語彙の同義語、類義語などの情報を蓄積する。攻撃DB40は、ドメイン毎の攻撃者の典型的な攻撃パターンの悪意ゴール木、すなわち、攻撃者モデルを示す攻撃者モデルデータを保存する。
【0029】
セキュリティ要求分析支援装置10は、ゴールモデルファイル入出力部11、ゴールモデル情報記憶部12、ゴールモデル情報制御部13、攻撃者モデル情報生成部14、DB入出力部15、ゴールモデル情報表示部16からなり、入力装置50を備える。
【0030】
ゴールモデルファイル入出力部11は、外部記憶装置20に対し、ゴールモデルファイルの入出力を行う。ゴールモデル情報記憶部12は、ゴールモデルファイル入出力部11から入力したゴールモデルファイルであるゴールモデル情報を記憶するとともに、ゴールモデル情報制御部13により生成・編集したゴールモデル情報を記憶する。ゴールモデル情報制御部13は、ゴールモデル情報記憶部12内に記憶されているゴールモデル情報の読み込み、更新、および削除を行うとともに、攻撃者モデル情報生成部14と通信し、攻撃者モデルデータの入出力を行う。
【0031】
攻撃者モデル情報生成部14は、ゴールモデル情報制御部13からゴールモデル情報の入力を受け、当該ゴールモデルを構成するノードの定義データに基づいてDB検索式を作成し、DB入出力部15へ出力するとともに、DB入出力部15から返送された結果を入力する。攻撃者モデル情報生成部14は、DB入出力部15から検索結果として返送された攻撃者モデルからなる攻撃者モデル候補群について、現在のゴールモデルとの矛盾・重複検証処理を行い、新たな攻撃者モデル候補群を生成してゴールモデル情報制御部13へ出力する。
【0032】
DB入出力部15は、攻撃者モデル情報生成部14からDB検索式の入力を受けて共通用語DB30または攻撃DB40へ当該DB検索式を出力し、返送された検索結果の入力を受け、攻撃者モデル情報生成部14へ当該検索結果を出力する。ゴールモデル情報表示部16は、ゴールモデルや攻撃者モデルを外部の表示装置(ディスプレイなど)に表示する。また、入力装置50は、キーボードやマウスの操作などによりユーザから入力された情報をゴールモデル情報制御部13へ出力する。
【0033】
図4は、図3に示す攻撃者モデル情報生成部14内の機能ブロック図を示す。
攻撃者モデル情報生成部14は、ゴールモデル情報入出力部14a、制御部14b、字句抽出部14c、攻撃モデル生成部14dを備える。
【0034】
制御部14bは、ゴールモデル情報入出力部14a、字句抽出部14c、攻撃モデル生成部14d、およびDB入出力部15とのデータの入出力の流れを制御する。ゴールモデル情報入出力部14aは、ゴールモデル情報制御部13から、ゴールモデル情報の入力を受けるとともに、攻撃モデル生成部14dにおいて生成された攻撃者モデル候補を制御部14bから読み込み、ゴールモデル情報制御部13へ出力する。字句抽出部14cは、制御部14bからゴールモデル情報の入力を受け、各要素(アクタ、ゴール、タスクなど)の名称を抽出するとともに、共通用語DB30への検索式を生成し、制御部14bへ出力する。攻撃モデル生成部14dは、制御部14bから現状のゴールモデル情報を入力し、それに対応した攻撃者モデルのデータをDB入出力部15から読み込む。また、攻撃モデル生成部14dは、現状のゴールモデルの情報と、攻撃者モデル候補の攻撃者モデルデータとを入力し、AND/OR関係を考慮して新たな候補木(新たな攻撃者モデル候補)に再構築する。
【0035】
図5は、外部記憶装置20に記憶される情報を示す図である。
外部記憶装置20は、ゴールモデルファイルを記憶する。ゴールモデルファイルには、ゴールモデルのノードを構成する各要素の情報を示す要素データが含まれる。要素データには、要素を一意に特定する要素ID、当該要素がアクタ/ゴール/ソフトゴール/タスク/資源などのうちいずれであるかを示す要素種別、当該要素の名称などの説明を示す記述、アクタ領域、上位の要素を示す上位関連、下位の要素を示す下位関連、同時成立することが矛盾、あるいは、重複する要素などの情報が含まれる。同時成立することが矛盾、あるいは、重複する要素は、要素IDにより示すことができるが、本情報は設定されていなくともよい。
【0036】
同図に示すゴールモデルの場合、外部記憶装置20は、複数のゴールモデルファイルを記憶しており、ゴールモデルファイルには、アクタ、ゴール、ソフトゴール、タスク、資源の要素データが含まれる。アクタの要素データには、アクタ名称「医療スタッフ」が設定されている。ゴールの要素データには、要素ID「ゴール1」、要素種別「ゴール」、記述「カルテの管理を容易にする」、下位関連「ゴール2とゴール3のAND」が設定されているもの、要素ID「ゴール2」、要素種別「ゴール」、記述「高速に検索する」、上位関連「ゴール1(ゴール2とゴール3のAND)」、下位関連「タスク1」が設定されているもの、要素ID「ゴール3」、要素種別「ゴール」、記述「高速に検索する」、上位関連「ゴール1(ゴール2とゴール3のAND)」、下位関連「タスク1」が設定されているものがある。タスクの要素データには、要素ID「タスク1」、要素種別「タスク」、記述「電子的に管理する」、上位関連「ゴール2、ゴール3、ソフトゴール」、下位関連「資源1、資源2」が設定されているものがある。ソフトゴールの要素データには、要素ID「ソフトゴール1」、要素種別「ソフトゴール」、記述「情報を漏洩しない」、下位関連「タスク1」が設定されているものがある。資源の要素データには、要素ID「資源1」、要素種別「資源」、記述「端末」、上位関連「タスク1」が設定されているもの、要素ID「資源2」、要素種別「資源」、記述「DB」、上位関連「タスク1」が設定されているものがある。
【0037】
図6は、セキュリティ要求分析支援装置10のゴールモデル情報記憶部12に記憶され、ゴールモデルファイル入出力部11によって外部記憶装置20へ出力されるゴールモデルファイルを示す図である。同図において、ゴールモデル情報記憶部12は、現在作業中のゴールモデルファイルを一時的に保持している。ここで保持されるゴールモデルファイルは、外部記憶装置20に記憶されるゴールモデルファイルと同じデータ構成である。
【0038】
図7は、共通用語DB30が保持する情報を示す図である。
同図において、共通用語DB30は、ドメイン名称と、当該ドメイン名称に対応する語句(語句名称)とを対応付けて記憶している。さらに、共通用語DB30は、同義の複数の語句を対応付けた情報を示す同義語データ、類似の意味を有する複数の語句を対応付けた情報を示す類義語データを記憶している。例えば、共通用語DB30には、ドメイン名称「医療ドメイン」には、語句名称「医者、患者、医療事務員、…」とが対応付けられて記憶される。また、同義語データには、「医療事務員=医療スタッフ、…」などの情報が含まれる。
【0039】
図8は、攻撃DB40が保持する情報を示す図である。
同図において、攻撃DB40は、ドメイン名称と、攻撃者モデルデータとを対応付けた情報を記憶する。攻撃者モデルデータには、攻撃者モデルデータを識別する攻撃ID、及び、攻撃者の名称の情報と、攻撃者のゴールである悪意ゴール(攻撃者要素)の要素データ、及び、ソフトゴール(攻撃者ソフトゴール)、タスク(攻撃者タスク)、資源(攻撃者資源)などのうち1以上の要素の要素データとが含まれる。さらに、攻撃DB40は、攻撃者モデルデータ内の要素データにより示される要素とは同時に成立することが矛盾、あるいは、重複する要素の要素データである同時成立不可要素データを保持する。
【0040】
図9は、攻撃者モデルデータに含まれる要素データと、同時成立が矛盾する要素データの具体例を示す。
同図に示す、攻撃者モデルの候補は、悪意ゴール「ゴール1」が、サブゴール「ゴール2」と「ゴール3」のANDに依存しており、サブゴール「ゴール3」は、サブゴール「ゴール4」と「ゴール5」のORに依存するものとする。また、サブゴール「ゴール3」は、タスク「タスク1」とは矛盾するため同時に存在できないものとする。
【0041】
このとき、悪意ゴールである「ゴール1」の要素データには、要素ID「G1」、要素種別「ゴール」、記述「ゴール1」、アクタ領域「悪意のある医療スタッフ」、上位関連「なし」、下位関連「ゴール1=AND(ゴール2,ゴール3)」、同時成立矛盾「なし」、同時成立重複「なし」が設定される。また、悪意ゴールのサブゴールである「ゴール3」の要素データには、要素ID「G3」、要素種別「ゴール」、記述「ゴール3」、アクタ領域「悪意のある医療スタッフ」、上位関連「ゴール1=AND(ゴール2,ゴール3)」、下位関連「ゴール3=OR(ゴール4,ゴール5)」、同時成立矛盾「T1」、同時成立重複「なし」が設定される。なお、「ゴール1=AND(ゴール2,ゴール3)」は、ゴール1が、ゴール2及びゴール3の両方が達成されたときに達成されることを、「ゴール3=OR(ゴール4,ゴール5)」は、ゴール3が、ゴール4またはゴール5のいずれかが達成されたときに達成されることを示す。
【0042】
また、「ゴール3」の要素データに、同時成立矛盾するとして記述される要素ID「T1」により特定されるタスク1の同時成立不可要素データには、要素ID「T1」、要素種別「タスク」、記述「タスク1」、アクタ領域「悪意のある医療スタッフ」、上位関連「なし」、下位関連「なし」、同時成立矛盾「G3」、同時成立重複「なし」が設定されている。
さらに、同図においては、タスク1と実質的に同値の要素であるタスクt1が分析者により生成されたゴールモデルに含まれているものとする。ゴールモデル情報内のタスクt1の要素データには、要素ID「T999」、要素種別「タスク」、記述「タスクt1」、アクタ領域「悪意のある医療スタッフ」、上位関連「なし」、下位関連「なし」、同時成立矛盾「なし」、同時成立重複「なし」が設定されている。
【0043】
次に、セキュリティ要求分析支援装置10の動作について説明する。
図10は、セキュリティ要求分析支援装置10の処理概要を示すフローチャートである。
まず、セキュリティ要求分析支援装置10のゴールモデルファイル入出力部11は、外部記憶装置20から編集対象のゴールモデルファイルを読み込む(ステップS110)。この編集対象のゴールモデルファイルは、例えば、入力装置50により入力されたファイル名により特定される。ゴールモデル情報記憶部12は、ゴールモデルファイル入出力部11が外部記憶装置20から読み出したゴールモデルファイルを、ゴールモデル情報として格納する(ステップS120)。
【0044】
続いて、攻撃者モデル情報生成部14が、ゴールモデル情報制御部13を介してゴールモデル情報記憶部12からゴールモデル情報の入力を受ける(ステップS130)。攻撃者モデル情報生成部14は、ゴールモデル情報内の各要素データの記述に含まれる用語から、ドメインを検索するための検索式を生成してDB入出力部15へ出力する(ステップS140)。DB入出力部15は、入力された当該検索式により共通用語DB30を検索した結果の入力を受ける(ステップS150)。攻撃者モデル情報生成部14は、DB入出力部15から、ステップS150におけるドメイン検索結果の入力を受ける。
【0045】
続いて、ゴールモデル情報記憶部12は、ステップS150において受信した結果から、攻撃者モデル候補となる攻撃者モデルデータを検索するための検索式を生成してDB入出力部15へ出力する(ステップS160)。DB入出力部15は、入力された当該検索式により攻撃DB40を検索した結果を受信する(ステップS170)。攻撃者モデル情報生成部14は、DB入出力部15から、ステップS180における攻撃者モデル検索結果の入力を受ける。
【0046】
攻撃者モデル情報生成部14は、DB入出力部15から攻撃者モデルデータの検索結果の入力を受けると、これら攻撃者モデルデータを合わせて攻撃者モデル候補群とする(ステップS180)。攻撃者モデル情報生成部14により生成された攻撃者モデル候補群がゴールモデル情報制御部13に入力されると(ステップS190)、ゴールモデル情報制御部13は、入力された攻撃者モデル候補群内の攻撃者モデルデータで規定される攻撃者モデル候補をゴールモデル情報表示部16へ出力する。ゴールモデル情報表示部16は、攻撃者モデルデータが入力されると、当該データで示される攻撃者モデル候補を順に表示し、入力装置50により表示した攻撃者モデル候補の要/不要の情報の入力を受ける(ステップS200)。これにより、ゴールモデル情報制御部13は、要と入力された攻撃者モデル候補の攻撃者モデルデータを、現在のゴールモデル情報に追加してゴールモデル情報記憶部12に書き込む。
【0047】
攻撃者モデル候補群内のすべての攻撃者モデルデータについて要否が選択され、入力装置50により保存の指示が入力されると、ゴールモデルファイル入出力部11は、ゴールモデル情報記憶部12からゴールモデル情報の入力を受ける(ステップS210)。ゴールモデルファイル入出力部11は、入力されたゴールモデル情報が設定されたゴールモデルファイルを外部記憶装置20へ出力する(ステップS220)。外部記憶装置20は、ゴールモデルファイル入出力部11から入力されたゴールモデルファイルを記憶する。
【0048】
図11は、セキュリティ要求分析支援装置10内の攻撃者モデル情報生成部14において実行される処理のフローチャートである。
攻撃者モデル情報生成部14のゴールモデル情報入出力部14aは、図10のステップS130において、ゴールモデル情報制御部13がゴールモデル情報記憶部12から読み出したゴールモデル情報の入力を受ける(ステップS310)。字句抽出部14cは、ステップS310において入力されたゴールモデル情報から、各要素の属性を抽出する。具体的には、字句抽出部14cは、ゴールモデル情報に含まれる各要素データから記述情報を読み出し、この記述情報に含まれる語句を抽出する(ステップS320)。例えば、図1のゴールモデルであれば、アクタの記述「医療事務員」、「医者」、「患者」、タスクの記述「カルテ」、「管理」などの語句が抽出される。
【0049】
字句抽出部14cは、抽出した語句の同義語を読み出すための検索式K1と、共通用語DB30内に登録されているドメイン名のうち、当該ドメイン名に対応して記憶されている語句の中に、抽出した語句、検索式K1により取得した同義語が含まれている数が最も多いものを読み出すための検索式K2を生成する。制御部14bは、字句抽出部14cが生成した検索式K1及びK2をDB入出力部15へ出力し、DB入出力部15が共通用語DB30から得た検索式K2による検索結果を受信する。制御部14bがDB入出力部15から受信した検索式K2の検索結果の情報を字句抽出部14cへ出力する(ステップS330)。
【0050】
例えば、図1のゴールモデルであれば、検索式K1により、抽出した語句「医療事務員」に対応した「医療スタッフ」という同義語が読み出される。続いて、検索式K2により、全てのドメインの中から、「医療事務員」、「医者」、「患者」、「管理」、「医療スタッフ」のいずれかが、対応する語句に最も多く含まれるドメインを検索し、その結果、「医者」、「患者」、「医療スタッフ」という3つの語句が対応づけられている「医療ドメイン」が、検索結果として得られる。
【0051】
字句抽出部14cは、入力された検索結果により示されるドメインに対応した攻撃者モデルデータを読み出すための検索式K3を生成する。制御部14bは、字句抽出部14cが生成した検索式K3をDB入出力部15へ出力し、DB入出力部15が共通用語DB30から得た検索式K3による検索結果を受信する。制御部14bは、DB入出力部15から受信した検索式K3の検索結果の情報を攻撃モデル生成部14dへ出力する(ステップS340)。
【0052】
攻撃モデル生成部14dは、ステップS340において入力された検索式K3の検索結果により示される全ての攻撃者モデルデータの集合を攻撃者モデル候補群とする。そして、現在のゴールモデル情報と、攻撃者モデル候補群内の各攻撃者モデルデータとを参照して、冗長または重複する要素がある場合には、攻撃者モデルデータの示す攻撃者モデルの候補木を再構築するか、あるいは、攻撃者モデルデータ自体を削除する。攻撃モデル生成部14dは、冗長または重複する要素がなく、攻撃モデルの修正を行わなかった攻撃者モデルデータ、あるいは、冗長または重複する要素があったため、攻撃モデルを再構築した攻撃者モデルデータをゴールモデル情報制御部13に出力する(ステップS350、ステップS360:NO)。
【0053】
ゴールモデル情報制御部13は、入力された攻撃者モデルデータで示される攻撃者モデル候補を表示するようゴールモデル情報表示部16へ指示する。なお、このとき、攻撃者モデルデータの各要素データで示されるアクタ領域に、当該要素データで示される要素が表示されるようにする。ゴールモデル情報制御部13は、ゴールモデル情報表示部16により表示されている攻撃者モデル候補の要/不要の情報の入力を受ける。そして、要が入力された攻撃者モデル候補の攻撃者モデルデータを、ゴールモデル情報としてゴールモデル情報記憶部12に書き込む。攻撃モデル生成部14dは、全ての攻撃者モデル候補群内に含まれる攻撃者モデルデータについて再構築が必要か否かを判断し終えたかを判断し、再構築が必要か否かの判定を全ての攻撃者モデルデータについて完了した場合、処理を終了する(ステップS360:YES)。
【0054】
図12は、図11のステップS350において実行される攻撃者モデル候補の候補木再構築処理のフローチャートである。
攻撃モデル生成部14dは、現在のゴールモデル内の各アクタに含まれる要素の全てについて、当該要素と同値の要素の要素データが、攻撃DB40内に登録さているか否かの情報を読み出す(ステップS410)。具体的には、まず、ゴールモデル情報の要素のうち、同時成立不可要素と同値の要素を特定する。つまり、攻撃モデル生成部14dは、ゴールモデル情報記憶部12内に記憶されているゴールモデル情報内の各要素データから記述データを読み出す。そして、読み出した記述データの示す語句の類義語を検索するための検索式K4を生成する。制御部14bは、攻撃モデル生成部14dが生成した検索式K4をDB入出力部15に出力する。制御部14bは、DB入出力部15が、検索式K4により共通用語DB30から取得した類義語検索結果の入力を受け、攻撃モデル生成部14dへ出力する。
【0055】
攻撃モデル生成部14dは、類義語検索結果で示される類義語が記述データとして設定されている同時成立不可要素データを読み出すための検索式K5を生成する。制御部14bは、攻撃モデル生成部14dが生成した検索式K5をDB入出力部15に出力する。制御部14bは、DB入出力部15が、検索式K5により攻撃DB40から取得した同時成立不可要素データの検索結果の入力を受け、攻撃モデル生成部14dへ出力する。
このようにして、ゴールモデルに含まれている要素と同値の要素を示す同時成立不可要素データが得られると、当該同時成立不可要素データの同時成立矛盾、及び、同時成立重複から要素IDを読み出し、内部のメモリに保存する。
【0056】
なお、図11において、ドメインに対応した攻撃者モデルデータを読み出すための検索式K3とともに、検索式K3により読み出された攻撃者モデルデータ内の同時成立矛盾、同時成立重複の情報で特定される同時成立不可要素データを読み出すための検索式K5’を攻撃DB40に出力するようにしてもよい。この場合、攻撃モデル生成部14dは、類義語検索結果で示される類義語が記述データに設定されている同時成立不可要素データを、検索式K5’の検索結果として得た同時成立不可要素データの中から特定すればよい。
【0057】
図9を例にした場合、既に作成されているゴールモデルに、記述「タスクt1」のタスク(要素ID「T999」)があるとする。このとき、ゴールモデル情報に含まれる要素データからは、記述「タスクt1」が読み出され、共通用語DB30からは、「タスクt1」の類義語「タスク1」を含んだ検索結果が読み出される。この類義語「タスク1」が記述に設定され、かつ、同じ要素種別「タスク」、アクタ領域「悪意のある医療スタッフ」である同時成立不可要素データ(要素ID「T1」)の要素が、「タスクt1」が記述に設定されたゴールモデルのタスク(要素ID「T999」)と同値であると判断される。この同値であると判断された同時成立不可要素データ(要素ID「T1」)から読み出された同時成立矛盾の要素ID「G3」が、攻撃モデル生成部14d内のメモリに保存される。
【0058】
次に、攻撃モデル生成部14dは、攻撃者モデルデータ内の要素データの中に、ステップS410においてメモリに保持した要素IDにより特定されるものがあるか否かを判断する(ステップS420)。そして、メモリに保持した要素IDにより特定される要素データがあった場合、当該要素データ内の上位関連情報から、該当するノードの上位関連を判断する(ステップS430)。
【0059】
ステップS430において、上位関係が「なし」、または、「OR」であると判断した場合、当該要素が該当するノードの下位階層の全てのノード、および、自ノードを削除した形状の攻撃者モデルを表す攻撃者モデルデータを生成する(ステップS440)。具体的には、攻撃者モデルデータ内の要素データから、当該要素データを削除し、この削除した要素データ内の下位関連情報に要素IDが記述されていた場合には、当該要素IDにより特定される全ての要素データを削除し、さらに、この削除した要素データ内の下位関連情報に要素IDが記述されていた場合には、当該要素IDにより特定される全ての要素データを削除することを繰り返す。
【0060】
一方、ステップS430において、上位関係が「AND」であると判断した場合、当該要素が該当するノードの親ノード、当該要素が該当するノードと同階層の全てのノード、当該要素が該当するノードの下位階層の全てのノード、および、自ノードを削除した形状の攻撃者モデルを表す攻撃者モデルデータを生成する(ステップS450)。具体的には、攻撃者モデルデータ内の要素データから、当該要素データを削除するとともに、この削除した要素データの上位関連情報に記述されている上位及び同階層の要素の要素IDにより特定される要素データを全て削除する。さらに、この削除した要素データ内の下位関連情報に要素IDが記述されていた場合には、当該要素IDにより特定される全ての要素データを削除し、さらに、この削除した要素データ内の下位関連情報に要素IDが記述されていた場合には、当該要素IDにより特定される全ての要素データを削除することを、下位関連情報が「なし」となるまで繰り返す。
【0061】
攻撃モデル生成部14dは、ステップS440またはステップS450において再構築した攻撃者モデルを示す攻撃者モデルデータをゴールモデル情報制御部13に出力する(ステップS460)。ゴールモデル情報制御部13は、入力した攻撃者モデルデータにより示される、攻撃者モデルを候補としてゴールモデル情報表示部16に表示させる。
【0062】
なお、攻撃者モデルデータの選択が終了した後、再び、ゴールモデルが編集されてノードが追加された場合、そのノードが追加されたタイミング、あるいは、ノード追加後に、攻撃者モデルデータ更新指示が入力されたタイミングで、新たに追加されたノードの要素データについて、再び、図12のステップS410と同様の手順により、同値の同時成立不可要素データを特定する。そして、ゴールモデル情報記憶部12内に記憶されている、すなわち、ユーザに一旦選択された攻撃者モデルデータについて、図11と同様の手順により、新たに追加されたノードの要素と同値の要素を示す同時成立不可要素データとの同時成立性を確認する。そして、同時成立しない要素を削除したときに悪意ゴールが達成されない場合には、当該攻撃者モデルデータをゴールモデル情報記憶部12から削除するとともに、ゴールモデル情報表示部16が表示するゴールモデルから当該攻撃者モデルデータの表示を消去する。また、同時成立しない要素を削除したときにも悪意ゴールが達成される場合は、当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除して再構築を行った攻撃者モデルのデータを作成して、ゴールモデル情報記憶部12内の現在の攻撃者モデルデータと置き換えるとともに、ゴールモデル情報表示部16に、置き換え前の攻撃者モデルデータに基づいて表示されている現在の攻撃モデルの表示を、置き換え後の攻撃者モデルデータの示す新たなゴールモデルの表示に変更するよう指示することにより、削除した要素の表示を消去する。これにより、新たに追加されたノードについても、矛盾、冗長な攻撃者モデルデータの要素を削除することができる。
【0063】
上記実施の形態によれば、セキュリティ要求分析において、考慮を忘れやすい攻撃を発見できる可能性が高まるという効果がある。また、その際、不必要な分析は除去されるため、分析効率が高まる。また、ゴールモデルの作成過程で、要素の重複や矛盾を検証することもできる。これらの結果、セキュリティに関する要求分析の信頼性(網羅性や妥当性)が高まり、初心者であっても、容易にセキュリティ要求分析を行うことを支援することができる。また、処理コストを低減することも可能である。
【0064】
なお、上述のセキュリティ要求分析支援装置10、外部記憶装置20、共通用語DB30、攻撃DB40は、内部にコンピュータシステムを有している。そして、セキュリティ要求分析支援装置10の、外部記憶装置20、共通用語DB30、攻撃DB40の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
【0065】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【図面の簡単な説明】
【0066】
【図1】本発明の一実施の形態によるセキュリティ要求分析支援装置の動作概要を説明するための図である。
【図2】同実施の形態によるセキュリティ要求分析支援装置における攻撃者モデル再構築の処理概要を説明するための図である。
【図3】同実施の形態によるセキュリティ要求分析支援装置の機能ブロック図である。
【図4】同実施の形態によるセキュリティ要求分析支援装置の攻撃者モデル情報生成部内の機能ブロック図を示す。
【図5】同実施の形態による外部記憶装置に記憶される情報を示す図である。
【図6】同実施の形態によるゴールモデルファイルを示す図である。
【図7】同実施の形態による共通用語DBが保持する情報を示す図である。
【図8】同実施の形態による攻撃DBが保持する情報を示す図である。
【図9】同実施の形態による攻撃者モデルデータに含まれる要素データと、同時成立が矛盾する要素データの例を示す図である。
【図10】同実施の形態によるセキュリティ要求分析支援装置における処理概要を示すフローチャートである。
【図11】同実施の形態によるセキュリティ要求分析支援装置内の攻撃者モデル情報生成部における処理のフローチャートである。
【図12】同実施の形態によるセキュリティ要求分析支援装置内の攻撃者モデル情報生成部における候補木再構築処理のフローチャートである。
【図13】従来技術のゴール指向要求分析を用いたゴールモデルの分析例を示す。
【図14】従来技術によって拡張されたプロセスを示す図である。
【図15】図14に示すプロセスによって生成されたゴールモデルの例を示す。
【図16】図14に示すプロセスによって生成されたゴールモデルの例を示す。
【図17】ゴールモデルに冗長な要素が含まれている場合の例を示す図である。
【符号の説明】
【0067】
10…セキュリティ要求分析支援装置
11…ゴールモデルファイル入出力部
12…ゴールモデル情報記憶部
13…ゴールモデル情報制御部
14…攻撃者モデル情報生成部
14a…ゴールモデル情報入出力部
14b…制御部
14c…字句抽出部
14d…攻撃モデル生成部
15…DB入出力部
16…ゴールモデル情報表示部
20…外部記憶装置
30…共通用語DB
40…攻撃DB
50…入力装置
【技術分野】
【0001】
本発明は、セキュリティ要求分析支援装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
コンピュータシステムの開発工程は、要件定義、設計、製造、試験という流れが一般的である。開発工程において、手戻りを極力なくしてスムーズに開発を進め、かつ、システムの品質を上げるためには、要件定義を明確に規定することが効果的である。開発対象システムの要件定義、すなわち、開発対象システムに要求される機能を分析するために用いられる従来の手法の1つにゴール指向要求分析があり、その代表的な分析手法としてi*(アイ・スター)がある。
【0003】
図13は、i*による分析例を示す。i*では、ゴールの達成などに関心・責任を持つ実体である「アクタ」(モデルでは、アクタの責任範囲を、円形のアクタ境界で示す)、達成されたかどうかが明確なゴールである「ハードゴール」、達成されたかどうかを明確にできない「ソフトゴール」(一般に、0から1までの達成度を持つ)、ゴールを達成するための手順である「タスク」、ゴールの達成やタスク実行のために使用する物理的実体、または情報である「リソース」などの要素をノードとし、これらのノード間の依存関係を図として記述することにより要求を可視可する。これにより、ステークホルダ間の利害関係や依存関係を全体的に俯瞰しながら要求される機能を分析することができ、従って、人間が理解しやすく、効率的な分析を可能としている。
【0004】
近年、このi*において、セキュリティに関する要求を分析するように拡張された手法が提案されている(例えば、非特許文献1参照)。非特許文献1に記載の手法では、考慮すべき通常のステークホルダに加えて、攻撃者となるステークホルダを考慮し、攻撃者の悪意ある目的を抽出して、それらの目的の達成を不可能にするかまたは軽減させるための目的やタスクを通常のステークホルダに追加する。これにより、セキュリティを考慮した要求分析を行うことができる。
【0005】
図14は、通常のi*のプロセスと、非特許文献1によって拡張されたプロセスを示す図であり、図15及び図16は、この非特許文献1により拡張されたプロセスによって生成されたゴールモデルの一例である。図14に示すように、通常のi*のプロセスでは、まずアクタを特定することから始める(ステップS910)。そして、特定したアクタ間の依存関係を分析して戦略依存モデルを作成した後(ステップS912)、ゴール及びタスクを特定する(ステップS914)。続いて、アクタ内の依存関係を分析してゴールを比較評価することによって戦略原理モデルを作成し(ステップS916)、さらに、ノード間の依存関係を特定する(ステップS918)。このS912〜S918の過程を、部分的または全体的に適宜繰り返してゴールモデルを作成する。
【0006】
拡張プロセスにおいては、攻撃者を特定し、攻撃者モデルを生成する(ステップS920、S922)。ここでは、攻撃者をアクタとして特定するが、ドメインモデルの全アクタを、潜在的攻撃者(例えば、悪意のあるユーザ、悪意を持って改造された装置)とみなす。この攻撃者は、対応するドメインモデルのアクタと同じゴール、タスク及びリソースを持つものである。
つぎに、アクタの悪意を特定し、悪意モデルを生成する(ステップS924、S926)。つまり、ドメインモデルの要素に加えて、攻撃者のゴールとして悪意を特定する。
続いて、脆弱性を分析して、脆弱性モデルを生成する(ステップS928、S930)。脆弱性の分析においては、攻撃の影響を受ける可能性がある要素を特定するが、悪意のゴールやタスクから負の貢献関係を受ける要素、悪意のゴールやタスクに依存する要素は脆弱であるとする。
【0007】
図15にも示すように、攻撃者を特定し、その攻撃者の悪意を特定して悪意モデルを生成し、その悪意から発生する攻撃を受ける可能性から脆弱性モデルを生成した後、その脆弱性を突く攻撃方法を特定して、攻撃方法モデルを作成する(ステップS932、S934)。つまり、攻撃方法を、悪意を達成する手段であるタスクとして特定する。また、ドメインモデル(通常のi*モデル)の要素を利用(「悪用」)してもよい。
【0008】
攻撃方法のモデルが作成されると、図16に示すように、その攻撃に対する対策を特定して、対策モデルを生成する(ステップS936、S938)。つまり、元のドメインモデルに戻り、特定した各攻撃方法に対し、「その攻撃に対抗したい」というソフトゴールを設定する。あるいは、さらに詳しく、「攻撃を回避したい」、あるいは「攻撃を検出したい」といったゴールを設定した方が好ましい。そして、これらのソフトゴールに正の貢献関係を持つタスクとして、対策を特定する。
【0009】
また、一方、新たな仕様書を作成する際に、既存仕様書事例を格納した事前データベースを利用し、編集作業全体の効率化を図ることのできるセキュリティ設計支援装置がある(例えば、特許文献1参照)。
【特許文献1】特開2004−220459号公報
【非特許文献1】Liu他,“Security and Privacy Requirements Analysis within a Social Setting”,11th IEEE International Conference on Requirements Engineering (RE’03),2003年,pp.151-161
【発明の開示】
【発明が解決しようとする課題】
【0010】
非特許文献1には、セキュリティに関する要求を分析するよう拡張された手法について開示されているが、これは、人為的な分析手順を示しているに過ぎない。よって、分析の結果の信頼性(網羅性や妥当性)は、分析者が、分析対象となるドメインにおいて考慮すべき攻撃者(ステップS920)、悪意(ステップS924)、攻撃方法(ステップS932)を漏れなく発見できるかどうかに依存する(図15)。しかし、それらを漏れなく発見できるかどうかは、分析者のセキュリティに関する知識、対象ドメインに関する知識、分析の熟練度等に依存する。従って、これらの知識や経験を持たない分析者には、この手法を効果的に活用し、精度の高い分析を実施することは困難であった。そのため、セキュリティ要求分析の非熟練者であっても、熟練者に近い高精度な分析を行えるようにすることが求められている。
【0011】
また、ゴールモデルの作成過程で、要素(ゴール、タスク、資源)の重複や矛盾が発生する可能性がある。図17は、冗長な要素が含まれている場合の例を示す図である。同図において、悪意ゴールG1は、サブゴールSG1及びSG2の両者が成り立つときに達成される。しかし、サブゴールSG2「操作ログを消す」を不可能ならしめるタスクT1「消去不能なログをとる」がすでにゴールモデルに存在しているため、サブゴールSG2は達成されない。悪意ゴールG1は、サブゴールSG1及びSG2のAND条件により成り立っており、サブゴールSG1が達成されないとその上位のゴールG1も達成されないため、この部分全体の分析が不要となる。従来は、分析図の作成中に、このような要素の重複や矛盾を自動で検証する手段がないため、人間の目視により確認する必要があった。これは、コストが大きく、モデルが複雑になればなるほど見逃される可能性も大きかった。
【0012】
そこで、特許文献1では、属性の包含関係を基にして要件定義の重複・矛盾を類推している。この技術により、重複を類推する場合の例について説明する。例えば、「脅威A:特権ユーザが重要データを改ざんする(属性:<攻撃者・要因>管理者、<保護対象資産>情報、<脅威種別・攻撃方法>全ての改ざん)」、「脅威B:管理者権限を持つ外部委託業者が重要顧客情報を改ざんする(属性:<攻撃者・要因>外部委託管理者、<保護対象資産>顧客情報、<脅威種別・攻撃方法>全ての改ざん)」があったとする。また、管理者には、外部委託管理者と内部管理者が包含されることが定義されているものとする。この場合、<攻撃者・要因>で示される関与者、<保護対象資産>で示される情報資産の両属性において、脅威Aと脅威Bは階層(包含)関係にあり(管理者⊃外部委託管理者、情報⊃顧客情報)、<脅威種別・攻撃方法>で示される攻撃方法属性が一致することから、脅威Aと脅威Bが重複する可能性があると判断する。
【0013】
また、矛盾を類推する場合の例について説明する。例えば、「前提条件A:システム管理者は特権の悪用をしないものとする。(属性:<攻撃者・要因>管理者、<保護対象資産>全て、<脅威種別・攻撃方法>全て)」、「脅威B:管理者権限を持つ外部委託業者が重要顧客情報を改ざんする。(属性:<攻撃者・要因>外部委託管理者、<保護対象資産>顧客情報、<脅威種別・攻撃方法>全ての改ざん)」があったとする。また、管理者として、外部委託管理者と内部管理者が包含されることが定義されているものとする。この場合、<攻撃者・要因>で示される関与者属性において、前提条件Aと脅威Bが階層(包含)関係にあることから、前提条件Aと脅威Bが矛盾する可能性があると類推する。
【0014】
このように、特許文献1の技術においては、要件にいくつかの属性を付与して管理し、属性の包含関係を基にして重複・矛盾を類推しているが、全ての脅威・要件等の要素間を比較しなければならないため、処理コストが高いという問題がある。例えば、n個の要素の場合、(n−1)2回の比較を行わなければならない。また、集合の包含関係という単純な判断基準しか持たないため、類推結果の信頼性が低いという問題がある。
【0015】
本発明は、このような事情に鑑みてなされたものであり、セキュリティを考慮したシステム要件定義を分析する際に、非熟練者であっても、熟練者と同等のレベルのセキュリティ分析を効率的に、かつ低コストで行えるよう支援することのできるセキュリティ要求分析支援装置及びコンピュータプログラムを提供することをその目的とする。
【課題を解決するための手段】
【0016】
上記課題を解決するために、本発明は、開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち1以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置であって、ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部と、悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベースと、前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部と、前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部と、前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部と、を備えることを特徴とするセキュリティ要求分析支援装置である。
【0017】
また、本発明は、上述するセキュリティ要求分析支援装置であって、ドメインに対応する語句、及び、当該語句の類似語の情報を記憶する共通用語データベースをさらに備え、前記ゴールモデルデータ内の要素の情報は、要素の説明を示す記述の情報を含み、前記攻撃者モデル情報生成部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の情報から、当該要素の記述に使用されている語句を抽出し、前記データベース入出力部は、前記ゴールモデルが属するドメインとして、前記攻撃者モデル情報生成部により抽出された語句、及び、当該抽出された語句の類似語が対応付けられているドメインを前記共通用語データベースから読み出す、ことを特徴とする。
【0018】
また、本発明は、上述するセキュリティ要求分析支援装置であって、前記攻撃データベースは、攻撃者モデルに含まれる要素と同時成立しない要素の説明を示す記述の情報を少なくとも含む同時成立不可要素データをさらに記憶し、前記攻撃者モデルに含まれる要素と同時成立しない要素の記述に含まれる語句の同義語を記憶する共通用語データベースをさらに備え、前記データベース入出力部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の記述に使用されている語句の同義語の情報を前記共通用語データベースから読み出すとともに、前記同時成立不可要素データを前記攻撃データベースから読み出し、前記攻撃者モデル情報生成部は、前記データベース入出力部が読み出した同義語の情報と同時成立不可要素データの入力を受け、当該同時成立不可要素データのうち、前記同義語が記述に含まれる同時成立不可要素データを特定し、前記攻撃者モデル候補群の中から、この特定した同時成立不可要素により示される同時成立しない要素のデータが含まれている攻撃者モデルデータを、前記ゴールモデルデータにより示される要素とは同時に成立しない要素が含まれている攻撃者モデルデータであると判断する、ことを特徴とする。
【0019】
また、本発明は、上述するセキュリティ要求分析支援装置であって、前記ゴールモデル情報記憶部は、前記ゴールモデル情報制御部により出力が指示された攻撃者モデルデータの中から、ユーザにより選択された攻撃者モデルデータの情報を記憶し、前記攻撃者モデル情報生成部は、前記ゴールモデルに要素が追加された場合、前記ゴールモデル情報記憶部内に記憶されている前記攻撃者モデルデータの示す同時成立しない要素の情報に基づいて、新たに追加された要素と同時成立しない要素のデータが含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、悪意ゴールが達成されない場合には、当該攻撃者モデルデータを前記ゴールモデル情報記憶部から削除し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、特定した攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更し、前記ゴールモデル情報制御部は、前記攻撃者モデル情報生成部により削除された攻撃者モデルデータの示す攻撃者モデルを表示から消去するとともに、変更前の攻撃者モデルの表示を変更された前記攻撃者モデルデータの示す新たな攻撃者モデルの表示に変更するよう指示する、ことを特徴とする。
【0020】
また、本発明は、開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち1以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置として用いられるコンピュータを、ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部、悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベース、前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部、前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部、前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部、として機能させることを特徴とするコンピュータプログラムである。
【発明の効果】
【0021】
本発明によれば、セキュリティ要求分析において、考慮を忘れやすい攻撃を発見できる可能性が高まるという効果がある。また、その際、不必要な分析は除去されるため、分析効率が高まる。また、ゴールモデルの作成過程で、要素の重複や矛盾を検証することもできる。これらの結果、セキュリティに関する要求分析の信頼性(網羅性や妥当性)が高まり、初心者であっても、容易にセキュリティ要求分析を行うことを支援することができる。また、ゴールモデルを構成する全ての要素の組み合わせについて比較を行う必要がないため、処理コストを低減することも可能である。
【発明を実施するための最良の形態】
【0022】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
図1は、本発明の一実施の形態によるセキュリティ要求分析支援装置10の動作概要について説明するための図である。
まず、セキュリティ要求分析支援装置10は、分析者の作成したゴール指向要求分析の分析図、すなわち、ゴールモデルに使用されている語句と、その語句とドメインの関係を解析して、現在分析している対象のドメインを推定する。つまり、共通用語データベース30(以下、データベースを「DB」と記載)内に、ドメインと当該ドメインに関連する語句とを対応付けた情報と、ドメインに関連する語句の同義語の情報とを保持しておく。そして、ゴールモデルのノードである各要素に含まれる語句、及び、その語句の同義語が含まれる数が最も多いドメインを、現在作成中のゴールモデルが属するドメインであると類推する。
【0023】
次に、セキュリティ要求分析支援装置10は、ドメインごとに想定される攻撃者・悪意ゴール・脆弱性・攻撃手法に関する情報を蓄積した攻撃DB40から、類推されたドメインに対応する攻撃者モデルを読み出して、これを攻撃者モデル候補とする。また、これらの攻撃者モデル候補を全て合わせて攻撃者モデル候補群とする。セキュリティ要求分析支援装置10は、現在作成しているゴールモデル内にすでに記述されているタスクを参照して、矛盾や重複のため、不要な攻撃者モデル候補を削除するとともに、攻撃者モデル候補から不要なモデル部分を削除した、新たな攻撃者モデル候補を作成して、現在の攻撃者モデル候補と置き換え、新たな攻撃者モデル候補群を作成する。セキュリティ要求分析支援装置10は、新たに作成した攻撃者モデル候補群に含まれる攻撃者モデル候補をゴールモデル上に表示し、これらの表示した攻撃者モデル候補が必要であるか否かをユーザに選択させる。ユーザは、候補から選択した攻撃者モデルの悪意ゴールが達成されないように要素を追加し、セキュリティに関するゴールモデルを作成する。
【0024】
図2は、図1の動作概要において、セキュリティ要求分析支援装置10が攻撃者モデル候補群から、不要な攻撃者モデル候補を削除するとともに、攻撃者モデル候補における不要な部分の削除を行って新たな攻撃者モデル候補を作成し、ユーザに表示するときの処理概要について説明するための図である。セキュリティ要求分析支援装置10は、以下に示す(手順1)〜(手順6)のように動作する。
【0025】
(手順1)まず、セキュリティ要求分析支援装置10は、攻撃DB40から、推定されたドメインに対応した攻撃者モデル(悪意ゴール木)の集合を全て読み出す。そして、読み出した攻撃者モデルを攻撃者モデル候補とし、これらの攻撃者モデル候補の集合である攻撃者モデル候補群を生成する。
(手順2)セキュリティ要求分析支援装置10は、(手順1)において生成した攻撃者モデル候補群から、未選択の攻撃者モデル候補を選択する。
(手順3)セキュリティ要求分析支援装置10は、(手順2)において選択した攻撃者モデルが、現在のゴールモデル内にある要素と重複や矛盾があるか判断する。
(手順4)(手順3)において、重複や矛盾があると判断した場合、攻撃者モデル候補を構成する悪意ゴール木におけるAND/ORの関係を考慮して、削除可能な要素を最大限に削除して新しい悪意ゴール木を作成し、新たな攻撃者モデル候補とする。
【0026】
例えば、図2において、攻撃者モデル候補に含まれる悪意ゴールG1は、サブゴールSG1及びSG2のAND、つまり、サブゴールSG1及びSG2の両者が成り立つときに達成される。ここで、サブゴールSG2を不可能ならしめるタスクT1がすでに現在のゴールモデル内に存在している場合、サブゴールSG2は達成されない。悪意ゴールG1は、サブゴールSG1及びSG2のAND条件により成り立っており、サブゴールSG1が達成されないとその上位のゴールG1も達成されないため、この攻撃者モデル候補自体が不要となる。
あるいは、攻撃者モデル候補の悪意ゴールG1が、サブゴールSG1とSG2のOR、つまり、サブゴールSG1またはSG2のどちらかが成り立つときに達成されるとする。ここで、サブゴールSG2を不可能ならしめるタスクT1がすでに現在のゴールモデル内に存在しているため、サブゴールSG2は達成されない。このときは、サブゴールSG2のみを削除した悪意ゴール木が新たな攻撃者モデル候補として生成される。
【0027】
(手順5)セキュリティ要求分析支援装置10は、(手順4)にて作成した新たな攻撃者モデル候補をゴールモデル内に表示し、ユーザに必要か否かを選択させる。なお、悪意ゴール木自体が削除となった攻撃者モデル候補の場合には、何も表示せずに(手順6)へ進む。
(手順6)攻撃者モデル候補群内の全ての攻撃者モデル候補について(手順3)〜(手順5)を行った場合には処理を終了し、まだ(手順3)〜(手順5)を行っていない攻撃者モデル候補がある場合には、ふたたび(手順2)からの処理を行う。
【0028】
図3は、同実施の形態によるセキュリティ要求分析支援装置10の機能ブロック図である。
同図において、セキュリティ要求分析支援装置10は、外部環境に設置された外部記憶装置20、共通用語DB30、攻撃DB40と接続される。外部記憶装置20、共通用語DB30、攻撃DB40は、例えば、ぞれぞれ、1または複数のサーバなどで構成することができる。外部記憶装置20は、ゴール指向要求分析により作成されたゴールモデルのデータを記述したゴールモデルファイルを保存する。共通用語DB30は、特定ドメインにおける定型語彙や、当該定型語彙の同義語、類義語などの情報を蓄積する。攻撃DB40は、ドメイン毎の攻撃者の典型的な攻撃パターンの悪意ゴール木、すなわち、攻撃者モデルを示す攻撃者モデルデータを保存する。
【0029】
セキュリティ要求分析支援装置10は、ゴールモデルファイル入出力部11、ゴールモデル情報記憶部12、ゴールモデル情報制御部13、攻撃者モデル情報生成部14、DB入出力部15、ゴールモデル情報表示部16からなり、入力装置50を備える。
【0030】
ゴールモデルファイル入出力部11は、外部記憶装置20に対し、ゴールモデルファイルの入出力を行う。ゴールモデル情報記憶部12は、ゴールモデルファイル入出力部11から入力したゴールモデルファイルであるゴールモデル情報を記憶するとともに、ゴールモデル情報制御部13により生成・編集したゴールモデル情報を記憶する。ゴールモデル情報制御部13は、ゴールモデル情報記憶部12内に記憶されているゴールモデル情報の読み込み、更新、および削除を行うとともに、攻撃者モデル情報生成部14と通信し、攻撃者モデルデータの入出力を行う。
【0031】
攻撃者モデル情報生成部14は、ゴールモデル情報制御部13からゴールモデル情報の入力を受け、当該ゴールモデルを構成するノードの定義データに基づいてDB検索式を作成し、DB入出力部15へ出力するとともに、DB入出力部15から返送された結果を入力する。攻撃者モデル情報生成部14は、DB入出力部15から検索結果として返送された攻撃者モデルからなる攻撃者モデル候補群について、現在のゴールモデルとの矛盾・重複検証処理を行い、新たな攻撃者モデル候補群を生成してゴールモデル情報制御部13へ出力する。
【0032】
DB入出力部15は、攻撃者モデル情報生成部14からDB検索式の入力を受けて共通用語DB30または攻撃DB40へ当該DB検索式を出力し、返送された検索結果の入力を受け、攻撃者モデル情報生成部14へ当該検索結果を出力する。ゴールモデル情報表示部16は、ゴールモデルや攻撃者モデルを外部の表示装置(ディスプレイなど)に表示する。また、入力装置50は、キーボードやマウスの操作などによりユーザから入力された情報をゴールモデル情報制御部13へ出力する。
【0033】
図4は、図3に示す攻撃者モデル情報生成部14内の機能ブロック図を示す。
攻撃者モデル情報生成部14は、ゴールモデル情報入出力部14a、制御部14b、字句抽出部14c、攻撃モデル生成部14dを備える。
【0034】
制御部14bは、ゴールモデル情報入出力部14a、字句抽出部14c、攻撃モデル生成部14d、およびDB入出力部15とのデータの入出力の流れを制御する。ゴールモデル情報入出力部14aは、ゴールモデル情報制御部13から、ゴールモデル情報の入力を受けるとともに、攻撃モデル生成部14dにおいて生成された攻撃者モデル候補を制御部14bから読み込み、ゴールモデル情報制御部13へ出力する。字句抽出部14cは、制御部14bからゴールモデル情報の入力を受け、各要素(アクタ、ゴール、タスクなど)の名称を抽出するとともに、共通用語DB30への検索式を生成し、制御部14bへ出力する。攻撃モデル生成部14dは、制御部14bから現状のゴールモデル情報を入力し、それに対応した攻撃者モデルのデータをDB入出力部15から読み込む。また、攻撃モデル生成部14dは、現状のゴールモデルの情報と、攻撃者モデル候補の攻撃者モデルデータとを入力し、AND/OR関係を考慮して新たな候補木(新たな攻撃者モデル候補)に再構築する。
【0035】
図5は、外部記憶装置20に記憶される情報を示す図である。
外部記憶装置20は、ゴールモデルファイルを記憶する。ゴールモデルファイルには、ゴールモデルのノードを構成する各要素の情報を示す要素データが含まれる。要素データには、要素を一意に特定する要素ID、当該要素がアクタ/ゴール/ソフトゴール/タスク/資源などのうちいずれであるかを示す要素種別、当該要素の名称などの説明を示す記述、アクタ領域、上位の要素を示す上位関連、下位の要素を示す下位関連、同時成立することが矛盾、あるいは、重複する要素などの情報が含まれる。同時成立することが矛盾、あるいは、重複する要素は、要素IDにより示すことができるが、本情報は設定されていなくともよい。
【0036】
同図に示すゴールモデルの場合、外部記憶装置20は、複数のゴールモデルファイルを記憶しており、ゴールモデルファイルには、アクタ、ゴール、ソフトゴール、タスク、資源の要素データが含まれる。アクタの要素データには、アクタ名称「医療スタッフ」が設定されている。ゴールの要素データには、要素ID「ゴール1」、要素種別「ゴール」、記述「カルテの管理を容易にする」、下位関連「ゴール2とゴール3のAND」が設定されているもの、要素ID「ゴール2」、要素種別「ゴール」、記述「高速に検索する」、上位関連「ゴール1(ゴール2とゴール3のAND)」、下位関連「タスク1」が設定されているもの、要素ID「ゴール3」、要素種別「ゴール」、記述「高速に検索する」、上位関連「ゴール1(ゴール2とゴール3のAND)」、下位関連「タスク1」が設定されているものがある。タスクの要素データには、要素ID「タスク1」、要素種別「タスク」、記述「電子的に管理する」、上位関連「ゴール2、ゴール3、ソフトゴール」、下位関連「資源1、資源2」が設定されているものがある。ソフトゴールの要素データには、要素ID「ソフトゴール1」、要素種別「ソフトゴール」、記述「情報を漏洩しない」、下位関連「タスク1」が設定されているものがある。資源の要素データには、要素ID「資源1」、要素種別「資源」、記述「端末」、上位関連「タスク1」が設定されているもの、要素ID「資源2」、要素種別「資源」、記述「DB」、上位関連「タスク1」が設定されているものがある。
【0037】
図6は、セキュリティ要求分析支援装置10のゴールモデル情報記憶部12に記憶され、ゴールモデルファイル入出力部11によって外部記憶装置20へ出力されるゴールモデルファイルを示す図である。同図において、ゴールモデル情報記憶部12は、現在作業中のゴールモデルファイルを一時的に保持している。ここで保持されるゴールモデルファイルは、外部記憶装置20に記憶されるゴールモデルファイルと同じデータ構成である。
【0038】
図7は、共通用語DB30が保持する情報を示す図である。
同図において、共通用語DB30は、ドメイン名称と、当該ドメイン名称に対応する語句(語句名称)とを対応付けて記憶している。さらに、共通用語DB30は、同義の複数の語句を対応付けた情報を示す同義語データ、類似の意味を有する複数の語句を対応付けた情報を示す類義語データを記憶している。例えば、共通用語DB30には、ドメイン名称「医療ドメイン」には、語句名称「医者、患者、医療事務員、…」とが対応付けられて記憶される。また、同義語データには、「医療事務員=医療スタッフ、…」などの情報が含まれる。
【0039】
図8は、攻撃DB40が保持する情報を示す図である。
同図において、攻撃DB40は、ドメイン名称と、攻撃者モデルデータとを対応付けた情報を記憶する。攻撃者モデルデータには、攻撃者モデルデータを識別する攻撃ID、及び、攻撃者の名称の情報と、攻撃者のゴールである悪意ゴール(攻撃者要素)の要素データ、及び、ソフトゴール(攻撃者ソフトゴール)、タスク(攻撃者タスク)、資源(攻撃者資源)などのうち1以上の要素の要素データとが含まれる。さらに、攻撃DB40は、攻撃者モデルデータ内の要素データにより示される要素とは同時に成立することが矛盾、あるいは、重複する要素の要素データである同時成立不可要素データを保持する。
【0040】
図9は、攻撃者モデルデータに含まれる要素データと、同時成立が矛盾する要素データの具体例を示す。
同図に示す、攻撃者モデルの候補は、悪意ゴール「ゴール1」が、サブゴール「ゴール2」と「ゴール3」のANDに依存しており、サブゴール「ゴール3」は、サブゴール「ゴール4」と「ゴール5」のORに依存するものとする。また、サブゴール「ゴール3」は、タスク「タスク1」とは矛盾するため同時に存在できないものとする。
【0041】
このとき、悪意ゴールである「ゴール1」の要素データには、要素ID「G1」、要素種別「ゴール」、記述「ゴール1」、アクタ領域「悪意のある医療スタッフ」、上位関連「なし」、下位関連「ゴール1=AND(ゴール2,ゴール3)」、同時成立矛盾「なし」、同時成立重複「なし」が設定される。また、悪意ゴールのサブゴールである「ゴール3」の要素データには、要素ID「G3」、要素種別「ゴール」、記述「ゴール3」、アクタ領域「悪意のある医療スタッフ」、上位関連「ゴール1=AND(ゴール2,ゴール3)」、下位関連「ゴール3=OR(ゴール4,ゴール5)」、同時成立矛盾「T1」、同時成立重複「なし」が設定される。なお、「ゴール1=AND(ゴール2,ゴール3)」は、ゴール1が、ゴール2及びゴール3の両方が達成されたときに達成されることを、「ゴール3=OR(ゴール4,ゴール5)」は、ゴール3が、ゴール4またはゴール5のいずれかが達成されたときに達成されることを示す。
【0042】
また、「ゴール3」の要素データに、同時成立矛盾するとして記述される要素ID「T1」により特定されるタスク1の同時成立不可要素データには、要素ID「T1」、要素種別「タスク」、記述「タスク1」、アクタ領域「悪意のある医療スタッフ」、上位関連「なし」、下位関連「なし」、同時成立矛盾「G3」、同時成立重複「なし」が設定されている。
さらに、同図においては、タスク1と実質的に同値の要素であるタスクt1が分析者により生成されたゴールモデルに含まれているものとする。ゴールモデル情報内のタスクt1の要素データには、要素ID「T999」、要素種別「タスク」、記述「タスクt1」、アクタ領域「悪意のある医療スタッフ」、上位関連「なし」、下位関連「なし」、同時成立矛盾「なし」、同時成立重複「なし」が設定されている。
【0043】
次に、セキュリティ要求分析支援装置10の動作について説明する。
図10は、セキュリティ要求分析支援装置10の処理概要を示すフローチャートである。
まず、セキュリティ要求分析支援装置10のゴールモデルファイル入出力部11は、外部記憶装置20から編集対象のゴールモデルファイルを読み込む(ステップS110)。この編集対象のゴールモデルファイルは、例えば、入力装置50により入力されたファイル名により特定される。ゴールモデル情報記憶部12は、ゴールモデルファイル入出力部11が外部記憶装置20から読み出したゴールモデルファイルを、ゴールモデル情報として格納する(ステップS120)。
【0044】
続いて、攻撃者モデル情報生成部14が、ゴールモデル情報制御部13を介してゴールモデル情報記憶部12からゴールモデル情報の入力を受ける(ステップS130)。攻撃者モデル情報生成部14は、ゴールモデル情報内の各要素データの記述に含まれる用語から、ドメインを検索するための検索式を生成してDB入出力部15へ出力する(ステップS140)。DB入出力部15は、入力された当該検索式により共通用語DB30を検索した結果の入力を受ける(ステップS150)。攻撃者モデル情報生成部14は、DB入出力部15から、ステップS150におけるドメイン検索結果の入力を受ける。
【0045】
続いて、ゴールモデル情報記憶部12は、ステップS150において受信した結果から、攻撃者モデル候補となる攻撃者モデルデータを検索するための検索式を生成してDB入出力部15へ出力する(ステップS160)。DB入出力部15は、入力された当該検索式により攻撃DB40を検索した結果を受信する(ステップS170)。攻撃者モデル情報生成部14は、DB入出力部15から、ステップS180における攻撃者モデル検索結果の入力を受ける。
【0046】
攻撃者モデル情報生成部14は、DB入出力部15から攻撃者モデルデータの検索結果の入力を受けると、これら攻撃者モデルデータを合わせて攻撃者モデル候補群とする(ステップS180)。攻撃者モデル情報生成部14により生成された攻撃者モデル候補群がゴールモデル情報制御部13に入力されると(ステップS190)、ゴールモデル情報制御部13は、入力された攻撃者モデル候補群内の攻撃者モデルデータで規定される攻撃者モデル候補をゴールモデル情報表示部16へ出力する。ゴールモデル情報表示部16は、攻撃者モデルデータが入力されると、当該データで示される攻撃者モデル候補を順に表示し、入力装置50により表示した攻撃者モデル候補の要/不要の情報の入力を受ける(ステップS200)。これにより、ゴールモデル情報制御部13は、要と入力された攻撃者モデル候補の攻撃者モデルデータを、現在のゴールモデル情報に追加してゴールモデル情報記憶部12に書き込む。
【0047】
攻撃者モデル候補群内のすべての攻撃者モデルデータについて要否が選択され、入力装置50により保存の指示が入力されると、ゴールモデルファイル入出力部11は、ゴールモデル情報記憶部12からゴールモデル情報の入力を受ける(ステップS210)。ゴールモデルファイル入出力部11は、入力されたゴールモデル情報が設定されたゴールモデルファイルを外部記憶装置20へ出力する(ステップS220)。外部記憶装置20は、ゴールモデルファイル入出力部11から入力されたゴールモデルファイルを記憶する。
【0048】
図11は、セキュリティ要求分析支援装置10内の攻撃者モデル情報生成部14において実行される処理のフローチャートである。
攻撃者モデル情報生成部14のゴールモデル情報入出力部14aは、図10のステップS130において、ゴールモデル情報制御部13がゴールモデル情報記憶部12から読み出したゴールモデル情報の入力を受ける(ステップS310)。字句抽出部14cは、ステップS310において入力されたゴールモデル情報から、各要素の属性を抽出する。具体的には、字句抽出部14cは、ゴールモデル情報に含まれる各要素データから記述情報を読み出し、この記述情報に含まれる語句を抽出する(ステップS320)。例えば、図1のゴールモデルであれば、アクタの記述「医療事務員」、「医者」、「患者」、タスクの記述「カルテ」、「管理」などの語句が抽出される。
【0049】
字句抽出部14cは、抽出した語句の同義語を読み出すための検索式K1と、共通用語DB30内に登録されているドメイン名のうち、当該ドメイン名に対応して記憶されている語句の中に、抽出した語句、検索式K1により取得した同義語が含まれている数が最も多いものを読み出すための検索式K2を生成する。制御部14bは、字句抽出部14cが生成した検索式K1及びK2をDB入出力部15へ出力し、DB入出力部15が共通用語DB30から得た検索式K2による検索結果を受信する。制御部14bがDB入出力部15から受信した検索式K2の検索結果の情報を字句抽出部14cへ出力する(ステップS330)。
【0050】
例えば、図1のゴールモデルであれば、検索式K1により、抽出した語句「医療事務員」に対応した「医療スタッフ」という同義語が読み出される。続いて、検索式K2により、全てのドメインの中から、「医療事務員」、「医者」、「患者」、「管理」、「医療スタッフ」のいずれかが、対応する語句に最も多く含まれるドメインを検索し、その結果、「医者」、「患者」、「医療スタッフ」という3つの語句が対応づけられている「医療ドメイン」が、検索結果として得られる。
【0051】
字句抽出部14cは、入力された検索結果により示されるドメインに対応した攻撃者モデルデータを読み出すための検索式K3を生成する。制御部14bは、字句抽出部14cが生成した検索式K3をDB入出力部15へ出力し、DB入出力部15が共通用語DB30から得た検索式K3による検索結果を受信する。制御部14bは、DB入出力部15から受信した検索式K3の検索結果の情報を攻撃モデル生成部14dへ出力する(ステップS340)。
【0052】
攻撃モデル生成部14dは、ステップS340において入力された検索式K3の検索結果により示される全ての攻撃者モデルデータの集合を攻撃者モデル候補群とする。そして、現在のゴールモデル情報と、攻撃者モデル候補群内の各攻撃者モデルデータとを参照して、冗長または重複する要素がある場合には、攻撃者モデルデータの示す攻撃者モデルの候補木を再構築するか、あるいは、攻撃者モデルデータ自体を削除する。攻撃モデル生成部14dは、冗長または重複する要素がなく、攻撃モデルの修正を行わなかった攻撃者モデルデータ、あるいは、冗長または重複する要素があったため、攻撃モデルを再構築した攻撃者モデルデータをゴールモデル情報制御部13に出力する(ステップS350、ステップS360:NO)。
【0053】
ゴールモデル情報制御部13は、入力された攻撃者モデルデータで示される攻撃者モデル候補を表示するようゴールモデル情報表示部16へ指示する。なお、このとき、攻撃者モデルデータの各要素データで示されるアクタ領域に、当該要素データで示される要素が表示されるようにする。ゴールモデル情報制御部13は、ゴールモデル情報表示部16により表示されている攻撃者モデル候補の要/不要の情報の入力を受ける。そして、要が入力された攻撃者モデル候補の攻撃者モデルデータを、ゴールモデル情報としてゴールモデル情報記憶部12に書き込む。攻撃モデル生成部14dは、全ての攻撃者モデル候補群内に含まれる攻撃者モデルデータについて再構築が必要か否かを判断し終えたかを判断し、再構築が必要か否かの判定を全ての攻撃者モデルデータについて完了した場合、処理を終了する(ステップS360:YES)。
【0054】
図12は、図11のステップS350において実行される攻撃者モデル候補の候補木再構築処理のフローチャートである。
攻撃モデル生成部14dは、現在のゴールモデル内の各アクタに含まれる要素の全てについて、当該要素と同値の要素の要素データが、攻撃DB40内に登録さているか否かの情報を読み出す(ステップS410)。具体的には、まず、ゴールモデル情報の要素のうち、同時成立不可要素と同値の要素を特定する。つまり、攻撃モデル生成部14dは、ゴールモデル情報記憶部12内に記憶されているゴールモデル情報内の各要素データから記述データを読み出す。そして、読み出した記述データの示す語句の類義語を検索するための検索式K4を生成する。制御部14bは、攻撃モデル生成部14dが生成した検索式K4をDB入出力部15に出力する。制御部14bは、DB入出力部15が、検索式K4により共通用語DB30から取得した類義語検索結果の入力を受け、攻撃モデル生成部14dへ出力する。
【0055】
攻撃モデル生成部14dは、類義語検索結果で示される類義語が記述データとして設定されている同時成立不可要素データを読み出すための検索式K5を生成する。制御部14bは、攻撃モデル生成部14dが生成した検索式K5をDB入出力部15に出力する。制御部14bは、DB入出力部15が、検索式K5により攻撃DB40から取得した同時成立不可要素データの検索結果の入力を受け、攻撃モデル生成部14dへ出力する。
このようにして、ゴールモデルに含まれている要素と同値の要素を示す同時成立不可要素データが得られると、当該同時成立不可要素データの同時成立矛盾、及び、同時成立重複から要素IDを読み出し、内部のメモリに保存する。
【0056】
なお、図11において、ドメインに対応した攻撃者モデルデータを読み出すための検索式K3とともに、検索式K3により読み出された攻撃者モデルデータ内の同時成立矛盾、同時成立重複の情報で特定される同時成立不可要素データを読み出すための検索式K5’を攻撃DB40に出力するようにしてもよい。この場合、攻撃モデル生成部14dは、類義語検索結果で示される類義語が記述データに設定されている同時成立不可要素データを、検索式K5’の検索結果として得た同時成立不可要素データの中から特定すればよい。
【0057】
図9を例にした場合、既に作成されているゴールモデルに、記述「タスクt1」のタスク(要素ID「T999」)があるとする。このとき、ゴールモデル情報に含まれる要素データからは、記述「タスクt1」が読み出され、共通用語DB30からは、「タスクt1」の類義語「タスク1」を含んだ検索結果が読み出される。この類義語「タスク1」が記述に設定され、かつ、同じ要素種別「タスク」、アクタ領域「悪意のある医療スタッフ」である同時成立不可要素データ(要素ID「T1」)の要素が、「タスクt1」が記述に設定されたゴールモデルのタスク(要素ID「T999」)と同値であると判断される。この同値であると判断された同時成立不可要素データ(要素ID「T1」)から読み出された同時成立矛盾の要素ID「G3」が、攻撃モデル生成部14d内のメモリに保存される。
【0058】
次に、攻撃モデル生成部14dは、攻撃者モデルデータ内の要素データの中に、ステップS410においてメモリに保持した要素IDにより特定されるものがあるか否かを判断する(ステップS420)。そして、メモリに保持した要素IDにより特定される要素データがあった場合、当該要素データ内の上位関連情報から、該当するノードの上位関連を判断する(ステップS430)。
【0059】
ステップS430において、上位関係が「なし」、または、「OR」であると判断した場合、当該要素が該当するノードの下位階層の全てのノード、および、自ノードを削除した形状の攻撃者モデルを表す攻撃者モデルデータを生成する(ステップS440)。具体的には、攻撃者モデルデータ内の要素データから、当該要素データを削除し、この削除した要素データ内の下位関連情報に要素IDが記述されていた場合には、当該要素IDにより特定される全ての要素データを削除し、さらに、この削除した要素データ内の下位関連情報に要素IDが記述されていた場合には、当該要素IDにより特定される全ての要素データを削除することを繰り返す。
【0060】
一方、ステップS430において、上位関係が「AND」であると判断した場合、当該要素が該当するノードの親ノード、当該要素が該当するノードと同階層の全てのノード、当該要素が該当するノードの下位階層の全てのノード、および、自ノードを削除した形状の攻撃者モデルを表す攻撃者モデルデータを生成する(ステップS450)。具体的には、攻撃者モデルデータ内の要素データから、当該要素データを削除するとともに、この削除した要素データの上位関連情報に記述されている上位及び同階層の要素の要素IDにより特定される要素データを全て削除する。さらに、この削除した要素データ内の下位関連情報に要素IDが記述されていた場合には、当該要素IDにより特定される全ての要素データを削除し、さらに、この削除した要素データ内の下位関連情報に要素IDが記述されていた場合には、当該要素IDにより特定される全ての要素データを削除することを、下位関連情報が「なし」となるまで繰り返す。
【0061】
攻撃モデル生成部14dは、ステップS440またはステップS450において再構築した攻撃者モデルを示す攻撃者モデルデータをゴールモデル情報制御部13に出力する(ステップS460)。ゴールモデル情報制御部13は、入力した攻撃者モデルデータにより示される、攻撃者モデルを候補としてゴールモデル情報表示部16に表示させる。
【0062】
なお、攻撃者モデルデータの選択が終了した後、再び、ゴールモデルが編集されてノードが追加された場合、そのノードが追加されたタイミング、あるいは、ノード追加後に、攻撃者モデルデータ更新指示が入力されたタイミングで、新たに追加されたノードの要素データについて、再び、図12のステップS410と同様の手順により、同値の同時成立不可要素データを特定する。そして、ゴールモデル情報記憶部12内に記憶されている、すなわち、ユーザに一旦選択された攻撃者モデルデータについて、図11と同様の手順により、新たに追加されたノードの要素と同値の要素を示す同時成立不可要素データとの同時成立性を確認する。そして、同時成立しない要素を削除したときに悪意ゴールが達成されない場合には、当該攻撃者モデルデータをゴールモデル情報記憶部12から削除するとともに、ゴールモデル情報表示部16が表示するゴールモデルから当該攻撃者モデルデータの表示を消去する。また、同時成立しない要素を削除したときにも悪意ゴールが達成される場合は、当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除して再構築を行った攻撃者モデルのデータを作成して、ゴールモデル情報記憶部12内の現在の攻撃者モデルデータと置き換えるとともに、ゴールモデル情報表示部16に、置き換え前の攻撃者モデルデータに基づいて表示されている現在の攻撃モデルの表示を、置き換え後の攻撃者モデルデータの示す新たなゴールモデルの表示に変更するよう指示することにより、削除した要素の表示を消去する。これにより、新たに追加されたノードについても、矛盾、冗長な攻撃者モデルデータの要素を削除することができる。
【0063】
上記実施の形態によれば、セキュリティ要求分析において、考慮を忘れやすい攻撃を発見できる可能性が高まるという効果がある。また、その際、不必要な分析は除去されるため、分析効率が高まる。また、ゴールモデルの作成過程で、要素の重複や矛盾を検証することもできる。これらの結果、セキュリティに関する要求分析の信頼性(網羅性や妥当性)が高まり、初心者であっても、容易にセキュリティ要求分析を行うことを支援することができる。また、処理コストを低減することも可能である。
【0064】
なお、上述のセキュリティ要求分析支援装置10、外部記憶装置20、共通用語DB30、攻撃DB40は、内部にコンピュータシステムを有している。そして、セキュリティ要求分析支援装置10の、外部記憶装置20、共通用語DB30、攻撃DB40の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
【0065】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【図面の簡単な説明】
【0066】
【図1】本発明の一実施の形態によるセキュリティ要求分析支援装置の動作概要を説明するための図である。
【図2】同実施の形態によるセキュリティ要求分析支援装置における攻撃者モデル再構築の処理概要を説明するための図である。
【図3】同実施の形態によるセキュリティ要求分析支援装置の機能ブロック図である。
【図4】同実施の形態によるセキュリティ要求分析支援装置の攻撃者モデル情報生成部内の機能ブロック図を示す。
【図5】同実施の形態による外部記憶装置に記憶される情報を示す図である。
【図6】同実施の形態によるゴールモデルファイルを示す図である。
【図7】同実施の形態による共通用語DBが保持する情報を示す図である。
【図8】同実施の形態による攻撃DBが保持する情報を示す図である。
【図9】同実施の形態による攻撃者モデルデータに含まれる要素データと、同時成立が矛盾する要素データの例を示す図である。
【図10】同実施の形態によるセキュリティ要求分析支援装置における処理概要を示すフローチャートである。
【図11】同実施の形態によるセキュリティ要求分析支援装置内の攻撃者モデル情報生成部における処理のフローチャートである。
【図12】同実施の形態によるセキュリティ要求分析支援装置内の攻撃者モデル情報生成部における候補木再構築処理のフローチャートである。
【図13】従来技術のゴール指向要求分析を用いたゴールモデルの分析例を示す。
【図14】従来技術によって拡張されたプロセスを示す図である。
【図15】図14に示すプロセスによって生成されたゴールモデルの例を示す。
【図16】図14に示すプロセスによって生成されたゴールモデルの例を示す。
【図17】ゴールモデルに冗長な要素が含まれている場合の例を示す図である。
【符号の説明】
【0067】
10…セキュリティ要求分析支援装置
11…ゴールモデルファイル入出力部
12…ゴールモデル情報記憶部
13…ゴールモデル情報制御部
14…攻撃者モデル情報生成部
14a…ゴールモデル情報入出力部
14b…制御部
14c…字句抽出部
14d…攻撃モデル生成部
15…DB入出力部
16…ゴールモデル情報表示部
20…外部記憶装置
30…共通用語DB
40…攻撃DB
50…入力装置
【特許請求の範囲】
【請求項1】
開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち1以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置であって、
ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部と、
悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベースと、
前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部と、
前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部と、
前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部と、
を備えることを特徴とするセキュリティ要求分析支援装置。
【請求項2】
ドメインに対応する語句、及び、当該語句の類似語の情報を記憶する共通用語データベースをさらに備え、
前記ゴールモデルデータ内の要素の情報は、要素の説明を示す記述の情報を含み、
前記攻撃者モデル情報生成部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の情報から、当該要素の記述に使用されている語句を抽出し、
前記データベース入出力部は、前記ゴールモデルが属するドメインとして、前記攻撃者モデル情報生成部により抽出された語句、及び、当該抽出された語句の類似語が対応付けられているドメインを前記共通用語データベースから読み出す、
ことを特徴とする請求項1に記載のセキュリティ要求分析支援装置。
【請求項3】
前記攻撃データベースは、攻撃者モデルに含まれる要素と同時成立しない要素の説明を示す記述の情報を少なくとも含む同時成立不可要素データをさらに記憶し、
前記攻撃者モデルに含まれる要素と同時成立しない要素の記述に含まれる語句の同義語を記憶する共通用語データベースをさらに備え、
前記データベース入出力部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の記述に使用されている語句の同義語の情報を前記共通用語データベースから読み出すとともに、前記同時成立不可要素データを前記攻撃データベースから読み出し、
前記攻撃者モデル情報生成部は、前記データベース入出力部が読み出した同義語の情報と同時成立不可要素データの入力を受け、当該同時成立不可要素データのうち、前記同義語が記述に含まれる同時成立不可要素データを特定し、前記攻撃者モデル候補群の中から、この特定した同時成立不可要素により示される同時成立しない要素のデータが含まれている攻撃者モデルデータを、前記ゴールモデルデータにより示される要素とは同時に成立しない要素が含まれている攻撃者モデルデータであると判断する、
ことを特徴とする請求項1に記載のセキュリティ要求分析支援装置。
【請求項4】
前記ゴールモデル情報記憶部は、前記ゴールモデル情報制御部により出力が指示された攻撃者モデルデータの中から、ユーザにより選択された攻撃者モデルデータの情報を記憶し、
前記攻撃者モデル情報生成部は、前記ゴールモデルに要素が追加された場合、前記ゴールモデル情報記憶部内に記憶されている前記攻撃者モデルデータの示す同時成立しない要素の情報に基づいて、新たに追加された要素と同時成立しない要素のデータが含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、悪意ゴールが達成されない場合には、当該攻撃者モデルデータを前記ゴールモデル情報記憶部から削除し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、特定した攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更し、
前記ゴールモデル情報制御部は、前記攻撃者モデル情報生成部により削除された攻撃者モデルデータの示す攻撃者モデルを表示から消去するとともに、変更前の攻撃者モデルの表示を変更された前記攻撃者モデルデータの示す新たな攻撃者モデルの表示に変更するよう指示する、
ことを特徴とする請求項1に記載のセキュリティ要求分析支援装置。
【請求項5】
開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち1以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置として用いられるコンピュータを、
ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部、
悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベース、
前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部、
前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部、
前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部、
として機能させることを特徴とするコンピュータプログラム。
【請求項1】
開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち1以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置であって、
ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部と、
悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベースと、
前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部と、
前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部と、
前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部と、
を備えることを特徴とするセキュリティ要求分析支援装置。
【請求項2】
ドメインに対応する語句、及び、当該語句の類似語の情報を記憶する共通用語データベースをさらに備え、
前記ゴールモデルデータ内の要素の情報は、要素の説明を示す記述の情報を含み、
前記攻撃者モデル情報生成部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の情報から、当該要素の記述に使用されている語句を抽出し、
前記データベース入出力部は、前記ゴールモデルが属するドメインとして、前記攻撃者モデル情報生成部により抽出された語句、及び、当該抽出された語句の類似語が対応付けられているドメインを前記共通用語データベースから読み出す、
ことを特徴とする請求項1に記載のセキュリティ要求分析支援装置。
【請求項3】
前記攻撃データベースは、攻撃者モデルに含まれる要素と同時成立しない要素の説明を示す記述の情報を少なくとも含む同時成立不可要素データをさらに記憶し、
前記攻撃者モデルに含まれる要素と同時成立しない要素の記述に含まれる語句の同義語を記憶する共通用語データベースをさらに備え、
前記データベース入出力部は、前記ゴールモデル情報記憶部内のゴールモデルデータにより示される要素の記述に使用されている語句の同義語の情報を前記共通用語データベースから読み出すとともに、前記同時成立不可要素データを前記攻撃データベースから読み出し、
前記攻撃者モデル情報生成部は、前記データベース入出力部が読み出した同義語の情報と同時成立不可要素データの入力を受け、当該同時成立不可要素データのうち、前記同義語が記述に含まれる同時成立不可要素データを特定し、前記攻撃者モデル候補群の中から、この特定した同時成立不可要素により示される同時成立しない要素のデータが含まれている攻撃者モデルデータを、前記ゴールモデルデータにより示される要素とは同時に成立しない要素が含まれている攻撃者モデルデータであると判断する、
ことを特徴とする請求項1に記載のセキュリティ要求分析支援装置。
【請求項4】
前記ゴールモデル情報記憶部は、前記ゴールモデル情報制御部により出力が指示された攻撃者モデルデータの中から、ユーザにより選択された攻撃者モデルデータの情報を記憶し、
前記攻撃者モデル情報生成部は、前記ゴールモデルに要素が追加された場合、前記ゴールモデル情報記憶部内に記憶されている前記攻撃者モデルデータの示す同時成立しない要素の情報に基づいて、新たに追加された要素と同時成立しない要素のデータが含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、悪意ゴールが達成されない場合には、当該攻撃者モデルデータを前記ゴールモデル情報記憶部から削除し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、特定した攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更し、
前記ゴールモデル情報制御部は、前記攻撃者モデル情報生成部により削除された攻撃者モデルデータの示す攻撃者モデルを表示から消去するとともに、変更前の攻撃者モデルの表示を変更された前記攻撃者モデルデータの示す新たな攻撃者モデルの表示に変更するよう指示する、
ことを特徴とする請求項1に記載のセキュリティ要求分析支援装置。
【請求項5】
開発システムによって達成すべきゴールと、当該ゴールを達成するためのゴールまたはタスク、あるいは、リソースのうち1以上とを要素として含むゴールモデルに、セキュリティを脅かす攻撃者のモデルの候補を提示することによりセキュリティ分析を支援するセキュリティ要求分析支援装置として用いられるコンピュータを、
ゴールモデルを構成する要素と、当該要素間の依存関係との情報を示すゴールモデルデータを記憶するゴールモデル情報記憶部、
悪意のある攻撃者が目標とするゴールである悪意ゴールを達成するための要素、及び、当該要素間の依存関係により示される攻撃者モデルと、矛盾または重複のため当該攻撃者モデルを構成する要素とは同時成立しない要素との情報からなる攻撃者モデルデータをドメインに対応させて記憶する攻撃データベース、
前記ゴールモデルが属するドメインの情報に対応した攻撃者モデルデータを前記攻撃データベースから読み出すデータベース入出力部、
前記データベース入出力部が読み出した攻撃者モデルデータの示す同時成立しない要素の情報と、前記ゴールモデル情報記憶部内のゴールモデルデータの示す要素の情報とに基づいて、当該攻撃者モデルデータの中から、当該ゴールモデルデータの示す要素とは同時成立しない要素が含まれている攻撃者モデルデータを特定し、さらに、特定した攻撃者モデルデータの示す要素と、当該要素間の依存関係との情報から、同時成立しない前記要素を削除したときに悪意ゴールが達成されるか否かを判断し、同時成立しない前記要素を削除したときにも悪意ゴールが達成される場合は、当該攻撃者モデルデータを、当該攻撃者モデルデータの示す攻撃者モデルから同時成立しない当該要素を削除するとともに、当該要素を削除した場合に成立しない要素を削除した新たな攻撃者モデルを示すよう変更する攻撃者モデル情報生成部、
前記攻撃者モデル情報生成部により、前記ゴールモデルデータの示す要素と同時成立しない要素が含まれていないと判断された前記攻撃者モデルデータ、及び、変更された攻撃者モデルデータの示す攻撃者モデルを表示するよう指示するゴールモデル情報制御部、
として機能させることを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2008−250680(P2008−250680A)
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願番号】特願2007−91242(P2007−91242)
【出願日】平成19年3月30日(2007.3.30)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願日】平成19年3月30日(2007.3.30)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】
[ Back to top ]