(57)【要約】  状態管理部（２１０）は、運用システムの状態を特定し、特定された状態に基づいて運用システムの状態遷移の有無を判定する。運用システムの状態遷移が有った場合、状態管理部は、状態遷移の遷移パターンを示す状態遷移シナリオを用いて、運用システムの状態遷移が状態遷移シナリオに示される遷移パターンに合致するか判定する。運用システムの状態遷移が遷移パターンに合致しない場合、アラート出力部（２９３）は、アラートを出力する。運用システムの状態遷移が遷移パターンに合致する場合、ホワイトリスト管理部（２２０）は、ホワイトリストを切り替え、侵入検知部（２３０）は、ホワイトリスト型侵入検知を行う。
2017221373.tif 000002
【特許請求の範囲】
【請求項１】
運用システムの状態を特定する状態特定部と、
特定された状態に基づいて前記運用システムの状態遷移の有無を判定する状態遷移判定部と、
前記運用システムの状態遷移が有った場合に、状態遷移の遷移パターンを示す状態遷移シナリオを用いて、前記運用システムの状態遷移が前記状態遷移シナリオに示される遷移パターンに合致するか判定する遷移パターン判定部と
を備える侵入検知装置。
【請求項２】
前記運用システムの状態遷移が前記遷移パターンに合致しない場合にアラートを出力するアラート出力部を備える
請求項１に記載の侵入検知装置。
【請求項３】
前記運用システムの状態遷移が前記遷移パターンに合致する場合にホワイトリスト型侵入検知を行う侵入検知部を備える
請求項１または請求項２に記載の侵入検知装置。
【請求項４】
前記侵入検知装置は、前記運用システムの状態遷移が前記遷移パターンに合致する場合に、運用状態に対応付けられた複数のホワイトリストから、前記運用システムの状態に対応付けられたホワイトリストを選択するホワイトリスト管理部を備え、
前記侵入検知部は、選択されたホワイトリストを用いて、ホワイトリスト型侵入検知を行う
請求項３に記載の侵入検知装置。
【請求項５】
運用システムの状態を特定する状態特定処理と、
特定された状態に基づいて前記運用システムの状態遷移の有無を判定する状態遷移判定処理と、
前記運用システムの状態遷移が有った場合に、状態遷移の遷移パターンを示す状態遷移シナリオを用いて、前記運用システムの状態遷移が前記状態遷移シナリオに示される遷移パターンに合致するか判定する遷移パターン判定処理と
をコンピュータに実行させるための侵入検知プログラム。
【請求項６】
運用システムで通信される周期パケットを検出するパケット検出部と、
前記周期パケットが検出された検出間隔を算出する検出間隔算出部と、
前記運用システムの状態を特定する状態特定部と、
特定された状態に基づいて前記運用システムの状態遷移の有無を判定する状態遷移判定部と、
運用状態に対応付けられた複数のホワイトリストから、前記運用システムの状態に対応付けられたホワイトリストを選択するホワイトリスト管理部と、
前記運用システムの状態遷移が有った場合に、状態遷移前の状態に対応付けられたホワイトリストと状態遷移後の状態に対応付けられたホワイトリストとを用いて、状態遷移前の前記周期パケットの許否と状態遷移後の前記周期パケットの許否とを特定する許否特定部と、
状態遷移前の許否と状態遷移後の許否と通信間隔とアラートの要否とが互いに対応付けられたアラート条件テーブルと、状態遷移前の前記周期パケットの許否と、状態遷移後の前記周期パケットの許否と、前記周期パケットの前記検出間隔とに基づいて、アラートの要否を判定するアラート判定部と
を備える侵入検知装置。
【請求項７】
前記検出間隔算出部は、前記周期パケットが初めて検出された場合、前記運用システムの状態が前記周期パケットが検出されたときの状態になった時刻から経過した時間を前記検出間隔として算出する
請求項６に記載の侵入検知装置。
【請求項８】
前記運用システムの状態遷移が無かった場合に、前記運用システムの状態に対応付けられたホワイトリストを用いて、ホワイトリスト型侵入検知を行う侵入検知部を備える
請求項６または請求項７に記載の侵入検知装置。
【請求項９】
運用システムで通信される周期パケットを検出するパケット検出処理と、
前記周期パケットが検出された検出間隔を算出する検出間隔算出処理と、
前記運用システムの状態を特定する状態特定処理と、
特定された状態に基づいて前記運用システムの状態遷移の有無を判定する状態遷移判定処理と、
運用状態に対応付けられた複数のホワイトリストから、前記運用システムの状態に対応付けられたホワイトリストを選択するホワイトリスト管理処理と、
前記運用システムの状態遷移が有った場合に、状態遷移前の状態に対応付けられたホワイトリストと状態遷移後の状態に対応付けられたホワイトリストとを用いて、状態遷移前の前記周期パケットの許否と状態遷移後の前記周期パケットの許否とを特定する許否特定処理と、
状態遷移前の許否と状態遷移後の許否と通信間隔とアラートの要否とが互いに対応付けられたアラート条件テーブルと、状態遷移前の前記周期パケットの許否と、状態遷移後の前記周期パケットの許否と、前記周期パケットの前記検出間隔とに基づいて、アラートの要否を判定するアラート判定処理と
をコンピュータに実行させるための侵入検知プログラム。
【請求項１０】
運用システムの状態が遷移するときに通信される状態遷移パケットを検出するパケット検出部と、
前記状態遷移パケットが検出された場合に、運用状態に対応付けられた複数のホワイトリストから、状態遷移後の状態に対応付けられたホワイトリストを選択するホワイトリスト管理部と
を備える侵入検知装置。
【請求項１１】
前記運用システムは、周期パケット用の通信時間と他のパケット用の通信時間とを含んだ通信周期を有するネットワークを備え、
前記状態遷移パケットは、前記通信周期毎に区切られた通信期間のうちの前記運用システムの状態が遷移する時刻を含んだ通信期間において他のパケット用の通信時間に通信される
請求項１０に記載の侵入検知装置。
【請求項１２】
前記ネットワークは、周期パケット用の通信帯域と他のパケット用の通信帯域とを有する
請求項１１に記載の侵入検知装置。
【請求項１３】
前記パケット検出部は、前記運用システムで通信される周期パケットを検出し、
前記侵入検知装置は、
前記周期パケットが検出された検出間隔を算出する検出間隔算出部と、
前記状態遷移パケットが検出された場合に、状態遷移前の状態に対応付けられたホワイトリストと状態遷移後の状態に対応付けられたホワイトリストとを用いて、状態遷移前の前記周期パケットの許否と状態遷移後の前記周期パケットの許否とを特定する許否特定部と、
状態遷移前の許否と状態遷移後の許否と通信間隔とアラートの要否とが互いに対応付けられたアラート条件テーブルと、状態遷移前の前記周期パケットの許否と、状態遷移後の前記周期パケットの許否と、前記周期パケットの前記検出間隔とに基づいて、アラートの要否を判定するアラート判定部とを備える
請求項１０から請求項１２のいずれか１項に記載の侵入検知装置。
【請求項１４】
運用システムの状態が遷移するときに通信される状態遷移パケットを検出するパケット検出処理と、
前記状態遷移パケットが検出された場合に、運用状態に対応付けられた複数のホワイトリストから、状態遷移後の状態に対応付けられたホワイトリストを選択するホワイトリスト管理処理と
をコンピュータに実行させるための侵入検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホワイトリスト型侵入検知に関するものである。
【背景技術】
【０００２】
近年、産業制御システムに対するサイバー攻撃が増加しており、対策が求められている。ネットワークからのサイバー攻撃を防ぐ技術として、ホワイトリスト型侵入検知技術が知られている。この技術は、許可するパケットをあらかじめホワイトリストと呼ばれるリストに定義し、ホワイトリストに定義されていないパケットを攻撃として検知する技術である。
産業制御システムは、一般的な情報システムと比較して、運用形態が固定的であり、送受信されるパケットが固定的である。そのため、産業制御システムにおいて、許可するパケットをあらかじめホワイトリストに定義する事が可能であると考えられており、サイバー攻撃対策としてホワイトリスト型侵入検知技術に対する期待が高まっている。【０００３】
ホワイトリスト型侵入検知における進入検知の精度はホワイトリストの定義に依存するが、一般的にホワイトリストの定義は容易ではない。
したがって、ホワイトリストの定義に関する技術が求められる。特に、産業制御システムにおいて、特徴的な周期パケットに対する検知を正確に行うための技術が求められる。【０００４】
特許文献１には、検索ルールに一致する周期パケットの前回の受信時からタイムアウト時間を超えた場合に、その検索ルールを無効化する技術が開示されている。このように、周期パケットのタイムアウトを判定する事によって、周期パケットの受信期間が終了した事を判定する事が可能となる。【０００５】
非特許文献１では、システムの運用状態によってホワイトリストを切り替える事によって、複雑な攻撃を検知する技術が提案されている。
たとえば、プログラムをコントローラに書き込むための通信は、システムの保守時にのみ行われ、システムの稼働中は行われない、と考えられる。したがって、プログラム書き込みの通信が保守の状態では許可されて稼働中の状態では許可されないようにホワイトリストを切り替える事で、許可すべきパケットを細かく制御し、複雑な攻撃を検知できる可能性がある。
この技術を利用して、許可する周期パケットをシステムの運用状態によって変更することで、周期パケットの受信の開始および終了を判定する事が可能となる。【０００６】
産業制御システムのように運用が固定的なシステムでは、受信したパケットを許可するかどうかを判定するとともに、受信すべきパケットを確かに受信している事を確認する必要がある。
しかし、特許文献１に記載の技術では、パケットを継続的に受信している事は判定できるが、パケットの受信がいつ開始されていつ終了されるかといった詳細な判定はできない。また、パケットの受信の開始時または終了時の前後の時間帯において厳密な判定ができない。【０００７】
産業制御システムのように運用が固定的なシステムでは、状態遷移パターンも固定的であり、任意の状態遷移が発生しないと考えられる。
しかし、非特許文献１に記載の技術では、状態遷移図で定められた任意の状態遷移が許されるため、複数回の状態遷移から成る状態遷移パターンがシステムの運用で起こるべき状態遷移パターンに合致しているかどうかは判定されない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開ＷＯ２０１１／０９６１２７号
【非特許文献】
【０００９】
【非特許文献１】山口晃由  他、「産業制御システムにおける侵入検知手法の調査と検討」、ＳＣＩＳ  ２０１５、２Ａ４−３、２０１５年
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、不正な状態遷移を検知できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の侵入検知装置は、
運用システムの状態を特定する状態特定部と、
特定された状態に基づいて前記運用システムの状態遷移の有無を判定する状態遷移判定部と、
前記運用システムの状態遷移が有った場合に、状態遷移の遷移パターンを示す状態遷移シナリオを用いて、前記運用システムの状態遷移が前記状態遷移シナリオに示される遷移パターンに合致するか判定する遷移パターン判定部とを備える。
【発明の効果】
【００１２】
本発明によれば、不正な状態遷移を検知することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１における運用システム１００の構成図。
【図２】実施の形態１における侵入検知装置２００の構成図。
【図３】実施の形態１における状態管理部２１０の構成図。
【図４】実施の形態１における記憶部２９１の構成図。
【図５】実施の形態１における状態遷移シナリオ３２０の構成図。
【図６】実施の形態１における状態遷移図３３０。
【図７】実施の形態１における侵入検知方法のフローチャート。
【図８】実施の形態１における運用システム１００の別の構成を示す図。
【図９】実施の形態２における侵入検知装置２００の構成図。
【図１０】実施の形態２における状態管理部２１０の構成図。
【図１１】実施の形態２における周期通信判定部２４０の構成図。
【図１２】実施の形態２における記憶部２９１の構成図。
【図１３】実施の形態２におけるホワイトリスト３４０を示す図。
【図１４】実施の形態２におけるアラート条件テーブル３６０の構成図。
【図１５】実施の形態２における侵入検知方法のフローチャート。
【図１６】実施の形態２における周期通信判定処理（Ｓ２４０）のフローチャート。
【図１７】実施の形態２における周期通信の例を示す図。
【図１８】実施の形態３における運用システム１００の構成図。
【図１９】実施の形態３における制御ネットワーク１０５の構成図。
【図２０】実施の形態３における制御ネットワーク１０５の通信周期の構成図。
【図２１】実施の形態３における周期通信の例を示す図。
【図２２】実施の形態３における状態管理部２１０の構成図。
【図２３】実施の形態３における記憶部２９１の構成図。
【図２４】実施の形態３におけるアラート条件テーブル３７０の構成図。
【図２５】実施の形態３における侵入検知方法のフローチャート。
【図２６】実施の形態における侵入検知装置２００のハードウェア構成図。
【発明を実施するための形態】
【００１４】
実施の形態および図面において、同じ要素または互いに相当する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略する。
【００１５】
実施の形態１．
不正な状態遷移を検出する形態について、図１から図８に基づいて説明する。
【００１６】
＊＊＊構成の説明＊＊＊
図１に基づいて、運用システム１００の構成を説明する。
運用システム１００は、侵入検知の対象となるシステムである。具体的には、運用システム１００は、産業制御システムである。産業制御システムは、運用が固定的なシステムである。
運用システム１００は、監視制御端末１０２と、複数のコントローラ（１０３Ａ、１０３Ｂ）と、侵入検知装置２００と、保守ネットワーク１０４とを備える。複数のコントローラを総称してコントローラ１０３という。
監視制御端末１０２、コントローラ１０３および侵入検知装置２００は、保守ネットワーク１０４に接続されている。保守ネットワーク１０４は、監視制御端末１０２、コントローラ１０３および侵入検知装置２００が接続するネットワークである。
監視制御端末１０２は、さらに、情報系ネットワーク１０１に接続されている。情報系ネットワーク１０１は、監視制御端末１０２およびサーバ等が接続するネットワークである。
【００１７】
監視制御端末１０２は、運用システム１００を制御するコンピュータである。
コントローラ１０３は、機器を制御するコンピュータである。
侵入検知装置２００は、運用システム１００への不正なアクセスを検知するコンピュータである。侵入検知装置２００は、保守ネットワーク１０４に後付けされる。
【００１８】
監視制御端末１０２は、コントローラ１０３から情報を収集し、収集された情報を情報系ネットワーク１０１を介してサーバに送信する。
【００１９】
図２に基づいて、侵入検知装置２００の構成を説明する。
侵入検知装置２００は、プロセッサ９０１とメモリ９０２と補助記憶装置９０３と通信装置９０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００２０】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。具体的には、プロセッサ９０１は、ＣＰＵ、ＤＳＰまたはＧＰＵである。ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称であり、ＤＳＰはＤｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒの略称であり、ＧＰＵはＧｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。
メモリ９０２は揮発性の記憶装置である。メモリ９０２は、主記憶装置またはメインメモリとも呼ばれる。具体的には、メモリ９０２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
補助記憶装置９０３は不揮発性の記憶装置である。具体的には、補助記憶装置９０３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。ＲＯＭはＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称であり、ＨＤＤはＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。
プロセッサ９０１とメモリ９０２と補助記憶装置９０３とをまとめたハードウェアを「プロセッシングサーキットリ」という。
【００２１】
通信装置９０４は、通信を行う装置であり、レシーバとトランスミッタとを備える。具体的には、通信装置９０４は通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００２２】
侵入検知装置２００は、状態管理部２１０とホワイトリスト管理部２２０と侵入検知部２３０といった「部」を機能構成の要素として備える。「部」の機能はソフトウェアで実現される。「部」の機能については後述する。
【００２３】
補助記憶装置９０３には、「部」の機能を実現するプログラムが記憶されている。「部」の機能を実現するプログラムは、メモリ９０２にロードされて、プロセッサ９０１によって実行される。
さらに、補助記憶装置９０３にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ９０２にロードされて、プロセッサ９０１によって実行される。
つまり、プロセッサ９０１は、ＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。
「部」の機能を実現するプログラムを実行して得られるデータは、メモリ９０２、補助記憶装置９０３、プロセッサ９０１内のレジスタまたはプロセッサ９０１内のキャッシュメモリといった記憶装置に記憶される。
【００２４】
メモリ９０２は、侵入検知装置２００で使用、生成、入力、出力、送信または受信されるデータが記憶される記憶部２９１として機能する。但し、他の記憶装置が記憶部２９１として機能してもよい。
通信装置９０４はデータを通信する通信部として機能する。通信装置９０４において、レシーバはデータを受信する受信部および後述するパケット検出部２９２として機能し、トランスミッタはデータを送信する送信部および後述するアラート出力部２９３として機能する。
【００２５】
侵入検知装置２００は、プロセッサ９０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、「部」の機能を実現するプログラムの実行を分担する。
「部」の機能を実現するプログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体にコンピュータ読み取り可能に記憶することができる。不揮発性の記憶媒体は、一時的でない有形の媒体である。
「部」は「処理」または「工程」に読み替えてもよい。「部」の機能はファームウェアで実現してもよい。
【００２６】
図３に基づいて、状態管理部２１０の構成を説明する。
状態管理部２１０は、状態特定部２１１と状態遷移判定部２１２と遷移パターン判定部２１３とを機能構成の要素として備える。これら要素の機能については後述する。
【００２７】
図４に基づいて、記憶部２９１の構成を説明する。
記憶部２９１は、運用状態データ３１０、状態遷移シナリオ３２０、状態遷移図３３０および複数のホワイトリスト３４０等を記憶する。
ホワイトリスト３４０は、以降に記載されるホワイトリスト１、ホワイトリスト２またはホワイトリスト３などの総称である。
【００２８】
運用状態データ３１０は、運用システム１００の状態を示す。運用システム１００の状態を運用状態という。
具体的には、運用状態データ３１０は、状態番号と、順序番号と、パターン番号とを含む。
状態番号は、運用システム１００の状態を識別する番号である。
順序番号は、運用システム１００の状態遷移において運用システム１００が状態番号で識別される状態になった順番である。
パターン番号は、運用システム１００の状態遷移に合致する遷移パターンを識別する番号である。
【００２９】
状態遷移シナリオ３２０は、予め決められた状態遷移のパターンを示す。状態遷移のパターンを遷移パターンという。
【００３０】
図５に基づいて、状態遷移シナリオ３２０の構成を説明する。
行の番号はパターン番号であり、列の番号は順序番号である。
遷移パターン１は、状態１、状態２、状態１の順番で運用状態が遷移する遷移パターンである。
遷移パターン２は、状態１、状態３、状態１、状態２の順番で運用状態が遷移する遷移パターンである。
遷移パターン３は、状態１、状態２、状態３の順番で運用状態が遷移する遷移パターンである。
【００３１】
図５の状態遷移シナリオ３２０が用いられる場合、図４の運用状態データ３１０の初期値は以下の通りである。
状態番号の初期値は１である。
順序番号の初期値は１である。
パターン番号の初期値は１、２および３である。
【００３２】
図４に戻り、状態遷移図３３０およびホワイトリスト３４０を説明する。
状態遷移図３３０は、予め決められた状態遷移を示すデータであり、且つ、運用状態とホワイトリスト３４０とが互いに対応付けられたデータである。
ホワイトリスト３４０は、運用システム１００で通信されることが許可されるパケットを示すデータである。
運用システム１００で通信されるパケットを通信パケットという。
運用システム１００で通信されることが許可されるパケットを許可パケットという。
運用システム１００で通信されることが許可されないパケットを不可パケットという。
【００３３】
図６に基づいて、状態遷移図３３０の構成を説明する。
状態遷移図３３０は、状態１から状態２または状態３への遷移と、状態２から状態１または状態３への遷移と、状態３から状態１への遷移とを示している。
状態遷移図３３０において、ホワイトリスト１が状態１に対応付けられ、ホワイトリスト２が状態２に対応付けられ、ホワイトリスト３が状態３に対応付けられている。
【００３４】
＊＊＊動作の説明＊＊＊
侵入検知装置２００の動作は侵入検知方法に相当する。また、侵入検知方法の手順は侵入検知プログラムの手順に相当する。
【００３５】
図７に基づいて、侵入検知方法を説明する。
ステップＳ１０１からステップＳ１３０までの処理は、侵入検知装置２００の侵入検知機能が動作している間、繰り返し実行される。
【００３６】
ステップＳ１０１はパケット検出処理である。
ステップＳ１０１において、パケット検出部２９２は、通信パケットを検出する。
具体的には、パケット検出部２９２は、保守ネットワーク１０４に流れる通信パケットを受信する。
【００３７】
ステップＳ１１１は状態特定処理である。
ステップＳ１１１において、状態特定部２１１は、運用システム１００の状態を特定する。
具体的には、状態特定部２１１は、ステップＳ１０１で検出された通信パケットの内容を解析する。そして、状態特定部２１１は、解析結果に基づいて、運用システム１００の状態を識別する状態番号を特定する。
【００３８】
ステップＳ１１２は状態遷移判定処理である。
ステップＳ１１２において、状態遷移判定部２１２は、ステップＳ１１１で特定された状態に基づいて、運用システム１００の状態遷移の有無を判定する。
具体的には、状態遷移判定部２１２は、ステップＳ１１１で特定された状態番号を、運用状態データ３１０に示される状態番号と比較する。そして、状態番号が異なる場合に、状態遷移判定部２１２は、運用システム１００の状態遷移が有ったと判定する。
【００３９】
運用システム１００の状態遷移が有った場合、状態遷移判定部２１２は、運用状態データ３１０に含まれる状態番号を、ステップＳ１１１で特定された状態番号に更新する。さらに、状態遷移判定部２１２は、運用状態データ３１０に含まれる順序番号に１を加算する。その後、処理はステップＳ１１３に進む。
運用システム１００の状態遷移が無かった場合、処理はステップＳ１３０に進む。
【００４０】
ステップＳ１１３は遷移パターン判定処理である。
ステップＳ１１３において、遷移パターン判定部２１３は、運用システム１００の状態遷移が状態遷移シナリオ３２０に示される遷移パターンに合致するか判定する。
【００４１】
具体的には、遷移パターン判定部２１３は、以下のように判定を行う。
遷移パターン判定部２１３は、運用状態データ３１０に含まれるパターン番号毎に、以下の（１）から（４）を実行する。
（１）遷移パターン判定部２１３は、パターン番号で識別される遷移パターンを状態遷移シナリオ３２０から選択する。
（２）遷移パターン判定部２１３は、選択された遷移パターンから、運用状態データ３１０に示される順序番号に対応する状態番号を取得する。
（３）遷移パターン判定部２１３は、取得された状態番号を、運用状態データ３１０に示される状態番号と比較する。
（４）状態番号が一致しない場合、遷移パターン判定部２１３は、パターン番号を運用状態データ３１０から削除する。
運用状態データ３１０に少なくともいずれかのパターン番号が残った場合、遷移パターン判定部２１３は、運用システム１００の状態遷移が状態遷移シナリオ３２０に示される遷移パターンに合致すると判定する。
【００４２】
運用システム１００の状態遷移が状態遷移シナリオ３２０に示される遷移パターンに合致する場合、運用システム１００の状態遷移は正しい。
運用システム１００の状態遷移が正しい場合、処理はステップＳ１２０に進む。
運用システム１００の状態遷移が正しくない場合、処理はステップＳ１１４に進む。
【００４３】
図５の状態遷移シナリオ３２０に基づいて、ステップＳ１１３を具体的に説明する。
まず、最初の運用状態が状態１であるとする。状態遷移シナリオ３２０において、順序番号１の運用状態が状態１である遷移パターンは、遷移パターン１、遷移パターン２および遷移パターン３である。そのため、運用状態データ３１０にはパターン番号１、パターン番号２およびパターン番号３が登録される。
次に、運用状態が状態２に遷移したものとする。遷移パターン１〜３のうち、順序番号２の運用状態が状態２である遷移パターンは、遷移パターン１および遷移パターン３である。遷移パターン２は該当しない。そのため、運用状態データ３１０からパターン番号２が削除される。
このように、運用システム１００の状態遷移に合致しない遷移パターンのパターン番号が運用状態データ３１０から削除され、運用システム１００の状態遷移に合致する遷移パターンが絞り込まれる。
ある順序において、運用システム１００の状態遷移に合致する遷移パターンが無くなった場合、運用システム１００の状態遷移は不正である。
【００４４】
図７に戻り、ステップＳ１１４から説明を続ける。
ステップＳ１１４はアラート出力処理である。
ステップＳ１１４において、アラート出力部２９３は、アラートを出力する。このアラートは、不正な状態遷移が発生したことを知らせるメッセージである。
具体的には、遷移パターン判定部２１３がアラートを含んだ通報パケットを生成し、アラート出力部２９３が通報パケットを監視制御端末１０２に送信する。
ステップＳ１１４の後、処理はステップＳ１０１に進む。
【００４５】
ステップＳ１２０はホワイトリスト管理処理である。
ステップＳ１２０において、ホワイトリスト管理部２２０は、侵入検知処理（Ｓ１３０）で使用するホワイトリスト３４０を、運用システム１００の状態に対応するホワイトリスト３４０に切り替える。
具体的には、ホワイトリスト管理部２２０は、状態遷移図３３０を用いて、複数のホワイトリスト３４０から、運用システム１００の状態に対応付けられたホワイトリスト３４０を選択する。選択されたホワイトリスト３４０は、以後の侵入検知処理（Ｓ１３０）で使用される。
図６の状態遷移図３３０において、運用システム１００の状態が状態２である場合、選択されるホワイトリスト３４０はホワイトリスト２である。
【００４６】
ステップＳ１３０は侵入検知処理である。
ステップＳ１３０において、侵入検知部２３０は、ホワイトリスト型侵入検知を行う。
【００４７】
具体的には、侵入検知部２３０は、以下のようにホワイトリスト型侵入検知を行う。
まず、侵入検知部２３０は、ステップＳ１０１で検出された通信パケットから送信元アドレスおよび宛先アドレスなどの情報を取得する。
次に、侵入検知部２３０は、取得された情報に基づいて、ステップＳ１０１で検出された通信パケットが、ホワイトリスト３４０に示される許可パケットであるか判定する。
通信パケットが許可パケットでない場合、侵入検知部２３０は、アラートを含んだ通報パケットを生成する。このアラートは、不可パケットが検出されたことを知らせるメッセージである。そして、アラート出力部２９３は、通報パケットを監視制御端末１０２に送信する。
【００４８】
ステップＳ１３０の後、処理はステップＳ１０１に進む。
【００４９】
＊＊＊実施の形態１の効果＊＊＊
不正な状態遷移を検出することが可能となる。
具体的には、産業制御システムのように固定的な運用形態をとる運用システム１００において、運用システム１００で許可される遷移パターンが登録された状態遷移シナリオ３２０を用いることにより、許可すべき通信パターンをより正確に判定できる効果が得られる。
【００５０】
図６の状態遷移図３３０では、状態１と状態２とが交互に繰り返される状態遷移は、正しい状態遷移である。
一方、図５の状態遷移シナリオ３２０では、状態１と状態２とが交互に繰り返される状態遷移は、いずれの遷移パターンにも定義されていないため、不正な状態遷移である。
つまり、状態遷移シナリオ３２０を用いて不正な状態遷移を検知することにより、状態遷移図３３０を用いて検知することができない不正な状態遷移を検知することが可能となる。
【００５１】
＊＊＊他の構成＊＊＊
【００５２】
侵入検知装置２００は、保守ネットワーク１０４に接続される機器に内蔵されてもよい。
図８に示すように、侵入検知装置２００は、コントローラ１０３に内蔵されてもよい。
【００５３】
侵入検知装置２００は、入力を受け付ける入力装置および画像等を表示するディスプレイを備えてもよい。具体的な入力装置は、キーボードおよびマウスである。
【００５４】
状態遷移シナリオ３２０に示される遷移パターンは、１つでも複数でもよく、追加、変更または削除されてもよい。
【００５５】
状態特定部２１１は、通信パケットの内容を解析する以外の方法で、運用システム１００の状態を特定してもよい。
具体的には、状態特定部２１１は、運用システム１００の状態を監視制御端末１０２に問い合わせてもよい。
【００５６】
状態遷移図３３０は、運用状態とホワイトリストとが互いに対応付けられたデータであれば、他の形式のデータに置き換えてもよい。
具体的には、運用状態とホワイトリストとが互いに対応付けられたテーブル形式のデータが、状態遷移図３３０の代わりに用いられてもよい。
【００５７】
アラートは、アラートを含んだ通報パケットを送信する以外の方法で出力されてもよい。
具体的には、アラートは、ディスプレイに表示されてもよいし、音声で出力されてもよい。
【００５８】
実施の形態２．
不正な周期通信を検知する形態について、主に実施の形態１と異なる点を、図９から図１７に基づいて説明する。
【００５９】
＊＊＊構成の説明＊＊＊
運用システム１００の構成は、実施の形態１と同じである。
【００６０】
図９に基づいて、侵入検知装置２００の構成を説明する。
侵入検知装置２００は、状態管理部２１０とホワイトリスト管理部２２０と侵入検知部２３０と周期通信判定部２４０とを機能構成の要素として備える。
【００６１】
図１０に基づいて、状態管理部２１０の構成を説明する。
状態管理部２１０は、状態特定部２１１と状態遷移判定部２１２とを機能構成の要素として備える。
【００６２】
図１１に基づいて、周期通信判定部２４０の構成を説明する。
周期通信判定部２４０は、許否特定部２４１と検出間隔算出部２４２とアラート判定部２４３とを機能構成の要素として備える。
【００６３】
図１２に基づいて、記憶部２９１の構成を説明する。
記憶部２９１は、運用状態データ３１０、状態遷移図３３０、複数のホワイトリスト３４０、周期通信データ３５０およびアラート条件テーブル３６０等を記憶する。
【００６４】
運用状態データ３１０は、状態番号と、遷移時刻とを含む。
状態番号は、実施の形態１で説明した通りである。
遷移時刻は、運用システム１００の状態が状態番号で識別される状態に遷移した時刻である。
【００６５】
状態遷移図３３０は、実施の形態１で説明した通りである。
【００６６】
図１３に基づいて、ホワイトリスト１およびホワイトリスト２の具体例を説明する。
ホワイトリスト１は、状態１に対応付けられたホワイトリスト３４０である。
ホワイトリスト１において、パケットＡおよびパケットＢは許可パケットであり、パケットＣは不可パケットである。
ホワイトリスト２は、状態２に対応付けられたホワイトリスト３４０である。
ホワイトリスト２において、パケットＢおよびパケットＣは許可パケットであり、パケットＡは不可パケットである。
つまり、運用システム１００の状態が状態１から状態２に遷移した場合、許可パケットであったパケットＡは不可パケットになり、不可パケットであったパケットＣは許可パケットになる。
【００６７】
図１２に戻り、周期通信データ３５０を説明する。
周期通信データ３５０は、周期パケットの通信状況を示す。
周期パケットは、定期的に通信される通信パケットである。周期パケットは通信周期毎に通信される。通信周期が１分である場合、周期パケットは１分毎に通信される。
具体的には、周期通信データ３５０は、周期パケットの種類毎に通信周期と前回時刻とを含む。前回時刻は、周期パケットが前回検出された時刻である。前回時刻の初期値は、未検出を示す値である。
【００６８】
図１４に基づいて、アラート条件テーブル３６０の構成を説明する。
アラート条件テーブル３６０は、アラート条件レコード（３６１Ａ〜３６１Ｇ）を含んでいる。アラート条件レコード３６１Ａからアラート条件レコード３６１Ｇを総称してアラート条件レコード３６１という。
アラート条件レコード３６１には、状態遷移前の許否と、状態遷移後の許否と、通信間隔と、アラートの要否とが互いに対応付けられる。
通信間隔の欄において、ハイフンは通信間隔の条件が無いことを意味する。
【００６９】
＊＊＊動作の説明＊＊＊
図１５に基づいて、侵入検知方法を説明する。
ステップＳ２０１からステップＳ２５０までの処理は、侵入検知装置２００の侵入検知機能が動作している間、繰り返し実行される。
【００７０】
ステップＳ２０１からステップＳ２１２は、実施の形態１における図７のステップＳ１０１からステップＳ１１２と同じである。
運用システム１００の状態遷移が有った場合、状態遷移判定部２１２は、運用状態データ３１０に含まれる状態番号を、ステップＳ２１１で特定された状態番号に更新する。さらに、状態遷移判定部２１２は、運用状態データ３１０に含まれる遷移時刻を更新する。具体的には、状態遷移判定部２１２は、現在時刻またはステップＳ２０１で通信パケットが検出された時刻に遷移時刻を更新する。その後、処理はステップＳ２２０に進む。
運用システム１００の状態遷移が無かった場合、処理はステップＳ２５０に進む。
【００７１】
ステップＳ２２０は、実施の形態１における図７のステップＳ１２０と同じである。
ステップＳ２２０の後、処理はステップＳ２３０に進む。
【００７２】
ステップＳ２３０において、周期通信判定部２４０は、ステップＳ２０１で検出された通信パケットが周期パケットであるか判定する。
具体的には、周期パケットには、周期パケットであることを示す周期フラグが設定される。ステップＳ２０１で検出された通信パケットに周期フラグが設定されている場合、周期通信判定部２４０は、ステップＳ２０１で検出された通信パケットが周期パケットであると判定する。
ステップＳ２０１で検出された通信パケットが周期パケットである場合、処理はステップＳ２４０に進む。
ステップＳ２０１で検出された通信パケットが周期パケットでない場合、処理はステップＳ２５０に進む。
【００７３】
ステップＳ２４０は周期通信判定処理である。
ステップＳ２４０において、周期通信判定部２４０は、周期通信判定処理を行う。
周期通信判定処理（Ｓ２４０）については後述する。
ステップＳ２４０の後、処理はステップＳ２０１に進む。
【００７４】
ステップＳ２５０は、実施の形態１における図７のステップＳ１３０と同じである。
ステップＳ２５０の後、処理はステップＳ２０１に進む。
【００７５】
図１６に基づいて、周期通信判定処理（Ｓ２４０）を説明する。
ステップＳ２４１−１およびステップＳ２４１−２は許否特定処理である。
ステップＳ２４１−１において、許否特定部２４１は、状態遷移前の状態に対応付けられたホワイトリスト３４０を用いて、状態遷移前の周期パケットの許否を特定する。
状態遷移前の状態とは、運用システム１００の前回の状態である。
状態遷移前の状態に対応付けられたホワイトリスト３４０とは、ステップＳ２２０で切り替えられる前のホワイトリスト３４０である。このホワイトリスト３４０を状態遷移前のホワイトリスト３４０という。
状態遷移前の周期パケットの許否とは、状態遷移前のホワイトリスト３４０を用いて特定される周期パケットの許否である。
【００７６】
具体的には、許否特定部２４１は、以下のように周期パケットの許否を特定する。
まず、許否特定部２４１は、ステップＳ２０１で検出された周期パケットから送信元アドレスおよび宛先アドレスなどの情報を取得する。
そして、許否特定部２４１は、取得された情報に基づいて、ステップＳ２０１で検出された周期パケットが、ホワイトリスト３４０に示される許可パケットであるか判定する。
【００７７】
図１３において、状態遷移前のホワイトリスト３４０がホワイトリスト１であり、検出された周期パケットがパケットＡである場合、状態遷移前の周期パケットは、許可パケットである。
図１３において、状態遷移前のホワイトリスト３４０がホワイトリスト１であり、検出された周期パケットがパケットＣである場合、状態遷移前の周期パケットは、不可パケットである。
【００７８】
図１６に戻り、ステップＳ２４１−２を説明する。
ステップＳ２４１−２において、許否特定部２４１は、状態遷移後の状態に対応付けられたホワイトリスト３４０を用いて、状態遷移後の周期パケットの許否を特定する。
状態遷移後の状態とは、運用システム１００の現在の状態である。
状態遷移後の状態に対応付けられたホワイトリスト３４０とは、ステップＳ２２０で切り替えられた後のホワイトリスト３４０である。このホワイトリスト３４０を状態遷移後のホワイトリスト３４０という。
状態遷移後の周期パケットの許否とは、状態遷移後のホワイトリスト３４０を用いて特定される周期パケットの許否である。
周期パケットの許否を特定する方法は、ステップＳ２４１−１と同じである。
【００７９】
図１３において、状態遷移後のホワイトリスト３４０がホワイトリスト２であり、検出された周期パケットがパケットＡである場合、状態遷移後の周期パケットは、不可パケットである。
図１３において、状態遷移後のホワイトリスト３４０がホワイトリスト２であり、検出された周期パケットがパケットＣである場合、状態遷移後の周期パケットは、許可パケットである。
【００８０】
図１６に戻り、ステップＳ２４２から説明を続ける。
ステップＳ２４２は検出間隔算出処理である。
ステップＳ２４２において、検出間隔算出部２４２は、周期パケットが検出された検出間隔を算出する。
検出間隔は、今回検出された周期パケットと同じ種類の周期パケットが前回検出された時刻から、周期パケットが今回検出された時刻までの時間である。
但し、周期パケットが初めて検出された場合、検出間隔算出部２４２は、運用システム１００の状態が周期パケットが検出されたときの状態になった時刻から経過した時間を、検出間隔として算出する。
【００８１】
具体的には、周期通信判定部２４０は、以下のように検出間隔を算出する。
まず、周期通信判定部２４０は、周期パケットから送信元アドレスおよび宛先アドレスなどの情報を取得し、取得された情報に基づいて周期パケットの種類を特定する。
次に、周期通信判定部２４０は、周期通信データ３５０から、特定された種類の前回時刻を取得する。
取得された前回時刻が未検出を示す値でない場合、周期通信判定部２４０は、取得された前回時刻から今回時刻までの時間を算出する。算出される時間が検出間隔である。具体的には、今回時刻は、現在時刻またはステップＳ２０１で周期パケットが検出された時刻である。
取得された前回時刻が未検出を示す値である場合、周期通信判定部２４０は、運用状態データ３１０から遷移時刻を取得し、取得された遷移時刻から今回時刻までの時間を算出する。算出される時間が検出間隔である。
【００８２】
ステップＳ２４３はアラート判定処理である。
ステップＳ２４３において、アラート判定部２４３は、アラート条件テーブル３６０と、状態遷移前の周期パケットの許否と、状態遷移後の周期パケットの許否と、周期パケットの検出間隔とに基づいて、アラートの要否を判定する。
【００８３】
具体的には、アラート判定部２４３は、以下のようにアラートの要否を判定する。
まず、アラート判定部２４３は、ステップＳ２４１−１で特定された許否と、ステップＳ２４１−２で特定された許否と、ステップＳ２４２で算出された検出間隔とに対応するアラート条件レコード３６１をアラート条件テーブル３６０から選択する。
そして、アラート判定部２４３は、選択されたアラート条件レコード３６１に含まれるアラートの要否を参照する。
【００８４】
ステップＳ２４１−１で特定された許否が許可であり、ステップＳ２４１−２で特定された許否が許可である場合、図１４のアラート条件テーブル３６０から、アラート条件レコード３６１Ａが選択される。この場合、アラートが不要である。
【００８５】
ステップＳ２４１−１で特定された許否が許可であり、ステップＳ２４１−２で特定された許否が不可であり、ステップＳ２４２で算出された検出間隔が通信周期より短い場合、図１４のアラート条件テーブル３６０から、アラート条件レコード３６１Ｂが選択される。この場合、アラートが必要である。
ステップＳ２４１−１で特定された許否が許可であり、ステップＳ２４１−２で特定された許否が不可であり、ステップＳ２４２で算出された検出間隔が通信周期以上である場合、図１４のアラート条件テーブル３６０から、アラート条件レコード３６１Ｃまたはアラート条件レコード３６１Ｄが選択される。この場合、アラートが不要である。
検出間隔と比較される通信周期は、周期通信データ３５０に含まれる通信周期のうち、周期パケットの種類に対応する通信周期である。
【００８６】
ステップＳ２４１−１で特定された許否が不可であり、ステップＳ２４１−２で特定された許否が許可であり、ステップＳ２４２で算出された検出間隔が待機時間以下である場合、図１４のアラート条件テーブル３６０から、アラート条件レコード３６１Ｅが選択される。この場合、アラートが不要である。
ステップＳ２４１−１で特定された許否が不可であり、ステップＳ２４１−２で特定された許否が許可であり、ステップＳ２４２で算出された検出間隔が待機時間より長い場合、図１４のアラート条件テーブル３６０から、アラート条件レコード３６１Ｆが選択される。この場合、アラートが必要である。
待機時間は、予め決められた時間である。待機時間は、通信周期より短い。
【００８７】
ステップＳ２４１−１で特定された許否が不可であり、ステップＳ２４１−２で特定された許否が不可である場合、図１４のアラート条件テーブル３６０から、アラート条件レコード３６１Ｇが選択される。この場合、アラートが必要である。
【００８８】
アラートが必要である場合、処理はステップＳ２４４に進む。
アラートが不要である場合、処理は終了する。
【００８９】
ステップＳ２４４はアラート出力処理である。
ステップＳ２４４において、アラート出力部２９３は、アラートを出力する。このアラートは、正しく周期通信が行われていないことを知らせるメッセージである。
具体的には、アラート判定部２４３がアラートを含んだ通報パケットを生成し、アラート出力部２９３が通報パケットを監視制御端末１０２に送信する。
ステップＳ２４４の後、処理は終了する。
【００９０】
図１７に基づいて、侵入検知方法を具体的に説明する。
第１種類の周期パケットをパケットＡ１１１といい、第２種類の周期パケットをパケットＢ１１２といい、第３種類の周期パケットをパケットＣ１１３という。周期パケットの通信周期は同じである。
パケットＡ１１１、パケットＢ１１２およびパケットＣ１１３の通信周期毎に区切られた通信期間を期間１、期間２、期間３および期間４という。
【００９１】
運用状態は期間２と期間３との間で状態１から状態２に遷移する。
これに伴い、ホワイトリスト３４０は、図１３のホワイトリスト１から図１３のホワイトリスト２に切り替えられる。
その結果、期間１および期間２で許可されていたパケットＡ１１１は期間３以降で許可されなくなる。一方、期間１および期間２で許可されなかったパケットＣ１１３は期間３以降で許可される。
【００９２】
運用状態が状態２に遷移した結果、パケットＡ１１１が許可されなくなるが、状態遷移の直後においては、パケットＡ１１１が本当に許可すべきでない周期パケットであるか曖昧な場合がある。
そのような場合について、図１４のアラート条件テーブル３６０に予め定義される。
【００９３】
図１４のアラート条件テーブル３６０において、パケットＡ１１１に該当するレコードは、アラート条件レコード３６１Ｂからアラート条件レコード３６１Ｄである。
アラート条件レコード３６１Ｂに示すように、パケットＡ１１１が通信周期より短い通信間隔で検出された場合、アラートが出力される。つまり、パケットＡ１１１は許可されない。
アラート条件レコード３６１Ｃに示すように、パケットＡ１１１が通信周期通りに検出された場合、アラートは出力されない。つまり、パケットＡ１１１は許可される。
アラート条件レコード３６１Ｄに示すように、パケットＡ１１１が通信周期より長い通信間隔で検出された場合、アラートは出力されない。つまり、パケットＡ１１１は許可される。
【００９４】
一方、状態遷移後に許可されるパケットＣ１１３に関しては、状態遷移後に通信が開始される必要がある。
図１４のアラート条件テーブル３６０において、パケットＣ１１３に該当するレコードは、アラート条件レコード３６１Ｅおよびアラート条件レコード３６１Ｆである。
アラート条件レコード３６１Ｅに示すように、パケットＣ１１３が待機時間以内に検出された場合、アラートは出力されない。つまり、パケットＣ１１３Ｃの通信は正しく開始されている。
アラート条件レコード３６１Ｆに示すように、パケットＣ１１３が待機時間以内に検出されなかった場合、アラートが出力される。つまり、パケットＣ１１３の通信は正しく開始されていない。
【００９５】
図１７において、パケットＣ１１３は期間３に検出されなかったため、パケットＣ１１３の通信は正しく開始されておらず、アラートが出力される。
【００９６】
＊＊＊実施の形態２の効果＊＊＊
不正な周期通信を検知することが可能となる。
具体的には、状態遷移の境界で通信が開始もしくは終了される周期パケットに関しては、通常よりも詳細な判定が行われる。そのため、産業制御システムのように固定的な運用形態をとる運用システム１００において、許可すべき通信パターンをより正確に判定できる効果が得られる。
【００９７】
＊＊＊他の構成＊＊＊
実施の形態２におけるアラート条件テーブル３６０は、図１４のアラート条件テーブル３６０に限られるものではない。
【００９８】
実施の形態３．
状態遷移パケットが用いられる形態について、主に実施の形態１および実施の形態２と異なる点を、図１８から図２５に基づいて説明する。
【００９９】
＊＊＊構成の説明＊＊＊
図１８に基づいて、運用システム１００の構成を説明する。
運用システム１００は、制御ネットワーク１０５を備える。
制御ネットワーク１０５は、運用システム１００の制御に必要なリアルタイム性が保証された高速且つ高信頼なネットワークである。
監視制御端末１０２およびコントローラ１０３は、制御ネットワーク１０５にも接続される。
【０１００】
図１９、図２０および図２１に基づいて、制御ネットワーク１０５の構成を説明する。
図１９において、制御ネットワーク１０５は、制御通信帯域と通常通信帯域とを有する。
制御通信帯域は、制御パケット用の通信帯域である。制御パケットは、運用システム１００を制御するために通信される通信パケットである。制御パケットには、周期パケットが含まれる。制御通信帯域では、リアルタイム性が保証されている。
通常通信帯域は、他のパケット用の通信帯域である。他のパケットは、制御パケット以外の通信パケットである。通常通信帯域では、ＴＣＰ／ＩＰ等を用いた通常のデータ通信が行われる。ＴＣＰはＴｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌの略称であり、ＩＰはＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌの略称である。
【０１０１】
図２０において、制御ネットワーク１０５は、制御通信時間と通常通信時間とを含んだ通信周期を有する。
制御通信時間は、周期パケット用の通信時間である。制御通信時間には、ジッタが少なくリアルタイム性が高い通信が行われる。
通常通信時間は、他のパケット用の通信時間である。通常通信時間には、ＴＣＰ／ＩＰ等を用いた通常のデータ通信が行われる。
具体的には、制御ネットワーク１０５の通信周期が１ミリ秒である場合、制御通信時間は前半の０．５ミリ秒であり、通常通信時間は後半の０．５ミリ秒である。
【０１０２】
制御ネットワーク１０５において、状態遷移パケットが通信される。
状態遷移パケットは、運用システム１００の状態が遷移するときに通信されるパケットである。
状態遷移パケットには、状態遷移後の運用システム１００の状態を示す状態番号が含まれる。
【０１０３】
状態遷移パケットは、通信周期毎に区切られた通信期間のうちの運用システム１００の状態が遷移する時刻を含んだ通信期間において、通信パケット用の通信時間に通信される。
図２１において、状態遷移パケット１１４は、期間２の通常通信時間に通信されている。
【０１０４】
侵入検知装置２００の構成は、実施の形態２の図９と同じである。
【０１０５】
図２２に基づいて、状態管理部２１０の構成を説明する。
状態管理部２１０は、状態特定部２１１と状態遷移判定部２１２とを機能構成の要素として備える。
【０１０６】
図２３に基づいて、記憶部２９１の構成を説明する。
記憶部２９１は、運用状態データ３１０、状態遷移図３３０、複数のホワイトリスト３４０、周期通信データ３５０およびアラート条件テーブル３７０等を記憶する。
【０１０７】
図２４に基づいて、アラート条件テーブル３７０の構成を説明する。
アラート条件テーブル３７０は、アラート条件レコード（３７１Ａ〜３７１Ｅ）を含んでいる。アラート条件レコード３７１Ａからアラート条件レコード３７１Ｅを総称してアラート条件レコード３７１という。
アラート条件レコード３７１には、状態遷移前の許否と、状態遷移後の許否と、通信間隔と、アラートの要否とが互いに対応付けられる。
通信間隔の欄において、ハイフンは通信間隔の条件が無いことを意味する。
【０１０８】
＊＊＊動作の説明＊＊＊
図２５に基づいて、侵入検知方法を説明する。
ステップＳ３０１からステップＳ３２０までの処理は、侵入検知装置２００の侵入検知機能が動作している間、繰り返し実行される。
【０１０９】
ステップＳ３０１は、実施の形態１における図７のステップＳ１０１と同じである。
【０１１０】
ステップＳ３０２は状態遷移判定処理である。
ステップＳ３０２において、状態遷移判定部２１２は、ステップＳ３０１で検出された通信パケットが状態遷移パケットであるか判定する。
具体的には、状態遷移パケットには、状態遷移パケットであることを示す状態遷移フラグが設定される。ステップＳ３０１で検出された通信パケットに状態遷移フラグが設定されている場合、状態遷移判定部２１２は、ステップＳ３０１で検出された通信パケットが状態遷移パケットであると判定する。
ステップＳ３０１で検出された通信パケットが状態遷移パケットである場合、状態特定部２１１は、状態遷移後の運用システム１００の状態を特定する。具体的には、状態特定部２１１は、状態遷移パケットから状態番号を取得する。取得される状態番号で識別される状態が状態遷移後の運用システム１００の状態である。その後、処理はステップＳ３１０に進む。
ステップＳ３０１で検出された通信パケットが状態遷移パケットでない場合、処理はステップＳ３３０に進む。
【０１１１】
ステップＳ３１０は、実施の形態１における図７のステップＳ１２０と同じである。
ステップＳ３２０は、実施の形態２における図１５のステップＳ２４０と同じである。
ステップＳ３３０は、実施の形態１における図７のステップＳ１３０と同じである。
【０１１２】
図２１に基づいて、侵入検知方法を具体的に説明する。
周期パケットであるパケットＡ１１１、パケットＢ１１２およびパケットＣ１１３は、制御通信時間に通信される。
状態遷移パケット１１４は、期間２の通常通信時間に通信される。
状態遷移パケット１１４が期間２の通常通信時間に通信されることが保証されるため、期間２と期間３との境界で厳密に周期パケットの許否を変更することができる。
【０１１３】
運用状態は期間２と期間３との間で状態１から状態２に遷移する。
これに伴い、ホワイトリスト３４０は、図１３のホワイトリスト１から図１３のホワイトリスト２に切り替えられる。
その結果、期間１および期間２で許可されていたパケットＡ１１１は期間３以降で許可されなくなる。一方、期間１および期間２で許可されなかったパケットＣ１１３は期間３以降で許可される。
【０１１４】
図２４のアラート条件テーブル３７０において、パケットＡ１１１に該当するレコードは、アラート条件レコード３７１Ｂである。
アラート条件レコード３７１Ｂに示すように、運用状態が状態２に遷移した後にパケットＡ１１１が検出された場合、アラートが出力される。つまり、パケットＡ１１１は許可されない。
【０１１５】
図２４のアラート条件テーブル３７０において、パケットＣ１１３に該当するレコードは、アラート条件レコード３７１Ｃおよびアラート条件レコード３７１Ｄである。
アラート条件レコード３７１Ｃに示すように、パケットＣ１１３が待機時間以内に検出された場合、アラートは出力されない。つまり、パケットＣ１１３Ｃの通信は正しく開始されている。
アラート条件レコード３７１Ｄに示すように、パケットＣ１１３が待機時間以内に検出されなかった場合、アラートが出力される。つまり、パケットＣ１１３の通信は正しく開始されていない。
【０１１６】
＊＊＊実施の形態３の効果＊＊＊
不正な周期通信を検知することが可能となる。
具体的には、高信頼のサイクリック通信を利用して状態遷移の合図となる状態遷移パケットが通信される。そのため、周期通信が開始もしくは終了する正確なタイミングで状態遷移を行うことが可能となる。そして、産業制御システムのように固定的な運用形態をとる運用システム１００において、許可すべき通信パターンをより正確に判定できる効果が得られる。
【０１１７】
＊＊＊他の構成＊＊＊
図１８の運用システム１００において、侵入検知装置２００は、実施の形態１の図１と同じく、コントローラ１０３から独立して設けられてもよい。その場合、侵入検知装置２００は、図１８の運用システム１００において、制御ネットワーク１０５に接続される。
【０１１８】
図２５の侵入検知方法において、周期通信判定処理（Ｓ３２０）を省略してもよい。その場合、周期通信判定部２４０、運用状態データ３１０、周期通信データ３５０およびアラート条件テーブル３７０は、不要である。
【０１１９】
＊＊＊実施の形態の補足＊＊＊
実施の形態において、侵入検知装置２００の機能はハードウェアで実現してもよい。
図２６に、侵入検知装置２００の機能がハードウェアで実現される場合の構成を示す。
侵入検知装置２００は処理回路９９０を備える。処理回路９９０はプロセッシングサーキットリともいう。
処理回路９９０は、状態管理部２１０とホワイトリスト管理部２２０と侵入検知部２３０と周期通信判定部２４０といった「部」の機能を実現する専用の電子回路である。
具体的には、処理回路９９０は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。ＧＡはＧａｔｅ  Ａｒｒａｙの略称であり、ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
【０１２０】
侵入検知装置２００は、処理回路９９０を代替する複数の処理回路を備えてもよい。複数の処理回路は、「部」の機能を分担する。
【０１２１】
侵入検知装置２００の機能は、ソフトウェアとハードウェアとの組み合わせで実現してもよい。つまり、「部」の機能の一部をソフトウェアで実現し、「部」の機能の残りをハードウェアで実現してもよい。
【０１２２】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【０１２３】
１００  運用システム、１０１  情報系ネットワーク、１０２  監視制御端末、１０３  コントローラ、１０４  保守ネットワーク、１０５  制御ネットワーク、１１１  パケットＡ、１１２  パケットＢ、１１３  パケットＣ、１１４  状態遷移パケット、２００  侵入検知装置、２１０  状態管理部、２１１  状態特定部、２１２  状態遷移判定部、２１３  遷移パターン判定部、２２０  ホワイトリスト管理部、２３０  侵入検知部、２４０  周期通信判定部、２４１  許否特定部、２４２  検出間隔算出部、２４３  アラート判定部、２９１  記憶部、２９２  パケット検出部、２９３  アラート出力部、３１０  運用状態データ、３２０  状態遷移シナリオ、３３０  状態遷移図、３４０  ホワイトリスト、３５０  周期通信データ、３６０  アラート条件テーブル、３６１  アラート条件レコード、３７０  アラート条件テーブル、３７１  アラート条件レコード、９０１  プロセッサ、９０２  メモリ、９０３  補助記憶装置、９０４  通信装置、９９０  処理回路。
【図１】
2017221373.tif 000003
【図２】
2017221373.tif 000004
【図３】
2017221373.tif 000005
【図４】
2017221373.tif 000006
【図５】
2017221373.tif 000007
【図６】
2017221373.tif 000008
【図７】
2017221373.tif 000009
【図８】
2017221373.tif 000010
【図９】
2017221373.tif 000011
【図１０】
2017221373.tif 000012
【図１１】
2017221373.tif 000013
【図１２】
2017221373.tif 000014
【図１３】
2017221373.tif 000015
【図１４】
2017221373.tif 000016
【図１５】
2017221373.tif 000017
【図１６】
2017221373.tif 000018
【図１７】
2017221373.tif 000019
【図１８】
2017221373.tif 000020
【図１９】
2017221373.tif 000021
【図２０】
2017221373.tif 000022
【図２１】
2017221373.tif 000023
【図２２】
2017221373.tif 000024
【図２３】
2017221373.tif 000025
【図２４】
2017221373.tif 000026
【図２５】
2017221373.tif 000027
【図２６】
2017221373.tif 000028
【手続補正書】
【提出日】平成30年7月9日(2018.7.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
運用システムで通信される周期パケットを検出するパケット検出部と、
前記周期パケットが検出された検出間隔を算出する検出間隔算出部と、
前記運用システムの状態を特定する状態特定部と、
特定された状態に基づいて前記運用システムの状態遷移の有無を判定する状態遷移判定部と、
運用状態に対応付けられた複数のホワイトリストから、前記運用システムの状態に対応付けられたホワイトリストを選択するホワイトリスト管理部と、
前記運用システムの状態遷移が有った場合に、状態遷移前の状態に対応付けられたホワイトリストと状態遷移後の状態に対応付けられたホワイトリストとを用いて、状態遷移前の前記周期パケットの許否と状態遷移後の前記周期パケットの許否とを特定する許否特定部と、
状態遷移前の許否と状態遷移後の許否と通信間隔とアラートの要否とが互いに対応付けられたアラート条件テーブルと、状態遷移前の前記周期パケットの許否と、状態遷移後の前記周期パケットの許否と、前記周期パケットの前記検出間隔とに基づいて、アラートの要否を判定するアラート判定部と
を備える侵入検知装置。
【請求項２】
前記検出間隔算出部は、前記周期パケットが初めて検出された場合、前記運用システムの状態が前記周期パケットが検出されたときの状態になった時刻から経過した時間を前記検出間隔として算出する
請求項１に記載の侵入検知装置。
【請求項３】
前記運用システムの状態遷移が無かった場合に、前記運用システムの状態に対応付けられたホワイトリストを用いて、ホワイトリスト型侵入検知を行う侵入検知部を備える
請求項１または請求項２に記載の侵入検知装置。
【請求項４】
運用システムで通信される周期パケットを検出するパケット検出処理と、
前記周期パケットが検出された検出間隔を算出する検出間隔算出処理と、
前記運用システムの状態を特定する状態特定処理と、
特定された状態に基づいて前記運用システムの状態遷移の有無を判定する状態遷移判定処理と、
運用状態に対応付けられた複数のホワイトリストから、前記運用システムの状態に対応付けられたホワイトリストを選択するホワイトリスト管理処理と、
前記運用システムの状態遷移が有った場合に、状態遷移前の状態に対応付けられたホワイトリストと状態遷移後の状態に対応付けられたホワイトリストとを用いて、状態遷移前の前記周期パケットの許否と状態遷移後の前記周期パケットの許否とを特定する許否特定処理と、
状態遷移前の許否と状態遷移後の許否と通信間隔とアラートの要否とが互いに対応付けられたアラート条件テーブルと、状態遷移前の前記周期パケットの許否と、状態遷移後の前記周期パケットの許否と、前記周期パケットの前記検出間隔とに基づいて、アラートの要否を判定するアラート判定処理と
をコンピュータに実行させるための侵入検知プログラム。
【請求項５】
運用システムの状態が遷移するときに通信される状態遷移パケットを検出し、前記運用システムで通信される周期パケットを検出するパケット検出部と、
前記状態遷移パケットが検出された場合に、運用状態に対応付けられた複数のホワイトリストから、状態遷移後の状態に対応付けられたホワイトリストを選択するホワイトリスト管理部と、
前記周期パケットが検出された検出間隔を算出する検出間隔算出部と、
前記状態遷移パケットが検出された場合に、状態遷移前の状態に対応付けられたホワイトリストと状態遷移後の状態に対応付けられたホワイトリストとを用いて、状態遷移前の前記周期パケットの許否と状態遷移後の前記周期パケットの許否とを特定する許否特定部と、
状態遷移前の許否と状態遷移後の許否と通信間隔とアラートの要否とが互いに対応付けられたアラート条件テーブルと、状態遷移前の前記周期パケットの許否と、状態遷移後の前記周期パケットの許否と、前記周期パケットの前記検出間隔とに基づいて、アラートの要否を判定するアラート判定部と
を備える侵入検知装置。
【国際調査報告】
2017221373.tif 000029
2017221373.tif 000030
2017221373.tif 000031
2017221373.tif 000032