(57)【特許請求の範囲】
【請求項１】
セキュリティ対策の対象となる対象システムの構成を示すシステム構成データに基づいて、前記対象システムを複数のサブシステムに分割するシステム分割部と、
前記対象システムにおけるセキュリティの脅威の内容を示す脅威データに基づいて、前記複数のサブシステムから前記脅威が発生するサブシステムをルートシステムとして選択するルートシステム選択部と、
前記ルートシステムに対してアタックツリー生成処理を実行することにより、前記ルートシステムのアタックツリーをルートツリーとして生成するルートツリー生成部と、
前記対象システムにおける前記ルートシステムへの侵入経路を示す侵入経路データに基づいて、前記複数のサブシステムから、前記侵入経路に位置する１つ以上のサブシステムを１つ以上の子孫システムとして選択する子孫システム選択部と、
前記１つ以上の子孫システムのそれぞれに対して前記アタックツリー生成処理を実行することにより、前記１つ以上の子孫システムに対応する１つ以上のアタックツリーを１つ以上の子孫ツリーとして生成する子孫ツリー生成部と、
前記ルートツリーと前記１つ以上の子孫ツリーとを統合することによって、前記対象システムのアタックツリーを生成するサブアタックツリー統合部と、
を備えるアタックツリー生成装置。
【請求項２】
前記システム構成データは、通信を行う複数の装置と前記複数の装置を繋ぐ１つ以上の通信路とを前記対象システムの構成として示し、
前記システム分割部は、前記複数の装置を表す複数のノードと前記１つ以上の通信路を表す１つ以上のエッジとを含んで前記対象システムを表すシステム構成グラフを前記システム構成データに基づいて生成し、前記システム構成グラフの中の各ノードに対してグラフ理論における中心性を評価し、評価結果に基づいて前記対象システムの分割点となる１つ以上のノードを決定し、決定した１つ以上のノードのそれぞれを分割点にして、前記システム構成グラフで表された前記対象システムを前記複数のサブシステムに分割する
請求項１に記載のアタックツリー生成装置。
【請求項３】
前記ルートツリー生成部は、前記脅威を表すルートノードを持つアタックツリーを前記ルートツリーとして生成する
請求項１または請求項２に記載のアタックツリー生成装置。
【請求項４】
前記ルートツリー生成部は、前記脅威を表すノードをルートノードにして前記アタックツリー生成処理を開始し、生成中のアタックツリーに含まれる１つ以上の経路のそれぞれに前記ルートシステムへの侵入を意味する侵入ノードが現れた段階でそれぞれの経路に現れた侵入ノードをそれぞれの経路における末端ノードにして前記アタックツリー生成処理を中断する、ことによって前記ルートツリーを生成する
請求項３に記載のアタックツリー生成装置。
【請求項５】
前記子孫システム選択部は、前記ルートシステムを親システムとして扱い、前記侵入経路において前記親システムの１つ前に位置するサブシステム、を子システムとして選択し、
前記子孫ツリー生成部は、前記ルートツリーを親ツリーとして扱い、前記親ツリーの１つ以上の末端ノードのそれぞれをルートノードにして前記アタックツリー生成処理を開始し、生成中のアタックツリーに含まれる１つ以上の経路のそれぞれに前記子システムへの侵入を意味する侵入ノードが現れた段階でそれぞれの経路に現れた侵入ノードをそれぞれの経路における末端ノードにして前記アタックツリー生成処理を中断する、ことによって１つ以上の子ツリーを生成する
請求項４に記載のアタックツリー生成装置。
【請求項６】
前記子孫システム選択部は、前回の子システムを今回の親システムとして扱い、前記侵入経路において前記今回の親システムの１つ前に位置するサブシステム、を今回の子システムとして選択し、
前記子孫ツリー生成部は、前回の１つ以上の子ツリーのそれぞれを今回の親ツリーとして扱い、今回の親ツリーの１つ以上の末端ノードのそれぞれをルートノードにしてアタックツリー生成処理を開始し、生成中のアタックツリーに含まれる１つ以上の経路のそれぞれに前記今回の子システムへの侵入を意味する侵入ノードが現れた段階でそれぞれの経路に現れた侵入ノードをそれぞれの経路における末端ノードにして前記アタックツリー生成処理を中断する、ことによって前記今回の親ツリーに対する１つ以上の子ツリーを生成する
請求項５に記載のアタックツリー生成装置。
【請求項７】
前記子孫システム選択部は、前記ルートシステムを親システムとして扱い、前記侵入経路において前記親システムの１つ前に位置するサブシステム、を子システムとして選択し、
前記子孫ツリー生成部は、前記ルートツリーを親ツリーとして扱い、前記親ツリーの１つ以上の末端ノードを１つ以上の末端ノードグループに分け、前記親ツリーの前記１つ以上の末端ノードグループのそれぞれをルートノードにしてアタックツリー生成処理を開始し、生成中のアタックツリーに含まれる１つ以上の経路のそれぞれに前記子システムへの侵入を意味する侵入ノードが現れた段階でそれぞれの経路に現れた侵入ノードをそれぞれの経路における末端ノードにして前記アタックツリー生成処理を中断する、ことによって１つ以上の子ツリーを生成する
請求項４に記載のアタックツリー生成装置。
【請求項８】
前記子孫システム選択部は、前回の子システムを今回の親システムとして扱い、前記侵入経路において前記今回の親システムの１つ前に位置するサブシステム、を今回の子システムとして選択し、
前記子孫ツリー生成部は、前回の１つ以上の子ツリーのそれぞれを今回の親ツリーとして扱い、今回の親ツリーの１つ以上の末端ノードを１つ以上の末端ノードグループに分け、前記今回の親ツリーの前記１つ以上の末端ノードグループのそれぞれをルートノードにしてアタックツリー生成処理を開始し、生成中のアタックツリーに含まれる１つ以上の経路のそれぞれに前記今回の子システムへの侵入を意味する侵入ノードが現れた段階でそれぞれの経路に現れた侵入ノードをそれぞれの経路における末端ノードにして前記アタックツリー生成処理を中断する、ことによって前記今回の親ツリーに対する１つ以上の子ツリーを生成する
請求項７に記載のアタックツリー生成装置。
【請求項９】
前記子孫システム選択部は、前記対象システムにおける前記ルートシステムへの複数の侵入経路がある場合、侵入経路毎に１つ以上の子孫システムである子孫システム群を選択し、
前記子孫ツリー生成部は、子孫システム群毎に１つ以上の子孫ツリーである子孫ツリー群を生成し、
前記サブアタックツリー統合部は、前記複数の侵入経路に対応する複数の子孫ツリー群を検索することによって、共通の親ツリーの共通の末端ノードと同じルートノードを持つ複数の子ツリーである兄弟ツリーを見つけ、論理和ゲートを介して前記兄弟ツリーのそれぞれのルートノードを前記共通の末端ノードに接続する
請求項５から請求項８のいずれか１項に記載のアタックツリー生成装置。
【請求項１０】
前記アタックツリー生成装置は、さらに、
複数のシステム種別と複数のルール基礎情報とが互いに対応付けられたルール基礎情報データベースから、前記ルートシステムの種別に対応するルール基礎情報をルートシステム用基礎情報として取得し、前記基礎情報データベースから、それぞれの子孫システムの種別に対応するルール基礎情報を子孫システム用基礎情報として取得する専用基礎情報取得部と、
前記複数のルール基礎情報のうちの前記ルートシステム用基礎情報だけを用いて推論ルール生成処理を実行することにより、ルートシステム用推論ルールを生成し、前記複数のルール基礎情報のうちのそれぞれの子孫システム用基礎情報だけを用いて前記推論ルール生成処理を実行することにより、それぞれの子孫システム用推論ルールを生成する専用推論ルール生成部とを備え、
前記ルートツリー生成部は、前記ルートシステム用推論ルールを用いて前記アタックツリー生成処理を実行することにより、前記ルートツリーを生成し、
前記子孫ツリー生成部は、それぞれの子孫システム用推論ルールを用いて前記アタックツリー生成処理を実行することにより、それぞれの子孫ツリーを生成する
請求項１から請求項８のいずれか１項に記載のアタックツリー生成装置。
【請求項１１】
システム分割部が、セキュリティ対策の対象となる対象システムの構成を示すシステム構成データに基づいて、前記対象システムを複数のサブシステムに分割し、
ルートシステム選択部が、前記対象システムにおけるセキュリティの脅威の内容を示す脅威データに基づいて、前記複数のサブシステムから前記脅威が発生するサブシステムをルートシステムとして選択し、
ルートツリー生成部が、前記ルートシステムに対してアタックツリー生成処理を実行することにより、前記ルートシステムのアタックツリーをルートツリーとして生成し、
子孫システム選択部が、前記対象システムにおける前記ルートシステムへの侵入経路を示す侵入経路データに基づいて、前記複数のサブシステムから、前記侵入経路に位置する１つ以上のサブシステムを１つ以上の子孫システムとして選択し、
子孫ツリー生成部が、前記１つ以上の子孫システムのそれぞれに対して前記アタックツリー生成処理を実行することにより、前記１つ以上の子孫システムに対応する１つ以上のアタックツリーを１つ以上の子孫ツリーとして生成し、
サブアタックツリー統合部が、前記ルートツリーと前記１つ以上の子孫ツリーとを統合することによって、前記対象システムのアタックツリーを生成する
アタックツリー生成方法。
【請求項１２】
セキュリティ対策の対象となる対象システムの構成を示すシステム構成データに基づいて、前記対象システムを複数のサブシステムに分割するシステム分割処理と、
前記対象システムにおけるセキュリティの脅威の内容を示す脅威データに基づいて、前記複数のサブシステムから前記脅威が発生するサブシステムをルートシステムとして選択するルートシステム選択処理と、
前記ルートシステムに対してアタックツリー生成処理を実行することにより、前記ルートシステムのアタックツリーをルートツリーとして生成するルートツリー生成処理と、
前記対象システムにおける前記ルートシステムへの侵入経路を示す侵入経路データに基づいて、前記複数のサブシステムから、前記侵入経路に位置する１つ以上のサブシステムを１つ以上の子孫システムとして選択する子孫システム選択処理と、
前記１つ以上の子孫システムのそれぞれに対して前記アタックツリー生成処理を実行することにより、前記１つ以上の子孫システムに対応する１つ以上のアタックツリーを１つ以上の子孫ツリーとして生成する子孫ツリー生成処理と、
前記ルートツリーと前記１つ以上の子孫ツリーとを統合することによって、前記対象システムのアタックツリーを生成するサブアタックツリー統合処理と、
をコンピュータに実行させるためのアタックツリー生成プログラム。
【請求項１３】
セキュリティ対策の対象となる対象システムの種別とを示すシステム構成データに基づいて、複数のシステム種別と複数のルール基礎情報とが互いに対応付けられたルール基礎情報データベースから、前記対象システムの種別に対応するルール基礎情報を専用基礎情報として取得する専用基礎情報取得部と、
前記複数のルール基礎情報のうちの前記専用基礎情報だけを用いて推論ルール生成処理を実行することにより、前記対象システムの専用推論ルールを生成する専用推論ルール生成部と、
前記専用推論ルールを用いてアタックツリー生成処理を実行することにより、前記対象システムのアタックツリーを生成するアタックツリー生成部と、
を備えるアタックツリー生成装置。
【請求項１４】
専用基礎情報取得部が、セキュリティ対策の対象となる対象システムの種別とを示すシステム構成データに基づいて、複数のシステム種別と複数のルール基礎情報とが互いに対応付けられたルール基礎情報データベースから、前記対象システムの種別に対応するルール基礎情報を専用基礎情報として取得し、
専用推論ルール生成部が、前記複数のルール基礎情報のうちの前記専用基礎情報だけを用いて推論ルール生成処理を実行することにより、前記対象システムの専用推論ルールを生成し、
アタックツリー生成部が、前記専用推論ルールを用いてアタックツリー生成処理を実行することにより、前記対象システムのアタックツリーを生成する
アタックツリー生成方法。
【請求項１５】
セキュリティ対策の対象となる対象システムの種別とを示すシステム構成データに基づいて、複数のシステム種別と複数のルール基礎情報とが互いに対応付けられたルール基礎情報データベースから、前記対象システムの種別に対応するルール基礎情報を専用基礎情報として取得する専用基礎情報取得処理と、
前記複数のルール基礎情報のうちの前記専用基礎情報だけを用いて推論ルール生成処理を実行することにより、前記対象システムの専用推論ルールを生成する専用推論ルール生成処理と、
前記専用推論ルールを用いてアタックツリー生成処理を実行することにより、前記対象システムのアタックツリーを生成するアタックツリー生成処理と、
をコンピュータに実行させるためのアタックツリー生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ対策の対象となるシステムのアタックツリーを生成する技術に関するものである。
【背景技術】
【０００２】
近年、各企業において、情報システムおよび制御システムに対するサイバー攻撃が深刻化しており、十分なセキュリティ対策が求められている。
セキュリティ対策を支援する技術として、アタックツリー自動生成ツールが提案されている。このツールは、分析の対象となるシステムの構成情報を入力にして、サイバー攻撃が発生するまでのシナリオ（攻撃シナリオ）を分析する。例えば、システムの構成情報は、装置、通信路、アプリケーションおよびセキュリティ対策などの情報である。
アタックツリー自動生成ツールから出力される１つ以上の攻撃シナリオがツリー状に統合されたものがアタックツリーである。
アタックツリーの中には、攻撃される装置、攻撃されるアプリケーションおよび攻撃手法などの攻撃情報が記載されている。そのため、アタックツリーを参照することにより、システムの開発者はセキュリティ対策を検討することができる。【０００３】
非特許文献１には、アタックツリーに関する記載が開示されている。【０００４】
非特許文献２および非特許文献３には、論理推論型のアタックツリー自動生成ツールが提案されている。
論理推論型のアタックツリー自動生成ツールでは、サイバー攻撃が発生する条件が論理的な命題として定義される。このツールは、分析対象システムの構成情報を論理式に変換し、形式的な推論によってアタックツリーを生成する。【０００５】
非特許文献２は、２０１３年までに提案されたアタックツリー自動生成ツールのサーベイ論文である。
非特許文献２において、ＴＡＢＬＥ  １．  Ａｔｔａｃｋ  Ｇｒａｐｈ  Ｇｅｎｅｒａｔｉｏｎ  ａｎｄ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  Ｔｏｏｌｓ  Ｃｏｍｐａｒｉｓｏｎ中のＡｔｔａｃｋ  Ｇｒａｐｈ  ＴｙｐｅがＬｏｇｉｃａｌ  ａｔｔａｃｋ  ｇｒａｐｈであるものが、論理推論型のアタックツリー自動生成ツールに相当する。【０００６】
非特許文献３では、ＭｕｌＶＡＬと呼ばれるアタックツリー自動生成ツールが提案されている。
ＭａｌＶＡＬでは、Ｐｒｏｌｏｇと呼ばれる論理プログラミング言語が用いられる。ＭａｌＶＡＬは、一階述語論理ベースの推論を行い、アタックツリーを生成する。計算量は、システムの規模Ｎに対し、Ｎの２乗からＮの３乗のオーダーとされている。【０００７】
特許文献１については、実施の形態で言及する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第６０５８２４６号公報
【非特許文献】
【０００９】
【非特許文献１】Ｓｃｈｎｅｉｅｒ，  Ｂｒｕｃｅ  （Ｄｅｃｅｍｂｅｒ  １９９９）．  “Ａｔｔａｃｋ  Ｔｒｅｅｓ”，  ＜ｈｔｔｐｓ：／／ｗｗｗ．ｓｃｈｎｅｉｅｒ．ｃｏｍ／ａｃａｄｅｍｉｃ／ａｒｃｈｉｖｅｓ／１９９９／１２／ａｔｔａｃｋ＿ｔｒｅｅｓ．ｈｔｍｌ＞
【非特許文献２】Ｓｈｅｎｇｗｅｉ  Ｙｉ，  Ｙｏｎｇ  Ｐｅｎｇ，  Ｑｉ  Ｘｉｏｎｇ，  Ｔｉｎｇ  Ｗａｎｇ，  Ｚｈｏｎｇｈｕａ  Ｄａｉ，  Ｈａｉｈｕｉ  Ｇａｏ，  Ｊｕｎｆｅｎｇ  Ｘｕ，  Ｊｉｔｅｎｇ  Ｗａｎｇ，  Ｌｉｊｕａｎ  Ｘｕ  ，  “Ｏｖｅｒｖｉｅｗ  ｏｎ  ａｔｔａｃｋ  ｇｒａｐｈ  ｇｅｎｅｒａｔｉｏｎ  ａｎｄ  ｖｉｓｕａｌｉｚａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ．，”  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｎｔｉ−Ｃｏｕｎｔｅｒｆｅｉｔｉｎｇ，  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  （ＡＳＩＤ），  ２０１３．
【非特許文献３】Ｘ．  Ｏｕ，  Ｓ．  Ｇｏｖｉｎｄａｖａｊｈａｌａ，  ａｎｄ  Ａ．  Ａｐｐｅｌ．，  “ＭｕｌＶＡＬ：  Ａ  ｌｏｇｉｃｂａｓｅｄ  ｎｅｔｗｏｒｋ  ｓｅｃｕｒｉｔｙ  ａｎａｌｙｚｅｒ．，”  １４ｔｈ  ＵＳＥＮＩＸ  Ｓｅｃｕｒｉｔｙ  Ｓｙｍｐｏｓｉｕｍ，  ｐａｇｅｓ  １１３−１２８，  ２００５
【発明の概要】
【発明が解決しようとする課題】
【００１０】
論理推論型のアタックツリー自動生成ツールには、システムの規模に対して多項式オーダーで計算量が増大する、という課題がある。
そのため、アタックツリーを用いた対策の検討作業に時間がかかり、システム開発のコストが増加してしまう。【００１１】
本発明は、アタックツリーの生成に要する計算量を削減できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明のアタックツリー生成装置は、
セキュリティ対策の対象となる対象システムの構成を示すシステム構成データに基づいて、前記対象システムを複数のサブシステムに分割するシステム分割部と、
前記対象システムにおけるセキュリティの脅威の内容を示す脅威データに基づいて、前記複数のサブシステムから前記脅威が発生するサブシステムをルートシステムとして選択するルートシステム選択部と、
前記ルートシステムに対してアタックツリー生成処理を実行することにより、前記ルートシステムのアタックツリーをルートツリーとして生成するルートツリー生成部と、
前記対象システムにおける前記ルートシステムへの侵入経路を示す侵入経路データに基づいて、前記複数のサブシステムから、前記侵入経路に位置する１つ以上のサブシステムを１つ以上の子孫システムとして選択する子孫システム選択部と、
前記１つ以上の子孫システムのそれぞれに対して前記アタックツリー生成処理を実行することにより、前記１つ以上の子孫システムに対応する１つ以上のアタックツリーを１つ以上の子孫ツリーとして生成する子孫ツリー生成部と、
前記ルートツリーと前記１つ以上の子孫ツリーとを統合することによって、前記対象システムのアタックツリーを生成するサブアタックツリー統合部と、を備える。
【発明の効果】
【００１３】
本発明によれば、対象システムのアタックツリーの生成に要する計算量を削減することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１におけるアタックツリー生成装置１００の構成図。
【図２】実施の形態１における記憶部１９０の構成図。
【図３】実施の形態１におけるアタックツリー生成方法（概要）のフローチャート。
【図４】実施の形態１におけるルートツリー９１０を示す図。
【図５】実施の形態１における子ツリー９２０＿１を示す図。
【図６】実施の形態１におけるルートツリー９１０の別例を示す図。
【図７】実施の形態１におけるアタックツリー９００を示す図。
【図８】実施の形態１におけるアタックツリー９００の別例を示す図。
【図９】実施の形態１におけるアタックツリー生成方法（詳細）のフローチャート。
【図１０】実施の形態１におけるサブアタックツリー群生成処理（Ｓ１３０）のフローチャート。
【図１１】実施の形態１における子孫ツリー群生成処理（Ｓ１３３）のフローチャート。
【図１２】実施の形態２におけるアタックツリー生成装置２００の構成図。
【図１３】実施の形態２における記憶部２９０の構成図。
【図１４】実施の形態２におけるアタックツリー生成方法のフローチャート。
【図１５】実施の形態３におけるアタックツリー生成装置３００の構成図。
【図１６】実施の形態３におけるアタックツリー生成方法のフローチャート。
【図１７】実施の形態４におけるアタックツリー生成装置４００の構成図。
【図１８】実施の形態４におけるアタックツリー生成方法（概要）のフローチャート。
【図１９】実施の形態４におけるアタックツリー生成方法（詳細）のフローチャート。
【図２０】実施の形態５におけるアタックツリー生成装置５００の構成図。
【図２１】実施の形態５におけるアタックツリー生成方法のフローチャート。
【図２２】実施の形態におけるアタックツリー生成装置（１００，２００，３００）のハードウェア構成図。
【発明を実施するための形態】
【００１５】
実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１６】
実施の形態１．
アタックツリー生成装置１００について、図１から図１１に基づいて説明する。
アタックツリー生成装置１００は、複数のサブシステムのそれぞれのアタックツリーを生成し、複数のサブシステムに対応する複数のアタックツリーを統合する。これにより、システム全体のアタックツリーが得られる。
【００１７】
＊＊＊構成の説明＊＊＊
図１に基づいて、アタックツリー生成装置１００の構成を説明する。
アタックツリー生成装置１００は、プロセッサ１０１とメモリ１０２と補助記憶装置１０３と入出力インタフェース１０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００１８】
プロセッサ１０１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ１０２は揮発性の記憶装置である。メモリ１０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ１０２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ１０２に記憶されたデータは必要に応じて補助記憶装置１０３に保存される。
補助記憶装置１０３は不揮発性の記憶装置である。例えば、補助記憶装置１０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、またはフラッシュメモリである。補助記憶装置１０３に記憶されたデータは必要に応じてメモリ１０２にロードされる。
入出力インタフェース１０４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース１０４はＵＳＢ端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。ＵＳＢはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略称である。
【００１９】
アタックツリー生成装置１００は、システム分割部１１０と侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０といった要素を備える。これらの要素はソフトウェアで実現される。
侵入経路予測部１２０は、侵入データ取得部１２１とルートシステム選択部１２２と侵入経路リスト生成部１２３とを備える。
サブアタックツリー生成部１３０は、ルートツリー生成部１３１と子孫システム選択部１３２と子孫ツリー生成部１３３とを備える。
【００２０】
補助記憶装置１０３には、システム分割部１１０と侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０としてコンピュータを機能させるためのアタックツリー生成プログラムが記憶されている。アタックツリー生成プログラムは、メモリ１０２にロードされて、プロセッサ１０１によって実行される。
さらに、補助記憶装置１０３にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ１０２にロードされて、プロセッサ１０１によって実行される。
つまり、プロセッサ１０１は、ＯＳを実行しながら、アタックツリー生成プログラムを実行する。
【００２１】
アタックツリー生成プログラムの入出力データは記憶部１９０に記憶される。
メモリ１０２は記憶部１９０として機能する。但し、補助記憶装置１０３、プロセッサ１０１内のレジスタおよびプロセッサ１０１内のキャッシュメモリなどの記憶装置が、メモリ１０２の代わりに、又は、メモリ１０２と共に、記憶部１９０として機能してもよい。
【００２２】
アタックツリー生成装置１００は、プロセッサ１０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ１０１の役割を分担する。
【００２３】
アタックツリー生成プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
【００２４】
図２に基づいて、記憶部１９０の構成を説明する。
記憶部１９０には、システム構成データ１９１、脅威リスト１９２、推論ルール１９３および侵入経路リスト１９４などが記憶される。これらのデータの内容については後述する。
【００２５】
＊＊＊動作の説明＊＊＊
アタックツリー生成装置１００の動作はアタックツリー生成方法に相当する。また、アタックツリー生成方法の手順はアタックツリー生成プログラムの手順に相当する。
【００２６】
セキュリティ対策の対象となるシステムを「対象システム」と称する。
対象システムにおけるセキュリティの脅威を「対象脅威」と称する。
【００２７】
図３に基づいて、アタックツリー生成方法の概要を説明する。
ステップＳ１０１において、システム分割部１１０は、システム構成データ１９１に基づいて、対象システムを複数のサブシステムに分割する。
システム構成データ１９１は、対象システムの構成を示すデータである。
サブシステムは、対象システムの一部を構成するシステムである。
【００２８】
ステップＳ１０２において、ルートシステム選択部１２２は、対象脅威の内容を示す脅威データに基づいて、複数のサブシステムから、対象脅威が発生するサブシステムを選択する。選択されるサブシステムを「ルートシステム」と称する。
対象脅威の内容を示す脅威データは、脅威リスト１９２に含まれる。
【００２９】
ステップＳ１０３において、ルートツリー生成部１３１は、ルートシステムに対してアタックツリー生成処理を実行することにより、ルートシステムのアタックツリーを生成する。生成されるアタックツリーを「ルートツリー」と称する。
アタックツリー生成処理は、アタックツリーを生成するための任意の処理である。
アタックツリーは、システムセキュリティにおける脅威が発生するまでの攻撃過程を表すツリー状のグラフである。
【００３０】
ルートツリー生成部１３１は、ルートツリーを以下のように生成する。
ルートツリー生成部１３１は、対象脅威を表すルートノードを持つアタックツリーを生成する。生成されるアタックツリーがルートツリーである。
ルートツリー生成部１３１は、対象脅威を表すノードをルートノードにしてアタックツリー生成処理を開始する。そして、ルートツリー生成部１３１は、生成中のアタックツリーに含まれる１つ以上の経路のそれぞれにルートシステムへの侵入を意味する侵入ノードが現れた段階で、それぞれの経路に現れた侵入ノードをそれぞれの経路における末端ノードにしてアタックツリー生成処理を中断する。中断時のアタックツリーがルートツリーである。
【００３１】
図４に基づいて、ルートツリー９１０を説明する。
ルートツリー９１０は、対象システムのアタックツリーの一例である。
【００３２】
ルートツリー９１０は、ルートノード９１１を有する。
ルートノード９１１は、対象脅威を表す。
【００３３】
ルートツリー９１０は、内部ノード９１２を有する。
内部ノード９１２は、ルートノード９１１から末端ノード９１３＿１までの経路の途中に位置し、攻撃活動（１）を表す。
【００３４】
ルートツリー９１０は、末端ノード（９１３＿１〜９１３＿３）を有する。末端ノード（９１３＿１〜９１３＿３）を特定しない場合、それぞれを末端ノード９１３と称する。
それぞれの末端ノード９１３は、対象システムへの侵入を意味する攻撃活動を表す。
【００３５】
ルートツリー９１０は、論理ゲート（９１４＿１、９１４＿２）を有する。論理ゲート（９１４＿１、９１４＿２）を特定しない場合、それぞれを論理ゲート９１４と称する。
それぞれの論理ゲート９１４は、親ノードと複数の子ノードとの間に位置し、論理演算（ＯＲまたはＡＮＤなど）を表す。
論理ゲート９１４＿１は、第１層のノード（９１１）と第２層の２つのノード（９１２、９１３＿３）との間に位置し、内部ノード９１２と末端ノード９１３＿３との論理和を表している。
論理ゲート９１４＿２は、第２層のノード（９１２）と第３層の２つのノード（９１３＿１、９１３＿２）との間に位置し、末端ノード９１３＿１と末端ノード９１３＿２との論理積を表している。
【００３６】
図３に戻り、ステップＳ１０４から説明を続ける。
ステップＳ１０４において、子孫システム選択部１３２は、侵入経路データに基づいて、複数のサブシステムから、対象システムにおけるルートシステムへの侵入経路に位置する１つ以上のサブシステムを選択する。選択される１つ以上のサブシステムを「１つ以上の子孫システム」と称する。
侵入経路データは、侵入経路リスト１９４に含まれる。
【００３７】
子孫システム選択部１３２は、１つ以上の子孫システムを以下のように選択する。
子孫システム選択部１３２は、ルートシステムを親システムとして扱い、侵入経路において親システムの１つ前に位置するサブシステム選択する。選択されるサブシステムを「子システム」と称する。
子孫システム選択部１３２は、前回の子システムを今回の親システムとして扱い、侵入経路において今回の親システムの１つ前に位置するサブシステム選択する。選択されるサブシステムを「今回の子システム」と称する。
【００３８】
ステップＳ１０５において、子孫ツリー生成部１３３は、１つ以上の子孫システムのそれぞれに対してアタックツリー生成処理を実行することにより、１つ以上の子孫システムに対応する１つ以上のアタックツリーを生成する。生成される１つ以上のアタックツリーを「１つ以上の子孫ツリー」と称する。
【００３９】
子孫ツリー生成部１３３は、１つ以上の子孫ツリーを以下のように生成する。
子孫ツリー生成部１３３は、ルートツリーを親ツリーとして扱い、親ツリーの１つ以上の末端ノードのそれぞれをルートノードにしてアタックツリー生成処理を開始する。そして、子孫ツリー生成部１３３は、生成中のアタックツリーに含まれる１つ以上の経路のそれぞれに子システムへの侵入を意味する侵入ノードが現れた段階で、それぞれの経路に現れた侵入ノードをそれぞれの経路における末端ノードにしてアタックツリー生成処理を中断する。中断時の１つ以上のアタックツリー、つまり、ルートツリーの１つ以上の末端ノードに対応する１つ以上のアタックツリー、がルートツリーに対する１つ以上の子ツリーである。
子孫ツリー生成部１３３は、前回の１つ以上の子ツリーのそれぞれを今回の親ツリーとして扱い、今回の親ツリーの１つ以上の末端ノードのそれぞれをルートノードにしてアタックツリー生成処理を開始する。そして、子孫ツリー生成部１３３は、生成中のアタックツリーに含まれる１つ以上の経路のそれぞれに今回の子システムへの侵入を意味する侵入ノードが現れた段階で、それぞれの経路に現れた侵入ノードをそれぞれの経路における末端ノードにしてアタックツリー生成処理を中断する。中断時の１つ以上のアタックツリー、つまり、今回の親ツリーの１つ以上の末端ノードに対応する１つ以上のアタックツリー、が今回の親ツリーに対する１つ以上の子ツリーである。
【００４０】
図５に基づいて、子ツリー９２０＿１を説明する。
子ツリー９２０＿１は、子システム（１）のアタックツリーの一例である。
子システム（１）は、対象システムへの侵入経路において対象システムの１つ前に位置するサブシステムである。つまり、子システム（１）は、対象システム（親システム）に対する子システムである。
【００４１】
子ツリー９２０＿１は、ルートツリー９１０（親ツリー）に対する子ツリーに相当する。
子ツリー９２０＿１は、ルートノード９２１を有する。
ルートノード９２１は、ルートツリー９１０（図４参照）の末端ノード９１３＿１と同じ攻撃活動を表す。
【００４２】
子ツリー９２０＿１は、ルートツリー９１０（図４参照）と同様に、１つ以上の論理ゲート（９２４＿１）と、１つ以上の内部ノードと、１つ以上の末端ノード（９２３＿１〜９２３＿Ｎ）とを有する。
【００４３】
末端ノード（９２３＿１〜９２３＿Ｎ）を特定しない場合、それぞれを末端ノード９２３と称する。
それぞれの末端ノード９２３は、子システム（１）への侵入を意味する攻撃活動を表す。
【００４４】
子ツリー９２０＿１と同様に、子ツリー９２０＿２（図示省略）および子ツリー９２０＿３（図示省略）が生成される。
それぞれの子ツリー（９２０＿２、９２０＿３）は、子システム（１）のアタックツリーである。
それぞれの子ツリー（９２０＿２、９２０＿３）は、ルートツリー９１０（親ツリー）に対する子ツリーに相当する。
子ツリー９２０＿２において、ルートノードは、ルートツリー９１０（図４参照）の末端ノード９１３＿２と同じ攻撃活動を表す。
子ツリー９２０＿３において、ルートノードは、ルートツリー９１０（図４参照）の末端ノード９１３＿３と同じ攻撃活動を表す。
【００４５】
さらに、３つの子ツリー（９２０＿１〜９２０＿３）の複数の末端ノードに対する複数の孫ツリーが生成される。
それぞれの孫ツリーは、子システム（２）のアタックツリーである。子システム（２）は、対象システムへの侵入経路において子システム（１）の１つ前に位置するサブシステムである。つまり、子システム（２）は、子システム（１）に対する子システムである。
それぞれの孫ツリーは、子ツリー（９２０＿１〜９２０＿３）に対する子ツリーに相当する。
それぞれの孫ツリーにおいて、ルートノードは、子ツリー（９２０＿１〜９２０＿３）の末端ノードと同じ攻撃活動を表す。
それぞれの孫ツリーにおいて、末端ノードは、子システム（２）への侵入を意味する攻撃活動を表す。
【００４６】
以降、前回の子システムを今回の親システムとして扱い、前回の子ツリーを今回の親ツリーとして扱い、前回の子システムが対象システムへの侵入経路における先頭のサブシステムになるまで、子孫ツリーの生成が繰り返される。
【００４７】
図３に戻り、ステップＳ１０５の説明を続ける。
子孫ツリー生成部１３３は、（今回の）親ツリーの１つ以上の末端ノードを１つ以上の末端ノードグループに分けてもよい。この場合、子孫ツリー生成部１３３は、（今回の）親ツリーの１つ以上の末端ノードグループのそれぞれをルートノードにして、（今回の）親ツリーに対する１つ以上の子ツリーを生成する。
【００４８】
例えば、子孫ツリー生成部１３３は、以下のように動作する。
図６に示すように、子孫ツリー生成部１３３は、末端ノード９１３＿１と末端ノード９１３＿２とをまとめて末端ノード９１３＿Ｇを生成する。
そして、子孫ツリー生成部１３３は、末端ノード９１３＿Ｇと同じ攻撃活動を表すルートノードを有する子ツリーを生成する。
【００４９】
図３に戻り、ステップＳ１０６を説明する。
ステップＳ１０６において、サブアタックツリー統合部１４０は、ルートツリーと１つ以上の子孫ツリーとを統合する。
これにより、対象システムのアタックツリーが生成される。
【００５０】
図７に基づいて、アタックツリー９００を説明する。
アタックツリー９００は、対象システムのアタックツリーの一例である。
アタックツリー９００は、ルートツリー９１０と子孫ツリー群９０１とを含む。
子孫ツリー群９０１は、１つ以上の子孫ツリーである。
それぞれの子孫ツリーのルートノードは、親ツリーの端末ノードと同じである。
【００５１】
対象システムにおけるルートシステムへの侵入経路が複数ある場合、アタックツリー生成装置１００は以下のように動作する。
子孫システム選択部１３２は、侵入経路毎に子孫システム群を選択する。これにより、複数の侵入経路に対応する複数の子孫システム群が選択される。子孫システム群は、１つ以上の子孫システムである。
子孫ツリー生成部１３３は、子孫システム群毎に子孫ツリー群を生成する。これにより、複数の侵入経路に対応する複数の子孫ツリー群が生成される。
サブアタックツリー統合部１４０は、複数の侵入経路に対応する複数の子孫ツリー群を検索することによって、兄弟ツリーを見つける。兄弟ツリーは、共通の親ツリーの共通の末端ノードと同じルートノードを持つ複数の子ツリーである。
そして、サブアタックツリー統合部１４０は、論理和ゲートを介して兄弟ツリーのそれぞれのルートノードを共通の末端ノードに接続する。つまり、サブアタックツリー統合部１４０は、共通の親ツリーの共通の末端ノードに論理和ゲートを接続し、兄弟ツリーのそれぞれのルートノードを論理和ゲートに接続する。論理和ゲートは論理和を表す。
【００５２】
図８に基づいて、対象システムへの複数の侵入経路がある場合のアタックツリー９００を説明する。
兄弟ツリー９０３のそれぞれは、共通ノード９０４と同じルートノードを持つ。共通ノード９０４は、共通の親ツリー（ルートツリー９１０）の共通の末端ノードである。
兄弟ツリー９０３のそれぞれのルートノードは、論理和ゲート９０２を介して共通ノード９０４に接続される。
【００５３】
図９に基づいて、アタックツリー生成方法の詳細を説明する。
ステップＳ１１０において、システム分割部１１０は、システム構成データ１９１に基づいて、対象システムを複数のサブシステムに分割する。
【００５４】
システム分割部１１０は、以下のように、対象システムを複数のサブシステムに分割する。
システム構成データ１９１は、対象システムの構成を示す。対象システムの構成は、推論ルール１９３に適した論理式で表される。但し、対象システムの構成は、論理式以外の情報で表されてもよい。その場合、システム分割部１１０は、対象システムの構成情報を論理式に変換する。例えば、システム分割部１１０は、非特許文献２または非特許文献３に開示されているアタックツリー自動生成ツールによって、対象システムの構成情報を論理式に変換する。
システム分割部１１０は、システム構成データ１９１を複数のサブシステム構成データに分割する。システム構成データ１９１が対象システムに対応し、複数のサブシステム構成データが複数のサブシステムに対応する。それぞれのサブシステム構成データは、サブシステムの構成を論理式によって示す。
具体的には、システム分割部１１０は、分割基準に従って、システム構成データ１９１に示される論理式を複数の論理式に分割する。複数の論理式が複数のサブシステム構成データに相当する。例えば、分割基準は利用者によって指定される。
分割基準は任意の基準である。分割基準の具体例は、サブネット単位による分割、ネットワーク境界（例えば、ファイアウォール）での分割、装置種別に基づくグループ分けなどである。装置種別とは、例えば、ＯＳの種類である。同じサブネットに接続される複数の利用者端末には同じＯＳがインストールされることが想定される。
但し、利用者が、分割基準に基づいて対象システムの分割を判断し、アタックツリー生成装置１００に対して対象システムの分割を指示してもよい。この場合、システム分割部１１０は、利用者の指示に従って、対象システムを複数のサブシステムに分割する。
なお、分割数（サブシステムの数）が大きいほど、対象システムのアタックツリーを生成するための計算量が増える。そのため、分割数は闇雲に大きくしないほうがよい。
【００５５】
ステップＳ１２１において、侵入データ取得部１２１は、脅威リスト１９２から対象脅威データを取得する。
脅威リスト１９２は、複数の脅威データを含む。それぞれの脅威データは、対象システムにおけるセキュリティの脅威の内容を示す。脅威の内容は、推論ルール１９３に適した論理式で表される。
対象脅威データは、対象脅威についての脅威データである。
【００５６】
例えば、侵入データ取得部１２１は、脅威リスト１９２から、先頭の脅威データを取得する。取得される脅威データが対象脅威データである。
但し、侵入データ取得部１２１は、対象脅威データを別の方法で取得してもよい。例えば、利用者が、脅威リスト１９２に含まれる複数の脅威データから対象脅威データを選択し、アタックツリー生成装置１００に対して対象脅威データを指定する。そして、侵入データ取得部１２１は、指定された対象脅威データを脅威リスト１９２から取得する。
【００５７】
ステップＳ１２２において、ルートシステム選択部１２２は、対象脅威データに基づいて、複数のサブシステムからルートシステムを選択する。
ルートシステムは、対象脅威が発生するサブシステムである。
【００５８】
ルートシステム選択部１２２は、ルートシステムを以下のように選択する。
対象脅威データは、対象脅威が発生するシステム要素を示す。例えば、システム要素は、装置（コンピュータ）、装置にインストールされているアプリケーションプログラム、または、その他の情報資産である。
まず、ルートシステム選択部１２２は、対象脅威データを参照することによって、対象脅威が発生するシステム要素を特定する。特定されるシステム要素を対象要素と称する。
そして、ルートシステム選択部１２２は、システム構成データ１９１を参照し、対象要素が接続されたサブネットを特定する。特定されるサブネットに対応するサブシステムがルートシステムである。
【００５９】
ステップＳ１２３において、侵入経路リスト生成部１２３は、基点システムからルートシステムまでの侵入経路をリスト化する。これにより、侵入経路リスト１９４が生成される。
侵入経路リスト１９４は、１つ以上の侵入経路データを含む。侵入経路が２つある場合、侵入経路リスト１９４は２つの侵入経路データを含む。
基点システムとは、対象システムにおいて攻撃の起点となるサブシステムである。攻撃の起点となる端末を起点端末と称する。起点端末が対象システムの内部の要素である場合、起点システムは、起点端末が接続されたサブネットに対応するサブシステム、つまり、起点端末が属するサブシステムである。起点端末が対象システムの外部の要素である場合、起点システムは、対象システムの外部と通信することが可能なサブシステム、つまり、外部のネットワークに接続されたサブシステムである。
【００６０】
ステップＳ１３０において、サブアタックツリー生成部１３０は、侵入経路リスト１９４に示される侵入経路毎に、サブアタックツリー群を生成する。
サブアタックツリー群は、１つ以上のサブアタックツリーである。
サブアタックツリーは、サブシステムのアタックツリーである。
【００６１】
図１０に基づいて、サブアタックツリー群生成処理（Ｓ１３０）の手順を説明する。
ステップＳ１３１において、ルートツリー生成部１３１は、推論ルール１９３を用いて、ルートツリーを生成する。
推論ルール１９３は、対象システムのアタックツリーを生成するための推論ルールである。推論ルール１９３は、セキュリティの各種の脅威と各種のサイバー攻撃手法の実行順序に関する論理的なルールであり、各種の脅威の発生条件と各種のサイバー攻撃手法の成立条件とを判定できるように定義されている。対象システムに対応するルールを特定することができれば、推論ルール１９３の推論体系および推論ルール１９３のデータ形式は任意である。また、推論ルール１９３の中に定義されているルールの数も任意である。
【００６２】
具体的には、ルートツリー生成部１３１は、ルートシステム構成データと対象脅威データと推論ルール１９３とを入力として、アタックツリー自動生成ツールを実行する。
ルートシステム構成データは、ルートシステムの構成を示すサブシステム構成データである。
使用されるアタックツリー自動生成ツールは従来のツールで構わない。例えば、非特許文献２または非特許文献３に開示されているアタックツリー自動生成ツールを使用することが可能である。
【００６３】
但し、ルートツリー生成部１３１は、生成中のアタックツリーのそれぞれの経路にルートシステム侵入ノードが現れた段階で、アタックツリー自動生成ツールの実行を中断する。ルートシステム侵入ノードは、ルートシステムへの侵入を意味するノードである。
これにより、ルートツリーが得られる。ルートツリー生成部１３１は、ルートツリーをデータとして記憶部１９０に記憶する。
【００６４】
ステップＳ１３２において、子孫システム選択部１３２は、侵入経路リスト１９４から、未選択の侵入経路データを１つ選択する。
選択される侵入経路データを選択経路データと称し、選択経路データに示される侵入経路を選択経路と称する。
【００６５】
ステップＳ１３３において、子孫ツリー生成部１３３は、選択経路に対する子孫ツリー群を生成する。子孫ツリー群は１つ以上の子孫ツリーである。
子孫ツリー群生成処理（Ｓ１３３）の手順については後述する。
【００６６】
ステップＳ１３４において、子孫システム選択部１３２は、ステップＳ１３２で選択されていない侵入経路（未選択の侵入経路）があるか判定する。
未選択の侵入経路がある場合、処理はステップＳ１３２に進む。
未選択の侵入経路がない場合、サブアタックツリー群生成処理（Ｓ１３０）は終了する。
【００６７】
但し、ステップＳ１３２からステップＳ１３４までの処理は、並列処理で実現してもよい。つまり、複数の侵入経路に対する複数の子孫ツリー群を並列処理によって同時に生成してもよい。
【００６８】
図１１に基づいて、子孫ツリー群生成処理（Ｓ１３３）の手順を説明する。
ステップＳ１３３１において、子孫システム選択部１３２は、ルートシステムを親システムにして、親システムに対する子システムを特定する。
子システムは、選択経路において親システムの１つ前に位置するサブシステムである。
【００６９】
ステップＳ１３３２において、子孫ツリー生成部１３３は、親ツリーの末端ノード毎に、推論ルール１９３を用いて子ツリーを生成する。
親ツリーは、親システムのアタックツリーである。
子ツリーは、子システムのアタックツリーである。
【００７０】
具体的には、子孫ツリー生成部１３３は、子システム構成データと推論ルール１９３とを入力として、アタックツリー自動生成ツールを実行する。
子システム構成データは、子システムの構成を示すサブシステム構成データである。
使用されるアタックツリー自動生成ツールは、ステップＳ１３１で使用されるツールと同じである。
【００７１】
但し、子孫ツリー生成部１３３は、生成中のアタックツリーのそれぞれの経路に子システム侵入ノードが現れた段階で、アタックツリー自動生成ツールの実行を中断する。子システム侵入ノードは、子システムへの侵入を意味するノードである。
これにより、子ツリーが得られる。子孫ツリー生成部１３３は、子ツリーをデータとして記憶部１９０に記憶する。
【００７２】
ステップＳ１３３２は並列処理で実現してもよい。つまり、親ツリーの複数の末端ノードに対する複数の子ツリーを並列処理によって同時に生成してもよい。
【００７３】
ステップＳ１３３３において、子孫システム選択部１３２は、子システムが起点システムであるか判定する。
起点システムは、選択経路における先頭のサブシステムである。
子システムが起点システムである場合、子孫ツリー群生成処理（Ｓ１３３）は終了する。
子システムが起点システムでない場合、処理はステップＳ１３３４に進む。
【００７４】
ステップＳ１３３４において、子孫システム選択部１３２は、子システムを親システムにして、親システムに対する子システムを特定する。
ステップＳ１３３４の後、処理はステップＳ１３３２に進む。
【００７５】
図９に戻り、ステップＳ１４１から説明を続ける。
ステップＳ１４１において、サブアタックツリー統合部１４０は、全てのサブアタックツリー群を統合する。
これにより、対象システムのアタックツリーが得られる。サブアタックツリー統合部１４０は、対象システムのアタックツリーをデータとして記憶部１９０に記憶する。
【００７６】
但し、サブアタックツリー統合部１４０は以下のように動作する。
サブアタックツリー統合部１４０は、全てのサブアタックツリー群を検索することによって、兄弟ツリーを見つける。兄弟ツリーは、共通の親ツリーの共通の末端ノードを同じルートノードを持つ複数の子ツリーである。
そして、サブアタックツリー統合部１４０は、論理和ゲートを介して兄弟ツリーのそれぞれのルートノードを共通の末端ノードに接続する。
【００７７】
ステップＳ１４２において、サブアタックツリー統合部１４０は、対象システムのアタックツリーを出力する。
例えば、サブアタックツリー統合部１４０は、対象システムのアタックツリーをディスプレイに表示する。
【００７８】
＊＊＊実施の形態１の効果＊＊＊
論理推論型のアタックツリー自動生成ツールには、システムの規模に対して多項式オーダーで計算量が増大する、という課題がある。
実施の形態１では、複数のサブシステムに対応する複数のサブアタックツリーが生成された後に複数のサブアタックツリーを結合することによって、対象システムのアタックツリーが生成される。
サブシステムの規模は対象システムの規模よりも小さいため、サブアタックツリーを生成するための計算量が増大しない。その結果、対象システムのアタックツリーの生成に要する計算量を削減することができる。
【００７９】
実施の形態２．
アタックツリー生成装置２００について、主に実施の形態１と異なる点を図１２から図１４に基づいて説明する。
アタックツリー生成装置２００は、対象システムの専用の推論ルールを生成し、専用の推論ルールを用いて対象システムのアタックツリーを生成する。
【００８０】
＊＊＊構成の説明＊＊＊
図１１に基づいて、アタックツリー生成装置２００の構成を説明する。
アタックツリー生成装置２００は、プロセッサ２０１とメモリ２０２と補助記憶装置２０３と入出力インタフェース２０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００８１】
プロセッサ２０１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ２０１はＣＰＵ、ＤＳＰまたはＧＰＵである。
メモリ２０２は揮発性の記憶装置である。メモリ２０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ２０２はＲＡＭである。メモリ２０２に記憶されたデータは必要に応じて補助記憶装置２０３に保存される。
補助記憶装置２０３は不揮発性の記憶装置である。例えば、補助記憶装置２０３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。補助記憶装置２０３に記憶されたデータは必要に応じてメモリ２０２にロードされる。
入出力インタフェース２０４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース２０４はＵＳＢ端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
【００８２】
アタックツリー生成装置２００は、専用基礎情報取得部２１０と専用推論ルール生成部２２０とアタックツリー生成部２３０といった要素を備える。これらの要素はソフトウェアで実現される。
【００８３】
補助記憶装置２０３には、専用基礎情報取得部２１０と専用推論ルール生成部２２０とアタックツリー生成部２３０としてコンピュータを機能させるためのアタックツリー生成プログラムが記憶されている。アタックツリー生成プログラムは、メモリ２０２にロードされて、プロセッサ２０１によって実行される。
さらに、補助記憶装置２０３にはＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ２０２にロードされて、プロセッサ２０１によって実行される。
つまり、プロセッサ２０１は、ＯＳを実行しながら、アタックツリー生成プログラムを実行する。
【００８４】
アタックツリー生成プログラムの入出力データは記憶部２９０に記憶される。
メモリ２０２は記憶部２９０として機能する。但し、補助記憶装置２０３、プロセッサ２０１内のレジスタおよびプロセッサ２０１内のキャッシュメモリなどの記憶装置が、メモリ２０２の代わりに、又は、メモリ２０２と共に、記憶部２９０として機能してもよい。
【００８５】
アタックツリー生成装置２００は、プロセッサ２０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ２０１の役割を分担する。
【００８６】
アタックツリー生成プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
【００８７】
図１３に基づいて、記憶部２９０の構成を説明する。
記憶部２９０には、システム構成データ２９１、脅威リスト２９２、推論ルール２９３、侵入経路リスト２９４およびルール基礎情報データベース２９５などが記憶される。
システム構成データ２９１と脅威リスト２９２と推論ルール２９３と侵入経路リスト２９４とのそれぞれは、実施の形態１におけるデータ（１９１、１９２、１９３、１９４）と同じである。
ルール基礎情報データベース２９５は、脅威データベース２９５１と攻撃手法データベース２９５２とを含む。
【００８８】
＊＊＊動作の説明＊＊＊
図１４に基づいて、アタックツリー生成方法を説明する。
ステップＳ２１１において、専用基礎情報取得部２１０は、システム構成データ２９１から、対象システムの種別情報を取得する。
システム構成データ２９１は、対象システムの種別情報を含む。
対象システムの種別情報は、対象システムの種別を示す。
対象システムの種別は、対象システムに含まれるシステム要素の種別である。
例えば、システム要素は、装置（コンピュータ）、装置にインストールされているＯＳ、装置にインストールされているアプリケーションプログラム、および、その他の情報資産である。
例えば、システム種別は、装置種別、ＯＳ種別、アプリケーション種別および情報資産種別である。
【００８９】
ステップＳ２１２において、専用基礎情報取得部２１０は、対象システムの種別に対応するルール基礎情報をルール基礎情報データベース２９５から取得する。
取得されるルール基礎情報を「専用基礎情報」と称する。
【００９０】
ルール基礎情報データベース２９５には、複数のシステム種別と複数のルール基礎情報とが互いに対応付けられている。
ルール基礎情報は、推論ルールを生成するための情報である。
【００９１】
具体的には、ルール基礎情報データベース２９５は、脅威データベース２９５１および攻撃手法データベース２９５２である。
脅威データベース２９５１には、各種の脅威テンプレートが登録されている。それぞれの脅威テンプレートには種別タグが付加されている。脅威テンプレートは、脅威リストに登録される脅威データのインスタンスである。脅威テンプレートには、脅威を引き起こすための事前条件が定義されている。事前条件は、論理式、または、論理式に変換可能な表現、で定義されている。対象システムのシステム要素の情報（装置名または情報資産名など）を脅威テンプレートに設定することにより、対象脅威データが生成される。対象脅威データは、例えば、専用基礎情報取得部２１０またはアタックツリー生成部２３０によって生成される。
攻撃手法データベース２９５２には、サイバー攻撃の手法が登録されている。それぞれの攻撃手法には種別タグが付加されている。攻撃手法は、その手法を使用するための事前条件とその攻撃によって発生する効果（攻撃効果）とを含む。事前条件および攻撃効果は、論理式、または論理式に変換可能な表現、で定義されている。
【００９２】
ステップＳ２３０において、専用推論ルール生成部２２０は、複数のルール基礎情報のうちの専用基礎情報だけを用いて、推論ルール生成処理を実行する。これにより、対象システムの専用推論ルールが生成される。生成される専用推論ルールが推論ルール２９３である。
推論ルール生成処理は、推論ルールを生成するための任意の処理である。例えば、特許文献１に開示された方式を使用することが可能である。特許文献１には、攻撃シナリオを導出するための推論ルールを自動生成するための方式が開示されている。この方式では、攻撃手法の定義（事前条件および攻撃効果）を用いて、推論ルールが自動生成される。
推論ルール生成処理において、専用推論ルール生成部２２０は次のように動作する。まず、専用推論ルール生成部２２０は、脅威（または攻撃手法）の事前条件を充足する攻撃効果を持つ攻撃手法の組み合わせを特定する。次に、専用推論ルール生成部２２０は、特定された組み合わせに基づいて、脅威（または攻撃手法）の実行順序を特定する。そして、専用推論ルール生成部２２０は、特定された実行順序に基づいて、専用推論ルールを生成する。
【００９３】
ステップＳ２３１において、アタックツリー生成部２３０は、専用推論ルールを用いて、アタックツリー生成処理を実行する。これにより、対象システムのアタックツリーが生成される。
アタックツリー生成処理は、アタックツリーを生成するための任意の処理である（実施の形態１と同じ）。
【００９４】
ステップＳ２３２において、アタックツリー生成部２３０は、対象システムのアタックツリーを出力する。
例えば、アタックツリー生成部２３０は、対象システムのアタックツリーをディスプレイに表示する。
【００９５】
＊＊＊実施の形態２の効果＊＊＊
論理推論型のアタックツリー自動生成ツールには、推論ルールの規模に対して多項式オーダーで計算量が増大する、という課題がある。
実施の形態２では、対象システムの種別に関するルールに限定した専用推論ルールが生成された後に専用推論ルールを用いて対象システムのアタックツリーが生成される。
対象システムの種別に関するルールに限定された専用推論ルールが使用されるため、対象システムのアタックツリーの生成に要する計算量を削減することができる。
【００９６】
実施の形態３．
アタックツリー生成装置３００について、主に実施の形態１と異なる点を図１５および図１６に基づいて説明する。
アタックツリー生成装置３００は、アタックツリー生成装置１００（実施の形態１）とアタックツリー生成装置２００（実施の形態２）との組み合わせである。
【００９７】
＊＊＊構成の説明＊＊＊
図１５に基づいて、アタックツリー生成装置３００の構成を説明する。
アタックツリー生成装置３００は、プロセッサ３０１とメモリ３０２と補助記憶装置３０３と入出力インタフェース３０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００９８】
プロセッサ３０１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ３０１はＣＰＵ、ＤＳＰまたはＧＰＵである。
メモリ３０２は揮発性の記憶装置である。メモリ３０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ３０２はＲＡＭである。メモリ３０２に記憶されたデータは必要に応じて補助記憶装置３０３に保存される。
補助記憶装置３０３は不揮発性の記憶装置である。例えば、補助記憶装置３０３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。補助記憶装置３０３に記憶されたデータは必要に応じてメモリ３０２にロードされる。
入出力インタフェース３０４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース３０４はＵＳＢ端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
【００９９】
アタックツリー生成装置３００は、専用基礎情報取得部２１０と専用推論ルール生成部２２０とアタックツリー生成部３１０といった要素を備える。これらの要素はソフトウェアで実現される。
アタックツリー生成部３１０は、システム分割部１１０と侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０とを備える。
システム分割部１１０と侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０とのそれぞれは、実施の形態１における要素である。
専用基礎情報取得部２１０と専用推論ルール生成部２２０とのそれぞれは、実施の形態２における要素である。
【０１００】
補助記憶装置３０３には、専用基礎情報取得部２１０と専用推論ルール生成部２２０とアタックツリー生成部３１０としてコンピュータを機能させるためのアタックツリー生成プログラムが記憶されている。アタックツリー生成プログラムは、メモリ３０２にロードされて、プロセッサ３０１によって実行される。
さらに、補助記憶装置３０３にはＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ３０２にロードされて、プロセッサ３０１によって実行される。
つまり、プロセッサ３０１は、ＯＳを実行しながら、アタックツリー生成プログラムを実行する。
【０１０１】
アタックツリー生成プログラムの入出力データは記憶部２９０に記憶される。記憶部２９０は、実施の形態２における要素である。
メモリ３０２は記憶部２９０として機能する。但し、補助記憶装置３０３、プロセッサ３０１内のレジスタおよびプロセッサ３０１内のキャッシュメモリなどの記憶装置が、メモリ３０２の代わりに、又は、メモリ３０２と共に、記憶部２９０として機能してもよい。
【０１０２】
アタックツリー生成装置３００は、プロセッサ３０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ３０１の役割を分担する。
【０１０３】
アタックツリー生成プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
【０１０４】
＊＊＊動作の説明＊＊＊
図１６に基づいて、アタックツリー生成方法を説明する。
ステップＳ３１０において、システム分割部１１０は、システム構成データ１９１に基づいて、対象システムを複数のサブシステムに分割する。
ステップＳ３１０は、実施の形態１におけるステップＳ１１０と同じである。
【０１０５】
ステップＳ３２０において、専用推論ルール生成部２２０は、サブシステム毎に専用推論ルールを生成する。これにより、複数のサブシステムに対応する複数の専用推論ルールが生成される。生成される複数の専用推論ルールを専用推論ルール群と称する。
サブシステムの専用推論ルールを生成する方法は、実施の形態２における方法（ステップＳ２１１〜ステップＳ２２０）と同様である。
【０１０６】
ステップＳ３３０において、アタックツリー生成部３１０は、専用推論ルール群を用いて、対象システムのアタックツリーを生成する。
対象システムのアタックツリーを生成する方法は、実施の形態１における方法（ステップＳ１２１〜ステップＳ１４１）と同様である。サブシステムのアタックツリーの生成には、サブシステムの専用推論ルールが使用される。
【０１０７】
ステップＳ３４０において、アタックツリー生成部３１０は、対象システムのアタックツリーを出力する。
例えば、アタックツリー生成部３１０は、対象システムのアタックツリーをディスプレイに表示する。
【０１０８】
＊＊＊実施の形態３の効果＊＊＊
実施の形態３では、実施の形態１と実施の形態２との両方の効果が得られるため、アタックツリーの生成に要する計算量をさらに削減することができる。
【０１０９】
実施の形態４．
アタックツリー生成装置４００について、主に実施の形態１と異なる点を図１７から図１９に基づいて説明する。
アタックツリー生成装置４００は、自動で、対象システムを複数のサブシステムに分割する。
【０１１０】
＊＊＊構成の説明＊＊＊
図１７に基づいて、アタックツリー生成装置４００の構成を説明する。
アタックツリー生成装置４００は、プロセッサ４０１とメモリ４０２と補助記憶装置４０３と入出力インタフェース４０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【０１１１】
プロセッサ４０１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ４０１はＣＰＵ、ＤＳＰまたはＧＰＵである。
メモリ４０２は揮発性の記憶装置である。メモリ４０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ４０２はＲＡＭである。メモリ４０２に記憶されたデータは必要に応じて補助記憶装置４０３に保存される。
補助記憶装置４０３は不揮発性の記憶装置である。例えば、補助記憶装置４０３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。補助記憶装置４０３に記憶されたデータは必要に応じてメモリ４０２にロードされる。
入出力インタフェース４０４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース４０４はＵＳＢ端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
【０１１２】
アタックツリー生成装置４００は、システム分割部４１０と侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０といった要素を備える。これらの要素はソフトウェアで実現される。
システム分割部４１０は、実施の形態１におけるシステム分割部１１０に相当する要素である。
侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０とのそれぞれは、実施の形態１における要素である。
【０１１３】
補助記憶装置４０３には、システム分割部４１０と侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０としてコンピュータを機能させるためのアタックツリー生成プログラムが記憶されている。アタックツリー生成プログラムは、メモリ４０２にロードされて、プロセッサ４０１によって実行される。
さらに、補助記憶装置４０３にはＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ４０２にロードされて、プロセッサ４０１によって実行される。
つまり、プロセッサ４０１は、ＯＳを実行しながら、アタックツリー生成プログラムを実行する。
【０１１４】
アタックツリー生成プログラムの入出力データは記憶部１９０に記憶される。記憶部１９０は、実施の形態１における要素である。
メモリ４０２は記憶部１９０として機能する。但し、補助記憶装置４０３、プロセッサ４０１内のレジスタおよびプロセッサ４０１内のキャッシュメモリなどの記憶装置が、メモリ４０２の代わりに、又は、メモリ４０２と共に、記憶部１９０として機能してもよい。
【０１１５】
アタックツリー生成装置４００は、プロセッサ４０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ４０１の役割を分担する。
【０１１６】
アタックツリー生成プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
【０１１７】
＊＊＊動作の説明＊＊＊
図１８に基づいて、アタックツリー生成方法の概要を説明する。
ステップＳ４０１において、システム分割部４１０は、システム構成データ１９１に基づいて、対象システムを複数のサブシステムに分割する。
【０１１８】
システム分割部４１０は、対象システムを以下のように分割する。
システム構成データ１９１は、通信を行う複数の装置と、複数の装置を繋ぐ１つ以上の通信路と、を対象システムの構成として示す。
まず、システム分割部４１０は、システム構成データ１９１に基づいてシステム構成グラフを生成する。システム構成グラフは、対象システムを表すグラフであり、複数の装置を表す複数のノードと１つ以上の通信路を表す１つ以上のエッジとを含む。
次に、システム分割部４１０は、システム構成グラフの中の各ノードに対してグラフ理論における中心性を評価する。
次に、システム分割部４１０は、評価結果に基づいて、対象システムの分割点となる１つ以上のノードを決定する。
そして、システム分割部４１０は、決定した１つ以上のノードのそれぞれを分割点にして、システム構成グラフで表された対象システムを複数のサブシステムに分割する。
【０１１９】
ステップＳ４０２からステップＳ４０６は、実施の形態１におけるステップＳ１０２からステップＳ１０６と同じである。
【０１２０】
図１９に基づいて、アタックツリー生成方法の詳細を説明する。
ステップＳ４１０において、システム分割部４１０は、自動で、システム構成データ１９１に基づいて対象システムを複数のサブシステムに分割する。
ステップＳ４１０は、実施の形態１におけるステップＳ１１０に相当する。
【０１２１】
以下に、ステップＳ１１０と比較して、ステップＳ４１０を説明する。
【０１２２】
ステップＳ１１０では、（１）から（３）の方法による分割を説明した。
（１）ファイアウォールなどのセキュリティ装置を境界とする分割。
（２）装置種別毎のまとまりによる分割。
（３）利用者によって指定される分割点に基づく分割。
ただし、（１）または（２）の方法では、分割のために開発者がセキュリティ装置または装置種別を選定する。そのため、開発者のコストがかかる。
また、（３）の方法では、分割のために利用者がシステム構成から分割点（装置）を選択する。そのため、利用者のコストがかかる。
つまり、（１）から（３）の方法では、分割のために、人による何らかの事前準備が必要になる。そのため、事前準備のコストがかかる。
【０１２３】
ステップＳ４１０では、事前準備のコストを削減するために、以下のような分割が行われる。
システム分割部４１０は、システム構成データ１９１に基づいて、システム構成グラフを生成する。システム構成グラフにおいて、各ノードは装置を表し、各エッジは通信路を表す。そして、システム分割部４１０は、各ノードの特徴量を評価することで、自動的に分割点を決定する。
【０１２４】
具体的には、システム分割部４１０は、グラフ理論における中心性のひとつである「媒介中心性」を利用する。
対象ノードの媒介中心性は、グラフ全体においてノード間の最短経路の中に含まれる対象ノードの割合を評価したものである。この値が高いと、対象ノードがノード間の中継地点となっていてコミュニティ同士の連結役となっている確率が高い、と判断される。
したがって、システム分割部４１０は、媒介中心性を評価することで、コミュニティ（サブシステム）の連結役となっているノード（装置）を自動的に特定することができる。
【０１２５】
一般的に、セキュリティ分析時には、対象システムのネットワーク構成が情報として与えられる。そのため、媒介中心性を計算するために必須な情報であるノードの情報とエッジの情報が入手可能である。具体的には、システム構成データ１９１から必須な情報を入手可能である。
この方式は、ＩＴ、計装または車載などのシステム種別に依存せず、広く適応できる。
また、媒介中心性の計算はシステム規模に対して比較的高速である。媒介中心性の計算量は、Ｏ（Ｎ＾２＋Ｎ×Ｍ）で表される。「Ｎ」はノード数を意味し、「Ｍ」はエッジ数を意味する。
【０１２６】
加えて、媒介中心性に基づく分割により、結果的に対象システムが適切に分割されると予想される。この理由を次に述べる。
前提として、アタックツリー生成のための計算時間は、攻撃シナリオを分析する際の侵入経路の長さに依存し、多項式の二乗オーダーで長くなる。そして、媒介中心性の計算式によって、各ノード（装置）の媒介中心性が評価される。グラフ全体において任意の二点間の最短経路を考えた際に、対象ノードが含まれる割合が多いほど、対象ノードは高く評価される。このため、媒介中心性が高い装置で対象システムが分割されれば、侵入経路全体において分割後の侵入経路の数が多くなると考えられる。
【０１２７】
システム分割部４１０は、グラフ理論における中心性として、媒介中心性以外の中心性を分割点の評価のために採用してもよい。
例えば、システム分割部４１０は、次数中心性またはＰａｇｅＲａｎｋなどの中心性を分割点の評価のために採用してもよい。
但し、上記の考察から、媒介中心性を利用した方が効果をより高めることができる、と考えられる。
【０１２８】
＊＊＊実施の形態４の効果＊＊＊
実施の形態４により、システム分割を自動化することが可能になる。その結果、計算効率化という効果が得られる。さらに、アタックツリー生成装置４００の開発時における開発者のコスト、および、アタックツリー生成装置４００の利用時における利用者のコスト、を削減することが可能となる。
【０１２９】
実施の形態５．
アタックツリー生成装置５００について、主に実施の形態４と異なる点を図２０および図２１に基づいて説明する。
アタックツリー生成装置５００は、アタックツリー生成装置４００（実施の形態４）とアタックツリー生成装置２００（実施の形態２）との組み合わせである。
【０１３０】
図２０に基づいて、アタックツリー生成装置５００の構成を説明する。
アタックツリー生成装置５００は、プロセッサ５０１とメモリ５０２と補助記憶装置５０３と入出力インタフェース５０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【０１３１】
プロセッサ５０１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ５０１はＣＰＵ、ＤＳＰまたはＧＰＵである。
メモリ５０２は揮発性の記憶装置である。メモリ５０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ５０２はＲＡＭである。メモリ５０２に記憶されたデータは必要に応じて補助記憶装置５０３に保存される。
補助記憶装置５０３は不揮発性の記憶装置である。例えば、補助記憶装置５０３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。補助記憶装置５０３に記憶されたデータは必要に応じてメモリ５０２にロードされる。
入出力インタフェース５０４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース５０４はＵＳＢ端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
【０１３２】
アタックツリー生成装置５００は、専用基礎情報取得部２１０と専用推論ルール生成部２２０とアタックツリー生成部５１０といった要素を備える。これらの要素はソフトウェアで実現される。
アタックツリー生成部５１０は、システム分割部４１０と侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０とを備える。
システム分割部４１０は、実施の形態４における要素である。
侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０とのそれぞれは、実施の形態１における要素である。
専用基礎情報取得部２１０と専用推論ルール生成部２２０とのそれぞれは、実施の形態２における要素である。
【０１３３】
補助記憶装置５０３には、専用基礎情報取得部２１０と専用推論ルール生成部２２０とアタックツリー生成部５１０としてコンピュータを機能させるためのアタックツリー生成プログラムが記憶されている。アタックツリー生成プログラムは、メモリ５０２にロードされて、プロセッサ５０１によって実行される。
さらに、補助記憶装置５０３にはＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ５０２にロードされて、プロセッサ５０１によって実行される。
つまり、プロセッサ５０１は、ＯＳを実行しながら、アタックツリー生成プログラムを実行する。
【０１３４】
アタックツリー生成プログラムの入出力データは記憶部２９０に記憶される。記憶部２９０は、実施の形態２における要素である。
メモリ５０２は記憶部２９０として機能する。但し、補助記憶装置５０３、プロセッサ５０１内のレジスタおよびプロセッサ５０１内のキャッシュメモリなどの記憶装置が、メモリ５０２の代わりに、又は、メモリ５０２と共に、記憶部２９０として機能してもよい。
【０１３５】
アタックツリー生成装置５００は、プロセッサ５０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ５０１の役割を分担する。
【０１３６】
アタックツリー生成プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
【０１３７】
＊＊＊動作の説明＊＊＊
図２１に基づいて、アタックツリー生成方法を説明する。
ステップＳ５１０において、システム分割部４１０は、システム構成データ１９１に基づいて、対象システムを複数のサブシステムに分割する。
ステップＳ５１０は、実施の形態４におけるステップＳ４１０と同じである。
【０１３８】
ステップＳ５２０において、専用推論ルール生成部２２０は、サブシステム毎に専用推論ルールを生成する。これにより、複数のサブシステムに対応する複数の専用推論ルールが生成される。生成される複数の専用推論ルールを専用推論ルール群と称する。
サブシステムの専用推論ルールを生成する方法は、実施の形態２における方法（ステップＳ２１１〜ステップＳ２２０）と同様である。
【０１３９】
ステップＳ５３０において、アタックツリー生成部５１０は、専用推論ルール群を用いて、対象システムのアタックツリーを生成する。
対象システムのアタックツリーを生成する方法は、実施の形態１における方法（ステップＳ１２１〜ステップＳ１４１）と同様である。サブシステムのアタックツリーの生成には、サブシステムの専用推論ルールが使用される。
【０１４０】
ステップＳ５４０において、アタックツリー生成部５１０は、対象システムのアタックツリーを出力する。
例えば、アタックツリー生成部５１０は、対象システムのアタックツリーをディスプレイに表示する。
【０１４１】
＊＊＊実施の形態５の効果＊＊＊
実施の形態５では、実施の形態４と実施の形態２との両方の効果が得られるため、アタックツリーの生成に要する計算量をさらに削減することができる。
【０１４２】
＊＊＊実施の形態のまとめ＊＊＊
セキュリティ対策を支援する技術として、アタックツリー自動生成ツールが提案されている。このツールは、対象システムの情報を入力するだけで、アタックツリーを生成することができる。システムの開発者は、生成されたアタックツリーを確認することで、セキュリティ対策案を検討することができる。つまり、アタックツリーは安全なシステム開発に役立つ。
従来、論理推論型のアタックツリー自動生成ツールが存在する。このツールは、サイバー攻撃の発生条件と対象システムの構成情報とを照らし合わせて推論を行う。これにより、アタックツリーが生成される。しかし、論理推論型のアタックツリー自動生成ツールには、システムの規模に対して多項式オーダーで計算量が増大する、という課題がある。
実施の形態は、次の２つの技術により、アタックツリーの生成タスクを効率化する。（１）対象システムを複数のサブシステムに分割し、複数のサブシステムに対応する複数のサブアタックツリーを統合する。（２）アタックツリー（またはサブアタックツリー）の生成において、システム種別に限定した推論ルールを自動生成し、推論ルールのサイズを縮小する。
実施の形態により、対象システムの分割数に応じて多項式倍高速にアタックツリーを生成できる。その結果、セキュリティ対策を含めたシステム開発期間の短縮が期待できる。
【０１４３】
＊＊＊実施の形態の補足＊＊＊
図２２に基づいて、アタックツリー生成装置（１００，２００，３００，４００，５００）のハードウェア構成を説明する。
アタックツリー生成装置１００は処理回路１０９を備える。
処理回路１０９は、システム分割部１１０と侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０とを実現するハードウェアである。
処理回路１０９は、専用のハードウェアであってもよいし、メモリ１０２に格納されるプログラムを実行するプロセッサ１０１であってもよい。
【０１４４】
アタックツリー生成装置２００は処理回路２０９を備える。
処理回路２０９は、専用基礎情報取得部２１０と専用推論ルール生成部２２０とアタックツリー生成部２３０とを実現するハードウェアである。
処理回路２０９は、専用のハードウェアであってもよいし、メモリ２０２に格納されるプログラムを実行するプロセッサ２０１であってもよい。
【０１４５】
アタックツリー生成装置３００は処理回路３０９を備える。
処理回路３０９は、専用基礎情報取得部２１０と専用推論ルール生成部２２０とアタックツリー生成部３１０とを実現するハードウェアである。
処理回路３０９は、専用のハードウェアであってもよいし、メモリ３０２に格納されるプログラムを実行するプロセッサ３０１であってもよい。
【０１４６】
アタックツリー生成装置４００は処理回路４０９を備える。
処理回路４０９は、システム分割部４１０と侵入経路予測部１２０とサブアタックツリー生成部１３０とサブアタックツリー統合部１４０とを実現するハードウェアである。
処理回路４０９は、専用のハードウェアであってもよいし、メモリ４０２に格納されるプログラムを実行するプロセッサ４０１であってもよい。
【０１４７】
アタックツリー生成装置５００は処理回路５０９を備える。
処理回路５０９は、専用基礎情報取得部２１０と専用推論ルール生成部２２０とアタックツリー生成部５１０とを実現するハードウェアである。
処理回路５０９は、専用のハードウェアであってもよいし、メモリ５０２に格納されるプログラムを実行するプロセッサ５０１であってもよい。
【０１４８】
処理回路（１０９，２０９，３０９，４０９，５０９）が専用のハードウェアである場合、処理回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
アタックツリー生成装置（１００，２００，３００，４００，５００）は、処理回路（１０９，２０９，３０９，４０９，５０９）を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路（１０９，２０９，３０９，４０９，５０９）の役割を分担する。
【０１４９】
アタックツリー生成装置（１００，２００，３００，４００，５００）において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【０１５０】
このように、処理回路（１０９，２０９，３０９，４０９，５０９）はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０１５１】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【０１５２】
アタックツリー生成装置（１００，２００，３００，４００，５００）は、複数の装置で実現されてもよい。つまり、アタックツリー生成装置は、システムとして実現されてもよい。
アタックツリー生成装置（１００，２００，３００，４００，５００）の要素である「部」は、「処理」または「工程」と読み替えてもよい。
【符号の説明】
【０１５３】
１００  アタックツリー生成装置、１０１  プロセッサ、１０２  メモリ、１０３  補助記憶装置、１０４  入出力インタフェース、１０９  処理回路、１１０  システム分割部、１２０  侵入経路予測部、１２１  侵入データ取得部、１２２  ルートシステム選択部、１２３  侵入経路リスト生成部、１３０  サブアタックツリー生成部、１３１  ルートツリー生成部、１３２  子孫システム選択部、１３３  子孫ツリー生成部、１４０  サブアタックツリー統合部、１９０  記憶部、１９１  システム構成データ、１９２  脅威リスト、１９３  推論ルール、１９４  侵入経路リスト、２００  アタックツリー生成装置、２０１  プロセッサ、２０２  メモリ、２０３  補助記憶装置、２０４  入出力インタフェース、２０９  処理回路、２１０  専用基礎情報取得部、２２０  専用推論ルール生成部、２３０  アタックツリー生成部、２９０  記憶部、２９１  システム構成データ、２９２  脅威リスト、２９３  推論ルール、２９４  侵入経路リスト、２９５  ルール基礎情報データベース、２９５１  脅威データベース、２９５２  攻撃手法データベース、３００  アタックツリー生成装置、３０１  プロセッサ、３０２  メモリ、３０３  補助記憶装置、３０４  入出力インタフェース、３０９  処理回路、３１０  アタックツリー生成部、４００  アタックツリー生成装置、４０１  プロセッサ、４０２  メモリ、４０３  補助記憶装置、４０４  入出力インタフェース、４０９  処理回路、４１０  システム分割部、５００  アタックツリー生成装置、５０１  プロセッサ、５０２  メモリ、５０３  補助記憶装置、５０４  入出力インタフェース、５０９  処理回路、５１０  アタックツリー生成部、９００  アタックツリー、９０１  子孫ツリー群、９０２  論理和ゲート、９０３  兄弟ツリー、９０４  共通ノード、９１０  ルートツリー、９１１  ルートノード、９１２  内部ノード、９１３  末端ノード、９１４  論理ゲート、９２０  子ツリー、９２１  ルートノード、９２３  末端ノード、９２４  論理ゲート。
【図１】
0006847330.tif 000002
【図２】
0006847330.tif 000003
【図３】
0006847330.tif 000004
【図４】
0006847330.tif 000005
【図５】
0006847330.tif 000006
【図６】
0006847330.tif 000007
【図７】
0006847330.tif 000008
【図８】
0006847330.tif 000009
【図９】
0006847330.tif 000010
【図１０】
0006847330.tif 000011
【図１１】
0006847330.tif 000012
【図１２】
0006847330.tif 000013
【図１３】
0006847330.tif 000014
【図１４】
0006847330.tif 000015
【図１５】
0006847330.tif 000016
【図１６】
0006847330.tif 000017
【図１７】
0006847330.tif 000018
【図１８】
0006847330.tif 000019
【図１９】
0006847330.tif 000020
【図２０】
0006847330.tif 000021
【図２１】
0006847330.tif 000022
【図２２】
0006847330.tif 000023