以下の各実施形態にて説明する分析システムは、診断対象システムにおけるサイバー攻撃を分析するためのシステムである。診断対象システムは、セキュリティ診断の対象となるシステムである。診断対象システムの例として、例えば、企業内のIT(Information Technology)システムや、工場やプラント等を制御するためのいわゆるOT(Operational Technology)システム等が挙げられる。ただし、診断対象システムは、これらのシステムに限られない。複数の機器が通信ネットワークを介して接続されたシステムが、診断対象システムとなり得る。
診断対象システムに含まれる各機器は、通信ネットワークを介して接続されている。診断対象システムに含まれる機器の例として、例えば、パーソナルコンピュータ、サーバ、スイッチ、ルータ、工場に設置される工作機器、工作機器の制御装置等が挙げられる。ただし、機器は、上記の例に限定されない。また、機器は、物理的な機器であっても、仮想的な機器であってもよい。
診断対象システムへの攻撃の分析の一態様として、攻撃グラフを用いた分析が挙げられる。攻撃グラフは、ある機器の脆弱性の有無等の状態や、ある機器において実行可能な攻撃から、他の機器において実行可能になる攻撃の関係を表わすことができるグラフである。攻撃グラフは、セキュリティに関連し得る何らかの状態(機器、ネットワーク、脆弱性およびセキュリティ設定等)をファクトとして定義し、それらをノードとし、ファクト間の関係をエッジとする有向グラフでとして表される。
ここで、ファクトとは、診断対象システムのセキュリティ状況を表わすデータである。より詳細な一例として、ファクトは、診断対象システム、または、診断対象システムに含まれる機器における、主にセキュリティに関連し得る何らかの状態を表わす。別の詳細な一例として、ファクトは、診断対象システムに含まれる各機器において行われ得る攻撃を表わす。この場合のファクトは、後述のように、機器と攻撃状態との組という形式や、機器、攻撃状態および権限の組という形式で表される。なお、攻撃の分析において、診断対象システムに含まれる機器にて何らかの攻撃が行われ得ることを仮定する場合が想定される。このような仮定がファクトとして扱われてもよい。
ファクトは、診断対象システムに含まれる各機器から得られた情報から定めることができる。さらに、既存のファクトから新たなファクトを導出するためのルール(以下、分析ルールと記す。)によって、1つ以上の既存のファクトから新たなファクトを導出することができる。例えば、診断対象システムに含まれる各機器から得られた情報から定まるファクトを基にして、分析ルールを用いて新たなファクトを導出することができる。さらに、各機器から得られた情報から定まるファクトや新たに得られたファクトを基にしてまた新たなファクトを導出することができる。分析ルールによって新たなファクトを導出できなくなるまで、この動作を繰り返す。そして、ファクトのそれぞれをノードとし、新たに得られたファクトの基になるファクトに対応するノードからその新たに得られたファクトに対応するノードに向かうエッジでファクトに対応するノード同士を接続することで攻撃グラフを生成することができる。
図1は、このようにして得られた一般的な攻撃グラフの例を示す模式図である。図1において、「ファクト」と記した矩形で表されるノードは、各機器から得られた情報から定まるファクトを表わしている。また、図1において、円で表されるノードおよび「ゴール」と記した矩形で表されるノードは、分析ルールを用いて新たに導出されたファクトを表わしている。なお、図1における「ゴール」は、分析ルールを用いて新たに導出されたファクトの一部であり、分析ルールを用いたファクトの導出の終点としたファクトを表わす。
以下に示す各実施形態の分析システムは、攻撃条件と、攻撃結果と、攻撃に利用される脆弱性である攻撃手段と、診断対象システムにおいて攻撃が生じ得るセグメントとを含む攻撃パターンを生成する。そして、その分析システムは、生成した攻撃パターンを用いて、攻撃パターンに含まれるセグメントを、診断対象システムに含まれる機器のネットワークトポロジに重畳させて、ディスプレイ装置上に表示する。なお、攻撃パターンには、他の情報が含まれていてもよい。攻撃パターンやセグメントの詳細については後述する。
本発明の各実施形態の分析システムは、例えば、起点および終点となるファクトの組を1つ以上生成し、組毎に、攻撃パターンを生成する。なお、攻撃パターンが生成されない組があってもよい。ただし、本発明の各実施形態において、攻撃パターンの生成方法は、特定の方法に限定されない。
以下、本発明の実施形態を図面を参照して説明する。
図2は、本発明の第1の実施形態の分析システムの例を示すブロック図である。本発明の実施形態の分析システム1は、データ収集部2と、データ記憶部3と、トポロジ特定部14と、ファクト生成部4と、分析ルール記憶部5と、パターンテーブル記憶部11と、分析部6と、攻撃パターン記憶部7と、表示制御部8と、ディスプレイ装置9とを備える。なお、上述のように、攻撃パターンの生成方法は、特定の方法に限定されず、分析システム1が備える要素は、攻撃パターンの生成方法に応じたものであればよい。以下、図2に示す構成を例にして説明する。
データ収集部2は、診断対象システムに含まれる各機器に関する情報を収集する。
機器に関する情報は、機器のセキュリティに関連し得る情報である。データ収集部2が収集する機器に関する情報の例として、例えば、機器に搭載されているOS(Operating System)やそのバージョン情報、機器に搭載されているハードウェアの構成情報、機器に搭載されているソフトウェアやそのバージョン情報、機器が他の機器との間で授受する通信データやその通信データの授受に用いた通信プロトコルの情報、機器のポートの状態を示す情報(どのポートが開いているか)等が挙げられる。通信データには、その通信データの送信元や送信先の情報が含まれている。データ収集部2は、これらの情報を収集する。ただし、データ収集部2が収集する情報の例は、上記の例に限定されない。データ収集部2は、機器に関する情報として、機器のセキュリティに関連し得る他の情報を収集してもよい。
データ収集部2は、診断対象システムに含まれる各機器から、直接、機器に関する情報を収集してもよい。この場合、分析システム1は、各機器と通信ネットワークを介して接続されていて、データ収集部2は、通信ネットワークを介して、各機器から情報を収集すればよい。
あるいは、データ収集部2は、各機器の情報を収集する情報収集サーバから、各機器に関する情報を取得してもよい。この場合、分析システム1は、情報収集サーバと通信ネットワークを介して接続されていて、データ収集部2は、通信ネットワークを介して、情報収集サーバから各機器に関する情報を収集すればよい。
また、各機器にエージェントが搭載されている場合には、データ収集部2は、エージェントを介して各機器に関する情報を収集してもよい。すなわち、データ収集部2は、エージェントを介して各機器の情報を収集した情報収集サーバから各機器に関する情報を取得してもよい。
各機器に搭載されたエージェントのそれぞれが、機器に関する情報を情報収集サーバに送信し、データ収集部2は、その情報収集サーバから、診断対象システムに含まれる各機器に関する情報を収集してもよい。この場合、例えば、分析システム1は、情報収集サーバと通信ネットワークを介して接続されていて、データ収集部2は、通信ネットワークを介して、その情報収集サーバから各機器に関する情報を収集すればよい。
データ収集部2は、診断対象システムに含まれる各機器に関する情報を収集すると、その情報を、データ記憶部3に記憶させる。
データ記憶部3は、データ収集部2が収集した各機器に関する情報を記憶する記憶装置である。
さらに、データ収集部2は、診断対象システムに含まれる機器毎に、機器から収集した情報に基づいて、その機器に存在する脆弱性の情報を収集する。データ収集部2は、例えば、脆弱性情報データベースを有する脆弱性データベースサーバ(図示略)にアクセスして、脆弱性の情報を収集してもよい。具体的には、データ収集部2は、機器に搭載されているソフトウェアやそのバージョン情報およびOSやそのバージョン情報を脆弱性データベースサーバに送信し、脆弱性データベースサーバからそれらの情報に応じた脆弱性の識別情報や脆弱性名を収集する。なお、この場合の識別情報は、共通脆弱性識別子CVE(Common Vulnerabilities and Exposures)のように、セキュリティに関連する機関によって採番された識別情報であってもよい。なお、後述するように、脆弱性の中には、プロトコルの仕様が原因の脆弱性も存在する。このような脆弱性に関しては、CVEのような識別情報は採番されない。本発明の実施形態では、そのような脆弱性の識別情報は、一律に“-”と記すこととする。データ収集部2は、脆弱性の識別情報や脆弱性名の他に、CVSSによるその脆弱性の評価結果、その脆弱性に対する対策、その脆弱性を利用して攻撃を行う際に認証が必要であるか否か等の情報を収集してもよい。ただし、脆弱性の情報としてデータ収集部2が機器毎に収集する情報は、上記の例に限定されない。
データ収集部2が機器毎に収集した脆弱性の情報は、例えば、脆弱性名をキーとするレコードとして、テーブルにまとめることができる。図3は、脆弱性名をキーとするレコードからなる脆弱性の情報のテーブルの例を示す。図3に示すテーブルから、例えば、「データサーバ」には、脆弱性“CVE-YYYY-1111 ”が存在し、「事務用PC(Personal Computer )」、「管理用PC」および「ファイルサーバ」には、ファイル共有プロトコルの仕様が原因の脆弱性が存在することが分かる。なお、図3に示す「データサーバ」、「事務用PC」、「管理用PC」および「ファイルサーバ」は、後述の図4に示すデータサーバ55、事務用PC51、管理用PC53およびファイルサーバ52であるものとする。
データ収集部2は、機器毎に収集した脆弱性の情報に基づいて、脆弱性名をキーとするレコードからなる脆弱性の情報のテーブル(図3参照)を生成し、そのテーブルをデータ記憶部3に記憶させる。
なお、脆弱性の情報の収集方法は、上記の例に限定されない。例えば、データ収集部2は、機器毎に、アクティブスキャンを実行し、機器に存在する脆弱性の識別情報や脆弱性名を特定し、その識別情報や脆弱性名を用いて、脆弱性データベースサーバから種々のデータを収集してもよい。
トポロジ特定部14は、診断対象システムに含まれる各機器のネットワークトポロジを特定する。具体的には、トポロジ特定部14は、セキュリティ管理者(以下、単に管理者と記す。)から与えられたネットワークトポロジの構成を基に、各機器のネットワークトポロジを特定してもよいし、データ記憶部3に記憶された各機器に関する情報を基に、各機器のネットワークトポロジを特定してもよい。
図4は、トポロジ特定部14によって特定されるネットワークトポロジの例を示す模式図である。図4では、診断対象システムに含まれる事務用PC51、ファイルサーバ52、管理用PC53、社内Webサーバ54およびデータサーバ55が接続されている状況を示している。
また、トポロジ特定部14は、診断対象システムに含まれていない機器を、ネットワークトポロジの中に含めてもよい。図4に示す例では、トポロジ特定部14が、診断対象システムに含まれていないメールサーバ56も含めて、ネットワークトポロジを特定した場合を示している。
ファクト生成部4は、データ収集部2が収集した各機器に関する情報に基づいて、1つ以上のファクトを生成する。既に説明したように、ファクトは、診断対象システムのセキュリティ状況を表わす。ファクト生成部4で生成されるファクトは、各機器から得られた具体的な情報から導き出される、診断対象システムに含まれる1つ以上の機器の主にセキュリティに関連する何らかの状態を表わす。
ファクト生成部4は、例えば、事前に用意された、生成しようとするファクトを表わす1つ以上のテンプレートが含まれるファクト生成用ルールを参照し、それぞれのテンプレートに各機器に関する情報が合致するか否かを判断することで1つ以上のファクトを生成する。生成されたファクトのパラメータには、各機器に関する情報が適宜当てはめられる。
図5は、生成されるファクトの例を示す。図5では、3つのファクトを例示しているが、ファクトは、図5に示す3つのファクトに限定されず、分析部6における処理に必要なファクトが適宜生成されればよい。
図5において、シングルクォーテーションで示したパラメータは、診断対象システム内の機器に関する個別具体的な情報である。例えば、図5に示す例における‘ホストA’,‘ホストB’は、具体的な機器IDである。機器IDは、診断対象に含まれる機器の各々を識別する情報である。また、図5に示す例における‘ソフトウェア1’というパラメータは、機器に搭載されている具体的なソフトウェア名であり、‘CVE-2018-000x ’は、そのソフトウェアに関連する具体的な脆弱性の識別情報である。なお、この場合の識別情報として、共通脆弱性識別子CVEのように、セキュリティに関連する機関によって採番された識別情報が用いられてもよい。また、ファクトのパラメータには、ワイルドカードを表わすパラメータが含まれていてもよい。
図5において例1として示したファクトは、「機器‘ホストA’から機器‘ホストB’にTCP(Transmission Control Protocol )80番ポートを使ってHTTP(HyperText Transfer Protocol )の通信が可能である。」という事項を表わしている。
図5において例2として示したファクトは、「機器‘ホストB’に搭載された‘ソフトウェア1’には脆弱性‘CVE-2018-000x ’があり、リモートでその脆弱性を攻撃することによって、管理者権限を取得できる。」という事項を表わしている。
図5において例3として示したファクトは、「攻撃者が、機器‘ホストA’において管理者権限を有している。」という事項を表わしている。
なお、ファクトの記述形式は、図5に示す例に限定されず、分析部6における処理が実行可能であれば他の形式であってもよい。
分析ルール記憶部5は、分析ルールを記憶する記憶装置である。分析ルールは、既存のファクトから新たなファクトを導出するためのルールである。なお、分析ルールを用いて導出されるファクトは、主に、診断対象システムに含まれる各機器において行われ得る攻撃を表わすファクトである。分析ルール記憶部5は、診断対象システムに応じた1つ以上の分析ルールを記憶する。
図6は、分析ルールの一例を示す。分析ルールは、導出される新たなファクトを表わす要素と、条件に該当する要素とを少なくとも含む。すなわち、分析ルールは、条件と合致するファクトが存在する場合に、新たなファクトが導出されることを表わす。図6に示す例では、1行目の要素が、導出される新たなファクトを表わす要素である。また、2行目から4行目までの各要素が、条件に該当する要素である。図6に示す分析ルールでは、3つの条件の全てにそれぞれ合致するファクトが存在する場合に、1行目に表される新たなファクトが導出される。また、分析ルールには、その分析ルールに対して一意に定められたラベルを表わす要素が含まれてもよい。図6に示す例では、5行目の要素が、分析ルールに一意に定められたラベルを表わす要素である。5行目の要素は、図6に示す分析ルールのラベルが「exec01」であることを表わしている。
図6において、シングルクォーテーションで囲まれたパラメータは、診断対象システム内の機器に関する個別具体的な情報である。例えば、3行目の条件に記述された‘ソフトウェア1’は、機器に搭載されている具体的なソフトウェア名である。つまり、3行目の条件は、機器に搭載された‘ソフトウェア1’というソフトウェアと関連する条件である。このような個別具体的なパラメータを含む条件と合致するファクトには、そのパラメータに相当する情報が含まれる必要がある。換言すると、3行目の条件と合致するファクトは、機器に搭載された‘ソフトウェア1’というソフトウェアと関連するファクトである。
また、図6に示す分析ルールには、次に説明する変数とは異なり、固定的に定められた値が含まれていてもよい。例えば、図6に示す「攻撃者」、「管理者権限」、「http」、「80」、「リモート」、「権限昇格」および「管理者」は、固定的に定められた値である。固定的に定められた値をパラメータに含む条件と合致するファクトには、その固定値に相当する情報が前提のファクトに含まれることが必要である。
また、図6において、大文字で始まるパラメータは、変数である。変数となるパラメータは、合致させるファクトに応じて変化してよいことを表わす。図6に示す例では、「SrcHost 」および「DstHost 」が変数である。変数となるパラメータには、機器から収集された情報に含まれる種々の情報が当てはめられる。1つの分析ルールにおいて、同じパラメータで記述される変数には、共通の値が当てはめられる。例えば、図6における2行目および4行目に記述された変数「SrcHost 」には、共通の具体的な機器IDが当てはめられる。同様に、図6における2行目および3行目に記述された変数「DstHost 」には、共通の具体的な機器IDが当てはめられる。
また、図6に示す例において、3行目に記述された「CVEID 」は、脆弱性の識別情報に関するワイルドカードを表わす。このように、分析ルール内に、ワイルドカードを表わすパラメータが含まれていてもよい。機器に関する情報に関わりなくファクトが成り立つ場合、当該ファクトの少なくとも一部にはワイルドカードを表わすパラメータが含まれていてもよい。ワイルドカードを表わすパラメータは、そこに当てはまる情報が何であってもよいことを表わす。
図6に示す分析ルールでは、条件に含まれる同じ変数に対しては、機器に関する同じ情報が当てはめられる。すなわち、図6に示す分析ルールでは、「SrcHost 」および「DstHost 」のパラメータそれぞれについて、機器に関する同一の情報が当てはめられる。そして、図6に示す例では、変数に対して上述のように機器に関する情報が当てはめられ、かつ、それぞれの条件に合致するそれぞれのファクトが存在する場合、1行目に表される新たなファクトが導出される。また、1行目に表される新たなファクトとして、機器に関する情報が変数に当てはめられたファクトが導出される。
なお、分析ルールの記述形式は、図6に示す例に限定されない。
分析部6は、起点および終点となるファクトの1つ以上の組のそれぞれのうち、起点となるファクトから終点となるファクトを導出可能である組について、攻撃パターンを生成する。分析部6は、一例として、起点となるファクトから終点となるファクトを導出可能か否かを分析する。そして、分析部6は、起点となるファクトから終点となるファクトを導出可能である場合に、攻撃パターンを生成する。分析部6は、起点となる機器に関する情報および終点となる機器に関する情報から生成されたファクト、起点となるファクト、および、分析ルール記憶部5に記憶された分析ルールを用いて、起点となるファクトから終点となるファクトを導出可能か否かを分析する。この分析において、分析部6は、起点となる機器と終点となる機器のいずれにも該当しない機器に関する情報から生成されたファクトは用いない。そして、起点となるファクトから終点となるファクトを導出可能であるならば、パターンテーブル記憶部11に記憶されたパターンテーブルを用いて、攻撃パターンを生成する。パターンテーブルについては後述する。
起点となるファクトを、単に、起点ファクトと称してもよい。同様に、終点となるファクトを、単に、終点ファクトと称してもよい。
なお、起点および終点となるファクトのそれぞれは、通常、診断対象システムに含まれる各機器において行われ得る攻撃を表わすファクト(攻撃可能性を表わすファクト)である。すなわち、起点となるファクトから終点となるファクトを導出可能であることは、起点となる機器において何らかの攻撃が可能な場合に、終点となる機器において別の攻撃が可能であることを示す。起点となるファクトから終点となるファクトを導出できないということは、起点となる機器において何らかの攻撃が可能であっても、終点となる機器において、終点となるファクトが表わす別の攻撃を実行できないことを示す。
起点となるファクトから終点となるファクトを導出可能であるか否かを分析する動作例についてについて説明する。
分析部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は、起点側の機器と終点側の機器との組み合わせをそれぞれ定め、それぞれの機器の組み合わせのもとで、起点となるファクト(「機器、攻撃状態、権限」の組み合わせ)と、終点となるファクト(「機器、攻撃状態、権限」の組み合わせ)との組を定めてもよい。
上記のように、起点となるファクトと終点となるファクトとの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は、導出した新たなファクトが、着目している組における終点となるファクトに一致する場合に、起点となるファクトから終点となるファクトを導出可能であると判断する。
以下、図6に例示する分析ルールを例にして、分析部6が新たなファクトを導出する動作の例をより詳細に説明する。分析部6は、分析ルールに含まれる条件の各々と、その時点において得られている既存のファクトのそれぞれとを対比して、条件に合致するファクトが存在するか否かを判定する。分析ルールに含まれる条件のうち、固定値のパラメータについては、分析部6は、条件に含まれる固定値のパラメータと、既存のファクトの対応する固定値とが一致するか否かを判定することで、条件と合致するファクトが既存のファクトに存在するか否かを判定する。変数のパラメータにおいては、分析部6は、既存のファクトに含まれる値をそのまま条件に当てはめる。そして、分析部6は、条件に合致するファクトが既存のファクトに含まれる場合に、新たなファクトを導出する。
例えば、既存のファクトに、図5に例示する3つのファクトが存在しているとする。そして、図6に例示する分析ルールを用いて分析部6が新たなファクトを導出することを想定する。この場合に、図6に示す分析ルールの各条件に含まれる固定値のパラメータと、図5に示すファクトに含まれる固定値のパラメータとは一致する。従って、この場合、分析部6は、図6に示す1行目の変数「DstHost 」に‘ホストB’を当てはめることによって、“任意コード実行(攻撃者,‘ホストB ’,管理者権限)”という新たなファクトを導出する。そして、分析部6は、その新たなファクトを既存のファクトに追加する。なお、この新たなファクトは、「攻撃者が機器‘ホストB’において管理者権限でコードを実行できる状態である。」という事項を表わしている。すなわち、図5に例示する3つのファクトから、「攻撃者が機器‘ホストB’において管理者権限でコードを実行できる状態である。」という事項が導き出される。
分析ルールに含まれる条件が既存のファクトと合致しない場合、分析部6は、当該分析ルールに基づく新たなファクトを導出しない。これは、既存のファクトを前提とした場合には、当該分析ルールで表されるファクトが導出されないことを表わす。
分析部6は、分析ルール毎に同様の処理を行う。
また、分析部6は、新たなファクトが、着目している組における終点となるファクトに該当するまで、新たなファクトの導出を繰り返す。新たなファクトを導出できなくなるまで新たなファクトの導出を繰り返しても、着目している組における終点となるファクトが得られなかった場合には、分析部6は、着目している組に関して、起点となるファクトから終点となるファクトを導出できないと判定する。これは、起点となる機器における攻撃状態に起因して、終点となる機器では攻撃が起こらないことに相当する。
なお、分析部6は、他の手法を用いて、起点となるファクトから終点となるファクトを導出可能かを分析してもよい。この場合、分析部6は、起点となるファクトから終点となるファクトを導出できないと判定できた場合に、その組に対する分析を終了してもよい。
次に、攻撃パターンの生成について説明する。分析部6は、起点となるファクトから終点となるファクトを導出可能と判断した場合に、その2つのファクトの組に関して、攻撃パターンを生成する。攻撃パターンは、少なくとも、攻撃条件と攻撃結果と攻撃手段とを含む情報である。本実施形態では、攻撃パターンが、攻撃条件、攻撃結果および攻撃手段の他に、診断対象システムにおいて攻撃が生じ得るセグメントも含むものとして説明する。ここで、攻撃条件は、起点における攻撃状態と権限との組であり、攻撃結果は、終点における攻撃状態と権限との組である。攻撃手段は、攻撃者が攻撃に利用する脆弱性である。攻撃手段として、例えば、ArpSpoofing 等の攻撃手法が記述されていてもよい。攻撃パターンには、攻撃条件、攻撃結果および攻撃手段以外の情報が含まれていてもよい。
図7は、攻撃パターンの例を示す模式図である。図7に示す例では、攻撃パターンは、パターン番号と、攻撃条件と、攻撃結果と、パターン概要と、ユーザ関与と、攻撃手段と、セグメントとを含む。なお、パターン番号に応じて、攻撃条件、攻撃結果、パターン概要およびユーザ関与は、予め、パターンテーブル記憶部11が記憶するパターンテーブルにおいて定められている。また、攻撃状態と攻撃結果との組に対して、予め攻撃手段が定められている場合もある。パターンテーブルの各レコードでは、少なくとも、パターン番号、攻撃条件および攻撃結果が定められている。
前述のように、攻撃条件は、起点における攻撃状態と権限との組であり、攻撃結果は、終点における攻撃状態と権限との組である。起点となるファクトに含まれる攻撃状態および権限から、攻撃条件を特定することができる。また、終点となるファクトに含まれる攻撃状態および権限から、攻撃結果を特定することができる。
パターン概要は、攻撃パターンの概要を示す説明である。図7では、パターン概要の具体的な内容の図示を省略している。この点は、後述のパターンテーブルの例を示す図8でも同様である。
ユーザ関与は、攻撃の際に、例えば、USB(Universal Serial Bus)経由等のローカル環境からの攻撃者本人による操作が必要か否かを示す。
攻撃手段は、攻撃者が攻撃に利用する脆弱性である。攻撃手段として、例えば、ArpSpoofing 等の攻撃手法が記述されていてもよい。
なお、セキュリティ上の脆弱性は、大きく2つがある。第1は、ソフトウェアや機器(ルータ等)の不具合が原因の脆弱性である。この脆弱性については、様々な機関によって情報が収集、分類され、脆弱性は、適宜、採番される。一例として、共通脆弱性識別子CVEでは、発見された脆弱性に対して“CVE-****-**** ”という形式の識別子が割り当てられる。第2は、プロトコルの仕様が原因の脆弱性である。このような脆弱性の例として、「FTP(File Transfer Protocol)の悪用」、「Telnetの悪用」、「SMB(Server Message Block)の悪用」等が挙げられる。本発明の実施形態において、脆弱性は、この第1および第2の脆弱性を含む。
また、プロトコルの仕様が原因の脆弱性は、通信プロトコルの仕様が原因の脆弱性に限定されない。例えば、プロトコルの仕様が原因の脆弱性の他の例として、ファイル共有プロトコル、フォルダ共有プロトコル、暗号プロトコル等の仕様が原因の脆弱性等が挙げられる。より具体的には、ファイル共有プロトコルまたはフォルダ共有プロトコルの悪用の一例として、コンピュータ内のファイルやフォルダへのアクセス権限の設定に誤りがあった場合に、その設定の誤りを利用する攻撃が考えられる。また、暗号プロトコルの悪用の一例として、弱い暗号方式を用いる設定がなされていることを利用する攻撃が考えられる。
セグメントは、診断対象システムにおける機器と他の機器との間の経路である。診断対象システムにおける各セグメントには、識別情報が予め割り当てられている。図7にセグメントとして例示する“S1”等は、セグメントの識別情報である。なお、診断対象システムにおける機器とその機器に結線された他の機器の間の経路をセグメントとしてもよい。
攻撃パターンにおいて、攻撃手段は、終点となるファクトの導出に用いた分析ルールに応じて定められる。ただし、攻撃状態と攻撃結果との組に対して、予め攻撃手段が定められている場合もある。
また、攻撃パターンにおいて、セグメントは、始点となるファクトおよび終点となるファクトに応じて定められる。
終点となるファクトの導出に用いた分析ルールに応じて定められる攻撃手段を未確定とするとともに、セグメントを未確定とし、攻撃パターンに含まれる未確定ではない他の事項を格納したテーブルをパターンテーブルと称する。パターンテーブルは、予め定められ、パターンテーブル記憶部11に記憶されている。
図8は、パターンテーブルの例を示す模式図である。図8において、空欄は、情報が未確定であることを示している。なお、図8に示す“ArpSpoofing”は、攻撃状態と攻撃結果との組に対して予め確定された攻撃手段である。
分析部6は、起点となるファクトから終点となるファクトを導出可能であると判断した場合、その起点となるファクトに含まれる攻撃状態および権限、終点となるファクトに含まれる攻撃状態および権限、および、その終点となるファクトの導出に用いた分析ルールに応じたレコードを、パターンテーブル(図8参照)から検索する。そして、検索したレコードにおいて未確定となっている情報を特定することによって、その起点および終点の組に対する攻撃パターンを生成する。
図8に例示するパターンテーブルにおいて、パターン番号“1”の攻撃条件および攻撃結果の組と、パターン番号“2” の攻撃条件および攻撃結果の組とは共通である。すなわち、攻撃条件および攻撃結果の組が共通となっているレコードが複数存在し得る。このことは、同じ攻撃結果を表わす終点となるファクトの導出に用いられる分析ルールが複数存在し、その分析ルールの違いによって、未確定の情報の定め方が異なることを意味している。攻撃条件および攻撃結果の組が共通となっているパターンテーブル内のレコードは、それぞれ別々の分析ルールに予め関連付けられている。そして、関連付けられている分析ルールによって、レコード内で未確定となっている攻撃手段の特定方法が異なる。
図9は、起点となるファクトから導出される終点となるファクトが同一であるが、終点となるファクトの導出過程が異なっていて、終点となるファクトの導出に用いられる分析ルールが異なっていることを示す模式図である。図9では、「ホストA/任意コード実行/一般権限」という組み合わせの起点から、「ホストB/データ改ざん/管理者権限」という組み合わせの終点が導出された例を示す。ただし、ファクト61,62はそれぞれ異なる分析ルールによって導出されたファクトである。ファクト61は、ラベル“dataInject01”の分析ルールによって導出されたファクトであり、ファクト62は、ラベル“dataInject02”の分析ルールによって導出されたファクトである。ここで、ラベル“dataInject01”の分析ルールは、図8に例示するパターンテーブルにおけるレコード“1”に関連付けられ、ラベル“dataInject02”の分析ルールは、パターンテーブルにおけるレコード“2”に関連付けられているものとする。従って、攻撃条件および攻撃結果の組が共通となっているレコード“1”とレコード“2”とでは、攻撃手段の導出方法が異なる。
図10は、ラベル“dataInject01”の分析ルールの例を示す。図10に例示する分析ルールによって終点となるファクトを導出した場合、分析部6は、「任意コード実行/一般権限」という攻撃条件と「データ改ざん/管理者権限」という攻撃結果を含むレコードのうち、図10に例示する分析ルールに関連付けられているレコード“1”を検索する。そして、分析部6は、そのレコードにおける攻撃手段およびセグメントを特定することによって、新たな攻撃パターンを生成する。図10に例示する分析ルールに関連付けられているレコード“1”の攻撃手段を特定する場合、分析部6は、終点となるファクトを導出するときにこの分析ルールの2行目の要素に記述されている脆弱性の識別情報に関するワイルドカード“CVEID ”(図10参照)に当てはめられた脆弱性の識別情報を特定すればよい。この結果、分析部6は、レコード“1”の攻撃手段として、例えば、“CVE-2010-000x”を特定する。また、分析部6は、レコード“1”のセグメントとして、起点となるファクトに含まれる機器から終点となるファクトに含まれる機器までの経路を示すセグメントの識別情報を特定すればよい。
図11は、ラベル“dataInject02”の分析ルールの例を示す。図11に例示する分析ルールによって終点となるファクトを導出した場合、分析部6は、「任意コード実行/一般権限」という攻撃条件と「データ改ざん/管理者権限」という攻撃結果を含むレコードのうち、図11に例示する分析ルールに関連付けられているレコード“2”を検索する。そして、分析部6は、そのレコードにおける攻撃手段およびセグメントを特定することによって、新たな攻撃パターンを生成する。図11に例示する分析ルールに関連付けられているレコード“2”の攻撃手段を特定する場合、分析部6は、終点となるファクトを導出するときにこの分析ルールの3行目の要素“データフロー(SrcHost,DstHost,Flow)”における変数“Flow”(図11参照)に当てはめられた情報を特定し、その情報に対応付けられるプロトコルを特定すればよい。なお、変数“Flow”に当てはめられる情報と、プロトコルとの対応関係は、起点となるファクトから終点となるファクトを導出可能か否かを分析する際に、予め分かる。この結果、分析部6は、レコード“2”の攻撃手段として、例えば、“SMB(すなわち、SMBの悪用)”を特定する。また、分析部6は、レコード“2”のセグメントとして、起点となるファクトに含まれる機器から終点となるファクトに含まれる機器までの経路を示すセグメントの識別情報を特定すればよい。
ここでは、終点となるファクトを導出するときに、図10に例示する分析ルールを用いた場合や、図11に例示する分析ルールを用いた場合における攻撃手段を特定する動作の例を示した。ただし、攻撃手段を特定する動作は、上記の例に限定されない。分析部6は、起点となるファクトおよび終点となるファクトから分かる攻撃条件および攻撃結果を含み、かつ、終点となるファクトを導出するときに用いた分析ルールに関連付けられたパターンテーブル内のレコードの攻撃手段を特定する場合、その分析ルールに応じて定められた方法で、攻撃手段を特定すればよい。
また、図8に例示するレコード“3”のように、攻撃条件と攻撃結果との組に対して予め攻撃手段(本例では、ArpSpoofing )が定められている場合がある。分析部6は、そのようなレコードを検索した場合には、そのレコードにおいて既に定められている攻撃手段を含む攻撃パターンを生成すればよい。
また、分析部6は、セグメントを特定する場合には、起点となるファクトに含まれる機器から終点となるファクトに含まれる機器までの経路を示すセグメントの識別情報を特定すればよい。
そして、分析部6は、起点となるファクトから終点となるファクトを導出可能であると判断した場合、その起点となるファクトに含まれる攻撃状態および権限、終点となるファクトに含まれる攻撃状態および権限、および、その終点となるファクトの導出に用いた分析ルールに応じたレコードに含まれる確定済みの情報と、前述のように特定した攻撃手段およびセグメントを含む攻撃パターンを作成する。
ここで、生成される攻撃パターンに含まれる攻撃条件は、起点となるファクトに含まれる攻撃状態および権限であり、攻撃パターンに含まれる攻撃結果は、終点となるファクトに含まれる攻撃状態および権限である。
なお、分析部6は、起点および終点となるファクトの組を1つ以上生成する。従って、パターンテーブルから同一レコードが複数回検索される場合もあり得る。その場合、分析部6は、そのレコードを検索する毎に、そのレコードにおける未確定の事項を特定し、新たに特定された事項を既存の攻撃パターンに追加すればよい。
図7は、上記のように分析部6によって生成された攻撃パターンの例を示している。
分析部6は、生成した攻撃パターンを攻撃パターン記憶部7に記憶させる。攻撃パターン記憶部7は、攻撃パターンを記憶する記憶装置である。
以下の説明では、分析部6が上記のように攻撃パターンを生成する場合を例にして説明する。ただし、分析部6は、他の方法で攻撃パターンを生成してもよい。例えば、分析部6は、モデルチェッカを利用して攻撃パターンを生成してもよい。あるいは、分析部6は、ペトリネットを用いた分析によって攻撃パターンを生成してもよい。
以下の説明では、攻撃パターンに含まれる「パターン概要」の図示等を省略する。
また、以下の説明では、トポロジ特定部14が、図4に例示するネットワークトポロジを特定した場合を例にして説明する。
図12は、分析部6によって生成された攻撃パターンの例を示す。また、図13は、図4に例示するネットワークトポロジにおけるセグメントとその識別情報との関係の例を示す。以下、図12および図13に示す例を参照して説明する。
表示制御部8は、生成された各攻撃パターンに示されている各セグメントを、トポロジ特定部14によって特定されてネットワークトポロジに重畳させて、ディスプレイ装置9上に表示する。
このとき、表示制御部8は、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性の種類に応じて、セグメントの表示態様を変える。換言すれば、表示制御部8は、個々のセグメントを表示する際に、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性の種類に応じた表示態様で、個々のセグメントを表示する。具体的には、本実施形態では、表示制御部8は、攻撃手段に該当する脆弱性が、セキュリティに関連する機関によって採番された識別情報を有する脆弱性であるか、プロトコルの仕様が原因の脆弱性であるかによって、セグメントの表示態様を変える場合を例にして説明する。
以下、具体的な表示例を参照して、説明する。図14は、攻撃パターンに含まれるセグメントの表示例を示す模式図である。ここでは、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性が、採番された識別情報を有する脆弱性である場合に、表示制御部8が、そのセグメントを実線で表示し、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性が、プロトコルの仕様が原因の脆弱性である場合に、表示制御部8が、そのセグメントを破線で表示する場合を例にして説明する。
図12には、2つの攻撃パターンが例示され、攻撃パターン“P1”は、セグメント“S3”,“S6”を示している。セグメント“S3”,“S6”を含む攻撃パターン“P1”に含まれる攻撃手段は、採番された識別情報を有する脆弱性を示している(図12参照)。この場合、表示制御部8は、セグメント“S3”,“S6”を実線で表示する(図14参照)。なお、セグメント“S3”は、社内Webサーバ54からデータサーバ55に至るセグメントであり、セグメント“S6”は、管理用PC53からデータサーバ55に至るセグメントである(図13参照)。
また、攻撃パターン“P2”は、セグメント“S4a”,“S4b”,“S5a”,“S5b”を示している。そして、これらのセグメント“S4a”,“S4b”,“S5a”,“S5b” を含む攻撃パターン“P2”に含まれる攻撃パターンは、プロトコル(本例では、ファイル共有プロトコル)の仕様が原因の脆弱性を示している(図12参照)。この場合、表示制御部8は、セグメント“S4a”,“S4b”,“S5a”,“S5b”を破線で表示する。本例では、互いに逆向きのセグメントを表示する場合、両端にアローヘッドを有する一本のエッジとして表示するものとする。例えば、セグメント“S4a”は、事務用PC51からファイルサーバ52に至るセグメントであり、セグメント“S4b”は、ファイルサーバ52から事務用PC51に至るセグメントである(図13参照)。すなわち、セグメント“S4a”,“S4b”は、互いに逆向きのセグメントである。この場合、表示制御部8は、セグメント“S4a”,“S4b”を、図14に示すように、両端にアローヘッドを有する一本のエッジとして表示する。セグメント“S5a”,“S5b”を表示する場合も同様である。
なお、図14に示す例では、攻撃パターンに含まれる攻撃手段に該当する脆弱性の種類に応じて、セグメントの線種を変える場合を示した。セグメントの表示態様を変える方法は、線種を変える方法に限定されず、例えば、セグメントの色を変える方法であってもよく、あるいは、セグメントの太さを変える方法であってもよい。
ディスプレイ装置9は、情報を表示する装置であり、一般的なディスプレイ装置でよい。なお、分析システム1がクラウド上に存在する場合には、ディスプレイ装置9は、クラウドに接続される端末のディスプレイ装置等であってもよい。
データ収集部2は、例えば、分析プログラムに従って動作するコンピュータのCPU(Central Processing Unit )、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から分析プログラムを読み込み、その分析プログラムに従って、通信インタフェースを用いて、データ収集部2として動作すればよい。また、トポロジ特定部14、ファクト生成部4、分析部6および表示制御部8は、例えば、分析プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが上記のようにプログラム記録媒体から分析プログラムを読み込み、その分析プログラムに従って、トポロジ特定部14、ファクト生成部4、分析部6および表示制御部8として動作すればよい。データ記憶部3、分析ルール記憶部5、パターンテーブル記憶部11および攻撃パターン記憶部7は、例えば、コンピュータが備える記憶装置によって実現される。
次に、処理経過について説明する。図15および図16は、本発明の第1の実施形態の分析システムの処理経過の例を示すフローチャートである。既に説明した事項については説明を省略する。
まず、データ収集部2が、診断対象システムに含まれる各機器に関する情報を収集する(ステップS1)。データ収集部2は、収集したデータをデータ記憶部3に記憶させる。
また、データ収集部2は、ステップS1において、診断対象システムに含まれる機器毎に、その機器に存在する脆弱性の情報を、例えば、脆弱性データベースサーバ(図示略)から収集する。そして、データ収集部2は、収集した脆弱性の情報を、例えば、脆弱性名をキーとするレコードからなる脆弱性の情報のテーブル(図3参照)にまとめ、そのテーブルをデータ記憶部3に記憶させる。なお、各脆弱性の情報をデータ記憶部3に記憶させる形式は、図3に例示するテーブルの形式に限定されない。
ステップS1の次に、トポロジ特定部14が、各機器のネットワークトポロジを特定する(ステップS1A)。
ステップS1Aの次に、ファクト生成部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は、選択した組における攻撃パターンを生成し、その攻撃パターンを攻撃パターン記憶部7に記憶させる(ステップS9)。ステップS9の後、分析部6はステップS5以降の処理を繰り返す。
分析部6が、ステップS4で生成された組が全てステップS6で選択済みであると判定した場合(ステップS5のYes)、表示制御部8は、攻撃パターン記憶部7に記憶された各攻撃パターンを参照する。そして、表示制御部8は、各攻撃パターンに含まれるセグメントを、ステップS1Aで特定されたネットワークトポロジに重畳させて、ディスプレイ装置9上に表示する(ステップS10)。ステップS10において、個々のセグメントを表示する際に、表示制御部8は、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性の種類に応じた表示態様で、個々のセグメントを表示する。例えば、前述の例のように、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性が、採番された識別情報を有する脆弱性である場合、表示制御部8は、そのセグメントを実線で表示する。また、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性が、プロトコルの仕様が原因の脆弱性である場合、表示制御部8は、そのセグメントを破線で表示する(図14参照)。
本実施形態によれば、個々のセグメントを表示する際に、表示制御部8は、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性の種類に応じて、セグメントの表示態様を変える。従って、管理者は、診断対象システムのどの箇所にどのような種類の脆弱性が存在するのかを把握することができる。その結果、管理者は、既知となっている脆弱性による診断対象システムへの影響を把握することができる。
なお、分析部6が攻撃パターンを生成する方法は、上記の実施形態で説明した方法に限定されない。既に説明したように、分析部6は、例えば、モデルチェッカを利用して攻撃パターンを生成してもよい。あるいは、分析部6は、ペトリネットを用いた分析によって攻撃パターンを生成してもよい。
また、既に説明したように、セグメントの表示態様を変える方法は、線種を変える方法に限定されず、例えば、セグメントの色を変える方法であってもよく、あるいは、セグメントの太さを変える方法であってもよい。この点は、以下に説明する種々の変形例においても同様である。
次に、第1の実施形態の種々の変形例について説明する。以下に示す種々の変形例は、後述の第2の実施形態にも適用可能である。
表示制御部8は、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性の種類(採番された識別情報を有する脆弱性であるか、あるいは、プロトコルの仕様が原因の脆弱性であるか)に応じて、セグメントの表示態様を変えつつ、さらに、セグメントを含む攻撃パターンに含まれる攻撃結果が示す攻撃状態と権限のうちの少なくとも一方に応じて、セグメントの表示態様を変えてもよい。
例えば、表示制御部8は、脆弱性の種類に応じて、前述の例のようにセグメントの線種を変え、セグメントを含む攻撃パターンに含まれる攻撃結果が示す攻撃状態が「任意コード実行」、「データ改ざん」、「ファイルアクセス可能」、「アカウント保有」および「dos 」の何れであるかに応じて、表示するセグメントの色を変えてもよい。
また、例えば、表示制御部8は、脆弱性の種類に応じて、前述の例のようにセグメントの線種を変え、セグメントを含む攻撃パターンに含まれる攻撃結果が示す権限が「管理者権限」、「一般権限」および「権限関連なし」の何れであるかに応じて、表示するセグメントの色を変えてもよい。
また、例えば、表示制御部8は、脆弱性の種類に応じて、前述の例のようにセグメントの線種を変え、セグメントを含む攻撃パターンに含まれる攻撃結果が示す攻撃状態と権限との組み合わせに応じて、表示するセグメントの色を変えてもよい。
また、表示制御部8は、前述の例のように、脆弱性の種類に応じてセグメントの表示態様を変えつつ、さらに、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性の数に応じて、セグメントの表示態様を変えてもよい。例えば、図17に例示する攻撃パターンが得られたとする。
図17に示す例では、セグメント“S3”,“S6”を含む攻撃パターン“P1”に含まれる攻撃手段に該当する脆弱性の数は3つである。一方、セグメント“S4a”,“S4b”,“S5a”,“S5b”を含む攻撃パターン“P2”に含まれる攻撃手段に該当する脆弱性の数は1つである。従って、例えば、図18に例示するように、表示制御部8は、セグメント“S3”,“S6”を実線で表示し、セグメント“S4a”,“S4b”,“S5a”,“S5b”を破線で表示しつつ、さらに、太さによって、セグメント“S3”,“S6”の表示態様と、セグメント“S4a”,“S4b”,“S5a”,“S5b”の表示態様とを変えてもよい。本例において、表示制御部8は、攻撃手段に該当する脆弱性の数が多いほど、セグメントを太く表示し、攻撃手段に該当する脆弱性の数が少ないほどセグメントを細く表示してもよい。
また、表示制御部8は、前述の例のように、脆弱性の種類に応じてセグメントの表示態様を変えつつ、さらに、セグメントを含む攻撃パターンに含まれるユーザ関与に基づいて、攻撃の際にローカル環境からの攻撃者本人による操作が必要であるか否かに応じて、セグメントの表示態様を変えてもよい。例えば、表示制御部8は、攻撃の際にローカル環境からの攻撃者本人による操作が必要である場合には、セグメントを太く表示し、攻撃の際にローカル環境からの攻撃者本人による操作が必要でない場合には、セグメントを細く表示してもよい。
また、表示制御部8は、ネットワークトポロジに重畳させて各セグメントを表示し、さらに、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性に関連する情報(例えば、その脆弱性を利用した攻撃に関するニュース等)を表示してもよい。以下、脆弱性に関連する情報の表示方法の一例を示す。例えば、データ収集部2は、脆弱性に関する情報を脆弱性データベースサーバ等から収集する際に、脆弱性に関連する情報を記述したWebページのURL(Uniform Resource Locator)も収集する。そのようなWebページのURLも含む、脆弱性に関する情報の収集結果の例を図19に示す。そして、表示制御部8は、セグメントを表示する際、そのセグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性に対応するURLをそのセグメントの近傍に表示してもよい。このとき、表示制御部8は、表示するURLにリンクを設定しておく。そして、そのURLがクリックされた場合、表示制御部8は、そのURLに対応するWebページを表示する。この結果、管理者は、脆弱性を利用した攻撃に関するニュース等を、Webページを閲覧することによって確認することができる。
実施形態2.
本発明の第2の実施形態の分析システムは、第1の実施形態と同様に、図2に示すように表すことができる。そのため、図2を参照して第2の実施形態について説明する。第1の実施形態と同様の事項については説明を省略する。
第2の実施形態の分析システム1は、例えば、図15および図16に示すステップS1~S10の処理を複数回繰り返す。なお、ここでは、ステップS1~S10の処理を複数回繰り返す場合を例にして説明するが、分析部6が攻撃パターンを生成する方法は、第1の実施形態で説明した方法に限定されないことは既に説明した通りである。
分析システム1が、一旦、ステップS1~S10の処理を実行した後、再度、ステップS1を実行するまでの間に、新たな脆弱性が発見され、ステップS1において、その新たな脆弱性に関する情報も収集されたとする。
また、前回、ステップS1~S10の処理を実行した際に生成された攻撃パターンは攻撃パターン記憶部7に記憶されたまま残っているものとする。
分析システム1が、新たにステップS1~S10を実施する場合にも、その過程で、分析部6は、起点となるファクトと終点となるファクトとの組毎に、起点となるファクトから終点となるファクトを導出可能であるか否かを分析し、起点となるファクトから終点となるファクトを導出可能である組に関しては、攻撃パターンを生成する。そして、分析部6は、攻撃パターン記憶部7に記憶させる。また、分析部6は、ステップS1~S10(特に、ステップS5~S9のループ処理)で、パターンテーブル(図8参照)から同一レコードが複数回検索される場合には、そのレコードを検索する毎に、そのレコードにおける未確定の事項を特定し、新たに特定された事項を既存の攻撃パターンに追加すればよい。
前回、ステップS1~S10の処理を実行した後、再度、ステップS1を実行するまでの間に、新たな脆弱性が発見されていることによって、データ収集部2が収集する脆弱性の情報も増加する。その結果、攻撃パターンが増えたり、既存の攻撃パターンに新たな事項(新たな脆弱性や新たなセグメント)が追加されたりする。
前回のステップS1~S10の処理において得られた脆弱性の情報のテーブルが図3に例示するテーブルであるとする。また、前回のステップS1~S10の処理において得られた攻撃パターンが図12に例示する攻撃パターンであるとする。その後、新たな脆弱性“CVE-YYYY-2222”が発見されたとする。そして、データ収集部2が、ステップS1において、機器毎に、機器に存在する脆弱性生の情報を収集し、脆弱性名をキーとするレコードからなる脆弱性の情報のテーブルを作成し直したとする。このテーブルの例を、図20に示す。図3に比較するテーブルと比較して、社内Webサーバに脆弱性“CVE-YYYY-2222”が存在することを示す情報が追加されている。
新たにステップS1~S10を実行する過程で分析部6が、図21に例示する攻撃パターンを生成し、攻撃パターン記憶部7に記憶させたとする。
既存の攻撃パターン(図12参照)と、新たに生成された攻撃パターン(図21参照)とを比較すると、新たに生成された攻撃パターンでは、攻撃パターン“P3”において、新たなセグメント“S2”が示されていることがわかる。このように、再度実行された攻撃パターンの生成処理の結果、新たなセグメントが、攻撃パターンによって示された場合、表示制御部8は、その新たなセグメントをネットワークトポロジに重畳させて、ディスプレイ装置9上に表示する。
前回のステップS10では、図14に示す情報が表示されていたとする。新たに実行するステップS10では、表示制御部8は、新たなセグメント“S2”もネットワークトポロジに重畳させて表示するので、図22に例示する情報が表示される。セグメント“S2”は、事務用PC51から社内Webサーバ54に至るセグメントである。
再度ステップS1~S10の処理を実行したことによって、表示される情報が、図14に示す情報から、図22に示す情報に変化したとする。図14に示すセグメント“S3”は、社内Webサーバ54からデータサーバ55に至る攻撃を表わしている。しかし、診断対象システムの外部の機器であるメールサーバ56に接続されているのは、事務用PC51であり、図14では、事務用PC51から社内Webサーバ54に至る攻撃は示されていない。従って、管理者は、図14に示す情報が表示された時点では、外部の機器からデータサーバ55に至る攻撃はできないと判断することができる。
その後、再度ステップS1~S10の処理を実行したことによって、図22に示す情報が表示されたとする。図22において、セグメント“S2”は、事務用PC51から社内Webサーバ54に至る攻撃を表わしている。すなわち、図22に示す情報は、新たなセグメント“S2”と、既に表示されていたセグメント“S3”とが繋がることによって、事務用PC51から社内Webサーバ54を経て、データサーバ55に至る攻撃が可能となることを示している。従って、管理者は、図14に示す情報が図22に示す情報に変化したことによって、外部の機器(メールサーバ56)からデータサーバ55に至る攻撃があり得ると判断し、その攻撃への対処をすべきであると判断することができる。
このように、本実施形態によれば、分析システム1は、一旦、ステップS1~S10の処理を実行した後、再度ステップS1~S10の処理を実行し、攻撃パターンに新たなセグメントが示されている場合には、そのセグメントもネットワークトポロジに重畳させて、ディスプレイ装置9上に表示する。その結果、管理者は、攻撃を表わすセグメントの繋がりが増えていく状況等を確認することができ、例えば、外部の機器から特定の機器への攻撃が可能になったこと等を判断することができる。
なお、前述の図21に示す例では、新たに追加された攻撃パターン“P3”に、脆弱性“CVE-YYYY-2222 ”やセグメント“S2”が示されている。再度ステップS1~S10の処理を実行する際に、既存の攻撃パターンに、新たな脆弱性“CVE-YYYY-2222 ”や新たなセグメント“S2”が追加されてもよい。そのような攻撃パターンの例を図23に示す。
図23に示す攻撃パターンが得られた場合にも、攻撃パターンにおいて新たなセグメント“S2”が示されているので、表示制御部8は、図22に例示する情報を表示する。
また、データ収集部2は、ステップS1において、各機器に関する情報を収集する動作と、機器毎の脆弱性の情報を収集する動作を行う。データ収集部2は、脆弱性の情報については、例えば、脆弱性データベースサーバ(図示略)から収集する。一方、各機器に関する情報については、それぞれの機器から収集する場合がある。ただし、OTシステムは稼働状態を維持しなければならないため、OTシステムに含まれる機器からは、機器に関する情報を収集する動作を何度も実行することは困難である。そのような場合には、データ収集部2は、ステップS1~S10の処理を再度実行する場合、ステップS1において、脆弱性データベースサーバから機器毎の脆弱性の情報を収集する動作のみを行ってもよい。
また、第2の実施形態において、分析システム1は、ステップS1~S10の処理を、定期的に繰り返してもよい。あるいは、分析システム1は、管理者から指示されたタイミングで、ステップS1~S10の処理を再実行してもよい。あるいは、分析システム1が、脆弱性データベースサーバ(図示略)をモニタし、脆弱性データベースサーバに新たな脆弱性の情報が登録されたことを分析システム1が検出したタイミングで、ステップS1~S10の処理を再実行してもよい。
次に、上記の各実施形態の変形例を示す。上記の各実施形態において、表示制御部8は、ネットワークトポロジ内における機器を管理者によって指定されると、その指定された機器を起点とするセグメント、および、そのセグメントに連なる一連のセグメントを、ネットワークトポロジに重畳させて、ディスプレイ装置9上に表示してもよい。このとき、表示制御部8は、指定された機器を起点とするセグメント、および、そのセグメントに連なる一連のセグメント以外のセグメントについては、表示しなくてよい。
図24は、上記の変形例における表示例を示す模式図である。機器70~77のうち、機器71は、管理者のマウスクリック操作によって指定されたとする。そして、機器71を起点とする、攻撃パターン内で示されたセグメント“S11”のみであるとする。この場合、表示制御部8は、セグメント“S11”と、セグメント“S11”に連なるセグメント“S12”,“S13”をネットワークトポロジに重畳させてディスプレイ装置9上に表示する。これらのセグメント“S11”,“S12”,“S13”は攻撃パターンで示されているセグメントである。すなわち、表示制御部8は、攻撃パターンで示されたセグメントのうち、指定された機器を起点とするセグメント、および、そのセグメントに連なる一連のセグメントを表示する。例えば、攻撃パターンで、機器76から機器74に至るセグメントが示されていたとしても、そのセグメントは、セグメント“S11”に連なるセグメントではないので、表示されない。
この変形例によれば、管理者は、指定した機器から他の機器に至る攻撃を確認することができる。そして、その攻撃に関連しないセグメントは表示されないので、管理者は、管理者自身が注目している攻撃について確認することができる。
次に、他の変形例について説明する。上記の各実施形態では、分析部6が、攻撃グラフの起点となるファクトや終点となるファクトとして、機器のうちの1つと、複数種類の攻撃状態のうちの1つと、攻撃対象と対応し得る権限のうちの1つとの組み合わせを生成する場合を説明した。攻撃グラフの起点となるファクトや終点となるファクトを生成する場合に、分析部6は、権限を組み合わせに含めずに、機器のうちの1つと、複数種類の攻撃状態のうちの1つとの組み合わせを、起点となるファクトや終点となるファクトとして生成してもよい。すなわち、起点または終点となるファクトは、少なくとも、機器と攻撃状態の組であればよい。この場合に、分析部6は、攻撃グラフの起点となるファクトとして、機器のうちの1つと、複数種類の攻撃状態のうちの1つとの組み合わせを生成し、攻撃グラフの終点となるファクトとして、機器のうちの1つと、複数種類の攻撃状態のうちの1つとの組み合わせを生成してもよい。
本変形例によれば、起点や終点となるファクトに該当する組合せから、権限が除外されるので、分析部6は、より高速に攻撃パターンを生成できる。その結果、攻撃パターンに含まれるセグメントの表示までの処理を、より早く完了することができる。
また、分析部6は、最初に、起点や終点となるファクトとして、権限を除外した組み合わせを生成し、起点となるファクトから終点となるファクトを導出可能か否かを分析し、起点となるファクトから終点となるファクトを導出可能と判断した場合に、起点や終点となるファクトとして、機器と攻撃状態と権限とを含む組み合わせを改めて生成してもよい。そして、分析部6は、その上で、再度、起点となるファクトから終点となるファクトを導出可能か否かを分析してもよい。このように処理によって、起点や終点となるファクトとして権限を除外した組み合わせを生成する場合に生じ得る冗長な分析を防ぎつつ、効率よく攻撃パターンを生成することができる。
図25は、本発明の各実施形態の分析システム1に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、ディスプレイ装置1005と、通信インタフェース1006とを備える。
本発明の各実施形態の分析システム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 )、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要を説明する。図26は、本発明の分析システムの概要を示すブロック図である。本発明の分析システムは、トポロジ特定部14と、分析部6と、表示制御部8とを備える。
トポロジ特定部14は、診断対象システムに含まれる機器のネットワークトポロジを特定する。
分析部6は、攻撃条件と、攻撃結果と、攻撃に利用される脆弱性である攻撃手段と、診断対象システムにおいてその攻撃が生じ得るセグメントとを含む攻撃パターンを生成する。
表示制御部8は、ネットワークトポロジに重畳させて、攻撃パターンに含まれるセグメントをディスプレイ装置上に表示する。このとき、表示制御部8は、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性の種類に応じて、セグメントの表示態様を変える。
そのような構成により、既知となっている脆弱性による診断対象システムへの影響をセキュリティ管理者が把握できる。
また、分析部6が、攻撃パターンを生成する処理を再度、実行し、表示制御部8が、再度実行された攻撃パターンを生成する処理の結果、新たなセグメントが攻撃パターンによって示された場合、当該新たなセグメントを、ネットワークトポロジに重畳させて、ディスプレイ装置上に表示する構成であってもよい。
また、攻撃条件および攻撃結果が、それぞれ、予め定められた複数種類の攻撃状態のうちの1つと、攻撃状態と対応し得る権限のうちの1つとの組み合わせで表され、表示制御部8が、セグメントを含む攻撃パターンに含まれる攻撃結果が示す攻撃状態と権限のうちの少なくとも一方に応じて、セグメントの表示態様を変える構成であってもよい。
また、表示制御部8が、セグメントを含む攻撃パターンに含まれる攻撃手段に該当する脆弱性の数に応じて、セグメントの表示態様を変える構成であってもよい。
また、分析部6が、攻撃の際にローカル環境からの攻撃者本人による操作が必要か否かを示すユーザ関与を含む攻撃パターンを生成し、表示制御部8が、セグメント含む攻撃パターンに含まれるユーザ関与に基づいて、攻撃の際にローカル環境からの攻撃者本人による操作が必要か否かであるか否かに応じて、セグメントの表示態様を変える構成であってもよい。
また、表示制御部8が、ネットワークトポロジ内における機器を指定されると、指定された機器を起点とするセグメント、および、当該セグメントに連なる一連のセグメントを、ネットワークトポロジに重畳させて、ディスプレイ装置上に表示する構成であってもよい。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
本発明は、診断対象システムへの攻撃の分析を行う分析システムに好適に適用される。