JP7574170B2 - State analysis device and state estimation method - Google Patents
State analysis device and state estimation method Download PDFInfo
- Publication number
- JP7574170B2 JP7574170B2 JP2021185170A JP2021185170A JP7574170B2 JP 7574170 B2 JP7574170 B2 JP 7574170B2 JP 2021185170 A JP2021185170 A JP 2021185170A JP 2021185170 A JP2021185170 A JP 2021185170A JP 7574170 B2 JP7574170 B2 JP 7574170B2
- Authority
- JP
- Japan
- Prior art keywords
- alert
- state
- scenario
- state estimation
- estimation model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Testing And Monitoring For Control Systems (AREA)
Description
本発明は、状態分析装置、及び状態推定方法に関する。 The present invention relates to a state analysis device and a state estimation method.
企業や官公庁等の組織を狙ったサイバー攻撃による被害が深刻化している。昨今、こうしたサイバー攻撃は、社会インフラ関連システム、電気やガス等のエネルギー制御システム、工場の生産ライン等の産業制御システムにも標的を拡大してきている。産業制御システムは、停止すれば実社会に与える影響が大きく、産業制御システムを対象としたサイバー攻撃に対する対策の重要性が高まっている。 Damage caused by cyber attacks targeting organizations such as companies and government agencies is becoming more serious. Recently, these cyber attacks have expanded their targets to include social infrastructure-related systems, energy control systems for electricity and gas, and industrial control systems such as factory production lines. The impact on real society of an industrial control system would be significant if it were to go down, so measures against cyber attacks targeting industrial control systems are becoming increasingly important.
産業制御システムを狙ったサイバー攻撃に対するセキュリティ管理手法として、例えば、特許文献1には、ガスタービンのようなセンサ及びアクチュエータから取得したデータを正常パターンと異常パターンとに分類しておき、ガスタービンへのサイバー攻撃を、センサ及びアクチュエータから取得したデータに基づき検出することが記載されている。また、検出に用いるパラメータを設定するため、データリポジトリから監視対象に適したパラメータを検索し、検索したパラメータをカスタマイズすることが記載されている。
For example,
また、非特許文献1には、プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)がリアクタをコントロールする際に取得されるデバイスログを入力とするプロセスマイニング手法により正常状態をモデル化し、生成したモデルに基づきPLCが出力するデバイスログの正常性を示す指標をコンフォーマンスチェック(conformance check)手法により求め、求めた指標によりサイバー攻撃を検出することが記載され
ている。
Furthermore, Non-Patent
産業制御システムを標的とするサイバー攻撃を監視する方法として、産業制御システムを構成する機器が発報する、故障やプロセスの異常や警告を示す情報(以下、「アラート」と称する。)を収集して分析する方法がある。しかし、この方法では、発報されたアラートが、機器の故障やプロセスの異常に起因するものであるのか、それともサイバー攻撃に起因するものであるのかを、監視員等の人が切り分ける必要があり、人的負担が大きいという課題がある。 One method for monitoring cyberattacks targeting industrial control systems is to collect and analyze information indicating failures, process abnormalities, and warnings issued by devices that make up the industrial control system (hereinafter referred to as "alerts"). However, this method requires humans, such as monitors, to distinguish whether an issued alert is due to a device failure or process abnormality, or due to a cyberattack, which imposes a large human burden.
監視にかかる人的負担を軽減する方法として、例えば、特許文献1や非特許文献1に記載されている技術を用いることが考えられる。しかし、特許文献1では、振る舞いを監視するためのパラメータの設計(DOE:Design Of Experiments parameters)を手動でセットアップするために知識や経験が要求される。また、非特許文献1では、正常状態の状態推定モデルをペトリネット(Petri net)により表現するが、ペトリネットは習得の難易度
が比較的高く、監視者等に十分な知識や経験が要求される。
As a method for reducing the human burden of monitoring, for example, the techniques described in
本発明はこうした背景に鑑みてなされたものであり、産業制御システムの状態を容易かつ高い精度で検出することが可能な、状態分析装置、及び状態推定方法を提供することを目的とする。 The present invention has been made in light of this background, and aims to provide a state analysis device and a state estimation method that can easily and accurately detect the state of an industrial control system.
上記目的を達成するための本発明の一つは、複数のアセットを有して構成される産業制御システムの状態を推定する情報処理装置であって、プロセッサ及びメモリを有し、産業制御システムにおいて生じ得る状態遷移の一つ以上のシナリオを示す情報を含む状態推定モデルを記憶し、前記アセットから発報されるアラートを時系列に並べたアラート列を前記状態推定モデルの前記シナリオと対照することにより、前記アラート列と前記シナリオとの共通性を示す指標を求めて出力する、 To achieve the above object, one aspect of the present invention is an information processing device that estimates the state of an industrial control system that is configured with multiple assets, which has a processor and memory, stores a state estimation model that includes information indicating one or more scenarios of state transitions that may occur in the industrial control system, and compares an alert sequence in which alerts issued from the assets are arranged in chronological order with the scenario of the state estimation model, thereby determining and outputting an index indicating the commonality between the alert sequence and the scenario.
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。 Other problems and solutions disclosed in this application will be made clear in the detailed description of the invention and the drawings.
本発明によれば、産業制御システムの状態を容易かつ高い精度で検出することができる。 The present invention makes it possible to easily and accurately detect the state of an industrial control system.
以下、本発明の実施形態について図面を参照しつつ詳細に説明する。尚、以下の記載及び図面は、本発明を説明するための例示に過ぎず、説明の明確化のため、適宜、省略及び簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。とくに限定しない限り、各構成要素は単数でも複数でも構わない。 The following describes in detail an embodiment of the present invention with reference to the drawings. Note that the following description and drawings are merely examples for explaining the present invention, and have been omitted or simplified as appropriate for clarity of explanation. The present invention can also be implemented in various other forms. Unless otherwise specified, each component may be singular or plural.
以下の説明において、符号の前に付した「S」の文字は処理ステップの意味である。また、以下の説明において、「テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「XXテーブル」等を「XX情報」と呼ぶことがある。また、識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。 In the following explanation, the letter "S" before a symbol indicates a processing step. In the following explanation, various information may be explained using expressions such as "table", but the various information may be expressed in other data structures. In addition, an "XX table" may be referred to as "XX information" to indicate independence from the data structure. In addition, when explaining identification information, expressions such as "identification information", "identifier", "name", "ID", and "number" are used, but these are interchangeable.
図1に、一実施形態として説明する情報処理装置である状態分析装置100の概略的な構成(システムフロー図)を示している。同図に示すように、状態分析装置100は、産業制御システム(ICS(Industrial Control System)。以下、「ICS2」と称する
。)と、ICS2と通信ネットワーク5を介して通信可能に接続する情報処理装置(コンピュータ)である状態分析装置100と、を含む。
1 shows a schematic configuration (system flow diagram) of a
ICS2は、例えば、電力、ガス、水道、鉄道等の社会インフラ関連システム、電力やガス等のエネルギー関連施設の制御システム、石油、化学、鉄鋼、自動車、輸送機器、精密機械、食品、製薬、ビル管理等の工場やプラント等における監視制御システム、生産ラインや加工ライン等において用いられるITシステム、IoT(Internet of Things)システム、IIoT(Industrial IoT)システム等である。 ICS2 includes, for example, social infrastructure-related systems such as electricity, gas, water, and railways; control systems for energy-related facilities such as electricity and gas; monitoring and control systems in factories and plants for the petroleum, chemical, steel, automobile, transportation equipment, precision machinery, food, pharmaceuticals, and building management; IT systems used in production lines and processing lines; IoT (Internet of Things) systems; and IIoT (Industrial IoT) systems.
状態分析装置100は、ICS2の物理的/論理的な動作(稼働)状態(以下、「状態」と総称する。)を監視し、ICS2の稼働状態に関する情報やセキュリティ侵害の有無等のICS2の状態に関する情報を生成し、ICS2の監視者や運用者に提供する。状態分析装置100は、ICS2を構成する機器(以下、「アセット」と称する。)が故障やプロセスの異常に起因して発報する異常や警告を示す情報(以下、「アラート」と称する。)を時系列に並べたデータであるアラート列に基づきICS2の状態を分析する。尚、アセットは、例えば、センサ、アクチュエータ、コントローラ、安全計装システム、制御サーバ、エンジニアリングワークステーション、監視制御サーバ、データヒストリアン、伝送サーバ等である。
The
通信ネットワーク5は、有線方式又は無線方式の通信ネットワークであり、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、各種公
衆無線通信網、専用線等である。通信ネットワーク5は、ICS2を構成するアセットの間を通信可能に接続する通信基盤であってもよい。尚、状態分析装置100はICS2の構成要素であってもよい。
The
図2Aは、状態分析装置100が備える主な機能を説明するブロック図である。同図に示すように、状態分析装置100は、記憶部110、アラート受信部120、状態推定部130、推定結果出力部140、ベースモデル生成部150、状態推定モデル生成部160、及び状態推定モデル更新部170の各機能を備える。
Figure 2A is a block diagram explaining the main functions of the
上記機能のうち、記憶部110は、アラート列111、状態推定モデル112、状態推
定結果113、及びベースモデル114を記憶する。
Of the above functions, the
アラート受信部120は、ICS2を構成する装置や機器から発報(出力)されるアラートを受信し、受信したアラートを時系列に並べてアラート列111として記憶部110に管理する。また、アラート受信部120は、生成したアラート列を状態推定部130に入力する。
The
状態推定部130は、アラート受信部120から入力されるアラート列を、ICS2において生じ得る状態遷移を示す一つ以上のシナリオを示す情報を含む状態推定モデル112と対照することによりアラート列とシナリオとの共通性(一致性、類似性)を示す指標を求めることによりICS2の状態を推定し、推定した結果(以下、「状態推定結果」と称する。)を状態推定結果113として記憶部110に管理する。また、状態推定部130は、監視者や運用者等のユーザにユーザインタフェースを介して状態推定結果を提示する。状態推定部130は、例えば、アラート列111が更新される度にICS2の状態を推定し直す。
The
ベースモデル生成部150は、ユーザインタフェースを介してユーザと対話を行いつつ、状態推定モデル112のベース(雛型)となる汎用的なモデルであるベースモデルを生成し、生成したベースモデルをベースモデル114として記憶部110に管理する。ベースモデル生成部150は、例えば、ICS2が水力発電所のシステムである場合、関東に存在する水力発電所のシステムと関西に存在する水力発電所のシステムが共通に或いは汎用的に備えているアセットについて故障に至るまでの状態遷移のシナリオに基づくベースモデル114を生成する。
The base
状態推定モデル生成部160は、ベースモデル114とICS2に関する情報とに基づき、状態推定モデル112を生成する。
The state estimation
状態推定モデル更新部170は、状態推定結果113に基づき状態推定モデル112を更新する。状態推定モデル更新部170は、状態推定結果113に基づき、状態推定モデル112による状態推定の乖離が生じているシナリオの特定や乖離している箇所の特定を行う。また、状態推定モデル更新部170は、ユーザインタフェースを介したユーザとの対話処理によりシナリオの修正案を生成する。また、状態推定モデル更新部170は、修正案によるシナリオの修正前後の夫々における状態推定結果113を比較可能な状態でユーザに提示し、ユーザが修正案を許容する場合は当該修正案に基づき状態推定モデル112の更新を行う。
The state estimation
図2Bは、状態分析装置100の実現に用いる情報処理装置の例である。例示する情報処理装置10は、プロセッサ11、主記憶装置12(メモリ)、補助記憶装置13、入力装置14、出力装置15、及び通信装置16を備える。情報処理装置10の例として、パーソナルコンピュータ、オフィスコンピュータ、サーバ装置、スマートフォン、タブレット、汎用機(メインフレーム)等がある。
FIG. 2B is an example of an information processing device used to realize the
情報処理装置10は、その全部又は一部が、例えば、クラウドシステムによって提供される仮想サーバのように、仮想化技術やプロセス空間分離技術等を用いて提供される仮想的な情報処理資源を用いて実現されるものであってもよい。また、情報処理装置10によって提供される機能の全部又は一部は、例えば、クラウドシステムがAPI(Application Programming Interface)等を介して提供するサービスによって実現してもよい。また
、情報処理装置10によって提供される機能の全部又は一部は、例えば、SaaS(Software as a Service)、PaaS(Platform as a Service)、IaaS(Infrastructure
as a Service)等を利用して実現されるものであってもよい。
The
This may be realized by using the Service as a Service, etc.
プロセッサ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)チップ等を用いて構成されている。
The
It is composed of a gate array, an application specific integrated circuit (ASIC), an artificial intelligence (AI) chip, etc.
主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read
Only Memory)、RAM(Random Access Memory)、不揮発性メモリ(NVRAM(Non Volatile RAM))等である。セキュリティ管理システム1の各構成要素において実現される機能は、プロセッサ11が、主記憶装置12に格納(記憶)されているプログラムを読み出して実行することにより実現される。
The
The
補助記憶装置13は、例えば、SSD(Solid State Drive)、ハードディスクドライ
ブ、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDカードや光学式記録媒体等の非一時的な記録媒体の読取/書込装置、クラウドサーバの非一時的な記憶領域等である。補助記憶装置13には、記録媒体の読取装置や通信装置16を介して、非一時的な記録媒体や非一時的な記憶装置を備えた他の情報処理装置からプログラムやデータを読み込むことができる。補助記憶装置13に格納(記憶)されているプログラムやデータは主記憶装置12に随時読み込まれる。
The
入力装置14は、外部からの情報の入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、カードリーダ、ペン入力方式のタブレット、音声入力装置等である。
The
出力装置15は、処理経過や処理結果等の各種情報を外部に出力するインタフェースである。出力装置15は、例えば、上記の各種情報を可視化する表示装置(液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード等)、上記の各種情報を音声化する装置(音声出力装置(スピーカ等))、上記の各種情報を文字化する装置(印字装置等)である。尚、例えば、情報処理装置10が通信装置16を介して他の装置との間で情報の入力や出力を行う構成としてもよい。
The
入力装置14と出力装置15は、ユーザとの間での対話処理(情報の受け付け、情報の提供等)を実現するユーザインタフェースを構成する。
The
通信装置16は、他の装置との間の通信を実現する装置である。通信装置16は、通信ネットワーク5を介して、所定の通信プロトコルに準拠した他の装置との間の通信を実現する、有線方式又は無線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USBモジュール等である。
The
情報処理装置10には、例えば、オペレーティングシステム、ファイルシステム、DBMS(DataBase Management System)(リレーショナルデータベース、NoSQL等)、KVS(Key-Value Store)等が導入されていてもよい。
The
続いて、ベースモデル114について説明する。尚、状態推定モデル112もベースモデル114と同様の構成を有する。
Next, we will explain the
ベースモデル114は、ICS2の状態を表す1つ以上のシナリオを、情報処理装置等による機械的な処理が可能な形式で表現した情報(データ)である。以下では、上記型式がペトリネット(Petri net)である場合を例として説明する。但し、上記型式は必ずし
も限定されない。ペトリネットは、2種類のノード(node)(プレース(place)、トランジ
ション(transition))を有する二部有向グラフ(bipartite digraph)(以下、「グラフ」
と称する。)である。プレースは、円で表されるノードであり、条件を表す。トランジションは、棒又は箱で表されるノードであり、事象を表す。これらを結ぶアーク(arc、矢印)は、条件や事象の間の関係を表す。
The
(Places are nodes represented by circles and represent conditions. Transitions are nodes represented by bars or boxes and represent events. Arcs (arrows) connecting them represent relationships between conditions or events.
ベースモデル114は、シナリオを表すグラフ、シナリオを定義するプレースに関する情報が管理されるプレース管理テーブル50、トランジション管理テーブル60、アセットクラステーブル70、及びアラートクラステーブル80の各情報を含む。
The
図3A~図3C、及び図4A~図4Bは、上記の各情報の具体例である。以下、各情報について順に説明する。 Figures 3A to 3C and 4A to 4B are specific examples of each of the above information. Each piece of information will be explained in turn below.
図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’」とが、アークで接続された構造を有する。
Figure 3A is an example of a
例示するシナリオ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」へと遷移するという構造を含む。 In the illustrated scenario X41, the state transitions linearly from "P_X0" to "P_X3", whereas the illustrated scenario Y42 includes a structure in which a transition from "P_Y0" to "P_Y1" occurs only when either transition "T_Y1" or "T_Y1'" is satisfied (the OR condition is satisfied). In addition, scenario Y42 includes a structure in which a transition from "P_Y2" to "P_Y3" occurs when both transitions "T_Y3" and "T_Y3'" are satisfied (the AND condition is satisfied).
図3Bは、例示するベースモデル114のプレース管理テーブル50である。同図に示すように、プレース管理テーブル50は、シナリオ51、プレース52、及び進行度53の各項目を有する1つ以上のエントリ(レコード)で構成される。
Figure 3B shows an example of a place management table 50 for the
上記項目のうち、進行度53には、ICS2の状態の進行の度合いを示す指標である進行度が格納される。同図に示すシナリオX41の例では、進行度として、プレース「P_X0」に「0」が、「P_X1」に「1/3」が、「P_X2」に「2/3」が、プレース「P_X3」に「3/3=1」が、夫々設定されている。
Of the above items,
図3Cは、例示するベースモデル114のトランジション管理テーブル60である。同図に示すように、例示するトランジション管理テーブル60は、シナリオ61、トランジション62、アセットクラス63、及びアラートクラス64の各項目を有する1つ以上のエントリ(レコード)で構成される。
Figure 3C shows an example transition management table 60 of the
上記項目のうち、アセットクラス63には、ICS2のアセットを類型化する指標であるアセットクラスが格納される。アラートクラス64には、アラートを類型化する指標であるアラートクラスが格納される。トランジション管理テーブル60のトランジション62毎のエントリは、アセットクラス63から対応するアラートクラス64のアラートが発報された場合に対応するエントリのトランジション62が発火することを示している。
Of the above items,
このように、トランジション管理テーブル60において、各シナリオは、アセットを類型化したアセットクラスとアラートを類型化したアラートクラスによって定義(表現)されている。そのため、アセットのアセットクラスへの割り当てと、アラートのアラートクラスへの割り当てを適切に行うことで、本実施形態の状態分析装置100は多様な形態を取り得るICS2に広く適用することができる。また、ICS2の構成や機能が変化した場合は柔軟に対応することができ、ICS2の運用を容易にすることができる。
In this way, in the transition management table 60, each scenario is defined (expressed) by asset classes that categorize assets and alert classes that categorize alerts. Therefore, by appropriately allocating assets to asset classes and alerts to alert classes, the
図4Aは、例示するベースモデル114のアセットクラステーブルである。同図に示すように、アセットクラステーブル70は、サブクラス71、アセットクラス72、説明73の各項目を有する一つ以上のエントリ(レコード)で構成される。
Figure 4A shows an example of an asset class table for the
上記項目のうち、サブクラス71には、アセットクラスの分類単位であるサブクラス(物理サブクラス、論理サブクラス)が格納される。アセットクラス72には、当該サブクラスに属するアセットクラスの識別子であるアセットクラスIDが格納される。本例では、物理サブクラスに「ASC1」~「ASC5」の各アセットクラスが定義され、論理サブクラスに「ASC6」~「ASC11」の各アセットクラスが定義されている。説明73には、各アセットクラスを説明する情報が格納される。
Of the above items,
このように、アセットクラスを物理サブクラスと論理サブクラスに分けて、即ち、アセットクラスを物理的な観点と論理的な観点に分けて定義することで、観点毎の状態変化の特徴に則したシナリオを適切に定義することができ、状態分析装置100によるICS2の状態推定の精度を向上することができる。
In this way, by dividing asset classes into physical subclasses and logical subclasses, i.e. by defining asset classes from a physical perspective and a logical perspective, it is possible to appropriately define scenarios that conform to the characteristics of state changes for each perspective, thereby improving the accuracy of state estimation of ICS2 by the
図4Bは、例示するベースモデル114のアラートクラステーブルである。同図に示すように、アラートクラステーブル80は、サブクラス81、アセットクラス82、アラートクラス83、説明84の組合せからなる1つ以上のエントリ(レコード)で構成される。
Figure 4B is an example of an alert class table for the
上記項目のうち、サブクラス81には、「物理サブクラス」又は「論理サブクラス」が格納される。アセットクラス82には、アセットクラスIDが格納される。アラートクラス83には、アラートクラスの識別子であるアラートクラスIDが格納される。説明84には、当該アラートクラスの説明が格納される。本例では、サブクラス81の物理サブクラスに「ALC1」~「ALC27」のアセットクラス82が対応づけられ、サブクラス81の論理サブクラスに「ALC28」から「ALC45」のアセットクラス82が対応づけられている。
Of the above items,
このように、アラートクラスを物理サブクラスと論理サブクラスに分けて、即ち、アラートクラスを物理的な観点と論理的な観点に分けて定義することで、観点毎の状態変化の特徴に則したシナリオを適切に定義することができ、状態分析装置100によるICS2の状態推定の精度を向上することができる。
In this way, by dividing the alert class into physical subclasses and logical subclasses, i.e. by defining the alert class from a physical perspective and a logical perspective, it is possible to appropriately define a scenario that conforms to the characteristics of state changes for each perspective, thereby improving the accuracy of state estimation of ICS2 by the
続いて、以上に例示したベースモデル114に基づき生成される状態推定モデル112について説明する。
Next, we will explain the
図5は、状態推定モデル112の例である。状態推定モデル112は、ICS2毎に生成される。例示する状態推定モデル112は、アセット91、アラート92、アセットクラス93、及びアラートクラス94の各項目を有する1つ以上のエントリ(レコード)で構成される。
Figure 5 is an example of a
上記項目のうち、アセット91には、ISC2のシステムを構成するアセットの識別子
であるアセットIDが格納される。アラート92には、当該アセットが出力するアラートの識別子であるアラートIDが格納される。アセットクラス93には、当該アセットに対応するアセットクラスのアセットクラスIDが格納される。アラートクラス94には、当該アセットクラスに対応するアラートクラスのアラートクラスIDが格納される。
Of the above items,
図6は、状態推定モデル生成部160がユーザインタフェースを介して監視者や運用者等のユーザとの間で対話処理を行いつつ状態推定モデル112を生成する処理(以下、「状態推定モデル生成処理S600」と称する。)を説明するフローチャートである。以下、同図とともに状態推定モデル生成処理S600について説明する。
Figure 6 is a flowchart explaining the process (hereinafter referred to as "state estimation model generation process S600") in which the state estimation
まずユーザは、対象となるISC2のアセットの一覧を洗い出す(S601)。尚、例えば、多重系によりコントローラが2台で冗長構成されている場合、ユーザは、第1コントローラ、第2コントローラ等の別々のコントローラとしてアセットを洗い出す。 First, the user creates a list of the assets of the target ISC2 (S601). For example, if the system has two controllers configured for redundancy due to a multiplexing system, the user creates a list of the assets as separate controllers, such as the first controller and the second controller.
続いて、ユーザは、ベースモデル114を編集せずにそのまま状態推定モデル112の生成に利用するか否かを決定する(S602)。ユーザが状態推定モデル112を編集して利用すると決定した場合(S602:NO)、ユーザは、ベースモデル114を編集し(S603)、その後、処理はS611,S621の双方に進む。ユーザがベースモデル114を編集せずにそのまま利用すると決定した場合(S602:NO)、処理はS611,S621の双方に進む。
The user then decides whether to use the
図7は、ユーザがベースモデル114を編集する際に状態分析装置100が提供するユーザインタフェース(以下、「ベースモデル設定画面700」と称する。)の例である。同図に示すように、ベースモデル設定画面700は、シナリオ一覧表示領域710、シナリオ表示領域720、プレース属性一覧表示領域730、及びトランジション属性一覧表示領域740を含む。
Figure 7 is an example of a user interface (hereinafter referred to as the "base
シナリオ一覧表示領域710には、ベースモデル114が含むシナリオが一覧型式で表示される。ユーザは、例えば、シナリオ一覧表示領域710から、1つのシナリオを選択して編集することができる。また、ユーザは、例えば、シナリオ一覧表示領域710にて所定の操作を行うことで、シナリオの追加や削除を行うことができる。
In the scenario
シナリオ表示領域720には、ベースモデル114に含まれるシナリオに対応するグラフ(ペトリネットを可視化したグラフ)が表示される。ユーザは、シナリオ表示領域720にてグラフを参照することにより、シナリオの内容を容易に確認することができる。またユーザは、表示されているグラフに対して所定の操作を行うことによりシナリオを容易に編集することができる。
The
プレース属性一覧表示領域730には、ベースモデル114に含まれる全てのシナリオのプレースの一覧と、各プレースのシナリオの進行度を示す値が表示される。ユーザは、例えば、プレース属性一覧表示領域730において、プレースや進行度を容易に確認することができる。またユーザは、シナリオ表示領域720に示したペトリネットを確認しつつ、プレース属性一覧表示領域730において所定の操作を行うことで、プレースに関する情報を容易に編集することができる。
The place attribute
トランジション属性一覧表示領域740には、ベースモデル114に含まれる全てのシナリオのトランジションの一覧と、各トランジションに対応する、アセットクラス及びアラートクラスが表示される。ユーザは、トランジション属性一覧表示領域740において、トランジションを構成するアセットクラスとアラートクラスを容易に確認することができる。またユーザは、シナリオ表示領域720に示したペトリネットの構造を確認しつつ
、トランジション属性一覧表示領域740において所定の操作を行うことで、トランジションに関する情報を容易に編集することができる。
The transition attribute
図6に戻り、S611では、ユーザは、アセットに対して論理サブクラスの割り当てを行う。また、S621では、ユーザは、アセットに対して物理サブクラスの割り当てを行う。 Returning to FIG. 6, in S611, the user assigns a logical subclass to the asset. Also, in S621, the user assigns a physical subclass to the asset.
図8は、S611とS621の両ステップにおいて、ユーザに提供されるユーザインタフェース(以下、「状態推定モデル設定画面800」と称する。)である。同図に示すように、状態推定モデル設定画面800は、ICSネットワーク表示領域810、論理サブクラス割り当て表示領域820、及び物理サブクラス割り当て表示領域830を含む。
Figure 8 shows a user interface (hereinafter referred to as the "state estimation
ICS2を構成するネットワーク(以下、「ICSネットワーク」と称する。)の分類(以下、「レベル」と称する。)が表示される。レベルの例として、例えば、ISA99の「Purdue model」がある。「Purdue model」では、ICSを、「Level0(物理プロセス)」、「Level1(インテリジェントデバイス)」、「Level2(制御システム)」、「Level3(製造オペレーティングシステム)」、「Level4(ビジネスロジステックスシステム)」に分類する。多くのICSでは、こうしたレベル分けを軸としてシステム設計がなされることが多い。そのため、監視者や運用者等のユーザは、ICSネットワーク表示領域810に表示されているレベルから、対応するアセットを容易に想定することができる。
Displays the classification (hereinafter referred to as "level") of the network (hereinafter referred to as the "ICS network") that constitutes ICS2. An example of a level is the "Purdue model" of ISA99. In the "Purdue model," ICSs are classified into "Level 0 (physical process)," "Level 1 (intelligent device)," "Level 2 (control system)," "Level 3 (manufacturing operating system)," and "Level 4 (business logistics system)." In many ICSs, system design is often based on these level classifications. Therefore, users such as supervisors and operators can easily imagine the corresponding assets from the levels displayed in the ICS
論理サブクラス割り当て表示領域820において、ユーザは、ICSネットワークのレベル毎に、各レベルに含まれているアセットの一覧を確認しつつ設定を行うことができる。論理サブクラス割り当て表示領域820において、ユーザは、各アセットに「レ」を設定することにより論理サブクラスを割り当てることができる。尚、各アセットには、論理サブクラスを1つ以上割り当てることができる。ユーザは、論理サブクラス割り当て表示領域820を利用して、アセットの追加や削除を行うこともできる。
In the logical subclass
物理サブクラス割り当て表示領域830において、ユーザは、各アセットに対し「レ」を設定することにより物理サブクラスを割り当てることができる。尚、各アセットには、物理サブクラスを1つ以上割り当てることができる。ユーザは、物理サブクラス割り当て表示領域830を利用して、アセットの追加や削除を行うこともできる。
In the physical subclass
尚、論理サブクラス及び物理サブクラスの割り当てに際し、ユーザがアセットを入力した際、状態推定モデル生成部160が、入力されたアセットの製品名や型式に基づき、それらの論理サブクラスや物理サブクラスの割り当ての候補を表示するようにしてもよい。
When assigning logical subclasses and physical subclasses, when the user inputs an asset, the state estimation
図6に戻り、S612では、ユーザは、ICS2の制御フローの洗い出しを行う。また、S613では、ユーザは、アラートクラスの論理サブクラスの割り当てを行う。一方、S622では、ユーザは、アラートクラスの物理サブクラスの割り当てを行う。 Returning to FIG. 6, in S612, the user identifies the control flow of ICS2. In S613, the user assigns a logical subclass of the alert class. Meanwhile, in S622, the user assigns a physical subclass of the alert class.
図9は、S612、S613、及びS622の各ステップにおいて、状態分析装置100が提供するユーザインタフェース(以下、「状態推定モデル設定画面900」と称する。)の例である。同図に示すように、状態推定モデル設定画面900は、ICS機能表示領域910、制御フロー表示領域920、論理サブクラス割り当て表示領域930、及び物理サブクラス割り当て表示領域940を含む。
Figure 9 is an example of a user interface (hereinafter referred to as the "state estimation
ICS機能表示領域910には、ICS2が提供する機能の一覧が表示される。ICS2が提供する機能の一覧は、標準的な方法で予め割り当てられているものである。ユーザは、ICS機能表示領域910において、ICS2が提供する機能一覧を確認するととも
に、所定の操作を行うことで機能の追加や削除を行うことができる。
A list of functions provided by the
制御フロー表示領域920には、2つ以上のアセットを利用して1つの機能を実現する際の制御フローを、メッセージの、送信元、送信先、及び内容を組合せたシーケンス図により表した図が表示される。ユーザは、制御フロー表示領域920を利用して、ICS機能表示領域910にて選択したICS2の機能を実現するアセットとメッセージを設定する。
The control
論理サブクラス割り当て表示領域930では、ユーザは、制御フロー表示領域920で入力したメッセージに関わるアラートを、アラートクラスの論理サブクラスに割り当てる。ユーザは、論理サブクラス割り当て表示領域930を利用し、1つの制御フローにおけるアセットが発報するアラートに対し、論理サブクラスのアラートクラスを割り当てる。
In the logical subclass
物理サブクラス割り当て表示領域940では、ユーザは、各アセットに物理サブクラスのアラートクラスを割り当てる。ユーザは、物理サブクラス割り当て表示領域940を利用し、アセットの夫々について、アセットが発報するアラートの物理サブクラスのアラートクラスを割り当てる。
In the physical subclass
尚、論理サブクラス及び物理サブクラスの割り当てにおいては、ユーザがアラートを入力した際、状態推定モデル生成部160が、入力されたアラートの種類やフォーマットに基づき、それらの論理サブクラスや物理サブクラスの割り当ての候補をユーザに提供するようにしてもよい。
When allocating logical and physical subclasses, when a user inputs an alert, the state estimation
図6に戻り、S630では、アセットの洗い出し、アセットクラスの割り当て、アラートの洗い出し、及びアラートクラスの割り当てが完了し、ユーザは、その結果を状態推定モデル112として、状態推定モデル112に保存する。以上で状態推定モデル生成処理S600は終了する。以上のように、状態分析装置100が提供するユーザインタフェースを利用して、ユーザは、状態推定モデル112を効率よく生成することができる。
Returning to FIG. 6, in S630, the identification of assets, assignment of asset classes, identification of alerts, and assignment of alert classes are completed, and the user saves the results as the
図10は、状態推定部130が状態推定モデル112を用いてICS2の状態を推定する処理(以下、「状態推定処理S1000」と称する。)を説明するフローチャートである。以下、同図とともに状態推定処理S1000について説明する。
Figure 10 is a flowchart explaining the process (hereinafter referred to as "state estimation process S1000") in which the
状態推定部130は、アラート受信部120がICS2から受信したアラート列を取得する(S1011)。
The
続いて、状態推定部130は、取得したアラート列に、アラート列の識別子であるアラート列IDを付与する(S1012)。
Next, the
続いて、状態推定部130は、取得したアラート列を構成する各アラートを、状態推定モデル112に基づきアラートクラスに変換し、変換して得られた各アラートクラスを、トランジション管理テーブル60に基づきトランジションに変換する(S1013)。尚、1つのアラートに対して、複数のトランジションが対応する場合、状態推定部130は、当該一つのアラートを全てのトランジションに対応づける。
Then, the
図11は、S1011~S1013までの処理を説明する図である。例えば、2つのアセット「AS1」、「AS2」がアラートを発報したとする。この場合、状態推定部130は、取り込み開始時刻と現在時刻との間に発報された3つのアラート「T1」、「T2」、「T3」をアラート列1111として取り込む。尚、取り込み開始時刻とは、アラート列がいずれか1つのシナリオが起きていると判定するのに十分な長さの開始時刻をいう
。例えば、ICS2がオーバーホールにより全面改修される場合には、オーバーホールが行われた時刻が取り込み開始時刻となる。また例えば、アセットが故障しアセットの取り換えが行われた場合、アセットを取り換えた時刻が取り込み開始時間となる。
FIG. 11 is a diagram for explaining the process from S1011 to S1013. For example, it is assumed that two assets "AS1" and "AS2" have issued alerts. In this case, the
状態推定部130は、当該アラート列1111に対してアラート列IDを付与することにより、同図に示す変換後のアラート列1112を生成する。状態推定部130は、アセットが発報したアラートに対してアセットの種類に応じたアセットクラスを割り当て、アラートの種類に応じたアラートクラスを割り当てる。また、状態推定部130は、アセットが発報したアラートに、対応するシナリオとトランジションを対応づける。
The
図10に戻り、続いて、状態推定部130は、状態推定モデル112の各シナリオについて、S1014~S1016の処理を繰り返し実行する。
Returning to FIG. 10, the
まずS1015では、状態推定部130は、変換後のアラート列1112を、状態推定モデル112で定めたシナリオと照合する。
First, in S1015, the
S1016では、状態推定部130は、S1015の結果として、進行度及び発報度を求める。ここで進行度とは、プレース管理テーブル50に示した進行度53の値である。発報度とは、シナリオで定めた順番通りにアラート列が起きている度合いを表す指標である。尚、発報度としては、例えば、プロセスマイニングとして知られる「conformance checking」の「fitness値」を用いることができる。
In S1016, the
図12A及び図12Bは、図10のS1015~S1016の処理を説明する図である。図12Aは、図11の時刻T1における各シナリオ(シナリオX41、シナリオY42)のトランジションの発火状態を、また、図12Bには、図11の時刻T3におけるトランジションの発火状態を例示している。 Figures 12A and 12B are diagrams explaining the processing of S1015 to S1016 in Figure 10. Figure 12A illustrates the firing state of the transitions of each scenario (scenario X41, scenario Y42) at time T1 in Figure 11, and Figure 12B illustrates the firing state of the transitions at time T3 in Figure 11.
図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)
In the example of Fig. 12A, transition "T_X1" of scenario X41 is fired, and the token of asset "AS1" that triggered the alert transitions from "P_X0" to "P_X1". Also, transition "T_Y2" of scenario Y42 is fired, and the token of asset "AS1" transitions from "P_Y0" to "P_Y2". In this example, the progress and alert level of asset "AS1" at time T1 are as follows:
[Number 1]
(Progress, Alert Level) of asset "AS1" in scenario X41 = (1/3, 1)
[Number 2]
(Progress, Alert) of asset "AS1" in scenario Y42 = (2/3, 1/2)
図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)
In the example of Figure 12B, the transition "T_X2" in scenario X41 is fired, but nothing is fired in scenario Y42, and the token of the asset "AS1" that triggered the alert transitions from "P_X1" to "P_X2." In this example, the progress and alert level of the asset "AS1" at time T3 are as follows:
[Number 3]
(Progress, Alert Level) of asset "AS1" in scenario X41 = (2/3, 1)
[Number 4]
(Progress, Alert) of asset "AS1" in scenario Y42 = (2/3, 1/2)
この例では、時刻T3において、シナリオX41及びシナリオY30のいずれも進行度は「2/3」で同等であるが、発報度の比較から、シナリオX41の状態遷移のほうがシナリオY42の状態遷移よりも起きている可能性が高いと推定される。 In this example, at time T3, both scenario X41 and scenario Y30 have the same degree of progress of "2/3", but a comparison of the alarm occurrence rates indicates that the state transition of scenario X41 is more likely to have occurred than the state transition of scenario Y42.
尚、以上では、アセット「AS1」が発火した場合における状態遷移を例示したが、同様の方法でユーザは各アセットの各時刻における進行度と発報度を知ることができる。 Note that the above example shows the state transition when asset "AS1" is triggered, but the user can know the progress and triggering rate of each asset at each time using a similar method.
図10に戻り、続いて、S1017では、状態推定部130は、照合したアラート列、進行度、及び発報度を記載した画面(以下、「推定結果表示画面1300」と称する。)を、ユーザインタフェースを介してユーザに提示する。
Returning to FIG. 10, next, in S1017, the
図13Aに時刻T1における推定結果表示画面1300の例を、図13Bに時刻T3における推定結果表示画面1300の例を夫々示す。 Figure 13A shows an example of the estimation result display screen 1300 at time T1, and Figure 13B shows an example of the estimation result display screen 1300 at time T3.
図13Aに示すように、アセット「AS1」が発報したアラート「AL1」により、シナリオX41及びシナリオY42の夫々の進行度と発報度が表示されている。また図13Bに示すように、アセット「AS1」が発報したアラート「AL3」により、シナリオX41での進行度と発報度が更新され、シナリオY42での進行度と発報度が表示されている。尚、各時刻における進行度が同じ値であった場合は、発報度の昇順又は降順にソートして情報を表示するようにしてもよい。また、同図に示すように、発報度が大きいほうの値(進行度、発報度)を強調表示(本例では太線枠付きで表示)するようにしてもよい。 As shown in FIG. 13A, the progress and alert level of each of scenarios X41 and Y42 are displayed due to alert "AL1" issued by asset "AS1". Also, as shown in FIG. 13B, the progress and alert level in scenario X41 are updated due to alert "AL3" issued by asset "AS1", and the progress and alert level in scenario Y42 are displayed. Note that if the progress level at each time is the same value, the information may be sorted in ascending or descending order of alert level and displayed. Also, as shown in the figure, the value with the larger alert level (progress, alert level) may be highlighted (displayed with a thick frame in this example).
図10に戻り、S1018では、状態推定部130は、状態推定処理S1000を終了する事象(例えば、ユーザによる終了指示の受け付け)が生じているか否かを判定する。上記事象が生じていなければ(S1018:NO)、処理はS1011に戻る。上記事象が生じていれば、状態推定部130は、状態推定処理S1000を終了する。
Returning to FIG. 10, in S1018, the
以上に説明したように、状態推定部130は、状態推定処理S1000を実行することによりICS2の状態を推定し、その結果を記載した推定結果表示画面1300をユーザに提示するので、ユーザは、各時刻においてICS2で起きている状態を容易に把握することができる。また、推定結果表示画面1300には、最新の推定結果だけでなく、過去の時点における推定結果も表示されるので、ユーザは、表示される進行度と発報度の時系列的な変化を把握することができ、それによりICS2の状態を精度よく特定することができる。また、ユーザは、ICS2のアセットやアラートの情報を順序良く入力していくだけで、ICS2に適した状態推定モデル112を作成することができ、ICS2の監視にかかるユーザの負担を軽減することができる。
As described above, the
図14は、状態推定モデル更新部170が行う処理(以下、「状態推定モデル更新処理S1400」と称する。)を説明するフローチャートである。以下、同図とともに状態推定モデル更新処理S1400について説明する。 Figure 14 is a flowchart explaining the process performed by the state estimation model update unit 170 (hereinafter referred to as "state estimation model update process S1400"). Below, the state estimation model update process S1400 will be explained with reference to this figure.
S1411では、状態推定モデル更新部170は、状態推定部130による状態推定結果113を蓄積する。
In S1411, the state estimation
S1412では、状態推定モデル更新部170は、状態推定結果113に基づき、進行度と発報度の傾向を分析する。
In S1412, the state estimation
S1413では、状態推定モデル更新部170は、発報度の傾向が下がってきたか否かを判定する。発報度の傾向が下がっていなければ(S1413:NO)、S1411の処理に戻る。発報度の傾向が下がっていれば(S1414:YES)、処理はS1414に進む。
In S1413, the state estimation
図15A及び図15Bは、状態推定モデル更新部170が行う、進行度と発報度の傾向を分析する処理を説明する図である。
Figures 15A and 15B are diagrams explaining the process performed by the state estimation
図15Aは、状態推定結果113の例である。同図に示すように、状態推定結果113は、アラート列ID1511、シナリオ1512、進行度1513、及び発報度1514の各項目を有するアラート列毎の複数のエントリ(レコード)で構成される。
Figure 15A is an example of a
図15Bに示すグラフ(以下、「傾向分析グラフ1520」と称する。)は、X軸を進行度とし、Y軸を発報度として値をプロットしたグラフである。例えば、発報度が「1」のまま進行度が進む場合(符号1521で示すプロット群)、状態推定モデル更新部170は、シナリオとアラート列が一致していると判定する。一方、進行度が進むときに発報度が「0」に近い値を取り続ける場合(符号1522で示すプロット群)、状態推定モデル更新部170は、シナリオとアラート列との間にずれが生じていると判定する。状態推定モデル更新部170は、例えば、傾向分析グラフ1520に基づき、このようにして発報度の傾向が下がってきたことを検出する。
The graph shown in FIG. 15B (hereinafter referred to as the "
図14に戻り、続いて、S1414では、状態推定モデル更新部170は、発報度の傾向が下がってきたシナリオを特定する。
Returning to FIG. 14, next, in S1414, the state estimation
続いて、状態推定モデル更新部170は、アラート列を再現(リプレイ)し、シナリオの修正箇所を特定する(S1415)。
Next, the state estimation
続いて、状態推定モデル更新部170は、特定した修正箇所を修正したシナリオ(以下、「修正後シナリオ」と称する。)を生成する(S1416)。
Next, the state estimation
続いて、状態推定モデル更新部170は、アラート列を用いて修正後シナリオにおける進行度と発報度をシミュレーションする(S1417)。
Next, the state estimation
図15Cは、S1414~S1417の処理に際し、ユーザに提供されるユーザインタフェース(以下、「状態推定モデル更新画面1530」と称する。)の例である。
Figure 15C is an example of a user interface (hereinafter referred to as the "state estimation
同図に示すように、状態推定モデル更新画面1530は、シナリオ一覧表示領域1531、修正前シナリオ表示領域1532、修正後シナリオ表示領域1533から構成される。
As shown in the figure, the state estimation
シナリオ一覧表示領域1531は、傾向分析グラフ1520で発報度の傾向が下がってきた場合(符号1522)に該当するシナリオを一覧で表示する。ユーザは、シナリオ一覧表示領域1531を確認し、発報度の傾向が下がってきたシナリオを把握する。
The scenario
修正前シナリオ表示領域1532には、アラート列を再現し、トークンの発火の様子をシミュレーションした内容が表示される。ユーザは、修正前シナリオ表示領域1532を確認し、シナリオには定義されているが、実際には発火していないプレース1541を特定する。例えば、ユーザは、プレース1541にマウスポインタを合わせて右クリック等することにより表示される操作メニューを利用して当該プレースを削除し、前後のプレースを繋げるように修正を行う。
In the pre-modification
修正後シナリオ表示領域1533には、アラート列を再現した場合の修正後シナリオの進行度と発報度が表示される。
The revised
図14に戻り、続いて、S1418では、状態推定モデル更新部170は、ユーザから修正後シナリオを許容するか否かの入力を受け付ける。ユーザから修正後シナリオを許容できない旨の入力を受け付けた場合(S1418:NO)、処理はS1415に戻る。ユ
ーザから修正後シナリオを許容できる旨の入力を受け付けた場合(S1418:YES)、処理はS1419に進む。
14, next, in S1418, the state estimation
S1419では、状態推定モデル更新部170は、修正後シナリオの内容に状態推定モデル112を更新する。以上で状態推定モデル更新処理S1400は終了する。
In S1419, the state estimation
このように、状態分析装置100は、状態推定モデル更新処理S1400を実行することにより、発報度の傾向が下がってきたことを検出し、シナリオの修正箇所を特定してユーザとの対話処理によりシナリオを修正し、修正後シナリオにおける進行度と発報度をシミュレーションしてシナリオを適切に更新する。そのため、例えば、状態推定モデル112の詳細な技術詳細を把握していないユーザでも、発報度の傾向が下がってきたことを容易に捉えることができ、発報度が下がってきたシナリオを特定し、シナリオの修正が必要な箇所を特定してシナリオを修正し、修正後シナリオをシミュレーションすることによりシナリオを適切に更新することができる。
In this way, by executing the state estimation model update process S1400, the
続いて、状態推定モデル112の例を示しつつ、故障シナリオや攻撃シナリオの識別方法について具体的に説明する。
Next, we will provide an example of the
図16A~図16Cは、機器が故障した場合のシナリオ(以下、「故障シナリオ」と称する。)の例である。 Figures 16A to 16C are examples of scenarios in which equipment fails (hereinafter referred to as "failure scenarios").
図16Aに示す故障シナリオ1610は、単体の装置Aにおいて異常が進行するケースを示したものである。スタートSから開始し、トランジション「異音アラート」が発火すると、状態はプレース「すり減り」に遷移する。また、トランジション「温度上昇アラート」が発火すると、状態はプレース「温度上昇」に遷移する。次に、トランジション「チョコ停アラート」が累積して10回発火すると、状態はプレース「チョコ停」に遷移する。次に、トランジション「メンテアラート」が発火すると、状態はプレース「利用不可」に遷移する。そして、装置Bでのトランジション「装置Aからの応答異常アラート」が発火すると、装置Aの状態は最終的な故障Gに至る。
図16Bに示す故障シナリオ1620は、ICS2の冗長系システムにおいて、複数の異常が進行するケースを示したものであり、装置Aが通信装置aと通信装置bで通信を冗長化するケースを示したものである。スタートSから開始し、トランジション「通信装置aアラート」が発火すると、状態はプレース「通信装置a異常」に遷移する。或いは、トランジション「通信装置bアラート」が発火すると、状態はプレース「通信装置b異常」に遷移する。次に、装置Bにてトランジション「装置Aからの応答異常アラート」が発火すると、装置Aのプレース「通信異常」に遷移する。更に装置Bにてトランジション「装置Cに切り替えアラート」が発火すると、装置Aの状態は最終的な故障Gに至る。
図16Cに示す故障シナリオ1630は、ICS2の構成要素である、装置Aから装置Eにおいて、装置Aが異常となった場合にその異常が次第にほかの装置Bから装置Eに伝搬するというケースを示したものである。スタートSから開始して、装置Aでトランジション「異常アラート」が発火すると、状態はプレース「装置A異常状態」に遷移する。次に、装置Bでトランジション「異常アラート」が発火すると、状態はプレース「装置B異常状態」に遷移する。次に、装置Cでトランジション「異常アラート」が発火すると、状態はプレース「装置C異常状態」に遷移する。或いは、装置Dでトランジション「異常アラート」が発火すると、状態はプレース「装置D異常状態」に遷移する。更に装置Eでトランジション「異常アラート」が発火すると、状態はプレース「装置E異常状態」に遷移し、最終的なシステム全体の故障Gとなる。
状態推定モデル112として以上の故障シナリオを用いることで、状態分析装置100アラート列に基づきICS2における故障の状態を推定することができる。
By using the above failure scenarios as the
図17A及び図17Bは、サイバー攻撃が行われた場合のシナリオ(以下、「攻撃シナリオ」と称する。)の例である。 Figures 17A and 17B are examples of scenarios in which a cyber attack occurs (hereinafter referred to as "attack scenarios").
図17Aに示す攻撃シナリオ1710では、ICS2を構成する装置Aから装置Cにおいて、サイバーキルチェーンの水平移動と呼ばれる攻撃が発生するケースを示したものである。スタートSから開始し、装置Aでトランジション「NW接続/切断アラート」が発火すると装置Aのプレース「探査された状態」に遷移する。或いは、装置B或いは装置Cで同様のアラートが発火すると、夫々の装置について、状態はプレース「探査された状態」に遷移する。次に、装置A、装置B、及び装置Cのうちの少なくともいずれかでトランジション「CPU負荷アラート」は発火すると、状態はプレース「侵入された状態」に遷移する。更に、装置A、装置B、及び装置Cのうちの少なくともいずれかでトランジション「モード変更アラート」が発火すると、状態はプレース「異常動作」に遷移する。更に、装置A、装置B、及び装置Cのうちの少なくともいずれかでトランジション「異常アラート」が発火すると、状態は最終的なサイバー攻撃の成功Gに至る。
図17Bに示す攻撃シナリオ1720では、装置Aがランサムウェアに感染し、ハードディスク(以下、「HDD」と称する。)が使用不能になるケースを示したものである。スタートSから開始し、装置Aでトランジション「プログラム起動アラート」が発火すると、プレース「実行された状態」に遷移する。次にトランジション「HDD負荷アラート」が発火すると、状態はプレース「HDD暗号化状態」に遷移する。更にトランジション「起動不能アラート」が発火すると、状態はプレース「利用不可状態」に遷移する。更に、装置Bにおけるトランジション「装置Aからの応答異常アラート」が発火すると、状態は最終的なサイバー攻撃の成功Gに至る。
図17Cに示す攻撃シナリオ1730では、サイバーキルチェーンと呼ばれる攻撃のコマンド&コントロールが実行されたときのケースを示したものである。ファイアウォールでトランジション「外部接続/切断アラート」が発火すると、装置A、装置B、及び装置Cのいずれかについて、状態がプレース「コマンドを受け取った状態」に遷移する。次に、装置A、装置B、及び装置Cのいずれかでトランジション「HDD負荷アラート」が発火すると、各装置の状態は、プレース「攻撃実行状態」に遷移する。更に装置A、装置B、装置Cのいずれかでトランジション「異常アラート」が発火すると、状態は最終的なサイバー攻撃の成功Gに至る。
状態推定モデル112としてこれらの攻撃シナリオを用いることで、状態分析装置100はアラート列に基づきICS2のサイバー攻撃による状態を推定することができる。
By using these attack scenarios as the
以上、本発明の一実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記実施形態の構成の一部について、他の構成の追加や削除、置換をすることが可能である。 Although one embodiment of the present invention has been described above, it goes without saying that the present invention is not limited to the above embodiment and can be modified in various ways without departing from the spirit of the invention. For example, the above embodiment has been described in detail to clearly explain the present invention, and is not necessarily limited to having all of the configurations described. In addition, it is possible to add, delete, or replace part of the configuration of the above embodiment with other configurations.
また、上記の各構成、機能部、処理部、処理手段等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサが夫々の機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、ICカ
ード、SDカード、DVD等の記録媒体に置くことができる。
In addition, the above-mentioned configurations, functional units, processing units, processing means, etc. may be realized in part or in whole by hardware, for example, by designing them as integrated circuits. In addition, the above-mentioned configurations, functions, etc. may be realized in software by a processor interpreting and executing a program that realizes each function. Information such as a program, table, file, etc. that realizes each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), an IC card, an SD card, a DVD, or other recording medium.
また、以上に説明した各情報処理装置の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、これらの装置が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。 Furthermore, the layout of the various functional units, various processing units, and various databases of each information processing device described above is merely an example. The layout of the various functional units, various processing units, and various databases can be changed to an optimal layout in terms of the performance, processing efficiency, communication efficiency, etc. of the hardware and software equipped in these devices.
また、前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。 In addition, the configuration (schema, etc.) of the database that stores the various types of data mentioned above can be flexibly changed from the perspective of efficient use of resources, improved processing efficiency, improved access efficiency, improved search efficiency, etc.
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 状態推定モデル更新画面
2 ICS (industrial control system), 5 communication network, 40 graph, 41 scenario X, 42 scenario Y, 50 place management table, 60 transition management table, 70 asset class table, 80 alert class table, 100 state analysis device, 110 storage unit, 111 alert string, 112 state estimation model, 113 state estimation result, 114 base model, 120 alert receiving unit, 130 state estimation unit, 140 estimation result output unit, 150 base model generation unit, 160 state estimation model generation unit, 170 state estimation model update unit, S600 state estimation model generation process, 700 base model setting screen, 800 state estimation model setting screen, 900 state estimation model setting screen, S1000 state estimation process, 1310 state estimation result, 1320 state estimation result, S1400
State estimation model update process, 1530 State estimation model update screen
Claims (15)
プロセッサ及びメモリを有し、
産業制御システムにおいて生じ得る状態遷移の一つ以上のシナリオを示す情報を含む状態推定モデルを記憶し、
前記アセットから発報されるアラートを時系列に並べたアラート列を前記状態推定モデルの前記シナリオと対照することにより、前記アラート列と前記シナリオとの共通性を示す指標を求めて出力する、
状態分析装置。 An information processing device that estimates a state of an industrial control system configured to have a plurality of assets,
A processor and a memory,
storing a state estimation model including information indicative of one or more scenarios of state transitions that may occur in the industrial control system;
By comparing an alert sequence, in which alerts issued from the assets are arranged in chronological order, with the scenario of the state estimation model, an index showing a commonality between the alert sequence and the scenario is obtained and output.
Condition analyzer.
前記指標は、前記状態遷移の進行の度合いを示す指標である進行度、及び前記アラート列が前記シナリオの順序に従って発報されている度合いを表す指標である発報度のうちの少なくともいずれかである、
状態分析装置。 The state analyzer according to claim 1 ,
the indicator is at least one of a progress degree, which is an indicator indicating a degree of progress of the state transition, and an alert activation degree, which is an indicator indicating a degree to which the alert sequence is activated in accordance with the order of the scenario;
Condition analyzer.
前記シナリオの各状態における前記進行度を設定するユーザインタフェースを提供する、
状態分析装置。 The state analyzer according to claim 2,
providing a user interface for setting the degree of progress in each state of the scenario;
Condition analyzer.
前記シナリオ毎の前記指標をユーザインタフェースを介してユーザに提示する、
状態分析装置。 The state analyzer according to claim 1 ,
presenting the index for each of the scenarios to a user via a user interface;
Condition analyzer.
前記状態推定モデルは複数の前記シナリオを含み、
前記シナリオを前記アラート列との前記共通性に応じてソートして、もしくは、前記共通性が大きいシナリオを強調して提示する、
状態分析装置。 The state analyzer according to claim 4,
the state estimation model includes a plurality of the scenarios,
Sorting the scenarios according to their commonality with the alert sequence, or highlighting scenarios with a high commonality.
Condition analyzer.
前記アセットと前記アセットを類型化した分類であるアセットクラスとを対応づけた情報、
前記アラートと前記アラートを類型化した分類であるアラートクラスとを対応づけた情報、及び、
前記シナリオと、前記状態遷移、前記アセットクラス、及び前記アラートクラスとを対応づけた情報、
を記憶し、
前記アラート列を、当該アラート列のアラートを発報した前記アセットが属するアセットクラスと前記アラートが属するアラートクラスとの組合せに対応する前記シナリオと対照することにより前記指標を求める、
状態分析装置。 The state analyzer according to claim 1 ,
Information associating the assets with asset classes that are classifications of the assets;
Information associating the alert with an alert class, which is a classification of the alert; and
Information associating the scenario with the state transition, the asset class, and the alert class;
Remember,
The indicator is obtained by comparing the alert sequence with the scenario corresponding to a combination of an asset class to which the asset that issued the alert in the alert sequence belongs and an alert class to which the alert belongs.
Condition analyzer.
前記状態推定モデルの雛型となる情報であるベースモデルを記憶し、
前記ベースモデルを編集することにより前記シナリオを編集するユーザインタフェースを提供する、
状態分析装置。 The state analyzer according to claim 1 ,
A base model which is information serving as a template for the state estimation model is stored;
providing a user interface for editing the scenario by editing the base model;
Condition analyzer.
前記シナリオはペトリネットにより表され、プレースにアセットクラスが、トランジションに前記アセットクラスと前記アラートクラスが対応づけられる、
状態分析装置。 The state analyzer according to claim 6,
The scenario is represented by a Petri net, and an asset class is associated with a place, and the asset class and the alert class are associated with a transition.
Condition analyzer.
前記アラート列と当該アラート列について求めた前記指標とを対応づけた情報を蓄積記憶し、
前記指標の変化の傾向に基づき前記情報と前記状態推定モデルにおける前記シナリオとの間の乖離の度合いを求める、
状態分析装置。 The state analyzer according to claim 1 ,
storing information correlating the alert sequence with the index determined for the alert sequence;
determining a degree of deviation between the information and the scenario in the state estimation model based on a trend of change in the index;
Condition analyzer.
前記指標は、前記状態の進行の度合いを示す指標である進行度、及び前記シナリオで定めた順序に従ってアラートの発報が生じている度合いを表す指標である発報度であり、
前記進行度の変化に対する前記発報度の変化の度合いに基づき前記乖離の度合いを求める、
状態分析装置。 The state analyzer according to claim 9,
the indicators are a progress degree, which is an indicator showing a degree of progress of the state, and an alert occurrence degree, which is an indicator showing a degree to which an alert is occurring in accordance with an order defined in the scenario,
determining a degree of deviation based on a degree of change in the alarm rate relative to a change in the progress rate;
Condition analyzer.
前記アラート列の各アラートを時系列順に発報して前記シナリオを辿ることにより前記指標の変化を再現し、前記指標の変化に基づき前記シナリオの前記乖離が生じている部分を特定する、
状態分析装置。 The state analyzer according to claim 9,
reproducing the change in the index by issuing each alert in the alert sequence in chronological order and tracing the scenario, and identifying the portion of the scenario where the deviation occurs based on the change in the index;
Condition analyzer.
前記再現の様子を提示するとともに、特定した前記シナリオの前記乖離が生じている箇所を修正するユーザインタフェースを提供する、
状態分析装置。 The state analyzer according to claim 11,
providing a user interface for presenting the reproduction and correcting the identified portion of the scenario where the deviation occurs;
Condition analyzer.
前記アラート列の各アラートを時系列順に発報して修正後の前記シナリオを辿ることにより前記指標の変化を求めてユーザに提示する、
状体分析装置。 The state analyzer according to claim 12,
issuing each alert in the alert sequence in chronological order and tracing the modified scenario to obtain changes in the indicators and present the changes to the user;
Shape analysis device.
プロセッサ及びメモリを有する情報処理装置が、
産業制御システムにおいて生じ得る状態遷移の一つ以上のシナリオを示す情報を含む状態推定モデルを記憶するステップと、
前記アセットから発報されるアラートを時系列に並べたアラート列を前記状態推定モデルの前記シナリオと対照することにより、前記アラート列と前記シナリオとの共通性を示す指標を求めて出力するステップと、
を実行する、状態分析方法。 A method for estimating a state of an industrial control system having a plurality of assets, comprising:
An information processing device having a processor and a memory,
storing a state estimation model including information indicative of one or more scenarios of state transitions that may occur in the industrial control system;
A step of comparing an alert sequence, in which alerts issued from the assets are arranged in chronological order, with the scenario of the state estimation model, thereby obtaining and outputting an index indicating a commonality between the alert sequence and the scenario;
Execute the condition analysis method.
前記情報処理装置が、
前記アラート列と当該アラート列について求めた前記指標とを対応づけた情報を蓄積記憶するステップと、
前記指標の変化の傾向に基づき前記情報と前記状態推定モデルにおける前記シナリオとの間の乖離の度合いを求めるステップと、
を更に実行する、状態分析方法。
The state analysis method according to claim 14,
The information processing device,
storing information in which the alert sequence and the index determined for the alert sequence are associated with each other;
determining a degree of deviation between the information and the scenario in the state estimation model based on a trend of change in the index;
The condition analysis method further comprises:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021185170A JP7574170B2 (en) | 2021-11-12 | 2021-11-12 | State analysis device and state estimation method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021185170A JP7574170B2 (en) | 2021-11-12 | 2021-11-12 | State analysis device and state estimation method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023072547A JP2023072547A (en) | 2023-05-24 |
| JP7574170B2 true JP7574170B2 (en) | 2024-10-28 |
Family
ID=86424299
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021185170A Active JP7574170B2 (en) | 2021-11-12 | 2021-11-12 | State analysis device and state estimation method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7574170B2 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004127989A (en) | 2002-09-30 | 2004-04-22 | Hitachi Kokusai Electric Inc | Semiconductor manufacturing equipment |
| WO2018220751A1 (en) | 2017-05-31 | 2018-12-06 | 株式会社日立製作所 | State monitoring device and device system |
-
2021
- 2021-11-12 JP JP2021185170A patent/JP7574170B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004127989A (en) | 2002-09-30 | 2004-04-22 | Hitachi Kokusai Electric Inc | Semiconductor manufacturing equipment |
| WO2018220751A1 (en) | 2017-05-31 | 2018-12-06 | 株式会社日立製作所 | State monitoring device and device system |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023072547A (en) | 2023-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5444673B2 (en) | Log management method, log management device, information processing device including log management device, and program | |
| US20200272741A1 (en) | Advanced Rule Analyzer to Identify Similarities in Security Rules, Deduplicate Rules, and Generate New Rules | |
| AU2019204776A1 (en) | Preventative diagnosis prediction and solution determination of future event using internet of things and artificial intelligence | |
| WO2020046286A1 (en) | Integrated cybersecurity risk assessment and state monitoring for electrical power grid | |
| JP2017041171A (en) | Test scenario generation support device and test scenario generation support method | |
| US20120023054A1 (en) | Device and Method for Creating a Process Model | |
| WO2021123924A1 (en) | Log analyzer for fault detection | |
| CN106164795A (en) | For the optimization method reported to the police of classifying | |
| JP2019049802A (en) | Failure analysis supporting device, incident managing system, failure analysis supporting method, and program | |
| Makanju et al. | Investigating event log analysis with minimum apriori information | |
| JP2014059664A (en) | Fault tree generation program, method and apparatus | |
| EP3999917B1 (en) | Method and system for generating a digital representation of asset information in a cloud computing environment | |
| CN120951342B (en) | Vulnerability scanning methods, devices, and storage media based on template clusters | |
| Itkin et al. | User-assisted log analysis for quality control of distributed fintech applications | |
| EP4345677A1 (en) | System and method for managing simulation artifacts | |
| JP7574170B2 (en) | State analysis device and state estimation method | |
| Haghighatkhah | Test case prioritization using build history and test distances: an approach for improving automotive regression testing in continuous integration environments | |
| CN102428420A (en) | Method for analyzing message archives and corresponding computer program | |
| CN120821509A (en) | Component configuration method, device, computer equipment and storage medium | |
| Hulse et al. | Synthetic fault mode generation for resilience analysis and failure mechanism discovery | |
| CN119621386A (en) | Fault diagnosis method, device, electronic equipment and storage medium | |
| CN110928761A (en) | System and method for demand chain and its application | |
| WO2020070929A1 (en) | Plant apparatus information management system | |
| EP4141648A1 (en) | Method and system for generating automation domain objects using knowledge from another automation domain object | |
| Binlashram et al. | A new Multi-Agents System based on Blockchain for Prediction Anomaly from System Logs |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240222 |
|
| TRDD | Decision of grant or rejection written | ||
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240925 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241001 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241016 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7574170 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |