以下の各実施形態にて説明する分析システムは、診断対象システムにおけるサイバー攻撃を分析するためのシステムである。上述のように、診断対象システムは、セキュリティ診断の対象となるシステムである。診断対象システムの例として、例えば、企業内のIT(Information Technology)システムや、工場やプラント等を制御するためのいわゆるOT(Operational Technology)システム等が挙げられる。ただし、診断対象システムは、これらのシステムに限られない。複数の機器が通信ネットワークを介して接続されたシステムが、診断対象システムとなり得る。
診断対象システムに含まれる各機器は、通信ネットワークを介して接続されている。診断対象システムに含まれる機器の例として、例えば、パーソナルコンピュータ、サーバ、スイッチ、ルータ、工場に設置される工作機器、工作機器の制御装置等が挙げられる。ただし、機器は、上記の例に限定されない。また、機器は、物理的な機器であっても、仮想的な機器であってもよい。
診断対象システムへの攻撃の分析の一態様として、攻撃グラフを用いた分析が挙げられる。攻撃グラフは、ある機器の脆弱性の有無等の状態や、ある機器において実行可能な攻撃から、他の機器において実行可能になる攻撃の関係を表わすことができるグラフである。攻撃グラフは、セキュリティに関連し得る何らかの状態(機器、ネットワーク、脆弱性およびセキュリティ設定等)をファクトとして定義し、それらをノードとし、ファクト間の関係をエッジとする有向グラフでとして表される。
ここで、ファクトとは、診断対象システムのセキュリティ状況を表わすデータである。より詳細な一例として、ファクトは、診断対象システム、または、診断対象システムに含まれる機器における、主にセキュリティに関連し得る何らかの状態を表わす。別の詳細な一例として、ファクトは、診断対象システムに含まれる各機器において行われ得る攻撃を表わす。この場合のファクトは、後述のように、機器と攻撃状態との組という形式や、機器、攻撃状態および権限の組という形式で表される。なお、攻撃の分析において、診断対象システムに含まれる機器にて何らかの攻撃が行われ得ることを仮定する場合が想定される。このような仮定がファクトとして扱われてもよい。
ファクトは、診断対象システムに含まれる各機器から得られた情報から定めることができる。さらに、既存のファクトから新たなファクトを導出するためのルール(以下、分析ルールと記す。)によって、1つ以上の既存のファクトから新たなファクトを導出することができる。例えば、診断対象システムに含まれる各機器から得られた情報から定まるファクトを基にして、分析ルールを用いて新たなファクトを導出することができる。さらに、各機器から得られた情報から定まるファクトや新たに得られたファクトを基にしてまた新たなファクトを導出することができる。分析ルールによって新たなファクトが導出できなくなるまで、この動作を繰り返す。そして、ファクトのそれぞれをノードとし、新たに得られたファクトの基になるファクトに対応するノードからその新たに得られたファクトに対応するノードに向かうエッジでファクトに対応するノード同士を接続することで攻撃グラフを生成することができる。
図1は、このようにして得られた一般的な攻撃グラフの例を示す模式図である。図1において、「ファクト」と記した矩形で表されるノードは、各機器から得られた情報から定まるファクトを表わしている。また、図1において、円で表されるノードおよび「ゴール」と記した矩形で表されるノードは、分析ルールを用いて新たに導出されたファクトを表わしている。なお、図1における「ゴール」は、分析ルールを用いて新たに導出されたファクトの一部であり、分析ルールを用いたファクトの導出の終点としたファクトを表わす。
以下に示す各実施形態の分析システムは、機器と、攻撃状態と、その攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報である攻撃シナリオを生成する。
本発明の各実施形態の分析システムは、起点および終点となるファクトの組を1つ以上生成し、組毎に、攻撃シナリオを生成する。なお、攻撃シナリオが生成されない組があってもよい。
以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図2は、本発明の第1の実施形態の分析システムの例を示すブロック図である。第1の実施形態の分析システム1は、データ収集部2と、データ記憶部3と、ファクト生成部4と、分析ルール記憶部5と、分析部6と、攻撃シナリオ記憶部19と、表示制御部8と、ディスプレイ装置9とを備える。
データ収集部2は、診断対象システムに含まれる各機器に関する情報を収集する。
機器に関する情報は、機器のセキュリティに関連し得る情報である。データ収集部2が収集する機器に関する情報の例として、例えば、機器に搭載されているOS(Operating System)やそのバージョン情報、機器に搭載されているハードウェアの構成情報、機器に搭載されているソフトウェアやそのバージョン情報、機器が他の機器との間で授受する通信データやその通信データの授受に用いた通信プロトコルの情報、機器のポートの状態を示す情報(どのポートが開いているか)等が挙げられる。通信データには、その通信データの送信元や送信先の情報が含まれている。データ収集部2は、これらの情報を収集する。ただし、データ収集部2が収集する情報の例は、上記の例に限定されない。データ収集部2は、機器に関する情報として、機器のセキュリティに関連し得る他の情報を収集してもよい。
データ収集部2は、診断対象システムに含まれる各機器から、直接、機器に関する情報を収集してもよい。この場合、分析システム1は、各機器と通信ネットワークを介して接続されていて、データ収集部2は、通信ネットワークを介して、各機器から情報を収集すればよい。
あるいは、データ収集部2は、各機器の情報を収集する情報収集サーバから、各機器に関する情報を取得してもよい。この場合、分析システム1は、情報収集サーバと通信ネットワークを介して接続されていて、データ収集部2は、通信ネットワークを介して、情報収集サーバから各機器に関する情報を収集すればよい。
また、各機器にエージェントが搭載されている場合には、データ収集部2は、エージェントを介して各機器に関する情報を収集してもよい。すなわち、データ収集部2は、エージェントを介して各機器の情報を収集した情報収集サーバから各機器に関する情報を取得してもよい。
各機器に搭載されたエージェントのそれぞれが、機器に関する情報を情報収集サーバに送信し、データ収集部2は、その情報収集サーバから、診断対象システムに含まれる各機器に関する情報を収集してもよい。この場合、例えば、分析システム1は、情報収集サーバと通信ネットワークを介して接続されていて、データ収集部2は、通信ネットワークを介して、その情報収集サーバから各機器に関する情報を収集すればよい。
データ収集部2は、診断対象システムに含まれる各機器に関する情報を収集すると、その情報を、データ記憶部3に記憶させる。
データ記憶部3は、データ収集部2が収集した各機器に関する情報を記憶する記憶装置である。
ファクト生成部4は、データ収集部2が収集した各機器に関する情報に基づいて、1つ以上のファクトを生成する。既に説明したように、ファクトは、診断対象システムのセキュリティ状況を表わす。ファクト生成部4で生成されるファクトは、各機器から得られた具体的な情報から導き出される、診断対象システムに含まれる1つ以上の機器の主にセキュリティに関連する何らかの状態を表わす。
ファクト生成部4は、例えば、事前に用意された、生成しようとするファクトを表わす1つ以上のテンプレートが含まれるファクト生成用ルールを参照し、それぞれのテンプレートに各機器に関する情報が合致するか否かを判断することで1つ以上のファクトを生成する。生成されたファクトのパラメータには、各機器に関する情報が適宜当てはめられる。
図3は、生成されるファクトの例を示す。図3では、3つのファクトを例示しているが、ファクトは、図3に示す3つのファクトに限定されず、分析部6における処理に必要なファクトが適宜生成されればよい。
図3において、シングルクォーテーションで示したパラメータは、診断対象システム内の機器に関する個別具体的な情報である。例えば、図3に示す例における‘ホストA’,‘ホストB’は、具体的な機器IDである。機器IDは、診断対象に含まれる機器の各々を識別する情報である。また、図3に示す例における‘ソフトウェア1’というパラメータは、機器に搭載されている具体的なソフトウェア名であり、‘CVE-2018-000x ’は、そのソフトウェアに関連する具体的な脆弱性の識別情報である。なお、この場合の識別情報として、共通脆弱性識別子CVE(Common Vulnerabilities and Exposures)のように、セキュリティに関連する機関によって採番された識別情報が用いられてもよい。また、ファクトのパラメータには、ワイルドカードを表わすパラメータが含まれていてもよい。
図3において例1として示したファクトは、「機器‘ホストA’から機器‘ホストB’にTCP(Transmission Control Protocol )80番ポートを使ってHTTP(HyperText Transfer Protocol )の通信が可能である。」という事項を表わしている。
図3において例2として示したファクトは、「機器‘ホストB’に搭載された‘ソフトウェア1’には脆弱性‘CVE-2018-000x ’があり、リモートでその脆弱性を攻撃することによって、管理者権限を取得できる。」という事項を表わしている。
図3において例3として示したファクトは、「攻撃者が、機器‘ホストA’において管理者権限を有している。」という事項を表わしている。
なお、ファクトの記述形式は、図3に示す例に限定されず、分析部6における処理が実行可能であれば他の形式であってもよい。
分析ルール記憶部5は、分析ルールを記憶する記憶装置である。分析ルールは、既存のファクトから新たなファクトを導出するためのルールである。なお、分析ルールを用いて導出されるファクトは、主に、診断対象システムに含まれる各機器において行われ得る攻撃を表わすファクトである。分析ルール記憶部5は、診断対象システムに応じた1つ以上の分析ルールを記憶する。
図4は、分析ルールの一例を示す。分析ルールは、導出される新たなファクトを表わす要素と、条件に該当する要素とを少なくとも含む。すなわち、分析ルールは、条件と合致するファクトが存在する場合に、新たなファクトが導出されることを表わす。図4に示す例では、1行目の要素が、導出される新たなファクトを表わす要素である。また、2行目から4行目までの各要素が、条件に該当する要素である。図4に示す分析ルールでは、3つの条件の全てにそれぞれ合致するファクトが存在する場合に、1行目に表される新たなファクトが導出される。また、分析ルールには、その分析ルールに対して一意に定められたラベルを表わす要素が含まれてもよい。図4に示す例では、5行目の要素が、分析ルールに一意に定められたラベルを表わす要素である。5行目の要素は、図4に示す分析ルールのラベルが「exec01」であることを表わしている。
図4において、シングルクォーテーションで囲まれたパラメータは、診断対象システム内の機器に関する個別具体的な情報である。例えば、3行目の条件に記述された‘ソフトウェア1’は、機器に搭載されている具体的なソフトウェア名である。つまり、3行目の条件は、機器に搭載された‘ソフトウェア1’というソフトウェアと関連する条件である。このような個別具体的なパラメータを含む条件と合致するファクトには、そのパラメータに相当する情報が含まれる必要がある。換言すると、3行目の条件と合致するファクトは、機器に搭載された‘ソフトウェア1’というソフトウェアと関連するファクトである。
また、図4に示す分析ルールには、次に説明する変数とは異なり、固定的に定められた値が含まれていてもよい。例えば、図4に示す「攻撃者」、「管理者権限」、「http」、「80」、「リモート」、「権限昇格」および「管理者」は、固定的に定められた値である。固定的に定められた値をパラメータに含む条件と合致するファクトには、その固定値に相当する情報が前提のファクトに含まれることが必要である。
また、図4において、大文字で始まるパラメータは、変数である。変数となるパラメータは、合致させるファクトに応じて変化してよいことを表わす。図4に示す例では、「SrcHost 」および「DstHost 」が変数である。変数となるパラメータには、機器から収集された情報に含まれる種々の情報が当てはめられる。1つの分析ルールにおいて、同じパラメータで記述される変数には、共通の値が当てはめられる。例えば、図4における2行目および4行目に記述された変数「SrcHost 」には、共通の具体的な機器IDが当てはめられる。同様に、図4における2行目および3行目に記述された変数「DstHost 」には、共通の具体的な機器IDが当てはめられる。
また、図4に示す例において、3行目に記述された「CVEID 」は、脆弱性の識別情報に関するワイルドカードを表わす。このように、分析ルール内に、ワイルドカードを表わすパラメータが含まれていてもよい。機器に関する情報に関わりなくファクトが成り立つ場合、当該ファクトの少なくとも一部にはワイルドカードを表わすパラメータが含まれていてもよい。ワイルドカードを表わすパラメータは、そこに当てはまる情報が何であってもよいことを表わす。
図4に示す分析ルールでは、条件に含まれる同じ変数に対しては、機器に関する同じ情報が当てはめられる。すなわち、図4に示す分析ルールでは、「SrcHost 」および「DstHost 」のパラメータそれぞれについて、機器に関する同一の情報が当てはめられる。そして、図4に示す例では、変数に対して上述のように機器に関する情報が当てはめられ、かつ、それぞれの条件に合致するそれぞれのファクトが存在する場合、1行目に表される新たなファクトが導出される。また、1行目に表される新たなファクトとして、機器に関する情報が変数に当てはめられたファクトが導出される。
なお、分析ルールの記述形式は、図4に示す例に限定されない。
分析部6は、起点および終点となるファクトの1つ以上の組のそれぞれのうち、起点となるファクトから終点となるファクトを導出可能である組について、攻撃シナリオを生成する。攻撃シナリオとは、機器と、攻撃状態と、その攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報である。分析部6は、一例として、起点となるファクトから終点となるファクトを導出可能か否かを分析する。そして、分析部6は、起点となるファクトから終点となるファクトを導出可能である場合に、攻撃シナリオを生成する。分析部6は、起点となる機器に関する情報および終点となる機器に関する情報から生成されたファクト、起点となるファクト、および、分析ルール記憶部5に記憶された分析ルールを用いて、起点となるファクトから終点となるファクトを導出可能か否かを分析する。この分析において、分析部6は、起点となる機器と終点となる機器のいずれにも該当しない機器に関する情報から生成されたファクトは用いない。そして、起点となるファクトから終点となるファクトを導出可能であるならば、分析部6は、攻撃シナリオを生成する。
起点となるファクトを、単に、起点ファクトと称する場合がある。同様に、終点となるファクトを、単に、終点ファクトと称する場合がある。
なお、起点および終点となるファクトのそれぞれは、通常、診断対象システムに含まれる各機器において行われ得る攻撃を表わすファクト(攻撃可能性を表わすファクト)である。すなわち、起点となるファクトから終点となるファクトを導出可能であることは、起点となる機器において何らかの攻撃が可能な場合に、終点となる機器において別の攻撃が可能であることを示す。起点となるファクトから終点となるファクトを導出できないということは、起点となる機器において何らかの攻撃が可能であっても、終点となる機器において、終点となるファクトが表わす別の攻撃を実行できないことを示す。
起点となるファクトから終点となるファクトを導出可能であるか否かを分析する動作例についてについて説明する。
分析部6は、攻撃グラフの起点となるファクトと、攻撃グラフの終点となるファクトとの1つ以上の組を生成する。起点および終点となるファクトのそれぞれは、起点となる機器および終点となる機器において行われ得る攻撃を表わすファクトである。
分析部6は、攻撃グラフの起点となるファクトと攻撃グラフの終点となるファクトとの組毎に、起点となる機器に関する情報および終点となる機器に関する情報から生成されたファクト、起点となるファクト、および、分析ルール記憶部5に記憶された分析ルールに基づいて、起点となるファクトから終点となるファクトを導出可能であるか否かを分析する。この分析において、分析部6は、起点となる機器と終点となる機器のいずれにも該当しない機器に関する情報から生成されたファクトを用いない。
ここで、攻撃グラフの起点となるファクト、および、攻撃グラフの終点となるファクトについて説明する。
攻撃には複数の種類があり、機器の有する脆弱性に応じて、受ける可能性がある攻撃が異なる。そこで、本発明の実施形態では、脆弱性によって攻撃を受ける可能性がある機器の状態を攻撃状態と定義する。例えば、攻撃状態として、「コードを実行できる状態(以下、任意コード実行と記す。)」、「データを改ざんできる状態(以下、データ改ざんと記す。)」、「ファイルにアクセスできる状態(以下、ファイルアクセス可能と記す。)」、「アカウント情報を持っている状態(以下、アカウント保有と記す。)」、「DoS(Denial of Service )攻撃を行える状態(以下、dosと記す。)」等が挙げられる。本実施形態では、「任意コード実行」、「データ改ざん」、「ファイルアクセス可能」、「アカウント保有」および「dos 」という5種類の攻撃状態が定められている場合を例にする。ただし、攻撃状態は、上記の5種類に限定されない。診断対象システムで起こり得る攻撃に応じて、この他の種類の攻撃状態が定められていてもよい。また、複数の攻撃状態を包含する攻撃状態が定められていてもよい。例えば、「任意コード実行」、「データ改ざん」、「ファイルアクセス可能」および「アカウント保有」の全てを包含する状態として「all 」という攻撃状態が定められていてもよい。
分析部6は、攻撃グラフの起点となるファクトとして、診断対象システムに含まれる各機器の機器IDのうちの1つと、予め定められた複数種類の攻撃状態のうちの1つと、攻撃状態と対応し得る権限のうちの1つとの組み合わせを生成する。
同様に、分析部6は、攻撃グラフの終点となるファクトとして、診断対象システムに含まれる各機器の機器IDのうちの1つと、予め定められた複数種類の攻撃状態のうちの1つと、攻撃状態と対応し得る権限のうちの1つとの組み合わせを生成する。
ここで、「権限」は、攻撃状態が示す攻撃を行う際の権限を含む。この場合の権限は、例えば、管理者権限または一般権限のいずれかである。また、「権限」には、攻撃状態が示す攻撃を行う際に権限が関連しないという事項(以下、「権限関連なし」と記す。)が含まれ得る。従って、予め定められた複数種類の権限は、一例として、「管理者権限」、「一般権限」および「権限関連なし」である。
攻撃状態と権限との組み合わせは、攻撃状態の具体的な内容に応じて適宜定められる。例えば、「任意コード実行」、「データ改ざん」、「ファイルアクセス可能」および「アカウント保有」が示す各攻撃は、管理者権限または一般権限等の何らかの権限の下で行われ得る。従って、「任意コード実行」、「データ改ざん」、「ファイルアクセス可能」および「アカウント保有」の各攻撃状態に対しては、各攻撃状態の具体的内容に応じて、「管理者権限」や「一般権限」等の適当な権限が組み合わせられる。また、DoS攻撃は、管理者権限や一般権限等の権限と関連なく行われる。従って、「dos 」という攻撃状態には、「権限関連なし」が組み合わせられる。
分析部6は、このような攻撃状態と権限との組み合わせのもとで、攻撃グラフの起点となるファクトとして、診断対象システムに含まれる機器のうちの1つに対応する機器と、複数種類の攻撃状態のうちの1つと、攻撃状態と対応し得る権限のうちの1つとの組み合わせを生成する。同様に、分析部6は、このような攻撃状態と権限との組み合わせのもとで、攻撃グラフの終点となるファクトとして、診断対象システムに含まれる機器のうちの1つに対応する機器と、複数種類の攻撃状態のうちの1つと、攻撃状態と対応し得る権限のうちの1つとの組み合わせを生成する。
このように、本実施形態では、「機器、攻撃状態、権限」の組み合わせを、攻撃グラフの起点となるファクトや、攻撃グラフの終点となるファクトとして扱う。なお、ファクトに含まれる機器は、例えば、機器IDによって表される。すなわち、起点および終点となるファクトのそれぞれは、機器IDによって表される機器において、攻撃状態として表される攻撃を受ける可能性があることを表わすファクトである。
さらに、分析部6は、攻撃グラフの起点となるファクト(「機器、攻撃状態、権限」の組み合わせ)と、攻撃グラフの終点となるファクト(「機器、攻撃状態、権限」の組み合わせ)との組を定める。分析部6は、この場合に、診断対象システムにおける、起点となるファクトと終点となるファクトとの全ての組を網羅的に定めてもよいし、一部の組を定めてもよい。一部の組を定める場合、分析部6は、診断対象システム内の特定のサブネットに含まれる機器等、診断対象システムに含まれる機器の一部を対象として、起点となるファクトと終点となるファクトとの組を定めてもよい。すなわち、分析部6は、起点となるファクトおよび終点となるファクトを、診断対象システムに含まれる機器のうちの一部の機器に基づいて生成する場合、診断対象システムの同一のサブネットに含まれる機器を、その一部の機器としてもよい。また、分析部6は、通信の際に他の機器を介する必要がある機器の組、すなわち、直接通信できない機器の組を除外して、起点となるファクトと終点となるファクトとの組を定めてもよい。換言すれば、分析部6は、起点となるファクトおよび終点となるファクトを、診断対象システムに含まれる機器のうちの一部の機器に基づいて生成する場合、直接通信できる機器を、その一部の機器としてもよい。
このとき、分析部6は、起点側の機器と終点側の機器との組み合わせをそれぞれ定め、それぞれの機器の組み合わせのもとで、起点となるファクト(「機器、攻撃状態、権限」の組み合わせ)と、終点となるファクト(「機器、攻撃状態、権限」の組み合わせ)との組を定めてもよい。
なお、起点となるファクトに含まれる機器と、終点となるファクトに含まれる機器とが、同じ機器であってもよい。すなわち、分析部6は、ある機器の1つの攻撃状態から、別の攻撃状態へ到達可能であるか、換言すると、ある機器においてある攻撃が可能な場合に、その機器で他の攻撃が可能になるかの分析も行うことができる。
上記のように、起点となるファクトと終点となるファクトとの1つ以上の組を定めた後、分析部6は、その組毎に、起点となる機器に関する情報および終点となる機器に関する情報から生成された各々の機器の状態を表わすファクト、起点となるファクト、および、予め定められた1つ以上の分析ルールに基づいて、起点となるファクトから終点となるファクトを導出可能か否かを分析する。この場合、分析部6は、例えば、分析ルール記憶部5に記憶された分析ルールを基に推論アルゴリズムを適用すればよい。起点となる機器とは、起点となるファクトに含まれる機器IDが示す機器であり、終点となる機器とは、終点となるファクトに含まれる機器IDが示す機器である。従って、例えば、起点となるファクトに含まれる機器IDが‘ホストA’であり、終点となるファクトに含まれる機器IDが‘ホストB’である場合、分析部6は、機器‘ホストA’に関する情報および機器‘ホストB’に関する情報から生成された、‘ホストA’および‘ホストB’の状態を表わすファクトに基づいて、終点となるファクトを導出可能か否かを分析する。すなわち、分析部6は、起点となる機器および終点となる機器以外の機器に関連するファクトの導出や、同じファクトの繰り返しの導出を行わずに、着目した組に関して起点となるファクトから終点となるファクトを導出可能か否かを分析することができる。換言すると、分析部6は、参照するファクトを上述のように制限することで、冗長なファクトを導出することなく、起点となるファクトから終点となるファクトを導出可能か否かを分析することができる。
1つの組に着目して終点となるファクトを導出可能か否かの分析を開始する時点では、分析部6は、起点となる機器に関する情報および終点となる機器に関する情報から生成されたファクトと、起点となるファクトとを既存のファクトとする。分析部6は、起点および終点以外の機器に関する情報からファクト生成部4によって生成されたファクトを既存のファクトに含めない。分析部6は、分析ルールの条件と合致するファクトが既存のファクトに含まれるか否かを判断する。そして、分析部6は、分析ルールに含まれるそれぞれの条件に合致するそれぞれのファクトが既存のファクトに存在する場合に、その分析ルールに基づいて新たなファクトを導出する。分析部6は、導出した新たなファクトを既存のファクトに追加する。分析部6は、この動作を繰り返す。そして、分析部6は、導出した新たなファクトが、着目している組における終点となるファクトに一致する場合に、起点となるファクトから終点となるファクトを導出可能であると判断する。
以下、図4に例示する分析ルールを例にして、分析部6が新たなファクトを導出する動作の例をより詳細に説明する。分析部6は、分析ルールに含まれる条件の各々と、その時点において得られている既存のファクトのそれぞれとを対比して、条件に合致するファクトが存在するか否かを判定する。分析ルールに含まれる条件のうち、固定値のパラメータについては、分析部6は、条件に含まれる固定値のパラメータと、既存のファクトの対応する固定値とが一致するか否かを判定することで、条件と合致するファクトが既存のファクトに存在するか否かを判定する。変数のパラメータにおいては、分析部6は、既存のファクトに含まれる値をそのまま条件に当てはめる。そして、分析部6は、条件に合致するファクトが既存のファクトに含まれる場合に、新たなファクトを導出する。
例えば、既存のファクトに、図3に例示する3つのファクトが存在しているとする。そして、図4に例示する分析ルールを用いて分析部6が新たなファクトを導出することを想定する。この場合に、図4に示す分析ルールの各条件に含まれる固定値のパラメータと、図3に示すファクトに含まれる固定値のパラメータとは一致する。従って、この場合、分析部6は、図4に示す1行目の変数「DstHost 」に‘ホストB’を当てはめることによって、“任意コード実行(攻撃者,‘ホストB ’,管理者権限)”という新たなファクトを導出する。そして、分析部6は、その新たなファクトを既存のファクトに追加する。なお、この新たなファクトは、「攻撃者が機器‘ホストB’において管理者権限でコードを実行できる状態である。」という事項を表わしている。すなわち、図3に例示する3つのファクトから、「攻撃者が機器‘ホストB’において管理者権限でコードを実行できる状態である。」という事項が導き出される。
分析ルールに含まれる条件が既存のファクトと合致しない場合、分析部6は、当該分析ルールに基づく新たなファクトを導出しない。これは、既存のファクトを前提とした場合には、当該分析ルールで表されるファクトが導出されないことを表わす。
分析部6は、分析ルール毎に同様の処理を行う。
また、分析部6は、新たなファクトが、着目している組における終点となるファクトに該当するまで、新たなファクトの導出を繰り返す。新たなファクトを導出できなくなるまで新たなファクトの導出を繰り返しても、着目している組における終点となるファクトが得られなかった場合には、分析部6は、着目している組に関して、起点となるファクトから終点となるファクトを導出できないと判定する。これは、起点となる機器における攻撃状態に起因して、終点となる機器では攻撃が起こらないことに相当する。
なお、分析部6は、他の手法を用いて、起点となるファクトから終点となるファクトを導出可能かを分析してもよい。この場合、分析部6は、起点となるファクトから終点となるファクトを導出できないと判定できた場合に、その組に対する分析を終了してもよい。
分析部6は、起点となるファクトから終点となるファクトを導出可能と判断した場合に、その2つのファクトの組に関して、攻撃シナリオを生成する。このとき、分析部6は、起点となるファクトおよび終点となるファクトに応じて、攻撃シナリオを生成する。より具体的には、分析部6は、起点となるファクトから終点となるファクトを導出可能と判断した組(起点となるファクトと終点となるファクトとの組)毎に、起点となるファクトに該当する「機器と、攻撃状態と、権限との組み合わせ」から、終点となるファクトに該当する「機器と、攻撃状態と、権限との組み合わせ」に遷移することを示す情報を、攻撃シナリオとして生成する。
分析部6は、生成した攻撃シナリオを攻撃シナリオ記憶部19に記憶させる。攻撃シナリオ記憶部19は、攻撃シナリオを記憶する記憶装置である。
表示制御部8は、分析部6によって生成された各攻撃シナリオをディスプレイ装置9上に表示する。表示制御部8は、攻撃シナリオ記憶部19から各攻撃シナリオを読み込み、各攻撃シナリオをディスプレイ装置9上に表示すればよい。
ディスプレイ装置9は、情報を表示する装置であり、一般的なディスプレイ装置でよい。なお、分析システム1がクラウド上に存在する場合には、ディスプレイ装置9は、クラウドに接続される端末のディスプレイ装置等であってもよい。
表示制御部8が攻撃シナリオを表示する動作の例を説明する。前述のように、分析部6は、起点となるファクトから終点となるファクトを導出可能と判断した組(起点となるファクトと終点となるファクトとの組)毎に、起点となるファクトに該当する「機器と、攻撃状態と、権限との組み合わせ」から、終点となるファクトに該当する「機器と、攻撃状態と、権限との組み合わせ」に遷移することを示す情報を、攻撃シナリオとして生成する。
表示制御部8は、各攻撃シナリオを表示するときに、起点となるファクトに関して、機器を表わす第1のアイコン内に、権限を表わす第2のアイコンを表示し、第2のアイコン内に攻撃状態を表わす第3のアイコンを表示する。同様に、表示制御部8は、終点となるファクトに関しても、機器を表わす第1のアイコン内に、権限を表わす第2のアイコンを表示し、第2のアイコン内に攻撃状態を表わす第3のアイコンを表示する。そして、表示制御部8は、起点となるファクトに応じた第3のアイコンから終点となるファクトに応じた第3のアイコンに伸びるエッジを表示する。
ただし、起点となるファクトにおける機器と、終点となるファクトにおける機器とが共通である場合には、第1のアイコンは共通となる。同様に、起点となるファクトにおける機器および権限と、終点となるファクトにおける機器および権限とがそれぞれ共通である場合には、第1のアイコンは共通となり、第2のアイコンも共通となる。
また、表示制御部8は、所定の場合には、第2のアイコンの表示を省略し、第1のアイコン内に第3のアイコンを表示する。上記の所定の場合とは、本実施形態では、権限が「権限関連なし」である場合である。本実施形態では、「権限関連なし」は、「dos 」という攻撃状態に対応する。従って、「dos 」を表わす第3のアイコンは、第2のアイコンなしで表示される。
図5は、上記のような攻撃シナリオの表示例を示す模式図である。図5では、2台の機器A,Bにおける複数の攻撃シナリオの表示例を示している。本例では、表示制御部8は、図5に示すように、機器A,Bを表わす2つの第1のアイコン41を表示する。そして、表示制御部8は、第1のアイコン41内に、一般権限や管理者権限を表わす第2のアイコン42を表示する。さらに、第2のアイコン42内に、「任意コード実行」等の種々の攻撃状態を表わす第3のアイコン43を表示する。ただし、前述のように、権限が「権限関連なし」である場合には、表示制御部8は、第2のアイコン42の表示を省略する。従って、表示制御部8は、「dos 」を表わす第3のアイコン43を、第1のアイコン41内において、第2のアイコン42なしで表示する。また、表示制御部8は、起点となるファクトに応じた第3のアイコン43から終点となるファクトに応じた第3のアイコン43に伸びるエッジを表示する。以下、説明を分かり易くするために、機器A側の各アイコンの符号に添え字“a”を付し、機器B側の各アイコンの符号に添え字“b”を付して説明する。
例えば、図5に示す例では、機器Aを表わす第1のアイコン41a内に、一般権限を表わす第2のアイコン42aが表示され、さらにその第2のアイコン42a内に、「任意コード実行」を表わす第3のアイコン43aが表示されている。同様に、機器Bを表わす第1のアイコン41b内に、管理者権限を表わす第2のアイコン42bが表示され、さらにその第2のアイコン42b内に、「任意コード実行」を表わす第3のアイコン43bが表示されている。そして、上記の第3のアイコン43aから第3のアイコン43bに伸びるエッジが表示されている。このことは、「機器A,任意コード実行,一般権限」という組み合わせ(ファクト)から「機器B,任意コード実行,管理者権限」という組み合わせ(ファクト)に遷移するという攻撃シナリオを表わしている。
また、例えば、図5に示す例では、機器Aを表わす第1のアイコン41a内に、一般権限を表わす第2のアイコン42aが表示され、さらにその第2のアイコン42a内に、「ファイルアクセス可能」を表わす第3のアイコン43aが表示されている。また、その第2のアイコン42a内には、「任意コード実行」を表わす別の第3のアイコン43aが表示されている。そして、「ファイルアクセス可能」を表わす第3のアイコン43aから「任意コード実行」を表わす別の第3のアイコン43aに伸びるエッジが表示されている。このことは、「機器A,ファイルアクセス可能,一般権限」という組み合わせ(ファクト)から「機器A,任意コード実行,一般権限」という組み合わせ(ファクト)に遷移するという攻撃シナリオを表わしている。この攻撃シナリオにおいて、起点となるファクトにおける機器と、終点となるファクトにおける機器は、「機器A」で共通である。また、起点となるファクトにおける権限と、終点となるファクトにおける権限は、「一般権限」で共通である。従って、本例では、「ファイルアクセス可能」を表わす第3のアイコン43aを包含する第2のアイコン42aおよび第1のアイコン41aは、「任意コード実行」を表わす第3のアイコン43aを包含する第2のアイコン42aおよび第1のアイコン41aと共通である。
また、ある起点となるファクトおよび終点となるファクトの組み合わせ(組み合わせPとする。)における終点と、別の起点となるファクトおよび終点となるファクトの組み合わせ(組み合わせQとする。)における起点とが一致しているとする。この場合、表示制御部8は、組み合わせPにおける終点および組み合わせQにおける起点(両者は一致している。)に該当する第3のアイコン43に到達するエッジと、その第3のアイコン43から伸びるエッジの両方を表示する。例えば、図5に示す例において、機器Bを表わすアイコン41b内に表示される「アカウント保有」を表わす第3のアイコン43bに着目すると、「アカウント保有」を表わす第3のアイコン43bに到達するエッジと、その第3のアイコン43bから伸びるエッジの両方が表示されている。
図5に示す例では、2台の機器A,Bにおける複数の攻撃シナリオの表示例を示した。表示制御部8は、3台以上の機器における複数の攻撃シナリオを表示してもよい。図6は、3台の機器A,B、Cにおける複数の攻撃シナリオの表示例を示す模式図である。図6では、機器C側の各アイコンの符号に符号“c”を付している。
図6に示す例では、「機器A,任意コード実行,一般権限」という組み合わせから、「機器C,任意コード実行,管理者権限」という組み合わせに直接遷移する経路と、「機器A,任意コード実行,一般権限」という組み合わせから、「機器B,任意コード実行,管理者権限」という組み合わせを経て、「機器C,任意コード実行,管理者権限」という組み合わせに遷移する経路とがあることが分かる。このように、ある組み合わせから別の組み合わせに遷移する場合、直接遷移する経路と、1つ以上の別の機器(上記の例では機器B)を経て遷移する経路とがそれぞれ存在していてもよい。
なお、攻撃シナリオの表示方法は、図5および図6に示す例に限定されず、表示制御部8は、上述した方法とは別の方法で、各攻撃シナリオを表示してもよい。
データ収集部2は、例えば、分析プログラムに従って動作するコンピュータのCPU(Central Processing Unit )、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から分析プログラムを読み込み、その分析プログラムに従って、通信インタフェースを用いて、データ収集部2として動作すればよい。また、ファクト生成部4、分析部6および表示制御部8は、例えば、分析プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが上記のようにプログラム記録媒体から分析プログラムを読み込み、その分析プログラムに従って、ファクト生成部4、分析部6および表示制御部8として動作すればよい。データ記憶部3、分析ルール記憶部5、攻撃シナリオ記憶部19は、例えば、コンピュータが備える記憶装置によって実現される。
次に、処理経過について説明する。図7および図8は、本発明の第1の実施形態の分析システムの処理経過の例を示すフローチャートである。既に説明した事項については説明を省略する。
まず、データ収集部2が、診断対象システムに含まれる各機器に関する情報を収集する(ステップS1)。データ収集部2は、収集したデータをデータ記憶部3に記憶させる。
次に、ファクト生成部4が、各機器に関する情報に基づいて、1つ以上のファクトを生成する(ステップS2)。
次に、分析部6が、攻撃グラフの起点となるファクトとして、機器のうちの1つと、複数種類の攻撃状態のうちの1つと、攻撃状態と対応し得る権限のうちの1つとの組み合わせを生成する。同様に、分析部6は、攻撃グラフの終点となるファクトとして、機器のうちの1つと、複数種類の攻撃状態のうちの1つと、攻撃状態と対応し得る権限のうちの1つとの組み合わせを生成する(ステップS3)。
次に、分析部6が、攻撃グラフの起点となるファクトと、攻撃グラフの終点となるファクトとの組を1つ以上、生成する(ステップS4)。
次に、分析部6は、ステップS4で生成された組が全てステップS6で選択済みであるか否かを判定する(ステップS5)。未選択の組がある場合(ステップS5のNo)、ステップS6に移行する。最初にステップS4からステップS5に移行した場合、1つの組も選択されていない。従って、この場合、ステップS6に移行する。
ステップS6において、分析部6は、ステップS4で生成された組のうち、まだ選択されていない組を1つ選択する。
ステップS6に続いて、分析部6は、ファクトを取捨選択する(ステップS6a)。ステップS6aにおいて、分析部6は、ステップS7の分析で用いるファクトを選択し、ステップS7の分析で用いないファクトについては選択しない。具体的には、分析部6は、起点となる機器に関する情報および終点となる機器に関する情報から生成されたファクトと、起点となるファクトとを選択する。また、分析部6は、起点となる機器と終点となる機器のいずれにも該当しない機器に関する情報に基づいて生成されたファクトについては選択しない。起点となる機器と終点となる機器のいずれにも該当しない機器に関する情報に基づいて生成されたファクトは、ステップS7の分析で用いられない。
ステップS6aの後、分析部6は、選択した組に関して、起点となるファクトから終点となるファクトを導出可能か否かを分析する(ステップS7)。ステップS7の開始時点では、分析部6は、起点となる機器に関する情報および終点となる機器に関する情報から生成されたファクト、および、起点となるファクト(すなわち、ステップS6aで選択したファクト)を既存のファクト(参照対象のファクト)とする。そして、分析部6は、分析ルールに基づいて新たなファクトを導出した場合、その新たなファクトを上記の既存のファクト(参照対象のファクト)に追加する。分析部6は、既存のファクト(参照対象のファクト)と分析ルールに基づいて、新たなファクトの導出を繰り返すことによって、終点となるファクトを導出可能か否かを分析する。新たなファクトを導出できなくなるまで新たなファクトの導出を繰り返しても、選択している組における終点となるファクトが得られなかった場合には、分析部6は、起点となるファクトから終点となるファクトを導出できないと判断する。
起点となるファクトから終点となるファクトを導出できなかった場合(ステップS8のNo)、分析部6はステップS5以降の処理を繰り返す。
起点となるファクトから終点となるファクトを導出できた場合(ステップS8のYes)、分析部6は、選択した組における攻撃シナリオを生成し、その攻撃シナリオを攻撃シナリオ記憶部19に記憶させる(ステップS9)。ステップS9において、分析部6は、選択した組に関して、起点となるファクトに該当する「機器と、攻撃状態と、権限との組み合わせ」から、終点となるファクトに該当する「機器と、攻撃状態と、権限との組み合わせ」に遷移することを示す情報を、攻撃シナリオとして生成する。そして、分析部6は、その攻撃シナリオを攻撃シナリオ記憶部19に記憶させる。
ステップS9の後、分析部6はステップS5以降の処理を繰り返す。
分析部6が、ステップS4で生成された組が全てステップS6で選択済みであると判定した場合(ステップS5のYes)、表示制御部8は、攻撃シナリオ記憶部19に記憶されている各攻撃シナリオを読み込み、各攻撃シナリオをディスプレイ装置9上に表示する(ステップS10、図8参照)。表示制御部8は、例えば、図5や図6に例示する態様で、各攻撃シナリオをディスプレイ装置9上に表示すればよい。ただし、攻撃シナリオの表示態様は、図5や図6に例示する態様に限定されない。
本実施形態によれば、「機器と、攻撃状態と、権限との組み合わせ」から、別の「機器と、攻撃状態と、権限との組み合わせ」に遷移することを示す攻撃シナリオを生成する。従って、そのような攻撃シナリオをセキュリティ管理者(以下、単に管理者と記す。)に提示することができる。従って、診断対象システムに対する分析結果を、攻撃順序等を理解しやすいように提示することができる。
なお、上記の実施形態では、分析システム1が、ステップS5から始まるループ処理を実行する場合を例にして説明した。分析システム1は、ステップS4で生成された各組に関して、ステップS6以降の処理を並列処理で実現してもよい。
次に、第1の実施形態の変形例について説明する。本変形例では、分析装置1は、診断対象システムに含まれる機器のネットワークトポロジに重畳させて攻撃シナリオを表示する。診断対象システムに含まれる機器のネットワークトポロジに重畳させて攻撃シナリオを表示するという変形例は、後述の第2の実施形態および第3の実施形態にも適用可能である。
図9は、第1の実施形態の変形例における分析システムの例を示すブロック図である。図2に示す要素と同様の要素については、図2と同一の符号を付し、説明を省略する。本変形例の分析システム1は、図2に示す各要素に加え、トポロジ特定部14を備える。
トポロジ特定部14は、診断対象システムに含まれる各機器のネットワークトポロジを特定する。具体的には、トポロジ特定部14は、管理者から与えられたネットワークトポロジの構成を基に、各機器のネットワークトポロジを特定してもよいし、データ記憶部3に記憶された各機器に関する情報を基に、各機器のネットワークトポロジを特定してもよい。以下、ネットワークトポロジにおいて、機器を表わすノードを機器ノードと記す。
トポロジ特定部14は、例えば、分析プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、プログラム記録媒体から分析プログラムを読み込み、そのプログラムに従って、トポロジ特定部14として動作すればよい。
表示制御部8は、トポロジ特定部14によって特定されたネットワークトポロジに、攻撃シナリオを重畳して、ディスプレイ装置9上に表示する。図10は、ネットワークトポロジに攻撃シナリオを重畳して表示する例を示す模式図である。図10では、図を簡単にするために、第2のアイコン42や第3のアイコン43の数を少なく図示している。
表示制御部8は、ネットワークトポロジを表示する。図10では、診断対象システムに含まれる事務用PC51、ファイルサーバ52、管理用PC53、社内Webサーバ54およびデータサーバ55を機器ノードとするネットワークトポロジが表示された場合を示している。表示制御部8は、ネットワークトポロジの各機器ノードを、それぞれ、機器ノードが表わす機器の種類に応じた形状のアイコンで表示することが好ましい。
さらに、表示制御部8は、例えば、機器ノードの近傍に、第2のアイコン42および第3のアイコン43を包含する第1のアイコン41を表示する。そして、表示制御部8は、攻撃シナリオを表現するエッジを、ネットワークトポロジの機器ノード同士を結ぶエッジに重ねて表示する(図10参照)。
図10に示す例では、「データサーバ55,任意コード実行,一般権限」という組み合わせから「社内Webサーバ54,任意コード実行,一般権限」という組み合わせに遷移することを示す攻撃シナリオや、「データサーバ55,アカウント保有,管理者権限」という組み合わせから「管理用PC53,任意コード実行,管理者権限」という組み合わせに遷移することを示す攻撃シナリオが表示されている。図10では、図面を簡単にするために、上記の2つの攻撃シナリオが表示される場合を例示しているが、表示される攻撃シナリオは、上記の2つの攻撃シナリオに限定されない。攻撃シナリオに基づく第1のアイコン41内に収まるエッジや、第2のアイコン42内に収まるエッジが存在するならば、表示制御部8は、それらのエッジも表示することで、攻撃シナリオを表示してもよい。
本変形例によれば、攻撃シナリオだけでなく、ネットワークトポロジも表示されるので、管理者にとって、攻撃順序等をより理解しやすくすることができる。
実施形態2.
本発明の第2の実施形態の分析システム1の一例は、図9に示すように表すことができるので、図9を参照して第2の実施形態について説明する。第1の実施形態およびその変形例で説明した事項については、説明を省略する。
第2の実施形態では、表示制御部8は、外部から第1の機器および第2の機器の指定を受け付ける。以下、表示制御部8が、管理者から第1の機器および第2の機器の指定を受け付ける場合を例にして説明する。
表示制御部8は、管理者によって第1の機器および第2の機器が指定されると、第1の機器から第2の機器に至る攻撃シナリオを表示する。
本例では、表示制御部8が、トポロジ特定部14(図9参照)によって特定されたネットワークトポロジをディスプレイ装置9上に表示し、例えば、管理者によって、機器ノードに対するクリック操作等が行われることによって、第1の機器および第2の機器の指定を受け付けるものとする。
なお、攻撃シナリオ記憶部19に各攻撃シナリオが記憶されるまでの動作は、第1の実施形態と同様である。
表示制御部8は、攻撃シナリオを表示する前に、まず、ネットワークトポロジをディスプレイ装置9上に表示する。図11は、ネットワークトポロジの表示例を示す模式図である。例えば、図11に示す例において、管理者によって、データサーバ55のアイコンがクリックされることによって、データサーバ55が第1の機器として指定され、管理用PC53のアイコンがクリックされることによって、管理用PC53が第2の機器として指定されたとする。その場合、表示制御部8は、データサーバ55(第1の機器)から管理用PC53(第2の機器)に至る攻撃シナリオを表示する。この場合の、攻撃シナリオの表示例を、図12に示す。図12に示す例では、「データサーバ55,アカウント保有,管理者権限」という組み合わせから「管理用PC53,任意コード実行,管理者権限」という組み合わせに遷移することを示す攻撃シナリオが表示される場合を例示している。図12では、図面を簡単にするために、上記の1つの攻撃シナリオが表示される場合を例示しているが、表示される攻撃シナリオは、上記の1つの攻撃シナリオに限定されない。攻撃シナリオに基づく第1のアイコン41内に収まるエッジや、第2のアイコン42内に収まるエッジが存在するならば、表示制御部8は、それらのエッジも表示することで、攻撃シナリオを表示してもよい。
なお、上記の例では、社内Webサーバ54は、第2の機器として指定されていない。従って、図10に例示するように、「データサーバ55,任意コード実行,一般権限」という組み合わせから「社内Webサーバ54,任意コード実行,一般権限」という組み合わせに遷移することを示す攻撃シナリオが存在していたとしても、表示制御部8は、その攻撃シナリオを表示しない。
なお、第3のアイコン43のホップ数、または、機器のホップ数に、上限が設けられていてもよい。例えば、データサーバ55(第1の機器)から管理用PC53(第2の機器)に至る攻撃シナリオが複数存在しているとする。その場合、表示制御部8は、その複数の攻撃シナリオのうち、第3のアイコン43のホップ数(機器のホップ数でもよい。)が上限値以下となっている攻撃シナリオのみを表示する。
また、表示制御部8は、第1の機器が指定された場合に、各攻撃シナリオに基づいて、第2の機器の候補となる機器を特定し、その機器のアイコンを強調して表示してもよい。例えば、第2の機器の候補となる機器のアイコンを、赤色等の所定の色で表示することによって強調してもよい。なお、第2の機器の候補となる機器は、複数存在してもよい。そして、第2の機器の候補となる機器の中から、管理者によって第2の機器が指定された場合に、表示制御部8は、第1の機器から第2の機器に至る攻撃シナリオを表示する。
本実施形態によれば、第1の機器から第2の機器に至る攻撃シナリオが表示される。従って、管理者は、第1の機器および第2の機器を指定することによって、表示される攻撃シナリオを絞り込むことができる。従って、管理者は、注目していない機器に関する攻撃シナリオを表示させないようにすることができ、注目していない攻撃シナリオが多数表示されることで攻撃シナリオが見づらくなることを防ぐことができる。
上記の例では、第1の機器および第2の機器が指定される場合を説明した。第2の実施形態において、外部から1つの機器が指定されてもよい。以下、管理者によって1つの機器が指定される場合を例にして説明する。
管理者によって1つの機器が指定された場合、表示制御部8は、その1つの機器から他の機器に至る攻撃シナリオを表示する。例えば、表示制御部8が、図11に例示するネットワークトポロジを表示し、管理者によって、データサーバ55のアイコンがクリックされることによって、データサーバ55が指定されたとする。この場合、表示制御部8は、例えば、図10に例示するように、データサーバ55から他の機器(図10に示す例では、管理用PC53および社内Webサーバ54)に至る攻撃シナリオを表示する。図10については、既に説明したので、ここでは、説明を省略する。
この場合においても、第3のアイコン43のホップ数、または、機器のホップ数に、上限がもうけられていてよい。例えば、指定された1つの機器から他の機器に至る攻撃シナリオが複数存在しているとする。その場合、表示制御部8は、その複数の攻撃シナリオのうち、第3のアイコン43のホップ数(機器のホップ数でもよい。)が上限値以下となっている攻撃シナリオのみを表示する。
この場合においても、管理者が注目していない攻撃シナリオが多数表示されることで攻撃シナリオが見づらくなることを防ぐことができる。
なお、上記の例では、表示制御部8がネットワークトポロジを表示し、そのネットワークトポロジに含まれるアイコンに対するクリック等の操作によって、機器の指定が行われる場合を説明した。機器の指定方法は、そのような方法に限定されない。機器を指定する際にネットワークトポロジを用いない場合には、トポロジ特定部14(図9参照)は設けられていなくてよい。
実施形態3.
図13は、本発明の第3の実施形態の分析システムの例を示すブロック図である。第1の実施形態で説明した事項については、詳細な説明を省略する。第3の実施形態の分析システム1は、第1の実施形態の分析システム1(図2参照)が備える各要素に加え、パターンテーブル記憶部11と、攻撃パターン記憶部7とを備える。
第3の実施形態において、分析部6は、起点となるファクトと終点となるファクトとの組毎に、起点となるファクトから終点となるファクトを導出可能か否かを分析する。そして、分析部6は、起点となるファクトから終点となるファクトを導出可能であると判断した組に関して、分析シナリオを生成する。この分析部6の動作は、第1の実施形態における分析部6の動作と同様である。第3の実施形態では、分析部6は、起点となるファクトから終点となるファクトを導出可能であると判断した組に関して、分析シナリオだけでなく、攻撃パターンを生成する。攻撃パターンは、少なくとも、攻撃条件と攻撃結果と攻撃手段とを含む情報である。攻撃パターンに、他の情報が含まれていてもよい。攻撃パターンの詳細については、後述する。
また、第3の実施形態において、表示制御部8は、例えば、攻撃シナリオを表示するときに、攻撃シナリオに関連する攻撃パターンを表示する。すなわち、表示制御部8は、攻撃シナリオを表示するときに、その攻撃シナリオの基になった組(起点となるファクトと終点となるファクトとの組)に基づいて生成された攻撃パターンを表示する。攻撃シナリオと攻撃パターンとを表示する表示例については、後述する。
次に、攻撃パターンの生成について説明する。分析部6は、起点となるファクトから終点となるファクトを導出可能と判断した場合に、その2つのファクトの組に関して、攻撃パターンを生成する。前述のように、攻撃パターンは、少なくとも、攻撃条件と攻撃結果と攻撃手段とを含む情報である。ここで、攻撃条件は、起点における攻撃状態と権限との組であり、攻撃結果は、終点における攻撃状態と権限との組である。攻撃手段は、攻撃者が攻撃に利用する脆弱性または攻撃手法(例えば、ArpSpoofing 等)である。攻撃パターンには、攻撃条件、攻撃結果および攻撃手段以外の情報が含まれていてもよい。
図14は、攻撃パターンの例を示す模式図である。図14に示す例では、攻撃パターンは、パターン番号と、攻撃条件と、攻撃結果と、パターン概要と、攻撃リスクと、ユーザ関与と、攻撃手段と、セグメントとを含む。なお、パターン番号に応じて、攻撃条件、攻撃結果、パターン概要、攻撃リスクおよびユーザ関与は、予め、パターンテーブル記憶部11が記憶するパターンテーブルにおいて定められている。また、攻撃状態と攻撃結果との組に対して、予め攻撃手段が定められている場合もある。パターンテーブルについては後述する。
前述のように、攻撃条件は、起点における攻撃状態と権限との組であり、攻撃結果は、終点における攻撃状態と権限との組である。起点となるファクトに含まれる攻撃状態および権限から、攻撃条件を特定することができる。また、終点となるファクトに含まれる攻撃状態および権限から、攻撃結果を特定することができる。
パターン概要は、攻撃パターンの概要を示す説明である。図14では、パターン概要の具体的な内容の図示を省略している。この点は、後述のパターンテーブルの例を示す図15でも同様である。
攻撃リスクは、攻撃による診断対象システムへの影響の度合いを示す値である。
ユーザ関与は、攻撃の際に、例えば、USB(Universal Serial Bus)経由等のローカル環境からの攻撃者本人による操作が必要か否かを示す。
前述のように、攻撃手段は、攻撃者が攻撃に利用する脆弱性または攻撃手法(例えば、ArpSpoofing 等)である。
なお、セキュリティ上の脆弱性は、大きく2つがある。第1は、ソフトウェアや機器(ルータ等)の不具合が原因の脆弱性である。この脆弱性については、様々な機関によって情報が収集、分類され、脆弱性は、適宜、採番される。一例として、共通脆弱性識別子CVEでは、発見された脆弱性に対して“CVE-****-**** ”という形式の識別子が割り当てられる。第2は、プロトコルの仕様が原因の脆弱性である。このような脆弱性の例として、「FTP(File Transfer Protocol)の悪用」、「Telnetの悪用」、「SMB(Server Message Block)の悪用」等が挙げられる。本発明の実施形態において、脆弱性は、この第1および第2の脆弱性を含む。
セグメントは、診断対象システムにおける機器と他の機器との間の経路、および、機器とその機器自身への経路である。診断対象システムにおける各セグメントには、識別情報が予め割り当てられている。図14にセグメントとして例示する“S1”等は、セグメントの識別情報である。
攻撃パターンにおいて、攻撃手段は、終点となるファクトの導出に用いた分析ルールに応じて定められる。ただし、攻撃状態と攻撃結果との組に対して、予め攻撃手段が定められている場合もある。
また、攻撃パターンにおいて、セグメントは、始点となるファクトおよび終点となるファクトに応じて定められる。
終点となるファクトの導出に用いた分析ルールに応じて定められる攻撃手段を未確定とするとともに、セグメントを未確定とし、攻撃パターンに含まれる未確定ではない他の事項を格納したテーブルをパターンテーブルと称する。パターンテーブルは、予め定められ、パターンテーブル記憶部11に記憶されている。
図15は、パターンテーブルの例を示す模式図である。図15において、空欄は、情報が未確定であることを示している。なお、図15に示す“ArpSpoofing”は、攻撃状態と攻撃結果との組に対して予め確定された攻撃手段である。
パターンテーブルの各レコードでは、少なくとも、パターン番号、攻撃条件および攻撃結果が定められている。
分析部6は、起点となるファクトから終点となるファクトを導出可能であると判断した場合、その起点となるファクトに含まれる攻撃状態および権限、終点となるファクトに含まれる攻撃状態および権限、および、その終点となるファクトの導出に用いた分析ルールに応じたレコードを、パターンテーブル(図15参照)から検索する。そして、検索したレコードにおいて未確定となっている情報を特定することによって、その起点および終点の組に対する攻撃パターンを生成する。
図15に例示するパターンテーブルにおいて、パターン番号“1”の攻撃条件および攻撃結果の組と、パターン番号“2”の攻撃条件および攻撃結果の組とは共通である。すなわち、攻撃条件および攻撃結果の組が共通となっているレコードが複数存在し得る。このことは、同じ攻撃結果を表わす終点となるファクトの導出に用いられる分析ルールが複数存在し、その分析ルールの違いによって、未確定の情報の定め方が異なることを意味している。攻撃条件および攻撃結果の組が共通となっているパターンテーブル内のレコードは、それぞれ別々の分析ルールに予め関連付けられている。そして、関連付けられている分析ルールによって、レコード内で未確定となっている攻撃手段の特定方法が異なる。
図16は、起点となるファクトから導出される終点となるファクトが同一であるが、終点となるファクトの導出過程が異なっていて、終点となるファクトの導出に用いられる分析ルールが異なっていることを示す模式図である。図16では、「ホストA/任意コード実行/一般権限」という組み合わせの起点から、「ホストB/データ改ざん/管理者権限」という組み合わせの終点が導出された例を示す。ただし、ファクト61,62はそれぞれ異なる分析ルールによって導出されたファクトである。ファクト61は、ラベル“dataInject01”の分析ルールによって導出されたファクトであり、ファクト62は、ラベル“dataInject02”の分析ルールによって導出されたファクトである。ここで、ラベル“dataInject01”の分析ルールは、図15に例示するパターンテーブルにおけるレコード“1”に関連付けられ、ラベル“dataInject02”の分析ルールは、パターンテーブルにおけるレコード“2”に関連付けられているものとする。従って、攻撃条件および攻撃結果の組が共通となっているレコード“1”とレコード“2”とでは、攻撃手段の導出方法が異なる。
図17は、ラベル“dataInject01”の分析ルールの例を示す。図17に例示する分析ルールによって終点となるファクトを導出した場合、分析部6は、「任意コード実行/一般権限」という攻撃条件と「データ改ざん/管理者権限」という攻撃結果を含むレコードのうち、図17に例示する分析ルールに関連付けられているレコード“1”を検索する。そして、分析部6は、そのレコードにおける攻撃手段およびセグメントを特定することによって、新たな攻撃パターンを生成する。図17に例示する分析ルールに関連付けられているレコード“1”の攻撃手段を特定する場合、分析部6は、終点となるファクトを導出するときにこの分析ルールの2行目の要素に記述されている脆弱性の識別情報に関するワイルドカード“CVEID ”(図17参照)に当てはめられた脆弱性の識別情報を特定すればよい。この結果、分析部6は、レコード“1”の攻撃手段として、例えば、“CVE-2010-000x”を特定する。また、分析部6は、レコード“1”のセグメントとして、起点となるファクトに含まれる機器から終点となるファクトに含まれる機器までの経路を示すセグメントの識別情報を特定すればよい。
図18は、ラベル“dataInject02”の分析ルールの例を示す。図18に例示する分析ルールによって終点となるファクトを導出した場合、分析部6は、「任意コード実行/一般権限」という攻撃条件と「データ改ざん/管理者権限」という攻撃結果を含むレコードのうち、図18に例示する分析ルールに関連付けられているレコード“2”を検索する。そして、分析部6は、そのレコードにおける攻撃手段およびセグメントを特定することによって、新たな攻撃パターンを生成する。図18に例示する分析ルールに関連付けられているレコード“2”の攻撃手段を特定する場合、分析部6は、終点となるファクトを導出するときにこの分析ルールの3行目の要素“データフロー(SrcHost,DstHost,Flow)”における変数“Flow”(図18参照)に当てはめられた情報を特定し、その情報に対応付けられるプロトコルを特定すればよい。なお、変数“Flow”に当てはめられる情報と、プロトコルとの対応関係は、起点となるファクトから終点となるファクトを導出可能か否かを分析する際に、予め分かる。この結果、分析部6は、レコード“2”の攻撃手段として、例えば、“SMB(すなわち、SMBの悪用)”を特定する。また、分析部6は、レコード“2”のセグメントとして、起点となるファクトに含まれる機器から終点となるファクトに含まれる機器までの経路を示すセグメントの識別情報を特定すればよい。
ここでは、終点となるファクトを導出するときに、図17に例示する分析ルールを用いた場合や、図18に例示する分析ルールを用いた場合における攻撃手段を特定する動作の例を示した。ただし、攻撃手段を特定する動作は、上記の例に限定されない。分析部6は、起点となるファクトおよび終点となるファクトから分かる攻撃条件および攻撃結果を含み、かつ、終点となるファクトを導出するときに用いた分析ルールに関連付けられたパターンテーブル内のレコードの攻撃手段を特定する場合、その分析ルールに応じて定められた方法で、攻撃手段を特定すればよい。
また、図15に例示するレコード“3”のように、攻撃条件と攻撃結果との組に対して予め攻撃手段(本例では、ArpSpoofing )が定められている場合がある。分析部6は、そのようなレコードを検索した場合には、そのレコードにおいて既に定められている攻撃手段を含む攻撃パターンを生成すればよい。
また、分析部6は、セグメントを特定する場合には、起点となるファクトに含まれる機器から終点となるファクトに含まれる機器までの経路を示すセグメントの識別情報を特定すればよい。
そして、分析部6は、起点となるファクトから終点となるファクトを導出可能であると判断した場合、その起点となるファクトに含まれる攻撃状態および権限、終点となるファクトに含まれる攻撃状態および権限、および、その終点となるファクトの導出に用いた分析ルールに応じたレコードに含まれる確定済みの情報と、前述のように特定した攻撃手段およびセグメントを含む攻撃パターンを作成する。
ここで、生成される攻撃パターンに含まれる攻撃条件は、起点となるファクトに含まれる攻撃状態および権限であり、攻撃パターンに含まれる攻撃結果は、終点となるファクトに含まれる攻撃状態および権限である。
なお、分析部6は、起点および終点となるファクトの組を1つ以上生成する。従って、パターンテーブルから同一レコードが複数回検索される場合もあり得る。その場合、分析部6は、そのレコードを検索する毎に、そのレコードにおける未確定の事項を特定し、新たに特定された事項を攻撃パターンに追加すればよい。
図14は、上記のように分析部6によって生成された攻撃パターンの例を示している。
分析部6は、生成した攻撃パターンを攻撃パターン記憶部7に記憶させる。攻撃パターン記憶部7は、攻撃パターンを記憶する記憶装置である。
なお、パターンテーブル記憶部11および攻撃パターン記憶部7は、コンピュータが備える記憶装置によって実現される。
次に、攻撃シナリオおよび攻撃パターンの表示例について説明する。前述のように、表示制御部8は、攻撃シナリオを表示するときに、その攻撃シナリオの基になった組(起点となるファクトと終点となるファクトとの組)に基づいて生成された攻撃パターンを表示する。図19は、攻撃シナリオおよび攻撃パターンの表示例を示す模式図である。
表示制御部8は、例えば、図19に例示するように、攻撃シナリオを表わすエッジと関連付けて、その攻撃シナリオの基になった組に基づいて生成された攻撃パターンのパターン番号を表示するとともに、攻撃パターンの一覧を表示すればよい。このような表示によって、管理者は、攻撃シナリオに関連する攻撃パターンを把握することができる。
なお、攻撃シナリオに関連する攻撃パターンを表示する態様は、図19に示す例に限定されない。例えば、表示制御部8は、攻撃シナリオを表わすエッジと関連付けて、その攻撃シナリオの基になった組に基づいて生成された攻撃パターンのパターン番号を表示し、表示したパターン番号に対してクリック操作等が行われた場合に、そのパターン番号の攻撃パターンを表示してもよい。
本実施形態では、ステップS9(図7参照)において、分析部6は、第1の実施形態におけるステップS9の動作に加え、選択した組における攻撃パターンも生成し、その攻撃パターンを攻撃パターン記憶部7に記憶させる動作も実行すればよい。また、ステップS10(図8参照)において、表示制御部8は、第1の実施形態におけるステップS10の動作に加え、攻撃シナリオに関連する攻撃パターンを表示する動作も実行すればよい。
本実施形態によれば、分析部6は、攻撃シナリオだけでなく攻撃パターンも表示するので、より具体的に攻撃に関する分析結果を管理者に提示することができる。
なお、第3の実施形態に、第1の実施形態の変形例や、第2の実施形態を適用してもよい。
また、各実施形態では、分析部6が、攻撃グラフの起点となるファクトや終点となるファクトとして、機器のうちの1つと、複数種類の攻撃状態のうちの1つと、攻撃対象と対応し得る権限のうちの1つとの組み合わせを生成する場合を説明した。攻撃グラフの起点となるファクトや終点となるファクトを生成する場合に、分析部6は、権限を組み合わせに含めずに、機器のうちの1つと、複数種類の攻撃状態のうちの1つとの組み合わせを、起点となるファクトや終点となるファクトとして生成してもよい。すなわち、起点または終点となるファクトは、少なくとも、機器と攻撃状態の組であればよい。この場合に、分析部6は、攻撃グラフの起点となるファクトとして、機器のうちの1つと、複数種類の攻撃状態のうちの1つとの組み合わせを生成し、攻撃グラフの終点となるファクトとして、機器のうちの1つと、複数種類の攻撃状態のうちの1つとの組み合わせを生成してもよい。
また、分析部6は、最初に、起点や終点となるファクトとして、権限を除外した組み合わせを生成し、起点となるファクトから終点となるファクトを導出可能か否かを分析し、起点となるファクトから終点となるファクトを導出可能と判断した場合に、起点や終点となるファクトとして、機器と攻撃状態と権限とを含む組み合わせを改めて生成してもよい。そして、分析部6は、その上で、再度、起点となるファクトから終点となるファクトを導出可能か否かを分析してもよい。このように処理によって、起点や終点となるファクトとして権限を除外した組み合わせを生成する場合に生じ得る冗長な分析を防ぎつつ、効率よく攻撃シナリオや攻撃パターンを生成することができる。なお、起点や終点となるファクトとして、権限を除外した組み合わせを生成する場合には、パターンテーブルの攻撃条件および攻撃結果からも権限を除外しておけばよい。
実施形態4.
本発明の第4の実施形態の分析システムには、診断対象システムに関する攻撃グラフが入力される。そして、第4の実施形態の分析システムは、その攻撃グラフに基づいて、機器と攻撃状態と権限との組み合わせを示すノードである組み合わせノードのペアを定め、組み合わせノードのペア毎に、攻撃シナリオを生成する。攻撃シナリオは、前述の各実施形態における攻撃シナリオと同様である。
図20は、本発明の第4の実施形態の分析システムの例を示すブロック図である。第1の実施形態と同様の要素には、図2と同一の符号を付し、詳細な説明を省略する。ただし、分析部6の動作は、第1の実施形態における分析部6の動作と一部異なる。本実施形態における分析部6の動作については、適宜、説明する。第4の実施形態の分析システム1は、入力部12と、分析部6と、攻撃シナリオ記憶部19と、表示制御部8と、ディスプレイ装置9とを備える。攻撃シナリオ記憶部19、表示制御部8、および、ディスプレイ装置9は、第1の実施形態における攻撃シナリオ記憶部19、表示制御部8、および、ディスプレイ装置9と同様である。
入力部12には、診断対象システムに関する攻撃グラフが入力される。入力部12は、攻撃グラフの入力インタフェースとなる入力デバイス(例えば、記録媒体に記録されたデータを読み取るデータ読み取り装置等)によって実現される。分析部6は、入力部12を介して、攻撃グラフの入力を受け付ける。
入力部12に入力される攻撃グラフは予め生成されている。図21は、入力部12に入力される攻撃グラフの例を示す模式図である。攻撃グラフに含まれるノードはそれぞれファクトを表わす。換言すれば、攻撃グラフに含まれるノードは、それぞれファクトに対応している。
入力される攻撃グラフは、診断対象システム内の各機器に関する情報に基づいて生成されたファクトに対応するノードと、既に生成済みのノードと分析ルールとに基づいて生成されたファクトに対応するノードとを含む。図21では、診断対象システム内の各機器に関する情報に基づいて生成されたファクトに対応するノードを矩形で表し、既に生成済みのノードと分析ルールとに基づいて生成されたファクトに対応するノードを円形で表している。
また、攻撃グラフは、複数の組み合わせノードを含む。組み合わせノードとは、機器と攻撃状態と権限との組み合わせを示すノードである。換言すれば、組み合わせノードは、機器と攻撃状態と権限との組み合わせに該当するファクトに対応するノードである。ノードが示す機器は、例えば、機器IDによって表される。また、攻撃状態および権限は、第1の実施形態で示した攻撃状態および権限と同様である。図21では、組み合わせノードを斜線で示している。また、図21に示す例では、4つの組み合わせノード91,92,93,94を図示している。
分析部6は、入力部12を介して、攻撃グラフの入力を受け付けると、その攻撃グラフから、組み合わせノードとその組み合わせノードの次の組み合わせノードとのペアを全て探す。分析部6は、組み合わせノードのペアを探す際に、2つの組み合わせノードの間の経路上に他の組み合わせノードが存在しないという条件を満たすように、2つの組み合わせノードからなるペアを探す。例えば、図21に例示する攻撃グラフが与えられた場合、分析部6は、組み合わせノード91,92からなるペア、組み合わせノード92,93からなるペア、および、組み合わせノード92,94からなるペアを探す。
上記の条件を満たさないペアとして、例えば、組み合わせノード91,94のペアが挙げられる。組み合わせノード91,94の間の経路上には他の組み合わせノード92が存在する(図21参照)。従って、分析部6は、組み合わせノード91,94のペアを、探索対象としない。
ペアをなす2つの組み合わせノードのうち、攻撃グラフにおける上流側の組み合わせノードを起点側の組み合わせノードと記す。また、ペアをなす2つの組み合わせノードのうち、攻撃グラフにおける下流側の組み合わせノードを終点側の組み合わせノードと記す。例えば、組み合わせノード91,92からなるペアでは、組み合わせノード91が起点側の組み合わせノードであり、組み合わせノード92が終点側の組み合わせノードである。
分析部6は、得られたペア毎に、攻撃シナリオ(機器と、攻撃状態と、その攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報)を生成する。分析部6は、ペア毎に、起点側の組み合わせノードに応じた「機器と、攻撃状態と、権限との組み合わせ」から、終点側の組み合わせノードに応じた「機器と、攻撃状態と、権限との組み合わせ」に遷移することを示す情報を攻撃シナリオとして生成すればよい。
そして、分析部6は、組み合わせノードのペア毎に生成した攻撃シナリオを攻撃シナリオ記憶部19に記憶させる。
表示制御部8は、分析部6によって生成された各攻撃シナリオをディスプレイ装置9上に表示する。攻撃シナリオの表示態様は、例えば、第1の実施形態における表示態様と同様であってよい。すなわち、表示制御部8は、組み合わせノードのペアにおける起点側の組み合わせノードに関して、機器を表わす第1のアイコン内に、権限を表わす第2のアイコンを表示し、第2のアイコン内に攻撃状態を表わす第3のアイコンを表示し、終点側の組み合わせノードに関しても、機器を表わす第1のアイコン内に、権限を表わす第2のアイコンを表示し、第2のアイコン内に攻撃状態を表わす第3のアイコンを表示してもよい。そして、表示制御部8は、起点側の組み合わせノードに応じた第3のアイコンから、終点側の組み合わせノードに応じた第3のアイコンに伸びるエッジを表示してもよい。
また、表示制御部8は、所定の場合には、第2のアイコンの表示を省略し、第1のアイコン内に第3のアイコンを表示してもよい。上記の所定の場合とは、権限が「権限関連なし」である場合である。この点は第1の実施形態と同様である。
第4の実施形態において、分析部6および表示制御部8は、例えば、分析プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から分析プログラムを読み込み、その分析プログラムに従って、分析部6および表示制御部8として動作すればよい。攻撃シナリオ記憶部19は、例えば、コンピュータが備える記憶装置によって実現される。
次に、処理経過について説明する。図22は、本発明の第4の実施形態の分析システムの処理経過の例を示すフローチャートである。既に説明した事項については説明を省略する。
まず、分析部6が、入力部12を介して、攻撃グラフの入力を受け付ける(ステップS21)。
分析部6は、その攻撃グラフから、組み合わせノードとその組み合わせノードの次の組み合わせノードとのペアを全て探す(ステップS22)。
次に、分析部6は、ステップS22で得られた組み合わせノードのペアが全てステップS24で選択済みであるか否かを判定する(ステップS23)。未選択のペアがある場合(ステップS23のNo)、ステップS24に移行する。
ステップS24において、分析部6は、ステップS22で得られた組み合わせノードのペアのうち、まだ選択されていないペアを1つ選択する。
次に、分析部6は、ステップS24で選択したペアに関する攻撃シナリオを生成し、その攻撃シナリオを攻撃シナリオ記憶部19に記憶させる(ステップS25)。ステップS25の後、分析部6はステップS23以降の処理を繰り返す。
分析部6が、ステップS22で得られた組み合わせノードのペアが全てステップS24で選択済みであると判定した場合(ステップS23のYes)、表示制御部8は、攻撃シナリオ記憶部19に記憶された各攻撃シナリオを読み込み、各攻撃ディスプレイ装置9上に表示する(ステップS26)。
第4の実施形態においても、診断対象システムに対する分析結果を、攻撃順序等を理解しやすいように提示することができる。
第4の実施形態に、第1の実施形態の変形例を適用してもよい。すなわち、第4の実施形態の分析システム1(図20参照)は、診断対象システムに含まれる機器のネットワークトポロジを特定するトポロジ特定部を備えていてもよい。このトポロジ特定部は、例えば、管理者から与えられたネットワークトポロジの構成を基に、各機器のネットワークトポロジを特定してもよい。トポロジ特定部は、例えば、分析プログラムに従って動作するコンピュータのCPUによって実現される。この点は、第1の実施形態の変形例と同様である。そして、表示制御部8は、ネットワークトポロジに重畳させて攻撃シナリオを表示してもよい。ネットワークトポロジに攻撃シナリオを重畳して表示する例については、第1の実施形態の変形例で説明したので、ここでは説明を省略する。
第4の実施形態に、第2の実施形態を適用してもよい。すなわち、表示制御部8は、外部(例えば、管理者)から第1の機器および第2の機器が指定されると、第1の機器から第2の機器に至る攻撃シナリオを表示してもよい。あるいは、表示制御部8は、外部(例えば、管理者)から1つの機器が指定されると、その1つの機器から他の機器に至る攻撃シナリオを表示してもよい。これらの表示の例については、第2の実施形態で説明したので、ここでは説明を省略する。
また、第4の実施形態に、第3の実施形態を適用してもよい。すなわち、分析部6が、組み合わせノードのペア毎に、攻撃シナリオだけでなく攻撃パターンも生成し、表示制御部8が、攻撃シナリオとともに、攻撃シナリオに関連する攻撃パターンを表示してもよい。この場合、第4の実施形態の分析システム1は、図20に示す各要素に加えて、第3の実施形態におけるパターンテーブル記憶部11および攻撃パターン記憶部7も備える。パターンテーブル記憶部11が記憶するパターンテーブルについては、既に第3の実施形態で説明しているので、ここでは説明を省略する。
第4の実施形態に第3の実施形態を適用する場合、入力部12には、診断対象システムに関する攻撃グラフと、その攻撃グラフに含まれるノードに対応するファクトの導出に用いられた分析ルールとが入力される。分析部6は、入力部12を介して、攻撃グラフおよび各分析ルールの入力を受け付ける。図23は、入力部12に入力される攻撃グラフおよび各分析ルールの例を示す模式図である。図21を参照して既に説明した事項については、説明を省略する。
図23において、既に生成済みのノードと分析ルールとに基づいて生成されたファクトに対応するノードの近傍に示した“a”,“b”,“c”,・・・等の符号は、ファクトの導出に用いられた分析ルールを表わしている。ファクトの導出に用いられた分析ルールは、そのファクトに対応するノードに関連付けられている。そして、各ノードに関連付けられている各分析ルールは、攻撃グラフとともに、入力部12に入力される。
第4の実施形態に第3の実施形態を適用する場合、分析部6が、組み合わせノードのペア毎に、攻撃シナリオだけでなく攻撃パターン(少なくとも、攻撃条件と攻撃結果と攻撃手段とを含む情報)も生成する。以下、攻撃パターンの生成について説明する。
組み合わせノードの1つのペアに着目した場合、分析部6は、そのペアにおける起点側の組み合わせノードが示す攻撃状態および権限、そのペアにおける終点側の組み合わせノードが示す攻撃状態および権限、および、その終点側の組み合わせノードに対応するファクトの導出に用いられた分析ルールに基づいて、攻撃パターンを生成する。なお、終点側の組み合わせノードに対応するファクトの導出に用いられた分析ルールは、その終点側の組み合わせノードに関連付けられている。従って、分析部6は、終点側の組み合わせノードに対応するファクトの導出に用いられた分析ルールを特定することができる。
また、ペアにおける起点側の組み合わせノードが示す攻撃状態および権限、そのペアにおける終点側の組み合わせノードが示す攻撃状態および権限、および、その終点側の組み合わせノードに対応するファクトの導出に用いられた分析ルールに基づいて、攻撃パターンを生成する動作は、第3の実施形態において、起点となるファクトに含まれる攻撃状態および権限、終点となるファクトに含まれる攻撃状態および権限、および、その終点となるファクトの導出に用いた分析ルールに基づいて攻撃パターンを生成する動作と同様である。すなわち、分析部6は、ペアにおける起点側の組み合わせノードが示す攻撃状態および権限、そのペアにおける終点側の組み合わせノードが示す攻撃状態および権限、および、その終点側の組み合わせノードに対応するファクトの導出に用いられた分析ルールに応じたレコードを、パターンテーブル(図15参照)から検索する。そして、検索したレコードにおいて未確定となっている情報を特定することによって、着目しているペアに関する攻撃パターンを生成する。
分析部6は、攻撃パターンに含まれる攻撃手段を、ペアにおける終点側の組み合わせノードに対応するファクトの導出に用いられた分析ルールに基づいて定める。この動作は、第3の実施形態において、分析ルールに基づいて攻撃手段を定める動作と同様である。第3の実施形態において、分析ルールに基づいて攻撃手段を定める動作は、例えば、図17、図18を参照して説明している。ただし、第3の実施形態で述べたように、攻撃手段を特定する動作は、図17に例示する分析ルールを用いた場合や、図18に例示する分析ルールを用いた場合における例に限定されない。分析部6は、分析ルールに応じて定められた方法で、攻撃手段を特定すればよい。
また、図15に例示するレコード“3”のように、攻撃条件と攻撃結果との組に対して予め攻撃手段(本例では、ArpSpoofing )が定められている場合がある。分析部6は、そのようなレコードを検索した場合には、そのレコードにおいて既に定められている攻撃手段を含む攻撃パターンを生成すればよい。
また、分析部6は、セグメントを特定する場合には、ペアにおける起点側の組み合わせノードが示す機器から、そのペアにおける終点側の組み合わせノードが示す機器までの経路を示すセグメントの識別情報を特定すればよい。
そして、分析部6は、検索したレコードに含まれる確定済みの情報と、特定した攻撃手段およびセグメントを含む攻撃パターンを作成する。
ここで、生成される攻撃パターンに含まれる攻撃条件は、ペアにおける起点側の組み合わせノードが示す攻撃条件および権限であり、攻撃パターンに含まれる攻撃結果は、ペアにおける終点側の組み合わせノードが示す攻撃条件および権限である。
分析部6は、組み合わせノードのペア毎に生成した攻撃パターンを攻撃パターン記憶部7に記憶させる。
表示制御部8が、攻撃シナリオとともに、攻撃シナリオに関連する攻撃パターンを表示する。この表示態様については、図19を参照して既に説明しているので、ここでは説明を省略する。
図24は、本発明の各実施形態の分析システム1に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、ディスプレイ装置1005と、通信インタフェース1006とを備える。なお、第4の実施形態の分析システム1を実現するコンピュータ1000は、入力部12に該当する入力デバイス(図24において図示略)を備える。
本発明の各実施形態の分析システム1は、コンピュータ1000によって実現される。分析システム1の動作は、分析プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、その分析プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、その分析プログラムに従って、上記の各実施形態で説明した処理を実行する。
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、そのプログラムに従って上記の各実施形態で説明した処理を実行してもよい。
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要について説明する。図25は、本発明の分析システムの概要を示すブロック図である。本発明の分析システムは、ファクト生成部4と、分析部6とを備える。
ファクト生成部4は、診断対象システムに含まれる各機器に関する情報に基づいて、診断対象システムのセキュリティ状況を表わすデータであるファクトを生成する。
分析部6は、起点となる機器における攻撃の可能性を表わすファクトである起点ファクトと、終点となる機器における攻撃の可能性を表わすファクトである終点ファクトとの組を1つ以上生成し、組毎に、起点となる機器に関する情報および終点となる機器に関する情報に基づいて生成された機器の状態を表わすファクト、起点ファクト、および攻撃を分析するための1つ以上の分析ルールに基づいて、起点ファクトから終点ファクトを導出可能であるか否かを分析し、起点ファクトから終点ファクトを導出可能である場合に、起点ファクトおよび終点ファクトに応じて、機器と、攻撃状態と、攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報である攻撃シナリオを生成する。
そのような構成によって、診断対象システムに対する分析結果を、攻撃順序等を理解しやすいように提示することができる。
図26は、本発明の分析システムの概要の他の例を示すブロック図である。図26に例示する分析システムは、入力部12と、分析部6とを備える。
入力部12には、診断対象システムに関する攻撃グラフが入力される。
分析部6は、攻撃グラフ内から、機器と攻撃状態と権限との組み合わせを示す組み合わせノードと当該組み合わせノードの次の組み合わせノードとのペアを探し、組み合わせノードのペア毎に、機器と、攻撃状態と、攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報である攻撃シナリオを生成する。
そのような構成においても、診断対象システムに対する分析結果を、攻撃順序等を理解しやすいように提示することができる。
上記の本発明の各実施形態は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
(付記1)
診断対象システムに含まれる各機器に関する情報に基づいて、前記診断対象システムのセキュリティ状況を表わすデータであるファクトを生成するファクト生成部と、
起点となる機器における攻撃の可能性を表わすファクトである起点ファクトと、終点となる機器における攻撃の可能性を表わすファクトである終点ファクトとの組を1つ以上生成し、組毎に、前記起点となる機器に関する情報および前記終点となる機器に関する情報に基づいて生成された機器の状態を表わすファクト、前記起点ファクト、および攻撃を分析するための1つ以上の分析ルールに基づいて、前記起点ファクトから前記終点ファクトを導出可能であるか否かを分析し、前記起点ファクトから前記終点ファクトを導出可能である場合に、前記起点ファクトおよび前記終点ファクトに応じて、機器と、攻撃状態と、前記攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報である攻撃シナリオを生成する分析部とを備える
ことを特徴とする分析システム。
(付記2)
分析部は、
起点ファクトとして、機器のうちの1つと、予め定められた複数種類の攻撃状態のうちの1つと、攻撃状態と対応し得る権限のうちの1つとの組み合わせを生成し、
終点ファクトとして、機器のうちの1つと、前記複数種類の攻撃状態のうちの1つと、攻撃状態と対応し得る権限のうちの1つとの組み合わせを生成する
付記1に記載の分析システム。
(付記3)
分析部によって生成された攻撃シナリオをディスプレイ装置上に表示する表示制御部を備える
付記1または付記2に記載の分析システム。
(付記4)
表示制御部は、
起点ファクトおよび終点ファクトのそれぞれに関して、機器を表わす第1のアイコン内に、権限を表わす第2のアイコンを表示し、第2のアイコン内に攻撃状態を表わす第3のアイコンを表示するとともに、起点ファクトに応じた第3のアイコンから終点ファクトに応じた第3のアイコンに伸びるエッジを表示することによって、攻撃シナリオを表示し、
所定の場合には、第2のアイコンの表示を省略する
付記3に記載の分析システム。
(付記5)
表示制御部は、
外部から第1の機器および第2の機器が指定されると、前記第1の機器から前記第2の機器に至る攻撃シナリオを表示する
付記3または付記4に記載の分析システム。
(付記6)
表示制御部は、
外部から1つの機器が指定されると、前記1つの機器から他の機器に至る攻撃シナリオを表示する
付記3または付記4に記載の分析システム。
(付記7)
診断対象システムに含まれる機器のネットワークトポロジを特定するトポロジ特定部を備え、
表示制御部は、
前記ネットワークトポロジに重畳させて攻撃シナリオを表示する
付記3から付記6のうちのいずれかに記載の分析システム。
(付記8)
分析部は、
起点ファクトから終点ファクトを導出可能である場合に、少なくとも、攻撃条件と攻撃結果と攻撃手段とを含む攻撃パターンを生成し、
表示制御部は、
攻撃シナリオとともに、前記攻撃シナリオに関連する攻撃パターンを表示する
付記3から付記7のうちのいずれかに記載の分析システム。
(付記9)
診断対象システムに関する攻撃グラフが入力される入力部と、
前記攻撃グラフ内から、機器と攻撃状態と権限との組み合わせを示す組み合わせノードと当該組み合わせノードの次の組み合わせノードとのペアを探し、組み合わせノードのペア毎に、機器と、攻撃状態と、前記攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報である攻撃シナリオを生成する分析部とを備える
ことを特徴とする分析システム。
(付記10)
分析部によって生成された攻撃シナリオをディスプレイ装置上に表示する表示制御部を備える
付記9に記載の分析システム。
(付記11)
表示制御部は、
組み合わせノードのペアにおける起点側の組み合わせノードおよび終点側の組み合わせノードのそれぞれに関して、機器を表わす第1のアイコン内に、権限を表わす第2のアイコンを表示し、第2のアイコン内に攻撃状態を表わす第3のアイコンを表示するとともに、前記起点側の組み合わせノードに応じた第3のアイコンから前記終点側の組み合わせノードに応じた第3のアイコンに伸びるエッジを表示することによって、攻撃シナリオを表示し、
所定の場合には、第2のアイコンの表示を省略する
付記10に記載の分析システム。
(付記12)
表示制御部は、
外部から第1の機器および第2の機器が指定されると、前記第1の機器から前記第2の機器に至る攻撃シナリオを表示する
付記10または付記11に記載の分析システム。
(付記13)
表示制御部は、
外部から1つの機器が指定されると、前記1つの機器から他の機器に至る攻撃シナリオを表示する
付記10または付記11に記載の分析システム。
(付記14)
診断対象システムに含まれる機器のネットワークトポロジを特定するトポロジ特定部を備え、
表示制御部は、
前記ネットワークトポロジに重畳させて攻撃シナリオを表示する
付記10から付記13のうちのいずれかに記載の分析システム。
(付記15)
分析部は、
組み合わせノードのペア毎に、少なくとも、攻撃条件と攻撃結果と攻撃手段とを含む攻撃パターンを生成し、
表示制御部は、
攻撃シナリオとともに、前記攻撃シナリオに関連する攻撃パターンを表示する
付記10から付記14のうちのいずれかに記載の分析システム。
(付記16)
コンピュータが、
診断対象システムに含まれる各機器に関する情報に基づいて、前記診断対象システムのセキュリティ状況を表わすデータであるファクトを生成し、
起点となる機器における攻撃の可能性を表わすファクトである起点ファクトと、終点となる機器における攻撃の可能性を表わすファクトである終点ファクトとの組を1つ以上生成し、組毎に、前記起点となる機器に関する情報および前記終点となる機器に関する情報に基づいて生成された機器の状態を表わすファクト、前記起点ファクト、および攻撃を分析するための1つ以上の分析ルールに基づいて、前記起点ファクトから前記終点ファクトを導出可能であるか否かを分析し、前記起点ファクトから前記終点ファクトを導出可能である場合に、前記起点ファクトおよび前記終点ファクトに応じて、機器と、攻撃状態と、前記攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報である攻撃シナリオを生成する
ことを特徴とする分析方法。
(付記17)
コンピュータが、
診断対象システムに関する攻撃グラフの入力を受け付け、
前記攻撃グラフ内から、機器と攻撃状態と権限との組み合わせを示す組み合わせノードと当該組み合わせノードの次の組み合わせノードとのペアを探し、組み合わせノードのペア毎に、機器と、攻撃状態と、前記攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報である攻撃シナリオを生成する
ことを特徴とする分析方法。
(付記18)
コンピュータに、
診断対象システムに含まれる各機器に関する情報に基づいて、前記診断対象システムのセキュリティ状況を表わすデータであるファクトを生成するファクト生成処理、および、
起点となる機器における攻撃の可能性を表わすファクトである起点ファクトと、終点となる機器における攻撃の可能性を表わすファクトである終点ファクトとの組を1つ以上生成し、組毎に、前記起点となる機器に関する情報および前記終点となる機器に関する情報に基づいて生成された機器の状態を表わすファクト、前記起点ファクト、および攻撃を分析するための1つ以上の分析ルールに基づいて、前記起点ファクトから前記終点ファクトを導出可能であるか否かを分析し、前記起点ファクトから前記終点ファクトを導出可能である場合に、前記起点ファクトおよび前記終点ファクトに応じて、機器と、攻撃状態と、前記攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報である攻撃シナリオを生成する分析処理
を実行させるための分析プログラム。
(付記19)
コンピュータに、
診断対象システムに関する攻撃グラフの入力を受け付ける入力受付処理、および、
前記攻撃グラフ内から、機器と攻撃状態と権限との組み合わせを示す組み合わせノードと当該組み合わせノードの次の組み合わせノードとのペアを探し、組み合わせノードのペア毎に、機器と、攻撃状態と、前記攻撃状態に対応し得る権限との組み合わせの遷移関係を表わす情報である攻撃シナリオを生成する分析処理
を実行させるための分析プログラム。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
本発明は、診断対象システムへの攻撃の分析を行う分析システムに好適に適用される。