(57)【要約】  状態検知部（１０５）は、通信システム（６００）に含まれる複数のコントローラ（３００、４００）の状態を検知する。攻撃判定部（１０３）は、各々が状態の組み合わせと対応付けられている複数のホワイトリスト（１１０）の中から、状態検知部（１０５）により検知された複数のコントローラ（３００、４００）の状態の組み合わせと対応付けられているホワイトリスト（１１０）を選択する。また、攻撃判定部（１０３）は、選択したホワイトリスト（１１０）を用いて通信システム（６００）への攻撃を検知する。
2017187520.tif 000002
【特許請求の範囲】
【請求項１】
通信システムに含まれる複数の機器の状態を検知する状態検知部と、
各々が状態の組み合わせと対応付けられている複数のホワイトリストの中から、前記状態検知部により検知された前記複数の機器の状態の組み合わせと対応付けられているホワイトリストを選択する選択部と、
前記選択部により選択されたホワイトリストを用いて前記通信システムへの攻撃を検知する攻撃検知部とを有する侵入検知装置。
【請求項２】
前記状態検知部は、
検知した前記複数の機器の状態の組み合わせが、予め定義されている組み合わせに該当するか否かを判定し、
前記選択部は、
前記状態検知部により前記複数の機器の状態の組み合わせが前記予め定義されている組み合わせに該当すると判定された場合に、前記複数の機器の状態の組み合わせと対応付けられているホワイトリストを選択する請求項１に記載の侵入検知装置。
【請求項３】
前記状態検知部は、
検知した各機器の状態が、予め定義されている状態遷移ルールに適合しているか否かを判定し、
各機器の状態が前記状態遷移ルールに適合していると判定した場合に、前記複数の機器の状態の組み合わせが、前記予め定義されている組み合わせに該当するか否かを判定する請求項２に記載の侵入検知装置。
【請求項４】
前記侵入検知装置は、更に、
前記攻撃検知部により前記通信システムへの攻撃が検知された場合に、前記複数の機器のうち前記通信システムへの攻撃に関与している機器にフェールセーフ動作を行わせるフェールセーフ実行部を有する請求項１に記載の侵入検知装置。
【請求項５】
前記侵入検知装置は、更に、
状態の複数の組み合わせに対応付けて前記複数のホワイトリストを生成するホワイトリスト生成部を有し、
前記選択部は、
前記ホワイトリスト生成部により生成された前記複数のホワイトリストの中から、前記状態検知部により検知された前記複数の機器の状態の組み合わせと対応付けられているホワイトリストを選択する請求項１に記載の侵入検知装置。
【請求項６】
コンピュータが、通信システムに含まれる複数の機器の状態を検知し、
前記コンピュータが、各々が状態の組み合わせと対応付けられている複数のホワイトリストの中から、検知した前記複数の機器の状態の組み合わせと対応付けられているホワイトリストを選択し、
前記コンピュータが、選択したホワイトリストを用いて前記通信システムへの攻撃を検知する侵入検知方法。
【請求項７】
通信システムに含まれる複数の機器の状態を検知する状態検知処理と、
各々が状態の組み合わせと対応付けられている複数のホワイトリストの中から、前記状態検知処理により検知された前記複数の機器の状態の組み合わせと対応付けられているホワイトリストを選択する選択処理と、
前記選択処理により選択されたホワイトリストを用いて前記通信システムへの攻撃を検知する攻撃検知処理とをコンピュータに実行させる侵入検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、侵入検知装置、侵入検知方法及び侵入検知プログラムに関する。
【背景技術】
【０００２】
近年、ネットワークに接続される産業制御システムがサイバー攻撃の標的になるケースが増加している。
産業制御システムにおいては、産業制御システムへのサイバー攻撃を検知するために、侵入検知システムが用いられている。
従来の侵入検知システムは、産業制御システムのネットワーク通信が固定的であることを利用して、ホワイトリストによりサイバー攻撃を検知する。ホワイトリストでは、送信先アドレスと送信元アドレスとのペア、通信プロトコル等により、許可される通信が定義される。従来の侵入検知システムは、通信データの送信先アドレスと送信元アドレスとのペア、通信プロトコル等をホワイトリストに定義されている送信先アドレスと送信元アドレスとのペア、通信プロトコル等と比較する。そして、従来の侵入検知システムは、送信先アドレスと送信元アドレスとのペア、通信プロトコル等が通信データとホワイトリストとの間で一致しない場合に、当該通信データを遮断する  （非特許文献１）。
非特許文献２では、監視対象の機器の状態に応じてホワイトリストを切り替える侵入検知装置（ホスト型侵入検知装置）が開示されている。非特許文献２の侵入検知装置によれば、機器の状態に応じた高精度な検知が実現される。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＤｏｎｇＨｏ  Ｋａｎｇ、ＢｙｏｕｎｇＫｏｏ  Ｋｉｍ、ＪｕｎｇＣｈａｎ  Ｎａ、  ＫｙｏｕｎｇＳｏｎ  Ｊｈａｎｇ、“Ｗｈｉｔｅｌｉｓｔｓ  Ｂａｓｅｄ  Ｍｕｌｔｉｐｌｅ  Ｆｉｌｔｅｒｉｎｇ  Ｔｅｃｈｎｉｑｕｅｓ  ｉｎ  ＳＣＡＤＡ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ”、Ｊｏｕｒｎａｌ  ｏｆ  Ａｐｐｌｉｅｄ  Ｍａｔｈｅｍａｔｉｃｓ  Ｖｏｌｕｍｅ  ２０１４
【非特許文献２】山口晃由、清水孝一、小林信博、“産業制御システムにおける侵入検知手法の調査と検討”、２０１５年暗号と情報セキュリティシンポジウム
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献２のホワイトリストは、機器の単位で正常な通信を定義している。そして、非特許文献２の侵入検知装置は、それぞれの機器の状態に応じてホワイトリストを選択し、選択したホワイトリストを用いて通信を監視している。
このため、非特許文献２では、機器単位のホワイトリストでは正常と判定される通信が組み合わされることにより異常動作が引き起こされる攻撃を検知することができないという課題がある。【０００５】
本発明は、このような課題を解決することを主な目的とする。すなわち、本発明は、機器単位のホワイトリストでは正常と判定される通信が組み合わされることにより異常動作が引き起こされる攻撃を検知できるようにすることを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る侵入検知装置は、
通信システムに含まれる複数の機器の状態を検知する状態検知部と、
各々が状態の組み合わせと対応付けられている複数のホワイトリストの中から、前記状態検知部により検知された前記複数の機器の状態の組み合わせと対応付けられているホワイトリストを選択する選択部と、
前記選択部により選択されたホワイトリストを用いて前記通信システムへの攻撃を検知する攻撃検知部とを有する。
【発明の効果】
【０００７】
本発明では、状態の組み合せに対応付けて用意されている複数のホワイトリストの中から、通信システムに含まれる複数の機器の状態の組み合せに対応するホワイトリストが選択される。このため、本発明によれば、機器単位のホワイトリストでは正常と判定される通信が組み合わされることにより異常動作が引き起こされる攻撃を検知することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係る侵入検知装置及び通信システムの構成例を示す図。
【図２】実施の形態１に係る侵入検知装置のハードウェア構成例を示す図。
【図３】実施の形態１に係る侵入検知装置の動作例を示すフローチャート図。
【図４】実施の形態１に係る侵入検知装置の別の構成例を示す図。
【図５】実施の形態１に係る侵入検知装置の動作例を示す図。
【図６】実施の形態１に係る状態遷移ルールの例を示す図。
【図７】実施の形態１に係るホワイトリストの例を示す図。
【図８】実施の形態１に係るホワイトリスト生成手順を示すフローチャート図。
【図９】実施の形態１に係るホワイトリスト生成手順を示すフローチャート図。
【発明を実施するための形態】
【０００９】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る侵入検知装置１００と通信システム６００を示す。
通信システム６００は、サーバ装置２００、コントローラ３００及びコントローラ４００で構成される。サーバ装置２００、コントローラ３００及びコントローラ４００は、ネットワーク５００に接続されている。通信システム６００は、例えば産業制御システムである。
【００１０】
侵入検知装置１００は、ネットワーク５００に接続され、コントローラ３００及びコントローラ４００から送信される状態情報５０２を受信し、コントローラ３００及びコントローラ４００の状態を検知する。侵入検知装置１００は、状態情報５０２から、コントローラ３００又はコントローラ４００の現在の制御状態（以下、単に状態ともいう）を特定することができる。状態情報５０２は、制御状態を通知するための専用の信号でもよいし、制御状態が判別可能なセンサー値などの信号でもよい。
また、侵入検知装置１００は、サーバ装置２００とコントローラ３００またはコントローラ４００との間で通信される通信データ５０１を収集する。また、侵入検知装置１００は、収集した通信データ１０９をホワイトリストと照合し、通信システム６００に対する攻撃を検知する。通信インターフェース部１０１により受信された後の通信データ５０１を通信データ１０９と表記する。
侵入検知装置１００は、図１に示すように、通信インターフェース部１０１、警報部１０２、攻撃判定部１０３、ホワイトリスト格納部１０４、状態分類部１０５、状態遷移情報格納部１０６及びホワイトリスト生成部１１５を備える。なお、これらの構成要素の詳細は後述する。
侵入検知装置１００で行われる動作は、侵入検知方法の例である。
【００１１】
コントローラ３００及びコントローラ４００は、侵入検知装置１００の監視対象の機器である。
コントローラ３００及びコントローラ４００は、それぞれ、サーバ装置２００との間で通信データ５０１を送受信する。また、コントローラ３００及びコントローラ４００は、それぞれ、状態情報５０２を侵入検知装置１００に送信する。
なお、コントローラ３００及びコントローラ４００を区別する必要がない場合は、単にコントローラと表記する。
【００１２】
サーバ装置２００は、コントローラ３００及びコントローラ４００を管理する。
【００１３】
図２は、侵入検知装置１００のハードウェア構成例を示す。
本実施の形態に係る侵入検知装置１００は、コンピュータである。
侵入検知装置１００は、ハードウェアとして、プロセッサ７０１、補助記憶装置７０２、メモリ７０３、通信装置７０４を備える。
補助記憶装置７０２には、図１に示す警報部１０２、攻撃判定部１０３、状態分類部１０５、ホワイトリスト生成部１１５の機能を実現するプログラムが記憶されている。つまり、図１に示す警報部１０２、攻撃判定部１０３、状態分類部１０５、ホワイトリスト生成部１１５は、プログラムにより実現される。
なお、攻撃判定部１０３、状態分類部１０５の機能を実現するプログラムは、侵入検知プログラムに相当する。
警報部１０２、攻撃判定部１０３、状態分類部１０５、ホワイトリスト生成部１１５の機能を実現するプログラムはメモリ７０３にロードされ、プロセッサ７０１により実行される。
図２では、プロセッサ７０１が警報部１０２、攻撃判定部１０３、状態分類部１０５、ホワイトリスト生成部１１５の機能を実現するプログラムを実行している状態を模式的に表している。
補助記憶装置７０２及び／又はメモリ７０３は、図１に示すホワイトリスト格納部１０４及び状態遷移情報格納部１０６として機能する。
通信装置７０４は、ネットワーク５００を介してサーバ装置２００、コントローラ３００及びコントローラ４００と通信を行う。通信装置７０４は、図１に示す通信インターフェース部１０１として機能する。
【００１４】
次に、図１に示す通信インターフェース部１０１、警報部１０２、攻撃判定部１０３、ホワイトリスト格納部１０４、状態分類部１０５、状態遷移情報格納部１０６及びホワイトリスト生成部１１５の詳細を説明する。
【００１５】
通信インターフェース部１０１は、ネットワーク５００を介してサーバ装置２００、コントローラ３００、コントローラ４００で送受信される通信データ５０１を受信する。そして、通信インターフェース部１０１は、受信した通信データ５０１を、攻撃判定部１０３に出力する。
また、通信インターフェース部１０１は、コントローラ３００及びコントローラ４００から状態情報５０２を受信する。そして、通信インターフェース部１０１は、受信した状態情報５０２を状態分類部１０５に出力する。通信インターフェース部１０１により受信された後の状態情報５０２を状態情報１１１と表記する。
通信インターフェース部１０１は、警報部１０２からの警報１１３を受信し、受信した警報１１３をサーバ装置２００へ警報５０３として送信する。
このように、通信インターフェース部１０１は、侵入検知装置１００の内部の要素とネットワーク５００との間でデータの送受信を行う。
【００１６】
状態遷移情報格納部１０６は、状態遷移ルール１０８を保持する。状態遷移ルール１０８は、予め設定された各コントローラの正常な状態遷移が定義されている。状態遷移ルール１０８は、図６に例示する情報である。図６に示すように、状態遷移ルール１０８には、遷移前制御状態、遷移条件、遷移後制御状態が定義されている。状態遷移情報格納部１０６は、コントローラごとに状態遷移ルール１０８を保持する。
また、状態遷移情報格納部１０６は、システム状態ルール９１１を保持する。システム状態ルール９１１には、システム状態と、システム状態を構成する各コントローラの状態が定義されている。つまり、システム状態とは、各コントローラの状態の組み合わせである。
システム状態ルール９１１は、図５に例示する情報である。図５に示すように、システム状態ルール９１１では、システム状態ごとに、コントローラ３００の制御状態とコントローラ４００の制御状態とが定義されている。つまり、コントローラ３００の制御状態が「休止」であり、コントローラ４００の制御状態が「休止」であるときは、システム状態は「ＳＳ１」である。同様に、コントローラ３００の制御状態が「点火」であり、コントローラ４００の制御状態が「起動」であるときは、システム状態は「ＳＳ２」である。また、コントローラ３００の制御状態が「運転」であり、コントローラ４００の制御状態が「発電」であるときは、システム状態は「ＳＳ３」である。
システム状態ルール９１１では、通信システム６００の運用上生じえない制御状態の組み合わせは、システム状態として定義されない。
【００１７】
状態分類部１０５は、状態遷移情報格納部１０６からの状態遷移ルール１０８とシステム状態ルールを取得する。
また、状態分類部１０５は、通信インターフェース部１０１から状態情報１１１を取得する。そして状態分類部１０５は、状態情報１１１を解析して、コントローラの現在の制御状態を検知する。また、状態分類部１０５は、状態遷移ルール１０８に基づき、コントローラの状態遷移が正常であるかを判定する。
更に、状態分類部１０５は、コントローラの状態遷移が正常である場合に、各コントローラの状態とシステム状態ルール９１１とに基づき、システム状態を識別する。
そして、状態分類部１０５は、識別したシステム状態が示されるシステム状態情報１０７を攻撃判定部１０３に出力する。
なお、状態分類部１０５は、コントローラの現在の制御状態が状態遷移ルール１０８に合致しない場合は、状態の異常を通知する状態異常通知情報１１７を攻撃判定部１０３に出力する。また、状態分類部１０５は、コントローラの制御状態の組み合わせがシステム状態ルール９１１に合致しない場合も、状態異常通知情報１１７を攻撃判定部１０３に出力する。
状態分類部１０５は、状態検知部に相当する。状態分類部１０５により行われる動作は、状態検知処理に相当する。
【００１８】
ホワイトリスト格納部１０４は、システム状態に対応付けられている複数のホワイトリスト１１０を保持する。ホワイトリスト１１０は、予め設定された正常な通信を許可するためのルールである。
図７は、ホワイトリスト格納部１０４が格納するホワイトリスト１１０の例を示す。
具体的には、図７に示すシステム状態の項目を除いた各行がホワイトリスト１１０である。つまり、ホワイトリスト１１０は、プロトコル、送信元情報、送信先情報、データ長、コマンド、ペイロード条件、周期条件などの項目で構成される。ホワイトリスト１１０は、それぞれシステム状態に対応付けられている。つまり、ホワイトリスト１１０は、コントローラの状態の組み合わせに対応付けられている。
ホワイトリスト格納部１０４は、攻撃判定部１０３により選択されたホワイトリスト１１０を攻撃判定部１０３に出力する。
前述のように、厳密には、ホワイトリスト１１０は、システム状態の項目を除いた各行の状態であるが、以下では、説明の便宜上、システム状態の項目を含む１行の全体の情報もホワイトリスト１１０と呼ぶ場合がある。
【００１９】
攻撃判定部１０３は、状態分類部１０５からシステム状態情報１０７を取得する。そして、攻撃判定部１０３は、システム状態情報１０７に示されるシステム状態と対応付けられているホワイトリスト１１０を、ホワイトリスト格納部１０４に格納されている複数のホワイトリスト１１０の中から選択する。
つまり、攻撃判定部１０３は、状態分類部１０５により検知された複数のコントローラの状態の組み合わせと対応付けられているホワイトリスト１１０を選択する。
そして、攻撃判定部１０３は、選択したホワイトリスト１１０を用いて、通信システム６００への攻撃を検知する。
より具体的には、攻撃判定部１０３は、通信インターフェース部１０１から通信データ１０９を取得し、取得した通信データ１０９に、選択したホワイトリスト１１０を適用する。つまり、攻撃判定部１０３は、通信データ１０９が許可された通信データであるか否かを判定する。通信データ１０９の全ての属性がホワイトリスト１１０の全ての項目（プロトコル、送信元情報、送信先情報、データ長、コマンド、ペイロード条件、周期条件）に一致する場合以外は、攻撃判定部１０３は、通信データ１０９がホワイトリスト１１０に適合しないと判定する。通信データ１０９がホワイトリスト１１０に適合しない場合は、攻撃判定部１０３は、判定結果１１２を警報部１０２に出力する。
攻撃判定部１０３は、選択部及び攻撃検知部に相当する。また、攻撃判定部１０３により行われる動作は、選択処理及び攻撃検知処理に相当する。
【００２０】
警報部１０２は、攻撃判定部１０３から判定結果１１２を取得した場合に、サーバ装置２００に警報１１３を送信する。
サーバ装置２００は警報部１０２からの警報１１３をオペレータに提示する。サーバ装置２００は表示ディスプレイに警報１１３を表示してもよいし、ランプ等を用いて警報１１３を提示するようにしてもよい。また、サーバ装置２００は、音声により警報１１３をオペレータに提示してもよい。また、サーバ装置２００は警報１１３を他のサーバ装置に送信してもよい。
【００２１】
ホワイトリスト生成部１１５は、ホワイトリスト１１０を生成し、生成したホワイトリスト１１０をホワイトリスト格納部１０４に書き込む。
【００２２】
＊＊＊動作の説明＊＊＊
次に、図３を用いて、侵入検知装置１００の動作例を説明する。
図３は、侵入検知装置１００の動作の一例を示しており、侵入検知装置１００の動作フローは必ずしも図３の通りでなくてもよい。
【００２３】
ステップＳ８０２において、図１の状態遷移情報格納部１０６に状態遷移ルール１０８とシステム状態ルール９１１が設定され、ホワイトリスト格納部１０４にホワイトリスト１１０が設定される。
【００２４】
ステップＳ８０３において、検知対象（サーバ装置２００、コントローラ３００、コントローラ４００など）が動作している間は、侵入検知装置１００の動作処理がループする。
【００２５】
ステップＳ８０４において、状態分類部１０５は、状態情報１１１を解析し、コントローラの現在の制御状態を判定する。
【００２６】
次に、ステップＳ８０５において、状態分類部１０５は、コントローラの現在の制御状態が状態遷移ルール１０８に適合しているか否かを判定する。
状態分類部１０５がコントローラの現在の制御状態が状態遷移ルール１０８に適合していないと判定した場合は、状態分類部１０５は、異常な状態遷移であるため、状態異常通知情報１１７を攻撃判定部１０３に出力する。攻撃判定部１０３は、状態異常通知情報１１７を取得し、異常の発生を通知する判定結果１１２を警報部１０２に出力する。警報部１０２は、攻撃判定部１０３からの判定結果１１２を取得し、ステップ８１０において、警報１１３をサーバ装置２００に送信する。
【００２７】
一方、ステップＳ８０５において状態分類部１０５が現在の制御状態が状態遷移ルール１０８に適合していると判定した場合は、状態分類部１０５は、ステップＳ８０６において、システム状態ルール９１１に基づいてシステム状態を識別する。そして、状態分類部１０５は、識別したシステム状態を通知するシステム状態情報１０７を攻撃判定部１０３に出力する。
【００２８】
ステップＳ８０７において、攻撃判定部１０３はシステム状態情報１０７を取得し、システム状態情報１０７で通知されているシステム状態に対応付けられているホワイトリスト１１０をホワイトリスト格納部１０４から取得する。
【００２９】
次に、ステップＳ８０８において、攻撃判定部１０３は、通信データ１０９をホワイトリスト１１０と照合する。つまり、攻撃判定部１０３は、通信インターフェース部１０１からサーバ装置２００又はコントローラからの通信データ１０９を取得し、取得した通信データ１０９をステップＳ８０７で取得したホワイトリスト１１０と照合する。
【００３０】
ステップＳ８０９において、攻撃判定部１０３は、通信データ１０９がホワイトリスト１１０に適合しているか否かを判定する。
通信データ１０９がホワイトリスト１１０に適合していない場合は、攻撃判定部１０３は、異常の発生を通知する判定結果１１２を警報部１０２に出力する。警報部１０２は、攻撃判定部１０３からの判定結果１１２を取得し、ステップＳ８１０において、警報１１３をサーバ装置２００に送信する。
【００３１】
ステップＳ８０９において攻撃判定部１０３が通信データ１０９がホワイトリスト１１０に適合していると判定した場合は、検知対象が動作中であれば、処理がステップＳ８０３に戻る。検知対象が動作を終えている場合は、侵入検知装置１００は動作を停止する。
【００３２】
次に、図５に示す具体例を用いて、本実施の形態における侵入検知装置１００の動作を説明する。
【００３３】
コントローラ３００では、状態遷移パターン９０５にあるように、「休止」→「点火」→「運転」→「冷却」→「休止」という状態遷移が行われる。
また、コントローラ４００では、状態遷移パターン９０６にあるように、「休止」→「起動」→「発電」→「停止」→「休止」という状態遷移が行われる。
図５では、図６の状態遷移ルール１０８を、状態遷移パターン９０５及び状態遷移パターン９０６と同じ形式に変形して示している。
図５のホワイトリスト１１０は、記載を省略しているが、図７に示すホワイトリスト１１０である。
【００３４】
状態分類部１０５は、コントローラ３００からの状態情報５０２を取得した場合は、コントローラ３００の現在の制御状態が、コントローラ３００の状態遷移ルール１０８に適合しているか否かを判定する。例えば、コントローラ３００の現在の制御状態が「点火」である場合は、状態分類部１０５は、状態「点火」の遷移前の状態が状態「休止」であるか否かを判定する。
同様に、状態分類部１０５は、コントローラ４００からの状態情報５０２を取得した場合は、コントローラ４００の現在の制御状態が、コントローラ４００の状態遷移ルール１０８に適合しているか否かを判定する。例えば、コントローラ４００の現在の制御状態が「起動」である場合は、状態分類部１０５は、状態「起動」の遷移前の状態が状態「休止」であるか否かを判定する。
いずれかのコントローラの制御状態が状態遷移ルール１０８に適合していない場合は、状態分類部１０５は、状態異常通知情報１１７を攻撃判定部１０３に出力する。攻撃判定部１０３は、状態異常通知情報１１７に基づき、判定結果１１２を警報部１０２に出力する。警報部１０２は、判定結果１１２に基づき、警報５０３をサーバ装置２００に送信する。また、このとき、後述するフェールセーフ実行部１１４が制御信号５０４を、該当するコントローラに送信してもよい。フェールセーフ実行部１１４及び制御信号５０４の詳細は後述する。
【００３５】
また、状態分類部１０５は、コントローラ３００の制御状態がコントローラ３００の状態遷移ルール１０８に適合し、コントローラ４００の制御状態がコントローラ４００の状態遷移ルール１０８に適合している場合に、コントローラ３００の制御状態とコントローラ４００の制御状態の組み合わせに対応するシステム状態を、システム状態ルール９１１から抽出する。
コントローラ３００の制御状態が「点火」であり、コントローラ４００の制御状態が「起動」でる場合は、状態分類部１０５は、システム状態「ＳＳ２」を抽出する。
なお、コントローラ３００の制御状態とコントローラ４００の制御状態との組み合わせが、システム状態ルール９１１に定義されている組み合わせに合致しない場合は、状態分類部１０５は、状態異常通知情報１１７を攻撃判定部１０３に出力する。例えば、コントローラ３００の制御状態が「点火」であり、コントローラ４００の制御状態が「休止」である場合は、このような組み合わせはシステム状態ルール９１１に定義されていないので、状態分類部１０５は、状態異常通知情報１１７を攻撃判定部１０３に出力する。攻撃判定部１０３は、状態異常通知情報１１７に基づき、判定結果１１２を警報部１０２に出力する。警報部１０２は、判定結果１１２に基づき、警報５０３をサーバ装置２００に送信する。また、このとき、フェールセーフ実行部１１４が制御信号５０４を、コントローラ３００及びコントローラ４００に送信してもよい。
【００３６】
攻撃判定部１０３は、状態分類部１０５からシステム状態情報１０７を取得する。例えば、システム状態情報１０７で通知されたシステム状態が「ＳＳ２」であれば、攻撃判定部１０３は、システム状態「ＳＳ２」と対応付けられているホワイトリスト１１０を取得する。
そして、攻撃判定部１０３は、サーバ装置２００、コントローラ３００又はコントローラ４００からの通信データ１０９に、システム状態「ＳＳ２」と対応付けられているホワイトリスト１１０を照合して、通信システム６００への攻撃を検知する。
攻撃判定部１０３は、通信データ１０９がホワイトリスト１１０に適合しない場合は、判定結果１１２を警報部１０２に出力する。警報部１０２は、判定結果１１２に基づき、警報５０３をサーバ装置２００に送信する。また、このとき、フェールセーフ実行部１１４が制御信号５０４を、該当するコントローラに送信してもよい。
【００３７】
＊＊＊侵入検知装置１００の他の構成例＊＊＊
図４は、侵入検知装置１００の他の構成例を示す。
図１と比較して、図４では、フェールセーフ実行部１１４が追加されている。
フェールセーフ実行部１１４は、警報部１０２からの警報１１３を取得する。そして、フェールセーフ実行部１１４はフェールセーフのための制御信号１１６を通信インターフェース部１０１を介してコントローラに送信する。なお、通信インターフェース部１０１からネットワーク５００に送信された後の制御信号１１６を制御信号５０４と表記する。
フェールセーフ実行部１１４が送信する制御信号１１６は、通信システム６００への攻撃に関与しているコントローラにフェールセーフ動作を行わせるための信号である。攻撃に関与しているコントローラは、例えば、攻撃判定部１０３によりホワイトリスト１１０に適合しないと判定された通信データ１０９の送信元のコントローラ又は送信先のコントローラである。フェールセーフ動作とは、例えば、攻撃に関与しているコントローラの運転の停止、または、攻撃に関与しているコントローラの縮退運転である。
このように、フェールセーフ実行部１１４が制御信号１１６を送信することで、コントローラのフェールセーフを実行することができる。
【００３８】
図４に示す侵入検知装置１００も、図２に示したハードウェア構成で実現することができる。フェールセーフ実行部１１４は、例えばプログラムで実現される。フェールセーフ実行部１１４の機能を実現するプログラムは、補助記憶装置７０２に記憶されている。そして、このプログラムがメモリ７０３にロードされ、プロセッサ７０１が、このプログラムを実行する。
また、図４に示す侵入検知装置１００では、図３のステップＳ８１０の後にフェールセーフ実行部１１４による制御信号１１６の送信が行われる。
【００３９】
＊＊＊ホワイトリスト生成アリゴリズム＊＊＊
次に、図８及び図９を用いて、本実施の形態に係るホワイトリスト生成部１１５について説明する。
【００４０】
ステップＳ１１０２において、ホワイトリスト生成部１１５は、例えば、ファイルから各コントローラにおける制御状態の遷移情報を取得する。制御状態の遷移情報は、予め設定されるものである。ここで、制御状態は、コントローラから出力される制御状態と同一である。
【００４１】
ステップＳ１１０３において、ホワイトリスト生成部１１５は、各制御状態に応じたホワイトリストを作成する。ホワイトリストには、各制御状態で許可される通信データの送信元／送信先情報、コマンド、ペイロード、周期性等を記述する。
【００４２】
ステップＳ１１０４において、ホワイトリスト生成部１１５は、コントローラ間での制御状態の全組み合わせを算出する。コントローラの数が膨大な場合は、全組み合わせを算出するのではなく、組み合わせ数に制限を加えてもよい。
【００４３】
ステップＳ１１０５において、ホワイトリスト生成部１１５は、ステップＳ１１０４で求めた組み合わせ数で、ステップＳ１１０６、ステップＳ１１０７、ステップＳ１１０８をループする。
【００４４】
ステップＳ１１０６では、ホワイトリスト生成部１１５は、制御状態の組み合わせがシステムの運転形態と一致しているかを判定する。
制御状態の組み合わせが運転形態と一致している場合は、ステップＳ１１０７において、ホワイトリスト生成部１１５は、制御状態の組み合わせをシステム状態に指定する。
一方、制御状態の組み合わせがシステムの運転形態と一致していない場合は、ステップＳ１１０８において、ホワイトリスト生成部１１５は、組み合わせを削除する。
【００４５】
ステップＳ１１０９において、ホワイトリスト生成部１１５は、システム状態の全組み合わせを算出する。システム状態の数が膨大な場合は、全組み合わせを算出するのではなく、組み合わせ数に制限を加えてもよい。
【００４６】
ステップＳ１１１０において、ホワイトリスト生成部１１５は、ステップＳ１１０９で求めた組み合わせ数で、ステップＳ１１１１とステップＳ１１１２をループする。
【００４７】
ステップＳ１１１１で、ホワイトリスト生成部１１５は、システム状態間でホワイトリストが一致しているか否かを判定する。
システム状態間でホワイトリストが一致している場合は、ステップＳ１１１２において、ホワイトリスト生成部１１５は、ホワイトリストを統合する。
【００４８】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態に係る侵入検知装置では、複数のコントローラの制御状態を組み合わせたシステム状態が定義される。そして、本実施の形態に係る侵入検知装置は、システム状態ごとに用意されたホワイトリストを用いて通信システムに対する攻撃を検知する。従って、本実施の形態によれば、コントローラ単位のホワイトリストでは正常と判定される通信が組み合わされることにより異常動作を引き起こされる攻撃を検知することができる。
【００４９】
本実施の形態に係る侵入検知装置は、通信システムに含まれる監視対象機器（サーバ装置、コントローラ）の全ての通信を監視するネットワーク型侵入検知装置である。従って、本実施の形態によれば、従来のホスト型侵入検知装置で課題であった監視対象機器へ検知機能を組込む改修を少なくすることができる。
【００５０】
本実施の形態に係る侵入検知装置は、システム状態に応じてホワイトリストを切り替えて攻撃の検知を行う。従って、本実施の形態に係る侵入検知装置は、監視対象機器ごとの並列的な検知処理を行わない。また、本実施の形態に係る侵入検知装置は、必要最小限のホワイトリストで攻撃の検知を行う。このため、本実施の形態に係る侵入検知装置では、高性能な計算リソースと膨大なホワイトリストが必要ではない。
【００５１】
また、本実施の形態に係る侵入検知装置は、攻撃者に乗っ取られたコンピュータから通信シーケンスに従った通信を伴う攻撃が行われた場合でも、システム状態を検索すること、システム状態に対応するホワイトリストを通信データに適用することにより、当該攻撃を検知することができる。
【００５２】
本実施の形態に係る侵入検知装置によれば、リモート端末以外の端末、制御監視装置や保守端末からの攻撃であっても、制御／保守ネットワークを介する攻撃を検知することができる。また、本実施の形態に係る侵入検知装置は、コントローラの状態情報を常に取得し監視しているため、コントローラの状態に異常があっても当該異常を検知することができる。
【００５３】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、図１の侵入検知装置１００のハードウェア構成の補足説明を行う。
プロセッサ７０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ７０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）である。
補助記憶装置７０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。
メモリ７０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置７０４は、データを受信するレシーバー及びデータを送信するトランスミッターなどを含む。通信装置７０４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００５４】
補助記憶装置７０２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。そして、ＯＳの少なくとも一部がメモリ７０３にロードされる。プロセッサ７０１はＯＳを実行しながら、警報部１０２、攻撃判定部１０３、状態分類部１０５、フェールセーフ実行部１１４、ホワイトリスト生成部１１５（以下、これらをまとめて「部」という）の機能を実現するプログラムを実行する。
プロセッサ７０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、侵入検知装置１００は、プロセッサ７０２を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、「部」の機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ７０１と同じように、プロセッシングを行うＩＣである。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ７０３、補助記憶装置７０２、又は、プロセッサ７０１内のレジスタ又はキャッシュメモリにファイルとして記憶される。
また、「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００５５】
また、「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、侵入検知装置１００は、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった電子回路により実現されてもよい。
この場合は、「部」は、それぞれ電子回路の一部として実現される。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
【００５６】
また、侵入検知装置１００は、入力装置及びディスプレイと接続されていてもよい。侵入検知装置１００が入力措置及びディスプレイと接続されている場合は、侵入検知装置１００には、ハードウェアとして、入力インターフェース及びディスプレイインターフェースが含まれる。
【符号の説明】
【００５７】
１００  侵入検知装置、１０１  通信インターフェース部、１０２  警報部、１０３  攻撃判定部、１０４  ホワイトリスト格納部、１０５  状態分類部、１０６  状態遷移情報格納部、１１４  フェールセーフ実行部、１１５  ホワイトリスト生成部、２００  サーバ装置、３００  コントローラ、４００  コントローラ、５００  ネットワーク、６００  通信システム、７０１  プロセッサ、７０２  補助記憶装置、７０３  メモリ、７０４  通信装置。
【図１】
2017187520.tif 000003
【図２】
2017187520.tif 000004
【図３】
2017187520.tif 000005
【図４】
2017187520.tif 000006
【図５】
2017187520.tif 000007
【図６】
2017187520.tif 000008
【図７】
2017187520.tif 000009
【図８】
2017187520.tif 000010
【図９】
2017187520.tif 000011
【手続補正書】
【提出日】平成30年6月22日(2018.6.22)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
また、侵入検知装置１００は、入力装置及びディスプレイと接続されていてもよい。侵入検知装置１００が入力装置及びディスプレイと接続されている場合は、侵入検知装置１００には、ハードウェアとして、入力インターフェース及びディスプレイインターフェースが含まれる。
【国際調査報告】
2017187520.tif 000012
2017187520.tif 000013