(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023097605
(43)【公開日】2023-07-10
(54)【発明の名称】分析装置および分析方法
(51)【国際特許分類】
G06F 21/57 20130101AFI20230703BHJP
【FI】
G06F21/57 370
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021213817
(22)【出願日】2021-12-28
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】田村 悠
(72)【発明者】
【氏名】辻 大輔
(72)【発明者】
【氏名】デーンホフ イェンス
(72)【発明者】
【氏名】磯部 義明
(72)【発明者】
【氏名】重本 倫宏
(72)【発明者】
【氏名】川口 信隆
(57)【要約】
【課題】可用性とセキュリティの両方を考慮したCPSを提供すること。
【解決手段】分析装置は、評価対象をモデル化した評価対象モデルに所定のセキュリティ対策を適用して模擬攻撃を与えたシミュレーション結果から模擬攻撃結果を検出する第1検出部と、前記シミュレーション結果が前記評価対象の可用性に関する評価条件を遵守しているか否かを示す可用性評価結果を検出する第2検出部と、前記第1検出部によって検出された模擬攻撃結果と、前記第2検出部によって検出された可用性評価結果と、に基づいて、前記評価対象のセキュリティ対策および可用性の総合評価結果を生成する総合評価部と、を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
評価対象をモデル化した評価対象モデルに所定のセキュリティ対策を適用して模擬攻撃を与えたシミュレーション結果から模擬攻撃結果を検出する第1検出部と、
前記シミュレーション結果が前記評価対象の可用性に関する評価条件を遵守しているか否かを示す可用性評価結果を検出する第2検出部と、
前記第1検出部によって検出された模擬攻撃結果と、前記第2検出部によって検出された可用性評価結果と、に基づいて、前記評価対象のセキュリティ対策および可用性の総合評価結果を生成する総合評価部と、
を有することを特徴とする分析装置。
【請求項2】
請求項1に記載の分析装置であって、
前記総合評価結果に基づいて、前記評価対象に前記セキュリティ対策を適用すべきか否かを判断する判断部と、
前記判断部による判断結果を出力する出力部と、
を有することを特徴とする分析装置。
【請求項3】
請求項2に記載の分析装置であって、
前記判断結果に基づいて、前記評価対象を制御する制御部と、
を有することを特徴とする分析装置。
【請求項4】
請求項1に記載の分析装置であって、
前記評価対象モデルは、所定のネットワークの内部に存在する内部モデルと、前記所定のネットワークの外部に存在する外部モデルと、によって構成されており、
前記模擬攻撃結果は、前記外部モデルから前記内部モデルへの模擬攻撃の結果を含む、
ことを特徴とする分析装置。
【請求項5】
請求項1に記載の分析装置であって、
前記評価対象モデルは、所定のネットワークの内部に存在する内部モデルと、前記所定のネットワークの外部に存在する外部モデルと、によって構成されており、
前記模擬攻撃結果は、前記内部モデルから他の内部モデルへの模擬攻撃の結果を含む、
ことを特徴とする分析装置。
【請求項6】
請求項1に記載の分析装置であって、
前記評価対象モデルは、所定のネットワークの内部に存在する内部モデルと、前記所定のネットワークの外部に存在する外部モデルと、によって構成されており、
前記第2検出部は、前記内部モデルについて、前記可用性評価結果を検出する、
ことを特徴とする分析装置。
【請求項7】
請求項1に記載の分析装置であって、
前記総合評価結果は、前記可用性評価結果を含む、
ことを特徴とする分析装置。
【請求項8】
請求項1に記載の分析装置であって、
前記総合評価結果は、前記シミュレーション結果において前記模擬攻撃結果が成功した場合における前記可用性評価結果を含む、
ことを特徴とする分析装置。
【請求項9】
請求項1に記載の分析装置であって、
前記総合評価結果は、前記評価対象モデルでの前記模擬攻撃からの防御の成否を含む、
ことを特徴とする分析装置。
【請求項10】
請求項1に記載の分析装置であって、
前記総合評価結果は、前記模擬攻撃が前記評価対象モデル内における前記模擬攻撃の目標となる内部モデルに到達しなかったことを示す情報を含む、
ことを特徴とする分析装置。
【請求項11】
請求項1に記載の分析装置であって、
前記評価対象から収集した情報に基づいて、前記評価条件を生成する生成部を有し、
前記第2検出部は、前記シミュレーション結果が前記生成部によって生成された評価条件を遵守しているか否かを示す可用性評価結果を検出する、
ことを特徴とする分析装置。
【請求項12】
評価対象に関する第1パラメータの値が取り得る第1範囲と、前記第1パラメータの値が前記第1範囲内である場合に前記評価対象に関する第2パラメータの値が取り得る第2範囲と、を関連付けた関連情報を記憶する記憶部と、
前記評価対象から第1パラメータの値を検出する第1検出部と、
前記評価対象をモデル化した評価対象モデルに前記第1検出部によって検出された第1パラメータの検出値を与えたシミュレーション結果から、前記第2パラメータの計算値を検出する第2検出部と、
前記関連情報を参照して、前記検出値が前記第1範囲内の値で、かつ、前記第2検出部によって検出された計算値が前記第2範囲内の値であるか否かを判断する判断部と、
前記判断部による判断結果を出力する出力部と、
を有することを特徴とする分析装置。
【請求項13】
請求項12に記載の分析装置であって、
前記判断結果が、前記検出値が前記第1範囲であると判断された場合、前記評価対象に前記計算値を設定する設定部と、
を有することを特徴とする分析装置。
【請求項14】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する分析装置が実行する分析方法であって、
前記記憶デバイスは、評価対象に関する第1パラメータの値が取り得る第1範囲と、前記第1パラメータの値が前記第1範囲内である場合に前記評価対象に関する第2パラメータの値が取り得る第2範囲と、を関連付けた関連情報を記憶しており、
前記プロセッサは、
前記評価対象から第1パラメータの値を検出する第1検出処理と、
前記評価対象をモデル化した評価対象モデルに前記第1検出処理によって検出された第1パラメータの検出値を与えたシミュレーション結果から、前記第2パラメータの計算値を検出する第2検出処理と、
前記関連情報を参照して、前記検出値が前記第1範囲内の値で、かつ、前記第2検出処理によって検出された計算値が前記第2範囲内の値であるか否かを判断する判断処理と、
前記判断処理による判断結果を出力する出力処理と、
を実行することを特徴とする分析方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを分析する分析装置および分析方法に関する。
【背景技術】
【0002】
近年、IoT(Internet of Things)技術などの進歩により、現実世界から様々な情報を収集できるようになったことから、現実空間にある情報を丸ごとモデル化し、現実空間で起きていることをサイバー空間で再現可能となった。このように、物理的または知覚的な実世界のエンティティ、コンセプト、または概念を電子的に表現(デジタル表現)したモデル、およびそれを実現するための技術をデジタルツインという。
【0003】
デジタルツインを用いて、現実空間とサイバー空間を密に結合、協働する相互連関の仕組みは、CPS(Cyber Physical System)と呼ばれる。CPSは、現実空間にある多様なデータをセンサ等で収集し、サイバー空間で分析、知識化を行い、そこで創出した情報や価値を現実世界にフィードバックすることで、今まで人手で行っていた作業の一部または全部を自動化するという手法および技術である。
【0004】
下記特許文献1は、一連の産業資産の運用を最適化するための推奨事項を提供する方法を開示する。この方法では、一連の産業資産のデジタルツインが生成される。デジタルツインには、一連の産業資産の複数のサブシステムのそれぞれの状態を表すデータ構造が含まれている。これらの状態は、累積被害モデルを使用したシミュレーションの適用に基づいて推定される。累積被害モデルは、期間中の一連の産業資産の運用に対する外因性要因の影響をモデル化する。デジタルツインは、シミュレートされた運用パフォーマンスに関して分析され、産業資産の運用の最適化された制御を決定する。運用の最適化された制御は、特定の確率で、現在および将来の産業資産の特定の運用パフォーマンス基準を向上させるか、産業資産の運用に関連する経済的リスクを低減するために、共同で個別に計算される。産業資産の運用を最適化するため、または産業資産に関連する運用設定値を自動的に変更するために、ユーザインタフェースの使用を推奨する。
【0005】
下記特許文献2は、分析システムを開示する。この分析システムにおいて、トポロジ特定部は、診断対象システムに含まれる機器のネットワークトポロジを特定する。検出部は、機器に関するセキュリティの情報に基づいて、診断対象システムにおいて、実行可能な攻撃の流れを示す第1攻撃ルートを検出する。被害特定部は、第1攻撃ルート上の機器が攻撃された場合に受ける被害内容を示す被害情報を特定する。検出部は、被害内容に起因して実行可能な攻撃の流れを示す第2攻撃ルートを、セキュリティの情報と特定された被害情報とに基づいて検出する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】国際公開第2017/192998号
【特許文献2】国際公開第2020/195300号
【発明の概要】
【発明が解決しようとする課題】
【0007】
制御機器を含むシステムにおけるCPSの実現には、セキュリティの確保だけでなく、セキュリティ対策を含めた制御機器に対する動作指示についての可用性の考慮が必要になる。上記特許文献1および特許文献2ではその点について開示されていない。
【0008】
制御機器を含むシステムにおいては、システムに対する操作について、動作指示対象機器の正常な動作の担保だけでなく、動作指示対象機器の影響を受ける他の機器やシステム全体に対しても負の影響を及ぼさないことが強く求められる。
【0009】
たとえば、サイバー空間で完結しているモデルと異なり、現実空間のシステムに対する動作指示は、物理的に稼働する部位を持つ制御機器の状態が変化する。誤った動作指示が与えられると、動作指示対象機器およびその影響を受ける他の機器やシステム全体の故障や、その周囲にいる作業者の負傷などにつながる。このため、負の影響はサイバー空間で完結しない。
【0010】
本発明は、可用性とセキュリティの両方を考慮したCPSを提供することを目的とする。
【課題を解決するための手段】
【0011】
本願において開示される発明の一側面となる分析装置は、評価対象をモデル化した評価対象モデルに所定のセキュリティ対策を適用して模擬攻撃を与えたシミュレーション結果から模擬攻撃結果を検出する第1検出部と、前記シミュレーション結果が前記評価対象の可用性に関する評価条件を遵守しているか否かを示す可用性評価結果を検出する第2検出部と、前記第1検出部によって検出された模擬攻撃結果と、前記第2検出部によって検出された可用性評価結果と、に基づいて、前記評価対象のセキュリティ対策および可用性の総合評価結果を生成する総合評価部と、を有することを特徴とする。
【0012】
本願において開示される発明の他の側面となる分析装置は、評価対象に関する第1パラメータの値が取り得る第1範囲と、前記第1パラメータの値が前記第1範囲内である場合に前記評価対象に関する第2パラメータの値が取り得る第2範囲と、を関連付けた関連情報を記憶する記憶部と、前記評価対象から第1パラメータの値を検出する第1検出部と、前記評価対象をモデル化した評価対象モデルに前記第1検出部によって検出された第1パラメータの検出値を与えたシミュレーション結果から、前記第2パラメータの計算値を検出する第2検出部と、前記関連情報を参照して、前記検出値が前記第1範囲内の値で、かつ、前記第2検出部によって検出された計算値が前記第2範囲内の値であるか否かを判断する判断部と、前記判断部による判断結果を出力する出力部と、を有することを特徴とす。
【発明の効果】
【0013】
本発明の代表的な実施の形態によれば、可用性とセキュリティの両方を考慮したCPSを提供することができる。前述した以外の課題、構成および効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、実施例1にかかるセキュリティシステムの構成例を示す説明図である。
【
図2】
図2は、計算機のハードウェア構成例を示すブロック図である。
【
図3】
図3は、セキュリティデジタルツインコアシステムに対するデータの送受信関係の例を示した説明図である。
【
図4】
図4は、セキュリティデジタルツインにおける、評価対象システムからデータを収集し、セキュリティデジタルツイン用のモデルを生成する処理手順例を示すシーケンス図である。
【
図5】
図5は、評価対象システムに対する操作および制御処理手順例を示すシーケンス図である。
【
図6】
図6は、セキュリティデジタルツインコアシステムの挙動手順例を示すシーケンス図である。
【
図7】
図7は、セキュリティデジタルツインコアシステムのうち、シミュレーション系機能群110に関するデータの送受信関係の例を示す説明図である。
【
図8】
図8は、セキュリティデジタルツインモデルおよび可用性評価条件リストの生成手順を示すシーケンス図である。
【
図9】
図9は、可用性評価条件リストを自動生成処理手順の例を示すシーケンス図である。
【
図10】
図10は、アクションモジュール群がモデル操作データを生成する手順例を示すシーケンス図である。
【
図11】
図11は、セキュリティデジタルツインコアシステムにおけるシミュレーションが実行されるまでの手順例を示すシーケンス図である。
【
図12】
図12は、セキュリティデジタルツインコアシステムのうち、評価/制御系機能群120に関するデータの送受信関係の例を示す説明図である。
【
図13】
図13は、
図11の範囲における、シミュレーション実行後の各種評価およびその評価結果の出力処理手順例をシーケンス図である。
【
図14】
図14は、評価対象システムに関するセキュリティデジタルツインモデルの構成例を示すブロック図である。
【
図15】
図15は、ノード情報テーブルの一例を示す説明図である。
【
図16】
図16は、脆弱性情報テーブルの一例を示す説明図である。
【
図17】
図17は、可用性評価条件リストの一例を示す説明図である。
【
図18】
図18は、
図14に示したセキュリティデジタルツインモデルを用いた、評価対象システムへのモデル操作データによる第1攻撃例を示す説明図である。
【
図19】
図19は、
図14に示したセキュリティデジタルツインモデルを用いた、評価対象システムへのモデル操作データによる第2攻撃例を示す説明図である。
【
図20】
図20は、
図14に示したセキュリティデジタルツインモデルを用いた、評価対象システムへのモデル操作データによる第3攻撃例を示す説明図である。
【
図21】
図21は、
図14に示したセキュリティデジタルツインモデルを用いた、評価対象システムへのモデル操作データによる第4攻撃例を示す説明図である。
【
図22】
図22は、セキュリティ対策モデル操作リストの一例を示す説明図である。
【
図23】
図23は、対策αを適用した際のシミュレーション結果を示す説明図である。
【
図24】
図24は、対策βを適用した際のシミュレーション結果を示す説明図である。
【
図25】
図25は、対策γを適用した際のシミュレーション結果を示す説明図である。
【
図26】
図26は、可用性評価結果検出部による対策αの可用性評価結果の検出例を示す説明図である。
【
図27】
図27は、可用性評価結果検出部による対策βの可用性評価結果の検出例を示す説明図である。
【
図28】
図28は、可用性評価結果検出部による対策γの可用性評価結果の検出例を示す説明図である。
【
図30】
図30は、実施例2にかかるセキュリティシステムの構成例を示す説明図である。
【
図31】
図31は、稼働範囲テーブルの一例を示す説明図である。
【
図32】
図32は、パラメータ変更の検証処理手順例を示すシーケンス図である。
【
図33】
図33は、実施例2における可用性評価結果リストの一例を示す説明図である。
【発明を実施するための形態】
【実施例0015】
<セキュリティシステムの構成>
図1は、実施例1にかかるセキュリティシステムの構成例を示す説明図である。セキュリティシステムは、セキュリティデジタルツイン1と、評価対象システム2と、利用者用計算機システム3と、外部システムまたはサービス5と、デジタルツインシステム6と、を有する。
【0016】
実施例1では、セキュリティデジタルツイン1により、評価、操作および制御を行う対象のシステムを、評価対象システム2とする。また、セキュリティデジタルツイン1を操作し、評価対象システム2の評価、操作および制御を行う利用者を、利用者4とする。利用者4がセキュリティデジタルツイン1を操作するために用いる計算機を、利用者用計算機システム3とする。
【0017】
セキュリティデジタルツイン1は、セキュリティデジタルツインコアシステム100と、コアシステム操作APIインタフェース101と、システム情報収集部102と、システム制御部103と、管理機能部104と、を有する。
【0018】
セキュリティデジタルツインコアシステム100は、セキュリティデジタルツイン1の主な処理を実行する。コアシステム操作APIインタフェース101は、セキュリティデジタルツインコアシステム100のアプリケーション側インタフェースである。システム情報収集部102は、セキュリティデジタルツインコアシステム100の評価対象システム2側インタフェースのうち、評価対象システム2のシステム情報を収集する。システム制御部103は、評価対象システム2の制御を実行する。管理機能部104は、セキュリティデジタルツイン1およびセキュリティデジタルツインコアシステム100を利用者4が利用者用計算機システム3を用いて操作するためのインタフェース機能を有する。
【0019】
セキュリティデジタルツインコアシステム100は、セキュリティデジタルツイン1の主な処理を実行するシステムであり、シミュレーション系機能群110と、評価/制御系機能群120と、を有する。シミュレーション系機能群110および評価/制御系機能群120の各々の機能は、コアシステム操作APIインタフェース101によって操作および管理される。
【0020】
シミュレーション系機能群110は、評価対象システム2から収集した情報を元に評価対象システム2をサイバー空間上でデジタルツインとして再現し、評価対象システム2に対する操作を実行したり模擬攻撃を実行したりする機能群である。具体的には、たとえば、シミュレーション系機能群110は、機能として、セキュリティデジタルツインモデル生成部111と、可用性評価条件生成部112と、アクションモジュール群113と、シミュレーション実行部114と、を有する。
【0021】
評価/制御系機能群120は、シミュレーション系機能群110によって実行されたシミュレーションの結果をセキュリティおよび可用性の観点で評価し、評価対象システム2に対する制御を生成する機能群である。具体的には、たとえば、評価/制御系機能群120は、第1検出部121と、第2検出部122と、セキュリティ対策総合評価部123と、システム自動適用判断部124と、を有する。また、第1検出部121~システム自動適用判断部124以外にもアクションモジュール群113の機能によっては追加の機能および機能群を備えてもよい。なお、セキュリティデジタルツインコアシステム100の各機能の詳細は
図3以降で後述する。
【0022】
これらの他に、セキュリティデジタルツイン1は、セキュリティデジタルツインコアシステム100の自動実行を行うシステムとして任意の自動化システム105を1つ以上備えてもよい。自動化システム105の例としては、脆弱性情報の公開をトリガとして評価対象システム2の脆弱性を検査し、自動対策を実行するセキュリティ評価自動実行システムなどが挙げられる。
【0023】
また、評価対象システム2からの情報収集や評価対象システム2の制御を行う手段として、セキュリティデジタルツイン1の外部のシステムと共有するデジタルツインシステム6を備えてもよい。デジタルツインシステム6は、セキュリティデジタルツイン以外の外部システムまたはサービス5のベースとなるデジタルツインモデル生成および制御生成を行う機能などを有する。
【0024】
また、外部システムまたはサービス5からセキュリティデジタルツインコアシステム100を操作するパスとしてパス106を備えてもよい。
【0025】
また、ここまで述べたセキュリティデジタルツイン1を構成する機能、および機能群である角四角で表記されるブロックにおいては、その機能を実現する目的において複数の機能から構成されてもよいし、ストレージやデータベースなどの任意の記憶システムを個別に有してもよい。
【0026】
また、セキュリティデジタルツイン1およびセキュリティデジタルツインコアシステム100においては、
図1に記載のない、システム全体ないしはシステムを構成する一部の機能で利用可能なストレージやデータベースなどの任意の記憶システムを個別に有してもよい。
【0027】
また、セキュリティデジタルツイン1およびそれを構成するシステム、機能、機能群においては
図1に記載のない通信パスを有してもよい。
【0028】
<計算機のハードウェア構成>
図2は、計算機のハードウェア構成例を示すブロック図である。計算機200は、
図1に示したセキュリティデジタルツイン1、評価対象システム2、利用者用計算機システム3、外部システム5、デジタルツインシステム6の総称である。
【0029】
計算機200は、プロセッサ201と、記憶デバイス202と、入力デバイス203と、出力デバイス204と、通信インタフェース(通信IF)205と、を有する。プロセッサ201、記憶デバイス202、入力デバイス203、出力デバイス204、および通信IF205は、バス206により接続される。プロセッサ201は、計算機200を制御する。記憶デバイス202は、プロセッサ201の作業エリアとなる。また、記憶デバイス202は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス202としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス203は、データを入力する。入力デバイス203としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナ、マイク、センサがある。出力デバイス204は、データを出力する。出力デバイス204としては、たとえば、ディスプレイ、プリンタ、スピーカがある。通信IF205は、ネットワークと接続し、データを送受信する。
【0030】
なお、計算機200に記憶されているプログラムやデータの一部またはすべては、予め計算機200が備える記憶デバイス202の非一時的な領域に格納されていてもよいし、必要に応じて、ネットワークに接続された他の装置の非一時的記憶装置から、または、図示していないインタフェースに接続される非一時的な記憶媒体から、記憶デバイス202の非一時的な領域に格納されてもよい。
【0031】
また、
図1に示したセキュリティデジタルツイン1、評価対象システム2、利用者用計算機システム3、外部システム5、デジタルツインシステム6は、たとえば、
図2に例示したようなハードウェア構成を有する1台以上の計算機200の上で実行されることにより、後述する各処理を実現することができる。
【0032】
<セキュリティデジタルツインコアシステム100に対するデータの送受信関係>
図3は、セキュリティデジタルツインコアシステム100に対するデータの送受信関係の例を示した説明図である。セキュリティデジタルツインコアシステム100内部のデータ送受信関係は
図7以降で述べる。
【0033】
まず、評価対象システム2とセキュリティデジタルツインコアシステム100およびその経路上のシステム情報収集部102、システム制御部103、デジタルツインシステム6の関係性について述べる。
【0034】
セキュリティデジタルツイン1は、システム情報収集部102によって評価対象システム2から評価対象システム2を構成する機器群のシステム情報やシステムの動作を表現する生データ300を取得する。取得した生データ300はシステム情報収集部102で構造化されたデータ301に変換され、セキュリティデジタルツインコアシステム100内部に送られる。
【0035】
セキュリティデジタルツインコアシステム100内部で生成された制御命令は、セキュリティデジタルツインコアシステム100内部からシステム制御部103に構造化された制御命令データ302として送信される。
【0036】
システム制御部103は、構造化された制御命令データ302を、評価対象システム2を構成する機器において制御命令データ302による制御対象機器の制御に最適な形に変換し、制御命令303を制御対象機器に送信する。
【0037】
なお、この過程において、システム情報収集部102およびシステム制御部103の機能を、デジタルツインシステム6が外部システム5との共通機能として実行してもよい。また、システム情報収集部102およびシステム制御部103の機能を実行しなくても、デジタルツインシステム6が、構造化されたデータ301、制御命令データ302を中継し、セキュリティデジタルツインコアシステム100に最適な形に変換する機能を提供してもよい。
【0038】
つぎに、利用者4、利用者用計算機システム3およびセキュリティデジタルツイン1の関係性について述べる。セキュリティデジタルツイン1を利用する利用者4は、利用者用計算機システム3を用いて、セキュリティデジタルツイン1にパス310によりアクセスする。
【0039】
その際、セキュリティデジタルツイン1のユーザインタフェースとしてセキュリティデジタルツイン1は管理機能部104を備える。セキュリティデジタルツイン1の操作方法として、たとえば、利用者用計算機システム3に備わるWebブラウジングソフトウェアを用いて操作するWebアプリケーションとして管理機能部104を用いてもよい。また、セキュリティデジタルツイン1を操作する専用のクライアントアプリケーションソフトウェアを利用者用計算機システム3にインストールさせ、クライアントアプリケーションソフトウェアの通信先として管理機能部104を用いてもよい。
【0040】
また、管理機能部104は、GUI(Graphical User Interface)によって操作画面を利用者用計算機システム3に表示してもよいし、CUI(Command-Line User Interface)によって操作する機能を利用者用計算機システム3に提供してもよい。
【0041】
つぎに、セキュリティデジタルツインコアシステム100およびそのインタフェースであるコアシステム操作APIインタフェース101と、セキュリティデジタルツインコアシステム100を制御する管理機能部104と、自動化システム105と、外部システム5との関係性について述べる。
【0042】
利用者用計算機システム3から管理機能部104にパス310を経由して行われた操作はパス306により、コアシステム操作APIインタフェース101を経由してセキュリティデジタルツインコアシステム100の操作が行われる。
【0043】
パス307では、パス306でセキュリティデジタルツインコアシステム100に送られた命令や操作の結果などを利用者用計算機システム3および利用者4に返答するためのデータが管理機能部104に送られる。
【0044】
同様に、外部システム5からはパス308およびコアシステム操作APIインタフェース101を経由してセキュリティデジタルツインコアシステム100に操作が行われ、その応答がパス309を経由して送られる。
【0045】
同様に、自動化システム105からの命令はパス304およびコアシステム操作APIインタフェース101を経由してセキュリティデジタルツインコアシステム100に送られ、その応答がパス305を経由して自動化システム105に送られる。
【0046】
最後に、利用者用計算機システム3および外部システム5はパス311によって外部システム5を操作する機能を有してもよい。また、外部システム5は、デジタルツインシステム6からシステム情報をパス312によって取得してもよいし、評価対象システム2を操作するための情報を、パス313を経由してデジタルツインシステム6に送信してもよい。
【0047】
<セキュリティデジタルツイン用のモデル生成処理手順>
図4は、セキュリティデジタルツイン1における、評価対象システム2からデータを収集し、セキュリティデジタルツイン用のモデルを生成する処理手順例を示すシーケンス図である。
図4では、システム情報収集部102が評価対象システム2から情報を収集し、セキュリティデジタルツインコアシステム100にデータを送る手順について述べている。以下、その手順を説明する。なお、
図4では、デジタルツインシステム6をシステム情報収集部102として利用する場合について、点線で指し示している。その場合、以下の説明において「システム情報収集部102」を「デジタルツインシステム6」と読み替えることが可能である。
【0048】
まず、システム情報収集部102において、情報収集トリガーが発生する(ステップS400)。情報収集トリガーとしては、たとえば、時間単位で発生するトリガー、セキュリティデジタルツインコアシステム100からの要求によるトリガーなどが挙げられる。
【0049】
つぎに、システム情報収集部102は、ステップS400の情報収集トリガーに基づいて評価対象システム2に対してシステム情報やシステム動作データの生データ300を要求する(ステップS401)。
【0050】
評価対象システム2を構成する機器群は、ステップS401の要求に基づいて、システム情報収集部102にシステム情報やシステムの動作データの生データ300を送信する(ステップS402)。なお、ステップS400、ステップS401の過程を経ずに評価対象システム2の機器群がステップS402を実行してもよい。
【0051】
システム情報収集部102は、ステップS402により生データ300を受け取ると、生データ300を構造化データ301に変換し、その内部に蓄積する(ステップS403)。なお、構造化データ301を蓄積する場所や方法は任意の場所および方法でよい。たとえば、ファイル単位でシステム情報収集部102と同じ場所に保存する形や、セキュリティデジタルツイン1で共有するデータベースを用意し、そこに保存する形などがある。
【0052】
システム情報収集部102は、ステップS403が実行された後、直ちにセキュリティデジタルツインコアシステム100に構造化データ301を送信してもよいし、セキュリティデジタルツインコアシステム100から要求があるまでシステム情報収集部102で蓄積してもよい(ステップS404)。
【0053】
つぎに、システム情報収集部102からセキュリティデジタルツインコアシステム100にデータを送る手順を述べる。
【0054】
まず、セキュリティデジタルツインコアシステム100をトリガーにデータを収集する場合、セキュリティデジタルツインコアシステム100においてモデル生成トリガーが発生する(ステップS410)。モデル生成トリガーはステップS400同様に任意のトリガーでよい。
【0055】
つぎに、セキュリティデジタルツインコアシステム100は、ステップS410に基づき、システム情報収集部102にデータ送信要求を実行する(ステップS411)。ここまでは、セキュリティデジタルツインコアシステム100がデータを収集する場合に、システム情報収集部102にデータ送信要求を実行するまでの流れである。
【0056】
つぎに、システム情報収集部102が自らデータをセキュリティデジタルツインコアシステム100に送る場合、システム情報収集部102でまずデータ送信トリガーが発生する(ステップS412)。データ送信トリガーはステップS400同様に任意のトリガーでよい。また、ステップS403から連続してデータの送信を行う場合、ステップS403の終了がステップS412となる。
【0057】
システム情報収集部102は、データ送信要求を受信した場合(ステップS411)、または、データ送信トリガーが発生した場合(ステップS412)、システム情報収集部102で蓄積している構造化データ301をセキュリティデジタルツインコアシステム100に送信する(ステップS413)。
【0058】
最後に、セキュリティデジタルツインコアシステム100は、ステップS413で受信した構造化データ301を用いて、モデル生成などの内部処理を実行する(ステップS414)。
【0059】
<評価対象システム2に対する操作および制御処理手順>
図5は、評価対象システム2に対する操作および制御処理手順例を示すシーケンス図である。
図5では、セキュリティデジタルツイン1は、セキュリティデジタルツインコアシステム100で何らかの結果を得て、評価対象システム2に対して操作および制御を行う。なお、
図5では、デジタルツインシステム6をシステム制御部103として利用する場合について、点線で指し示している。その場合、以下の説明において「システム制御部103」を「デジタルツインシステム6」と読み替えることが可能である。
【0060】
まず、セキュリティデジタルツインコアシステム100で評価および制御の要求が発生し(ステップS500)、それに基づきセキュリティデジタルツインコアシステム100で評価処理が実行され、制御要求が生成される(ステップS501)。ここのステップの詳細は
図6以降で説明するが、
図5では、セキュリティデジタルツインコアシステム100の機能として何らかの制御要求が生成される手順が行われたことを示す。
【0061】
つぎに、セキュリティデジタルツインコアシステム100は、ステップS501で生成された制御要求を、システム制御部103に対して構造化された制御命令データ302として送信する(ステップS502)。
【0062】
システム制御部103は、ステップS502で構造化された制御命令データ302を受信すると、内部処理を実行する(ステップS503)。内部処理(ステップS503)は、たとえば、制御命令データ302で指定された評価対象システム2内の機器に適した制御命令に変換する処理である。
【0063】
つぎに、ステップS503で生成された制御命令を評価対象システム2の対象機器に対して送信する(ステップS504)。これに基づき、対象機器で制御が実行される(ステップS505)。
【0064】
つぎに、システム制御部103は、ステップS505の制御結果をセキュリティデジタルツインコアシステム100で確認するため、評価対象システム2の対象機器に対して、ステップS505の制御結果を要求する(ステップS506)。
【0065】
評価対象システム2の対象機器は、ステップS506の要求を受けると、制御結果である制御後の状態をシステム制御部103に送信する(ステップS507)。
【0066】
システム制御部103は、ステップS507の制御結果を受信すると、受信した制御結果をセキュリティデジタルツインコアシステム100で解釈可能な形に変換する内部処理を実行する(ステップS508)。
【0067】
最後に、システム制御部103は、ステップS508で変換された制御結果を、処理結果返答としてセキュリティデジタルツインコアシステム100に送信する(ステップS509)。
【0068】
<セキュリティデジタルツインコアシステム100の挙動手順例>
図6は、セキュリティデジタルツインコアシステム100の挙動手順例を示すシーケンス図である。
図6では、セキュリティデジタルツイン1において、利用者4がセキュリティデジタルツイン1およびその主な機能を司るセキュリティデジタルツインコアシステム100を操作し、評価対象システム2の評価、制御、操作を要求した際の、主にセキュリティデジタルツインコアシステム100の挙動の手順例を示す。なお、破線614内の処理は、評価対象システム2に対して何らかの制御、操作を伴う場合に実行される処理であり、評価のみを実行する場合は当該処理は実行されない。また、破線615内の処理は、制御処理の実行可否を利用者4に問い合わせる処理だが、この処理は実行しても実行しなくてもよい。また、処理によって破線615内の処理を実行するか否かを分けてもよい。
【0069】
まず、利用者用計算機システム3は、利用者4の操作により、セキュリティデジタルツイン1の評価、制御および操作の要求の入力を受け付ける(ステップS600)。これに基づき、利用者用計算機システム3は管理機能部104に対して評価、制御および操作の要求を実行する(ステップS601)。
【0070】
管理機能部104は、ステップS601による評価、制御および操作の要求をセキュリティデジタルツインコアシステム100の各機能部に転送する(ステップS602)。セキュリティデジタルツインコアシステム100は、評価処理および操作処理を実行する(ステップS603)。
【0071】
つぎに、セキュリティデジタルツインコアシステム100は、ステップS603の処理結果に基づき、制御処理が必要な場合は、制御処理を生成する(ステップS604)。この際、制御処理に関して利用者4に実行の確認が必要な場合、セキュリティデジタルツインコアシステム100は、管理機能部104に確認要求を送信する(ステップS605)。管理機能部104は、確認要求を受信すると、利用者用計算機システム3に制御処理実行確認の入力を要求する(ステップS606)。
【0072】
利用者用計算機システム3は、利用者4の操作により、ステップS606により利用者用計算機システムに表示された制御処理実行確認の可否の入力を受け付け(ステップS607)、その応答を管理機能部104に送信する(ステップS608)。この時、ステップS607で入力された応答が制御処理可だった場合は、管理機能部104は、セキュリティデジタルツインコアシステム100に対し、制御処理実行を命令する(ステップS609)。
【0073】
つぎに、制御処理を実行する場合、セキュリティデジタルツインコアシステム100は、ステップS609に突入したことを
図5のステップS500における評価および制御の要求のトリガーとし、
図5のステップS500~ステップS509に基づいて制御処理を実行し、処理結果応答(ステップS509)を取得する(ステップS610)。
【0074】
つぎに、セキュリティデジタルツインコアシステム100は、評価処理および操作処理のみの場合はステップS603の処理結果を、制御処理を含む場合はステップS603およびステップS611の処理結果を、結果応答として管理機能部104に送信する(ステップS611)。
【0075】
管理機能部104は、ステップS611の結果応答を利用者用計算機システム3に転送する(ステップS612)。利用者用計算機システム3は、ステップS612の結果応答を受信すると、その表示画面に表示する(ステップS613)。利用者4は、表示された結果応答を確認する。
【0076】
なお、ステップS600~ステップS613で述べた手順は、
図3における自動化システム105や、外部システム5に対して適用してもよい。その場合、利用者4、利用者用計算機システム3、管理機能部104に相当する部分が自動化システム105、外部システム5となる。また、外部システム5については、パス311を経由して利用者4、利用者用計算機システム3の操作によって動作してもよい。また、その他の方法によって、
図1のパス106に直接接続される機能およびシステムや、管理機能部104に接続する形でステップS600~ステップS613で述べた手順を実行してもよい。
【0077】
<シミュレーション系機能群110に関するデータの送受信関係>
図7は、セキュリティデジタルツインコアシステム100のうち、シミュレーション系機能群110に関するデータの送受信関係の例を示す説明図である。以下、各機能とその関係性について述べる。
【0078】
システム情報収集部102からセキュリティデジタルツインコアシステム100に送られた構造化データ301は、セキュリティデジタルツインモデル生成部111および可用性評価条件生成部112に入力される。
【0079】
セキュリティデジタルツインモデル生成部111は、セキュリティデジタルツイン1における様々なシミュレーションおよび評価を実行する上で必要なシステムのモデルであるセキュリティデジタルツインモデル700を生成する。可用性評価条件生成部112は、システムの可用性を評価する上で必要な条件を備えたリストである可用性評価条件リスト701を生成する。
【0080】
アクションモジュール群113は、セキュリティデジタルツインモデル700に対して行われる任意の操作を生成する機能群である。アクションモジュール群113は、セキュリティデジタルツイン1におけるコア機能の一つで、評価対象システム2に対して実行したい操作を、モデルに対する操作を示すモデル操作データ702を生成する。
【0081】
評価対象システム2に対して実行したい操作の例としては、
図1の外部システムまたはサービス5が評価対象システム2に対して試みようとしている制御命令、評価対象システム2の脆弱性を攻撃した際に発生する影響を評価するために行われる模擬攻撃、評価対象システム2に存在する脆弱性を除去するために評価対象システム2に対して適用を試みているセキュリティ対策が挙げられる。
【0082】
アクションモジュール群113は、コアシステム操作APIインタフェース101から送られるモデルに対する操作の要求、およびセキュリティデジタルツインモデル生成部111から送られてくるセキュリティデジタルツインモデル700に基づいて、モデル操作データ702を生成し、シミュレーション実行部114に送信する。セキュリティデジタルツインモデル700は、評価対象システム2をモデル化したデータである。
【0083】
コアシステム操作APIインタフェース101は、管理機能部104、自動化システム105、外部システムまたはサービス5からのセキュリティデジタルツインコアシステム100に対する要求を受信する。コアシステム操作APIインタフェース101は、セキュリティデジタルツインモデル700の生成要求、可用性評価条件リスト701の生成要求、アクションモジュール群113への操作の要求703、およびシミュレーションの実行命令704のような、セキュリティデジタルツインコアシステム100の内部機能へ操作や命令を伝達し、それに基づくシミュレーションの結果705を受信し、要求送信元に対してその結果を応答する。
【0084】
シミュレーション実行部114は、コアシステム操作APIインタフェース101を経由したシミュレーション実行命令704により、セキュリティデジタルツインモデル700、可用性評価条件リスト701、モデル操作データ702を用いて、可用性およびセキュリティを考慮したCPSの観点でシミュレーションを実行する。シミュレーション実行部114は、シミュレーションの結果705をコアシステム操作APIインタフェース101および評価/制御系機能群120に送信する。
【0085】
<セキュリティデジタルツインモデル700および可用性評価条件リスト701の生成手順>
図8は、セキュリティデジタルツインモデル700および可用性評価条件リスト701の生成手順を示すシーケンス図である。
図8では、システム情報収集部102からシステム情報を収集し、セキュリティデジタルツインモデル生成部111および可用性評価条件生成部112でセキュリティデジタルツインモデル700および可用性評価条件リスト701が生成される手順例を示す。なお、破線810は
図4にてステップS410~ステップS414で述べた内容である。
【0086】
セキュリティデジタルツインモデル700および可用性評価条件リスト701の生成は、
図4ステップS410~ステップS414で述べた通り、モデル生成トリガーの発生(ステップS410)およびデータ送信トリガーの発生(ステップS412)によって開始される。そのうち、モデル生成トリガーは、たとえば、コアシステム操作APIインタフェース101の要求により発生する場合がある。
【0087】
この場合、コアシステム操作APIインタフェース101は、モデル生成要求を受信すると(ステップS800)、セキュリティデジタルツインモデル生成部111および可用性評価条件生成部112にモデル生成要求を送信する(ステップS801)。これにより、モデル生成トリガーの発生(ステップS410)が引き起こされる。以下、ステップS410~ステップS414はすでに述べた通りである。
【0088】
最後に、セキュリティデジタルツインモデル生成部111および可用性評価条件生成部112は、モデルの生成(ステップS414)が完了すると、その結果をコアシステム操作APIインタフェース101に送信する(ステップS802)。コアシステム操作APIインタフェース101は、その結果をモデル生成要求(ステップS800)の要求元に送信する(ステップS803)。
【0089】
上述した可用性評価条件生成部112は、予め利用者4が作成した可用性評価条件リスト701を読み出してもよいし、可用性評価条件リスト701を自動生成してもよい。可用性評価条件リスト701を自動生成する場合について具体的に説明する。
【0090】
<可用性評価条件リスト701を自動生成処理手順>
図9は、可用性評価条件リスト701を自動生成処理手順の例を示すシーケンス図である。以下、手順を述べる。コアシステム操作APIインタフェース101は、可用性評価条件リスト701の生成要求を受信する(ステップS900)。可用性評価条件リスト701の生成要求は、たとえば、利用者4の操作による利用者用計算機システム3から、自動化システム105から、または外部システムまたはサービス5から送信される。
【0091】
コアシステム操作APIインタフェース101は、可用性評価条件リスト701の生成要求を受信すると、可用性評価条件生成部112に送信する(ステップS901)。
【0092】
可用性評価条件生成部112は、可用性評価条件リスト701の生成要求を受信すると、システム情報収集部102に、要求された可用性条件の生成に関連する評価対象システム2を構成する機器システムの正常系の動作データを要求する(ステップS902)。正常系の動作とは、当該機器システムが問題なく正常に動作しているときの動作を指す。この動作を示すデータは、たとえばアプリケーションやシステムのログなどが挙げられる。
【0093】
システム情報収集部102は、システム動作データを評価対象システム2に要求し(ステップS903)、システム動作データを評価対象システム2から受信する(ステップS904)。なお、ステップS903、ステップS904を含む破線911については、ステップS900に基づいて実行されてもよく、
図4における情報収集トリガー発生(ステップS400)によって実行されてもよい。なお、情報収集トリガー発生(ステップS400)によって実行された場合は、システム情報収集部102は、システム情報収集部102内でストアしているシステム動作データを読み出すものとする。また、情報収集トリガー発生(ステップS400)によって取得したシステム動作データとステップS900に基づいて破線911で取得したデータの両方を用いてもよい。
【0094】
システム情報収集部102は、評価対象システム2のシステム動作データをシステム正常系の動作データとして可用性評価条件生成部112に返答する(ステップS905)。
【0095】
可用性評価条件生成部112は、システム正常系の動作データを取得すると、ステップS900で要求された可用性条件に係るシステム動作データを抽出し、分析で利用できるように変換する(ステップS906)。たとえば、ステップS902の説明で述べたログを用いた動作データ取得例では、可用性評価条件生成部112は、ログから要求された可用性条件に係る項目を抽出し、構造化されたデータに変換する。
【0096】
可用性評価条件生成部112は、抽出したシステム動作データから正常系の成立条件を抽出する(ステップS907)。具体的には、たとえば、可用性評価条件生成部112は、抽出したシステム動作データを元に、評価対象システム2が可用性を満たす条件を抽出する。可用性を満たす条件を抽出する方法としては、予めリストアップされた一般的な正常系動作項目と突き合わせて該当する項目を選択する方法や、システム動作を解析可能な構造化データに変換することで条件を抽出する方法などがある。
【0097】
つぎに、可用性評価条件生成部112は、ステップS907で生成されたデータを保存する(ステップS908)。これにより、後述する
図11におけるS1105で送信する可用性評価条件が予め用意される。最後に、可用性評価条件生成部112は、ステップS908までの結果をコアシステム操作APIインタフェース101に返答し(ステップS909)、可用性評価条件リスト701の生成要求元に送信する(ステップS910)。
【0098】
<モデル操作データ702の生成処理手順>
図10は、アクションモジュール群113がモデル操作データ702を生成する手順例を示すシーケンス図である。以下にその手順を示す。まず、コアシステム操作APIインタフェース101は、モデル操作データ702の生成要求を受信する(ステップS1000)。コアシステム操作APIインタフェース101は、生成要求を受信すると、当該生成要求をアクションモジュール群113に送信する(ステップS1001)。
【0099】
つぎに、アクションモジュール群113は、モデル生成に必要なセキュリティデジタルツインモデル700を、セキュリティデジタルツインモデル生成部111に要求する(ステップS1002)。
セキュリティデジタルツインモデル生成部111は、ステップS1002のモデル送信要求を受信すると、アクションモジュール群113にセキュリティデジタルツインモデル700を送信する(ステップS1003)。
【0100】
アクションモジュール群113は、ステップS1003でセキュリティデジタルツインモデル700と、モデル操作データ702の生成要求と、を受信すると、モデル操作データ702を生成する(ステップS1004)。
【0101】
最後に、アクションモジュール群113は、ステップS1004のモデル操作データ702をコアシステム操作APIインタフェース101に送信し(ステップS1005)、モデル操作データ702の生成要求の送信元に、モデル操作データ702を送信する(ステップS1006)。
【0102】
<セキュリティデジタルツインコアシステム100におけるシミュレーション実行処理手順>
図11は、セキュリティデジタルツインコアシステム100におけるシミュレーションが実行されるまでの手順例を示すシーケンス図である。以下、手順を説明する。まず、コアシステム操作APIインタフェース101は、シミュレーション実行命令704を受信する(ステップS1100)。コアシステム操作APIインタフェース101は、受信したシミュレーション実行命令704を、シミュレーション実行部114に送信する(ステップS1101)。
【0103】
つぎに、シミュレーション実行部114は、モデル取得要求をセキュリティデジタルツインモデル生成部111に送信する(ステップS1102)。セキュリティデジタルツインモデル生成部111は、当該モデル取得要求を受信すると、セキュリティデジタルツインモデル700をシミュレーション実行部114に送信する(ステップS1103)。
【0104】
また、シミュレーション実行部114は、条件リスト取得要求を可用性評価条件生成部112に送信する(ステップS1104)。可用性評価条件生成部112は、当該条件リスト取得要求を受信すると、可用性評価条件リスト701をシミュレーション実行部114に送信する(ステップS1106)。
【0105】
また、シミュレーション実行部114は、モデル操作データ取得要求をアクションモジュール群113に送信する(ステップS1106)。アクションモジュール群113は、当該モデル操作データ取得要求を受信すると、モデル操作データ702をシミュレーション実行部114に送信する(ステップS1107)。
【0106】
なお、セキュリティデジタルツインモデル生成部111、可用性評価条件生成部112、アクションモジュール群113での処理過程については
図8および
図10ですでに述べた通りである。この時、ステップS1100と同時に
図8および
図10における最初の要求であるステップS800、ステップS1000が実行されてもよいものとする。
【0107】
その場合、セキュリティデジタルツインモデル700、可用性評価条件リスト701、モデル操作データ702の取得要求に関する応答は、ステップS800、ステップS1000による要求によるモデル生成が完了するのを待つものとする。また、ステップS1102~ステップS1103、ステップS1104~ステップS1105、ステップS1106~ステップS1107の3つの組み合わせについては、便宜上ステップ番号を割り当てているが、非同期に取得してもよいし、組み合わせの順序を変えてもよい。
【0108】
シミュレーション実行部114は、セキュリティデジタルツインモデル700、可用性評価条件リスト701、モデル操作データ702の取得が完了した後、シミュレーション実行命令(ステップS1100)に基づいてシミュレーションを実行する(ステップS1108)。
【0109】
シミュレーション実行部114は、ステップS1108の実行が完了したら、そのシミュレーション結果705を評価/制御系機能群120およびコアシステム操作APIインタフェース101に送信する(ステップS1109)。なお、評価/制御系機能群120で実行されるステップS1110、ステップS1111については
図12以降で述べる。
【0110】
最後に、コアシステム操作APIインタフェース101は、受信したシミュレーション結果705を、シミュレーション実行命令704の送信元に送信する(ステップS1112)。
【0111】
<評価/制御系機能群120に関するデータの送受信関係>
図12は、セキュリティデジタルツインコアシステム100のうち、評価/制御系機能群120に関するデータの送受信関係の例を示す説明図である。以下、各機能とその関係性について述べる。
【0112】
シミュレーション系機能群110は、シミュレーション結果705を、コアシステム操作APIインタフェース101、第1検出部121および第2検出部122に送信する。
【0113】
第1検出部121は、アクションモジュール群113によって生成されたモデル操作データ702に模擬攻撃に関するモデル操作データ702が含まれていた際に、シミュレーション結果705からその模擬攻撃に関するモデル操作データ702を検出する。第1検出部121は、検出された模擬攻撃に関するモデル操作データ702を模擬攻撃結果1201としてコアシステム操作APIインタフェース101およびセキュリティ対策総合評価部123に送る。
【0114】
第2検出部122は、可用性評価条件リスト701に基づき、シミュレーション実行部114で行われたシミュレーションにおける可用性評価結果1202を検出する。
【0115】
第2検出部122は、検出された可用性評価結果1202をコアシステム操作APIインタフェース101、システム自動適用判断部124に送る。また、第2検出部122は、アクションモジュール群113によって生成されたモデル操作データ702に模擬攻撃に関するモデル操作が含まれていた場合、およびアクションモジュール群113によって生成されたモデル操作データ702にセキュリティ対策に関するモデル操作が含まれていた場合は、セキュリティ対策総合評価部123にも可用性評価結果1202を送信する。
【0116】
セキュリティ対策総合評価部123は、シミュレーション系機能群110で行われたシミュレーションにセキュリティに関するものが含まれていた場合に、セキュリティと可用性の両面でそのシミュレーション結果705を評価する。具体的には、たとえば、セキュリティ対策総合評価部123は、評価対象システム2に対して適用を予定していた操作がセキュリティと可用性の両面で問題がないか判断する。セキュリティ対策総合評価部123は、評価結果である攻撃リスク評価データ1203を、システム自動適用判断部124に送る。
【0117】
システム自動適用判断部124は、評価対象システム2に対して適用することを想定し、アクションモジュール群113で発行されたモデル操作データ702の操作や対策を、可用性評価結果1202、攻撃リスク評価データ1203に基づいて、評価対象システム2に対して自動的に適用してよいか判断する。また、システム自動適用判断部124は、複数の操作が入力されていた場合は、それらを比較検討し、どの操作が最も適しているかを判断する。
【0118】
自動適用の判断においては、利用者4により予め判断の閾値などが設定されてもよいし、機械学習などの任意の判定技術を用いて判断をしてもよい。また、自動的に判断できない場合について、システム自動適用判断部124は、コアシステム操作APIインタフェース101を経由して、利用者4に対してその適用の可否について応答を要求してもよい。システム自動適用判断部124は、実際に制御命令を実行する場合は、構造化された制御命令1205をシステム制御部103に送る。システム制御部103は、制御命令1205により、適用可能とされた対策を評価対象システム2に設定する。また、自動適用の可否を問わず、その適用可否結果および制御命令1204をコアシステム操作APIインタフェース101に対して送る。
【0119】
<シミュレーション実行後の各種評価およびその評価結果の出力処理手順>
図13は、
図11の範囲における、シミュレーション実行後の各種評価およびその評価結果の出力処理手順例をシーケンス図である。以下、手順を説明する。なお、破線1312はシミュレーション系機能群110で行われたシミュレーションにセキュリティに関する処理が含まれていた場合に実行されるステップである。また、破線1313は破線1312が実行されない場合に実行されるステップである。
【0120】
まず、
図11に示すステップを経てシミュレーション結果705が確定する(ステップS1300)。その後、シミュレーション系機能群110は、シミュレーション結果705を、コアシステム操作APIインタフェース101および第2検出部122に送信する。また、シミュレーションにセキュリティに関する処理が含まれていた場合は、シミュレーション系機能群110は、シミュレーション結果705を、第1検出部121にも送信する(ステップS1301)。
【0121】
つぎに、第2検出部122は、可用性評価条件リスト701に基づき、シミュレーション実行部114で行われたシミュレーションにおける可用性評価結果1202を検出する。
【0122】
つぎに、第2検出部122は、ステップS1302で検出した可用性評価結果1202をコアシステム操作APIインタフェース101に送信する(ステップS1303)。
【0123】
つぎに、前述した破線1312の条件を満たす場合、以下ステップS1304~ステップS1308に至るステップを実行する。
【0124】
まず、第1検出部121は、模擬攻撃に関するモデル操作データ702を検出する(ステップS1304)。つぎに、第1検出部121は、ステップS1304の模擬攻撃に関するモデル操作データ702を、模擬攻撃結果1201としてコアシステム操作APIインタフェース101およびセキュリティ対策総合評価部123に送信する(ステップS1305)。
【0125】
また、第2検出部122は、可用性評価結果1202をセキュリティ対策総合評価部123に送信する(ステップS1306)。
【0126】
セキュリティ対策総合評価部123は、ステップS1305とステップS1306により模擬攻撃結果1201と可用性評価結果1202を受信すると、当該シミュレーションにおける評価対象システム2に適用を予定していた操作に関して、セキュリティと可用性の両面で評価する(ステップS1307)。
【0127】
つぎに、セキュリティ対策総合評価部123は、ステップS1307の総合評価結果をコアシステム操作APIインタフェース101およびシステム自動適用判断部124に送信する(ステップS1308)。
【0128】
破線1312の条件を満たさない場合は、破線1313のステップとして、第2検出部122は、ステップS1303でコアシステム操作APIインタフェース101に送信した可用性評価結果1202を、システム自動適用判断部124に送信する(ステップS1309)。
【0129】
システム自動適用判断部124は、破線1312、破線1313の各最終ステップS1308、ステップS1309が実行された後、受け取った総合評価結果(ステップS1308)および評価結果(ステップS1309)を元に、評価対象システム2への自動適用を判断する(ステップS1310)。
【0130】
最後に、システム自動適用判断部124は、ステップS1310の自動適用判断結果を、コアシステム操作APIインタフェース101に送信するとともに、評価対象システム2への自動適用が行われる場合はその制御命令1205をシステム制御部103に送信する(ステップS1311)。
【0131】
以上、
図1~
図13で述べた形で、評価対象システム2に対して行われる操作について、セキュリティデジタルツイン1によって、セキュリティと可用性の双方を考慮したCPSを実現することが可能になる。
【0132】
以下、セキュリティデジタルツイン1を用いたCPS実現例として、評価対象システム2のセキュリティリスクを評価した上で、可用性に影響を与えずにセキュリティ対策を立案、実行する例について述べる。
【0133】
<セキュリティデジタルツインモデルの構成例>
図14は、評価対象システム2に関するセキュリティデジタルツインモデル700の構成例を示すブロック図である。セキュリティデジタルツインモデル700は、情報系システムと制御系システムが融合した小規模システムをモデル化したデータであり、具体的には、たとえば、モデルデータとして、社外サービス提供計算機1405と、社内サービス提供計算機1410と、を有する。
【0134】
社外サービス提供計算機1405は、社外顧客1401および社外顧客1401が利用する社外顧客計算機1400に対してWebサービスを提供するコンピュータモデルである。社内サービス提供計算機1410は、社内の従業員1409および従業員1409の利用する従業員OA計算機1408に対してWebサービスを提供するコンピュータモデルである。
【0135】
また、セキュリティデジタルツインモデル700は、情報ネットワーク1411に接続する制御機器監視および操作用計算機1407を経由して制御ネットワーク1414に接続されている。セキュリティデジタルツインモデル700は、制御機器を制御するPLC(Programmable Logic Controller)1412と、PLC1412によって制御される制御機器1413と、を有する。PLC1412および制御機器1413は、制御ネットワーク1414に接続されている。
【0136】
そのほか、セキュリティデジタルツインモデル700は、インターネット1402との接続面においてファイアウォール1403およびWAF(Web Application Firewall)1404を、モデルデータとして有する。また、セキュリティデジタルツインモデル700は、インターネット1402と社内情報ネットワーク1411の境界に、社内ネットワークルータ1406をモデルデータとして有する。
【0137】
すなわち、インターネット1402を境界として、ファイアウォール1403、WAF1403、社外サービス提供計算機1405、社内ネットワークルータ1406、制御機器監視および操作用計算機1407、従業員OA計算機、従業員1409、社内サービス提供計算機1410、情報ネットワーク1411、PLC1412、制御機器1413、制御ネットワーク1414は、社内ネットワーク内に存在するモデルデータである。一方、社外顧客計算機1400および顧客1401は、インターネット1402を境界として、社内ネットワーク外に存在するモデルデータである。
【0138】
以下、セキュリティデジタルツイン1がセキュリティリスク評価より評価対象システム2の脆弱性の有無をセキュリティデジタルツインモデル700で評価し、脆弱性がある場合、その対策をセキュリティと可用性の両面で評価し、適切な対策を立案する処理について説明する。
【0139】
実施例1においては、社外サービス提供計算機1405および社内サービス提供計算機1410に脆弱性があるものとする。具体的には、社外サービス提供計算機1405および社内サービス提供計算機1410にインストールされているコマンドライン操作アプリケーションであるBashの脆弱性である「ShellShock」を、Webアプリケーションを実行するために必要となる機能の一つであるCGI(Common Gateway Interface)を経由して悪用することで、社外サービス提供計算機1405および社内サービス提供計算機1410において、任意のコマンドが可能となる脆弱性があるものとする。この脆弱性は、Webサーバ(本例では社外サービス提供計算機1405および社内サービス提供計算機1410)にWebブラウザからアクセスが可能であれば実行可能な脆弱性であることが分かっている。
【0140】
図14において、顧客1401および従業員1409を除いた構成要素1400~1414は、そのままセキュリティデジタルツインモデル700として表現される。この時、ティデジタルツインモデル700においては、構成要素1400~1414(顧客1401および従業員1409を除く)を構成する様々な情報が記録される。以降、構成要素1400~1414(顧客1401および従業員1409を除く)を「ノード」と称す。
【0141】
記録される情報としては、たとえば、ハードウェアの種類やベンダがある。ノードが情報機器の場合は、オペレーティングシステム、そのバージョン、インストールされているソフトウェアとそのバージョン、IPアドレスがある。
【0142】
<ノード情報テーブル>
図15は、ノード情報テーブルの一例を示す説明図である。ノード情報テーブル1500は、ノード毎に記録される情報を表形式で表現したデータテーブルである。ノード情報テーブル1500は、セキュリティデジタルツイン1として動作する計算機200の記憶デバイス202に格納される。
【0143】
ノード情報テーブル1500は、フィールドとして、たとえば、ノード1501と、Bashのバージョン1502と、CGIの有効性1503と、を有する。これら以外にも、脆弱性に関連する情報がフィールドとして存在してもよい。
【0144】
ノード1501は、構成要素1400~1414(顧客1401および従業員1409を除く)を一意に特定する。Bashのバージョン1502は、そのノード1501にインストールされたBashのバージョン番号である。CGIの有効性1503は、CGIが有効になっているか否かを示すフラグであり、「Yes」が有効、「No」が無効を示す。
【0145】
図14の例では、ノード情報テーブル1500を参照すると、社外サービス提供計算機1405および社内サービス提供計算機1410は、ともにBashのバージョン1502が「4.2」であり、CGIは有効を示す「Yes」であることがわかる。
【0146】
<脆弱性情報テーブル>
図16は、脆弱性情報テーブルの一例を示す説明図である。脆弱性情報テーブル1600は、アクションモジュール群113の中の模擬攻撃の生成を行うアクションモジュールが保有する脆弱性情報の例の一部を表形式で示したデータテーブルである。脆弱性情報テーブル1600は、セキュリティデジタルツイン1として動作する計算機200の記憶デバイス202に格納される。
【0147】
脆弱性情報テーブル1600は、一例として、前述したBashの脆弱性「ShellShock」に関する脆弱性情報を記憶する。具体的には、たとえば、脆弱性情報テーブル1600は、フィールドとして、CVE(Common Vulnerabilities and Exposures)番号1601と、脆弱性名1602と、スコア1603と、ターゲット1604と、ターゲットバージョン1605と、セキュリティリスク1606と、を有する。同一行の各フィールド1601~1606の値の組み合わせが1つの脆弱性情報を規定する。
【0148】
CVE番号1601は、脆弱性を一意に識別する番号である。脆弱性名1602は、CVE番号1601で特定される脆弱性に付与された名称である。スコア1603は、脆弱性が評価対象システム2に及ぼす影響を0~10で数値化したデータである。スコア1603の数値が小さければ評価対象システム2に及ぼす影響が小さく、大きければ影響が大きい。
【0149】
ターゲット1604は、CVE番号1601で特定される脆弱性が存在するアプリケーションの名称である。ターゲットバージョン1605は、CVE番号1601で特定される脆弱性が存在するアプリケーションのバージョンである。セキュリティリスク1606は、CVE番号1601で特定される脆弱性がどのようなセキュリティリスクがあるかを説明する文である。
図16では、CVE番号1601が「CVE―2014-6271」および「CVE―2014-7169」で。脆弱性名1602が「ShellShock」である脆弱性情報について記憶されている。
【0150】
<可用性評価条件リスト701>
図17は、可用性評価条件リスト701の一例を示す説明図である。可用性評価条件リスト701は、可用性評価条件を規定する情報であり、セキュリティデジタルツイン1として動作する計算機200の記憶デバイス202に格納される。
【0151】
可用性評価条件リスト701は、評価対象ノード1701と、可用性評価項目1702と、違反許容時間1703と、違反許容例外1704と、を規定する。評価対象ノード1701は、評価対象システム2において、可用性の評価対象となるノードを規定する。実施例1では、社外サービス提供計算機1405および社内サービス提供計算機1410を、評価対象ノード1701とする。
【0152】
可用性評価項目1702は、評価対象ノード1701について何をどのように評価するかを規定する。違反許容時間1703は、評価対象ノード1701が可用性評価項目1702を満たさないことを許容する時間を規定する。違反許容例外1704は、評価対象ノード1701が可用性評価項目1702を満たさないことを許容する条件を規定する。
【0153】
可用性評価条件リスト701は、社外サービス提供計算機1405については、事前告知のあるメンテナンス以外で計算機1405およびその上で動いているWebサービスが停止することを許容していないことを規定する。
【0154】
また、同様に、可用性評価条件リスト701は、社内サービス提供計算機1410については、事前告知のあるメンテナンス時の他、営業日の営業時間外や営業日外においては計算機1410およびそのうえで動いているWebサービスが停止することを許容しており、また、そうでない場合においても最大10分間停止を許容していることを規定する。
【0155】
<モデル操作データ702による攻撃例>
つぎに、アクションモジュール群113のうち模擬攻撃の生成を行うアクションモジュールで生成されるモデル操作データ702による攻撃例を
図18~
図21を用いて説明する。
【0156】
図18は、
図14に示したセキュリティデジタルツインモデル700を用いた、評価対象システム2へのモデル操作データ702による第1攻撃例を示す説明図である。
図18において、攻撃者1800および攻撃者計算機1801は、インターネット1402を境界として、社内ネットワーク外に存在するモデルデータである。
【0157】
第1攻撃例では、攻撃者1800が攻撃者計算機1801を用いてインターネット1402経由で社外サービス提供計算機1405に攻撃を実行し(パス1802)、任意コード実行により、社内情報ネットワーク1411に侵入し(パス1803)、制御機器監視/操作用計算機1407を経由して、PLC1412を操作し(パス1804)、制御機器1413に不正な命令を実行し(パス1805)、制御機器1413に致命的な障害を発生させる。
【0158】
このパス1802~1805が模擬攻撃の攻撃経路を示すモデル操作データ702であり、パス1802~1805を通る模擬攻撃をセキュリティデジタルツイン1に与えてシミュレーションを実行することにより、パス1802~1805を通った場合の模擬攻撃結果が、第1検出部121によって検出される。
【0159】
図19は、
図14に示したセキュリティデジタルツインモデル700を用いた、評価対象システム2へのモデル操作データ702による第2攻撃例を示す説明図である。
図19において、攻撃者1800および攻撃者計算機1801は、インターネット1402を境界として、社内ネットワーク外に存在するモデルデータである。
【0160】
第2攻撃例では、攻撃者1800が攻撃者計算機1801を用いてインターネット1402経由で社外サービス提供計算機1405に模擬攻撃を実行し(パス1900)、社外サービス提供計算機1405に対して致命的な障害を発生させ、そのサービスを停止させる。
【0161】
このパス1900が模擬攻撃に関するモデル操作データ702であり、パス1900を通る模擬攻撃をセキュリティデジタルツイン1に与えてシミュレーションを実行することにより、パス1900を通った場合の模擬攻撃結果が、第1検出部121によって検出される。
【0162】
図20は、
図14に示したセキュリティデジタルツインモデル700を用いた、評価対象システム2へのモデル操作データ702による第3攻撃例を示す説明図である。
図20において、攻撃者1800および攻撃者計算機1801は、インターネット1402を境界として、社内ネットワークの内部に存在するモデルデータである。
【0163】
第3攻撃例では、攻撃者1800が攻撃者計算機1801を任意の方法で社内情報ネットワーク1411に接続し、社内情報ネットワーク1411および社内ネットワークルータ1406経由で社外サービス提供計算機1405に侵入、攻撃し(パス2000)、社外サービス提供計算機1405に対して致命的な障害を発生させ、そのサービスを停止させる。
【0164】
このパス2000が模擬攻撃に関するモデル操作データ702であり、パス2000を通る模擬攻撃をセキュリティデジタルツイン1に与えてシミュレーションを実行することにより、パス2000を通った場合の模擬攻撃結果が、第1検出部121によって検出される。
【0165】
図21は、
図14に示したセキュリティデジタルツインモデル700を用いた、評価対象システム2へのモデル操作データ702による第4攻撃例を示す説明図である。第4攻撃例では、攻撃者1800が攻撃者計算機1801を任意の方法で社内情報ネットワーク1411に接続し、社内情報ネットワーク1411を経由して社内サービス提供計算機1410に攻撃を実行し(パス2100)、社内サービス提供計算機1410に対して致命的な障害を発生させ、そのサービスを停止させる。
【0166】
このパス2100が模擬攻撃に関するモデル操作データ702であり、パス2100を通る模擬攻撃をセキュリティデジタルツイン1に与えてシミュレーションを実行することにより、パス2100を通った場合の模擬攻撃結果が、第1検出部121によって検出される。
【0167】
<セキュリティ対策モデル操作リスト>
図22は、セキュリティ対策モデル操作リストの一例を示す説明図である。セキュリティ対策モデル操作リスト2200は、アクションモジュール群113のうちセキュリティ対策に関するモデル操作を行うアクションモジュールで生成された、セキュリティ対策例を表形式で示したデータである。
【0168】
セキュリティ対策モデル操作リスト2200は、対策種別2201と、実行処理2202と、処理実行対象2203と、備考2204と、を規定する。対策種別2201は、上述した模擬攻撃を示すモデル操作データ702に対するセキュリティ対策の種類を規定する。実施例1では、たとえば、モデル操作データ702に対するセキュリティ対策として3種類の対策α、β、γが規定される。
【0169】
実行処理2202は、対策種別2201で特定されるセキュリティ対策として、セキュリティデジタルツインモデル700に対して実行される処理を規定する。処理実行対象2203は、対策種別2201で特定されるセキュリティ対策として、実行処理2202が適用されるノードを規定する。備考2204は、実行処理2202によって発生する事象を規定する。
【0170】
セキュリティ対策モデル操作リスト2200において、対策αは、実際の評価対象システム2内の社外サービス提供計算機および社外サービス提供計算機に対しBashの脆弱性を修正するパッチを適用し、再起動を実行する操作を行うセキュリティ対策である。また、対策αにおいては、対策種別2201である評価対象システム2内の社外サービス提供計算機および社外サービス提供計算機の再起動が必要となり、その操作に10分かかることもわかる。
【0171】
また、対策βは、評価対象システム2内のWAFに対してBashの脆弱性の悪用を防ぐルールを適用するセキュリティ対策である。そして、対策γは一切の操作を行わない。
【0172】
図14に示した評価対象システム2のセキュリティデジタルツインモデル700、
図17に示した可用性評価条件リスト701、
図18~
図21で示した4つの模擬攻撃を行うモデル操作データ702、および
図22に示した3種類のセキュリティ対策を行うためのモデル操作データ702は、シミュレーション実行部114に送信される。シミュレーション実行部114は、この受信したデータを用いて、評価対象システム2に関する対策、攻撃および防御の挙動を示すシミュレーションを実行する(ステップS1108)。
【0173】
シミュレーション実行部114は、アクションモジュール群113によって生成されたモデル操作データ702をセキュリティデジタルツインモデル700に適用し、その挙動を取得する。具体的には、たとえば、実施例1では、シミュレーション実行部114は、
図22に示した対策α、対策β、対策γをセキュリティデジタルツインモデル700にそれぞれ適用した場合に、
図18~
図21で示した4つの模擬攻撃をセキュリティデジタルツインモデル700に与えた場合のセキュリティデジタルツインモデル700の構成要素群の挙動と、
図18~
図21に示した模擬攻撃の成否(模擬攻撃結果)と、を取得する。以下、対策α~γごとのシミュレーション結果について具体的に説明する。
【0174】
<シミュレーション結果>
図23は、対策αを適用した際のシミュレーション結果を示す説明図である。対策αは、社外サービス提供計算機1405および社内サービス提供計算機1410にパッチを適用することで脆弱性を取り除くセキュリティ対策である。
【0175】
社外サービス提供計算機1405にパッチが適用された防御2300は、攻撃者1800および攻撃者計算機1801からの社外サービス提供計算機1405への侵入が失敗したことを示す。社内サービス提供計算機1410にパッチが適用された防御2301は、攻撃者1800および攻撃者計算機1801からの社内サービス提供計算機1410への侵入が失敗したことを示す。すなわち、
図18~
図21に示したすべての模擬攻撃は失敗したことになる。
【0176】
挙動リスト2302は、対策αを適用した際の評価対象ノード1701の状態を表形式で示したデータである。挙動2303は、対策αが適用されて模擬攻撃を受けた際の評価対象ノード1701の動作である。実行時間2304は挙動2303が実行された所要時間である。原因2305は挙動2303が引き起こされた元になる事象である。
【0177】
対策αでは、対策αの適用を行った際に実行時間2304が10分の挙動2303として再起動が実行されることが、セキュリティ対策モデル操作リスト2200の実行処理2202で特定される。このため、社外サービス提供計算機1405および社内サービス提供計算機1410において、所要時間10分間の再起動が、対策α適用を原因2305として発生した。
【0178】
図24は、対策βを適用した際のシミュレーション結果を示す説明図である。対策βは、WAF1404に適用するセキュリティ対策である。その結果、対策βが適用されたWAF1404の防御2400により、攻撃者1800および攻撃者計算機1801による、パス1802,1900で示した社外からの模擬攻撃を使った侵入の試みが失敗した。当該失敗は、
図18および
図19に相当する。しかし、パス2000、2100で示した社内からの模擬攻撃は防御されておらず、成功したことを示す。
【0179】
挙動リスト2401は、対策βを適用した際の評価対象ノード1701の状態を表形式で示したデータである。パス2000、2100で示した社内からの模擬攻撃の成功による影響は、挙動2303に示したように、社内の攻撃者1800からの模擬攻撃により、社外サービス提供計算機1405および社内サービス提供計算機1410が停止したことを示す。なお、対策適用を原因2305にする停止はなかった。
【0180】
図25は、対策γを適用した際のシミュレーション結果を示す説明図である。対策γは「対策を行わない」というセキュリティ対策であるため、当初の状況のまま放置されている。その結果、
図25に示すように、
図18~
図21で述べたすべての模擬攻撃が成功している。
【0181】
挙動リスト2500は、対策γを適用した際の評価対象ノード1701の状態を表形式で示したデータである。社内および社外の攻撃者1800からの模擬攻撃により、評価対象ノード1701の挙動2303は、停止した。なお、対策適用を原因2305にする停止は、セキュリティ対策として特別な操作を行っていないため、なかった。
【0182】
シミュレーション実行部114は、シミュレーション結果705として、挙動リスト2302,2401,2500を評価/制御系機能群120に送信する(ステップS1109)。
【0183】
評価/制御系機能群120のうち、第1検出部121は、
図27~
図29に示したモデル操作データ702に基づいて、模擬攻撃の成否および影響範囲を判定する。第1検出部121は、模擬攻撃の成否にについて、
図18~
図21に示したパス1802~1805、1900、2000、2100を通り、模擬攻撃目標のコンピュータモデルまでたどり着けたかどうかによって判定する。たどり着けたパスが1つでもあれば、模擬攻撃の成功であり、たどり着けたパスが1つもなければ模擬攻撃は失敗となる。
【0184】
第1検出部121は、影響範囲について、攻撃者1800が侵入したコンピュータモデルによって判定する。たとえば、
図18のモデル操作データ702による模擬攻撃の場合、攻撃者1800が攻撃者計算機1801を模擬攻撃の起点とし、模擬攻撃目標の制御機器1413まで到達すれば模擬攻撃は成功となり、この際の影響範囲は、社外サービス提供計算機1405、制御機器監視および操作用計算機1407、PLC1412、制御機器1413となる。この模擬攻撃結果については、すでに
図27~
図29にて説明した通りである。
【0185】
つぎに、第2検出部122は、
図27~
図29に示した挙動リスト2302、2401、2500を、
図17に示した可用性評価条件リスト701で評価し、各対策α、β、γと模擬攻撃による可用性の影響を可用性評価結果として検出する。
【0186】
<可用性評価結果の検出例>
図26は、第2検出部122による対策αの可用性評価結果の検出例を示す説明図である。対策αの可用性評価結果リスト2600は、可用性評価条件リスト701に、対策αについての合否/原因2601を追加したデータである。合否/原因2601は、合否を示す「〇」または「×」と、原因2305と、を含む。合否の「〇」は合格、すなわち、可用性評価項目1702を遵守していることを示す(可用性有り)。合否の「×」は不合格、すなわち、可用性評価項目1702に違反していることを示す(可用性無し)。
【0187】
社外サービス提供計算機1405については、可用性評価結果リスト2600の合否/原因2601において、対策αが適用されたことを示す挙動リスト2302の原因2305が記録される。また、対策αの適用により、挙動リスト2302の挙動2303である再起動の実行時間2304の10分が可用性評価条件リスト701の可用性評価項目1702および違反許容時間1703に違反したため(違反許容例外1704の適用もなし)、合否が「×」に決定される。
【0188】
一方、社内サービス提供計算機1410については、可用性評価結果リスト2600の合否/原因2601において、対策αが適用されたことを示す挙動リスト2302の原因2305が記録される。また、対策αの適用により、挙動リスト2302の挙動2303である再起動の実行時間2304の10分が可用性評価条件リスト701の可用性評価項目1702および違反許容時間1703を遵守しているため、合否が「〇」に決定される。
【0189】
図27は、第2検出部122による対策βの可用性評価結果の検出例を示す説明図である。対策βの可用性評価結果リスト2700は、可用性評価条件リスト701に、対策βについての合否/原因2601を追加したデータである。
【0190】
挙動リスト2401で示した通り、社内からの模擬攻撃を原因2305として社外サービス提供計算機1405および社内サービス提供計算機1410の挙動2303は、いずれも「停止」となる。挙動2303の「停止」は、可用性評価条件リスト701の可用性評価項目1702および違反許容時間1703に違反(電源が0秒以上入っていない)するため(違反許容例外1704の適用もなし)、合否が「×」に決定される。
【0191】
図28は、第2検出部122による対策γの可用性評価結果の検出例を示す説明図である。対策γの可用性評価結果リスト2800は、可用性評価条件リスト701に、対策γについての合否/原因2601を追加したデータである。
【0192】
挙動リスト2500で示した通り、社内および社外からの模擬攻撃を原因2305として社外サービス提供計算機1405および社内サービス提供計算機1410の挙動2303は、いずれも「停止」となる。挙動2303の「停止」は、可用性評価条件リスト701の可用性評価項目1702および違反許容時間1703に違反(電源が0秒以上入っていない)するため(違反許容例外1704の適用もなし)、合否が「×」に決定される。
【0193】
<総合評価結果>
図29は、総合評価結果の一例を示す説明図である。総合評価結果2900は、
図13に示したように、セキュリティ対策総合評価部123が、セキュリティ/可用性総合評価を実行することにより生成され(ステップS1307)、システム自動適用判断部124に送信されるデータである。
【0194】
総合評価結果2900は、対策種別2201と、評価項目2902と、対象別評価結果2903と、を有する。評価項目2902は、可用性(対策適用)と、可用性(攻撃実行)と、防御成功(~社外)と、防御成功(~社内)と、を有する。対象別評価結果2903は、社外サーバ(社外サービス提供計算機1405)と社内サーバ(社内サービス提供計算機1410)とに分けて格納される。
【0195】
可用性(対策適用)とは、評価対象ノード1701に対策種別2201で特定されるセキュリティ対策が適用された場合に、セキュリティ対策総合評価部123が、評価対象ノード1701が継続して稼働できるか否かを評価するという項目である。具体的には、たとえば、
図22に示した対策種別2201のセキュリティ対策をアクションモジュール群113が実行(すなわち、セキュリティデジタルツインモデル700に適用)したことによって評価対象システム2の可用性にどのような影響が出たかを評価するという項目である。
【0196】
対象別評価結果2903が「〇」の場合、その対策種別2201で示す対策は、可用性評価条件リスト701の可用性評価項目1702を遵守したことを示す。一方、対象別評価結果2903が「×」の場合、その対策種別2201で示すセキュリティ対策は、可用性評価条件リスト701の可用性評価項目1702に違反したことを示す。
【0197】
可用性評価結果リスト2600を例に挙げて説明する。評価対象ノード1701が社外サービス提供計算機1405である場合、可用性評価項目1702における合否/原因2601はすべて「×」である。したがって、社外サービス提供計算機1405の対象別評価結果2903も、可用性無しを示す「×」になる。
【0198】
可用性(攻撃実行)とは、セキュリティ対策総合評価部123が、第1検出部121によって検出された模擬攻撃結果を参照して、セキュリティ対策が適用された状態において模擬攻撃が成功した結果、評価対象システム2の可用性にどのような影響が出たかを評価するという項目である。
【0199】
たとえば、セキュリティ対策が適用された場合、処理実行対象2203である社外サービス提供計算機1405および社内サービス提供計算機1410が実行処理2202として、パッチ適用および再起動を実行し、社内サービス提供計算機1410が実行処理2202の再起動に10分かかったとする。
【0200】
その後、
図18~
図21に示した模擬攻撃がセキュリティ対策を施した評価対象システム2に対して成功した場合であっても、可用性評価条件リスト701の可用性評価項目1702をすべて遵守していれば、評価対象システム2の可用性は損なわれていない。この場合、社外サービス提供計算機1405および社内サービス提供計算機1410の対象別評価結果2903はともに成功を示す「〇」となる。
【0201】
一方、
図18~
図21に示した模擬攻撃がセキュリティ対策を施した評価対象システム2に対して成功した場合であっても、可用性評価条件リスト701の可用性評価項目1702のいずれか1つでも違反していれば、評価対象システム2の可用性は損なわれていることになる。この場合、社外サービス提供計算機1405および社内サービス提供計算機1410の対象別評価結果2903はともに失敗を示す「×」となる。
【0202】
たとえば、対策αの可用性評価結果リスト2600が得られた場合、評価対象ノード1701が社外サービス提供計算機1405であれば、合否/原因2601において、対策αが適用されても、合否が「×」、すなわち、可用性評価項目1702に違反したため、セキュリティ対策総合評価部123は、対象別評価結果2903を「×」に決定する。
【0203】
一方、評価対象ノード1701が社内サービス提供計算機1410であれば、合否/原因2601において、対策αが適用され、かつ、合否が「〇」、すなわち、可用性評価項目1702を遵守したため、セキュリティ対策総合評価部123は、対象別評価結果2903を「〇」に決定する。
【0204】
防御成功(~社外)は、対策種別2201で特定されるセキュリティ対策が適用された場合に、セキュリティ対策総合評価部123が、第1検出部121によって検出された社外からの模擬攻撃を、社外サービス提供計算機1405および社内サービス提供計算機1410がそれぞれ防御することができたか否かを評価する項目である。社外からの模擬攻撃とは、たとえば、
図18および
図19に示したパス1802~1805、1900を通る模擬攻撃である。
【0205】
社外サービス提供計算機1405に対しこの模擬攻撃がすべて成功しなかった、すなわち、社外サービス提供計算機1405を模擬攻撃のすべてのパス1802~1805、1900から防御できた場合、社外サービス提供計算機1405に障害が発生しないため、社外サービス提供計算機1405の対象別評価結果2903は、防御成功を示す「〇」となる。
【0206】
一方、
図18および
図19における模擬攻撃を示すパス1802~1805、1900は、社内サービス提供計算機1410に到達しないため、社内サービス提供計算機1410は物理的に模擬攻撃を受けない。したがって、社内サービス提供計算機1410の対象別評価結果2903は、「攻撃不可」となる。
【0207】
また、社外サービス提供計算機1405に対しこの模擬攻撃のいずれかが成功した、すなわち、社外サービス提供計算機1405が、模擬攻撃を示すパス1802~1805、1900を1つでも防御できなかった場合、社外サービス提供計算機1405に障害が発生するため、社外サービス提供計算機1405の対象別評価結果2903は、防御失敗を示す「×」となる。
【0208】
防御成功(~社内)は、対策種別2201で特定されるセキュリティ対策が適用された場合に、第1検出部121によって検出された社内からの模擬攻撃を、社外サービス提供計算機1405および社内サービス提供計算機1410がそれぞれ防御することができたか否かを評価する項目である。社内からの模擬攻撃とは、たとえば、
図20および
図21に示したパス2000、2100を通る模擬攻撃である。社内からの模擬攻撃の場合、攻撃者には、悪意のある社員が含まれる。
【0209】
社内サービス提供計算機1410に対しこの模擬攻撃がすべて成功しなかった、すなわち、社内サービス提供計算機1410を模擬攻撃のすべてのパス2000、2100から防御できた場合、社内サービス提供計算機1410に障害が発生しないため、社内サービス提供計算機1410の対象別評価結果2903は、防御成功を示す「〇」となる。社外サービス提供計算機1405に対しこの模擬攻撃がすべて成功しなかった場合も同様に、社外サービス提供計算機1405の対象別評価結果2903は、防御成功を示す「〇」となる。
【0210】
また、社内サービス提供計算機1410に対しこの模擬攻撃のいずれかが成功した、すなわち、社内サービス提供計算機1410が、模擬攻撃を示すパス2000、2100を1つでも防御できなかった場合、社内サービス提供計算機1410に障害が発生するため、社内サービス提供計算機1410の対象別評価結果2903は、防御失敗を示す「×」となる。社外サービス提供計算機1405に対しこの模擬攻撃がすべて成功した場合も同様に、社外サービス提供計算機1405の対象別評価結果2903は、防御失敗を示す「×」となる。
【0211】
一方、
図21における模擬攻撃を示すパス2100が検出されていない場合、社内サービス提供計算機1410には模擬攻撃は到達しないため、社内サービス提供計算機1410は物理的に模擬攻撃を受けない。したがって、社内サービス提供計算機1410の対象別評価結果2903は、「攻撃不可」となる。同様に、
図20における模擬攻撃を示すパス2000が検出されていない場合、社外サービス提供計算機1405には模擬攻撃は到達しないため、社外サービス提供計算機1405は物理的に模擬攻撃を受けない。したがって、社外サービス提供計算機1405の対象別評価結果2903は、「攻撃不可」となる。
【0212】
図29に示したように、社内サービス提供計算機1410については、対策αは対策αの適用による評価対象システム2の可用性への影響もなく、すべての模擬攻撃も防御可能であることから、対策αが最適であることがわかる。
【0213】
また、社外サービス提供計算機1405については、対策αでは対策適用において評価対象システム2の可用性の条件を満たさないこと、対策βでは対策適用における評価対象システム2の可用性の条件は満たすものの社内からの攻撃が実行可能で、それによる可用性への影響がある可能性があることがわかる。また、一切の対策を行わない対策γにおいては、攻撃リスクも高く、模擬攻撃による評価対象システム2の可用性への影響があることがわかる。
【0214】
システム自動適用判断部124は、総合評価結果2900に基づいて、評価対象システム2への自動適用の可否を判断する。具体的には、たとえば、社内サービス提供計算機1410については、セキュリティ対策ごとに、評価項目2902がすべて「〇」または「攻撃不可」であれば、システム自動適用判断部124は、当該セキュリティ対策は自動適用可能であると判断する。同様に、社外サービス提供計算機1405についても、セキュリティ対策ごとに、評価項目2902がすべて「〇」または「攻撃不可」であれば、システム自動適用判断部124は、当該セキュリティ対策は自動適用可能であると判断する。また、社内サービス提供計算機1410および社外サービス提供計算機1405の両方について、セキュリティ対策ごとに、評価項目2902がすべて「〇」または「攻撃不可」であれば、システム自動適用判断部124は、当該セキュリティ対策は自動適用可能であると判断してもよい。
【0215】
たとえば、社内サービス提供計算機1410については対策αの操作が自動適用可能と判断され(対象別評価結果2903が「〇」と「攻撃不可」)、評価対象システム2に対して当該制御が実行される。社外サービス提供計算機1405については、評価項目2902の可用性が「×」であるため、利用者4によるセキュリティデジタルツイン1に対する設定に依存する。設定例としては、システム自動適用判断部124は、対策αでは防御成功(~社内)が「〇」であるため、社内からの攻撃によるリスクは低いものと判定して、対策βを自動適用とした上で、対策αの適用について利用者4の判断を仰ぐ、などが挙げられる。
【0216】
このように、セキュリティデジタルツイン1は、評価対象システム2のセキュリティリスクを自動で判断する。そして、セキュリティデジタルツイン1は、その対策をCPSとして生成した上で当該対策によるセキュリティリスクの減少度合いを判断する。さらに、セキュリティデジタルツイン1は、評価対象システム2の可用性への影響も判断する。これにより、セキュリティデジタルツイン1は、評価対象システム2にとって最適な対策を、評価対象システム2に対して設定することが可能である。
【0217】
セキュリティデジタルツイン1を利用するメリットとして、セキュリティリスク評価だけでなく、今まで手動で行われていたセキュリティ対策の可用性評価もセキュリティデジタルツイン1内で可能になる。この場合、セキュリティデジタルツイン1は、セキュリティリスク評価および可用性評価を、これまでの手動で行われた場合と、セキュリティデジタルツイン1で自動判断した場合とを比較して出力してもよい。
【0218】
また、セキュリティデジタルツイン1は、評価対象システム2の可用性の判断において、可用性に影響がなければ、そのままセキュリティ対策を自動で適用することができる。これにより、制御システムを含む評価対象システム2においても、評価対象システム2の可用性を担保した上で、情報システムと同様な自動セキュリティ対策を実現することができる。
【0219】
このように、実施例1によれば、可用性とセキュリティの両方を考慮したCPSを提供することが可能になる。これにより、従来までは高コストな検証ステップを経ないと実施できなかった、システムへの様々な変更が可能となり、提供可能なCPSの範囲を拡張することが可能となる。また、CPS導入の上で懸念事項となりうるセキュリティの観点についても、可用性を犠牲にすることなく迅速に対策が適用可能となる。
つぎに、実施例2について説明する。実施例1では、第1検出部121が模擬攻撃結果を検出し、第2検出部122が可用性評価結果を検出したが、実施例2では、第1検出部121が評価対象システム2から第1パラメータの値を検出し、第2検出部122がセキュリティデジタルツインモデル700に第1パラメータの検出値を与えてシミュレーションを実行し、そのシミュレーション結果から、第2パラメータの計算値を検出する。なお、実施例2では、実施例1との相違点を中心に説明するため、実施例1と同一構成には同一符号を付し、その説明を省略する。
実施例2における評価対象システム2は制御システムであり、当該制御システムを管理する管理サーバ3003と、制御機器群3006に命令を行うPLC3004と、制御機器群3006と、を有する。評価対象システム2は、業務効率化を目的として、クラウドサービス3000上に構築された業務効率化システム3001を用いて、インターネット3002を経由して管理サーバ3003と連携されており、制御機器群3006の動作を最適化する仕組みが導入されている。
この仕組みにおいて、業務効率化システム3001からの操作要求の可用性検証を目的として、セキュリティデジタルツイン1が利用される。なお、制御機器用センサ3005は、セキュリティデジタルツイン1が制御機器群3006に関する追加の情報を収集するために設置したIoT機器である。
正常稼働範囲3102は、当該制御機器におけるメーカーの仕様ではないものとする。具体的には、たとえば、実際の挙動において、負荷3101の値xが制御機器にかかっている場合に、パラメータAの値yが正常稼働範囲3102内に収まるという現場の作業員における知見である。なお、この現象はパラメータBである負荷3101の値xを適切に入力した場合、制御機器の動作をコンピュータ上でシミュレーションすると再現できることが分かっている。
まず、業務効率化システム3001は、パラメータAの変更要求をセキュリティデジタルツイン1または管理サーバ3003に送信する(ステップS3200)。この際、パラメータAのタ変更要求が管理サーバ3003に送信された場合は、管理サーバ3003は、セキュリティデジタルツイン1に対して当該パラメータAの変更要求の実行可否を問い合わせる(ステップS3201)。
つぎに、セキュリティデジタルツイン1は、セキュリティデジタルツインモデル700の生成の一環として、現在の制御機器の負荷3101の値xを、制御機器用センサ3005を経由して確認する(ステップS3202)。以下、現在の制御機器の負荷3101の値xを検出値xとする。
つぎに、セキュリティデジタルツイン1は、ステップS3202で取得した検出値xを、評価対象システム2をモデルにしたセキュリティデジタルツインモデル700に与えて、シミュレーションを実行し、制御機器群3006の正常稼働を確認する(ステップS3203)。具体的には、たとえば、セキュリティデジタルツイン1は、検出値xが与えられた場合において、セキュリティデジタルツインモデル700におけるパラメータAの値y(以下、計算値yと称す)が正常稼働範囲3102内であるか否かを判断する。
より具体的には、たとえば、検出値xがα<x≦βの負荷3101であり、セキュリティデジタルツインモデル700におけるパラメータAの計算値yがa<y≦bで示す正常稼働範囲3102内であれば、制御機器群3006は正常稼働すると判断し、a<y≦bで示す正常稼働範囲3102外であれば、制御機器群3006は正常稼働しないと判断する。
セキュリティデジタルツイン1は、制御機器群3006の正常稼働が確認できた場合は、管理サーバ3003に対してパラメータAの変更実行を命令し(ステップS3204)、PLC3004に対して当該パラメータAの変更が命令される。セキュリティデジタルツイン1は、制御機器群3006の正常稼働が確認できなかった場合は、管理サーバ3003に対してパラメータAの変更実行を命令しない。
その後、セキュリティデジタルツイン1は、パラメータAの変更結果(計算値y)を業務効率化システム3001に送信する(ステップS3205)。なお、この際、ステップS3200を管理サーバ3003経由で実行していた場合は、同様にパラメータAの変更結果(計算値y)の送信も管理サーバ3003経由で実行される。
実施例2では、制御機器群3006の各々の制御機器の挙動をセキュリティデジタルツインモデル700として定義し、アクションモジュール群113では、業務効率化システム3001から指示のあったパラメータAの変更をモデル操作データ702として定義した。
セキュリティデジタルツインモデル700には、制御機器用センサ3005およびシステム情報収集部102を経由して取得された現在の制御機器群3006の負荷が設定される。
これにより、システム自動適用判断部124は、評価対象システム2の構成機器である制御機器群3006に、業務効率化システム3001からのパラメータAの値の計算値yへの変更を適用する。
以上により、セキュリティ対策以外のCPSにおいてもセキュリティデジタルツイン1を経由して、その操作のセキュリティおよび可用性における評価を実行することが可能である。これにより、従来までは当該操作による評価対象システム2への影響が分からず、CPSによる操作の範囲が限定されていた問題が解決可能である。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例および同等の構成が含まれる。たとえば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、たとえば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。