(57)【要約】【課題】  ＰＬＣ等の制御装置の制御系ネットワーク経由の攻撃に対する耐性を少ない費用で簡便に高めることを可能にする。【解決手段】  各々固有の機能を有するモジュールを組み合わせることで構成される制御システム用のＰＬＣに装着される新たなモジュールとして以下の通信検査モジュールを提供する。この通信検査モジュールは、制御系ネットワークから送信されてくる通信データについて通信不可とするか否かを検査する通信データ検査部を有しており、通信データ検査部により通信不可と判定された通信データを破棄する。通信データ検査部は、制御系ネットワークから送信されてきた通信データが、通信を禁止する通信データの条件として予め定められた通信禁止条件を満たす通信データである場合、または通信禁止条件を満たさないものの過去に動作異常を発生させた通信データである場合に通信不可と判定する。【選択図】  図２
2015207970.tif 000002
【特許請求の範囲】
【請求項１】
機器を制御する制御装置の通信検査モジュールであって、
ネットワークから受信した通信データについて、予め定められた通信禁止条件を満たすか否かを判定し、当該通信禁止条件を満たした場合に通信不可と判定する通信データ検査部を、を有し、
前記ネットワークから受信した通信データのうち、前記通信データ検査部により通信不可と判定された通信データを破棄することを特徴とする通信検査モジュール。
【請求項２】
前記ネットワークからの通信データの受信履歴を表すデータを生成する通信記録作成部と、
前記通信記録作成部により生成されたデータを記憶する通信記録部と、
をさらに有することを特徴とする請求項１に記載の通信検査モジュール。
【請求項３】
前記通信記録作成部は、
前記ネットワークから受信した通信データをその内容、送信先、送信元に応じてパターン分類してパターン毎にそのパターンを示す識別子を割り当て、前記ネットワークから受信した通信データの属するパターンを示す識別子と当該通信データの受信日時および当該通信データについての前記通信データ検査部による検査結果を表すデータとを対応付けて前記受信履歴を表すデータを生成して前記通信記録部に書き込む
ことを特徴とする請求項２に記載の通信検査モジュール。
【請求項４】
前記通信記録作成部は、
新たな受信履歴の前記通信記録部への書き込みの際に、当該受信履歴の優先度を設定するとともに、前記通信記録部への書き込みが行われてからの経過時間が長い受信履歴ほど優先度が低くなるように前記通信記録部に記録されている各受信履歴の優先度を設定し直す優先度設定手段と、
前記優先度設定手段により設定された優先度の低い順に所定個数の受信履歴を前記通信記録部から削除する削除手段と、
を含み、
前記優先度設定手段は、
前記通信記録部への書き込みが行われてから予め定められた閾値時間が経過する前の正常な通信の受信履歴の優先度が当該閾値時間を経過した異常な通信の受信履歴の優先度よりも高くなるように、各受信履歴の優先度を設定する
ことを特徴とする請求項３に記載の通信検査モジュール。
【請求項５】
前記優先度設定手段は、
異常な通信の受信履歴についてはその異常の内容に応じて優先度を設定するとともに、予め定められた異常の内容の通信の受信履歴に関しては、前記通信記録部への書き込みが行われてからの経過時間が前記閾値時間を超えていても、前記閾値時間が経過する前の正常な通信の受信履歴よりも高い優先度を設定する
ことを特徴とする請求項４に記載の通信検査モジュール。
【請求項６】
前記通信記録作成部は、
前記ネットワークから受信した通信データのパターン毎に前記識別子とそのパターンの最新の発生日時を表すデータとを含む通信データ記録データを生成して前記通信記録部に書き込む
ことを特徴とする請求項３〜５の何れか１項に記載の通信検査モジュール。
【請求項７】
前記通信記録作成部は、
前記通信記録部の記憶容量に空きがない場合には、通信可とされたパターンよりも通信不可とされたパターンの優先度が高くなり、かつ最新の発生日時が新しいパターンほど優先度が高くなるように優先度を設定する処理を前記優先度設定手段に実行させ、最も優先度の低いパターンの通信データ記録データを前記削除手段によって削除して記憶容量を確保した後に、新たな通信データ記録データを前記通信記録部に書き込む
ことを特徴とする請求項６に記載の通信検査モジュール。
【請求項８】
前記制御装置の他のモジュールの少なくとも１つを監視対象モジュールとして動作状態の監視を行うとともに、監視対象モジュールの異常動作を検知した場合に、異常動作を行った監視対象モジュールを示すデータと当該異常動作を発生させた通信データを表すデータとを対応付けて異常通信記録データを生成し、前記通信記録部に書き込むモジュール状態監視部を有し、
前記通信データ検査部は、
前記ネットワークから受信した通信データを表す異常通信記録データが前記通信記録部に記録されている場合には、当該通信データについて通信不可と判定することを特徴とする請求項１〜７の何れか１項に記載の通信検査モジュール。
【請求項９】
機器を制御する制御装置の通信モジュールであって、
ネットワークとの間で通信データの送受信を行うとともに、前記ネットワークから受信した通信データについて、予め定められた通信禁止条件を満たすか否かを判定し、当該通信禁止条件を満たした場合に通信不可と判定する通信データ検査部を、を有し、
前記ネットワークから受信した通信データのうち、前記通信データ検査部により通信不可と判定された通信データを破棄することを特徴とする通信モジュール。
【請求項１０】
請求項１〜８の何れか１項に記載の通信検査モジュール、または請求項９に記載の通信モジュールを有することを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、機器を制御する制御装置に関し、特に制御システムに含まれる制御装置に関する。
【背景技術】
【０００２】
制御システムとは、工場などの産業施設内に敷設される通信システムであって、その産業施設内に設置された電動機などの作動制御や各種センサからのデータ収集を行い、操業を支援するための通信システムのことを言う。この種の制御システムでは、機器を制御するための制御装置としてＰＬＣ（Ｐｒоｇｒａｍｍａｂｌｅ  Ｌоｇｉｃ  Ｃоｎｔｒоｌｌｅｒ；以下、ＰＬＣ）が用いられることが多い。ＰＬＣは演算処理を高速に実行可能であり、設置も簡便だからである。また、一般的なＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）システムよりも高信頼性を要求されるプラント設備では制御装置としてＤＣＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ；分散型制御システム或いは分散型制御装置）が用いられることが多い。ＤＣＳはＰＬＣに比較して信頼性が高いからである。制御システムは、従来、外部から隔離され、仕様も公開されないクローズド・システムとしての稼働を前提として設計され、運用されてきた。そのため、制御システムにはネットワーク機器として専用製品が使用されることが多く、一般的な情報処理システムとは異なる専用の通信プロトコル（例えば、ベンダ独自仕様のプロトコルや、Ｍｏｄｂｕｓプロトコル等）が採用されることが多かった。
【０００３】
近年では、制御システムへの接続性の向上や、制御システムによる生産性の向上の観点から、外部のネットワークと通信が可能なように、制御システムをオープン・システムとして設計し運用することが増えてきた。その結果、ネットワークを介した制御システム同士の連携や制御システムと情報処理システムとの連携も可能となってきている。その反面、外部のネットワークからの不正アクセスや情報漏洩、或いはコンピュータウィルスやワームへの感染といった一般的な情報処理システムにおいて発生していた様々な脅威に制御システムが晒されるようになってきた。
【０００４】
このような脅威への対処方法の一例としては、ファイアウォールやＩＤＳ（Ｉｎｔｒｕｓｉоｎ  Ｄｅｔｅｃｔｉоｎ  Ｓｙｓｔｅｍ；侵入検知システム）、ＩＰＳ（Ｉｎｔｒｕｓｉоｎ  Ｐｒｅｖｅｎｔｉоｎ  Ｓｙｓｔｅｍ；侵入防止システム）といった、外部のネットワークとの通信を検査し、検査結果によってはその通信を遮断し、さらにその遮断結果等を記録する技術を制御システムに適用することが挙げられる。一般的な情報処理システムにおいては、ファイアウォール等は保護対象のネットワークとその外部のネットワークとの通信を管理する目的で当該保護対象のネットワークに設置され、保護対象のネットワークを安全に保つ役割を担っている。この種の技術を制御システムに適用する場合、例えばリモートメンテナンス用のネットワークと制御システムの境界にファイアウォール等を設置し、外部のネットワークから制御システム全体を保護することが考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１６８６８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年では、制御システムにおけるネットワーク機器を汎用製品に置き換えたり、通信プロトコルをＴＣＰ／ＩＰなどの汎用通信プロトコルに置き換え（或いは専用プロトコルと汎用プロトコルを併用し）たりするなど、制御システムのオープン・システム化がさらに進んでいる。その結果、制御システム内部のＴＣＰに準拠した通信により、制御システム内の制御装置に対して各種の攻撃が加えられるケースが見受けられるようになってきた。この種の攻撃の一例としては、所謂ＳＹＮフラッド攻撃や、送信元アドレスを制御装置の通信アドレスに書き換えたＳＹＮメッセージをＰＬＣに与えることでハンドシェーク処理を制御装置に際限なく実行させること、実際のデータ長よりも小さいデータ長を設定したパケットを制御装置に与えて当該パケットの記憶の際にメモリ破壊を発生させることなどが挙げられる。
【０００７】
ファイアウォールやＩＤＳ、ＩＰＳといった、外部のネットワークと制御システムの境界を遮断する技術では、制御システム内で発生する通信について検査や遮断を行うことができず、制御システム内の機器からの制御装置に対する攻撃を防ぐことはできない。
【０００８】
特許文献１には、制御システム内における接続機器間のネットワークである制御系ネットワークを監視し、問題が生じると制御系ネットワークとその接続機器との接続を遮断することで、制御システム内の接続機器の保護を図る技術が開示されている。特許文献１に開示の技術では、制御系ネットワークと接続機器との通信を、あらかじめ設けた構成管理データベース、解析エンジンおよびセキュリティゲートウェイを用いて検査し、制御系ネットワークと接続機器の通信に異常が認められると、その通信は遮断されるのである。特許文献１に開示の技術によれば、制御システム内の機器からの制御装置に対する攻撃を防御することが可能ではあるが、制御システムには一般に多数の制御装置が含まれており、その各々に対して特許文献１に開示の技術を適用することは煩雑であり、設置費用が高額になるという問題がある。さらに、特許文献１には、接続機器の制御系ネットワークからの遮断をどのようにして実現するのかについて具体的な仕組みが開示されていないといった問題もある。
【０００９】
この発明は、以上説明した事情に鑑みてなされたものであり、その目的は、制御システムに含まれる制御装置に対する制御系ネットワーク経由の攻撃に対する耐性を、少ない費用で簡便に高めることを可能にする技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、機器を制御する制御装置（前述したＰＬＣ或いはＤＣＳ）の通信検査モジュールであって、以下の通信データ検査部を有する通信検査モジュールを提供する。この通信データ検査部は、ネットワークから受信した通信データについて予め定められた通信禁止条件を満たすか否かを判定し、当該通信禁止条件を満たした場合に通信不可と判定する。そして、本発明の通信検査モジュールは、ネットワークから受信した通信データのうち、通信データ検査部により通信不可と判定された通信データを破棄する。なお、機器を制御する制御装置にネットワークとの通信データの送受信を行わせるための通信モジュール（すなわち、ネットワークとの間で通信データの送受信を行うモジュール）に上記通信データ検査部を設け、ネットワークから受信した通信データのうち、通信データ検査部により通信不可と判定された通信データを破棄する処理を当該通信モジュールに実行させても良い。
【００１１】
制御システムに含まれる制御装置に本発明の通信検査モジュール或いは通信モジュールを設けることで、通信を禁止された通信データが他のモジュールに与えられないようにすることができ、このような通信データに起因する異常動作の発生を確実に回避することができる。この種の制御装置は、各々固有の機能を有する機能モジュールのうちの必要なものを当該制御装置のベースボードに装着するモジュール構成となっていることが一般的である。このため、本発明によれば、制御装置に装着されている既存の通信モジュールに代えて本発明の通信モジュールを装着すること、或いは既存の通信モジュールの他に上記通信検査モジュールを装着することで、通信データの検査を行えるようになり、構成管理データベース、解析エンジンおよびセキュリティゲートウェイを制御装置毎に設ける場合（或いは制御装置毎にファイアウォール等を設ける場合）に比較して、制御系ネットワーク経由の攻撃に対する制御装置の耐性を少ない費用で簡便に高めることが可能になる。
【００１２】
より好ましい態様においては、上記通信検査モジュール（或いは通信モジュール）は、前記ネットワークからの通信データの受信履歴を表すデータを生成する通信記録作成部と、前記通信記録作成部により生成されたデータを記憶する通信記録部と、をさらに有することを特徴とする。このような態様によれば、通信記録部に記録されている受信履歴を調べることで、通信を禁止されていないにも拘らず、何らかの異常動作を発生させた通信データを突き止めることが可能になる。
【００１３】
さらに好ましい態様においては、前記通信記録作成部は、前記ネットワークから受信した通信データをその内容、送信先、送信元に応じてパターン分類してパターン毎にそのパターンを示す識別子を割り当て、前記ネットワークから受信した通信データの属するパターンを示す識別子と当該通信データの受信日時および当該通信データについての前記通信データ検査部による検査結果を表すデータとを対応付けて前記受信履歴を表すデータを生成し、前記通信記録部に書き込むことを特徴とする。一般に制御システムにおいて制御装置が実行する通信は、その通信相手や内容が定型的であることが多く、上記パターンの数はさほど多くはない。このような態様によれば、通信データの内容（例えば、当該通信データがパケットであれば、そのペイロード部）、送信元、送信先、受信日時、および上記検査結果の各々を表すデータを受信順にそのまま通信記録部に書き込む場合に比較して、通信記録部の記憶容量を節約することが可能になる。
【００１４】
より好ましい態様としては、以下の優先度設定手段と削除手段とを通信記録作成部に設ける態様が考えられる。優先度設定手段は、新たな受信履歴を前記通信記録部に書き込む際に当該受信履歴の優先度を設定するとともに、前記通信記録部への書き込みが行われてからの経過時間が長い受信履歴ほど優先度が低くなるように前記通信記録部に記録されている各受信履歴の優先度を設定し直す。加えて、優先度設定手段は、前記通信記録部への書き込みが行われてから予め定められた閾値時間が経過する前の正常な通信の受信履歴の優先度が当該閾値時間を経過した異常な通信の受信履歴の優先度よりも高くなるように、各受信履歴の優先度を設定する。そして、削除手段は、前記優先度設定手段により設定された優先度の低い順に所定個数の受信履歴を前記通信記録部から削除する。このような態様によれば、通信データの受信から上記予め定められた期間（上記閾値時間分の時間長の期間）が経過していない通信についての受信履歴が削除されることが回避され、通信データ検査部により通信可と判定されたのかそれとも通信不可と判定されたのかを問わずに直近に行われた通信の状況を制御システムの運用管理者に把握させることが可能になる。なお、異常な通信の受信履歴についてはその異常の内容に応じて優先度を設定するとともに、予め定められた異常の内容の受信履歴に関しては、前記通信記録部への書き込みが行われてからの経過時間が前記閾値時間を上回っていても、前記閾値時間が経過する前の正常な通信の受信履歴よりも高い優先度を設定するようにしても良い。例えば、発生させた障害の程度が重いほど上記優先度を高く、上記閾値時間が経過する前の正常な通信の受信履歴よりも高い優先度を設定することで、重大な障害を発生させた通信の受信履歴ほど削除され難くすることができるからである。
【００１５】
さらに好ましい別の態様においては、前記通信記録作成部は、前記ネットワークから受信した通信データのパターン毎に前記識別子と当該パターンの最新の発生日時を表すデータとを含む通信データ記録データを生成して前記通信記録部に記憶させる。このような態様によれば、異常動作発生時の原因追究がさらに容易になる。なお、上記通信データ記録データに、通信データを表すデータ（例えば、通信データそのもの）を含めても良く、上記識別子に当該データの役割を兼ねさせても良い。例えば、上記識別子として、通信データそのもの（或いは、送信先、送信元およびペイロード部）を所定のハッシュ関数に入力して得られるハッシュ値を用いるといった具合である。なお、前記通信記録部の記憶容量に空きがない場合には、通信可とされたパターンよりも通信不可とされたパターンの優先度が高くなり、かつ最新の発生日時が新しいパターンほど優先度が高くなるように優先度を設定する処理を優先度設定手段に実行させ、最も優先度の低いパターンの通信データ記録データを上記削除手段によって削除して記憶容量を確保した後に、新たな通信データ記録データを通信記録部に書き込む処理を通信記録作成部に実行させるようにしても良い。このような態様によれば、通信不可とされたパターンの通信データ記録データほど削除され難くなるからである。
【００１６】
さらに好ましい態様においては、上記通信検査モジュール（或いは上記通信モジュール）は、制御装置の有する他のモジュールの少なくとも１つを監視対象モジュールとして動作状態の監視を行うとともに、異常動作を検知された場合に、異常動作を行った監視対象モジュールを示すデータと当該異常動作を発生させた通信データを表すデータとを対応付けて異常通信記録データを生成し、通信記録部に書き込むモジュール状態監視部を有し、前記通信データ検査部は、前記ネットワークから受信した通信データを表す異常通信記録データが通信記録部に記録されている場合には、通信不可と判定することを特徴とする。このような態様によれば、通信を禁止されていない通信データによって何らかの異常動作が発生した場合であっても、以後同様の通信データによって同様の異常動作が発生することを回避することができる。
【００１７】
上記課題を解決するための本発明の別の態様としては、上記各通信検査モジュールの何れか、或いは上記各通信モジュールの何れかを有する制御装置を提供する態様が考えられる。
【発明の効果】
【００１８】
以上説明したように、本発明によれば、制御システムに含まれる制御装置の制御系ネットワーク経由の攻撃に対する耐性を、少ない費用で簡便に高めることが可能になる。
【図面の簡単な説明】
【００１９】
【図１】この発明の制御装置の一実施形態のＰＬＣ１２１を含む制御システム１００の構成を示すブロック図である。
【図２】同ＰＬＣ１２１の構成を示すブロック図である。
【図３】同ＰＬＣ１２１の通信検査モジュール２１１が実行する検査処理の流れを示すフローチャートである。
【図４】同通信検査モジュール２１１の通信許可・禁止条件記録部２２１に記憶されている通信許可・禁止条件テーブルの一例を示す図である。
【図５】同通信検査モジュール２１１の通信日時記録部２２４に記憶されている通信日時記録データの一例を示す図である。
【図６】同通信検査モジュール２１１の通信データ記録部２２５に記憶されている通信データ記録データの一例を示す図である。
【図７】同通信検査モジュール２１１の通信記録作成部２１３が実行する記録処理の流れを示すフローチャートである。
【図８】同通信検査モジュール２１１の異常通信記録部２２２に記憶されている異常通信記録データの一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照しつつこの発明の実施形態について説明する。
図１は、この発明の制御装置の一実施形態のＰＬＣ１２１を含む制御システム１００の構成を示すブロック図である。制御システム１００は、工場等の産業施設に設置されたアクチュエータ１２３の作動制御や同施設内に設置されたセンサ１２２からのデータ収集を行い、同施設における操業を支援するためのものである。図１に示すように、制御システム１００は、ゲートウェイ装置１１１、制御用サーバ１１２、エンジニアリング装置１１３、制御系ネットワーク１０２およびＰＬＣ１２１を含んでいる。
【００２１】
ゲートウェイ装置１１１は、例えばインターネットなど外部ネットワークであるネットワーク１０１に制御システム１００を接続するためのものである。ゲートウェイ装置１１１は、ネットワーク１０１に接続されているとともに制御系ネットワーク１０２に接続されている。ゲートウェイ装置１１１は、ネットワーク１０１から送信されてくる通信データを受信し、必要に応じてプロトコル変換を施して制御系ネットワーク１０２に送信する。本実施形態では、制御システム１００が外部ネットワークに接続されている場合について説明するが、外部ネットワークに接続されない閉じたネットワークとしても良く、この場合は、ゲートウェイ装置１１１を省略することができる。逆に、ゲートウェイ装置１１１を複数設置し、これら各ゲートウェイ装置を介して複数の外部ネットワークに制御システム１００を接続する態様もとりうる。
【００２２】
制御系ネットワーク１０２には、制御用サーバ１１２、エンジニアリング装置１１３およびＰＬＣ１２１が接続されている。制御系ネットワーク１０２は各機器間の通信を媒介する。本実施形態では、制御系ネットワーク１０２を介してＦＬ−ｎｅｔなど制御システム専用の通信プロトコルに従ったデータ通信と、ＴＣＰなどの汎用通信プロトコルに従ったデータ通信の両方を行うことができる。
【００２３】
制御用サーバ１１２は、制御システム１００の運用管理者により与えられた指令に従い、制御システム１００内の各機器からの情報収集を行うとともにそれらの機器に各種指令を与える。例えば、制御用サーバ１１２は、制御系ネットワーク１０２を介してＰＬＣ１２１から計測値を取得する一方、ＰＬＣ１２１に対して制御指令を与える。エンジニアリング装置１１３は、パソコン等の外部入力・監視装置である。制御システム１００の運用管理者は、エンジニアリング装置１１３を用いて制御システム１００内の他の機器の設定や、それら機器の稼働状態の監視を行う。例えば、制御系ネットワーク１０２を介してＰＬＣ１２１に対してプログラムのダウンロードや設定を行い、さらにＰＬＣ１２１の動作の監視を行う。本実施形態では、制御システム１００に制御用サーバ１１２およびエンジニアリング装置１１３が含まれる場合について説明するが、これら各機器が外部ネットワークに接続されている態様や、これら各機器が元々存在しない態様も考えられる。
【００２４】
ＰＬＣ１２１には、センサ１２２とアクチュエータ１２３が接続されている。ＰＬＣ１２１は、設定されたプログラムや制御系ネットワーク１０２から送信されてくる通信データに基づいてセンサ１２２やアクチュエータ１２３の作動制御を行う。なお、ＰＬＣ１２１に接続されたセンサ１２２やアクチュエータ１２３は一例であり、他の外部機器がＰＬＣ１２１に接続された態様をとってもよい。
【００２５】
ＰＬＣ１２１は、ＣＰＵモジュールや、アナログまたはデジタルの入出力モジュール、Ｅｔｈｅｒｎｅｔ（登録商標）インターフェースやＦＬ−ｎｅｔインターフェースとして機能する通信モジュールといった各々固有の機能を有するモジュールのうちから必要な機能を有するものをベースボードに装着して構成されるモジュール構成となっている。図２は、ＰＬＣ１２１の構成を示すブロック図である。ＰＬＣ１２１は、一般的な制御システムにおける従来のＰＬＣと同様に、通信モジュール２０１と演算・入出力モジュール２３１とを有している。加えて、本実施形態のＰＬＣ１２１は、通信検査モジュール２１１を有しており、この点に本実施形態の特徴がある。ＰＬＣ１２１を構成する各モジュールの役割は以下の通りである。
【００２６】
通信モジュール２０１は、制御系ネットワーク１０２との間で通信データの送受信を行うためのものである。通信モジュール２０１は、図２に示すように、通信インターフェース２０２と、通信部２０３とを有する。通信インターフェース２０２は、制御系ネットワーク１０２と通信検査モジュール２１１に接続されている。通信部２０３は通信検査モジュール２１１と演算・入出力モジュール２３１に接続されている。
【００２７】
通信インターフェース２０２は、Ｅｔｈｅｒｎｅｔ（登録商標）インターフェースやＦＬ−ｎｅｔインターフェースであり、制御系ネットワーク１０２との通信データの授受を行う。通信インターフェース２０２は、制御系ネットワーク１０２から送信されてくるデータを受信し、通信検査モジュール２１１に与える。詳細については後述するが、通信検査モジュール２１１は通信インターフェース２０２から与えられた通信データの検査およびその検査結果の記録を行い、検査の結果、通信可と判定した通信データを通信部２０３に与える。
【００２８】
通信部２０３は、通信検査モジュール２１１から受け取った通信データを解析し、ＳＹＮメッセージ等の通信制御に関する通信データであれば、その通信データにしたがった通信制御（例えば、通信コネクションの確立等）を行い、制御用サーバ１１２から与えられた指令等（ＴＣＰやＦＬ−ｎｅｔよりも上位階層のデータ）であれば演算・入出力モジュール２３１に与える。
【００２９】
通信検査モジュール２１１は、通信インターフェース２０２から与えられた通信データに関して記録や検査を行い、通信不可との検査結果が得られた場合には、当該通信データを破棄する。従って、通信検査モジュール２１１により通信不可と判定された通信データが通信部２０３やさらに後段の演算・入出力モジュール２３１に与えられることはない。図２に示すように、通信検査モジュール２１１は、通信データ検査部２１２、通信記録作成部２１３、モジュール状態監視部２１４、通信許可・禁止条件記録部２２１、異常通信記録部２２２および通信記録部２２３を有している。通信検査モジュール２１１を構成する各部のうち、通信データ検査部２１２、通信記録作成部２１３、およびモジュール状態監視部２１４はＣＰＵをソフトウェアにしたがって作動させることにより実現されている。一方、通信許可・禁止条件記録部２２１、異常通信記録部２２２および通信記録部２２３は不揮発性メモリ等により構成されている。なお、通信データ検査部２１２、通信記録作成部２１３およびモジュール状態監視部２１４の各部を電子回路などのハードウェアで構成しても勿論良い。これら各部の役割は以下の通りである。
【００３０】
通信データ検査部２１２は、通信許可・禁止条件記録部２２１に予め記憶されている通信許可・禁止条件テーブルと異常通信記録部２２２に記憶されている異常通信記録データを参照して通信インターフェース２０２から受け取った通信データを検査し、当該検査結果を表す検査結果データと当該通信データとを通信記録作成部２１３に与える。
【００３１】
通信許可・禁止条件テーブルには、制御系ネットワーク１０２から送信されてくる通信データのうちＰＬＣ１２１との通信を許可する通信データの条件である通信許可条件を表すデータと、同通信を禁止する通信データの条件である通信禁止条件を表すデータが格納されている。本実施形態において、これら通信許可条件および通信禁止条件は制御システム１００の運用管理者によって予め定められている。これら通信許可条件および通信禁止条件の具体例については後に明らかにする。本実施形態では、通信データ検査部２１２は、通信インターフェース２０２から与えられた通信データが通信禁止条件を満たした場合に当該通信データについて通信不可と判定する。これに対して、通信インターフェース２０２から与えられた通信データが通信許可条件を満たした場合には通信データ検査部２１２は当該通信データについて通信可と判定する。ＰＬＣ１２１に対する不正アクセスの防止という観点から見れば、通信禁止条件だけを定めれば良いように見えるが、必須の通信が誤って禁止されないようにするための通信許可条件を定めるのである。
【００３２】
異常通信記録部２２２に記憶されている異常通信記録データは、通信許可条件を満たしたものの異常動作を発生させた通信データ、或いは通信禁止条件を満たさなかったものの異常動作を発生させた通信データの内容、その送信元および送信先を示すデータである。異常通信記録部２２２は、データの書き換えが可能な不揮発性メモリであり、この異常通信記録データを記憶するためのものである。通信データ検査部２１２は、通信インターフェース２０２から与えられた通信データの内容、送信元および送信先の組み合わせが異常通信記録部２２２に記憶されている各異常通信記録データの表す組み合わせの何れかと一致した場合に、当該通信データについて通信不可と判定する。つまり、本実施形態では、過去に何らかの異常動作を発生させた通信データと内容、送信元および送信先が一致する通信データが再び制御系ネットワーク１０２から送信されてきても、その通信データは通信検査モジュール２１１において破棄され、同様の異常動作が引き起こされることはない。
【００３３】
通信記録作成部２１３は、通信データ検査部２１２から受け取った通信データと検査結果データとから通信日時記録データと通信データ記録データとを生成し、通信記録部２２３に記憶させる。通信データ記録データは、通信インターフェース２０２により受信された通信データの内容（ＩＰパケットであれば、そのペイロード部に格納されているデータ）、送信元および送信先の各々を表すデータである。詳細については後述するが、通信記録作成部２１３は、通信インターフェース２０２により受信された通信データをその内容、送信元および送信先に応じてパターン分類してパターン毎に固有の識別子（本実施形態では、パターン番号）を割り当て、そのパターン毎に上記識別子を含む通信データ記録データを生成する。一方、通信日時記録データは、制御系ネットワーク１０２からの通信データの受信履歴を表すデータである。詳細については後述するが、通信日時記録データは、通信インターフェース２０２による通信データの受信日時（通信日時）を表すデータとその通信データの属するパターンの識別子とその通信データについての通信データ検査部２１２による検査結果を表すデータと通信の結果（異常は発生しなかったのか、それとも何らかの異常が発生したのか）を示す通信結果データとを少なくとも含んでいる。なお、通信記録作成部２１３が通信日時記録データを生成する時点では未だ通信の結果は反映されていないため、通信記録作成部２１３は所定の初期値を通信結果データに設定して通信日時記録データを生成する。本実施形態では、制御系ネットワーク１０２からの通信データの受信履歴を表すデータとして上記通信日時記録データを用いるが、制御系ネットワーク１０２から受信した通信データの内容、送信元および送信先と、その受信日時と、通信データ検査部２１２による検査結果および通信の結果とを表すデータであれば他の形式のデータを用いても勿論良い。
【００３４】
通信記録部２２３は、通信日時記録部２２４と通信データ記録部２２５とを有する。通信日時記録部２２４および通信データ記録部２２５は、何れもデータの書き換えが可能な不揮発性メモリである。通信日時記録部２２４には通信日時記録データが記憶され、通信データ記録部２２５には通信データ記録データが記憶される。なお、通信日時記録部２２４と通信データ記録部２２５の両者を一体とし、一つの不揮発性メモリで構成しても良い。また、異常通信記録部２２２と通信記録部２２３についても同様に両者を一体としても良い。
【００３５】
モジュール状態監視部２１４は、通信モジュール２０１（より正確には通信部２０３）および演算・入出力モジュール２３１を監視対象とし、その動作状態の監視を行う。そして、異常動作が検知されなかった場合には、モジュール状態監視部２１４は、監視対象のモジュールに与えられた通信データに対応する通信日時記録データに含まれる通信結果データを「異常なし」を示すデータに更新する。これに対して、何らかの異常動作が検知された場合には、モジュール状態監視部２１４は、監視対象のモジュールに与えられた通信データに対応する通信日時記録データに含まれる通信結果データを検知した異常内容を示すデータに更新し、さらに異常通信記録データを生成して異常通信記録部２２２に記憶させる。
【００３６】
演算・入出力モジュール２３１は、例えばＣＰＵとＩ／Ｏインターフェースとからなる演算・入出力部２３２を有する。演算・入出力部２３２には、通信部２０３、センサ１２２およびアクチュエータ１２３が接続されている。演算・入出力部２３２は、通信部２０３から与えられた通信データにしたがってセンサ１２２やアクチュエータ１２３の作動制御を行う。
以上が、本願発明の実施形態におけるＰＬＣ１２１の構成である。
【００３７】
次いで本実施形態の動作を図面を参照しつつ説明する。
図３は、通信検査モジュール２１１が実行する検査処理の流れを示すフローチャートである。ＰＬＣ１２１は、主電源投入を契機として図３に示す検査処理を開始（ステップＳ３００）し、制御系ネットワーク１０２から送信されてくる通信データの受信を待ち受ける。ＰＬＣ１２１は、通信データを通信インターフェース２０２によって受信（ステップＳ３０１）すると、ステップＳ３０２以降の処理を実行する。
【００３８】
通信インターフェース２０２により受信された通信データは、通信データ検査部２１２に与えられる。通信データ検査部２１２は、通信インターフェース２０２から受け取った通信データ（以下、検査対象の通信データ）の検査を行う。より詳細に説明すると、通信データ検査部２１２は、まず、検査対象の通信データが通信禁止条件を満たすものであるか否かを通信許可・禁止条件テーブルを参照して判定する（ステップＳ３０２）。
【００３９】
図４は、本実施形態における通信許可・通信禁止条件テーブルの一例を示す図である。
図４に示すように、通信許可・禁止条件テーブルは、リスト番号、通信データ条件および通信許可・禁止の各項目からなるレコードの集合である。リスト番号は各レコードを一意に識別する識別子である。通信データ条件は、通信を禁止または許可する通信データの条件を表すデータであり、本実施形態では、通信データの送信元、送信先および内容に関する条件である。例えば、図４のリスト番号１のレコードは、通信データの送信元および送信先が何れであっても、モジュール異常（重故障）を１回以上発生させるような内容の通信データを通信禁止とすることを表している。また、図４のリスト番号６のレコードは、通信データの送信元がゲートウェイ装置１１１で送信先がＰＬＣ１２１であり、データ閲覧要求を内容とする通信データについては、通信を許可することを表している。図４に示す通信許可・禁止条件テーブルは一例であり、実施形態に従い様々な態様をとりうる。どのような通信データを通信禁止とし、或いは通信を許可するのかについては、例えば制御システム１００（或いは制御システム１００と同様な通信システム）の過去の運用経験等に基づいて定めるようにすれば良い。
【００４０】
ステップＳ３０２の判定結果が“Ｙｅｓ”である場合には、通信データ検査部２１２は検査対象の通信データと、その通信データが満たした通信禁止条件を表すリスト番号と、通信禁止を表す検査結果データと、を通信記録作成部２１３に与えて記録（ステップＳ３０６）させた後に、検査対象の通信データを破棄して通信を中断し（ステップＳ３０７）、本検査処理を終了する（ステップＳ３１２）。図４のリスト番号５のレコードは、通信データの送信元および送信先が何れもＰＬＣ１２１である通信データについては、その内容に拘らず通信禁止とすることを表している。このため、本実施形態では、送信元がＰＬＣ１２１であるかのように改竄されたＳＹＮパケットがＰＬＣ１２１宛てに送信されてきても、当該ＳＹＮパケットについてのステップＳ３０２の判定結果は“Ｙｅｓ”となり、ステップＳ３０６およびＳ３０７の処理が実行される。したがって、上記ＳＹＮパケットが通信部２０３に引き渡されることはなく、このようなＳＹＮパケットの送信による攻撃を防御することができる。
【００４１】
ステップＳ３０６では、通信記録作成部２１３は、通信データ検査部２１２から与えられた各データ（検査済の通信データ、リスト番号および検査結果データ）から前述した通信日時記録データと通信データ記録データとを生成し、通信記録部２２３に記録させる。この記録処理の詳細については後に説明する。図５は、通信日時記録部２２４に記憶されている通信日時記録データの一例を示す図であり、図６は、通信データ記録部２２５に記憶されている通信データ記録データの一例を示す図である。図５に示すように、通信日時記録データには、通信日時（検査対象であった通信データの受信日時）と、後述するパターン番号と、検査結果データと、リスト番号と、通信結果データとが含まれている。一方、通信データ記録データには、図６に示すように、パターン番号と、検査対象であった通信データの送信元、送信先および当該通信データの内容そのものを表す各データと、パターン番号割り当て日時と、最新発生日時を表すデータとが含まれている。なお、パターン番号は、検査対象の通信データの送信元、送信先および内容の組み合わせが既登録の通信データ記録データの表す組み合わせのいずれにも該当しない時に新しく割り当てられる。なお、本実施形態では各パターンを示す識別子としてパターンの発生順にシーケンシャルに割り当てられる一連番号であるパターン番号を用いるが、各パターンに属する通信データの送信元、送信先および内容を表すデータをパターン番号の代わりに用いても良い。このようなデータの具体例としては、通信データの送信元、送信先および内容（前述したようにペイロード部）を表すデータを所定のハッシュ関数に入力して得られるハッシュ値が挙げられる。このようなハッシュ値を上記パターン番号の代わりに各パターンを示す識別子として用いる場合には、通信データ記録データに、検査対象であった通信データの送信元、送信先および当該通信データの内容そのものを表す各データを含めておく必要はなく、通信データ記録データの記憶に要する記憶容量を削減することができる。
【００４２】
図３に戻って、ステップＳ３０２の判定結果が“Ｎｏ”である場合には、通信データ検査部２１２は、異常通信記録を参照して当該通信データが通信を禁止されたものであるか否かを判定する（ステップＳ３０３）。ステップＳ３０３の判定結果が“Ｙｅｓ”であれば、通信データ検査部２１２は通信禁止を示す検査結果データと検査対象の通信データとを通信記録作成部２１３に与えて記録（ステップＳ３０６）させた後に、検査対象の通信データを破棄して通信を中断し（ステップＳ３０７）、本検査処理を終了する（ステップＳ３１２）。一方、ステップＳ３０３の判定結果が“Ｎｏ”であれば、通信データ検査部２１２は通信許可を示す検査結果データと検査対象の通信データとを通信記録作成部２１３に与えて記録（ステップＳ３０４）させた後に、当該検査対象の通信データを通信部２０３に与える（ステップＳ３０５）。
【００４３】
図８は、異常通信記録部２２２に記録されている異常通信記録データの一例を示す図である。図８に示すように、異常通信記録データは、過去に監視対象のモジュールに何らかの動作異常を発生させた通信データの送信元、送信先、そのデータ内容、異常判定理由（異常の発生したモジュールおよびその異常内容）、異常発生回数および異常発生日時を表すデータである。例えば、図８の番号１の異常通信記録データは、送信元がエンジニアリング装置１１３であり、かつ送信先がＰＬＣ１２１であって、通信モジュール２０１に重故障を発生させた通信データに関するものである。したがって、図８の番号１の異常通信記録データが異常通信記録部２２２に記録されている状況下で、送信元がエンジニアリング装置１１３であり、かつ送信先がＰＬＣ１２１であって当該番号１のレコードに登録されているものと内容が同じ通信データが再度送信されてきたとしても、当該通信データについてのステップＳ３０３の判定結果は“Ｙｅｓ”になり、当該通信データが通信部２０３に引き渡されることはなく、上記重故障が再度発生することはない。一般に、ＰＬＣにおけるメモリ破壊を発生させる目的で実際のデータ長よりも小さいデータ長が設定された通信データを通信禁止条件で排除することは難しいが、異常通信記録データを記録し次回以降の検査に利用することで、このような通信データを的確に排除することが可能になる。
【００４４】
ステップＳ３０５に後続するステップＳ３０８では、モジュール状態監視部２１４が、ステップＳ３０５にて通信部２０３に引き渡した通信データに起因して通信部２０３や演算・入出力部２３２に異常が生じていないかどうか監視する。通信部２０３と演算・入出力部２３２の何れにも異常が認められない場合（ステップＳ３０８：Ｎｏ）には、モジュール状態監視部２１４は、上記通信データに対応する通信日時記録データに含まれる通信結果を「異常なし」に更新する（ステップＳ３０９）。一方、通信部２０３と演算・入出力部２３２の何れかに異常が認められた場合（ステップＳ３０８：Ｙｅｓ）には、モジュール状態監視部２１４は、上記通信データに対応する通信日時記録データに含まれる通信結果を検出した異常内容に応じて更新し（ステップＳ３１０）、さらに、異常通信記録データを生成して異常通信記録部２２２に記憶させる（ステップＳ３１１）。このようにして異常通信記録部２２２に新たに記憶させた異常通信記録データは、今後受信する通信データについての検査処理の際に参照される。
以上が本実施形態の検査処理の流れである。
【００４５】
次いで、図３のステップＳ３０６において通信記録作成部２１３が実行する処理について図７を参照しつつ説明する。図７は、通信記録作成部２１３が実行する記録処理の流れを示すフローチャートである。通信記録作成部２１３は、通信データ検査部２１２から検査済の通信データとその検査結果を示す検査結果データとリスト番号とを受け取る（ステップＳ７００）と、その通信データと同一の送信元、送信先およびデータ内容を表す通信データ記録データが通信データ記録部２２５に記憶されているか否かを判定する（ステップＳ７０１）。ステップＳ７０１の判定結果が“Ｙｅｓ”であれば、通信記録作成部２１３は該当する通信データ記録データのパターン番号を読み出して取得する（ステップＳ７０２）。これに対して、ステップＳ７０１の判定結果が“Ｎｏ”であれば、通信記録作成部２１３は、新たなパターン番号を生成し、上記検査済のデータに割り当てる（ステップＳ７０３）。
【００４６】
次いで、通信記録作成部２１３は、通信日時記録部２２４の記憶容量に空きがあるのか否かを判定する（ステップＳ７０４）。ここで、通信日時記録部２２４の記憶容量の空きに関する判断基準については、ＰＬＣ１２１稼働前に通信検査モジュール２１１に予め設定しておけば良い。この判断基準の具体例としては、通信日時記録部２２４に記憶されている通信日時記録データが一定数に達するまで空きありとすること、通信日時記録部２２４の記憶容量が一定サイズに達するまで空きありとすること、或いは、通信日時記録部２２４に通信日時記録データが記憶されてから一定期間を経過するまで空きありとすること等様々な判断基準が考えられる。通信日時記録部２２４の物理的構成や記憶容量によって最適な判断基準を選択すれば良く、また、複数の判断基準を組み合わせても良い。
【００４７】
ステップＳ７０４の判定結果が“Ｙｅｓ”である場合には、通信記録作成部２１３は、通信データ検査部２１２から受け取った通信データ、リスト番号および検査結果データと、その通信データの受信日時と、ステップＳ７０２で取得したパターン番号（或いはステップＳ７０３で割り当てたパターン番号）とから、前述した通信日時記録データを生成し、通信日時記録部２２４に書き込む（ステップＳ７０６）。これに対して、ステップＳ７０４の判定結果が“Ｎｏ”である場合には、通信記録作成部２１３は、最も不要な通信日時記録データを削除して通信日時記録部２２４に記憶領域を確保（ステップＳ７０５）した後に、上記ステップＳ７０６の処理を実行する。
【００４８】
本実施形態において、最も不要な通信日時記録データとは、最も通信日時が古く正常（通信結果＝異常なし）であった通信日時記録データのことである。ただし、このような態様では、通信日時記録部２２４の記憶容量が極めて少なく、異常であると判断された通信が短時間に大量に行われた場合に、正常な通信の通信日時記録データが記録後すぐに削除されてしまうことになり、正常な通信がいつ行われたのか分からなくなってしまう。そのため、正常な通信についての通信日時記録データであっても、通信日時記録部２２４に記憶されてから一定期間が経過するまでは、削除の対象とせずに保護することが望ましい。
【００４９】
正常な通信についての通信日時記録データであっても、通信日時記録部２２４に記憶されてから一定期間が経過するまでは削除の対象とされないようにするには、以下の優先度設定手段と削除手段を通信記録作成部２１３に設けるようにすることが考えられる。優先度設定手段は、新たに生成した通信日時記録データを通信日時記録部２２４に書き込む際に当該通信日時記録データの優先度を設定するとともに、通信日時記録部２２４への書き込みが行われてからの経過時間が長い通信日時記録データほど優先度が低くなるように、通信日時記録部２２４に記録されている各通信日時記録データの優先度を設定し直す。例えば、優先度設定手段は新たに生成した通信日時記録データを通信日時記録部２２４に書き込む際に最も高い優先度を表す優先度データを生成し、通信記録作成部２１３は当該通信日時記録データを通信日時記録部２２４に書き込む際には当該優先度データを対応付けて書き込む。そして、優先度設定手段は、新たな通信日時記録データの生成が行われる毎に、通信日時記録データに対応付けて通信日時記録部２２４に記録されている優先度データをより低い優先度を表すものに更新（すなわち、再設定）する。この優先度の再設定において優先度設定手段は、通信日時記録部２２４への書き込みが行われてから予め定められた閾値時間が経過する前の正常な通信の通信日時記録データの優先度が当該閾値時間を経過した異常な通信の通信日時記録データの優先度よりも高くなるように、各通信日時記録データの優先度を再設定する。一方、削除手段は、優先度設定手段により設定された優先度の低い順に所定個数（本実施形態では１個）の通信日時記録データを通信日時記録部２２４から削除する。
【００５０】
上記閾値時間を上記一定期間の時間長とし、通信日時記録部２２４への書き込みが行われてからの経過時間が同じであれば、正常な通信の通信日時記録データの優先度よりも異常な通信の通信日時記録データの優先度のほうが高くなるように優先度設定手段に各通信日時記録データの優先度を設定させるようにすれば、通信日時記録部２２４への書き込みから一定期間が経過した正常な通信の通信日時記録データがあれば、当該通信日時記録データのうちの最も古いものが上記最も不要な通信日時記録データとして削除される。正常な通信の通信日時記録データが通信日時記録部２２４に記憶されてはいるものの何れもその書き込みから一定期間が経過しておらず、かつ通信日時記録部２２４への書き込みから一定期間が経過した異常な通信の通信日時記録データがある場合には、当該一定期間が経過した異常な通信の通信日時記録データのうちの最も古いものが上記最も不要な通信日時記録データとして削除される。そして、通信日時記録部２２４への書き込みから一定期間が経過した正常な通信の通信日時記録データが無く、かつ通信日時記録部２２４への書き込みから一定期間が経過した異常な通信の通信日時記録データも無い場合には、一定期間経過前の正常な通信の通信日時記録データ、一定期間経過前の異常な通信の通信日時記録データの順に最も古いものが最も不要な通信日時記録データとして選択され、削除される。
【００５１】
なお、上記一定期間については、通信日時記録部２２４の記憶容量や物理的構成に左右されるものであるため、一定期間をいくつかの期間に分割し、分割した期間ごとに通信日時記録データを削除するようにしても良い。また、異常な通信の通信日時記録データを削除する際には、異常の内容に応じて優先度を定めても良い。さらに、ＳＹＮフラッド攻撃に関する通信や、ハンドシェーク処理を際限なく実行する原因となった通信、メモリ破壊を発生させた通信などの予め定められた異常な内容の通信については、通信日時記録部２２４への通信日時記録データの書き込みが行われてからの経過時間が閾値時間を上回っていても、当該閾値時間が経過する前の正常な通信の通信日時記録データよりも高い優先度を設定するようにしても良い。重大な障害を発生させた通信の記録を確実に残しておくためである。ただし、あまりにも細かく一定期間の分割を行った態様や異常の内容ごとに細かく優先度を設定する態様をとるとすると、通信記録作成部２１３での演算処理が煩雑になり、ＰＬＣ１２１に求められる高速演算処理性能に影響が出るため、なるべく単純な態様をとることが望ましい。
【００５２】
ステップＳ７０６に後続するステップＳ７０７では、通信記録作成部２１３は通信データ記録部２２５の記憶容量に空きがあるか否かを判定する。ステップＳ７０７の判断基準は、ステップＳ７０４の判断基準と同様である。ステップＳ７０７の判定結果が“Ｎｏ”であれば、通信記録作成部２１３は、最も不要な通信データ記録データを削除して記憶容量を確保（ステップＳ７０８）した後に、通信データ記録部２２５へのデータの書き込み（ステップＳ７０９）を行い、判定結果が“Ｙｅｓ”であれば、ステップＳ７０８の処理を行うことなく、ステップＳ７０９の処理を実行する。
【００５３】
ここで、どのような通信データ記録データを最も不要な通信データ記録データとするのかについては種々の態様が考えられる。例えば、直近に発生した日時が最も古いパターンを表す通信データ記録データを最も不要な通信データ記録データとするといった具合である。他にも、パターン番号ごとに発生回数を数え、発生回数が少ないパターンを表す通信データ記録データから優先的に削除していく態様や、通信データ記録データのデータサイズを計測し、データサイズの大きいものから優先的に削除していく態様も考えられる。また、異常通信記録部２２２を通信記録部２２３の一部として構成する場合には、最も古い正常な通信についての通信データ記録データから優先的に削除され、異常な通信についての通信データ記録データは削除され難くなっていることが好ましい。したがって、この場合は、通信許可とされたパターンよりも通信禁止とされたパターンの優先度が高くなり、かつ最新の発生日時が新しいパターンほど優先度が高くなるように優先度を設定する処理を優先度設定手段に実行させ、最も優先度の低いパターンの通信データ記録データを最も不要な通信データ記録データとして削除手段に削除させるようにすれば良い。ただし、通信日時記録データの削除と同様に、あまりに複雑な条件を設けると、データサイズが大きくなりがちな通信データ記録データを詳細に調査することとなり、ＰＬＣ１２１に求められる高速演算処理性能に影響ができるため、なるべく簡便な条件にすることが望ましい。
【００５４】
ステップＳ７０９では、通信記録作成部２１３は、ステップＳ７０３を実行して新たなパターン番号の割り当てを行った場合には、当該パターン番号と検査済みの通信データの送信元、送信先およびそのデータ内容とを対応付けて新たな通信データ記録データを生成し、パターン番号割り当て日時および最新発生日時に現在日時を設定して通信データ記録部２２５に書き込む。これに対して、ステップＳ７０２おいてパターン番号の取得を行っていた場合には、通信記録作成部２１３は、該当する通信データ記録データの最新発生日時を現在日時に書き換える処理のみを実行する。このステップＳ７０９の処理が完了すると、通信記録作成部２１３は、本記録処理を終了する（ステップＳ７１０）。なお、ステップＳ７０４〜７０６とステップＳ７０７〜７０９の順番を入れ換えて実行しても勿論良い。
【００５５】
以上説明したように、本実施形態では、制御系ネットワーク１０２からの通信データの受信履歴を表すデータ（本実施形態では通信日時記録データ）と、当該通信データの属するパターン等を表すデータ（本実施形態では通信データ記録データ）とを互いに分離して記録した。これは、これらの各データの記録による記憶容量の圧迫を軽減するためであり、ＰＬＣ１２１の行う通信はｗｅｂアクセスなどの情報処理システムにおける通信とは異なり、通信相手や内容が定型的な通信が多いことを利用したものである。また、ＰＬＣ１２１の行う通信は通信相手や内容が定型的であることが多いため、通信日時記録データの増加に比較して通信データ記録データの増加は緩やかになると考えられる。このため、ステップＳ７０７〜７０９の処理を省略し、受信履歴を表すデータについてのみ、記憶容量の不足を契機として不要なデータの消去を行うようにしても良い。
【００５６】
本実施形態では、通信記録データ等の記録の際に単に古いものから順に削除するのではなく、性能に配慮した上で不要なデータを削除しつつ新たなデータの記録が行われるので、専用装置に比較してＣＰＵや記憶容量に制限のあるＰＬＣ１２１単体で通信の検査および記録を行うことが可能になる。また、本実施形態によれば、ＰＬＣ１２１に着脱自在な通信検査モジュール２１１によりＰＬＣ１２１を不正アクセスから保護できるため、制御システム１００に含まれるＰＬＣの各々に特許文献１の技術を適用する場合に比較してＰＬＣ単体の性能を確保しつつ、簡便かつ安価に不正アクセス等に対する耐性を高めることができる。また、本実施形態では、異常通信記録データを記憶して以降の検査に利用することにより、通信許可条件や通信禁止条件の設定だけでは対処できない不正アクセスにも対処することが可能になる。また、ＰＬＣ１２１に着脱自在なモジュールによる実装であるため、他のモジュールとの連携が可能で、通信に起因する異常動作の原因特定と対策が容易になる。
【００５７】
以上本発明の一実施形態について説明したが、この実施形態に以下の変形を加えても勿論良い。
（１）上記本実施形態では、制御システム１００に含まれる制御装置がＰＬＣ（すなわち、ＰＬＣ１２１）であったが、ＤＣＳであっても勿論良い。また、上記実施形態では、本発明の特徴を顕著に示す検査・記録処理を実行する通信検査モジュール２１１がＰＬＣ１２１のベースボードに装着されていたが、機器を制御する制御装置が通信検査モジュール２１１を有していれば良く、当該通信検査モジュール２１１が制御装置に対して着脱自在であるか否かは問わない。また、ベースボードにモジュールを着脱自在に装着できる制御装置を前提とするのであれば、通信検査モジュール２１１単体で製造・販売しても良い。制御系ネットワーク１０２から送信されてくる通信データを受信する通信モジュールと、通信モジュールにより受信された通信データにより演算を行い接続機器の動作制御を行う演算・入出力モジュールとを少なくとも有する制御装置に、このような通信検査モジュール２１１を装着することで当該ＰＬＣを本発明の制御装置として動作させることが可能になるからである。
【００５８】
また、上記実施形態では、本発明の特徴を顕著に示す検査・記録処理を実行する通信データ検査部２１２が通信検査モジュール２１１に設けられていた。前述したように従来のＰＬＣに通信検査モジュール２１１を装着することでそのＰＬＣを本発明の制御装置として機能させることができるようにするためである。しかし、通信データ検査部２１２を通信モジュール２０１に設けても良い。要は機器を制御する制御装置の通信モジュールであって、制御系ネットワークとの間で通信データの送受信を行うとともに、制御系ネットワークから受信した通信データについて予め定められた通信禁止条件を満たすか否かを判定し、当該通信禁止条件を満たした場合に通信不可と判定する通信データ検査部を有し、前記制御系ネットワーク１０２から送信されてくる通信データのうち、前記通信データ検査部により通信不可と判定された通信データを破棄する通信モジュールを提供する態様であっても良い。
【００５９】
（２）モジュール状態監視部２１４と異常通信記録部２２２を省略し、通信許可・禁止条件記録部２２１の記憶内容に基づく通信データの検査のみを行うようにしても良い。このような態様であっても、制御系ネットワーク１０２経由での攻撃に対する制御装置の耐性を従来よりも高めることができることに変わりはないからである。同様に、通信記録作成部２１３および通信記録部２２３を省略しても良い。通信許可・禁止条件記録部２２１の記憶内容に基づく通信データの検査を行うことができれば、制御系ネットワーク１０２経由での攻撃に対する制御装置の耐性を従来よりも高めることができるからである。
【００６０】
（３）モジュール状態監視部２１４により認められた異常の内容が、例えば通信部２０３や演算・入出力部２３２が重故障状態にあるなど非常に深刻である場合は、モジュール状態監視部２１４がその異常の発生したモジュールもしくはＰＬＣ１２１全体を再起動させるような処理を実行する態様もとりうる。また、制御系ネットワーク１０２との通信により通信検査モジュール２１１自体が重故障状態になった場合には、通信データ検査部２１２で重故障状態になる直前に検査を行っていた通信データについての異常通信記録データを異常通信記録部２２２に記録させるようにしても良い。
【符号の説明】
【００６１】
１００……制御システム、１０１……ネットワーク、１０２……制御系ネットワーク、１１１……ゲートウェイ装置、１１２……制御用サーバ、１１３……エンジニアリング装置、１２１……ＰＬＣ、１２２……センサ、１２３……アクチュエータ、２０１……通信モジュール、２０２……通信インターフェース、２０３……通信部、２１１……通信検査モジュール、２１２……通信データ検査部、２１３……通信記録作成部、２１４……モジュール状態監視部、２２１……通信許可・禁止条件記録部、２２２……異常通信記録部、２２３……通信記録部、２２４……通信日時記録部、２２５……通信データ記録部、２３１……演算・入出力モジュール、２３２……演算・入出力部
【図１】
2015207970.tif 000003
【図２】
2015207970.tif 000004
【図３】
2015207970.tif 000005
【図４】
2015207970.tif 000006
【図５】
2015207970.tif 000007
【図６】
2015207970.tif 000008
【図７】
2015207970.tif 000009
【図８】
2015207970.tif 000010