IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

<>
  • 特許-分析システム、方法およびプログラム 図1
  • 特許-分析システム、方法およびプログラム 図2
  • 特許-分析システム、方法およびプログラム 図3
  • 特許-分析システム、方法およびプログラム 図4
  • 特許-分析システム、方法およびプログラム 図5
  • 特許-分析システム、方法およびプログラム 図6
  • 特許-分析システム、方法およびプログラム 図7
  • 特許-分析システム、方法およびプログラム 図8
  • 特許-分析システム、方法およびプログラム 図9
  • 特許-分析システム、方法およびプログラム 図10
  • 特許-分析システム、方法およびプログラム 図11
  • 特許-分析システム、方法およびプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】分析システム、方法およびプログラム
(51)【国際特許分類】
   G06F 21/57 20130101AFI20231219BHJP
【FI】
G06F21/57 370
【請求項の数】 12
(21)【出願番号】P 2021575153
(86)(22)【出願日】2020-02-05
(86)【国際出願番号】 JP2020004312
(87)【国際公開番号】W WO2021156967
(87)【国際公開日】2021-08-12
【審査請求日】2022-07-13
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【弁理士】
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【弁理士】
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】木下 峻一
【審査官】吉田 歩
(56)【参考文献】
【文献】特表2013-500668(JP,A)
【文献】特開2015-005274(JP,A)
【文献】郷間 佳市郎,ネットワークシステムにおける脆弱性管理-その仕組みと手法-,オペレーションズ・リサーチ 経営の科学 平成17年5月号,日本,社団法人日本オペレーションズ・リサーチ学会,2005年05月01日,第50巻, 第5号,pp.324-328
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
診断対象システムまたは前記診断対象システムに含まれる機器におけるセキュリティに関連する状態を示すファクトを基に攻撃グラフを生成する分析部と、
生成された攻撃グラフが示す攻撃パスを構成するファクトのうち前記診断対象システムまたは前記機器の未知の情報を示すファクトである未確定ファクを抽出する抽出部を備える
ことを特徴とする分析システム。
【請求項2】
抽出された未確定ファクトのうち追加スキャンの対象に指定された未確定ファクトを含む情報の収集をスキャナに指示する指示部を備える
請求項1記載の分析システム。
【請求項3】
抽出部は、未確定ファクトが示す状態が真である確率が、第一の閾値以上かつ第二の閾値以下である未確定ファクトを追加スキャンの対象に指定する
請求項1または請求項2記載の分析システム。
【請求項4】
抽出部は、攻撃の成否に関わる未確定ファクトを追加スキャンの対象に指定する
請求項1から請求項3のうちのいずれか1項に記載の分析システム。
【請求項5】
抽出部は、所定の数以上の攻撃に影響を与えている未確定ファクトを追加スキャンの対象に指定する
請求項1から請求項4のうちのいずれか1項に記載の分析システム。
【請求項6】
抽出部は、追加スキャンにより新たな情報が取得されることが予測される未確定ファクトを追加スキャンの対象に指定する
請求項1から請求項5のうちのいずれか1項に記載の分析システム。
【請求項7】
機器の構成情報が示すファクトである確定ファクトが、攻撃の実行に寄与する
請求項1から請求項6のうちのいずれか1項に記載の分析システム。
【請求項8】
診断対象システムから未確定ファクトを含む情報を収集するスキャナを備える
請求項1から請求項7のうちのいずれか1項に記載の分析システム。
【請求項9】
分析システムで実行される分析方法であって、
前記分析システムが、
診断対象システムまたは前記診断対象システムに含まれる機器におけるセキュリティに関連する状態を示すファクトを基に攻撃グラフを生成し、
生成された攻撃グラフが示す攻撃パスを構成するファクトのうち前記診断対象システムまたは前記機器の未知の情報を示すファクトである未確定ファクを抽出する
ことを特徴とする分析方法。
【請求項10】
分析システムが、
抽出された未確定ファクトのうち追加スキャンの対象に指定された未確定ファクトを含む情報の収集をスキャナに指示する
請求項9記載の分析方法。
【請求項11】
コンピュータに、
診断対象システムまたは前記診断対象システムに含まれる機器におけるセキュリティに関連する状態を示すファクトを基に攻撃グラフを生成する生成処理、および
生成された攻撃グラフが示す攻撃パスを構成するファクトのうち前記診断対象システムまたは前記機器の未知の情報を示すファクトである未確定ファクを抽出する抽出処理
を実行させるための分析プログラム。
【請求項12】
コンピュータに、
抽出された未確定ファクトのうち追加スキャンの対象に指定された未確定ファクトを含む情報の収集をスキャナに指示する指示処理を実行させる
請求項11記載の分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、診断対象システムへの攻撃に対する対処に関する判断材料となる情報を分析する分析システム、分析方法および分析プログラムに関する。
【背景技術】
【0002】
複数のコンピュータ等を含む情報処理システムにおいて、情報資産をサイバー攻撃等から守るためのセキュリティ対策をとることが求められている。セキュリティ対策としては、対象となるシステムの脆弱性等を診断し、必要に応じて脆弱性を取り除くこと等が挙げられる。
【0003】
セキュリティ診断の対象となるシステムを、診断対象システムと記す。また、診断対象システムのシステム構成等のデータを収集して、システム内の機器に潜む脆弱性を把握し対策を指示するシステムを、セキュリティ診断システムと記す。特許文献1~2には、セキュリティ診断システムの例が記載されている。
【0004】
特許文献1には、検査対象装置から収集された脆弱性情報をもとにリスク分析、セキュリティ対策やセキュリティポリシーの策定、セキュリティ監視の実践といった統合的なセキュリティ管理を実施できるセキュリティ管理システムが記載されている。
【0005】
また、特許文献2には、情報処理装置に対する脆弱性診断の負荷を低減できる診断装置が記載されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2005-242754号公報
【文献】特開2017-68691号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
セキュリティ診断システムが診断対象システムのシステム構成や診断対象システム内の機器に潜む脆弱性を全て把握することは困難である。その理由は、脆弱性を把握するために行われる診断対象システムのスキャンは診断対象システムにとって負荷が高く、頻繁に行われる処理ではないためである。
【0008】
そこで、本発明は、診断対象システムにおける攻撃可能性を少ない負荷で分析できる分析システム、分析方法および分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明による分析システムは、診断対象システムまたは診断対象システムに含まれる機器におけるセキュリティに関連する状態を示すファクトを基に攻撃グラフを生成する分析部と、生成された攻撃グラフが示す攻撃パスを構成するファクトのうち診断対象システムまたは機器の未知の情報を示すファクトである未確定ファクを抽出する抽出部を備えることを特徴とする。
【0010】
本発明による分析方法は、分析システムで実行される分析方法であって、分析システムが、診断対象システムまたは診断対象システムに含まれる機器におけるセキュリティに関連する状態を示すファクトを基に攻撃グラフを生成し、生成された攻撃グラフが示す攻撃パスを構成するファクトのうち診断対象システムまたは機器の未知の情報を示すファクトである未確定ファクを抽出することを特徴とする。
【0011】
本発明による分析プログラムは、コンピュータに、診断対象システムまたは診断対象システムに含まれる機器におけるセキュリティに関連する状態を示すファクトを基に攻撃グラフを生成する生成処理、および生成された攻撃グラフが示す攻撃パスを構成するファクトのうち診断対象システムまたは機器の未知の情報を示すファクトである未確定ファクを抽出する抽出処理を実行させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、診断対象システムにおける攻撃可能性を少ない負荷で分析できる。
【図面の簡単な説明】
【0013】
図1】本発明の第1の実施形態の分析システムの構成例を示すブロック図である。
図2】確定ファクト生成部103により生成される初期ファクトの例を示す説明図である。
図3】分析部107により生成される攻撃グラフの例を示す説明図である。
図4】分析部107により生成される攻撃グラフの他の例を示す説明図である。
図5】未確定ファクトが示す状態が真である確率を示すスコアの例を示す説明図である。
図6】未確定ファクトが示す状態が真である確率を示すスコアの他の例を示す説明図である。
図7】第1の実施形態の分析システム100による攻撃グラフ生成処理の動作を示すフローチャートである。
図8】第1の実施形態の分析システム100による追加スキャン実行処理の動作を示すフローチャートである。
図9】本発明の第1の実施形態の分析システムの他の構成例を示すブロック図である。
図10】分析システム100Aの使用例を示す説明図である。
図11】本発明による分析システムのハードウェア構成例を示す説明図である。
図12】本発明による分析システムの概要を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して、本発明の実施形態を説明する。
【0015】
第1の実施形態.
図1は、本発明の第1の実施形態の分析システムの構成例を示すブロック図である。第1の実施形態の分析システム100は、スキャナ101と、スキャン結果記憶部102と、確定ファクト生成部103と、未確定ファクト生成部104と、ファクト生成情報記憶部105と、初期ファクト記憶部106と、分析部107と、分析結果記憶部108と、可視化部109と、対策計画部110と、抽出部111と、指示部112とを備える。
【0016】
また、図1に示すように、分析システム100は、診断対象システム200と通信可能に接続されている。
【0017】
本実施形態における分析システム100は、診断対象システム200のセキュリティに関する状況を分析するためのシステムである。診断対象システム200は、分析システム100によるセキュリティ診断の対象になるシステムである。
【0018】
以下の実施形態において、診断対象システム200は、主に企業内のIT(Information Technology)システムであることを想定する。すなわち、診断対象システム200では、複数の機器が通信ネットワークを介して接続されている。なお、診断対象システム200は上記の例に限られず、例えば、OT(Operational Technology)システムを制御するためのシステムでもよい。
【0019】
診断対象システム200に含まれる機器として、パーソナルコンピュータ、サーバ、スイッチ、ルータ等が挙げられる。ただし、診断対象システム200に含まれる機器は、これらの例に限定されない。診断対象システム200には、通信ネットワークに接続される他の種類の機器も含まれる。また、診断対象システム200に含まれる機器は、物理的な機器であっても、仮想的な機器であってもよい。
【0020】
診断対象システム200に含まれる機器の数は、図1に示す例に限られず、特に限定されない。また、分析システム100は、診断対象システム200に含まれる機器の一つであってもよい。また、分析システム100は、クラウドコンピューティングのような形態で診断対象システム200の外部に設けられ、通信ネットワークを介して診断対象システム200と接続されてもよい。
【0021】
スキャナ101は、診断対象システム200内をスキャンすることによって、診断対象システム200に含まれる機器の構成情報を収集する機能を有する。なお、分析システム100は、スキャナ101の代わりに、分析システム100の外部に存在する専用スキャナを使用してもよい。
【0022】
スキャナ101は、一例として、予め定められたタイミングで機器の各構成情報を収集する。予め定められたタイミングには、毎日の予め定められた時刻や、機器の起動時等が含まれる。また、予め定められたタイミングには、その他のタイミングが含まれてもよい。
【0023】
スキャナ101が各構成情報を収集するタイミングや間隔は、診断対象システム200の規模や機器の具体的な機能等に応じて適宜定められればよい。また、そのように定められたタイミング以外のその他のタイミングで、スキャナ101が機器の各構成情報を収集してもよい。
【0024】
スキャナ101が収集する構成情報は、機器に含まれている脆弱性、機器に搭載されているOS(Operating System)およびOSのバージョン、機器に搭載されているハードウェアの構成情報、機器に搭載されているソフトウェア、ソフトウェアのバージョンおよびソフトウェアの設定等である。
【0025】
また、スキャナ101が収集する構成情報には、ユーザアカウントおよびアカウント権限、接続しているネットワークやIP(Internet Protocol) アドレス、機器と通信可能に接続されている機器や通信を行っている通信先の機器および通信内容、およびCPU(Central Processing Unit)の機種が含まれてもよい。
【0026】
さらに、スキャナ101が収集する構成情報には、機器の通信先の機器との間で授受する通信データやその通信データの授受に用いられた通信プロトコルの情報、機器のポートの状態を示す情報(どのポートが開いているか)、またはデータフロー情報が含まれてもよい。
【0027】
なお、通信データには、例えばその通信データの送信元や送信先の情報が含まれている。また、データフロー情報は、どの機器からどの機器にどのようなデータが転送されているかを示す情報である。データフロー情報には、通信データに相当する情報の他に、リムーバブルメディア等を介して転送されるデータに関する情報も含まれる。
【0028】
なお、スキャナ101が収集する構成情報の例は、上記の例に限定されない。スキャナ101は、機器の構成情報として、診断対象システム200において実行可能な攻撃を分析するために必要となる他の情報を収集してもよい。
【0029】
スキャナ101は、収集された構成情報をスキャン結果として、スキャン結果記憶部102に格納する。スキャン結果記憶部102は、構成情報を記憶する機能を有する。
【0030】
なお、スキャン結果記憶部102が記憶する構成情報は、スキャナ101から入力される情報に限られない。例えば、スキャン結果記憶部102には、図示しない機器の情報が予め格納されていてもよい。
【0031】
確定ファクト生成部103は、スキャン結果記憶部102に記憶されている構成情報を参照して、1つ以上の初期ファクトを生成する機能を有する。
【0032】
本実施形態において、ファクトは、後述する分析部107により参照可能な形式で記述された、診断対象システム200または診断対象システム200に含まれる機器における状態である。ファクトは、主に診断対象システム200または診断対象システム200に含まれる機器におけるセキュリティに関連する状態を示す。
【0033】
また、初期ファクトは、確定ファクト生成部103により生成されるファクト、および後述する未確定ファクト生成部104により生成されるファクトの総称である。
【0034】
すなわち、確定ファクト生成部103は、収集された構成情報を基に、診断対象システム200において初期ファクトを生成する。以下、スキャンで得られた構成情報から生成されたファクトを、確定ファクトとも呼ぶ。確定ファクト生成部103は、構成情報が示すファクトを確定ファクトとして生成する。
【0035】
図2は、確定ファクト生成部103により生成される初期ファクトの例を示す説明図である。図2(a)は、本例において想定する診断対象システム200を示す。
【0036】
図2(a)に示すように、本例における診断対象システム200は、機器Aと、機器Bと、機器Cとを含むことを想定する。機器Aと機器Cは、インターネットに接続されている。また、機器Bは、機器Aと機器Cにネットワークを介して接続されている。
【0037】
スキャナ101は、機器A、B、C各々の構成情報をそれぞれの機器から収集する。次いで、スキャナ101は、収集された各構成情報をスキャン結果記憶部102に格納する。確定ファクト生成部103は、スキャン結果記憶部102に記憶されている各機器に関する構成情報を用いて初期ファクトを生成する。
【0038】
確定ファクト生成部103は、例えば、ある機器にインストールされているOSおよびOSのバージョンを構成情報から参照して、対象の機器に参照されたバージョンのOSがインストールされている、という状況を表す初期ファクトを生成する。
【0039】
同様に、確定ファクト生成部103は、ある機器にインストールされているあるソフトウェアおよびソフトウェアのバージョンを構成情報から参照して、対象の機器に参照されたバージョンのソフトウェアがインストールされている、という状況を表す初期ファクトを生成してもよい。
【0040】
または、確定ファクト生成部103は、ある第一の機器と通信可能に接続されている第二の機器を構成情報から参照して、第一の機器と第二の機器が通信可能に接続されている、という状況を表す初期ファクトを生成してもよい。
【0041】
なお、確定ファクト生成部103が生成する初期ファクトは、上記の例に限られない。確定ファクト生成部103は、構成情報に含まれる任意の情報を初期ファクトとして生成してもよい。
【0042】
図2(b)は、上述した診断対象システム200に関して、確定ファクト生成部103が生成する初期ファクトの例を示す。図2(b)に示す例では、角丸四角形で表される要素の各々が、一つの初期ファクトを表す。
【0043】
図2(b)に示すように、確定ファクト生成部103は、初期ファクトとして、「機器Aがインターネットに接続されている」、「機器AにソフトウェアXがインストールされている」等を生成している。なお、生成される初期ファクトは、図2(b)に示す例に限られず、診断対象システム200または各機器に応じて適宜生成されればよい。
【0044】
確定ファクト生成部103は、生成された1つ以上の初期ファクトを、初期ファクト記憶部106に格納する。初期ファクト記憶部106は、初期ファクトを記憶する機能を有する。
【0045】
分析部107は、記憶されている1つ以上の初期ファクトを基に、攻撃グラフを生成する機能を有する。図3は、分析部107により生成される攻撃グラフの例を示す説明図である。
【0046】
本実施形態における攻撃グラフは、診断対象システム200において実行可能な攻撃の流れを表すことができるグラフである。すなわち、攻撃グラフは、診断対象システム200における、ある機器の脆弱性の有無等の状態や、ある機器において実行可能な攻撃から当該機器または他の機器において実行可能になる攻撃の関係を表すことができる。
【0047】
攻撃グラフは、ファクトをノードとし、ファクト間の関係をエッジとする有向グラフとして表される。有向グラフとして表される攻撃グラフにおいて、ファクトは、上述した初期ファクトであるか、または診断対象システム200に含まれる各機器において実行可能な攻撃を表すファクトである。分析部107が攻撃グラフを生成することによって、診断対象システム200において発生する可能性がある攻撃が分析可能になる。
【0048】
生成される攻撃グラフが用いられると、初期ファクトから攻撃の可能性を表すファクトまでの一連の流れを表す攻撃パスが導出可能になる。すなわち、分析部107は、診断対象システム200において実行可能な攻撃を導出できる。
【0049】
そして、攻撃パスが用いられると、診断対象システム200における攻撃の流れや、優先的に対策が求められる機器等、個々の機器をスキャンして脆弱性情報等を得るだけでは判断することが困難なセキュリティ上の事象が分析可能になる。
【0050】
分析部107は、一例として、1つ以上の初期ファクトを基に、分析ルールを用いて攻撃グラフを生成する。分析ルールは、1つ以上のファクトから別のファクトを導き出すためのルールである。分析ルールは、分析システム100に予め定められている。
【0051】
分析部107は、初期ファクトで表されるセキュリティに関連した状態が、分析ルールが示す条件に適合するか否かを判断する。分析ルールが示す全ての条件に初期ファクトが適合する場合、分析部107は、新たなファクトを導き出す。新たなファクトは、例えば、診断対象システム200に含まれる各機器で実行可能な攻撃の内容を表す。
【0052】
攻撃が可能であることを表す新たなファクトが導出されることは、診断対象システム200に含まれる機器が、新たなファクトの導出に用いられた初期ファクトで表される状態である場合に導出された新たなファクトで表される攻撃が実行可能であることを示している。換言すると、新たなファクトの導出に用いられたファクトは、新たなファクトで表される攻撃が実行可能になるための前提条件である。
【0053】
また、ある攻撃が実行可能であることを起因として、別の攻撃が実行可能になる場合がある。その場合、分析部107は、初期ファクトに加えて、上述したように新たに導出されたファクトを前提条件として、分析ルールを用いて新たなファクトの導出を繰り返し実行する。
【0054】
新たなファクトの導出は、例えば新たなファクトが導出されなくなるまで繰り返し実行される。新たなファクトの導出と共に、分析部107は、初期ファクトまたは新たなファクトをノードとし、新たなファクトの前提である初期ファクトを含むファクトから新たなファクトまでをエッジで接続することによって攻撃グラフを生成する。
【0055】
また、分析部107は、初期ファクトを、攻撃の実行に寄与するファクトと、攻撃の実行に寄与しないファクトに分類する。攻撃の実行に寄与するファクトは、初期ファクトのうち、攻撃グラフの生成に用いられたファクトである。また、攻撃の実行に寄与しないファクトは、初期ファクトのうち、攻撃グラフの生成に用いられなかったファクトである。
【0056】
以下、分析部107による攻撃グラフの生成例を、図3を参照して具体的に説明する。診断対象システム200において、図3に示す初期ファクトが生成されていることを想定する。
【0057】
また、「ある機器がインターネットに接続されている」かつ「インターネットに接続されている機器のOSにリモートコード実行可能な脆弱性が存在する」場合に、「攻撃者が当該インターネットに接続されている機器上でコードを実行可能である」という関係が分析ルールとして予め定められていると想定する。
【0058】
図3を参照すると、初期ファクトから、機器Aに関して上記の分析ルールの条件が全て満たされることが分かる。よって、分析部107は、「攻撃者が機器Aにおいてコード実行可能」という新たなファクトを導出する。
【0059】
また、分析部107は、初期ファクトから導出された新たなファクトまでの攻撃パスを表す攻撃グラフを生成する。具体的には、分析部107は、2つの初期ファクトそれぞれから実行可能な攻撃を表すファクトへ向かうエッジで、2つの初期ファクトそれぞれと攻撃を表すファクトとを接続する。
【0060】
次に、攻撃が実行可能になったために別の攻撃が実行可能になる場合の分析部107による攻撃グラフの生成例を説明する。
【0061】
図3に示す例で、初期ファクト、および「攻撃者が機器Aにおいてコード実行可能」というファクトが生成されていることを想定する。また、「ある第一の機器にインストールされているソフトウェアYにリモートコード実行可能な脆弱性が存在」かつ、「第一の機器と第二の機器が通信可能に接続されている」かつ、「攻撃者が第二の機器においてコード実行可能」である場合、「攻撃者が第一の機器においてコード実行可能」という関係が分析ルールとして予め定められていると想定する。
【0062】
図3を参照すると、診断対象システム200において、初期ファクトから、「機器BにインストールされているソフトウェアYにリモートコード実行可能な脆弱性が存在」、「機器Aと機器Bが通信可能に接続されている」ことが分かる。また、上述したように「攻撃者が機器Aにおいてコード実行可能」なことが導き出されている。すなわち、分析ルールに含まれる条件が全て満たされることが分かる。換言すると、「攻撃者が機器Bにおいてコード実行可能」であることが分かる。
【0063】
よって、分析部107は、「攻撃者が機器Bにおいてコード実行可能」という新たなファクトを導出する。また、分析部107は、初期ファクトから導出された新たなファクトまでの攻撃パスを表す攻撃グラフを生成する。
【0064】
具体的には、分析部107は、2つの初期ファクトそれぞれと、「攻撃者が機器Aにおいてコード実行可能」というファクトから実行可能な攻撃を表すファクトへ向かうエッジで、3つのファクトそれぞれと攻撃を表すファクトとを接続する。
【0065】
以上の処理により、図3に示す攻撃グラフが生成される。すなわち、初期ファクトから「攻撃者が機器Bにおいてコード実行可能」までの一連の流れが攻撃パスとして表される。
【0066】
次に、分析部107は、初期ファクトを、攻撃の実行に寄与するファクトと、攻撃の実行に寄与しないファクトに分類する。図3を参照すると、初期ファクトのうち、「機器Aがインターネットに接続されている」、「機器AのOSにリモートコード実行可能な脆弱性が存在」、「機器Aと機器Bが通信可能に接続されている」、および「機器BにインストールされているソフトウェアYにリモートコード実行可能な脆弱性が存在」が、攻撃グラフの生成に用いられている。
【0067】
よって、分析部107は、「機器Aがインターネットに接続されている」、「機器AのOSにリモートコード実行可能な脆弱性が存在」、「機器Aと機器Bが通信可能に接続されている」、および「機器BにインストールされているソフトウェアYにリモートコード実行可能な脆弱性が存在」を攻撃の実行に寄与するファクトに分類する。
【0068】
同様に、図3を参照すると、初期ファクトのうち、「機器AにソフトウェアXがインストールされている」、および「機器Cがインターネットに接続されている」は、攻撃グラフの生成に用いられていない。よって、分析部107は、「機器AにソフトウェアXがインストールされている」、および「機器Cがインターネットに接続されている」を攻撃の実行に寄与しないファクトに分類する。
【0069】
なお、分析部107が攻撃グラフを生成する手順は、上述した手順に限られない。分析部107は、上述した手順以外の手順に従って、初期ファクトを基に攻撃グラフを生成してもよい。また、分析部107は、初期ファクトから診断対象システム200において実行可能な攻撃または攻撃の流れを求めるための上記の手法以外の別の手法を用いて分析してもよい。
【0070】
なお、診断対象システム200によっては、分析部107が攻撃パスを含む攻撃グラフを生成できない場合が想定される。例えば、診断対象システム200の各機器に対して十分なセキュリティ対策が実行されており、攻撃が実行可能となる前提を表す初期ファクトが生成されない場合、意味のある攻撃パスを含むような攻撃グラフが生成されないことが想定される。
【0071】
以上のような手順に従って、分析部107は、攻撃グラフを生成する。分析部107は、生成された攻撃グラフを示す情報を分析結果記憶部108に格納する。分析結果記憶部108は、攻撃グラフを示す情報を記憶する機能を有する。
【0072】
以下、上記の課題を解決する本実施形態の特徴を説明する。上述したように、診断対象システム200の構成情報のうち、スキャナ101が収集可能な構成情報は限られている。その理由の1つは、診断対象システム200に大きな負荷がかかるため、スキャナ101が任意のデータを送信するようなアクティブスキャンを実行することが困難であるからである。
【0073】
例えば、工場内のバルブの開閉等を制御するために使用されているPLC(Programmable Logic Controller)では、多少負荷がかかるだけでも不具合が発生する可能性がある。よって、スキャナ101は、PLC に対してパケットを送信して応答内容を分析するポートスキャンを実行できない。
【0074】
また、例えば負荷が軽微である簡易なスキャンであればスキャン可能な機器に対しても、詳細な情報を取得するためのスキャンの実行は、負荷が重いため、機器のユーザに許容されない場合がある。ユーザに許容されない場合、スキャナ101は、機器を詳細にスキャンできない。
【0075】
また、他の理由は、スキャナ101が通信ネットワークを流れている業務トラフィック等を受信するパッシブスキャンで構成情報を収集する場合、収集が行われる期間中に、全ての業務トラフィックが流れるとは限らないためである。例えば、スキャナ101は、障害対応の内容を示す業務トラフィックや月次更新の内容を示す業務トラフィック等を、所定の期間中に収集できない可能性が高い。
【0076】
また、他の理由は、運用上の制約等のため使用可能なスキャナ製品やスキャン方式が限られている場合、スキャナ101が十分な情報を収集できないためである。例えば、契約の都合上、管理者がスキャナ101として特定の種類のスキャナしか使用できない場合がある。
【0077】
また、他の理由は、未知の脆弱性や修正プログラムが未提供である脆弱性をスキャナ101が検知できないためである。以上のように、収集される構成情報が限られている場合、攻撃パスが網羅的に得られない可能性がある。
【0078】
図4は、分析部107により生成される攻撃グラフの他の例を示す説明図である。図4に示す初期ファクト60~62は、確定ファクト生成部103により生成された確定ファクトである。また、初期ファクト63は、スキャンで得られた構成情報が示さず確定ファクト生成部103により生成されなかったが、診断対象システム200に含まれる機器の状態を示すファクトである。
【0079】
初期ファクト63が生成されないと、分析部107は、初期ファクト62と初期ファクト63から攻撃65へ至る実行可能な攻撃の攻撃パスを導出できない。また、ファクト64とファクト65から攻撃66へ至る実行可能な攻撃の攻撃パスも導出できない。図4に示す破線の矢印は、矢印が含まれる攻撃パスが導出不可能であることを意味する。
【0080】
本実施形態のスキャナ101は、特に、後述する指示部112からスキャンの指示を受けていないとき、簡易スキャンのみを行う。また、指示部112からスキャンの指示を受けたとき、スキャナ101は、指示部112の指示に従って追加スキャンを行う。
【0081】
本実施形態における簡易スキャンは、上述したスキャナ101が収集する構成情報のうち、代表的な構成情報のみを収集するスキャンである。簡易スキャンで収集される構成情報は、例えば、機器に搭載されているOSおよびOSのバージョン、機器に搭載されているソフトウェアおよびソフトウェアのバージョンである。簡易スキャンは、一般的に、診断対象システム200に対する負荷が比較的小さい。また、簡易スキャンに要する時間は、比較的短い。
【0082】
また、本実施形態における追加スキャンは、上述したスキャナ101が収集する構成情報のうち、指示部112からスキャンを指示されたファクトに対応する構成情報を収集するスキャンである。追加スキャンで収集される構成情報は、例えば、ソフトウェアの設定、機器の通信先の機器との間で授受される通信データやその通信データの授受に用いられたプロトコルの情報、機器のポートの状態を示す情報、またはデータフロー情報である。
【0083】
なお、スキャナ101が収集する構成情報のうち、簡易スキャンで収集される構成情報と、追加スキャンで適宜収集される構成情報は、上記の例に限られない。簡易スキャンで収集される構成情報と追加スキャンで適宜収集される構成情報は、診断対象システム200や診断対象システム200内の各機器に応じて適宜区分されればよい。
【0084】
本実施形態の未確定ファクト生成部104は、診断対象システム200、または診断対象システム200に含まれる機器の未知の情報を示すファクト(以下、未確定ファクトと呼ぶ。)を生成する機能を有する。未確定ファクトは、例えば、スキャナ101によるスキャンで得られた構成情報から生成することが困難なファクトである。
【0085】
図4に示す斜線模様のファクトは、未確定ファクトであることを意味する。なお、分析部107は、未確定ファクトも、攻撃の実行に寄与するファクトと、攻撃の実行に寄与しないファクトに分類する。
【0086】
未確定ファクトを生成する1つ目の方法として、未確定ファクト生成部104は、例えば一般的に考えられる状態を未確定ファクトとして生成する。例えば、未確定ファクト生成部104は、デフォルトでインストールされているソフトウェアに関して、ソフトウェアがインストールされているという未確定ファクトを生成する。
【0087】
具体例として、未確定ファクト生成部104は、OSがWindows (登録商標)であるPCに関して、.NET Framework(登録商標)がインストールされているという未確定ファクトを生成する。
【0088】
また、未確定ファクト生成部104は、デフォルト設定や、デフォルト設定ではないがよく用いられる設定に対応する未確定ファクトを生成する。
【0089】
また、未確定ファクト生成部104は、診断対象システム200に含まれる機器の構成と類似した構成のホスト、OS、またはソフトウェアを外部データベースにおいて検索し、検索されたホスト等に関する情報に対応する未確定ファクトを生成する。
【0090】
ファクト生成情報記憶部105は、ファクト生成情報を記憶する機能を有する。ファクト生成情報は、上述した一般的に考えられる状態を示す情報である。具体的には、ファクト生成情報は、デフォルトでインストールされているソフトウェア、デフォルト設定の内容、ホストの一般的な構成等を示す。
【0091】
未確定ファクト生成部104は、ファクト生成情報記憶部105に記憶されているファクト生成情報を参照して未確定ファクトを生成する。なお、ファクト生成情報記憶部105は、分析システム100の外部に存在していてもよい。
【0092】
なお、未確定ファクト生成部104は、生成された未確定ファクトが示す状態が真である確率をスコアとして算出し、算出されたスコアを用いて未確定ファクトを1つ以上の初期ファクトに含めるか否かを判断してもよい。
【0093】
例えば、未確定ファクト生成部104は、スコアが閾値以上の未確定ファクトを1つ以上の初期ファクトに含めてもよい。また、未確定ファクト生成部104は、別途管理者等から与えられる値N(Nは1以上の整数)を用いて、スコアが上位1番目からN番目までのN個の未確定ファクトを1つ以上の初期ファクトに含めてもよい。
【0094】
なお、分析部107は、算出されたスコアをファクトが示す状態が真である確率として扱い、攻撃パスを分析する時にスコアを用いて攻撃の実現可能性を計算してもよい。
【0095】
また、未確定ファクトが示す状態が真である確率を示すスコアは、管理者により予め設定されていてもよい。図5は、未確定ファクトが示す状態が真である確率を示すスコアの例を示す説明図である。
【0096】
図5(a)に示すように、管理者は、各ソフトウェアの各設定項目に関して、デフォルト値やよく知られた値が設定されている可能性を、予めスコアとして定義する。例えば、ソフトAの設定Xにデフォルト値が設定されている可能性は「0.9 」である。
【0097】
また、図5(b)に示すように、管理者は、未確定ファクトが示す状態が真である確率を示すスコアを、値ではなくランクとして設定してもよい。図5(b)に示す例では、ランクA、ランクB、ランクCの順に高いスコアとしてランクが設定されている。
【0098】
未確定ファクトを生成する2つ目の方法として、未確定ファクト生成部104は、スキャン結果を基にスキャン結果に含まれていない環境の情報を推定することによって、未確定ファクトを生成する。すなわち、未確定ファクト生成部104は、機器の構成情報を基に未確定ファクトを生成する。
【0099】
例えば、未確定ファクト生成部104は、各ホストの空きポート、および各ホスト間の到達性に関するスキャン結果から、ホスト間にデータフローが存在するという未確定ファクトを生成してもよい。データフローとして、例えばファイル共有が考えられる。
【0100】
なお、到達性に関するスキャン結果は、各ホストから別の各ホストに対して通信が可能な状態であるか否かを示す。さらに、到達性に関するスキャン結果は、通信が可能である送信元ポート、送信先ポート等の情報を含んでもよい。到達性に関するスキャン結果は、具体的にはネットワーク構成、ネットワークファイアウォールのルール、ホストファイアウォールのルール等を示す。
【0101】
また、未確定ファクト生成部104は、診断対象システム200に含まれる構成要素の類似性、または構成要素の関連性に基づいて未確定ファクトを生成してもよい。なお、構成要素には、ホスト、OS、ソフトウェア等が含まれる。
【0102】
例えば、未確定ファクト生成部104は、あるホストにインストールされているOS、ソフトウェアの最終更新日が得られている場合、当該ホストまたは他のホストにインストールされているOS、ソフトウェアも同じ日が最終更新日である、という未確定ファクトを生成してもよい。
【0103】
また、未確定ファクト生成部104は、構成や機能が類似しているホストAとホストBに関して、ホストAのスキャン結果は得られているがホストBのスキャン結果が得られていない場合、ホストAのスキャン結果の内容を基にホストBに関する未確定ファクトを生成してもよい。ホストAとホストBは、例えばロードバランサの対象の2つのホストである。
【0104】
また、未確定ファクト生成部104は、データフローが観測されていない2つのホストにPDF(Portable Document Format) ファイル等の同一のファイルが存在する場合、ホスト間でのファイル共有のデータフローを示す未確定ファクトを生成してもよい。その理由は、ファイル共有が行われた可能性があるためである。
【0105】
ただし、同一のファイルがシステムディレクトリ内のファイルである場合、未確定ファクト生成部104は、未確定ファクトを生成しなくてもよい。その理由は、システムディレクトリ内のファイルは元々システムが備えるファイルであり、ファイル共有が行われた可能性が低いためである。
【0106】
なお、未確定ファクト生成部104は、生成された未確定ファクトが示す状態が真である確率をスコアとして算出し、算出されたスコアを用いて未確定ファクトを1つ以上の初期ファクトに含めるか否かを判断してもよい。
【0107】
また、未確定ファクトが示す状態が真である確率を示すスコアは、管理者により予め設定されていてもよい。図6は、未確定ファクトが示す状態が真である確率を示すスコアの他の例を示す説明図である。
【0108】
図6(a)に示すように、管理者は、推定の方法ごとに、予め所定のスコアを設定する。例えば、空きポートと到達性から推定されたデータフローが存在する確率は「0.5 」である。
【0109】
また、図6(b)に示すように、管理者は、未確定ファクトが示す状態が真である確率を示すスコアを、値ではなくランクとして設定してもよい。図6(b)に示す例では、ランクC、ランクDの順に高いスコアとしてランクが設定されている。
【0110】
未確定ファクトを生成する3つ目の方法として、未確定ファクト生成部104は、スキャン結果を基に未知の脆弱性が含まれている可能性を統計的に判断することによって、未確定ファクトを生成してもよい。
【0111】
例えば、未確定ファクト生成部104は、スキャン結果から判明しているインストール済みのソフトウェアに関して、以下に示す統計情報から未知の脆弱性が存在するか否か、存在する場合にどのような脆弱性であるかを判断する。脆弱性の種類は、例えば任意コード実行、情報漏洩、DoS(Denial of Service)である。
【0112】
例えば、未確定ファクト生成部104は、インストール済みのソフトウェアのソフトウェアスイートやベンダの脆弱性の発見頻度を基に統計的に判断する。例えば、未確定ファクト生成部104は、ソフトウェアスイートごと、またはベンダごとの脆弱性の発見頻度に関する統計情報を参照して、診断対象システム200内の各ソフトウェアのソフトウェアスイートまたはベンダを基に、当該ソフトウェアに脆弱性が含まれる確率を算出する。
【0113】
また、未確定ファクト生成部104は、ソフトウェアスイートおよびベンダごとの脆弱性の発見頻度に関する統計情報を参照して、診断対象システム200内の各ソフトウェアのソフトウェアスイートおよびベンダを基に、当該ソフトウェアに脆弱性が含まれる確率を算出してもよい。
【0114】
次いで、未確定ファクト生成部104は、算出された確率が所定の閾値を超えている場合に当該ソフトウェアに脆弱性が存在すると判断する。その理由は、過去に多くの脆弱性が発見されているソフトウェアと、ソフトウェアスイートとベンダのうち少なくともいずれかが同じソフトウェアには、未知の脆弱性が存在している可能性が高いためである。すなわち、未確定ファクト生成部104は、ソフトウェアスイートやベンダの脆弱性の発見頻度に基づいて未確定ファクトを生成する。
【0115】
また、未確定ファクト生成部104は、インストール済みのソフトウェアの更新頻度を基に統計的に判断する。例えば、未確定ファクト生成部104は、当該ソフトウェアの更新頻度が所定の閾値を超えている場合に、当該ソフトウェアに未知の脆弱性が存在すると判断する。その理由は、頻繁に更新が行われているソフトウェアほど、新たな脆弱性が混入されている可能性が高いためである。すなわち、未確定ファクト生成部104は、構成情報が示すソフトウェアに関する更新頻度に基づいて未確定ファクトを生成する。
【0116】
また、未確定ファクト生成部104は、インストール済みのソフトウェアに関するソフトウェアバグ収束曲線(単にバグ曲線とも呼ぶ。)を基に統計的に判断する。対象のソフトウェアから検出されたバグの数とソフトウェアバグ収束曲線とを基に、未確定ファクト生成部104は、ソフトウェアに未知の脆弱性が存在するか否かを判断する。すなわち、未確定ファクト生成部104は、構成情報が示すソフトウェアに関するバグ曲線に基づいて未確定ファクトを生成する。
【0117】
また、未確定ファクト生成部104は、インストール済みのソフトウェアの規模を基に統計的に判断する。例えば、未確定ファクト生成部104は、ソフトウェアの規模と内包されていた脆弱性の有無に関する統計情報を参照して、診断対象システム200内の各ソフトウェアの規模を基に、当該ソフトウェアに脆弱性が含まれる確率を算出する。
【0118】
次いで、未確定ファクト生成部104は、算出された確率が所定の閾値を超えている場合に当該ソフトウェアに脆弱性が存在すると判断する。その理由は、規模が大きくなるほど、ソフトウェアには脆弱性が含まれやすくなるためである。すなわち、未確定ファクト生成部104は、ソフトウェアに関する規模に基づいて未確定ファクトを生成する。
【0119】
また、未確定ファクト生成部104は、インストール済みのソフトウェアがOSS(Open Source Software) である場合、OSS 開発コミュニティの人数を基に統計的に判断する。
【0120】
例えば、未確定ファクト生成部104は、ソフトウェアの開発コミュニティの人数と内包されていた脆弱性の有無に関する統計情報を参照して、診断対象システム200内の各ソフトウェアの開発コミュニティの人数を基に、当該ソフトウェアに脆弱性が含まれる確率を算出する。
【0121】
次いで、未確定ファクト生成部104は、算出された確率が所定の閾値を超えている場合に当該ソフトウェアに脆弱性が存在すると判断する。ソフトウェアのOSS 開発コミュニティの人数が多いほど、デバッグやメンテナンスが十分行われている確率が高いためである。
【0122】
また、未確定ファクト生成部104は、インストール済みのソフトウェアのサポートが終了している場合、サポート終了からの経過時間を基に統計的に判断する。サポートが終了すると、ソフトウェアは、ベンダにより管理されなくなる。また、サポート終了からの経過時間が長くなるほど、ソフトウェアに脆弱性が発見されている確率が高くなる。よって、経過時間が閾値を超えたら、未確定ファクト生成部104は、ソフトウェアに未知の脆弱性が存在すると判断する。
【0123】
なお、未確定ファクト生成部104は、ソフトウェアに含まれている未知の脆弱性の種類も統計的に判断してもよい。例えば、未確定ファクト生成部104は、上述したような脆弱性に関する統計情報であって、さらに脆弱性の種類ごとに集計された統計情報を用いてもよい。
【0124】
脆弱性の種類ごとに集計された統計情報を用いる場合、未確定ファクト生成部104は、診断対象システム200内の各ソフトウェアに脆弱性が含まれている確率を脆弱性の種類ごとに算出する。次いで、未確定ファクト生成部104は、算出された確率が所定の閾値を超えている場合に算出された確率に関する脆弱性が当該ソフトウェアに存在すると判断する。
【0125】
ファクト生成情報記憶部105には、上述したような統計情報と所定の閾値が予め記憶されている。統計情報には、統計的な判断の対象と、未知の脆弱性との対応関係が含まれている。未確定ファクト生成部104は、記憶されている対応関係を参照して、存在する未知の脆弱性を判断する。
【0126】
なお、未確定ファクト生成部104は、生成された未確定ファクトが示す状態が真である確率をスコアとして算出し、算出されたスコアを用いて未確定ファクトを1つ以上の初期ファクトに含めるか否かを判断してもよい。
【0127】
未確定ファクト生成部104は、上記の方法で未確定ファクトを生成する。しかし、未確定ファクト生成部104による未確定ファクトの生成方法は、上記の方法に限られない。例えば、未確定ファクト生成部104は、上記の方法を組み合わせて未確定ファクトを生成してもよい。
【0128】
また、未確定ファクト生成部104は、例えば別途管理者等から与えられる値N(Nは1以上の整数)を用いてもよい。未確定ファクト生成部104は、統計情報を基に各ソフトウェアに脆弱性が含まれる確率を計算し、計算された確率が上位1番目からN番目までのソフトウェアに脆弱性が含まれると判断してもよい。
【0129】
なお、上述したような未確定ファクトを生成する条件が満たされるか否かは、診断対象システム200等に依存する。条件が満たされない場合、未確定ファクトは、生成されない可能性もある。
【0130】
本実施形態の初期ファクト記憶部106に記憶されている1つ以上の初期ファクトには、未確定ファクト生成部104により生成された未確定ファクトが含まれ得る。また、本実施形態の分析部107は、未確定ファクトも存在していると仮定して攻撃パスを分析する。
【0131】
すなわち、分析部107は、確定ファクトと所定の条件を満たす未確定ファクトとが含まれる複数のファクトのうち1つ以上のファクトが示す状態が、別のファクトを導き出すためのルールである分析ルールが示す条件に適合するか否かを判断する。所定の条件は、例えば未確定ファクトが示す状態が真である確率が所定の閾値以上であることである。
【0132】
別のファクトを導き出す処理を繰り返し実行することによって、分析部107は、確定ファクトと未確定ファクトの少なくともいずれか1つと、分析ルールとを基に、実行可能な攻撃を導出する。さらに、分析部107は、導出された攻撃と、生成された確定ファクトと生成された未確定ファクトの少なくともいずれか1つと、分析ルールとを基に、実行可能な新たな攻撃を導出する。
【0133】
また、分析部107が生成する攻撃グラフには、各ファクトが確定ファクトと未確定ファクトのいずれであるかを示す情報が付与されている。
【0134】
可視化部109は、分析結果記憶部108に記憶されている情報が示す、生成された攻撃グラフを表示手段(図示せず)に表示する機能を有する。なお、可視化部109は、分析システム100に備えられていなくてもよい。
【0135】
対策計画部110は、導出された攻撃パスに基づいて、攻撃を実行不可能にするために、診断対象システム200のどこにどのような対策を施せばよいか計画する機能を有する。すなわち、対策計画部110は、分析部107により実行可能と判定された攻撃に対する対策を計画する。
【0136】
例えば、対策計画部110は、所定のホストのOSを更新する、所定のネットワーク境界にファイアウォールを追加する等の対策を出力する。なお、対策計画部110は、分析システム100に備えられていなくてもよい。
【0137】
抽出部111は、1つ以上の初期ファクトに含められた未確定ファクトのうち、攻撃の実行に寄与する未確定ファクトを抽出する機能を有する。具体的には、抽出部111は、分析結果記憶部108に記憶されている攻撃グラフが示す攻撃パスを構成する確定ファクトと未確定ファクトのうち、未確定ファクトを抽出する。
【0138】
抽出部111は、抽出された未確定ファクトを提示する。例えば、抽出部111は、抽出された未確定ファクトの確認を管理者に依頼する。未確定ファクトの内容が運用に関する内容である場合、管理者は、未確定ファクトの真偽を判断できる可能性がある。
【0139】
また、抽出部111は、抽出された未確定ファクトのうち追加スキャンの対象とする未確定ファクトを選択して、選択された未確定ファクトのスキャンをスキャナ101に指示する。例えば、抽出部111は、攻撃の実行に寄与する未確定ファクトのうち、特に重要なファクトを追加スキャンの対象に指定して、スキャンをスキャナ101に指示する。
【0140】
重要なファクトとして、例えば未確定ファクトが示す状態が真である確率が、ある第一の閾値以上かつ第二の閾値以下である未確定ファクトが考えられる。状態が真である確率が十分に大きい未確定ファクトは、追加スキャンされなくとも状態が真であるとみなされるため、追加スキャンの対象から除外される。また、状態が真である確率が十分に小さい未確定ファクトは、追加スキャンされなくとも状態が偽であるとみなされるため、やはり追加スキャンの対象から除外される。なお、第一の閾値および第二の閾値は、別途管理者等から与えられる値である。
【0141】
また、重要なファクトとして、例えば存在の有無により攻撃の成否が変化する未確定ファクト、すなわち攻撃の成否に関わる未確定ファクトや、所定の数以上の攻撃パスに影響を与えている未確定ファクトが考えられる。例えば、一方の条件が確定ファクトであるOR条件の他方の条件である未確定ファクトに関して、有無によらずOR条件が成立するので、抽出部111は、重要ファクトに指定しなくてもよい。
【0142】
なお、OR条件は、攻撃パスにおいて各条件が論理和の関係、すなわち各条件が少なくとも1つ成立するときに攻撃が実行可能となり、各条件が全て成立しないときに攻撃が実行不可能となる条件を意味する。
【0143】
また、重要なファクトとして、例えば追加スキャンにより取得される新たな情報で真偽が明らかになることが予測される未確定ファクトが考えられる。抽出部111は、未知の脆弱性のようにスキャンが不可能、またはスキャンが著しく困難なファクトに対する追加スキャンの指示を抑制する。
【0144】
さらに、抽出部111は、スキャナ101の特性を考慮して、得られる新たな情報で未確定ファクトの真偽を明らかにできるか否かを判断してもよい。スキャナ101が診断対象システム200に含まれる機器であるホスト内にインストールされているエージェントであれば、抽出部111は、ホストにインストールされているソフトウェアの設定等が取得できると判断する。
【0145】
また、スキャナ101が診断対象システム200に含まれる機器であるホストに通信ネットワークを介して通信可能に接続されたアプライアンス等であれば、抽出部111は、ホストにインストールされているソフトウェアの設定等の取得が困難であると判断する。
【0146】
また、複数のスキャナが使用可能である場合、抽出部111は、得られる新たな情報で未確定ファクトの真偽を明らかにできる可能性が高いスキャナに対して、追加スキャンの指示を出力するように指示部112に指示してもよい。
【0147】
指示部112は、抽出部111により選択された未確定ファクトのスキャンの指示をスキャナ101に入力する。
【0148】
[動作の説明]
以下、本実施形態の分析システム100の攻撃グラフを生成する動作を図7を参照して説明する。図7は、第1の実施形態の分析システム100による攻撃グラフ生成処理の動作を示すフローチャートである。
【0149】
最初に、スキャナ101は、診断対象システム200をスキャンする(ステップS101)。
【0150】
ステップS101で、スキャナ101は、簡易スキャンで診断対象システム200に含まれる機器の構成情報を収集する。次いで、スキャナ101は、収集された構成情報をスキャン結果記憶部102に格納する(ステップS102)。
【0151】
次いで、確定ファクト生成部103は、スキャン結果記憶部102に記憶されている構成情報を参照して、確定ファクトを生成する。次いで、確定ファクト生成部103は、生成された確定ファクトを、初期ファクト記憶部106に格納する(ステップS103)。
【0152】
また、未確定ファクト生成部104は、未確定ファクトを生成する。次いで、未確定ファクト生成部104は、生成された未確定ファクトを、初期ファクト記憶部106に格納する(ステップS104)。
【0153】
なお、未確定ファクト生成部104は、未確定ファクトを生成する時、スキャン結果記憶部102に記憶されている構成情報と、ファクト生成情報記憶部105に記憶されているファクト生成情報を参照してもよい。
【0154】
次いで、分析部107は、初期ファクト記憶部106に記憶されている1つ以上の初期ファクトを基に、実行可能な攻撃の攻撃パスを導出することによって攻撃グラフを生成する(ステップS105)。次いで、分析部107は、生成された攻撃グラフを示す情報を、分析結果記憶部108に格納する(ステップS106)。
【0155】
次いで、可視化部109は、分析結果記憶部108に記憶されている情報が示す攻撃グラフを表示手段に表示する(ステップS107)。
【0156】
次いで、対策計画部110は、分析結果記憶部108に記憶されている情報が示す導出された攻撃パスに基づいて、優先的に対策した方が好ましい項目が含まれる対策計画を生成する(ステップS108)。
【0157】
対策計画を生成した後、分析システム100は、攻撃グラフ生成処理を終了する。なお、ステップS107、S108の各処理は、省略されてもよい。
【0158】
次に、本実施形態の分析システム100の追加スキャンを実行する動作を図8を参照して説明する。図8は、第1の実施形態の分析システム100による追加スキャン実行処理の動作を示すフローチャートである。
【0159】
最初に、抽出部111は、分析結果記憶部108に記憶されている攻撃グラフが示す攻撃パスを構成するファクトのうち、未確定ファクトを抽出する(ステップS201)。
【0160】
次いで、抽出部111は、抽出された未確定ファクトを管理者に向けて提示する(ステップS202)。なお、ステップS202の処理は、省略されてもよい。
【0161】
次いで、抽出部111は、抽出された未確定ファクトのうち追加スキャンの対象とする未確定ファクトを選択する(ステップS203)。
【0162】
次いで、抽出部111は、選択された未確定ファクトが追加スキャンの対象であることを指示部112に入力する(ステップS204)。
【0163】
次いで、指示部112は、入力された対象の未確定ファクトを含む情報の収集を実行するようにスキャナ101に指示する(ステップS205)。
【0164】
次いで、スキャナ101は、対象の未確定ファクトを含む情報を収集する(ステップS206)。スキャナ101は、追加で情報を収集し、収集された情報をスキャン結果記憶部102に格納する(ステップS207)。格納した後、分析システム100は、追加スキャン実行処理を終了する。
【0165】
なお、追加スキャン実行処理が終了した後、確定ファクト生成部103は、再度確定ファクトを生成してもよい。再度確定ファクトが生成された後、分析部107は、再度攻撃パスを導出してもよい。
【0166】
本実施形態の分析システム100は、最終的に追加スキャンの結果も踏まえた上で、攻撃の成立可否を判断する。
【0167】
[効果の説明]
運用上の制約により診断対象システムのスキャンを実行可能な期間が制限されているため、診断対象システム内の機器のうちスキャンされていない機器が生じてしまう場合がある。その結果、セキュリティ診断システムが診断対象システムにおける攻撃可能性を分析できない可能性がある。
【0168】
上記の構成により、本実施形態の分析システム100は、簡易スキャンで収集した構成情報に基づいた分析結果を踏まえて、選択的に追加スキャンを行う。よって、収集可能な全ての構成情報を収集する場合と比較して、本実施形態の分析システム100は、診断対象システムへの負荷がより小さく、また制限された期間内により多くの機器を対象としたスキャンを実行可能である。
【0169】
すなわち、本実施形態の分析システム100は、診断対象システムにおける攻撃可能性を少ない負荷で、かつより多くの機器を含めて分析できる。
【0170】
(変形例)
以下、本実施形態の変形例を説明する。図9は、本発明の第1の実施形態の分析システムの他の構成例を示すブロック図である。
【0171】
図9に示す分析システム100Aは、スキャナ101と、分析結果記憶部108と、可視化部109と、対策計画部110と、抽出部111と、指示部112とを備える。すなわち、分析システム100Aは、図1に示す分析システム100と異なり、スキャン結果記憶部102と、確定ファクト生成部103と、未確定ファクト生成部104と、ファクト生成情報記憶部105と、初期ファクト記憶部106と、分析部107とを備えていない。なお、分析結果記憶部108には、予め攻撃グラフを示す情報が格納されている。
【0172】
また、分析システム100Aは、図8に示す追加スキャン実行処理を実行するが、図7に示す攻撃グラフ生成処理を実行しない。すなわち、分析システム100Aは、攻撃の実行に寄与する未確定ファクトの追加スキャンのみを行う。なお、確定ファクトも、当該攻撃の実行に寄与している可能性がある。
【0173】
図10は、分析システム100Aの使用例を示す説明図である。図10に示すように、本実施形態の分析システム100Aは、社内ネットワークの一部として使用されている。
【0174】
図10に示すように、分析システム100Aは、通信ネットワーク300に接続されている。また、複数の機器も、通信ネットワーク300にそれぞれ接続されている。
【0175】
なお、通信ネットワーク300には、数千台以上の機器が接続されていてもよい。
【0176】
また、図10に示すように、社内ネットワークは、インターネットを介して社外サーバと通信可能に接続されている。なお、社内ネットワークとインターネットとは、ゲートウェイ(図10に示すGW)で接続されている。
【0177】
本例では、図10に示す複数の機器が、診断対象システム200に含まれる機器に相当する。分析システム100Aは、図10に示す複数の機器に対して、攻撃の実行に寄与する未確定ファクトの追加スキャンを実行する。なお、確定ファクトも、当該攻撃の実行に寄与している可能性がある。
【0178】
以下、本実施形態の分析システムのハードウェア構成の具体例を説明する。図11は、本発明による分析システムのハードウェア構成例を示す説明図である。
【0179】
図11に示す分析システムは、CPU 11と、主記憶部12と、通信部13と、補助記憶部14とを備える。また、ユーザが操作するための入力部15や、ユーザに処理結果または処理内容の経過を提示するための出力部16を備える。
【0180】
分析システムは、一例として、各構成要素が有する機能を提供するプログラムを図11に示すCPU 11が実行することによって、ソフトウェアにより実現される。
【0181】
すなわち、CPU 11が補助記憶部14に格納されているプログラムを、主記憶部12にロードして実行し、分析システムの動作を制御することによって、各機能がソフトウェアにより実現される。
【0182】
主記憶部12は、データの作業領域やデータの一時退避領域として用いられる。主記憶部12は、例えばRAM(Random Access Memory) である。スキャン結果記憶部102、ファクト生成情報記憶部105、初期ファクト記憶部106、および分析結果記憶部108は、主記憶部12で実現される。
【0183】
通信部13は、有線のネットワークまたは無線のネットワーク(情報通信ネットワーク)を介して、周辺機器との間でデータを入力および出力する機能を有する。スキャナ101は、通信部13で実現されてもよい。
【0184】
補助記憶部14は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory) 、DVD-ROM(Digital Versatile Disk Read
Only Memory)、半導体メモリが挙げられる。
【0185】
入力部15は、データや処理命令を入力する機能を有する。入力部15は、例えばキーボードやマウス等の入力デバイスである。
【0186】
出力部16は、データを出力する機能を有する。出力部16は、例えば液晶ディスプレイ装置等の表示装置である。
【0187】
また、図11に示すように、分析システムにおいて、各構成要素は、システムバス17に接続されている。
【0188】
補助記憶部14は、例えば、スキャナ101、確定ファクト生成部103、未確定ファクト生成部104、分析部107、可視化部109、対策計画部110、抽出部111、および指示部112を実現するためのプログラムを記憶している。
【0189】
上述した分析システムの実現方法には、様々な変形例がある。例えば、分析システムは、構成要素毎にそれぞれ別個の情報処理装置とプログラムとの任意の組み合わせにより実現されてもよい。また、分析システムが備える複数の構成要素が、一つの情報処理装置とプログラムとの任意の組み合わせにより実現されてもよい。
【0190】
また、各構成要素の一部または全部は、汎用の回路(circuitry )または専用の回路、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【0191】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0192】
次に、本発明の概要を説明する。図12は、本発明による分析システムの概要を示すブロック図である。本発明による分析システム20は、診断対象システムまたは診断対象システムに含まれる機器におけるセキュリティに関連する状態を示すファクトのうち診断対象システムまたは機器の未知の情報を示すファクトである未確定ファクトのうち、診断対象システムにおいて実行可能な攻撃の実行に寄与する未確定ファクトを抽出する抽出部21(例えば、抽出部111)を備える。
【0193】
そのような構成により、分析システムは、診断対象システムにおける攻撃可能性を少ない負荷で分析できる。
【0194】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0195】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
【0196】
(付記1)診断対象システムまたは前記診断対象システムに含まれる機器におけるセキュリティに関連する状態を示すファクトのうち前記診断対象システムまたは前記機器の未知の情報を示すファクトである未確定ファクトのうち、前記診断対象システムにおいて実行可能な攻撃の実行に寄与する未確定ファクトを抽出する抽出部を備えることを特徴とする分析システム。
【0197】
(付記2)抽出された未確定ファクトのうち追加スキャンの対象に指定された未確定ファクトを含む情報の収集をスキャナに指示する指示部を備える付記1記載の分析システム。
【0198】
(付記3)抽出部は、未確定ファクトが示す状態が真である確率が、第一の閾値以上かつ第二の閾値以下である未確定ファクトを追加スキャンの対象に指定する付記1または付記2記載の分析システム。
【0199】
(付記4)抽出部は、攻撃の成否に関わる未確定ファクトを追加スキャンの対象に指定する付記1から付記3のうちのいずれかに記載の分析システム。
【0200】
(付記5)抽出部は、所定の数以上の攻撃に影響を与えている未確定ファクトを追加スキャンの対象に指定する付記1から付記4のうちのいずれかに記載の分析システム。
【0201】
(付記6)抽出部は、追加スキャンにより新たな情報が取得されることが予測される未確定ファクトを追加スキャンの対象に指定する付記1から付記5のうちのいずれかに記載の分析システム。
【0202】
(付記7)機器の構成情報が示すファクトである確定ファクトが、攻撃の実行に寄与する付記1から付記6のうちのいずれかに記載の分析システム。
【0203】
(付記8)診断対象システムから未確定ファクトを含む情報を収集するスキャナを備える付記1から付記7のうちのいずれかに記載の分析システム。
【0204】
(付記9)診断対象システムまたは前記診断対象システムに含まれる機器におけるセキュリティに関連する状態を示すファクトのうち前記診断対象システムまたは前記機器の未知の情報を示すファクトである未確定ファクトのうち、前記診断対象システムにおいて実行可能な攻撃の実行に寄与する未確定ファクトを抽出することを特徴とする分析方法。
【0205】
(付記10)抽出された未確定ファクトのうち追加スキャンの対象に指定された未確定ファクトを含む情報の収集をスキャナに指示する付記9記載の分析方法。
【0206】
(付記11)コンピュータに、診断対象システムまたは前記診断対象システムに含まれる機器におけるセキュリティに関連する状態を示すファクトのうち前記診断対象システムまたは前記機器の未知の情報を示すファクトである未確定ファクトのうち、前記診断対象システムにおいて実行可能な攻撃の実行に寄与する未確定ファクトを抽出する抽出処理を実行させるための分析プログラム。
【0207】
(付記12)コンピュータに、抽出された未確定ファクトのうち追加スキャンの対象に指定された未確定ファクトを含む情報の収集をスキャナに指示する指示処理を実行させる付記11記載の分析プログラム。
【産業上の利用の可能性】
【0208】
本発明は、資産管理システムと連携して使用される分析システムに好適に適用される。
【符号の説明】
【0209】
11 CPU
12 主記憶部
13 通信部
14 補助記憶部
15 入力部
16 出力部
17 システムバス
20、100、100A 分析システム
21、111 抽出部
101 スキャナ
102 スキャン結果記憶部
103 確定ファクト生成部
104 未確定ファクト生成部
105 ファクト生成情報記憶部
106 初期ファクト記憶部
107 分析部
108 分析結果記憶部
109 可視化部
110 対策計画部
112 指示部
200 診断対象システム
300 通信ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12