【文献】
FOVINO, I. N. et al.,Modbus/DNP3 State-based Intrusion Detection System,2010 24th IEEE International Conference on Advanced Information Networking and Applications ,2010年,p.729-736
【文献】
YANG, Y. et al.,Multiattribute SCADA-Specific Intrusion Detection System for Power Networks,IEEE Transactions on Power Delivery,2014年 6月,Vol.29 No.3,p.1092-1102
(58)【調査した分野】(Int.Cl.,DB名)
複数の運用状態の各運用状態間の状態遷移を表す状態遷移モデルを記憶する状態遷移モデル記憶部と、前記複数の運用状態の各運用状態において通信を許可する通信許可データを通信許可リストとして格納する通信許可リスト格納部とを備えるデータ判定装置のデータ判定方法において、
状態管理部が、前記状態遷移モデルに基づいて、自装置の運用状態を保有し、
通信部が、通信データを通信判定データとして取得し、
判定部が、前記通信部により取得された通信判定データを取得すると共に前記状態管理部により保有される前記自装置の運用状態を現在の運用状態として取得し、前記現在の運用状態と前記通信許可リストとを用いて、前記通信判定データが前記現在の運用状態において通信を許可された通信許可データであるか否かを判定するデータ判定方法。
複数の運用状態の各運用状態間の状態遷移を表す状態遷移モデルを記憶する状態遷移モデル記憶部と、前記複数の運用状態の各運用状態において通信を許可する通信許可データを通信許可リストとして格納する通信許可リスト格納部とを備えるデータ判定装置のプログラムにおいて、
前記状態遷移モデルに基づいて、自装置の運用状態を保有する状態管理処理と、
通信データを通信判定データとして取得する通信処理と、
前記通信処理により取得された通信判定データを取得すると共に前記状態管理処理により保有される前記自装置の運用状態を現在の運用状態として取得し、前記現在の運用状態と前記通信許可リストとを用いて、前記通信判定データが前記現在の運用状態において通信を許可された通信許可データであるか否かを判定する判定処理と
をコンピュータに実行させるプログラム。
複数の運用状態の各運用状態間の状態遷移を表す状態遷移モデルを記憶する状態遷移モデル記憶部と、前記複数の運用状態の各運用状態において通信を許可する通信許可データと、前記通信許可データの通信が許可される許可条件と、前記通信許可データの通信が許可された場合の許可処理とを含む通信許可ルールを通信許可リストとして格納する通信許可リスト格納部とを備えるデータ判定装置のデータ判定方法において、
状態管理部が、前記状態遷移モデルに基づいて、自装置の運用状態を保有し、
通信部が、通信データを通信判定データとして取得し、
判定部が、前記通信部により取得された通信判定データと、前記状態管理部により保有される前記自装置の運用状態である現在の運用状態と、時間を計測する計時部の現在の値であるタイマー値とを取得し、前記現在の運用状態と前記通信許可リストと前記タイマー値とを用いて、前記通信判定データが前記現在の運用状態において通信を許可された通信許可ルールに該当するか否かを判定するデータ判定方法。
複数の運用状態の各運用状態間の状態遷移を表す状態遷移モデルを記憶する状態遷移モデル記憶部と、前記複数の運用状態の各運用状態において通信を許可する通信許可データと、前記通信許可データの通信が許可される許可条件と、前記通信許可データの通信が許可された場合の許可処理とを含む通信許可ルールを通信許可リストとして格納する通信許可リスト格納部とを備えるデータ判定装置のプログラムにおいて、
前記状態遷移モデルに基づいて、自装置の運用状態を保有する状態管理処理と、
通信データを通信判定データとして取得する通信処理と、
前記通信処理により取得された通信判定データと、前記状態管理処理により保有される前記自装置の運用状態である現在の運用状態と、時間を計測する計時部の現在の値であるタイマー値とを取得し、前記現在の運用状態と前記通信許可リストと前記タイマー値とを用いて、前記通信判定データが前記現在の運用状態において通信を許可された通信許可ルールに該当するか否かを判定する判定処理と
をコンピュータに実行させるプログラム。
【発明を実施するための形態】
【0013】
実施の形態1.
***構成の説明***
図1を用いて、本実施の形態に係るデータ判定装置101のブロック構成について説明する。ここで、
図1に示すように、データ判定装置101、監視制御装置200、コントローラ300を備えるシステムをデータ判定システム500と称する。
【0014】
データ判定装置101は、ネットワーク102に接続され、監視制御装置200とコントローラ300との間で通信される通信データを仲介すると共に通信データの判定を行う。データ判定装置101は、ネットワーク102に侵入する攻撃を検知する侵入検知装置、侵入検知システムである。
【0015】
コントローラ300は、例えば産業制御システム等に備えられる。コントローラ300は、アプリケーション310を備える。アプリケーション310は、送信データ112をデータ判定装置101に送信する。また、アプリケーション310は、受信データ111を監視制御装置200から受信する。ここで、データ判定装置101が通信するとともに判定する受信データ111、送信データ112を通信判定データ109とも呼ぶ。
監視制御装置200は、例えば産業制御システム等を監視制御するサーバである。
【0016】
データ判定装置101は、監視制御装置200からネットワーク102を介して受信した受信データ111をコントローラ300に仲介する。また、データ判定装置101は、コントローラ300が送信した送信データ112をネットワーク102を介して監視制御装置200に仲介する。
データ判定装置101は、受信データ111及び送信データ112を仲介する過程において、攻撃の侵入を検知するデータ判定処理を行う。
【0017】
データ判定装置101は、状態管理部103、タイマー104、通信許可リスト格納部105、判定部106、通信部107、警報部108、操作部110、状態遷移モデル記憶部130を備える。
【0018】
状態遷移モデル記憶部130は、複数の運用状態の各運用状態間の状態遷移を表す状態遷移モデル1031を記憶する。状態遷移モデル記憶部130は、自装置が取得した取得情報1033に応じて複数の運用状態の各運用状態間を遷移する状態遷移モデル1031を記憶する。自装置とは、データ判定装置101自身である。
取得情報1033とは、データ判定装置101の状態を遷移させる要素である。取得情報1033には、通信により取得される通信データと自装置に対する操作を受け付けたことを示す操作信号1101とタイマー104から出力されるタイマー信号1041とを含む。
【0019】
状態管理部103は、状態遷移モデル1031に基づいて、自装置、すなわちデータ判定装置101の運用状態を保有する。
通信許可リスト格納部105は、複数の運用状態の各運用状態において通信を許可する通信許可データ119を通信許可リスト114として格納する。
通信部107は、通信データを通信判定データ109として取得する。
【0020】
判定部106は、通信部107により取得された通信判定データ109を取得すると共に状態管理部103により保有される自装置の運用状態1032を現在の運用状態113として取得する。判定部106は、現在の運用状態113と通信許可リスト114とを用いて、通信判定データ109が現在の運用状態113において通信を許可された通信許可データ119であるか否かを判定する。
【0021】
通信部107は、ネットワーク102を介して監視制御装置200との接続を行う。通信部107は、監視制御装置200からネットワーク102を介して受信データ111を受信し、受信した受信データ111を判定部106に出力する。通信部107は、入力した送信データ112を、ネットワーク102を介して監視制御装置200に送信する。通信部107は、ネットワーク入出力部である。
【0022】
状態管理部103は、データ判定装置101の運用状態を状態遷移モデル1031で管理する。状態遷移モデル1031は、予め設定され、データ判定装置101の記憶領域に記憶される。
操作部110は、人間が操作するボタン、タッチパネルなどである。操作部110は、自装置に対する操作を受け付けたことを示す操作信号1101を出力する。
【0023】
タイマー104は、自装置の運用状態が継続する時間を計測する。すなわち、タイマー104は、通信に時間制約がある場合に、時間制約における時間を計測する。
通信許可リスト格納部105は、通信許可リスト114を格納する記憶領域である。
【0024】
判定部106は、受信データ111または送信データ112と、状態管理部103が出力する現在の運用状態113と、通信許可リスト格納部105が格納する通信許可リスト114とを取得する。判定部106は、取得した受信データ111または送信データ112と現在の運用状態113と通信許可リスト114とを比較し、受信データ111または送信データ112が許可されているものか否かを判定し、判定結果115を出力する。
判定部106は、通信判定データ109が通信許可データ119でないと判定した場合、通信を遮断する。つまり、判定部106は、判定結果115が異常の場合、通信を遮断する。
【0025】
警報部108は、判定部106により通信判定データ109が通信許可データ119でないと判定された場合、異常を検知したことを示す警報を出力する。つまり、警報部108は、判定結果115が異常の場合に警報を発する。警報部108が発する警報は、ランプのような視覚によるものでもよいし、ネットワークを経由して別のサーバに発報してもよい。
【0026】
状態管理部103は、判定部106により通信判定データ109が通信許可データ119であると判定された場合、状態遷移モデル1031に基づいて自装置の運用状態1032を遷移させる。
また、状態管理部103は、判定部106により通信判定データ109が通信許可データ119でないと判定された場合、自装置の運用状態1032を異常状態に遷移させる。
なお、状態管理部103は、正常と判定された場合に状態を遷移するのみでもよい。
以上のように、状態管理部103は、自装置であるデータ判定装置101の現在の運用状態113を保有する。
【0027】
図2を用いて、
図1のデータ判定装置101とは異なる動作を行うデータ判定装置101aについて説明する。
図1に示すデータ判定装置101では、判定部106が通信判定データ109を判定した後に受信データ111あるいは送信データ112を通信する構成を示した。しかし、
図2に示すデータ判定装置101aのように監視制御装置200とアプリケーション310との通信を判定部106がキャプチャする構成でもよい。
図2のデータ判定装置101aでは、判定結果115が異常の場合、判定部106が通信を遮断することができない。しかし、警報部108により発せられた警報により、攻撃に対する対処を行うことができる。
【0028】
図3を用いて、本実施の形態に係る状態管理部103が管理するデータ判定装置101の状態遷移モデル1031の一例について説明する。
図3は一例であり、状態遷移モデル1031は必ずしも
図3の通りでなくてもよい。
図3において、各状態301〜307は、複数の運用状態3001の例である。また、各状態間は、複数の運用状態の各運用状態間3002の例である。
図3では、データ判定装置101は、電源投入時にNW構築状態301に遷移し、NW構築に必要な通信を行う。データ判定装置101において、NW構築に必要な通信を通信データ1とする。なお、以下の説明においてもネットワーク構築をNW構築と記載する。状態遷移モデル1031では、NW構築が完了し、通信データ2を受信したら運転A状態302に移行する。
【0029】
状態遷移モデル1031では、通信データの順番に規定がある通信、例えば通信データ4,5,6の順番で受信するという規定がある通信が存在する場合、規定された通信順に従って運転状態をさらに定義する。
図3の状態遷移モデル1031では、通信データ4を通信すると運転B状態303に遷移し、通信データ5を通信すると運転C状態304に遷移し、通信データ6を通信すると運転A状態302に遷移するように定義されている。このように、それぞれの運転状態への遷移条件を通信データ4,5,6に割り当てるようにしてもよい。
【0030】
また、運転A状態302において、時間制約のある通信データ7が存在する場合、タイマーをオンにし、待ち状態305に移行し、タイマーがオフになったら運転A状態302に復帰するようにしてもよい。タイマー信号1041は、タイマーのオンオフを示す信号である。
さらに、人の操作1により保守状態306に移行し、保守に必要な通信、例えば通信データ8,9を行うようにしてもよい。保守が完了し、通信データ10を受信したら運転A状態302に移行する。さらに、通信データによる状態遷移を行う際は、判定部106の判定結果が正常であった場合のみ遷移するようにしてもよい。各状態において、判定部106の判定結果が異常であったら、異常状態307に遷移してもよい。
【0031】
図4を用いて、本実施の形態に係る通信許可リスト114の構成について説明する。
図4は、状態管理部103の保持するそれぞれの運用状態において許可された通信許可リスト114の例である。
図4の通信許可リスト114は一例であり、必ずしも
図4の通りでなくてもよい。
【0032】
図4に示すように、通信許可リスト114は、運用状態、通信データ番号、送信元アドレス、コマンド種別、データサイズ上限、データ設定範囲などの項目を有する。これらの項目は任意であり、通信データを特定することができる項目であれば、その他の項目でも構わない。
【0033】
図4に示すように、NW構築時は、通信データ1,2のみ許可し、それ以外の通信を許可しない。また、待ち状態ではすべての通信を許可しない。
【0034】
図5を用いて、本実施の形態に係るデータ判定装置101のハードウェア構成の一例について説明する。
【0035】
データ判定装置101はコンピュータである。
データ判定装置101は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース905は、入力装置907に接続されている。
ディスプレイインタフェース906は、ディスプレイ908に接続されている。
【0036】
プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
メモリ903は、例えば、RAM(Random Access Memory)である。
通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。
通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。
入力インタフェース905は、例えば、USB(Universal Serial Bus)端子である。
ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。
ディスプレイインタフェース906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
入力装置907は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
【0037】
補助記憶装置902には、
図1に示す状態管理部103、判定部106、警報部108(以下、状態管理部103、判定部106、警報部108をまとめて「部」と表記する)の機能を実現するプログラムが記憶されている。上述したデータ判定装置101が備える「部」の機能を実現するプログラムは、データ判定プログラムとも称される。「部」の機能を実現するプログラムは、1つのプログラムであってもよいし、複数のプログラムから構成されていてもよい。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
更に、補助記憶装置902には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
図5では、1つのプロセッサ901が図示されているが、データ判定装置101が複数のプロセッサ901を備えていてもよい。
そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリにファイルとして記憶される。
【0038】
「部」を「サーキットリー」で提供してもよい。
また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。また、「処理」を「回路」又は「工程」又は「手順」又は「部」に読み替えてもよい。
「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
【0039】
なお、プログラムプロダクトと称されるものは、「部」として説明している機能を実現するプログラムが記録された記憶媒体、記憶装置などであり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
【0040】
***動作の説明***
図6を用いて、本実施の形態に係るデータ判定装置101のデータ判定方法、データ判定処理S100について説明する。
【0041】
上述したように、データ判定装置101は、状態遷移モデル1031を記憶する状態遷移モデル記憶部130と、通信許可データ119を通信許可リスト114として格納する通信許可リスト格納部105とを備える。
【0042】
状態管理処理S101において、状態管理部103は、状態遷移モデル1031に基づいて、自装置の運用状態1032を保有する状態管理処理S101を実行する。状態管理部103は、状態遷移モデル1031に基づいて自装置の運用状態1032を遷移させ、最新の運用状態を自装置の運用状態1032として保有する。
【0043】
通信処理S110において、通信部107は、通信データを通信判定データ109として取得する通信処理S110を実行する。通信部107は、受信データ111あるいは送信データ112を、判定の対象である通信判定データ109として取得する。
【0044】
判定処理S120において、判定部106は、通信処理S110により取得された通信判定データ109を取得すると共に状態管理処理S101により保有される自装置の運用状態1032を現在の運用状態113として取得する。判定部106は、現在の運用状態113と通信許可リスト114とを用いて、通信判定データ109が現在の運用状態113において通信を許可された通信許可データ119であるか否かを判定する。判定部106は、判定結果115を出力する。
S130において、判定結果115が正常、すなわち通信判定データ109が通信許可データ119である場合、正常処理S140に進む。
S130において、判定結果115が異常、すなわち通信判定データ109が通信許可データ119でない場合、異常処理S150に進む。
【0045】
正常処理S140において、状態管理部103は、取得した通信判定データ109と状態遷移モデル1031とに基づいて、自装置の運用状態1032を遷移させる。
異常処理S150において、状態管理部103は、自装置の運用状態1032を異常状態に遷移させる。また、警報部108は、警報を通知する。
【0046】
次に、
図7を用いて、判定部106による判定処理S120について説明する。
S121において、判定部106は、通信判定データ109を取得し、取得した通信判定データ109を解析する。判定部106は、受信データ111あるいは送信データ112を通信判定データ109として取得する。判定部106は、通信判定データ109の中身を解析し、判定に必要な要素を抽出する。抽出される要素は、通信許可リスト114に記載されている項目であり、通信データ番号、送信元アドレス、送信先アドレス、コマンド種別、応答種別等である。
【0047】
S122において、判定部106は、状態管理部103から現在の運用状態113を取得する。また、判定部106は、通信許可リスト格納部105から通信許可リスト114を取得する。
【0048】
S123において、判定部106は、現在の運用状態113と通信許可リスト114とに基づいて、通信判定データ109が現在の運用状態113において許可されている通信データ、すなわち通信許可データ119であるか否かを判定する。
通信判定データ109が通信許可データ119であればS124に進む。
通信判定データ109が通信許可データ119でない、すなわち通信判定データ109が許可されていない通信であれば、S125に進む。
【0049】
S124において、判定部106は、正常の判定結果115を出力する。
S125において、判定部106は、異常の判定結果115を出力し、通信判定データ109の通信を遮断する。あるいは、判定部106は、異常の判定結果115を出力するだけで、通信判定データ109の通信を遮断しなくてもよい。
【0050】
以上で、本実施の形態に係るデータ判定装置101のデータ判定方法、データ判定処理S100についての説明を終わる。
【0051】
以上のように、本実施の形態に係るデータ判定装置101は、以下の構成を有する。
(A)通信データと外部操作とタイマーのいずれか1つ以上の要素によって遷移する状態遷移モデルに従い、運用状態を管理する状態管理部。
(B)運用状態ごとに許可する通信データを定めた通信許可リストを格納する通信許可リスト格納部。
(C)状態管理部が出力する現在の運用状態と通信許可リスト格納部が格納している通信許可リストとを用いて、データ判定装置に入力された通信データが正常か否かを判定する判定部。
(D)判定部が出力する判定結果をもとに警報を発する警報部。
また、状態管理部は、判定部が出力する判定結果によって遷移する状態遷移モデルに従い、運用状態を管理する。判定部は、異常と判断した通信データを遮断する。
【0052】
***本実施の形態の効果の説明***
比較のために先に述べたStuxnetのような攻撃では、乗っ取られたサーバがコントローラに対しプログラム書き換えを行っている。プログラム書き換え自体は正常通信であり、乗っ取られたサーバも正常と定義されたサーバであるため、ホワイトリスト型対策ではStuxnetのような攻撃を防ぐことができない。
一方、本実施の形態に係るデータ判定装置では、通信データだけでなく人の操作やタイマーによる運用状態の遷移を行うようにしている。よって、保守状態の時のみプログラム書き換えを受け付けるようにし、保守状態への遷移は人の操作によってのみ行われるように対策をすることで、上記のような攻撃を検知することができる。
また、Stuxnetによってプログラムを書き換えられたコントローラは、制御対象の周波数コンバータに対し高頻度で周波数を変更するコマンドを送信することで機器の故障を誘発する。本実施の形態に係るデータ判定装置では、タイマーによってそのような高頻度の周波数変更コマンドを検出する対策をとることができる。
なお、上記対策は一例であり、例えば保守状態への移行を、乗っ取りの危険のないことが保障されている専用の装置からの通信データによって行ってもよい。
【0053】
また、本実施の形態に係るデータ判定装置によれば、正しい通信順からの逸脱も検知することができる。
【0054】
実施の形態2.
本実施の形態では、主に、実施の形態1と異なる点について説明する。
実施の形態1で説明した構成と同様の構成については同一の符号を付し、その説明を省略する場合がある。
【0055】
上述した実施の形態1では、状態遷移モデル1031と通信許可リスト114とをあらかじめ設計者が設定する必要があった。しかし、本実施の形態では、状態遷移モデル1031と通信許可リスト114とを取得情報履歴151から生成する方式について説明する。本実施の形態では取得情報履歴151に攻撃データが含まれていないことを仮定する。
【0056】
***構成の説明***
図8を用いて、本実施の形態に係るデータ判定装置101bのブロック構成について説明する。
図8に示すように、本実施の形態に係るデータ判定装置101bは、実施の形態1の構成に加え、履歴記憶部153、リスト生成部152を備える。
【0057】
履歴記憶部153は、取得情報の履歴を取得情報履歴151として記憶する。取得情報履歴151は、データ判定装置101bが取得した取得情報を蓄積したファイルであり、データ判定装置101bの記憶領域に記憶される。取得情報履歴151は、データ判定装置101bが取得した取得情報の履歴であり、通信履歴を含むものである。
【0058】
リスト生成部152は、取得情報履歴151に基づいて、状態遷移モデル1031と通信許可リスト114とを生成する。
なお、状態遷移モデル1031と通信許可リスト114との生成は人的作業により行ってもよく、人的作業により行う場合にはリスト生成部152は無くてもよい。
【0059】
***動作の説明***
図9は、取得情報履歴151からデータ判定装置101bの運用状態を決定し、状態遷移モデル1031を生成するための手順を示す図である。ここでは、リスト生成部152が自動的にリスト生成処理を実行するものとして説明する。
図9では、「A電源投入」から「T通信データ5」までが取得情報履歴151により得られたものとする。
【0060】
図9を用いて、リスト生成部152による状態遷移モデル生成処理の概要について説明する。
リスト生成部152は、取得情報履歴151に含まれる連続する通信データ間の経過時間が第1時間以上であれば待ち状態を設定する。
次に、リスト生成部152は、通信データ以外の取得情報を取得した時点を第1変化点701とし、第1変化点701の前後を第1運用状態とする。
次に、リスト生成部152は、各第1運用状態において運用状態が遷移すると判定された遷移通信データ703を取得した時点を第2変化点702として、第2変化点702の前後を第2運用状態として状態遷移モデルを生成する。ここで、リスト生成部152は、クラスタリング手法を用いて遷移通信データ703を抽出する。
【0061】
図10,11を用いて、リスト生成部152によるリスト生成処理の概要について説明する。
リスト生成部152は、状態遷移モデルに含まれる各運用状態において通信された通信データを通信許可データとして通信許可リストに設定する。リスト生成部152は、通信許可データに包含関係が成り立つ運用状態同士を1つにまとめる。
【0062】
図9〜11を用いて、リスト生成部152による状態遷移モデル生成処理、リスト生成処理の詳細について説明する。
S601において、リスト生成部152は、通信データ間の経過時間が一定以上であれば、「待ち」状態を定義する。待ち状態への遷移の際はタイマーをオンにし、タイマーオフで次の運用状態に遷移するものと定義する。
次に、S602において、リスト生成部152は、通信データ以外の入力が発生したら状態の第1変化点701とし、第1変化点701の間を新たな第1運用状態とする。
図9に示すように、「A電源投入」から「I通信データ5:タイマーオン」までを「状態1」と定義し、同様に、「状態2」、「状態3」を定義する。
【0063】
最後に、S603において、リスト生成部152は、S602で定めた第1変化点701間の通信データを時系列でクラスタリングし、クラスタの間を新たな第2運用状態とする。クラスタリングにはウォード法やK平均法、機械学習などを使用してもよい。通信データによる状態変化が仕様から明らかな場合は、仕様に基づいて第2変化点を定めてもよい。同様に通信データに順序が規定されている場合は、各々の通信データを第2変化点と定めてもよい。
図9に示すように、S603では、第2運用状態として「状態1−1」、「状態1−2」、「状態3−1」、「状態3−2」が定義される。
【0064】
図10は状態遷移モデルより生成された通信許可リストであり、
図11はまとめ後の通信許可リストである。
図10及び
図11を用いて、
図9で説明した方法により生成された状態遷移モデルから通信許可リストを生成する方法について述べる。
まず、
図10に示すように、リスト生成部152は、先に生成した状態遷移モデルの各状態において、許可された通信データを抽出し、通信許可リストの表にする。このとき、遷移条件と遷移先の状態も表にまとめる。
次に、
図11に示すように、リスト生成部152は、
図10の通信許可リストにおいて許可された通信データに包含関係が成り立つ状態をまとめる。このとき、遷移先に規定されている状態もまとめる。例えば、
図11に示すように、状態1−2と状態2と状態3−2は包含関係が成り立つため、これらをまとめて状態1−2とし、対応する遷移先もまとめる。
【0065】
上述に記載の手法またはその他の手法によって、データ判定装置の外部で生成した状態遷移モデルや通信許可リストをデータ判定装置にインストールする際は、電子署名を加えてインポートし、データ判定装置で署名を検証するようにしてもよい。このような処理により、状態遷移モデルや通信許可リストの改ざんを検知することができる。電子署名としては例えばRSA署名やECDSA署名を用いてもよい。
【0066】
以上のように、本実施の形態に係るデータ判定装置101bは、取得情報履歴から状態遷移モデルと通信許可リストとを生成するリスト生成部を有する。
【0067】
また、リスト生成部は、状態遷移モデルと通信許可リストとの生成に以下の処理を用いる。
(1)通信データ間の経過時間が一定以上であれば待ち状態とし、待ち状態に遷移する際にタイマーをオンにし、タイマーオフにより次の状態に遷移させる処理。
(2)通信データ以外の入力が発生したらところを運用状態の変化点とし、変化点の前後を新たな運用状態とする処理。
(3)(2)で定めた運用状態において特定の通信データを変化点として、その前後を新たな運用状態とする処理。
(4)前記各運用状態において、運用状態内で通信されたデータを許可された通信データとしてリストにする処理。
(5)(3)において、前記特定の通信データを求める際に、所定のクラスタリング手法を用いる処理。
(6)前記許可された通信データに包含関係が成り立つ運用状態を1つにまとめる処理。
【0068】
また、本実施の形態は、外部で生成した状態遷移モデルと通信許可リストとをデータ判定装置101bにインストールする際に、状態遷移モデルと通信許可リストとに付与されている署名を検証して改ざんを検知する処理を有する。
【0069】
***本実施の形態の効果の説明***
本実施の形態に係るデータ判定装置101bによれば、実施の形態1の効果に加え、取得情報履歴から状態遷移モデルと通信許可リストとを自動生成できる。よって、設計者の負担を削減することができる。
【0070】
実施の形態3.
本実施の形態では、主に、実施の形態1,2と異なる点について説明する。
実施の形態1,2で説明した構成と同様の構成については同一の符号を付し、その説明を省略する場合がある。
【0071】
実施の形態1,2では、データ判定装置101はネットワーク102とコントローラ300との間に接続するものであった。しかし、本実施の形態では、サーバとコントローラとの間に設置可能なデータ判定装置101cの構成について説明する。
【0072】
***構成の説明***
図12を用いて、本実施の形態に係るデータ判定装置101cのブロック構成について説明する。
データ判定装置101cは、サーバである監視制御装置200とはネットワーク102を介して接続され、コントローラ300とはネットワーク102aを介して接続される。データ判定装置101cは、ネットワーク102、ネットワーク102aの各々に対応し、通信部107、通信部107aを有する。
図13を用いて、
図12のデータ判定装置101cとは異なる動作を行うデータ判定装置101dのブロック構成について説明する。
図13に示すようにデータ判定装置101dは、監視制御装置200とコントローラ300との通信を判定部106がキャプチャする構成でもよい。
図13に示すデータ判定装置101dでは、1つのネットワーク102に監視制御装置200とコントローラ300とが接続されている。
【0073】
***動作の説明***
データ判定装置101cは、実施の形態1,2で説明したものと同様に、監視制御装置200からコントローラ300への通信およびコントローラ300から監視制御装置200への通信を判定する。データ判定装置101cの判定動作は実施の形態1と同じである。
また、データ判定装置101dの動作については実施の形態1のデータ判定装置101aと同様である。ただし、通信許可リストの項目について、送信元アドレスやコマンド種別、データサイズ上限やデータ設定範囲などの他に送信先アドレスも規定するようにしてもよい。
【0074】
***本実施の形態の効果の説明***
実施の形態1,2では、データ判定装置101を各コントローラ300に設置するため、コントローラ300が増えるとコストが増大する。本実施の形態では、ネットワークに1つ設置すればよいためコストを削減することができる。
【0075】
上記の実施の形態では、状態管理部、判定部、警報部がそれぞれ独立した機能ブロックとしてデータ判定装置を構成している。しかし、データ判定装置は上記のような構成でなくてもよく、データ判定装置の構成は任意である。状態管理部、判定部、警報部をひとつの機能ブロックで実現してもよい。また、状態管理部、判定部を1つの機能ブロックで実現してもよいし、判定部、警報部を1つの機能ブロックで実現してもよい。
【0076】
また、データ判定装置は、1つの装置でなく、複数の装置から構成されたデータ判定システムでもよい。データ判定装置の機能ブロックは、実施の形態に記載した機能を実現することができれば、任意であり、これらの機能ブロックを、他のどのような組み合わせでデータ判定装置を構成しても構わない。
【0077】
また、実施の形態1〜3について説明したが、これらの3つの実施の形態のうち、複数を組み合わせて実施しても構わない。あるいは、これらの3つの実施の形態のうち、1つの実施の形態を部分的に実施しても構わない。あるいは、これらの3つの実施の形態のうち、複数を部分的に組み合わせて実施しても構わない。その他、これらの3つの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
【0078】
実施の形態4.
本実施の形態では、主に、実施の形態1と異なる点について説明する。
本実施の形態に係るデータ判定装置101eの基本的な動作は実施の形態1で説明したデータ判定装置101と同様であるが、通信許可リスト114eの構成、状態遷移モデル1031eの構成及び判定処理S120eの動作に実施の形態1と異なる点がある。
本実施の形態では、実施の形態1と同様の構成には同一の符号を付し、その説明を省略する場合がある。
【0079】
***構成の説明***
図14を用いて、本実施の形態に係るデータ判定装置101eのブロック構成について説明する。
図14は、実施の形態1で説明した
図1に相当する。
本実施の形態に係るデータ判定装置101eは、実施の形態1で説明したデータ判定装置101の構成に加え、フラグ管理部177を備える。また、実施の形態1で説明したタイマー104、状態管理部103、判定部106は、実施の形態1と異なる点を有するため、本実施の形態ではタイマー104e、状態管理部103e、判定部106eとする。
したがって、本実施の形態に係るデータ判定装置101eでは、実施の形態1で説明した「部」の機能にフラグ管理部177、タイマー104e、状態管理部103e、判定部106eの機能が加わる。
【0080】
フラグ管理部177は、フラグを管理する。フラグ管理部177は、フラグの現在の値であるフラグ値15を状態管理部103eと判定部106eとに入力する。また、判定部106eからフラグ設定値16が入力される。
タイマー104eは、時間を計測する。タイマー104eは、具体的には、設定された値を一定周期、具体的には1msで減算し、値が0になった場合に減算を終了する。また、タイマー104eは、現在の値であるタイマー値17を状態管理部103eと判定部106eとに入力する。また、判定部106eからタイマー設定値18が入力される。本実施の形態では、タイマー104eは時間を計測する計時部144の一例である。なお、実施の形態1で説明したタイマー信号1041については記載を省略する。
【0081】
状態遷移モデル記憶部130には、実施の形態1で説明した状態遷移モデル1031とは異なる構成の状態遷移モデル1031eが格納される。
【0082】
また、通信許可リスト格納部105には、実施の形態1で説明した通信許可リスト114とは異なる構成の通信許可リスト114eが格納される。通信許可リスト114eには、
図16に示すように、複数の運用状態の各運用状態において通信を許可する通信許可データ119eと、通信許可データ119eの通信が許可される許可条件192と、通信許可データの通信が許可された場合の許可処理193とを含む通信許可ルール14が格納される。
【0083】
判定部106eは、実施の形態1で説明したように、受信データ111を通信部107から、送信データ112をアプリケーション310から取得すると共に、状態管理部103eにより保有される自装置の運用状態を、現在の運用状態113として取得する。また、判定部106eは、タイマー104eからタイマー値17を、フラグ管理部177からフラグ値15を取得する。判定部106eは、現在の運用状態113、タイマー値17、フラグ値15、通信許可リスト114eを用いて、通信判定データ109が現在の運用状態113において通信を許可された通信許可ルール14に該当するか否かを判定する。
【0084】
判定部106eについてさらに説明する。
判定部106eは、受信データ111または送信データ112と、状態管理部103eが出力する現在の運用状態113と、通信許可リスト格納部105が格納する通信許可リスト114eと、フラグ管理部177か管理するフラグ値15と、タイマー104eが管理するタイマー値17とを取得する。判定部106eは、取得した受信データ111または送信データ112と、現在の運用状態113と、通信許可リスト114eとフラグ値15と、タイマー値17とを比較し、受信データ111または送信データ112が許可されているものか否かを判定し、判定結果115を出力する。
【0085】
判定部106eは、通信判定データ109が通信許可リスト114eに含まれる通信許可ルール14に該当すると判定した場合、通信を許可し、該当した通信許可ルール14に記載されたアクション、すなわち許可処理193を実行する。具体的には、フラグ管理部177に対して通信許可ルール14に記載されたフラグ許可値をフラグ設定値16として設定したり、タイマー104eに対して通信許可ルール14に記載されたタイマー許可値をタイマー設定値18として設定したりする。
判定部106eは、通信判定データ109が通信許可ルール14に該当しないと判定した場合、通信を遮断する。つまり、判定部106eは、判定結果115が異常の場合、通信を遮断する。
【0086】
警報部108は、判定部106eにより通信判定データ109が通信許可ルール14に該当しないと判定された場合、異常を検知したことを示す警報を出力する。つまり、警報部108は、実施の形態1と同様に、判定結果115が異常の場合に警報を発する。
【0087】
状態管理部103eは、判定部106eにより通信判定データ109が通信許可ルール14に該当すると判定された場合、状態遷移モデル1031eに基づいて自装置の運用状態を遷移させる。
また、状態管理部103eは、判定部106eにより通信判定データ109が通信許可ルール14に該当しないと判定された場合、自装置の運用状態を異常状態に遷移させる。
なお、状態管理部103eは、実施の形態1と同様に、正常と判定された場合に状態を遷移するのみでもよい。
以上のように、状態管理部103eは、自装置であるデータ判定装置101eの現在の運用状態113を保有する。
【0088】
図15を用いて、
図14のデータ判定装置101eとは異なる動作を行うデータ判定装置101eaのブロック構成について説明する。
図15は、実施の形態1で説明した
図2に相当する。
実施の形態1で説明した
図2と同様に、
図15に示すデータ判定装置101eaのように監視制御装置200とアプリケーション310との通信を判定部106eがキャプチャする構成でもよい。
図15のデータ判定装置101eaでは、判定結果115が異常の場合、判定部106eが通信を遮断することができない。しかし、警報部108により発せられた警報により、攻撃に対する対処を行うことができる。
【0089】
図16を用いて、本実施の形態に係る通信許可リスト114eの構成について説明する。
図16は、状態管理部103eの保持するそれぞれの運用状態において許可された通信許可リスト114eの例である。
図16の通信許可リスト114eは一例であり、必ずしも
図16の通りでなくてもよい。
【0090】
図16に示すように、通信許可リスト114eは、運用状態、ルール番号、受信データ条件、アクションといった項目を有する。受信データ条件は、通信許可データ119eと許可条件192とを有する。
通信許可データ119eには、実施の形態1と同様に、送信元アドレス、コマンド種別、データサイズ上限、データ設定範囲といった情報が設定される。
許可条件192は、通信許可データ119eの通信を許可する計時部144の値の範囲であるタイマー許可値1921と、通信許可データ119eの通信を許可するフラグの値であるフラグ許可値1922とを有する。
また、アクションは、通信許可データ119eの通信が許可された場合の許可処理193である。アクションは、通信許可データ119eの通信が許可された場合に計時部144に設定するタイマー設定値18と、通信許可データ119eの通信が許可された場合にフラグに設定するフラグ設定値16とを有する。
なお、これらの項目は任意であり、通信を許可する通信データを特定することができる項目であれば、上記以外の項目でも構わない。
【0091】
図16では、具体的には、運用状態がNW構築の場合、ルール1,2のみ許可し、それ以外のルールを許可しないことを意味する。また、運用状態が運転Aの場合、ルール3a,3b,3c,7,4のみ許可し、それ以外のルールを許可しないことを意味する。また、また、運用状態が異常の場合はすべての通信を許可しないことを意味している。
また、通信許可ルール14とは、運用状態における通信の許否が設定された通信許可リスト114eの各行のことである。
図16では、通信許可ルール14としてルール1からルール10までが設定されている。運用状態が異常の場合はすべての通信を許可しないことを意味している。
【0092】
図17を用いて、本実施の形態に係るデータ判定装置101eの状態遷移モデル1031eの一例について説明する。
図17は一例であり、状態遷移モデル1031eは必ずしも
図17の通りでなくてもよい。
図17において、実施の形態1と同様に、各状態301から306は、複数の運用状態の例である。また、各状態間は、複数の運用状態の各運用状態間の例である。
図17では、データ判定装置101eは、電源投入時にNW構築状態301に遷移し、NW構築に必要な通信を行う。データ判定装置101eにおいて、NW構築に必要な通信に適用されるルールをルール1とする。なお、以下の説明においてもネットワーク構築をNW構築と記載する。状態遷移モデル1031eでは、NW構築が完了し、ルール2が適用されたら運転A状態302に移行する。
【0093】
状態遷移モデル1031eは、通信データの順番が規定された通信が存在する場合、規定された通信の順番に従って運転状態をさらに定義する。規定された通信の具体例としては、「パラメータファイル送信」、「パラメータファイル設定」、「ベリファイ」の順番で受信すると規定された通信がある。状態遷移モデル1031eでは、運転A状態302で「パラメータファイル送信」を判定するルール4が適用されると運転B状態303に遷移し、ルール5が適用されると運転C状態304に遷移し、ルール6が適用されると運転A状態302に遷移するように定義されている。このように、それぞれの運転状態への遷移条件をルール4,5,6に割り当てるようにしてもよい。
【0094】
以下において、タイマー値17をT1とし、フラグ値15をF1として説明する。
運転A状態302において、コマンド受信後に一定時間を空ける必要のある通信が存在する場合がある。具体的には
図16におけるルール7の「運転データ設定」である。ルール7では、許可条件192のようにT1がタイマー許可値1921に設定された0であること、すなわちT1=0を条件に「運転データ設定」を受け入れ、許可処理193のようにT1に所定の値を設定する。具体的には、1msごとに減算するタイマーで100msの間隔をあける場合は、T1にタイマー設定値18である100を設定する。すなわち、T1=100とする。
【0095】
また、運転A状態302において、b秒間隔(誤差±d秒)でコマンドを受信する必要がある通信、具体的には
図16におけるルール3a,3bの「状態データ取得」である。ルール3a,3bでは、T1及びF1の各々が許可条件192に設定されている許可値に合致した場合に通信を許可し、T1及びF1の各々に許可処理193に設定されている設定値を設定する。また、状態データ取得を終了する際は、ルール3cのように状態データ取得終了コマンドを発行し、この状態データ取得終了コマンドを受信した際に、T1及びF1をクリアする。すなわち、T1及びF1の各々に許可処理193に設定されている設定値である0を設定する。さらに、
図17に示すように、運転A状態302において、F1が1でかつT1が0になった場合に異常状態306に遷移してもよい。
【0096】
また、運転A状態302において、人の操作1により保守状態305に移行し、保守に必要な通信、具体的にはプログラム更新やベリファイを行うようにしてもよい。保守状態305において、保守が完了し、ルール10が適用されたら運転A状態302に移行する。さらに、通信データによる状態遷移を行う際は、判定部106eの判定結果が正常であった場合のみ遷移するようにしてもよい。各状態において、判定部106eの判定結果が異常であったら、異常状態306に遷移してもよい。
【0097】
***動作の説明***
図18を用いて、本実施の形態に係るデータ判定装置101eのデータ判定方法、データ判定処理S100eについて説明する。データ判定処理S100eにおいて、実施の形態1のデータ判定処理S100と異なる点は判定処理S120eである。判定処理S120e以外の処理は実施の形態1と同様であるため、簡潔に説明する。
【0098】
上述したように、データ判定装置101eは、状態遷移モデル1031eを記憶する状態遷移モデル記憶部130と、通信許可ルール14を通信許可リスト114eとして格納する通信許可リスト格納部105とを備える。
【0099】
状態管理処理S101において、状態管理部103eは、状態遷移モデル1031eに基づいて、自装置の運用状態を保有する状態管理処理S101を実行する。状態管理部103eは、状態遷移モデル1031eに基づいて自装置の運用状態を遷移させ、最新の運用状態を保有する。
【0100】
通信処理S110は、実施の形態1で説明したものと同様である。
【0101】
判定処理S120eにおいて、判定部106eは、通信処理S110により取得された通信判定データ109を取得すると共に状態管理処理S101により保有される自装置の運用状態を現在の運用状態113として取得する。また、判定部106eは、タイマー104eよりタイマー値17を、フラグ管理部177よりフラグ値15を取得する。判定部106eは、現在の運用状態113、タイマー値17、フラグ値15、通信許可リスト114eを用いて、通信判定データ109が現在の運用状態113において通信許可ルール14に該当するか否かを判定する。
具体的には、判定部106eは、タイマー値17がタイマー許可値1921の範囲内であるか否かの判定結果を用いて、通信判定データ109が通信許可ルール14に該当するか否かを判定する。また、判定部106eは、タイマー値17がタイマー許可値1921の範囲内であるか否か、フラグ値15がフラグ許可値1922であるか否かの判定結果を用いて、通信判定データ109が通信許可ルール14に該当するか否かを判定してもよい。すなわち、
図16に示すように、判定部106eは、通信判定データ109が通信許可データ119eであると判定した場合、許可条件192を満たしているか否かの判定結果に基づいて、通信判定データ109が通信許可ルール14に該当するか否かを示す判定結果115を出力する。
【0102】
S130において、判定結果115が正常、すなわち通信判定データ109が通信許可ルール14に該当する場合、正常処理S140に進む。
S130において、判定結果115が異常、すなわち通信判定データ109が通信許可ルール14に該当しない場合、異常処理S150に進む。
【0103】
正常処理S140において、状態管理部103eは、取得した通信判定データ109と状態遷移モデル1031eとに基づいて、自装置の運用状態を遷移させる。
異常処理S150において、状態管理部103eは、自装置の運用状態を異常状態に遷移させる。
【0104】
次に、
図19を用いて、判定部106eによる判定処理S120eについて説明する。判定処理S120eにおいて、実施の形態1の判定処理S120と異なる点はS123e,S124eである。S123e,S124e以外の処理は実施の形態1と同様であるため、簡潔に説明する。
【0105】
S121において、判定部106eは、受信データ111あるいは送信データ112を通信判定データ109として取得する。判定部106eは、通信判定データ109の中身を解析し、判定に必要な要素を抽出する。抽出される要素は、通信許可リスト114eに記載されている項目であり、送信元アドレス、コマンド種別といった情報である。
【0106】
S122において、判定部106eは、状態管理部103eから現在の運用状態113を取得する。また、判定部106eは、通信許可リスト格納部105から通信許可リスト114eを取得する。
【0107】
S123eにおいて、判定部106eは、現在の運用状態113と通信許可リスト114eとに基づいて、通信判定データ109が現在の運用状態113において許可されている通信データ、すなわち通信許可ルール14に該当するか否かを判定する。
通信判定データ109が通信許可ルール14に該当すると判定されると、S124eに進む。
通信判定データ109がいずれの通信許可ルール14にも該当しないと判定されると、S125に進む。
S125において、判定部106eは、異常の判定結果115を出力し、通信判定データ109の通信を遮断する。あるいは、判定部106eは、異常の判定結果115を出力するだけで、通信判定データ109の通信を遮断しなくてもよい。この処理は実施の形態1で説明したものと同様である。
【0108】
S124eにおいて、判定部106eは、通信を許可すると共に、通信判定データ109が該当した通信許可ルール14に対応するアクションがあれば、そのアクションを実行する。すなわち、判定部106eは、正常の判定結果115を出力し、通信を許可すると共に、通信判定データ109が該当した通信許可ルール14に対応するアクションがあれば、そのアクションを実行する。具体的には、判定部106eは、フラグ管理部177にフラグ設定値16をセットしたり、タイマー104eにタイマー設定値18をセットしたりする。
【0109】
以下に、判定処理S120eについて具体例を用いて説明する。
データ判定装置101eが、ルール4,5,6に該当する通信判定データ109を受信した場合について説明する。
データ判定装置101eが、運転A状態302において通信判定データ109を受信し、通信判定データ109の送信元アドレスとコマンド種別とデータサイズとから通信判定データ109がルール4の「パラメータファイル送信」であると判定したとする。データ判定装置101eは、通信を許可すると共に、運転状態を運転B状態303に遷移する。
データ判定装置101eが、運転B状態303において通信判定データ109を受信し、通信判定データ109の送信元アドレスとコマンド種別とデータサイズとから通信判定データ109がルール5の「パラメータファイル設定」であると判定したとする。データ判定装置101eは、通信を許可すると共に、運転状態を運転C状態304に遷移する。
データ判定装置101eが、運転C状態304において通信判定データ109を受信し、通信判定データ109の送信元アドレスとコマンド種別とデータサイズとから通信判定データ109がルール6の「ベリファイ」であると判定したとする。データ判定装置101eは、通信を許可すると共に、運転状態を運転A状態302に遷移する。
【0110】
次に、データ判定装置101eが、ルール7に該当する通信判定データ109を受信した場合について説明する。
データ判定装置101eが、運転A状態302において通信判定データ109を受信し、通信判定データ109の送信元アドレスとコマンド種別とデータサイズとデータ設定範囲とタイマー値17とフラグ値15とから、通信判定データ109がルール7の「運転データ設定」であると判定したとする。データ判定装置101eは、通信を許可すると共に、タイマー設定値を100msとする。
このように判定処理S120eを行うことにより、コマンド受信後に一定時間を空ける必要のある通信についても正常かどうかの判定をすることができる。
【0111】
次に、データ判定装置101eが、ルール3a,3b,3cに該当する通信判定データ109を受信した場合について説明する。ルール3a,3b,3cは、運転A状態302において、約b秒間隔でコマンドを受信する必要がある通信である。この通信では、b秒に±d秒の誤差を許容するものとする。
データ判定装置101eが、運転A状態302において通信判定データ109を受信し、通信判定データ109の送信元アドレスとコマンド種別とデータサイズと、タイマー値17及びフラグ値15とから通信判定データ109がルール3aの「状態データ取得」であると判定したとする。データ判定装置101eは、通信を許可すると共に、タイマー104eの値であるT1にb+dを設定し、フラグの値であるF1を1とする。
データ判定装置101eが、運転A状態302において通信判定データ109を受信し、通信判定データ109の送信元アドレスとコマンド種別とデータサイズと、タイマー値17及びフラグ値15とから通信判定データ109がルール3bの「状態データ取得」であると判定したとする。データ判定装置101eは、通信を許可すると共に、T1にb+T1を設定する。
データ判定装置101eが、運転A状態302において通信判定データ109を受信し、通信判定データ109の送信元アドレスとコマンド種別とデータサイズと、タイマー値17及びフラグ値15とから通信判定データ109がルール3cの「状態データ取得終了」であると判定したとする。データ判定装置101eは、通信を許可すると共に、T1とF1とを0に初期化する。
このように判定処理S120eを行うことにより、一定間隔でコマンドを受信する必要がある通信についても正常かどうかの判定をすることができる。
【0112】
次に、データ判定装置101eが、人の操作により保守状態に移行し、ルール8,9,10に該当する通信判定データ109を受信した場合について説明する。ルール8,9,10は、保守状態305において、保守に必要な通信である。
データ判定装置101eが、保守状態305において通信判定データ109を受信し、通信判定データ109の送信元アドレスとコマンド種別とデータサイズとから通信判定データ109がルール8の「プログラム更新」であると判定したとする。データ判定装置101eは、通信を許可する。
データ判定装置101eが、保守状態305において通信判定データ109を受信し、通信判定データ109の送信元アドレスとコマンド種別とデータサイズとから通信判定データ109がルール9の「ベリファイ」であると判定したとする。データ判定装置101eは、通信を許可する。
データ判定装置101eが、保守状態305において通信判定データ109を受信し、通信判定データ109の送信元アドレスとコマンド種別とデータサイズとから通信判定データ109がルール9の「保守完了」であると判定したとする。データ判定装置101eは、通信を許可すると共に、運転状態を運転A状態302に遷移する。
【0113】
以上で、本実施の形態に係るデータ判定装置101eのデータ判定方法、データ判定処理S100eについての説明を終わる。
【0114】
以上のように、本実施の形態に係るデータ判定装置は、以下の構成を有する。
(A)通信データと外部操作とタイマーとの少なくともいずれか1つの要素によって遷移する状態遷移モデルに従い、運用状態を管理する状態管理部。
(B)運用状態ごとに許可する通信データを定めた通信許可リストを格納する通信許可リスト格納部。
(C)状態管理部が出力する現在の運用状態と通信許可リスト格納部が格納している通信許可リストとタイマーの値とフラグの値とを用いて、データ判定装置に入力された通信データが正常か否かを判定する判定部。
(D)判定部が出力する判定結果をもとに警報を発する警報部。
また、状態管理部は、判定部が出力する判定結果によって遷移する状態遷移モデルに従い、運用状態を管理する。判定部は、異常と判断した通信データを遮断する。さらに判定部は、正常と判断した際に通信許可ルールに記載されたアクションを実行する。すなわち、判定部は、正常と判断した際に、タイマーおよびフラグの少なくともいずれかを所定の値に設定する。
【0115】
***本実施の形態の効果の説明***
比較のために先に述べたStuxnetのような攻撃では、乗っ取られたサーバがコントローラに対しプログラム書き換えを行っている。プログラム書き換え自体は正常通信であり、乗っ取られたサーバも正常と定義されたサーバであるため、ホワイトリスト型対策では防ぐことができない。
一方、本実施の形態に係るデータ判定装置では、通信データだけでなく人の操作やタイマーによる運用状態の遷移をも定義している。よって、保守状態の時のみプログラム書き換えを受け付けるようにし、保守状態への遷移は人の操作によってのみ行われるように対策をすることで、上記のような攻撃を検知することができる。
また、Stuxnetによってプログラムを書き換えられたコントローラは、制御対象の周波数コンバータに対し高頻度で周波数を変更するコマンドを送信することで機器の故障を誘発する。本実施の形態に係るデータ判定装置では、タイマーによってそのような高頻度の周波数変更コマンドを検知することができる。
【0116】
また、本実施の形態に係るデータ判定装置によれば、正しい通信順からの逸脱を検知することができる。
【0117】
本実施の形態に係るデータ判定装置によれば、受信間隔が一定か否かを検知できるので、断線や攻撃による監視制御装置の停止といった事象も検知できる。その際、複数の通信の受信間隔を管理する場合においても、状態遷移図の記述を単純化でき、検知に係るリソースを抑えることができる。受信間隔の制御を状態遷移だけで行おうとすると、対象となる通信数nに対しての状態数n
2を管理しなければならない。しかし、本実施の形態に係るデータ判定装置によれば、1つの状態で管理できる。
【0118】
さらに、本実施の形態に係るデータ判定装置によれば、攻撃を受けた監視制御装置が、本来発行しないはずのコマンド発行や、運用上、データ取得を行わない監視制御装置からのデータ取得も検知できる。
【0119】
なお、実施の形態1〜3に加えて、実施の形態4について説明したが、これらの4つの実施の形態のうち、複数を組み合わせて実施しても構わない。あるいは、これらの4つの実施の形態のうち、1つの実施の形態を部分的に実施しても構わない。あるいは、これらの4つの実施の形態のうち、複数を部分的に組み合わせて実施しても構わない。その他、これらの4つの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。