(57)【特許請求の範囲】
【請求項１】
ネットワークに接続する機器により構成されるシステムの動作状態毎に正常な機器間の通信パターンを記憶したデータベースと、
前記システムの動作状態を示す情報を取得して前記システムの動作状態を判定するシステム状態取得部と、
前記機器間の通信パターンを示す情報を取得して通信パターンを判定する通信パターン判定部と、
前記通信パターン判定部が判定した通信パターンと、前記システム状態取得部が判定した前記システムの動作状態における正常な通信パターンとして前記データベースに記憶された通信パターンと、に基づいて、前記システムにおける異常発生の有無を判定し、前記システムの動作状態に対応する前記データベースの正常な通信が一定時間内に全て行われていない場合に、前記システムに異常が発生していると判定する異常判定部と、
を備えることを特徴とする情報制御装置。
【請求項２】
請求項１に記載の情報制御装置であって、
前記異常判定部は、
前記通信パターン判定部が判定した通信パターンの少なくとも一部が前記データベースに記憶された正常な通信パターンに該当しない場合に、前記システムに異常が発生していると判定する、
ことを特徴とする情報制御装置。
【請求項３】
請求項１に記載の情報制御装置であって、
前記データベースは、前記機器の送信元アドレスと前記機器の送信先アドレスの組みにより前記通信パターンを定義する、
ことを特徴とする情報制御装置。
【請求項４】
請求項１に記載の情報制御装置であって、
前記データベースを自動的に生成するデータベース作成部をさらに備えることを特徴とする情報制御装置。
【請求項５】
請求項１に記載の情報制御装置であって、
前記データベースは、
前記システムの動作状態と、前記機器間の正常な通信パターンと、前記システムの動作状態における異常対応方法と、を対応付けて記憶している、ことを特徴とする情報制御装置。
【請求項６】
通信を行う機器と、
前記機器間の接続を行う接続装置と、
ネットワークに接続する機器により構成されるシステムの動作状態毎に正常な前記機器間の通信パターンを記憶し、前記システムの動作状態を示す情報を取得して前記システムの動作状態を判定し、前記機器間の通信パターンを示す情報を取得して通信パターンを判定し、前記判定した通信パターンと、前記判定した前記システムの動作状態における正常な通信パターンとして前記記憶した通信パターンと、に基づいて、前記システムにおける異常発生の有無を判定し、前記システムの動作状態に対応する前記記憶した通信パターンの正常な通信が一定時間内に全て行われていない場合に、前記システムに異常が発生していると判定する異常判定装置と、
を備えることを特徴とする情報制御システム。
【請求項７】
請求項６に記載の情報制御システムであって、
前記異常判定装置は、
前記判定した通信パターンの少なくとも一部が前記記憶された正常な通信パターンに該当しない場合に、前記システムに異常が発生していると判定する、
ことを特徴とする情報制御システム。
【請求項８】
請求項６に記載の情報制御システムであって、
前記異常判定装置は、
前記機器の送信元アドレスと前記機器の送信先アドレスの組みにより前記通信パターンを定義する、
ことを特徴とする情報制御システム。
【請求項９】
請求項６に記載の情報制御システムであって、
前記異常判定装置は、
前記システムの動作状態と、前記機器間の正常な通信パターンと、前記システムの動作状態における異常対応方法と、を対応付けて記憶している、
ことを特徴とする情報制御システム。
【請求項１０】
ネットワークに接続する機器により構成されるシステムの動作状態毎に正常な機器間の通信パターンを記憶し、
前記システムの動作状態を示す情報を取得して前記システムの動作状態を判定し、
前記機器間の通信パターンを示す情報を取得して通信パターンを判定し、
前記判定した通信パターンと、前記判定した前記システムの動作状態における正常な通信パターンとして前記記憶した通信パターンと、に基づいて、前記システムにおける異常発生の有無を判定し、前記システムの動作状態に対応する前記記憶した通信パターンの正常な通信が一定時間内に全て行われていない場合に、前記システムに異常が発生していると判定する、
ことを特徴とする情報制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報制御装置、情報制御システム、情報制御方法に関する。特に、制御ネットワークを対象とした異常検知装置、異常検知システム及び異常検知方法に関する。
【背景技術】
【０００２】
発電システム・上下水システム・自動車生産プラント、化学プラントなどで稼動する機器の制御や保守、監視を、ネットワークを介して自動的に行う動きが高まっている。例えば、自動車生産プラント、化学プラント内で使用される制御ネットワークにおいて、ネットワークの異常・停止が起こると生産が停止し、損害に直結する。そのため、制御ネットワークには、一般のオフィスなどにおけるＰＣ、メールサーバ、Webサーバ、ファイルサーバなどの通信に用いられる情報ネットワークに比べて、高い可用性が要求される。また、発電システム、上下水システムなどに使用される制御ネットワークでは、機器へ不正なプログラムが書き込まれるなどの異常な通信が見落とされると重大な事故につながる可能性がある。そのため、制御ネットワークには高い信頼性が要求される。【０００３】
制御用ネットワークには、従来は各ベンダ独自の通信プロトコルが用いられていたため、制御ネットワークに侵入して不正な操作などを行うことは困難であると考えられていた。また、従来は制御ネットワークがインターネットと隔離されて運用されていたことも、部外者によるネットワークへの侵入を困難にしていた。しかし、近年では制御ネットワークにおいても例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ）などのオープンな通信プロトコルが適用されるようになってきた。また、制御ネットワーク内の機器のインターネットを介した遠隔保守などを実現するために、制御ネットワークとインターネットを接続して運用する形態も広まっている。制御ネットワークの通信プロトコルのオープン化、制御ネットワークのインターネットネット接続により、制御ネットワークへの不正侵入が可能となり、制御システムへの攻撃事例が増加している。【０００４】
このような、ネットワークへの侵入、攻撃などの異常を検知するための技術の一例としてＩＤＳ （Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）がある。例えばＩＤＳに関する特許文献１では、ネットワーク内で行われる正常な通信のリストを定義しておき、そのリストに該当しない通信が行われた場合に異常が発生していると判定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−８４９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
制御ネットワークに接続する機器により構成される制御システムは、運用の段階に応じて、複数のシステム状態の間を遷移する。制御システムのシステム状態として、例えば、稼動モード、保守モードなどがある。制御ネットワーク内の通信パターンは、制御システムのシステム状態に応じて変化する。【０００７】
特許文献１記載の技術では、送信元ＩＰアドレス、送信先ＩＰアドレス、宛先ポート番号、通信プロトコル等の通信指標に基づいた正常な通信のリストを作成しておき、当該リストにない通信を異常として検出する。そのため、正常な通信のリストには登録されているが、現在の制御システムの状態に対して不適合な通信が行われた場合には、異常として検出しないため、現在の制御システムの状態に対して異常な通信を検出できない場合がある。【０００８】
本発明は上記課題を解決するための発明であり、制御システムのシステム状態に対して不適合である不正な通信を異常として検出し、制御ネットワークの可用性と信頼性を高めることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題の少なくとも一の課題を解決するための本発明の一態様として、システムの状態毎に正常な機器間の通信パターンを記憶し、システムの状態を示す情報を取得してシステムの状態を判定し、前記機器間の通信パターンを示す情報を取得して通信パターンを判定し、前記判定した通信パターンと、前記判定したシステムの状態における正常な通信パターンとして前記記憶した通信パターンと、に基づいて、システム異常発生の有無を判定する。
【発明の効果】
【００１０】
制御ネットワークの可用性と信頼性を高めることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態の制御システムの全体構成を示す図である。
【図２】本実施形態の制御ネットワークの全体構成を示す図である。
【図３】本実施形態の制御ネットワークに接続する機器の機器名とアドレスの対応付けを示す図である。
【図４】第１の実施例の振舞異常検知装置を示すブロック図である。
【図５】第１の実施例の振舞異常検知装置が有するデータベースの詳細を示す図である。
【図６】第１の実施例の振舞異常検知装置が取得したシステム状態と通信パターン、受信済通信パターンリストの一例を示す図である。
【図７】第１の実施例の振舞異常検知装置が取得したシステム状態と通信パターンの一例を示す図である。
【図８】第１の実施例の振舞異常検知装置が取得したシステム状態と通信パターン、受信済通信パターンリストの一例を示す図である。
【図９】第１の実施例の振舞異常検知装置の全体動作を示すフロー図である。
【図１０】第１の実施例の振舞異常検知装置のシステム状態受信処理を示すフロー図である。
【図１１】第１の実施例の振舞異常検知装置の通信パケット受信処理を示すフロー図である
【図１２】第１の実施例の振舞異常検知装置の全通信パターン受信確認処理を示すフロー図である。
【図１３】第２の実施例の振舞異常検知装置を示すブロック図である。
【図１４】第２の実施例の振舞異常検知装置のデータベース作成フローを示すフロー図である。
【図１５】第３の実施例の振舞異常検知装置を示すブロック図である。
【図１６】第４の実施例の振舞異常検知装置を示すブロック図である。
【図１７】第５の実施例の振舞異常検知装置を示すブロック図である。
【図１８】第５の実施例の振舞異常検知装置の有するデータベースの詳細を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施例を図面を用いて説明する。
【００１３】
図１に本発明の実施例に関わる制御システムの全体構成図を示す。本実施例では火力発電プラント１０１に制御ネットワーク１０２を適用した例を示しているが、適用先が原子力発電プラント、風力発電プラント、水力発電プラント、上下水システム、石油プラント、化学プラント、自動車製造プラント、食品製造プラント、鉄鋼製造プラント、または、その他のものであってもよい。図１の例では、火力発電プラント１０１内部に制御ネットワーク１０２が施設されている。制御ネットワーク１０２には、火力発電プラント１０１内で稼動する各種機器が接続される。制御ネットワーク１０２はネットワーク接続装置１０３を介して、オフィス１０４内部に施設される情報ネットワーク１０５と接続される。情報ネットワーク１０５はＯＡ業務で使用される情報機器が接続されるネットワークである。情報ネットワーク１０５には例えば、ＰＣ（Ｐｅｒｓｏｎａｌ Ｃｏｍｐｕｔｅｒ）、ファイルサーバ、Ｗｅｂサーバ、メールサーバ、プリンタなどが接続される。情報ネットワーク１０５はネットワーク接続装置１０６を介してインターネット１０７に接続される。遠隔地から火力発電プラントの制御、保守、監視などを行う遠隔監視制御センタ１０８がインターネット１０７を介して接続する。
【００１４】
ネットワーク接続装置１０３、１０６は、ネットワークに接続する機器同士の通信を中継する装置であり、ルータ、レイヤ３スイッチ、スイッチングハブ、リピータハブなどである。
【００１５】
図２に本発明の実施例に関わる制御ネットワーク１０２の全体構成図の１例を示す。図２の制御ネットワーク１０２には、ネットワーク接続装置１０３を介して、振舞異常検知装置２０１、制御端末２０２、プログラミング端末２０３、ログサーバ２０４、ＭＥＳ（Ｍａｎｕｆａｃｕｔｕｒｉｎｇ  Ｅｘｅｃｕｔｉｏｎ  Ｓｙｓｔｅｍ）端末２０５、監視端末２０６、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｃｏｎｔｒｏｌｌｅｒ）(２０７，２０８)が接続される。制御ネットワーク１０２を構成する機器の内、振舞異常検知装置２０１は必須であるが、その他の機器については１つ、または、複数が存在しなくてもよい。制御ネットワーク１０２は、有線、無線、または有線と無線の両方により構成されるネットワークである。
【００１６】
ネットワーク接続装置１０３は、制御ネットワーク１０２に接続する機器同士を接続する装置であり、ルータ、レイヤ３スイッチ、スイッチングハブ、リピータハブなどの装置に相当する。図２の制御ネットワーク１０２のトポロジは、スタートポロジ、バストポロジ、リングトポロジ、その他のトポロジのいずれか、または組み合わせであってもよい。
【００１７】
制御端末２０２は、ＰＬＣ (２０７、２０８)のファームウェア更新などの作業を、制御ネットワーク１０２を介して行う端末である。プログラミング端末２０３は、制御ネットワーク１０２を介してＰＬＣ（２０７、２０８）に対して、ＰＬＣ（２０７、２０８）上で動作する制御プログラムの書き込みを行う端末である。
【００１８】
ログサーバ２０４は、ＰＬＣ（２０７、２０８）の動作ログを制御ネットワーク１０２を介して収集し、記録する装置である。ログサーバ２０４は、監視端末２０６からの要求に応じて、記録している動作ログを制御ネットワーク１０２を介して監視端末２０６へ送信する。
【００１９】
ＭＥＳ端末２０５は、制御ネットワーク１０２を介してＰＬＣ（２０７、２０８）に対して、発電目標などの情報を送信する装置である。監視端末２０６は、制御ネットワーク１０２を介してログサーバ２０４へアクセスしてログデータを取得し、ＰＬＣ（２０７、２０８）の稼動状態などを監視する装置である。
【００２０】
ＰＬＣ（２０７、２０８）は、アクチュエータ、モータ、センサなどのフィールド機器と接続する。フィールドネットワーク（２０９、２１０）は、ＰＬＣ（２０７、２０８）などのコントローラがフィールド機器の制御を行うためのネットワークである。フィールドネットワーク（２０９、２１０）は、有線、無線、または、有線と無線の両方により構成されるネットワークである。フィールドネットワーク（２０９、２１０）の規格として、Ｐｒｏｆｉｂｕｓ、Ｍｏｄｂｕｓ、ＨＡＲＴ、ＷｉｒｅｌｅｓｓＨＡＲＴ、ＩＳＡ１００．１１ａ等がある。
【００２１】
図２の構成では、ＰＬＣ１（２０７）とＰＬＣ２（２０８）はフィールドネットワーク（２０９、２１０）を介してフィールド機器と接続しているが、ネットワークを介さず直接接続する構成であってもよい。ＰＬＣ１（２０７）はフィールドネットワーク２０９を介してタービン２１１、回転数センサ２１２と接続している。ＰＬＣ１（２０７）はフィールドネットワーク２０９を介して、タービン２１１の回転数を測定する回転数センサ２１２から回転数情報を取得する。また、ＰＬＣ１（２０７）はフィールドネットワーク２０９を介してタービン２１１へ制御命令を送信する。ＰＬＣ２（２０８）は、フィールドネットワーク２１０を介して、ボイラ２１３、温度センサ２１４、圧力センサ２１５と接続している。ＰＬＣ２（２０８）はフィールドネットワーク２１０を介して、ボイラ２１３の温度を測定する温度センサ２１４から温度情報を取得する。ＰＬＣ２（２０８）はフィールドネットワーク２１０を介して、ボイラ２１３の圧力を測定する圧力センサ２１５から圧力情報を取得する。ＰＬＣ２（２０８）はフィールドネットワーク２１０を介して、ボイラ２１３へ制御命令を送信する。
【００２２】
図３は本実施例の制御ネットワーク１０２に接続する機器の機器名３０１とアドレス３０２の対応づけを示すテーブルである。制御端末２０２のアドレスはＡである。プログラミング端末２０３のアドレスはＢである。ログサーバ２０４のアドレスはＣである。ＭＥＳ端末２０５のアドレスはＤである。監視端末２０６のアドレスはＥである。ＰＬＣ１（２０７）のアドレスはＦである。ＰＬＣ２（２０８）のアドレスはＧである。アドレスの一例として、ＩＰアドレス、ＭＡＣアドレスなどが挙げられる。アドレスは制御ネットワークに接続する機器を一意に特定できるものであれば、その他のものであってもよい。
【実施例１】
【００２３】
図４に本発明の第１の実施例における、振舞異常検知装置２０１の機能ブロック図を示す。振舞異常検知装置２０１は、通信インターフェース４０１、パケット分類部４０２、システム状態取得部４０３、通信取得部４０４、異常判定部４０５、状態通信記憶部４０６、データベース４０７、受信済通信パターンリスト４０８から構成される。データベース４０７はシステム状態と、当該システム状態における正常通信パターンの対応付けを示すものである。【００２４】
図５はデータベース４０７の一例を示す。システム状態は、制御システムを構成する機器群の全体としての状態を定義するものである。システム状態５０１として例えば図５に示すように、プログラミングモード５０３、発電目標設定モード５０４、稼動モード５０５、稼動監視モード５０６、保守モード５０７がある。プログラミングモード５０３は、プログラミング端末２０３からＰＬＣ１（２０７）、ＰＬＣ２（２０８）へ制御プログラムの書きこみが行われている状態を表す。発電目標設定モード５０４は、ＭＥＳ端末２０５から、ＰＬＣ１（２０７）、ＰＬＣ２（２０８）へ発電目標を設定している状態を表す。稼動モード５０５は、ＰＬＣ１（２０７）、ＰＬＣ２（２０８）が、設定されたプログラム及び、発電目標に基づいて、タービン２１１、ボイラ２１３などの機器を制御している状態を表す。稼動監視モード５０６は、システム状態５０１が稼動モード５０５である場合と同様に、ＰＬＣ１（２０７）、ＰＬＣ２（２０８）が設定されたプログラム及び、発電目標に基づいて、タービン２１１、ボイラ２１３などの機器を制御し、尚且つ、監視端末２０６が各機器の稼動状態を監視している状態である。【００２５】
保守モード５０７は、制御端末２０２からＰＬＣ１（２０７）、ＰＬＣ２（２０８）へのファームウェア書き込みなどの保守作業が行われている状態を表す。制御ネットワーク１０２では、制御システムのシステム状態５０１に応じて、特定のパターンの通信が行われる。図５に示すデータベース４０７では、制御システムがプログラミングモード５０３である場合には、次の２つの正常通信パターンが定義される。１つは、アドレスＢをもつプログラミング端末２０３から、アドレスＦを持つＰＬＣ１（２０７）への動作プログラミングの書き込みを行うための通信である。２つめは、アドレスＢをもつプログラミング端末２０３から、アドレスＧをもつＰＬＣ２（２０８）への動作プログラミングの書き込みを行うための通信である。図５に示すデータベース４０７では、制御システムが発電目標設定モード５０４にある場合、次の２つの正常通信パターンが定義される。１つめは、アドレスＤをもつＭＥＳ端末２０５からアドレスＦをもつＰＬＣ１（２０７）への発電目標を書き込むための通信である。２つめは、アドレスＤをもつＭＥＳ端末２０５からアドレスＧをもつＰＬＣ２（２０８）への発電目標を書き込むための通信である。【００２６】
図５に示すデータベース４０７では、制御システムが稼動モード５０５にある場合、次の４つの正常通信パターンが定義される。１つめは、アドレスＦをもつＰＬＣ１（２０７）からアドレスＣをもつログサーバ２０４への、動作ログの書き込みのための通信である。２つめは、アドレスＧをもつＰＬＣ２（２０８）からアドレスＣをもつログサーバ２０４へ、動作ログを書き込むための通信である。３つめは、アドレスＦをもつＰＬＣ１（２０７）からアドレスＧをもつＰＬＣ２（２０８）への通信である。この３つめの通信は、ＰＬＣ１（２０７）にフィールドネットワーク２０９を介して接続するタービン２１１、回転数センサ２１２の動作状態をＰＬＣ２（２０８）に通知するための通信である。４つめは、アドレスＧをもつＰＬＣ２（２０８）からアドレスＦをもつＰＬＣ１（２０７）への通信である。この４つめの通信は、ＰＬＣ２（２０８）にフィールドネットワーク２１０を介して接続するボイラ２１３、温度センサ２１４、圧力センサ２１５の動作状態をＰＬＣ１（２０７）に通知するための通信である。上記、３つめ、および、４つめの通信は一般にサクリック通信、または、メモリ転写と呼ばれるものであり、制御ネットワークに接続する複数のＰＬＣが、各ＰＬＣの配下に接続する機器の動作状態を共有するために行われる。制御システムが稼動監視モード５０６にある場合には、次の５つの正常通信パターンが定義される。５つの正常通信パターンの内、４つは、システム状態が稼動モード５０５である場合の正常通信パターンと同一のものである。【００２７】
５つめは、アドレスＣをもつログサーバ２０４からアドレスＥをもつ監視端末２０６への、ログサーバ２０４が記録している動作ログを監視端末２０６へ送信するための通信である。図５に示すデータベース４０７では、正常通信パターンとして、送信元アドレスと送信先アドレスの組を定義しているが、その他の指標を用いて定義してもよい。正常通信パターンを定義するその他の指標として、例えば、ポート番号、パケットサイズ、通信間隔、通信頻度などが挙げられる。【００２８】
通信インターフェース４０１は、制御ネットワーク１０２内で通信されるパケットを受信し、パケット分類部４０２へ入力する。【００２９】
パケット分類部４０２は、通信インターフェース４０１から入力されたパケットのヘッダまたは内容を参照し、当該パケットがシステム状態通知パケットであるか、通信パケットであるかを判定する。システム状態通知パケットは、システム状態を通知するためのパケットである。システム状態通知パケットは、例えば、制御ネットワーク１０２に接続する機器を介して、制御システムの管理者から送信される。あるいは、システム通知パケットは制御ネットワーク１０２に対して上位にある情報ネットワーク１０５に接続する機器を介して、制御システムの管理者から送信される。あるいは、インターネット１０７を介して、遠隔管理センタ内の制御システムの管理者から送信される。システム状態通知パケットは、その他の方法で送信されてもよい。あるいは、システム状態通知パケットはネットワークを介さず振舞異常検知装置２０１に直接入力されてもよい。【００３０】
通信パケットは、制御ネットワーク１０２に接続する機器間で通信される通常のパケットである。パケット分類部４０２は、通信インターフェース４０１から入力されたパケットがシステム状態通知パケットである場合には、システム状態取得部４０３へ入力する。パケット分類部は、通信インターフェース４０１があるから入力されたパケットが通信パケットである場合には、通信取得部４０４へ入力する。【００３１】
システム状態取得部４０３は、パケット分類部４０２からシステム状態通知パケットを入力されると、システム状態を抽出し、状態通信記憶部４０６へ入力する。【００３２】
通信取得部４０４は、パケット分類部４０２から入力された通信パケットの内容を参照し、当該通信パケットの送信元アドレスと送信先アドレスを抽出する。通信取得部４０４は、抽出した送信元アドレスと送信先アドレスを異常判定部４０５へ入力する。状態通信記憶部４０６は、異常判定部４０５から入力された送信元アドレスと送信先アドレスの組が、受信済通信パターンリスト４０８に登録されていない場合、当該送信元アドレスと送信先アドレスの組を受信済通信パターンリスト４０８に記録する。【００３３】
異常判定部４０５は、通信取得部４０４から送信元アドレスと送信先アドレスの組を受信すると、状態通信機億部４０６が記録している現在のシステム状態を取得する。次に、異常判定部４０５は、データベース４０７を参照して現在のシステム状態５０１に相当する正常通信パターン５０２のリストを確認し、当該リストの中に、通信取得部４０４から取得した送信元アドレスと送信先アドレスの組がある場合には、制御システムは正常に稼動していると判定し、当該の送信元アドレスと送信先アドレスの組を状態通信記憶部４０６に入力する。正常通信パターン５０２の中に当該の送信元アドレスと送信先アドレスの組みが無い場合には制御システムに異常が発生していると判定する。【００３４】
また、異常判定部４０５は、時計機能を有し、現在時刻、全通信パターン受信確認時刻、全通信パターン受信確認間隔を管理する。全通信パターン受信確認間隔は予め設定される。異常判定部４０５は、現在時刻から全通信パターン受信確認時刻を引いた値が全通信パターン受信間隔以上である場合に、以下の動作を行う。異常判定部４０５は、全通信パターン受信確認時刻を現在時刻に更新する。異常判定部４０５は、状態通信記憶部４０６から、現在のシステム状態と受信済通信パターンリスト４０８を取得する。次に、異常判定部４０５はデータベース４０７と受信済通信パターンリスト４０８を参照し、現在のシステム状態５０１の正常通信パターン５０２を全て受信済みであるかどうかを確認する。異常判定部４０５は、正常通信パターンを全て受信済みである場合には、制御システムは正常に稼動していると判定し、未受信の正常通信パターンが１つ以上ある場合には、図１２を用いて後述する経過時間の閾値に基づく処理に基づいて制御システムに異常が発生しているか否かを判定する。【００３５】
異常判定方法に関して、具体例を用いて説明する。図６、図７、図８にシステム状態と当該システム状態において振舞異常検知装置が一定時間（全通信パターン受信確認間隔）内に取得した通信パターンと作成された受信済通信パターンリスト４０８を示す。【００３６】
図６(a)の例では、システム状態がプログラミングモードである時に、アドレスＢからアドレスＦへの通信と、アドレスＢからＧへの通信の２パターンを取得した場合を示す。これら２パターンの通信はそれぞれ、図５のデータベース４０７の内、システム状態５０１がプログラミングモード５０３である場合の正常通信パターンに一致しているため、制御システムは正常であると判定する。アドレスＢからアドレスＦへの通信と、アドレスＢからＧへの通信の２パターンは、図５のデータベース４０７の内、システム状態５０１がプログラミングモード５０３である場合の正常通信パターンに一致しているため、図６(b)の受信済通信パターンリスト４０８に登録される。図６(b)の受信済通信パターンリスト４０８から、図５のデータベース４０７の内、システム状態５０１がプログラミングモード５０３である場合の正常通信パターンが全通信パターン受信確認間隔内に全て受信されていることが分かるため、制御システムは正常であると判定する。【００３７】
図７の例では、システム状態が発電目標設定モードであるときに、アドレスＡからアドレスＦへの通信を取得した場合を示す。図５のデータベース４０７の内、システム状態５０１が発電目標設定モード５０４である場合の正常通信パターンにアドレスＡからアドレスＦへの通信は該当しないため、制御システムは異常であると判定する。【００３８】
図８(a)の例では、システム状態が稼動モードであるときに、アドレスＦからアドレスＣへの通信、アドレスＧからアドレスＣへの通信、アドレスＧからアドレスＦへの通信を取得した場合をしめす。これら３パターンの通信はそれぞれ、図５のデータベース４０７の内、システム状態５０１が稼動モード５０５である場合の正常通信パターンに一致しているため、制御システムは正常であると判定する。アドレスＦからアドレスＣへの通信、アドレスＧからアドレスＣへの通信、アドレスＧからアドレスＦへの通信は、図５のデータベース４０７の内、システム状態５０１が稼動モード５０５である場合の正常通信パターンに一致しているため、図８(b)の受信済通信パターンリスト４０８に登録される。図８(b)の受信済通信パターンリスト４０８から、図５のデータベース４０７の内、システム状態５０１が稼動モード５０５である場合の正常通信パターンの中でアドレスＦからＧへの通信が受信されておらず、システム状態５０１が稼動モード５０５である場合の正常通信パターンの全てが全通信パターン受信確認間隔内に受信されていないため、制御システムは異常であると判定する。【００３９】
振舞異常検知装置２０１の動作詳細についてフロー図を用いて説明する。【００４０】
振舞異常検知装置の全体動作フローを図９を用いて説明する。はじめに、データベースが設定される（９０１）。次に、システム状態受信処理（９０２）、通信パケット受信処理（９０３）、全通信パターン通信確認処理（９０４）が順に繰り返される。データベース設定（９０１）について、データベースはシステム管理者により作成されてもよい。データベースは振舞異常検知装置２０１が自動的に生成してもよい。データベースは振舞異常検知装置２０１が動作している中で、更新されてもよい。【００４１】
図１０は図９のシステム状態受信処理（９０２）の詳細を示す。システム状態受信処理（９０２）では、はじめにシステム状態を受信したかどうかを確認する（１００１）。受信していない場合、処理を終了する。システム状態を受信している場合、次に、受信したシステム状態が現在のシステム状態と同じかどうかを確認する（１００２）。受信したシステム状態が現在のシステム状態と同じ場合、処理を終了する。取得したシステム状態が現在のシステム状態と異なる場合、システム状態を更新する（１００３）。次に、全通信パターン受信確認時刻を現在時刻に変更する（１００４）。次に、受信済通信パターンリストをクリアし（１００５）、処理を終了する。【００４２】
図１１は図９の通信パケット受信処理（９０３）の詳細を示す。はじめに、通信パケットを受信したかどうかを確認する（１１０１）。通信パケットを受信していない場合、処理を終了する。通信パケットを受信している場合、データベース内の現在のシステム状態における正常通信パターンに当該通信パターンがあるかどうかを確認する（１１０２）。データベース内の現在のシステム状態における正常通信パターンに当該通信パターンが存在しない場合には、制御システムは異常であると判定し（１１０３）、処理を終了する。データベース内の現在のシステム状態における正常通信パターンに当該通信パターンがある場合には、受信済通信パターンリストに当該通信パターンが記録されているかを確認する（１１０４）。受信済通信パターンリストに当該通信パターンが記録されている場合には、処理を終了する。受信済み通信パターンリストに当該通信パターンが記録されていない場合には、当該通信パターンを受信済通信パターンリストに追加し（１１０５）、処理を終了する。【００４３】
図１２は図９の全通信パターン受信確認処理（９０４）の詳細を示す。はじめに、現在時刻から全通信パターン受信確認時刻を引いた値が全通信パターン受信確認間隔より大きいかどうかを確認する（１２０１）。現在時刻から全通信パターン受信確認時刻を引いた値が閾値より大きくない場合には処理を終了する。現在時刻から全通信パターン受信確認時刻を引いた値が閾値より大きい場合には、受信済通信パターンリストとデータベースを参照し、データベース内の現在システム状態の通信パターンをすべて受信済かどうかを確認する（１２０２）。全て受信済みである場合には、全通信パターン受信確認時刻を現在時刻に更新し（１２０４）、受信済通信パターンリストをクリアし（１２０５）、処理を終了する。全て受信済みでない場合には、制御システムが異常であると判定する（１２０３）。次に、全通信パターン受信確認時刻を現在時刻に更新し（１２０４）、受信済通信パターンリストをクリアし（１２０５）、処理を終了する。【００４４】
本施例によれば、現在のシステム状態に対して適切な通信が行われていないときにシステムの異常を検出することにより、可用性・信頼性の高い制御ネットワークを提供することができる。
【実施例２】
【００４５】
本実施例の振舞異常検知装置はデータベースを自動で作成することを特徴とする。【００４６】
図１３に本実施例の振舞異常検知装置１３０１を示す。図１３において、図４の各部分と同じ動作を行う部分には同一の符号をつける。図１３に示す振舞異常検知装置１３０１のシステム状態取得部１３０２は、パケット分類部４０２からシステム状態通知パケットを入力されると、システム状態を抽出し、システム状態を状態通信記憶部４０６とデータベース作成部１３０３の両方に入力する。【００４７】
通信取得部１３０４は、パケット分類部４０２から入力された通信パケットの内容を参照し、当該通信パケットの送信元アドレスと送信先アドレスを抽出する。通信取得部１３０４は、抽出した送信アドレスと送信先アドレスを異常判定部４０５と状態通信記憶部４０６とデータベース作成部１３０３へ入力する。【００４８】
データベース作成部１３０３はシステム取得部１３０２から入力されたシステム状態と通信取得部から入力された、送信元アドレスと送信先アドレスを用いて、データベース４０６を作成する。【００４９】
データベース作成処理を図１４にデータベース作成のフロー図を用いて説明する。まず、システム状態を取得したかどうかを確認する（１４０１）。システム状態を取得していない場合、通信パターンを取得したかどうかを確認する（１４０５）。システム状態を取得している場合、取得したシステム状態がデータベースに存在するかどうかを確認する（１４０２）。取得したシステム状態がデータベースに存在しない場合、当該システム状態をデータベースに登録する（１４０３）。次に、現在のシステム状態を取得したシステム状態に更新する（１４０４）。次に、通信パターンを取得したかどうかを確認する（１４０５）。通信パターンを取得していない場合、学習期間が終了しているかどうかを確認する（１４０８）。通信パターンを取得している場合、データベース内の現在のシステム状態の正常通信パターンとして取得した通信パターンが登録されているかどうかを確認する（１４０６）。【００５０】
データベース内の現在のシステム状態の正常通信パターンとして、取得した通信パターンが登録されている場合、学習期間が終了しているかどうかを確認する（１４０８）。データベース内の現在のシステム状態の正常通信パターンとして、取得した通信パターンが登録されていない場合、データベース内の現在のシステム状態の正常通信パターンとして取得した通信パターンを登録する（１４０７）。次に、学習期間が終了しているかどうかを確認する（１４０８）。学習期間が終了していない場合には、再度システム状態を取得しているかどうかを確認する（１４０１）。学習期間が終了している場合には、データベース作成処理を終了する。【００５１】
本実施例によれば、データベースを自動で作成することにより、管理者などが手動でデータベースを作成することが不要になり、振舞異常検知装置の導入を容易にすることが可能となる。
【実施例３】
【００５２】
本実施例の振舞異常検知装置はデータベースを更新することを特徴とする。【００５３】
図１５に本実施例の振舞異常検知装置を示す。図１５において、図４の各部分と同じ動作を行う部分には同一の符号をつける。【００５４】
図１５に示す振舞異常検知装置のパケット分類部１５０２は、通信インターフェース４０１から入力されたパケットのヘッダまたは内容を参照し、当該パケットがシステム状態通知パケットであるか、通信パケットであるか、データベース更新通知パケットであるかを判定する。パケット分類部１５０２は、通信インターフェース４０１から入力されたパケットがシステム状態通知パケットである場合には、システム状態取得部へ入力する。パケット分類部１５０２は、通信インターフェース４０１から入力されたパケットが通信パケットである場合には、通信取得部４０４へ入力する。パケット分類部１５０２は、通信インターフェース４０１から入力されたパケットがデータベース更新通知パケットである場合には、データベース更新部１５０３へ入力する。【００５５】
システム状態通知パケットは、システム状態を通知するためのパケットである。通信パケットは、制御ネットワークに接続する機器間で通信される通常のパケットである。データベース更新通知パケットは、データベース更新部１５０３に、データベースの更新を指示するためのパケットである。データベース更新部１５０３は、パケット分類部１５０２から入力されたデータベース更新通知パケットを入力されると、パケットからデータベース更新内容を抽出し、データベース４０７の更新を行う。【００５６】
本実施例によれば、データベースを更新することにより、制御ネットワークに新たな機器が追加されるなど制御ネットワーク、制御システムの構成が変更された場合においても、制御ネットワークの異常を見落とすことなく検出することができる。
【実施例４】
【００５７】
本実施例の振舞異常検知装置は、異常通知部を有することを特徴とする。【００５８】
図１６に本実施例の振舞異常検知装置を示す。図１６において、図４の各部分と同じ動作を行う部分には同一の符号をつける。【００５９】
図１６に示す振舞異常検知装置１６０１の異常判定部１６０２は、通信取得部４０４から送信元アドレスと送信先アドレスの組を受信すると、状態通信機億部４０６が記録している現在のシステム状態を取得する。次に、異常判定部１６０２は、データベース４０７を参照して現在のシステム状態に相当する正常通信パターンのリストを確認し、当該リストの中に、通信取得部から取得した送信元アドレスと送信先アドレスの組がある場合には、制御システムは正常に稼動していると判定し、無い場合には制御システムに異常が発生していると判定し、判定結果を異常通知部１６０３へ入力する。異常判定部１６０３は、定期的に次の動作を行う。異常判定部１６０３は、状態通信記憶部４０６から、現在のシステム状態と受信済通信パターンリストを取得する。【００６０】
次に、異常判定部１６０２はデータベース４０７を参照し、現在のシステム状態の正常通信パターンを全て受信済みであるかどうかを確認する。異常判定部１６０２は、正常通信パターンを全て受信済みである場合には、制御システムは正常に稼動していると判定し、未受信の正常通信パターンが１つ以上ある場合には、制御システムに異常が発生していると判定し、判定結果を異常通知部１６０３へ入力する。異常通知部１６０３は、異常判定部１６０２から通知された異常有無を示す判定結果を通信インターフェース４０１を介して管理者へ通知する。管理者は、制御ネットワーク１０２内、または、情報ネットワーク１０５内、または、インターネット１０７を介した遠隔地に存在する場合が考えられる。【００６１】
本実施例によれば、制御ネットワークの管理者が、制御ネットワークから離れた場所いる場合においても、管理者が制御ネットワークで発生した異常を認識することが可能となる。
【実施例５】
【００６２】
本実施例の振舞異常検知装置は、システム状態、システム状態に対応する正常通信パターン、システム状態に対応する異常対応方法の３つを記録するデータベースを有し、システム状態に応じた異常対応方法を実施することを特徴とする。【００６３】
図１７に本実施例の振舞異常検知装置１７０１を示す。図１７において、図４の各部分と同じ動作を行う部分には同一の符号をつける。【００６４】
図１７に示す振舞異常検知装置のデータベース１７０２はシステム状態と、当該システム状態における正常な通信パターンの対応付けと、当該システム状態において異常を検知した場合の異常対応方法の対応付けを示すものである。異常判定部１７０３は異常検出時に、データベースに記載されている異常対応方法を異常対応部１７０４に通知する。異常対応部１７０４は、異常判定部１７０３から通知された異常対応方法を実施する。図１８は本実施例におけるデータベース１７０２の一例を示す。システム状態５０１がプログラミングモード５０３にあるときに異常を検出した場合、異常対応方法１８０１として、異常通信の遮断と管理者通知（１８０２）を実施する。システム状態５０１が発電目標設定モード５０３であるときに異常を検出した場合、異常対応方法１８０１として異常通信遮断と管理者通知（１８０３）を実施する。システム状態５０１が稼動モード５０５であるときに異常を検出した場合、異常対応方法１８０１として管理者通知（１８０４）を実施する。システム状態５０１が稼動監視モード５０６であるときに異常を検出した場合、異常対応方法１８０１として管理者通知（１８０５）を実施する。システム状態５０１が保守モード５０７でるときに異常を検出した場合、異常対応方法１８０１として異常通信遮断と管理者通知（１８０６）を実施する。【００６５】
システム状態５０１が稼動モード５０５、または、稼動監視モード５０６にある場合には、火力発電プラント１０１内のタービン２１１などの機器は運転中である。機器が運転中であるときに、振舞異常検知装置１７０１が異常と判定した通信が、実際には制御に必要な通信であった場合、機器の制御が失われて事故などにつながる可能性もあるため、異常通信遮断は行わず、管理者通知のみを行う。システム状態５０１がプログラミングモード５０３、発電目標設定モード５０４、または、保守モード５０７にある場合には、火力発電プラント内のタービン２１１などの機器は非運転中である。機器が非運転中であるときに、振舞異常検知装置１７０１が異常と判定した通信が、実際は正常な通信であったとしても、機器の動作に影響を及ぼさないと考えられるため、管理者通知だけでなく異常通信遮断も行う。【００６６】
本実施例によれば、制御システムのシステム状態に応じて異常対応方法を変更することにより、システムの異常を検出しつつ、異常に対して安全な対応を実施可能となる。  以上、本発明者によってなされた発明を実施例に基づき具体的に例示して説明したが、本発明の内容は実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、振舞異常検知装置を構成する各機能部の一部、または、全てがルータ、レイヤ３スイッチ、スイッチングハブ、リピータハブなどのネットワーク接続機器に組み込まれてもよい。また、振舞異常検知装置を構成する各機能部が、２以上の複数の装置に組み込まれて構成されてもよい。また、実施例１〜５に記載した振舞異常検知装置の機能部の内、１つ、または、複数の機能部を組み合わせて使用した振舞異常検知装置を構成してもよい。
【符号の説明】
【００６７】
１０１  火力発電プラント
１０２  制御ネットワーク
１０３、１０６  ネットワーク接続装置
１０４  オフィス
１０５  制御ネットワーク
１０７  インターネット
１０８  遠隔監視制御センタ
２０１、１３０１、１５０１、１６０１、１７０１  振舞異常検知装置
２０２  制御端末
２０３  プログラミング端末
２０４  ログサーバ
２０５  ＭＥＳ端末
２０６  監視端末
２０７  ＰＬＣ１
２０８  ＰＬＣ２
２０９、２１０  フィールドネットワーク
２１１  タービン
２１２  回転数センサ
２１３  ボイラ
２１４  温度センサ
２１５  圧力センサ
３０１  機器名
３０２  アドレス
４０１  通信インターフェース
４０２、１５０２  パケット分類部
４０３、１３０２  システム状態取得部
４０４、１３０４  通信取得部
４０５、１６０２、１７０３  異常判定部
４０６  状態通信機億部
４０７、１７０２  データベース
４０８  受信済通信パターンリスト
５０１  システム状態
５０２  正常通信パターン
５０３  プログラミングモード
５０４  発電目標設定モード
５０５  稼動モード
５０６  稼動監視モード
５０７  保守モード
１３０３  データベース作成部
１５０３  データベース更新部
１６０３  異常通知部
１７０４  異常対応部
１８０１  異常対応方法
１８０２、１８０３、１８０６  異常通信遮断と管理者通知
１８０４、１８０５  管理者通知
【図１】
0005844944.tif 000002
【図２】
0005844944.tif 000003
【図３】
0005844944.tif 000004
【図４】
0005844944.tif 000005
【図５】
0005844944.tif 000006
【図６】
0005844944.tif 000007
【図７】
0005844944.tif 000008
【図８】
0005844944.tif 000009
【図９】
0005844944.tif 000010
【図１０】
0005844944.tif 000011
【図１１】
0005844944.tif 000012
【図１２】
0005844944.tif 000013
【図１３】
0005844944.tif 000014
【図１４】
0005844944.tif 000015
【図１５】
0005844944.tif 000016
【図１６】
0005844944.tif 000017
【図１７】
0005844944.tif 000018
【図１８】
0005844944.tif 000019