(58)【調査した分野】(Int.Cl.,DB名)
ネットワークを介したデータ通信により機器を制御する制御装置と、前記制御装置を前記ネットワークに接続するネットワークスイッチと、前記ネットワークスイッチに接続された異常要因判定装置と、を備える制御システムであって、
前記異常要因判定装置は、
前記データ通信で用いられるデータに含まれる情報を取得する取得部と、
前記情報を分析し、その分析結果に基づいて前記制御システムで発生した異常の要因を、前記ネットワークを介した攻撃か、または前記機器の故障であるかを判別する分析部と、
前記分析部の判別結果を表示する表示部と、
前記データ通信を予め許可された送信元と送信先の組み合わせを登録した判定テーブルを保存する保存部と、を備え、
前記情報は、前記データの送信元および送信先を示すヘッダ情報であり、
前記分析部は、前記ヘッダ情報に示された前記送信元および前記送信先の組み合わせが前記判定テーブルに登録されているか否か判定し、前記組み合わせが前記判定テーブルに登録されていない場合には前記ヘッダ情報の前記送信元のみが前記判定テーブルの前記送信元と一致するか否か判定し、前記ヘッダ情報の前記送信元のみが前記判定テーブルの前記送信元と一致する場合には前記攻撃を前記送信元の不正操作であると判定し、そうでない場合には、前記攻撃を不正接続であると判定する、制御システム。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態を図面を参照して説明する。本実施形態は、本発明を限定するものではない。
【0011】
(第1実施形態)
図1は、第1実施形態に係る制御システムの構成を示すブロック図である。
図1に示す制御システム1は、制御装置10と、HMI(Human Machine Interface)20と、ツール30と、ネットワークスイッチ40と、異常要因判定装置50と、を備える。
【0012】
制御装置10は、ネットワークを介したデータ通信により、プラントやFA等に設置された機器を制御する。制御装置10は、例えば、
図1に示すようにコントローラ11と、センサ12と、アクチュエータ13と、を有する。コントローラ11は、例えばPLC(Programmable Logic Controller)で構成されている。センサ12は、制御対象機器の状態や環境等をセンシングする。アクチュエータ13は、コントローラ11の制御に基づいて動作する。本実施形態では、複数の制御装置10が制御システム1内に設けられているが、制御装置10の数は特に制限されない。さらに、制御装置10の構成も、上記機器を制御する構成であればよく、
図1に示す構成に限定されない。
【0013】
HMI20は、ネットワークスイッチ40を介して各制御装置10の状態を監視する。ツール30は、ネットワークスイッチ40を介して各制御装置10の制御プログラムを変更するエンジニアリングツールである。
【0014】
ネットワークスイッチ40は、各制御装置10をネットワークに接続する。本実施形態では、このネットワークは、Ethernet(登録商標)であるが、他の規格のネットワークであってもよい。また、ネットワークスイッチ40はミラーポートを有し、このミラーポートに異常要因判定装置50が接続される。これにより、異常要因判定装置50は、ネットワークスイッチ40を介して、制御システム1内を伝送するパケット形式の全てのデータを取得できる。
【0015】
異常要因判定装置50は、
図1に示すように通信インターフェース部51と、タイマ部52と、取得部53と、分析部54と、保存部55と、表示部56と、を有する。異常要因判定装置50を構成するこれらの構成要素は、ハードウェアで実現されてもよいし、ソフトウェアで実現されてもよい。また、表示部56は、異常要因判定装置50の構成要素に含まれていてもよいし、異常要因判定装置50に外付けされてもよい。
【0016】
通信インターフェース部51は、ネットワークスイッチ40を介してデータを入出力する。タイマ部52は現在時刻を取得する。取得部53は、通信インターフェース部51で受信したデータからヘッダ情報を取得する。また、取得部53は、タイマ部52から取得した時刻情報をヘッダ情報に付与して分析部54へ出力する。
【0017】
分析部54は、取得部53から入力された情報を分析し、その分析結果に基づいて異常の要因を判別する。保存部55は、分析部54で用いられる判定テーブルを保存する。ここで
図2(a)および
図2(b)を参照して判定テーブルについて説明する。
【0018】
図2(a)に示す判定テーブル100は、予めデータ通信が許可された送信元と送信先の組み合わせと、その組み合わせ毎に予め設定されたデータの伝送周期と、前回のデータ取得時刻と、を示す。判定テーブル100では、IPアドレスが送信元および送信先の識別情報として用いられている。また、データ取得時刻は、データ取得のたびに更新される。一方、
図2(b)に示す判定テーブル101は、判定テーブル100の項目に加えてプロトコル情報も示す。この判定テーブル101によれば、セキュリティの判定をより厳密にすることができる。
【0019】
以下、上述した異常要因判定装置50による異常要因判定方法について説明する。異常要因判定装置50は、制御システム1で発生した異常の要因を判別するために、新規データを受信するたびにヘッダ情報判定処理および時間情報判定処理を順次に行う。
【0020】
図3は、ヘッダ情報判定処理のフローチャートである。
図3に示すフローチャートでは、まず、通信インターフェース部51がネットワークスイッチ40を介してデータを受信する(ステップS101)。続いて、取得部53が、通信インターフェース部51で受信されたデータのヘッダ情報を取得する(ステップS102)。このとき、取得部53は、タイマ部52から時刻情報を取得して、ヘッダ情報とともに分析部54へ出力する。
【0021】
分析部54は、ヘッダ情報に示された送信元IPアドレスおよび送信先IPアドレスの組み合わせが、保存部55の判定テーブルに登録されているか否かを判定する(ステップS103)。上記組み合わせが登録されている場合、分析部54は、正常であると判定する(ステップS104)。
【0022】
上記組み合わせが登録されていない場合、分析部54は、判定テーブルに登録された複数の送信元IPアドレスの中で、ヘッダ情報の送信元IPアドレスと一致するものが存在するか否かを探索する(ステップS105)。一致する送信元IPアドレスが存在する場合、分析部54は、検知フラグFLGを「1」に設定する(ステップS106)。反対に、一致する送信元IPアドレスが存在しない場合、分析部54は、検知フラグFLGを「0」に設定する(ステップS107)。
【0023】
検知フラグFLGが「1」である場合、送信元IPアドレスのみが判定テーブルに登録されているので、当該送信元IPアドレスに対応する端末が不正に操作されている可能性がある。そのため、分析部54は、ネットワークを介した攻撃が送信元の不正操作であると判定する。この場合、表示部56は、例えば
図4(a)に示す画像200のように、異常の要因が不正操作であることとその対策を表示する(ステップS108)。
【0024】
一方、検知フラグFLGが「0」である場合、送信元および送信先のそれぞれのIPアドレスが判定テーブルに登録されていないので、不正な接続が発生した可能性がある。そのため、分析部54は、ネットワークを介した攻撃が不正接続であると判定する。この場合、表示部56は、例えば
図4(b)に示す画像201のように、異常の要因が不正接続であることとその対策を表示する(ステップS109)。なお、分析部54がネットワークを介した攻撃内容を分析する際、
図2(b)に示す判定テーブル101を用いると、不正なプロトコルによる接続を検知することができる。また、画像200および画像201は、表示部56だけでなくHMI20にも表示されてよい。
【0025】
以上説明したヘッダ情報判定処理が完了すると、次に時刻情報判定処理が実行される。
図5は、時刻情報判定処理のフローチャートである。
図5に示すフローチャートでは、通信インターフェース部51がデータを受信した場合(ステップS201)、分析部54は、上述したヘッダ情報判定処理で取得部53から入力されたヘッダ情報および時刻情報に基づいて差分時間Δt1を算出する(ステップS202)。差分時間Δt1は、時刻情報に示された現在時刻と、判定テーブルに記録された前回のデータ取得時刻の差に相当する。すなわち、差分時間Δt1は、前回から今回までのデータの取得時刻の差分時間に相当する。
【0026】
続いて、分析部54は、算出した差分時間Δt1が伝送周期の許容範囲内であるか否かを判定する(ステップS203)。許容範囲は、例えば、判定テーブルに記録された伝送周期の±10%に設定されている。差分時間Δt1が許容範囲内である場合、分析部54は、正常であると判定し、判定テーブルの前回取得時刻を今回の取得時刻に更新する(ステップS204)。
【0027】
一方、差分時間Δt1が許容範囲外である場合、分析部54は、異常の要因を機器の故障に分類される伝送周期異常と判定する(ステップS205)。この場合、表示部56は、例えば
図6(a)に示す画像202のように、異常の要因が伝送周期異常であることとその対策を表示する(ステップS206)。
【0028】
ステップS201において、通信インターフェース部51がデータを受信していない場合、分析部54は、経過時間Δt2を算出する(ステップS207)。経過時間Δt2は、タイマ部52の時刻情報に示された現在時刻と判定テーブルに記録された前回のデータ取得時刻の差に相当する。すなわち、経過時間Δt2は、前回のデータ取得時刻からの経過時間に相当する。
【0029】
続いて、分析部54は、算出した経過時間Δt2が周期に基づいて設定されたしきい値を超えているか否かを判定する(ステップS208)。しきい値は、例えば伝送周期の2倍に設定される。経過時間Δt2がしきい値を超えていない場合、分析部54は、正常であると判定する(ステップS209)。
【0030】
一方、経過時間Δt2がしきい値を超えた場合、分析部54は、異常の要因を機器の故障に分類される出力停止異常と判定する(ステップS210)。この場合、表示部56は、例えば
図6(b)に示す画像203のように、異常の要因が出力停止異常であることとその対策を表示する(ステップS211)。なお、画像202および画像203も、表示部56だけでなくHMI20にも表示されてよい。
【0031】
以上説明した本実施形態によれば、制御システム1内で異常が発生した場合、分析部54が、その異常の要因を、ネットワークを介した攻撃か、または機器の故障であるかを判別する。これにより、異常の要因が特定されるので、迅速に対処することが可能となる。
【0032】
また、本実施形態では、異常の要因がネットワークを介した攻撃の場合、攻撃の内容が不正接続および不正操作に細分化されている。同様に、異常の要因が機器の故障である場合、故障の内容がデータ伝送の周期異常および出力停止異常に細分化されている。このように異常要因を細分化することによって、ユーザは異常の要因をより正確に把握して適切な処置を取ることが可能となる。なお、攻撃の細分化については、例えば、なりすまし、データ改ざん、否認、情報暴露、サービス不能、権限昇格などを追加してもよい。また、故障の細分化についても、動作の繰り返し等などを追加してもよい。
【0033】
(第2実施形態)
以下、第2実施形態について、第1実施形態と異なる点を中心に説明する。本実施形態に係る制御システムでは、異常要因判定装置50の構成が第1実施形態と異なる。
図7は、第2実施形態に係る異常要因判定装置の構成を示すブロック図である。上述した第1実施形態と同様の構成要素には同じ符号を付し、詳細な説明を省略する。
【0034】
図7に示すように、本実施形態に係る異常要因判定装置50は、モード切替部57を有する点で第1実施形態と異なる。なお、本実施形態においても、異常要因判定装置50は、ハードウェアで実現されてもよいし、ソフトウェアで実現されてもよい。また、表示部56は、異常要因判定装置50の構成要素に含まれていてもよいし、異常要因判定装置50に外付けされてもよい。
【0035】
モード切替部57は、分析部54の動作モードを、異常の要因を判別する診断モードと、判定テーブルを作成する学習モードとの間で切り替える。モード切替部57は、予め設定された時間帯に応じて分析部54の動作モードを切り替えてもよいし、ユーザの操作を受け付けたときに切り替えてもよい。
【0036】
診断モードでは、分析部54は、第1実施形態で説明したヘッダ情報判定処理および時間情報判定処理を順次に実行する。次に、
図8を参照して診断モードの動作内容について説明する。
【0037】
図8は、診断モードのフローチャートである。
図8に示すフローチャートでは、通信インターフェース部51がネットワークスイッチ40を介してデータを受信し(ステップS301)、取得部53が、受信データのヘッダ情報を取得する(ステップS302)。このとき、取得部53は、タイマ部52から時刻情報を取得して、ヘッダ情報とともに分析部54へ出力する。
【0038】
分析部54は、ヘッダ情報に示された送信元IPアドレスおよび送信先IPアドレスがが保存部55に保存された判定テーブルに既に登録されているか否かを判定する(ステップS303)。送信元IPアドレスおよび送信先IPアドレスが登録されている場合、分析部54は、データ伝送の周期を算出して判定テーブルに登録する(ステップS304)。ステップS304では、分析部54は、時刻情報に示された現在時刻と判定テーブルに記録された前回取得時刻との差分時間を周期として算出する。
【0039】
一方、送信元IPアドレスおよび送信先IPアドレスが登録されていない場合、分析部54は、これらと時刻情報を判定テーブルに登録する(ステップS305)。この時刻情報に示された現在時刻は、データ取得時刻として判定テーブルに記録される。診断モードでは、データ受信のたびに、上述したステップS301〜ステップS305の動作が繰り返される。
【0040】
以上説明した本実施形態によれば、分析部54が診断モードである場合には第1実施形態と同様に、異常の要因が特定されるので、迅速に対処することが可能となる。さらに、学習モードでは、異常の要因を特定するための判定テーブルが自動的に作成される。よって、ユーザの負荷を軽減することが可能になる。
【0041】
(第3実施形態)
第3実施形態に係る制御システムの構成は、
図1に示す第1実施形態に係る制御システム1と同様であるため、詳細な説明を省略する。以下、本実施形態に係る異常要因判定装置50による異常要因判定方法について説明する。
【0042】
図9は、第3実施形態に係る異常要因判定方法のフローチャートである。
図9に示すフローチャートでは、まず、通信インターフェース部51がネットワークスイッチ40を介してデータを受信する(ステップS401)。
【0043】
次に、取得部53が、受信データからヘッダ情報および補助情報を取得して分析部54へ出力する(ステップS402)。補助情報は、例えば、センサ12のセンシングデータ、制御装置10の状態を示す情報、および動作ログ等の少なくとも一つを含んでいる。本実施形態では、この補助情報は、ネットワークを伝送するデータに含まれている。
【0044】
次に、分析部54が、ヘッダ情報および補助情報を分析し(ステップS403)、異常の有無を判定する(ステップS404)。ステップS404では、例えば、分析部54は、ヘッダ情報の送信元および送信先を保存部55の判定テーブルと照合した結果に応じて判定する。
【0045】
異常が検知されなかった場合、分析部54は正常であると判定する(ステップS405)。反対に、異常が検知された場合、分析部54は、異常の要因を判定する(ステップS406)。ステップS406では、例えば、分析部54は、第1実施形態と同様にヘッダ情報に基づいて異常の要因をネットワークを介した攻撃と判定する。または、分析部54は、補助情報に示されたセンシングデータに基づいて異常の要因を機器の故障と判定する。このようにして判定された結果は、表示部56とHMI20の少なくとも一方に表示される(ステップS407)。
【0046】
以上説明した本実施形態によれば、分析部54によって異常の要因が特定されるので、迅速に対処することが可能となる。さらに、本実施形態では、分析部54は、ヘッダ情報だけでなく異常要因の判定を補助する補助情報も利用している。そのため、より高精度に異常の要因を判定することが可能となる。
【0047】
(第4実施形態)
第4実施形態は、上述した補助情報が伝送情報ではなく各制御装置10内に存在する点で第3実施形態と異なる。この補助情報は、例えば、制御装置10の自己診断機能の診断結果、制御装置10の状態情報、および制御装置10の動作ログの少なくとも一つを含んでいる。
【0048】
制御装置10の自己診断機能は、起動時や稼働中の定期的なタイミングで実施され、自己の機能が正しく動作しているかを診断する機能である。この診断結果を補助情報として利用することによって、ネットワークデータに含まれる情報だけでは分からない異常を検知することができる。また、制御装置の状態情報には、例えば、制御装置のON状態またはOFF状態、正常または異常、動作中または停止中などを示す情報が該当する。
【0049】
以下、本実施形態に係る異常要因判定装置50による異常要因判定方法について説明する。
図10は、第4実施形態に係る異常要因判定方法のフローチャートである。
図10に示すフローチャートでは、まず、通信インターフェース部51がネットワークスイッチ40を介してデータを受信する(ステップS501)。
【0050】
次に、取得部53が、受信データからヘッダ情報を取得して分析部54へ出力する(ステップS502)。続いて、分析部54は、ヘッダ情報を分析し(ステップS503)、異常の有無を判定する(ステップS504)。
【0051】
異常が検知されなかった場合、分析部54は正常であると判定する(ステップS505)。反対に、異常が検知された場合、分析部54は、異常の要因を分析し(ステップS506)、異常要因を特定できたか否かを判定する(ステップS507)。ステップS507では、例えば、ヘッダ情報と保存部55に保存された要因リストとの照合結果によって、両者の一致度が基準値以上であれば、異常要因を特定することができる。異常要因が特定されると、異常の内容とその対策が、表示部56とHMI20の少なくとも一方に表示される(ステップS508)。
【0052】
ステップS507において、例えば、情報不足等により要因が特定できなかった場合、分析部54は、制御装置10に対して補助情報を要求する(ステップS509)。その後、分析部54は、制御装置10から取得した補助情報と、先に取得したヘッダ情報とを用いて再度異常要因を分析する。このとき、分析部54は、異常要因を特定できるまで制御装置10から1つずつ補助情報を取得しながら異常要因を分析する処理を繰り返してもよい。また、分析部54は、制御装置10から一斉に補助情報を取得して一度の処理で異常要因を分析してもよい。
【0053】
以上説明した本実施形態によれば、第3実施形態と同様に、補助情報を利用することによって、より高精度に異常の要因を判定することが可能となる。さらに本実施形態では、補助情報は必要に応じて取得されるので、装置の処理負荷を軽減することが可能となる。
【0054】
なお、本実施形態に係る異常要因判定装置50は、異常要因を特定できない場合に制御装置10から補助情報を取得しているが、補助情報の取得形態はこれに限定されない。例えば、異常要因判定装置50は、定期的に制御装置10から補助情報を取得してもよい。この場合も、高精度に異常の要因を判定することが可能となる。
【0055】
(変形例)
図11は、変形例に係る制御システムの構成を示すブロック図である。
図11に示す制御システム1aでは、各制御装置10内に異常要因判定装置50aが設けられている。各異常要因判定装置50aは、上述した第1実施形態〜第4実施形態の異常要因判定装置50のいずれかを適用できる。
【0056】
異常要因判定装置50aは、ネットワークスイッチ14を介して制御装置10内のネットワークに接続されている。異常要因判定装置50aは、制御装置10内で発生した異常要因を、ネットワークを介した攻撃か、または制御対象の機器の故障であるかを判別する。各異常要因判定装置50aで判別された異常要因は、ネットワークスイッチ40を介して異常要因判定装置50bに送信される。異常要因判定装置50bは、これらの異常要因に基づいてシステム全体の異常要因を特定する。なお、異常要因判定装置50aと異常要因判定装置50bとの通信は、無線で直接的に行ってもよい。
【0057】
以上説明した本変形例によれば、第1実施形態〜第4実施形態で説明した異常要因判定装置50の処理機能を異常要因判定装置50aと異常要因判定装置50bとに分担させている。このような処理形式であっても異常の要因を判別できるので、迅速に対処することができる。
【0058】
なお、上述した実施形態および変形例では、異常が検知された場合にその異常の要因を「攻撃」または「故障」に判別しているが、異常検知処理と要因判別処理を同時に実施してもよい。この場合、例えば、正常と各異常の要因を識別するようなクラスタ分析を行うことによって、異常の要因を一つまたは少数に絞り込むことができる。
【0059】
以上、いくつかの実施形態および変形例を説明したが、これらの実施形態は、例としてのみ提示したものであり、発明の範囲を限定することを意図したものではない。本明細書で説明した新規なシステムは、その他の様々な形態で実施することができる。また、本明細書で説明したシステムの形態に対し、発明の要旨を逸脱しない範囲内で、種々の省略、置換、変更を行うことができる。添付の特許請求の範囲およびこれに均等な範囲は、発明の範囲や要ことに含まれるこのような形態や変形例を含むように意図されている。