(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-18
(45)【発行日】2024-10-28
(54)【発明の名称】状態分析装置、及び状態推定方法
(51)【国際特許分類】
G05B 23/02 20060101AFI20241021BHJP
G06F 21/50 20130101ALI20241021BHJP
【FI】
G05B23/02 302Y
G05B23/02 302Z
G06F21/50
(21)【出願番号】P 2021185170
(22)【出願日】2021-11-12
【審査請求日】2024-02-22
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】甲斐 賢
(72)【発明者】
【氏名】内山 宏樹
(72)【発明者】
【氏名】石場 光朗
(72)【発明者】
【氏名】飯田 恒雄
【審査官】牧 初
(56)【参考文献】
【文献】特開2004-127989(JP,A)
【文献】国際公開第2018/220751(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 23/00-23/02
(57)【特許請求の範囲】
【請求項1】
複数のアセットを有して構成される産業制御システムの状態を推定する情報処理装置であって、
プロセッサ及びメモリを有し、
産業制御システムにおいて生じ得る状態遷移の一つ以上のシナリオを示す情報を含む状態推定モデルを記憶し、
前記アセットから発報されるアラートを時系列に並べたアラート列を前記状態推定モデルの前記シナリオと対照することにより、前記アラート列と前記シナリオとの共通性を示す指標を求めて出力する、
状態分析装置。
【請求項2】
請求項1に記載の状態分析装置であって、
前記指標は、前記状態遷移の進行の度合いを示す指標である進行度、及び前記アラート列が前記シナリオの順序に従って発報されている度合いを表す指標である発報度のうちの少なくともいずれかである、
状態分析装置。
【請求項3】
請求項2に記載の状態分析装置であって、
前記シナリオの各状態における前記進行度を設定するユーザインタフェースを提供する、
状態分析装置。
【請求項4】
請求項1に記載の状態分析装置であって、
前記シナリオ毎の前記指標をユーザインタフェースを介してユーザに提示する、
状態分析装置。
【請求項5】
請求項4に記載の状態分析装置であって、
前記状態推定モデルは複数の前記シナリオを含み、
前記シナリオを前記アラート列との前記共通性に応じてソートして、もしくは、前記共通性が大きいシナリオを強調して提示する、
状態分析装置。
【請求項6】
請求項1に記載の状態分析装置であって、
前記アセットと前記アセットを類型化した分類であるアセットクラスとを対応づけた情報、
前記アラートと前記アラートを類型化した分類であるアラートクラスとを対応づけた情報、及び、
前記シナリオと、前記状態遷移、前記アセットクラス、及び前記アラートクラスとを対応づけた情報、
を記憶し、
前記アラート列を、当該アラート列のアラートを発報した前記アセットが属するアセットクラスと前記アラートが属するアラートクラスとの組合せに対応する前記シナリオと対照することにより前記指標を求める、
状態分析装置。
【請求項7】
請求項1に記載の状態分析装置であって、
前記状態推定モデルの雛型となる情報であるベースモデルを記憶し、
前記ベースモデルを編集することにより前記シナリオを編集するユーザインタフェースを提供する、
状態分析装置。
【請求項8】
請求項6に記載の状態分析装置であって、
前記シナリオはペトリネットにより表され、プレースにアセットクラスが、トランジションに前記アセットクラスと前記アラートクラスが対応づけられる、
状態分析装置。
【請求項9】
請求項1に記載の状態分析装置であって、
前記アラート列と当該アラート列について求めた前記指標とを対応づけた情報を蓄積記憶し、
前記指標の変化の傾向に基づき前記情報と前記状態推定モデルにおける前記シナリオとの間の乖離の度合いを求める、
状態分析装置。
【請求項10】
請求項9に記載の状態分析装置であって、
前記指標は、前記状態の進行の度合いを示す指標である進行度、及び前記シナリオで定めた順序に従ってアラートの発報が生じている度合いを表す指標である発報度であり、
前記進行度の変化に対する前記発報度の変化の度合いに基づき前記乖離の度合いを求める、
状態分析装置。
【請求項11】
請求項9に記載の状態分析装置であって、
前記アラート列の各アラートを時系列順に発報して前記シナリオを辿ることにより前記指標の変化を再現し、前記指標の変化に基づき前記シナリオの前記乖離が生じている部分を特定する、
状態分析装置。
【請求項12】
請求項11に記載の状態分析装置であって、
前記再現の様子を提示するとともに、特定した前記シナリオの前記乖離が生じている箇所を修正するユーザインタフェースを提供する、
状態分析装置。
【請求項13】
請求項12に記載の状態分析装置であって、
前記アラート列の各アラートを時系列順に発報して修正後の前記シナリオを辿ることにより前記指標の変化を求めてユーザに提示する、
状体分析装置。
【請求項14】
複数のアセットを有して構成される産業制御システムの状態を推定する方法であって、
プロセッサ及びメモリを有する情報処理装置が、
産業制御システムにおいて生じ得る状態遷移の一つ以上のシナリオを示す情報を含む状態推定モデルを記憶するステップと、
前記アセットから発報されるアラートを時系列に並べたアラート列を前記状態推定モデルの前記シナリオと対照することにより、前記アラート列と前記シナリオとの共通性を示す指標を求めて出力するステップと、
を実行する、状態分析方法。
【請求項15】
請求項14に記載の状態分析方法であって、
前記情報処理装置が、
前記アラート列と当該アラート列について求めた前記指標とを対応づけた情報を蓄積記憶するステップと、
前記指標の変化の傾向に基づき前記情報と前記状態推定モデルにおける前記シナリオとの間の乖離の度合いを求めるステップと、
を更に実行する、状態分析方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、状態分析装置、及び状態推定方法に関する。
【背景技術】
【0002】
企業や官公庁等の組織を狙ったサイバー攻撃による被害が深刻化している。昨今、こうしたサイバー攻撃は、社会インフラ関連システム、電気やガス等のエネルギー制御システム、工場の生産ライン等の産業制御システムにも標的を拡大してきている。産業制御システムは、停止すれば実社会に与える影響が大きく、産業制御システムを対象としたサイバー攻撃に対する対策の重要性が高まっている。
【0003】
産業制御システムを狙ったサイバー攻撃に対するセキュリティ管理手法として、例えば、特許文献1には、ガスタービンのようなセンサ及びアクチュエータから取得したデータを正常パターンと異常パターンとに分類しておき、ガスタービンへのサイバー攻撃を、センサ及びアクチュエータから取得したデータに基づき検出することが記載されている。また、検出に用いるパラメータを設定するため、データリポジトリから監視対象に適したパラメータを検索し、検索したパラメータをカスタマイズすることが記載されている。
【0004】
また、非特許文献1には、プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)がリアクタをコントロールする際に取得されるデバイスログを入力とするプロセスマイニング手法により正常状態をモデル化し、生成したモデルに基づきPLCが出力するデバイスログの正常性を示す指標をコンフォーマンスチェック(conformance check)手法により求め、求めた指標によりサイバー攻撃を検出することが記載され
ている。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】”Anomaly detection for industrial control systems using Process Mining”, David Myers et.al, Queensland University of Technology (QUT), Computers & Security 78 (2018), pp.103-125
【発明の概要】
【発明が解決しようとする課題】
【0007】
産業制御システムを標的とするサイバー攻撃を監視する方法として、産業制御システムを構成する機器が発報する、故障やプロセスの異常や警告を示す情報(以下、「アラート」と称する。)を収集して分析する方法がある。しかし、この方法では、発報されたアラートが、機器の故障やプロセスの異常に起因するものであるのか、それともサイバー攻撃に起因するものであるのかを、監視員等の人が切り分ける必要があり、人的負担が大きいという課題がある。
【0008】
監視にかかる人的負担を軽減する方法として、例えば、特許文献1や非特許文献1に記載されている技術を用いることが考えられる。しかし、特許文献1では、振る舞いを監視するためのパラメータの設計(DOE:Design Of Experiments parameters)を手動でセットアップするために知識や経験が要求される。また、非特許文献1では、正常状態の状態推定モデルをペトリネット(Petri net)により表現するが、ペトリネットは習得の難易度
が比較的高く、監視者等に十分な知識や経験が要求される。
【0009】
本発明はこうした背景に鑑みてなされたものであり、産業制御システムの状態を容易かつ高い精度で検出することが可能な、状態分析装置、及び状態推定方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するための本発明の一つは、複数のアセットを有して構成される産業制御システムの状態を推定する情報処理装置であって、プロセッサ及びメモリを有し、産業制御システムにおいて生じ得る状態遷移の一つ以上のシナリオを示す情報を含む状態推定モデルを記憶し、前記アセットから発報されるアラートを時系列に並べたアラート列を前記状態推定モデルの前記シナリオと対照することにより、前記アラート列と前記シナリオとの共通性を示す指標を求めて出力する、
【0011】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
【発明の効果】
【0012】
本発明によれば、産業制御システムの状態を容易かつ高い精度で検出することができる。
【図面の簡単な説明】
【0013】
【
図2B】状態分析装置の実現に用いる情報処理装置の一例である。
【
図3C】トランジション管理テーブルの一例である。
【
図6】状態推定モデル生成処理の一例を説明するフローチャートである。
【
図10】状態推定処理の一例を説明するフローチャートである。
【
図11】アラート列をトランジションに読み替える処理の一例を説明する図である。
【
図12A】アラート列とシナリオを照合する処理の一例を説明する図である。
【
図12B】アラート列とシナリオを照合する処理の一例を説明する図である。
【
図14】状態推定モデル更新処理の一例を説明するフローチャートである。
【
図15A】進行度と発報度の傾向を分析する処理の一例を説明する図である。
【
図15B】進行度と発報度の傾向を分析する処理の一例を説明する図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について図面を参照しつつ詳細に説明する。尚、以下の記載及び図面は、本発明を説明するための例示に過ぎず、説明の明確化のため、適宜、省略及び簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。とくに限定しない限り、各構成要素は単数でも複数でも構わない。
【0015】
以下の説明において、符号の前に付した「S」の文字は処理ステップの意味である。また、以下の説明において、「テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「XXテーブル」等を「XX情報」と呼ぶことがある。また、識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
【0016】
図1に、一実施形態として説明する情報処理装置である状態分析装置100の概略的な構成(システムフロー図)を示している。同図に示すように、状態分析装置100は、産業制御システム(ICS(Industrial Control System)。以下、「ICS2」と称する
。)と、ICS2と通信ネットワーク5を介して通信可能に接続する情報処理装置(コンピュータ)である状態分析装置100と、を含む。
【0017】
ICS2は、例えば、電力、ガス、水道、鉄道等の社会インフラ関連システム、電力やガス等のエネルギー関連施設の制御システム、石油、化学、鉄鋼、自動車、輸送機器、精密機械、食品、製薬、ビル管理等の工場やプラント等における監視制御システム、生産ラインや加工ライン等において用いられるITシステム、IoT(Internet of Things)システム、IIoT(Industrial IoT)システム等である。
【0018】
状態分析装置100は、ICS2の物理的/論理的な動作(稼働)状態(以下、「状態」と総称する。)を監視し、ICS2の稼働状態に関する情報やセキュリティ侵害の有無等のICS2の状態に関する情報を生成し、ICS2の監視者や運用者に提供する。状態分析装置100は、ICS2を構成する機器(以下、「アセット」と称する。)が故障やプロセスの異常に起因して発報する異常や警告を示す情報(以下、「アラート」と称する。)を時系列に並べたデータであるアラート列に基づきICS2の状態を分析する。尚、アセットは、例えば、センサ、アクチュエータ、コントローラ、安全計装システム、制御サーバ、エンジニアリングワークステーション、監視制御サーバ、データヒストリアン、伝送サーバ等である。
【0019】
通信ネットワーク5は、有線方式又は無線方式の通信ネットワークであり、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、各種公
衆無線通信網、専用線等である。通信ネットワーク5は、ICS2を構成するアセットの間を通信可能に接続する通信基盤であってもよい。尚、状態分析装置100はICS2の構成要素であってもよい。
【0020】
図2Aは、状態分析装置100が備える主な機能を説明するブロック図である。同図に示すように、状態分析装置100は、記憶部110、アラート受信部120、状態推定部130、推定結果出力部140、ベースモデル生成部150、状態推定モデル生成部160、及び状態推定モデル更新部170の各機能を備える。
【0021】
上記機能のうち、記憶部110は、アラート列111、状態推定モデル112、状態推
定結果113、及びベースモデル114を記憶する。
【0022】
アラート受信部120は、ICS2を構成する装置や機器から発報(出力)されるアラートを受信し、受信したアラートを時系列に並べてアラート列111として記憶部110に管理する。また、アラート受信部120は、生成したアラート列を状態推定部130に入力する。
【0023】
状態推定部130は、アラート受信部120から入力されるアラート列を、ICS2において生じ得る状態遷移を示す一つ以上のシナリオを示す情報を含む状態推定モデル112と対照することによりアラート列とシナリオとの共通性(一致性、類似性)を示す指標を求めることによりICS2の状態を推定し、推定した結果(以下、「状態推定結果」と称する。)を状態推定結果113として記憶部110に管理する。また、状態推定部130は、監視者や運用者等のユーザにユーザインタフェースを介して状態推定結果を提示する。状態推定部130は、例えば、アラート列111が更新される度にICS2の状態を推定し直す。
【0024】
ベースモデル生成部150は、ユーザインタフェースを介してユーザと対話を行いつつ、状態推定モデル112のベース(雛型)となる汎用的なモデルであるベースモデルを生成し、生成したベースモデルをベースモデル114として記憶部110に管理する。ベースモデル生成部150は、例えば、ICS2が水力発電所のシステムである場合、関東に存在する水力発電所のシステムと関西に存在する水力発電所のシステムが共通に或いは汎用的に備えているアセットについて故障に至るまでの状態遷移のシナリオに基づくベースモデル114を生成する。
【0025】
状態推定モデル生成部160は、ベースモデル114とICS2に関する情報とに基づき、状態推定モデル112を生成する。
【0026】
状態推定モデル更新部170は、状態推定結果113に基づき状態推定モデル112を更新する。状態推定モデル更新部170は、状態推定結果113に基づき、状態推定モデル112による状態推定の乖離が生じているシナリオの特定や乖離している箇所の特定を行う。また、状態推定モデル更新部170は、ユーザインタフェースを介したユーザとの対話処理によりシナリオの修正案を生成する。また、状態推定モデル更新部170は、修正案によるシナリオの修正前後の夫々における状態推定結果113を比較可能な状態でユーザに提示し、ユーザが修正案を許容する場合は当該修正案に基づき状態推定モデル112の更新を行う。
【0027】
図2Bは、状態分析装置100の実現に用いる情報処理装置の例である。例示する情報処理装置10は、プロセッサ11、主記憶装置12(メモリ)、補助記憶装置13、入力装置14、出力装置15、及び通信装置16を備える。情報処理装置10の例として、パーソナルコンピュータ、オフィスコンピュータ、サーバ装置、スマートフォン、タブレット、汎用機(メインフレーム)等がある。
【0028】
情報処理装置10は、その全部又は一部が、例えば、クラウドシステムによって提供される仮想サーバのように、仮想化技術やプロセス空間分離技術等を用いて提供される仮想的な情報処理資源を用いて実現されるものであってもよい。また、情報処理装置10によって提供される機能の全部又は一部は、例えば、クラウドシステムがAPI(Application Programming Interface)等を介して提供するサービスによって実現してもよい。また
、情報処理装置10によって提供される機能の全部又は一部は、例えば、SaaS(Software as a Service)、PaaS(Platform as a Service)、IaaS(Infrastructure
as a Service)等を利用して実現されるものであってもよい。
【0029】
プロセッサ11は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable
Gate Array)、ASIC(Application Specific Integrated Circuit)、AI(Artificial Intelligence)チップ等を用いて構成されている。
【0030】
主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read
Only Memory)、RAM(Random Access Memory)、不揮発性メモリ(NVRAM(Non Volatile RAM))等である。セキュリティ管理システム1の各構成要素において実現される機能は、プロセッサ11が、主記憶装置12に格納(記憶)されているプログラムを読み出して実行することにより実現される。
【0031】
補助記憶装置13は、例えば、SSD(Solid State Drive)、ハードディスクドライ
ブ、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDカードや光学式記録媒体等の非一時的な記録媒体の読取/書込装置、クラウドサーバの非一時的な記憶領域等である。補助記憶装置13には、記録媒体の読取装置や通信装置16を介して、非一時的な記録媒体や非一時的な記憶装置を備えた他の情報処理装置からプログラムやデータを読み込むことができる。補助記憶装置13に格納(記憶)されているプログラムやデータは主記憶装置12に随時読み込まれる。
【0032】
入力装置14は、外部からの情報の入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、カードリーダ、ペン入力方式のタブレット、音声入力装置等である。
【0033】
出力装置15は、処理経過や処理結果等の各種情報を外部に出力するインタフェースである。出力装置15は、例えば、上記の各種情報を可視化する表示装置(液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード等)、上記の各種情報を音声化する装置(音声出力装置(スピーカ等))、上記の各種情報を文字化する装置(印字装置等)である。尚、例えば、情報処理装置10が通信装置16を介して他の装置との間で情報の入力や出力を行う構成としてもよい。
【0034】
入力装置14と出力装置15は、ユーザとの間での対話処理(情報の受け付け、情報の提供等)を実現するユーザインタフェースを構成する。
【0035】
通信装置16は、他の装置との間の通信を実現する装置である。通信装置16は、通信ネットワーク5を介して、所定の通信プロトコルに準拠した他の装置との間の通信を実現する、有線方式又は無線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USBモジュール等である。
【0036】
情報処理装置10には、例えば、オペレーティングシステム、ファイルシステム、DBMS(DataBase Management System)(リレーショナルデータベース、NoSQL等)、KVS(Key-Value Store)等が導入されていてもよい。
【0037】
続いて、ベースモデル114について説明する。尚、状態推定モデル112もベースモデル114と同様の構成を有する。
【0038】
ベースモデル114は、ICS2の状態を表す1つ以上のシナリオを、情報処理装置等による機械的な処理が可能な形式で表現した情報(データ)である。以下では、上記型式がペトリネット(Petri net)である場合を例として説明する。但し、上記型式は必ずし
も限定されない。ペトリネットは、2種類のノード(node)(プレース(place)、トランジ
ション(transition))を有する二部有向グラフ(bipartite digraph)(以下、「グラフ」
と称する。)である。プレースは、円で表されるノードであり、条件を表す。トランジションは、棒又は箱で表されるノードであり、事象を表す。これらを結ぶアーク(arc、矢印)は、条件や事象の間の関係を表す。
【0039】
ベースモデル114は、シナリオを表すグラフ、シナリオを定義するプレースに関する情報が管理されるプレース管理テーブル50、トランジション管理テーブル60、アセットクラステーブル70、及びアラートクラステーブル80の各情報を含む。
【0040】
【0041】
図3Aは、ベースモデル114のグラフ40の例である。同図に示すように、例示するベースモデル114は、シナリオX41とシナリオY42の2つのシナリオを含む。このうちシナリオX41は、ICS2の状態を示すプレース「P_X0」、「P_X1」、「P_X2」、及び「P_X3」と、状態の遷移の条件を示すトランジション「T_X1」、「T_X2」、及び「T_X3」とが、アークで接続された構造を有する。また、シナリオY42は、ICS2の状態を、シナリオX41とは異なる観点から定義したプレース「P_Y0」、「P_Y1」、「P_Y2」、及び「P_Y3」と、状態の遷移の条件を示すトランジション「T_Y1」、「T_Y1’」、「T_Y2」、「T_Y3」、及び「T_Y3’」とが、アークで接続された構造を有する。
【0042】
例示するシナリオX41は、「P_X0」から「P_X3」へと直線的に状態が遷移していくのに対し、例示するシナリオY42は、トランジション「T_Y1」或いは「T_Y1’」のいずれか一方が成立(OR条件が成立)した場合にのみ、「P_Y0」から「P_Y1」への遷移が起きるという構造を含む。また、シナリオY42は、トランジション「T_Y3」と「T_Y3’」の両方が成立(AND条件が成立)した場合に「P_Y2」から「P_Y3」へと遷移するという構造を含む。
【0043】
図3Bは、例示するベースモデル114のプレース管理テーブル50である。同図に示すように、プレース管理テーブル50は、シナリオ51、プレース52、及び進行度53の各項目を有する1つ以上のエントリ(レコード)で構成される。
【0044】
上記項目のうち、進行度53には、ICS2の状態の進行の度合いを示す指標である進行度が格納される。同図に示すシナリオX41の例では、進行度として、プレース「P_X0」に「0」が、「P_X1」に「1/3」が、「P_X2」に「2/3」が、プレース「P_X3」に「3/3=1」が、夫々設定されている。
【0045】
図3Cは、例示するベースモデル114のトランジション管理テーブル60である。同図に示すように、例示するトランジション管理テーブル60は、シナリオ61、トランジション62、アセットクラス63、及びアラートクラス64の各項目を有する1つ以上のエントリ(レコード)で構成される。
【0046】
上記項目のうち、アセットクラス63には、ICS2のアセットを類型化する指標であるアセットクラスが格納される。アラートクラス64には、アラートを類型化する指標であるアラートクラスが格納される。トランジション管理テーブル60のトランジション62毎のエントリは、アセットクラス63から対応するアラートクラス64のアラートが発報された場合に対応するエントリのトランジション62が発火することを示している。
【0047】
このように、トランジション管理テーブル60において、各シナリオは、アセットを類型化したアセットクラスとアラートを類型化したアラートクラスによって定義(表現)されている。そのため、アセットのアセットクラスへの割り当てと、アラートのアラートクラスへの割り当てを適切に行うことで、本実施形態の状態分析装置100は多様な形態を取り得るICS2に広く適用することができる。また、ICS2の構成や機能が変化した場合は柔軟に対応することができ、ICS2の運用を容易にすることができる。
【0048】
図4Aは、例示するベースモデル114のアセットクラステーブルである。同図に示すように、アセットクラステーブル70は、サブクラス71、アセットクラス72、説明73の各項目を有する一つ以上のエントリ(レコード)で構成される。
【0049】
上記項目のうち、サブクラス71には、アセットクラスの分類単位であるサブクラス(物理サブクラス、論理サブクラス)が格納される。アセットクラス72には、当該サブクラスに属するアセットクラスの識別子であるアセットクラスIDが格納される。本例では、物理サブクラスに「ASC1」~「ASC5」の各アセットクラスが定義され、論理サブクラスに「ASC6」~「ASC11」の各アセットクラスが定義されている。説明73には、各アセットクラスを説明する情報が格納される。
【0050】
このように、アセットクラスを物理サブクラスと論理サブクラスに分けて、即ち、アセットクラスを物理的な観点と論理的な観点に分けて定義することで、観点毎の状態変化の特徴に則したシナリオを適切に定義することができ、状態分析装置100によるICS2の状態推定の精度を向上することができる。
【0051】
図4Bは、例示するベースモデル114のアラートクラステーブルである。同図に示すように、アラートクラステーブル80は、サブクラス81、アセットクラス82、アラートクラス83、説明84の組合せからなる1つ以上のエントリ(レコード)で構成される。
【0052】
上記項目のうち、サブクラス81には、「物理サブクラス」又は「論理サブクラス」が格納される。アセットクラス82には、アセットクラスIDが格納される。アラートクラス83には、アラートクラスの識別子であるアラートクラスIDが格納される。説明84には、当該アラートクラスの説明が格納される。本例では、サブクラス81の物理サブクラスに「ALC1」~「ALC27」のアセットクラス82が対応づけられ、サブクラス81の論理サブクラスに「ALC28」から「ALC45」のアセットクラス82が対応づけられている。
【0053】
このように、アラートクラスを物理サブクラスと論理サブクラスに分けて、即ち、アラートクラスを物理的な観点と論理的な観点に分けて定義することで、観点毎の状態変化の特徴に則したシナリオを適切に定義することができ、状態分析装置100によるICS2の状態推定の精度を向上することができる。
【0054】
続いて、以上に例示したベースモデル114に基づき生成される状態推定モデル112について説明する。
【0055】
図5は、状態推定モデル112の例である。状態推定モデル112は、ICS2毎に生成される。例示する状態推定モデル112は、アセット91、アラート92、アセットクラス93、及びアラートクラス94の各項目を有する1つ以上のエントリ(レコード)で構成される。
【0056】
上記項目のうち、アセット91には、ISC2のシステムを構成するアセットの識別子
であるアセットIDが格納される。アラート92には、当該アセットが出力するアラートの識別子であるアラートIDが格納される。アセットクラス93には、当該アセットに対応するアセットクラスのアセットクラスIDが格納される。アラートクラス94には、当該アセットクラスに対応するアラートクラスのアラートクラスIDが格納される。
【0057】
図6は、状態推定モデル生成部160がユーザインタフェースを介して監視者や運用者等のユーザとの間で対話処理を行いつつ状態推定モデル112を生成する処理(以下、「状態推定モデル生成処理S600」と称する。)を説明するフローチャートである。以下、同図とともに状態推定モデル生成処理S600について説明する。
【0058】
まずユーザは、対象となるISC2のアセットの一覧を洗い出す(S601)。尚、例えば、多重系によりコントローラが2台で冗長構成されている場合、ユーザは、第1コントローラ、第2コントローラ等の別々のコントローラとしてアセットを洗い出す。
【0059】
続いて、ユーザは、ベースモデル114を編集せずにそのまま状態推定モデル112の生成に利用するか否かを決定する(S602)。ユーザが状態推定モデル112を編集して利用すると決定した場合(S602:NO)、ユーザは、ベースモデル114を編集し(S603)、その後、処理はS611,S621の双方に進む。ユーザがベースモデル114を編集せずにそのまま利用すると決定した場合(S602:NO)、処理はS611,S621の双方に進む。
【0060】
図7は、ユーザがベースモデル114を編集する際に状態分析装置100が提供するユーザインタフェース(以下、「ベースモデル設定画面700」と称する。)の例である。同図に示すように、ベースモデル設定画面700は、シナリオ一覧表示領域710、シナリオ表示領域720、プレース属性一覧表示領域730、及びトランジション属性一覧表示領域740を含む。
【0061】
シナリオ一覧表示領域710には、ベースモデル114が含むシナリオが一覧型式で表示される。ユーザは、例えば、シナリオ一覧表示領域710から、1つのシナリオを選択して編集することができる。また、ユーザは、例えば、シナリオ一覧表示領域710にて所定の操作を行うことで、シナリオの追加や削除を行うことができる。
【0062】
シナリオ表示領域720には、ベースモデル114に含まれるシナリオに対応するグラフ(ペトリネットを可視化したグラフ)が表示される。ユーザは、シナリオ表示領域720にてグラフを参照することにより、シナリオの内容を容易に確認することができる。またユーザは、表示されているグラフに対して所定の操作を行うことによりシナリオを容易に編集することができる。
【0063】
プレース属性一覧表示領域730には、ベースモデル114に含まれる全てのシナリオのプレースの一覧と、各プレースのシナリオの進行度を示す値が表示される。ユーザは、例えば、プレース属性一覧表示領域730において、プレースや進行度を容易に確認することができる。またユーザは、シナリオ表示領域720に示したペトリネットを確認しつつ、プレース属性一覧表示領域730において所定の操作を行うことで、プレースに関する情報を容易に編集することができる。
【0064】
トランジション属性一覧表示領域740には、ベースモデル114に含まれる全てのシナリオのトランジションの一覧と、各トランジションに対応する、アセットクラス及びアラートクラスが表示される。ユーザは、トランジション属性一覧表示領域740において、トランジションを構成するアセットクラスとアラートクラスを容易に確認することができる。またユーザは、シナリオ表示領域720に示したペトリネットの構造を確認しつつ
、トランジション属性一覧表示領域740において所定の操作を行うことで、トランジションに関する情報を容易に編集することができる。
【0065】
図6に戻り、S611では、ユーザは、アセットに対して論理サブクラスの割り当てを行う。また、S621では、ユーザは、アセットに対して物理サブクラスの割り当てを行う。
【0066】
図8は、S611とS621の両ステップにおいて、ユーザに提供されるユーザインタフェース(以下、「状態推定モデル設定画面800」と称する。)である。同図に示すように、状態推定モデル設定画面800は、ICSネットワーク表示領域810、論理サブクラス割り当て表示領域820、及び物理サブクラス割り当て表示領域830を含む。
【0067】
ICS2を構成するネットワーク(以下、「ICSネットワーク」と称する。)の分類(以下、「レベル」と称する。)が表示される。レベルの例として、例えば、ISA99の「Purdue model」がある。「Purdue model」では、ICSを、「Level0(物理プロセス)」、「Level1(インテリジェントデバイス)」、「Level2(制御システム)」、「Level3(製造オペレーティングシステム)」、「Level4(ビジネスロジステックスシステム)」に分類する。多くのICSでは、こうしたレベル分けを軸としてシステム設計がなされることが多い。そのため、監視者や運用者等のユーザは、ICSネットワーク表示領域810に表示されているレベルから、対応するアセットを容易に想定することができる。
【0068】
論理サブクラス割り当て表示領域820において、ユーザは、ICSネットワークのレベル毎に、各レベルに含まれているアセットの一覧を確認しつつ設定を行うことができる。論理サブクラス割り当て表示領域820において、ユーザは、各アセットに「レ」を設定することにより論理サブクラスを割り当てることができる。尚、各アセットには、論理サブクラスを1つ以上割り当てることができる。ユーザは、論理サブクラス割り当て表示領域820を利用して、アセットの追加や削除を行うこともできる。
【0069】
物理サブクラス割り当て表示領域830において、ユーザは、各アセットに対し「レ」を設定することにより物理サブクラスを割り当てることができる。尚、各アセットには、物理サブクラスを1つ以上割り当てることができる。ユーザは、物理サブクラス割り当て表示領域830を利用して、アセットの追加や削除を行うこともできる。
【0070】
尚、論理サブクラス及び物理サブクラスの割り当てに際し、ユーザがアセットを入力した際、状態推定モデル生成部160が、入力されたアセットの製品名や型式に基づき、それらの論理サブクラスや物理サブクラスの割り当ての候補を表示するようにしてもよい。
【0071】
図6に戻り、S612では、ユーザは、ICS2の制御フローの洗い出しを行う。また、S613では、ユーザは、アラートクラスの論理サブクラスの割り当てを行う。一方、S622では、ユーザは、アラートクラスの物理サブクラスの割り当てを行う。
【0072】
図9は、S612、S613、及びS622の各ステップにおいて、状態分析装置100が提供するユーザインタフェース(以下、「状態推定モデル設定画面900」と称する。)の例である。同図に示すように、状態推定モデル設定画面900は、ICS機能表示領域910、制御フロー表示領域920、論理サブクラス割り当て表示領域930、及び物理サブクラス割り当て表示領域940を含む。
【0073】
ICS機能表示領域910には、ICS2が提供する機能の一覧が表示される。ICS2が提供する機能の一覧は、標準的な方法で予め割り当てられているものである。ユーザは、ICS機能表示領域910において、ICS2が提供する機能一覧を確認するととも
に、所定の操作を行うことで機能の追加や削除を行うことができる。
【0074】
制御フロー表示領域920には、2つ以上のアセットを利用して1つの機能を実現する際の制御フローを、メッセージの、送信元、送信先、及び内容を組合せたシーケンス図により表した図が表示される。ユーザは、制御フロー表示領域920を利用して、ICS機能表示領域910にて選択したICS2の機能を実現するアセットとメッセージを設定する。
【0075】
論理サブクラス割り当て表示領域930では、ユーザは、制御フロー表示領域920で入力したメッセージに関わるアラートを、アラートクラスの論理サブクラスに割り当てる。ユーザは、論理サブクラス割り当て表示領域930を利用し、1つの制御フローにおけるアセットが発報するアラートに対し、論理サブクラスのアラートクラスを割り当てる。
【0076】
物理サブクラス割り当て表示領域940では、ユーザは、各アセットに物理サブクラスのアラートクラスを割り当てる。ユーザは、物理サブクラス割り当て表示領域940を利用し、アセットの夫々について、アセットが発報するアラートの物理サブクラスのアラートクラスを割り当てる。
【0077】
尚、論理サブクラス及び物理サブクラスの割り当てにおいては、ユーザがアラートを入力した際、状態推定モデル生成部160が、入力されたアラートの種類やフォーマットに基づき、それらの論理サブクラスや物理サブクラスの割り当ての候補をユーザに提供するようにしてもよい。
【0078】
図6に戻り、S630では、アセットの洗い出し、アセットクラスの割り当て、アラートの洗い出し、及びアラートクラスの割り当てが完了し、ユーザは、その結果を状態推定モデル112として、状態推定モデル112に保存する。以上で状態推定モデル生成処理S600は終了する。以上のように、状態分析装置100が提供するユーザインタフェースを利用して、ユーザは、状態推定モデル112を効率よく生成することができる。
【0079】
図10は、状態推定部130が状態推定モデル112を用いてICS2の状態を推定する処理(以下、「状態推定処理S1000」と称する。)を説明するフローチャートである。以下、同図とともに状態推定処理S1000について説明する。
【0080】
状態推定部130は、アラート受信部120がICS2から受信したアラート列を取得する(S1011)。
【0081】
続いて、状態推定部130は、取得したアラート列に、アラート列の識別子であるアラート列IDを付与する(S1012)。
【0082】
続いて、状態推定部130は、取得したアラート列を構成する各アラートを、状態推定モデル112に基づきアラートクラスに変換し、変換して得られた各アラートクラスを、トランジション管理テーブル60に基づきトランジションに変換する(S1013)。尚、1つのアラートに対して、複数のトランジションが対応する場合、状態推定部130は、当該一つのアラートを全てのトランジションに対応づける。
【0083】
図11は、S1011~S1013までの処理を説明する図である。例えば、2つのアセット「AS1」、「AS2」がアラートを発報したとする。この場合、状態推定部130は、取り込み開始時刻と現在時刻との間に発報された3つのアラート「T1」、「T2」、「T3」をアラート列1111として取り込む。尚、取り込み開始時刻とは、アラート列がいずれか1つのシナリオが起きていると判定するのに十分な長さの開始時刻をいう
。例えば、ICS2がオーバーホールにより全面改修される場合には、オーバーホールが行われた時刻が取り込み開始時刻となる。また例えば、アセットが故障しアセットの取り換えが行われた場合、アセットを取り換えた時刻が取り込み開始時間となる。
【0084】
状態推定部130は、当該アラート列1111に対してアラート列IDを付与することにより、同図に示す変換後のアラート列1112を生成する。状態推定部130は、アセットが発報したアラートに対してアセットの種類に応じたアセットクラスを割り当て、アラートの種類に応じたアラートクラスを割り当てる。また、状態推定部130は、アセットが発報したアラートに、対応するシナリオとトランジションを対応づける。
【0085】
図10に戻り、続いて、状態推定部130は、状態推定モデル112の各シナリオについて、S1014~S1016の処理を繰り返し実行する。
【0086】
まずS1015では、状態推定部130は、変換後のアラート列1112を、状態推定モデル112で定めたシナリオと照合する。
【0087】
S1016では、状態推定部130は、S1015の結果として、進行度及び発報度を求める。ここで進行度とは、プレース管理テーブル50に示した進行度53の値である。発報度とは、シナリオで定めた順番通りにアラート列が起きている度合いを表す指標である。尚、発報度としては、例えば、プロセスマイニングとして知られる「conformance checking」の「fitness値」を用いることができる。
【0088】
図12A及び
図12Bは、
図10のS1015~S1016の処理を説明する図である。
図12Aは、
図11の時刻T1における各シナリオ(シナリオX41、シナリオY42)のトランジションの発火状態を、また、
図12Bには、
図11の時刻T3におけるトランジションの発火状態を例示している。
【0089】
図12Aの例では、シナリオX41のトランジション「T_X1」が発火し、アラートを発報したアセット「AS1」のトークンが「P_X0」から「P_X1」に遷移している。また、シナリオY42のトランジション「T_Y2」が発火し、アセット「AS1」のトークンが「P_Y0」から「P_Y2」に遷移している。この例の場合、時刻T1におけるアセット「AS1」の進行度、発報度は次のようになる。
[数1]
シナリオX41でのアセット「AS1」の(進行度、発報度)=(1/3、1)
[数2]
シナリオY42でのアセット「AS1」の(進行度、発報度)=(2/3、1/2)
【0090】
図12Bの例では、シナリオX41のトランジション「T_X2」が発火しているが、シナリオY42では何も発火しておらず、アラートを発報したアセット「AS1」のトークンが「P_X1」から「P_X2」に遷移している。この例の場合、時刻T3におけるアセット「AS1」の進行度、発報度は次のようになる。
[数3]
シナリオX41でのアセット「AS1」の(進行度、発報度)=(2/3、1)
[数4]
シナリオY42でのアセット「AS1」の(進行度、発報度)=(2/3、1/2)
【0091】
この例では、時刻T3において、シナリオX41及びシナリオY30のいずれも進行度は「2/3」で同等であるが、発報度の比較から、シナリオX41の状態遷移のほうがシナリオY42の状態遷移よりも起きている可能性が高いと推定される。
【0092】
尚、以上では、アセット「AS1」が発火した場合における状態遷移を例示したが、同様の方法でユーザは各アセットの各時刻における進行度と発報度を知ることができる。
【0093】
図10に戻り、続いて、S1017では、状態推定部130は、照合したアラート列、進行度、及び発報度を記載した画面(以下、「推定結果表示画面1300」と称する。)を、ユーザインタフェースを介してユーザに提示する。
【0094】
図13Aに時刻T1における推定結果表示画面1300の例を、
図13Bに時刻T3における推定結果表示画面1300の例を夫々示す。
【0095】
図13Aに示すように、アセット「AS1」が発報したアラート「AL1」により、シナリオX41及びシナリオY42の夫々の進行度と発報度が表示されている。また
図13Bに示すように、アセット「AS1」が発報したアラート「AL3」により、シナリオX41での進行度と発報度が更新され、シナリオY42での進行度と発報度が表示されている。尚、各時刻における進行度が同じ値であった場合は、発報度の昇順又は降順にソートして情報を表示するようにしてもよい。また、同図に示すように、発報度が大きいほうの値(進行度、発報度)を強調表示(本例では太線枠付きで表示)するようにしてもよい。
【0096】
図10に戻り、S1018では、状態推定部130は、状態推定処理S1000を終了する事象(例えば、ユーザによる終了指示の受け付け)が生じているか否かを判定する。上記事象が生じていなければ(S1018:NO)、処理はS1011に戻る。上記事象が生じていれば、状態推定部130は、状態推定処理S1000を終了する。
【0097】
以上に説明したように、状態推定部130は、状態推定処理S1000を実行することによりICS2の状態を推定し、その結果を記載した推定結果表示画面1300をユーザに提示するので、ユーザは、各時刻においてICS2で起きている状態を容易に把握することができる。また、推定結果表示画面1300には、最新の推定結果だけでなく、過去の時点における推定結果も表示されるので、ユーザは、表示される進行度と発報度の時系列的な変化を把握することができ、それによりICS2の状態を精度よく特定することができる。また、ユーザは、ICS2のアセットやアラートの情報を順序良く入力していくだけで、ICS2に適した状態推定モデル112を作成することができ、ICS2の監視にかかるユーザの負担を軽減することができる。
【0098】
図14は、状態推定モデル更新部170が行う処理(以下、「状態推定モデル更新処理S1400」と称する。)を説明するフローチャートである。以下、同図とともに状態推定モデル更新処理S1400について説明する。
【0099】
S1411では、状態推定モデル更新部170は、状態推定部130による状態推定結果113を蓄積する。
【0100】
S1412では、状態推定モデル更新部170は、状態推定結果113に基づき、進行度と発報度の傾向を分析する。
【0101】
S1413では、状態推定モデル更新部170は、発報度の傾向が下がってきたか否かを判定する。発報度の傾向が下がっていなければ(S1413:NO)、S1411の処理に戻る。発報度の傾向が下がっていれば(S1414:YES)、処理はS1414に進む。
【0102】
図15A及び
図15Bは、状態推定モデル更新部170が行う、進行度と発報度の傾向を分析する処理を説明する図である。
【0103】
図15Aは、状態推定結果113の例である。同図に示すように、状態推定結果113は、アラート列ID1511、シナリオ1512、進行度1513、及び発報度1514の各項目を有するアラート列毎の複数のエントリ(レコード)で構成される。
【0104】
図15Bに示すグラフ(以下、「傾向分析グラフ1520」と称する。)は、X軸を進行度とし、Y軸を発報度として値をプロットしたグラフである。例えば、発報度が「1」のまま進行度が進む場合(符号1521で示すプロット群)、状態推定モデル更新部170は、シナリオとアラート列が一致していると判定する。一方、進行度が進むときに発報度が「0」に近い値を取り続ける場合(符号1522で示すプロット群)、状態推定モデル更新部170は、シナリオとアラート列との間にずれが生じていると判定する。状態推定モデル更新部170は、例えば、傾向分析グラフ1520に基づき、このようにして発報度の傾向が下がってきたことを検出する。
【0105】
図14に戻り、続いて、S1414では、状態推定モデル更新部170は、発報度の傾向が下がってきたシナリオを特定する。
【0106】
続いて、状態推定モデル更新部170は、アラート列を再現(リプレイ)し、シナリオの修正箇所を特定する(S1415)。
【0107】
続いて、状態推定モデル更新部170は、特定した修正箇所を修正したシナリオ(以下、「修正後シナリオ」と称する。)を生成する(S1416)。
【0108】
続いて、状態推定モデル更新部170は、アラート列を用いて修正後シナリオにおける進行度と発報度をシミュレーションする(S1417)。
【0109】
図15Cは、S1414~S1417の処理に際し、ユーザに提供されるユーザインタフェース(以下、「状態推定モデル更新画面1530」と称する。)の例である。
【0110】
同図に示すように、状態推定モデル更新画面1530は、シナリオ一覧表示領域1531、修正前シナリオ表示領域1532、修正後シナリオ表示領域1533から構成される。
【0111】
シナリオ一覧表示領域1531は、傾向分析グラフ1520で発報度の傾向が下がってきた場合(符号1522)に該当するシナリオを一覧で表示する。ユーザは、シナリオ一覧表示領域1531を確認し、発報度の傾向が下がってきたシナリオを把握する。
【0112】
修正前シナリオ表示領域1532には、アラート列を再現し、トークンの発火の様子をシミュレーションした内容が表示される。ユーザは、修正前シナリオ表示領域1532を確認し、シナリオには定義されているが、実際には発火していないプレース1541を特定する。例えば、ユーザは、プレース1541にマウスポインタを合わせて右クリック等することにより表示される操作メニューを利用して当該プレースを削除し、前後のプレースを繋げるように修正を行う。
【0113】
修正後シナリオ表示領域1533には、アラート列を再現した場合の修正後シナリオの進行度と発報度が表示される。
【0114】
図14に戻り、続いて、S1418では、状態推定モデル更新部170は、ユーザから修正後シナリオを許容するか否かの入力を受け付ける。ユーザから修正後シナリオを許容できない旨の入力を受け付けた場合(S1418:NO)、処理はS1415に戻る。ユ
ーザから修正後シナリオを許容できる旨の入力を受け付けた場合(S1418:YES)、処理はS1419に進む。
【0115】
S1419では、状態推定モデル更新部170は、修正後シナリオの内容に状態推定モデル112を更新する。以上で状態推定モデル更新処理S1400は終了する。
【0116】
このように、状態分析装置100は、状態推定モデル更新処理S1400を実行することにより、発報度の傾向が下がってきたことを検出し、シナリオの修正箇所を特定してユーザとの対話処理によりシナリオを修正し、修正後シナリオにおける進行度と発報度をシミュレーションしてシナリオを適切に更新する。そのため、例えば、状態推定モデル112の詳細な技術詳細を把握していないユーザでも、発報度の傾向が下がってきたことを容易に捉えることができ、発報度が下がってきたシナリオを特定し、シナリオの修正が必要な箇所を特定してシナリオを修正し、修正後シナリオをシミュレーションすることによりシナリオを適切に更新することができる。
【0117】
続いて、状態推定モデル112の例を示しつつ、故障シナリオや攻撃シナリオの識別方法について具体的に説明する。
【0118】
図16A~
図16Cは、機器が故障した場合のシナリオ(以下、「故障シナリオ」と称する。)の例である。
【0119】
図16Aに示す故障シナリオ1610は、単体の装置Aにおいて異常が進行するケースを示したものである。スタートSから開始し、トランジション「異音アラート」が発火すると、状態はプレース「すり減り」に遷移する。また、トランジション「温度上昇アラート」が発火すると、状態はプレース「温度上昇」に遷移する。次に、トランジション「チョコ停アラート」が累積して10回発火すると、状態はプレース「チョコ停」に遷移する。次に、トランジション「メンテアラート」が発火すると、状態はプレース「利用不可」に遷移する。そして、装置Bでのトランジション「装置Aからの応答異常アラート」が発火すると、装置Aの状態は最終的な故障Gに至る。
【0120】
図16Bに示す故障シナリオ1620は、ICS2の冗長系システムにおいて、複数の異常が進行するケースを示したものであり、装置Aが通信装置aと通信装置bで通信を冗長化するケースを示したものである。スタートSから開始し、トランジション「通信装置aアラート」が発火すると、状態はプレース「通信装置a異常」に遷移する。或いは、トランジション「通信装置bアラート」が発火すると、状態はプレース「通信装置b異常」に遷移する。次に、装置Bにてトランジション「装置Aからの応答異常アラート」が発火すると、装置Aのプレース「通信異常」に遷移する。更に装置Bにてトランジション「装置Cに切り替えアラート」が発火すると、装置Aの状態は最終的な故障Gに至る。
【0121】
図16Cに示す故障シナリオ1630は、ICS2の構成要素である、装置Aから装置Eにおいて、装置Aが異常となった場合にその異常が次第にほかの装置Bから装置Eに伝搬するというケースを示したものである。スタートSから開始して、装置Aでトランジション「異常アラート」が発火すると、状態はプレース「装置A異常状態」に遷移する。次に、装置Bでトランジション「異常アラート」が発火すると、状態はプレース「装置B異常状態」に遷移する。次に、装置Cでトランジション「異常アラート」が発火すると、状態はプレース「装置C異常状態」に遷移する。或いは、装置Dでトランジション「異常アラート」が発火すると、状態はプレース「装置D異常状態」に遷移する。更に装置Eでトランジション「異常アラート」が発火すると、状態はプレース「装置E異常状態」に遷移し、最終的なシステム全体の故障Gとなる。
【0122】
状態推定モデル112として以上の故障シナリオを用いることで、状態分析装置100アラート列に基づきICS2における故障の状態を推定することができる。
【0123】
図17A及び
図17Bは、サイバー攻撃が行われた場合のシナリオ(以下、「攻撃シナリオ」と称する。)の例である。
【0124】
図17Aに示す攻撃シナリオ1710では、ICS2を構成する装置Aから装置Cにおいて、サイバーキルチェーンの水平移動と呼ばれる攻撃が発生するケースを示したものである。スタートSから開始し、装置Aでトランジション「NW接続/切断アラート」が発火すると装置Aのプレース「探査された状態」に遷移する。或いは、装置B或いは装置Cで同様のアラートが発火すると、夫々の装置について、状態はプレース「探査された状態」に遷移する。次に、装置A、装置B、及び装置Cのうちの少なくともいずれかでトランジション「CPU負荷アラート」は発火すると、状態はプレース「侵入された状態」に遷移する。更に、装置A、装置B、及び装置Cのうちの少なくともいずれかでトランジション「モード変更アラート」が発火すると、状態はプレース「異常動作」に遷移する。更に、装置A、装置B、及び装置Cのうちの少なくともいずれかでトランジション「異常アラート」が発火すると、状態は最終的なサイバー攻撃の成功Gに至る。
【0125】
図17Bに示す攻撃シナリオ1720では、装置Aがランサムウェアに感染し、ハードディスク(以下、「HDD」と称する。)が使用不能になるケースを示したものである。スタートSから開始し、装置Aでトランジション「プログラム起動アラート」が発火すると、プレース「実行された状態」に遷移する。次にトランジション「HDD負荷アラート」が発火すると、状態はプレース「HDD暗号化状態」に遷移する。更にトランジション「起動不能アラート」が発火すると、状態はプレース「利用不可状態」に遷移する。更に、装置Bにおけるトランジション「装置Aからの応答異常アラート」が発火すると、状態は最終的なサイバー攻撃の成功Gに至る。
【0126】
図17Cに示す攻撃シナリオ1730では、サイバーキルチェーンと呼ばれる攻撃のコマンド&コントロールが実行されたときのケースを示したものである。ファイアウォールでトランジション「外部接続/切断アラート」が発火すると、装置A、装置B、及び装置Cのいずれかについて、状態がプレース「コマンドを受け取った状態」に遷移する。次に、装置A、装置B、及び装置Cのいずれかでトランジション「HDD負荷アラート」が発火すると、各装置の状態は、プレース「攻撃実行状態」に遷移する。更に装置A、装置B、装置Cのいずれかでトランジション「異常アラート」が発火すると、状態は最終的なサイバー攻撃の成功Gに至る。
【0127】
状態推定モデル112としてこれらの攻撃シナリオを用いることで、状態分析装置100はアラート列に基づきICS2のサイバー攻撃による状態を推定することができる。
【0128】
以上、本発明の一実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記実施形態の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
【0129】
また、上記の各構成、機能部、処理部、処理手段等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサが夫々の機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、ICカ
ード、SDカード、DVD等の記録媒体に置くことができる。
【0130】
また、以上に説明した各情報処理装置の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、これらの装置が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
【0131】
また、前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
【符号の説明】
【0132】
2 ICS(産業制御システム)、5 通信ネットワーク、40 グラフ、41 シナリオX、42 シナリオY、50 プレース管理テーブル、60 トランジション管理テーブル、70 アセットクラステーブル、80 アラートクラステーブル、100 状態分析装置、110 記憶部、111 アラート列、112 状態推定モデル、113 状態推定結果、114 ベースモデル、120 アラート受信部、130 状態推定部、140 推定結果出力部、150 ベースモデル生成部、160 状態推定モデル生成部、170 状態推定モデル更新部、S600 状態推定モデル生成処理、700 ベースモデル設定画面、800 状態推定モデル設定画面、900 状態推定モデル設定画面、S1000 状態推定処理、1310 状態推定結果、1320 状態推定結果、S1400
状態推定モデル更新処理、1530 状態推定モデル更新画面