本実施例では、業務関連情報、システム関連情報、脆弱性情報、攻撃情報(脅威情報)、脆弱性対策情報を対応付けて管理し、動的に確率ペトリネットを構築することで、業務へのリスクを評価するセキュリティ対策支援システムの例を説明する。
(システム構成)
セキュリティ対策支援システムの全体構成について説明する。
図1は、システムの全体構成図の例である。
図1において、本実施例のシステムは、統合管理者用クライアント101、リスク管理サーバ102、データベース103、ネットワーク104、管理対象システム105、SE用クライアント106から構成される。統合管理者用クライアント101、およびSE用クライアント106は本システムの機能を呼び出すためのクライアント装置である。本実施例では、利用するクライアント装置によりユーザが管理者であるか、またはSEであるかを区別するが、管理者とSEを区別するために認証装置とアクセス権限管理装置を利用するなど別の実施形態も考えられる。リスク管理サーバ102は、確率ペトリネットの構築やリスク評価などを行う装置である。データベース103は、業務関連情報、システム関連情報、脆弱性情報、攻撃情報(脅威情報)、脆弱性対策情報を記憶する。本実施例では、ネットワーク104により統合管理者用クライアント101、リスク管理サーバ102、管理対象システム105、SE用クライアント106が接続されており、統合管理者用クライアント101とデータベース103は相互に接続されている。ネットワーク104は公開ネットワークか非公開ネットワークかは限定せず、接続インタフェースも限定しない。また、データベース103はネットワーク104と接続しても良い。本実施例を構成する符号を付された構成要素は実施形態によって複数の場合もある。
(機能構成)
本システムは、情報を管理する機能や確率ペトリネットによりリスクを評価する機能、ユーザの要求を受け付ける機能などを有している。図2〜図4を用いて、本システムの機能構成について説明する。
図2は、統合管理者用クライアント101の機能構成図の例である。
図2において、統合管理者用クライアント101は要求入力部201、表示部202、送受信部203、制御部204から構成されている。要求入力部201は、キーボード等のインタフェース機器を介してユーザからの入力を制御する処理部である。表示部202はモニタ等のインタフェース機器を介してユーザへの出力を制御する処理部である。送受信部203は、ネットワーク104を介して情報の送受信を行う処理部である。
制御部204は、リスク表示要求部211、原因脆弱性情報要求部212、対策情報要求部213、猶予期間要求部214、間接対策評価要求部215から構成されている。リスク表示要求部211は、要求入力部201を介して管理者から要求を受け付け、送受信部203を介してリスク管理サーバ102のリスク表示処理のリクエストを送信し、送受信部203を介してリスク管理サーバ102からリスク表示処理のレスポンスを受信し、表示部202を介して結果を管理者に提示する処理部である。原因脆弱性情報要求部212、対策情報要求部213、猶予期間要求部214、間接対策評価要求部215は既に説明したリスク表示要求部211と同一の手順によりリスク管理サーバ102の機能を呼び出すため、説明を省略する。
図3は、リスク管理サーバ102の機能構成図の例である。
図3において、リスク管理サーバ102は要求入力部301、表示部302、送受信部303、統合管理者向け制御部304、SE向け制御部305、バックグラウンド用制御部306から構成される。要求入力部301、表示部302、送受信部303は、統合管理者用クライアント101と同一の機能を有するため、説明を省略する。
統合管理者向け制御部304は、リスク評価処理部311、原因脆弱性情報処理部312、対策情報処理部313、猶予期間処理部314、間接対策評価処理部315から構成されている。リスク評価処理部311は送受信部203を介して統合管理者用クライアント101からリスク表示処理のリクエストを受信し、リスク算出処理を実行し、送受信部203を介して統合管理者用クライアント101にリスク表示処理のレスポンスを送信する処理部である。原因脆弱性情報処理部312、対策情報処理部313、猶予期間処理部314、間接対策評価処理部315は、既に説明したリスク評価処理部311と同一の手順により処理を実行するため、説明を省略する。リスク評価処理部311、原因脆弱性情報処理部312、対策情報処理部313、猶予期間処理部314、間接対策評価処理部315は、それぞれ統合管理者用クライアント101のリスク表示要求部211、原因脆弱性情報要求部212、対策情報要求部213、猶予期間要求部214、間接対策評価要求部215から呼び出される。
SE向け制御部305は、リスク評価処理部321、原因脆弱性情報処理部322、対策情報処理部323、猶予期間処理部324、間接対策評価処理部325、業務情報入力処理部326から構成されている。リスク評価処理部321は送受信部203を介してSE用クライアント106からリスク表示処理のリクエストを受信し、リスク算出処理を実行し、送受信部203を介してSE用クライアント106にリスク表示処理のレスポンスを送信する処理部である。原因脆弱性情報処理部322、対策情報処理部323、猶予期間処理部324、間接対策評価処理部325、業務情報入力処理部326は、既に説明したリスク評価処理部321と同一の手順により処理を実行するため、説明を省略する。リスク評価処理部321、原因脆弱性情報処理部322、対策情報処理部323、猶予期間処理部324、間接対策評価処理部325、業務情報入力処理部326は、それぞれSE用クライアント106のリスク表示要求部411、原因脆弱性情報要求部412、対策情報要求部413、猶予期間要求部414、間接対策評価要求部415、業務情報入力要求部416から呼び出される。
バックグラウンド用制御部306は、セキュリティナレッジ収集・管理処理部331から構成されている。セキュリティナレッジ収集・管理処理部331は、セキュリティナレッジ収集・管理処理を自動実行する処理部である。本処理は、一定期間毎に実行しても良いし、CPUの利用率が少ない期間に実行するなどの制御を行っても良い。
図4は、SE用クライアント106の機能構成図の例である。
図4において、SE用クライアント106は要求入力部401、表示部402、送受信部403、制御部404から構成される。要求入力部401、表示部402、送受信部403は、統合管理者用クライアント101と同一の機能を有するため、説明を省略する。
制御部404は、リスク表示要求部411、原因脆弱性情報要求部412、対策情報要求部413、猶予期間要求部414、間接対策評価要求部415、業務情報入力要求部416から構成されている。リスク表示要求部411は、要求入力部401を介してSEから要求を受け付け、送受信部403を介してリスク管理サーバ102のリスク表示処理のリクエストを送信し、送受信部403を介してリスク管理サーバ102からリスク表示処理のレスポンスを受信し、表示部402を介して結果をユーザに提示する処理部である。原因脆弱性情報要求部412、対策情報要求部413、猶予期間要求部414、間接対策評価要求部415、業務情報入力要求部416は既に説明したリスク表示要求部411と同一の手順によりリスク管理サーバ102の機能を呼び出すため、説明を省略する。
(データ構成)
本システムは、リスク評価を行うため、業務関連情報、システム関連情報、脆弱性情報、攻撃情報(脅威情報)、脆弱性対策情報をデータベース103上で管理する。図5〜図13を用いて、本システムのデータ構成について説明する。
図5は、データベース103上のテーブル構成図の例である。
図5において、データベース103は、業務情報管理テーブル501、管理対象システム情報管理テーブル502、脆弱性情報ナレッジテーブル503、攻撃情報(脅威情報)ナレッジテーブル504から構成されている。
業務情報管理テーブル501の例は図6、図7に示す。
図6において、業務情報管理テーブル501_1は、機能コンポーネントID601、機能コンポーネント名称602、業務情報一覧603、ホストID一覧604、機密性要件605、完全性要件606、可用性要件607の項目を有している。機能コンポーネントID601は、業務の一部の処理を担う機能コンポーネントを識別するIDである。機能コンポーネント名称602は、機能コンポーネントの名称である。業務情報一覧603は業務を識別する業務IDと業務名称の一覧である。業務システムでは、業務処理を複数の機能コンポーネントに分割して、システムを設計することがあるため、機能コンポーネント601に対して複数の業務IDが対応付いて良い。ホストID一覧604は、機能コンポーネントが実装されたホストを識別するID一覧である。機能コンポーネントは冗長性などの理由で複数のホスト上で実装される可能性があるため、機能コンポーネント601に対して複数のホストIDが対応付いて良い。また、機密性要件605、完全性要件606、可用性要件607は、機能コンポーネントIDで識別された機能に求められるセキュリティ要件を機密性、完全性、可用性の観点で、要求度を設定したものである。本実施例では、0以上1以下の数値とする。
図7において、業務情報管理テーブル501_2は、データフローID701、発信元機能コンポーネントID702、発信先機能コンポーネントID703、プロトコル情報704の項目を有している。データフローID701は、機能コンポーネント間のデータフローを識別するIDである。発信元機能コンポーネントID702は、データの発信元となる機能コンポーネントのIDである。発信先機能コンポーネントID703は、データの発信先となる機能コンポーネントのIDである。発信元機能コンポーネントID702、発信先機能コンポーネントID703は業務情報管理テーブル501_1上の機能コンポーネントID601でなければならない。プロトコル情報704は、データフローで利用する通信プロトコルの情報である。
管理対象システム情報管理テーブル502の例は図8、図9、図10に示す。
図8において、管理対象システム情報管理テーブル502_1は、システムID801、システム名称802、管理者情報803の項目を有している。システムID801は、管理対象のシステムを識別するIDである。システム名称802は、顧客や業務など人間が識別しやすい管理対象システムの名称である。管理者情報803は、システムを管理する責任者やSE等の情報(ユーザIDや氏名、連絡先(メールアドレス、電話番号等)など)である。
図9において、管理対象システム情報管理テーブル502_2は、ホストID901、ホスト名称902、所属システムID903、ソフトウェアID一覧904、接続ネットワークセグメント情報905、セキュリティ設定一覧906の項目を有している。ホストID901は、ホスト・マシンを識別するIDである。ホスト名称902は、ホスト・マシンの名称である。所属システムID903は、ホストが所属するシステムのIDである。ソフトウェアID一覧904は、ホストにインストールされているソフトウェアを識別するIDの一覧である。本実施例では、ソフトウェアIDとして、国際的に標準化された共通プラットフォーム一覧(CPE:Common Platform Enumeration)のIDを利用する。接続ネットワークセグメント情報905は、ホストに接続するネットワークセグメント情報(ホストが接続するセグメントセグメントのID一覧、セグメントに接続しているネットワークアダプタ情報など)である。セキュリティ設定一覧906は、ネットワークサービス(プロトコル)とそのアクセス権限や、ホストのセキュリティ設定の一覧である。
図10において、管理対象システム情報管理テーブル502_3は、ネットワークセグメントID1001、ネットワークセグメント名称1002、接続ホストID一覧1003、許可プロトコル一覧1004、アクセス権限一覧1005の項目を有している。ネットワークセグメントID1001は、ネットワークセグメントを識別するIDである。ネットワークセグメント名称1002は、ネットワークセグメントの名称である。接続ホストID一覧1003は、セグメントに存在するホストの一覧である。許可プロトコル一覧1004は、ネットワークセグメント上で許可されているプロトコルの一覧である。アクセス権限一覧1005はネットワークセグメント上で利用できるアクセス権限の一覧である。
脆弱性情報ナレッジテーブル503の例は図11、図12に示す。
図11において、脆弱性情報ナレッジテーブル503は、公開元脆弱性情報ID1101、脆弱性情報ID1102、脆弱性種別ID1103、ソフトウェアID一覧1104、CIA影響度1105、脆弱性到達範囲1106、直接対策情報1107、間接対策情報1108、攻撃発生確率1109の項目を有している。公開元脆弱性情報ID1101は、脆弱性を公開した機関が採番する脆弱性情報のIDである。一般的に脆弱性情報は、公的機関や開発元ベンダなどで公開されており、公開された脆弱性情報には脆弱性を公開した機関独自のIDが割り当てられている。本実施例では、公開元脆弱性情報ID1101として、MITRE社が採番し、国際的に利用されている共通脆弱性識別子(CVE:Common Vulnerabilities and Exposures)や日本国内で利用されているJVN番号(JVN:Japan Vulnerability Notes)、ベンダが独自に採番した脆弱性IDを利用する。脆弱性情報ID1102は、本システムにおいて、脆弱性を識別するIDである。本実施例では、MITRE社が採番し、国際的に利用されている共通脆弱性タイプ一覧(CWE:Common Weakness Enumeration)を利用する。脆弱性種別ID1103は、脆弱性種別を識別するIDである。ソフトウェアID一覧1104は、この脆弱性の対象となるソフトウェアIDの一覧(CPEなどの一覧)である。CIA影響度1105は、脆弱性を突いた攻撃が発生した場合の機密性(C:Confidential)、完全性(I:Integrity)、可用性(A:Availability)に対する影響度である。本実施例では、0以上1以下の数値とする。脆弱性到達範囲1106は、この脆弱性を利用することで利用可能になるプロトコルやアクセス権限などである。一般的に、脆弱性を突いた攻撃では単一の攻撃のみで目的を達成することが少なく、連続的に脆弱性攻撃を繰り返す中で権限昇格や非公開ネットワークへの侵入などステップを踏んで攻撃を行う。直接対策情報1107は、パッチによるアップデートなど、脆弱性を根本的に解決するような直接対策方法、対策による機能コンポーネントへの影響、(標準的な)対策時間などの情報である。間接対策情報1108は、ネットワーク遮断など、脆弱性そのものを除去せずに解決する間接対策方法、対策による機能コンポーネントへの影響、(標準的な)対策時間などの情報である。攻撃発生確率1109は、脆弱性を利用した攻撃やインシデントの発生確率情報である。図12では、攻撃発生確率1108の例について示す。
図12において、攻撃発生確率1108はシグモイド関数の近似式である。本実施例では、同一の脆弱性種別ID1103が割り当てられた脆弱性は類似した累積攻撃発生確率を有していると想定し、脆弱性種別ID1103毎に攻撃発生確率1108を算出する。シグモイド関数の近似では、脆弱性公開機関が公開する累積的な攻撃発生件数の時系列データ1201を利用し、同一の脆弱性種別ID1103が割り当てられた脆弱性に対して、ある一定スレショルド1202に至るまでの累積的な攻撃発生件数と脆弱性発見後の経過時間をパラメータとして、最小二乗法を解くことにより攻撃発生確率1109を近似する。攻撃発生確率1108をシグモイド関数で近似することで、任意の時刻における攻撃発生確率を推定することが可能になる。
攻撃情報ナレッジテーブル504の例は図13に示す。
図13において、攻撃情報ナレッジテーブル504は、公開元攻撃情報ID1301、攻撃情報ID1302、攻撃方法1303、攻撃対象脆弱性情報1303、攻撃目的1304、攻撃前提条件1305の項目を有している。公開元攻撃情報ID1301は、攻撃情報を公開した機関が採番する攻撃情報のIDである。本実施例では、公開元攻撃情報ID1301として、MITRE社が採番し、国際的に有名な攻撃パターンのデータベース(CAPEC:Common Attack Pattern Enumeration and Classification)のIDを利用する。攻撃情報ID1302は、攻撃情報を識別するIDである。攻撃対象脆弱性情報1303は、攻撃対象となる脆弱性情報IDである。攻撃目的1304は、機密性(C)、完全性(I)、可用性(A)のいずれの毀損を狙った攻撃であるかを示す。攻撃前提条件1305は、攻撃の前提となるプロトコルやアクセス権限である。
なお、本実施例では、データベース103の各テーブルをRDB(Rerational Database)のテーブルとして表現しているが、RDF(Resource Description Framework)で構築する方法も考えられる。RDFは、主語と述語、目的語という関係でデータ構造を記述する枠組みであり、主語と目的語にあたるデータ項目の関係性を明示的に記述する枠組みである。データベース103の構築方法については図22、図23において後程説明するが、本実施例では、SEの入力情報や複数の公的機関の公開情報などからデータを収集する必要があり、多様なデータ項目のリンク関係が必要となる。例えば、図6のホストID一覧604と図9のホストID901のようにデータベース103上には、データ項目のリンク関係を表す情報が多く含まれている。RDFはデータ項目間の関係が記述されるため、データ項目から関連するデータ項目を辿ることが容易であり、RDFを利用することで複雑なデータ項目関係を有するデータベース103の構築が容易になる。
(システム全体の処理フロー)
本システムは、統合管理者用クライアント101または、SE用クライアント106の要求に従い、リスク管理サーバ102が確率ペトリネットの構築やリスク評価処理を実行する。本システムが行う処理について図14から図23を用いて説明する。
図14は、本システム全体の処理を説明するフローチャートの例である。
図14において、統合管理者用クライアント101またはSE用クライアント106は、起動後、ユーザに対して要求入力1401の入力を求める。要求入力1401には、呼び出したクライアントの情報(ユーザ情報など)や、処理部に与えるパラメータなどが含まれている。
次に、リスク管理サーバ102は、起動後、統合管理者用クライアント101またはSE用クライアント106から要求入力1401を受け付ける。要求入力1401を受け付ける画面については、図24、図25、図26で後程説明する。一方、リスク管理サーバ102は、起動後、統合管理者用クライアント101またはSE用クライアント106から要求入力1401を待ち受ける。管理者またはSEから要求入力がなされなかった場合(S1402)、リスク管理サーバ102はバックグラウンド用制御部306の処理を実行する。リスク管理サーバ102はバックグラウンド処理がスケジューリングされているかどうか確認し、スケジューリングされている場合(S1403)、バックグラウンド用制御部306のセキュリティナレッジ収集・管理処理部331がセキュリティナレッジ収集・管理処理1404をバックグラウンドで実行し、再度要求入力1401を待ち受ける。セキュリティナレッジ収集・管理処理1404に関しては図22で後程説明する。
次に、リスク管理サーバ102が要求入力1401を受け付けた場合(S1402)、要求入力1401がリスク表示要求・猶予期間要求・間接対策評価要求であるか判定する。要求入力1401がリスク表示要求・猶予期間要求・間接対策評価要求であった場合(S1405)、リスク管理サーバ102は解析処理1406を実行し、その結果を統合管理者用クライアント101またはSE用クライアント106に返す。解析処理1406に関しては、図15で後程説明する。
次に、要求入力1401がリスク表示要求・猶予期間要求・間接対策評価要求でなかった場合(S1405)、リスク管理サーバ102はデータ処理1407を実行し、その結果を統合管理者用クライアント101またはSE用クライアント106に返す。データ処理1407に関しては、図22で後程説明する。
統合管理者用クライアント101またはSE用クライアント106が受け取った結果の結果表示1408については、図24、図25、図26で後程説明する。
(解析処理フロー)
リスク管理サーバ102がリスク表示要求・猶予期間要求・間接対策評価要求を受け付けた場合の解析処理1406について図15を用いて説明する。
図15は、解析処理1406を説明するフローチャートの例である。
図15において、解析処理1406では、評価対象システムの列挙1502を実行する。評価対象システムの列挙1502では、要求入力1401を統合管理者用クライアント101から受信した時とSE用クライアント106から受信した時とで列挙するシステムが異なる。統合管理者用クライアント101からの要求入力1401である場合、管理対象システム情報管理テーブル502_1から全てのシステムID802を列挙する。SE用クライアント106からの要求入力1401である場合、管理対象システム情報管理テーブル502_1から要求入力1401に含まれるユーザ情報と管理者情報803が一致するシステムID802を列挙する。図15は、N個のシステムが列挙された例である。
次に、評価対象システムの列挙1502で列挙された全てのシステムに対して反復処理1503〜1507を実行する。反復処理1503〜1507では、要求入力1401がリスク表示要求である場合、リスク評価処理部311、またはリスク評価処理部321がリスク評価処理1505を実行する。リスク評価処理1505に関しては、図16で後程説明する。要求入力1401が猶予期間要求である場合、猶予期間処理部314、または猶予期間処理部324が猶予期間処理1506を実行する。リスク評価処理部311が猶予期間処理1506に関しては、図20で後程説明する。要求入力1401が間接対策評価要求である場合、間接対策評価処理部315、または間接対策評価処理部325が間接対策評価処理1507を実行する。間接対策評価処理1507に関しては、図21で後程説明する。
(リスク評価処理フロー)
リスク管理サーバ102がリスク表示要求を受け付けた場合のリスク評価処理1505について図16を用いて説明する。
図16は、リスク評価処理1505を説明するフローチャートの例である。
図16において、リスク評価処理部311、またはリスク評価処理部321では、ペトリネット構成処理1602を実行する。ペトリネットとは、物事の状態を“プレース”、発生する事象を“トランジション”、状態と事象の接続関係を“アーク”、事象発生した場合にアークで接続された状態に遷移する確率を“発火確率”と定義し、システムをモデル化したものである。本実施例では、システムが保有する脆弱性を“脆弱状態プレース”、脆弱性に対して発生し得る攻撃事象を“攻撃トランジション”、脆弱性を攻撃されることによりリスクが引き起こされる事象を“リスクトランジション”、ホスト・マシンの機密性(C)、完全性(I)、可用性(A)が毀損された状態を それぞれ“機密性リスクプレース”、“完全性リスクプレース”、“可用性リスクプレース”と定義することで、リスク評価モデルを構成する。ペトリネット構成処理1602のフローチャートの例は図17に示し、ペトリネット構成処理1602により構成されるペトリネットの一例は図19に示す。ペトリネット構成処理1602については後程説明する。
次に、リスク評価処理部311では、リスク評価モデルに基づいてリスク算出処理1603を実行する。リスク算出処理1603については、図18で後程説明する。
(ペトリネット構成処理フロー)
一般的に、ペトリネットを構築するためには、“プレース”の配置、“トランジション”の配置、“プレース”と“トランジション”間のアークの接続、“発火確率”の設定、の4種類の処理が必要となる。本実施例では、4種類の処理を組み合わせ、図19に示すペトリネットを構築する処理の例について図17、図19を用いて説明する。
図17は、ペトリネット構成処理1602のフローチャートの例である。
図17において、ペトリネット構成処理1602では、構築処理1702において、システム全体が正常である状態として正常状態プレース1901を1個配置する。また、解析処理1406から与えられたシステムID801をキーとして、管理対象システム情報管理テーブル502_2上のホストID901を参照し、それぞれのホストID901に対して、ペトリネット上でホスト空間1902を定義する。
次に、構築処理1704では、それぞれのホストID901をキーとして、管理対象システム情報管理テーブル502_2上のソフトウェアID一覧904を参照し、それぞれのソフトウェアIDをキーとして、脆弱性情報ナレッジテーブル503上の脆弱性情報ID1102を参照する。そして、それぞれの脆弱性情報ID1102に対して、ホスト空間1901上に脆弱状態プレース1903を配置する。図19の例では、ホスト空間1901に対して、1個の脆弱状態プレース1903が配置されているが、1対1に対応する必要はなく、複数の脆弱状態プレース1903が配置される可能性がある。
次に、構築処理1703では、ホスト空間1902上に脆弱状態プレース1個に対してリスクトランジション1904を1個配置する。また、ホストID901をキーとして、業務情報管理テーブル501_1上の機能コンポーネントID601を参照し、それぞれの機能コンポーネントID601に対して、ホスト空間1901上で機能コンポーネント空間1905を構成し、機能コンポーネント空間1905上に機密性リスクプレース1906_1、完全性リスクプレース1906_2、可用性リスクプレース1906_3を配置する。図19の例では、ホスト空間1901に対して、1個の機能コンポーネント空間1905が配置されているが、1対1に対応する必要はなく、複数の機能コンポーネント空間1905が配置される可能性がある。
次に、構築処理1705では、配置された脆弱性プレース1903に対応する脆弱性情報ID1102をキーとして、攻撃情報(脅威情報)ナレッジテーブル504上の攻撃情報ID1302を参照する。そして、それぞれの攻撃情報ID1302に対して、ホスト空間1901上に攻撃トランジション1907を配置し、攻撃トランジション1907からキーとして利用した脆弱性情報ID1102に対応する脆弱状態プレース1903へアーク1908を接続する。
次に、構築処理1706では、配置された攻撃トランジション1907に対応する攻撃情報ID1302をキーとして、攻撃情報(脅威情報)ナレッジテーブル504上の攻撃前提条件1305を参照する。また、ホストID901をキーとして、管理対象システム情報管理テーブル502_3上の許可プロトコル一覧1003とアクセス権限一覧1005を参照する。そして、ホストID901が接続するネットワークセグメントの許可プロトコル一覧1003とアクセス権限一覧1005に攻撃前提条件1305に含まれるプロトコルとアクセス権限が存在し、同プロトコルと同アクセス権限を外部にいる攻撃者が利用できる場合、正常状態プレース1901から攻撃トランジション1907へアーク1909を接続する。例えば、ホストが非武装地帯(DMZ:DeMilitarized Zone)と呼ばれるネットワークセグメントに接続しており、ホストがhttpプロトコルを前提とするような攻撃トランジションを有していた場合、一般的にDMZではhttpプロトコルが任意のユーザに対して許可されているため、正常プレースから同攻撃トランジションにアークが接続される。即ち、正常状態プレース1901から攻撃トランジション1907へアーク1909はシステムが正常な状態において攻撃可能な脆弱性を示しており、構築処理1706のアーク1909により、正常状態から単一の脆弱性攻撃により発生するリスク評価が可能となる。
次に、構築処理1707では、構築処理1706と同様に接続ホストID一覧1003、許可プロトコル一覧1003、アクセス権限一覧1005、攻撃前提条件1305を参照する。また、脆弱性情報ID1102をキーとして、脆弱性情報ナレッジテーブル503上の脆弱性到達範囲1106を参照する。そして、接続ホストID一覧1003から脆弱状態プレース1903と攻撃トランジション1907が同一のネットワークセグメントに存在し、その攻撃トランジション1907の攻撃前提条件1305のプロトコルとアクセス権限が脆弱性到達範囲1106に含まれており、許可プロトコル一覧1003、アクセス権限一覧1005から攻撃前提条件1305のプロトコルとアクセス権限が許可されている場合、脆弱状態プレース1903から攻撃トランジション1907へアーク1910を接続する。例えば、データベースネットワークセグメント上にWEBサーバとデータベースサーバに接続しており、WEBサーバがDBサーバにアクセス可能(脆弱性到達範囲1106)になる脆弱性を有し、DBサーバがアクセス権限を前提条件(攻撃前提条件1305)とする脆弱性を有していた場合、WEBサーバ上の同脆弱性を表す脆弱状態プレースからDBサーバ上の同攻撃を表す攻撃トランジションへアークを接続する。構築処理1707のアーク1910は、複数の脆弱性を連続的に突いた複雑な攻撃のリスク評価するために必要不可欠であり、本実施例では、脆弱性により到達可能になる範囲(脆弱性到達範囲1106)と攻撃の前提条件(攻撃前提条件1305)をデータベースにおいて管理することによりアーク1910の接続を可能としている。
次に、構築処理1708では、各ホスト内で脆弱状態プレース1903からリスクトランジション1904へアーク1911を接続する。脆弱状態プレース1903とリスクトランジション1904は1対1に対応している。
次に、構築処理1709では、脆弱性情報ID1102をキーとして、攻撃情報(脅威情報)ナレッジテーブル504上の攻撃確率1109を参照する。本実施例では、攻撃確率1109は時刻を引数としてとるシグモイド関数であるため、現在時刻を引数として与え、現在時刻における攻撃確率を算出し、現在時刻における攻撃確率を攻撃トランジション1907の攻撃発火確率1912として重み付けする。
次に、構築処理1710では、脆弱性情報ID1102をキーとして、攻撃情報(脅威情報)ナレッジテーブル504上のCIA影響度1105を参照し、CIA影響度1105をリスクトランジション1904のリスク発火確率1913として重み付けする。
すなわち、対策情報記憶部は、セキュリティ対処をする対象のシステムにおける機能コンポーネント情報と、機能コンポーネントが実装されるホスト情報と、ホストが保有するソフトウェア情報と、ソフトウェアに含まれる脆弱性情報と、脆弱性を利用する攻撃情報と、攻撃により発生するリスク情報と、脆弱性に対する対策情報とを関連付けて記憶し、リスク評価部は、機能コンポーネント情報、ホスト情報、ソフトウェア情報、脆弱性情報、攻撃情報、リスク情報及び対策情報に基づいてリスク評価モデル(ペトリネット)を作成し、リスク評価モデルに基づいてシステムのリスク評価をする。
また、ペトリネットは、脆弱性を示す脆弱性プレースと、攻撃を示す攻撃トランジションと、リスクを示すリスクトランジションと、システムへの影響度を表すリスクプレースとを有しても良い。
また、リスク評価部は、攻撃の攻撃発生確率を攻撃トランジションの発火確率とし、攻撃により発生するリスクの大きさをリスクトランジションの発火確率として、確率ペトリネットを構築しても良い。
また、リスク評価部は、脆弱性に対する攻撃の累積発生確率を攻撃発生確率とし、過去の脆弱性に対する攻撃の累積発生件数から累積確率分布を計算し、累積確率分布から任意時刻における前記累積発生確率を計算し、累積発生確率に基づいて、任意時刻におけるリスク評価しても良い。
また、リスク評価部は、任意の時刻におけるリスク評価に基づいて、リスク評価の結果が一定値を越える許容限界時刻を探索し、許容限界時刻と現在時刻の差分を猶予期間として算出しても良い。
また、リスク評価部は、脆弱性情報と、脆弱性に対する対策情報とを関連付け、脆弱性に対する対策手段を示す対策トランジションを有するペトリネットを構築し、対策手段がシステムに与える影響度を前記対策トランジションの発火確率として、確率ペトリネットを構築し、対策トランジションに基づいてリスク評価をしても良い。
また、リスク評価部は、システムが関連する業務情報と、機能コンポーネント情報とを関連付け、リスク評価の結果を業務に対するリスク評価値へと変換しても良い。
以上のように、本実施例は、業務情報管理テーブル501、管理対象システム情報管理テーブル502、脆弱性情報ナレッジテーブル503、攻撃情報(脅威情報)ナレッジテーブル504を事前に構築しておくことにより、管理対象システムに応じたペトリネットの自動構成を可能にする。
(リスク算出処理フロー)
図16に戻って、ペトリネットを用いたリスク算出処理1603について図18を用いて説明する。
図18は、リスク算出処理1603のフローチャートの例である。
図18において、リスク算出処理1603では、算出処理1802において、確率ペトリネット法に基づき、正常状態プレース1901を開始店として攻撃発火確率1912、リスク発火確率1913に応じて各トランジションが発火した場合にリスクプレースに陥る確率を算出する。
次に、算出処理1803では、それぞれの機能コンポーネントID601をキーとして、業務情報管理テーブル501_1上の業務情報一覧603、機密性要件605、完全性要件606、可用性要件607を参照する。機密性要件605、完全性要件606、可用性要件607それぞれと機密性リスクプレース、完全性リスクプレース、可用性リスクプレースに陥る確率を乗算することで、機能コンポーネントに対する機密性リスク、完全性リスク、可用性リスクとなる。そして、同一の業務に対応する複数の機能コンポーネントの機密性リスク、完全性リスク、可用性リスクの合算値が業務に対する機密性リスク、完全性リスク、可用性リスクとなる。
(猶予期間処理フロー)
図15に戻って、リスク管理サーバ102が猶予期間要求を受け付けた場合の猶予期間処理1506について図20を用いて説明する。
図20は、猶予期間処理1506を説明するフローチャートの例である。
図20において、猶予期間処理1506では、ペトリネット構成処理2002を実行する。ペトリネット構成処理2002は既に説明したペトリネット構成処理1602と同一であるため、説明を省略する。
次に、処理2003では、脆弱性情報ID1102をキーとして、攻撃情報(脅威情報)ナレッジテーブル504上の攻撃確率1109を参照する。本実施例では、攻撃確率1109は時刻を引数としてとるシグモイド関数であるため、指定時刻を引数として与え、指定時刻における攻撃確率を算出し、指定時刻における攻撃確率を攻撃トランジション1907の攻撃発火確率1912として再設定する。
次に、リスク算出処理2004を実行する。ペトリネット構成処理2002は既に説明したリスク算出処理1603と同一であるため、説明を省略する。そして指定時刻を変化させ、反復的にリスク評価を実行することで、リスク評価値が一定のスレショルド以上になる許容限界時刻を探索し許容限界時刻と現在時刻の差分を取ることで、猶予期間を算出する。
以上のように、本実施例では、統計的な分析により時刻を引数としてとるシグモイド関数として攻撃確率1109を算出しておくことで、未来におけるリスク評価を可能とする。猶予期間により、SEは評価結果から次回のシステム定期メンテナンス日時の対応で間に合うかどうかなど判断を下すことが可能になる。
(間接対策評価処理フロー)
図15に戻って、リスク管理サーバ102が間接対策要求を受け付けた場合の間接対策処理1507について図21を用いて説明する。
図21は、間接対策処理部における間接対策評価処理1507を説明するフローチャートの例である。
図21において、間接対策評価処理1507では、ペトリネット構成処理2102を実行する。ペトリネット構成処理2102は既に説明したペトリネット構成処理1602と同一であるため、説明を省略する。
次に、処理2103では、脆弱性情報ID1102をキーとして、攻撃情報(脅威情報)ナレッジテーブル504上の直接対策情報1107、間接対策情報1108を参照する。それぞれの直接対策情報1107、間接対策情報1108に対して、ホスト空間1901上に対策トランジションを配置し、脆弱性情報ID1102に対応する脆弱状態プレース1903から対策トランジションへアークを接続する。また、直接対策情報1107、間接対策情報1108に含まれる対策による機能コンポーネントへの影響情報に基づき、対策トランジションから影響を与える機能コンポーネント空間1905上のリスクプレース1906へアークを接続する。
次に、リスク算出処理2004を実行する。ペトリネット構成処理2002は既に説明したリスク算出処理1603と同一であるため、説明を省略する。
以上のように、本実施例では、脆弱性に対する対策手段を対策トランジションとして定義し、対策トランジションと関連する脆弱性プレースと接続させることで、脆弱性に対する対策の効果を表現する。さらに対策トランジションを関連する機能コンポーネントのリスクプレースと接続させることで、対策手段の影響を評価し、対策の有効性を総合的に評価することを可能にする。複数の対策手段候補が存在する場合、SEは間接対策評価処理1507によりそれぞれの対策手段を評価することで、最適な対策候補を判断することが可能になる。
(データ処理フロー)
図14に戻って、リスク管理サーバ102が原因脆弱性情報要求・対策情報要求・業務情報入力要求を受け付けた場合のデータ処理1407について図22を用いて説明する。
図22は、データ処理1407を説明するフローチャートの例である。
図22において、データ処理1407では、要求入力1401がSE用クライアント106からの入力か判定する。SE用クライアント106からの要求入力1401である場合(条件分岐2202)、要求入力1401が業務情報入力要求か判定する。要求入力1401が業務情報入力要求である場合(条件分岐2203)、業務情報入力クエリ生成2204を実行する。
業務情報入力クエリ生成2204では、要求入力1401に含まれるシステム名称802、機能コンポーネント名称602、ホスト名称902、業務名称、ネットワークセグメント名称1002、それぞれに対して、システムID801、機能コンポーネントID601、ホストID901、業務ID、ネットワークセグメントID1001を自動的に採番する。該IDは、乱数で生成し、データベースを確認することで唯一無二性を保障しても良いし、システム内でインクリメントしていくことで保障しても良い。次に、機能コンポーネントID601、機能コンポーネント名称602、業務情報一覧603、ホストID一覧604、機密性要件605、完全性要件606、可用性要件607を含む、業務情報管理テーブル501_1に向けた追加クエリを生成する。次に、データフローID701、発信元機能コンポーネントID702、発信先機能コンポーネントID703、プロトコル情報704を含む、業務情報管理テーブル501_2に向けた追加クエリを生成する。次に、システムID801、システム名称802、管理者情報803を含む、管理対象システム情報管理テーブル502_1に向けた追加クエリを生成する。次に、ホストID901、ホスト名称902、所属システムID903、ソフトウェアID一覧904、接続ネットワークセグメント情報905、セキュリティ設定一覧906を含む、管理対象システム情報管理テーブル502_2に向けた追加クエリを生成する。次に、ネットワークセグメントID1001、ネットワークセグメント名称1002、接続ホストID一覧1003、許可プロトコル一覧1004、アクセス権限一覧1005を含む、管理対象システム情報管理テーブル502_3に向けた追加クエリを生成する。
SE用クライアント106からの要求入力1401でない場合(条件分岐2202)、あるいは要求入力1401が業務情報入力要求でない場合(条件分岐2203)、要求入力1401が対策情報要求か判定する。要求入力1401が対策情報要求である場合(条件分岐2205)、対策情報参照クエリ生成2206を実行する。
対策情報参照クエリ生成2206では、脆弱性情報ID1102を検索キーとして直接対策情報1107、間接対策情報1108を参照する、脆弱性情報ナレッジテーブル503に向けた参照クエリを生成する。
要求入力1401が対策情報要求でない場合(条件分岐2205)、原因脆弱性情報参照クエリ生成2206を実行する。原因脆弱性情報参照クエリ生成2206では、原因脆弱性情報を取得するため、システムID802を検索キーとしてホストID901と参照する管理対象システム情報管理テーブル502_1に向けた参照クエリと、取得したホストID901を検索キーとしてソフトウェアID一覧904を参照する管理対象システム情報管理テーブル502_2に向けた参照クエリと、取得したソフトウェアID一覧904を検索キーとして脆弱性情報ID1102を参照する脆弱性情報ナレッジテーブル503に向けた参照クエリを生成する。
次に、データ処理1407では、データベースクエリ送信2208を実行する。データベースクエリ送信2208では、生成したデータベースクエリをデータベース103に送信する。
次に、データ処理1407では、データベースクエリ結果受信2209を実行する。データベースクエリ結果受信2209では、データベース103から結果を受信する。
(セキュリティナレッジ収集・管理処理フロー)
図23は、セキュリティナレッジ収集・管理処理1404を説明するフローチャートの例である。
図23において、セキュリティナレッジ収集・管理処理1404では、まず情報収集エージェントの起動処理2302を実行する。情報収集エージェントの起動処理2302では、スケジューリングされている情報収集対象となる機関を特定し、対象機関に合わせて設計された情報収集エージェントを起動する。一般的に、情報公開機関は、それぞれ異なったインタフェースを提供しており、それぞれに合わせて設計された情報収集エージェントが必要となる。
次に、情報収集処理2303を実行する。情報収集処理2303では、情報公開機関が用意したインタフェースを利用して、情報収集エージェントが公開情報を取得する。本実施例では、脆弱性情報は、JVNとNVD(National Vulnerability Database)からhttpプロトコルによりXML形式で脆弱性情報を取得し、また、一般ベンダからhttpプロトコルによりHTML形式で取得する。攻撃情報は、CAPEC(Common Attack Pattern Enumeration and Classification)からhttpプロトコルによりXML形式で脆弱性情報を取得する。
次に、攻撃確率算出処理2304を実行する。攻撃確率算出処理2306では、情報収集エージェントが取得した公開情報からパースした脆弱性種別ID1103や攻撃件数の時系列データから攻撃確率を算出する。攻撃確率の算出方法については、既に図12で説明しているため、説明を省略する。
次に、データベース登録処理2305を実行する。データベース登録処理2305では、情報収集エージェントが取得した公開情報をパースする。脆弱性情報に関する公開情報からは、公開元脆弱性情報ID1101、脆弱性種別ID1103、ソフトウェアID一覧1104、CIA影響度1105、脆弱性到達範囲1106、直接対策情報1107、間接対策情報1108を取得する。攻撃情報に関する公開情報からは、公開元攻撃情報ID1301、攻撃方法1303、攻撃対象脆弱性情報1303、攻撃目的1304、攻撃前提条件1305を取得する。次に、新しくデータベースに登録される脆弱性情報および攻撃情報それぞれに対して、本システム固有の脆弱性情報ID1102、攻撃情報ID1302を採番する。IDの採番方法は、既に説明したデータ処理1407におけるIDの採番方法と同一であるため、説明を省略する。また、データベース登録処理2305では、公開元脆弱性情報ID1101、脆弱性情報ID1102、脆弱性種別ID1103、ソフトウェアID一覧1104、CIA影響度1105、脆弱性到達範囲1106、直接対策情報1107、間接対策情報1108、攻撃発生確率1109を含む脆弱性情報ナレッジテーブル503に向けた更新クエリを生成し、データベース103に送信する。次に、公開元攻撃情報ID1301、攻撃情報ID1302、攻撃方法1303、攻撃対象脆弱性情報1303、攻撃目的1304、攻撃前提条件1305を含む攻撃情報(脅威情報)ナレッジテーブル504に向けた更新クエリを生成し、データベース103に送信する。
(画面表示)
図14に戻って、統合管理者用クライアント101、またはSE用クライアント106が要求入力1401および結果表示1408で表示される画面について図24、図25、図26を用いて説明する。
図24は、統合管理者用クライアント101において表示される画面の例である。
図24の例では、統合管理者用クライアント101において、リスト2401上にシステム名称802、リスク評価値、管理者情報803が表示される。ここで表示されるリスク評価値はシステムが関係する業務のリスク評価値の合算である。統合管理者用クライアント101では、管理対象システム情報管理テーブル502_1で管理されるシステムのうち入力フォーム2402に入力されたリスク評価値の下限より大きいものがリスク評価値の高い順に表示される。リスト2401が表示される際に、統合管理者用クライアント101からリスク評価要求が実行される。リスト2401を参照することで、統合管理者はリスクが高いシステムの管理者に対して、効率よく是正を通知することが可能になる。
次に、本実施例では、システム名称802をクリックすることで、リスト2403を表示する。リスト2403上には、システム名称802に関連するホスト名称902、機能コンポーネント名称602、機能コンポーネントのリスク評価値、脆弱性情報ID1102、猶予時間である。統合管理者用クライアント101では、管理対象システム情報管理テーブル502_2で管理されるホストのうち入力フォーム2404に入力されたリスク評価値と猶予時間下限を設定し、表示するホストを制限できる。リスト2403が表示される際に、統合管理者用クライアント101から猶予期間要求が実行される。リスト2403を参照することで、統合管理者は管理者に対して、優先的に対策しなければならない脆弱性を通知することが可能になる。
なお、本実施例では、システム名称802、リスク評価値を表示し、システム名称802をクリックすることで、システム名称802に関連する情報を表示しているが、実施形態によっては情報を表示する順番は異なっていても良い。本実施例では、データベース103により業務関連情報、システム関連情報、脆弱性情報、攻撃情報(脅威情報)、脆弱性対策情報を対応付けて管理することで、これら情報とリスク評価値をリスト化して表示するだけでなく、リスト上の情報を指定することによって、関連する情報を容易にリスト化して再表示可能にする。リスト上で関連する情報を辿れるようにすることで、例えば、SEが業務情報とリスク評価値からリスクが大きい脆弱性を知り、脆弱性情報、対策情報と辿ることで対策を立案するなど、SEは容易に実行すべき対策を判断することが可能になる。
次に、本実施例では、脆弱性情報ID1102をクリックすることで、リスト2405を表示する。リスト2405上には、直接対策情報1107または間接対策情報1108、対策後のリスク評価値が表示される。リスト2405が表示される際に、統合管理者用クライアント101から間接対策評価要求が実行される。リスト2401を参照することで、管理者に対して、推奨対策を知ることが可能になる。
図25は、SE用クライアント106において業務情報入力処理以外で表示される画面の例である。
図25の例では、SE用クライアント106において、リスト2501上にシステム名称802、リスク評価値、影響される業務名称803、機能コンポーネント名称602、CIA要件に関してリスク評価値が最も高い要件が表示される。リスト2501が表示される際に、SE用クライアント106からリスク評価要求が実行される。リスト2501を参照することで、SEは、SE自身が関連するシステムに脆弱性があることを知り、脆弱性がもたらすリスクの大きさを正確に把握することが可能となり、優先的に対策しなければならない脆弱性かどうか判断することが可能になる。
次に、本実施例では、システム名称802をクリックすることで、リスト2502を表示する。リスト2502は、既に説明したリスト2402と同一であるため、説明は省略する。
次に、本実施例では、脆弱性情報ID1102をクリックすることで、リスト2503を表示する。リスト2502は、既に説明したリスト2405と同一であるため、説明は省略する。
本実施例では、業務情報入力画面ボタン2504をクリックすることで、図26の画面に遷移する。
図26は、SE用クライアント106において業務情報入力処理時に表示される画面の例である。
図26の例では、SE用クライアント106が、入力フォーム2601においてシステム名称802、管理者情報803の入力を求める。次に、入力フォーム2602において、機能コンポーネント名称602、業務名称、機能コンポーネントが実装されるホスト名称604、機密性要件605、完全性要件606、可用性要件607の入力を求める。次に、入力フォーム2603において、機能コンポーネント名称602、業務名称、機能コンポーネントが実装されるホスト名称604、機密性要件605、完全性要件606、可用性要件607の入力を求める。次に、入力フォーム2603において、発信元機能コンポーネント名称、発信先機能コンポーネント名称、プロトコル情報704の入力を求める。次に、入力フォーム2604において、ホスト名称902、ソフトウェアID一覧904、接続ネットワークセグメント情報905、セキュリティ設定一覧906の入力を求める。次に、入力フォーム2605において、ネットワークセグメント名称1002、許可プロトコル一覧1004、アクセス権限一覧1005の入力を求める。
本実施例では、登録ボタン2606をクリックすることで、業務情報入力要求を実行する。入力要求1401には、入力フォーム2601〜2605で入力したデータが含まれる。
本実施例では、戻るボタン2607をクリックすることで、図25の画面に遷移する。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
本発明によれば、システムを運用しているエンジニアや業務システムを開発したエンジニア(SE)に対して、脆弱性とリスクと対策などのセキュリティの因果関係を理解しやすく表示できる。また、セキュリティの専門家(インシデントレスポンスチームなど)に対して、対象のシステムの算出されたリスクが業務に及ぼす影響を表示し、対策の必要性や重要性を判断することを支援することができる。また、指摘されたリスクがいつ発生し、業務システムのどこに影響するのか、特定することができる。また、多くの運用中のシステムの停止は業務に影響するため、対策までの猶予時間や、対策完了までに時間がかかる場合の対策計画を立てることを支援することができる。