JP2017228887A - 制御システム、ネットワーク装置、及び制御装置の制御方法 - Google Patents

制御システム、ネットワーク装置、及び制御装置の制御方法 Download PDF

Info

Publication number
JP2017228887A
JP2017228887A JP2016122614A JP2016122614A JP2017228887A JP 2017228887 A JP2017228887 A JP 2017228887A JP 2016122614 A JP2016122614 A JP 2016122614A JP 2016122614 A JP2016122614 A JP 2016122614A JP 2017228887 A JP2017228887 A JP 2017228887A
Authority
JP
Japan
Prior art keywords
packet
control
control device
network
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016122614A
Other languages
English (en)
Inventor
明彦 土屋
Akihiko Tsuchiya
明彦 土屋
田中 栄一
Eiichi Tanaka
栄一 田中
祐輔 矢島
Yusuke Yajima
祐輔 矢島
誠由 高瀬
Masayoshi Takase
誠由 高瀬
泰輔 植田
Yasusuke Ueda
泰輔 植田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2016122614A priority Critical patent/JP2017228887A/ja
Publication of JP2017228887A publication Critical patent/JP2017228887A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/4026Bus for use in automation systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】機器に異常が起きたことを素早く検知し、機器を継続して正常に動作させる。【解決手段】運用系制御装置は、ネットワーク装置を介して運用系制御装置と接続された機器を制御し、ネットワーク装置は、該機器の状態を計測する監視センサに接続され、監視センサによる計測値を受信し、受信した計測値が予め定められた範囲に含まれないと判定した場合、運用系制御装置と該機器との接続を解除し、かつネットワーク装置を介して待機系制御装置と該機器とを接続する、切替え処理を実行し、待機系制御装置は、切替え処理が実行された後、該機器を制御する。【選択図】図1

Description

本発明は、制御システム、ネットワーク装置、及び制御装置の制御方法に関する。
近年、スマートファクトリーに代表されるように工場のオープン化が進み、工場内の機器を制御するプログラマブルコントローラ(以下、PLC(Programmable Logic Controller))を、公衆網を経由して遠隔地から制御することにより、工場内の機器を制御することが可能となってきた。PLCの異常を検知する技術として、特開2013−143077号公報(特許文献1)がある。
特許文献1には、「制御対象5を制御するPLC1の動作状態を監視するPLC監視方法であって、PLC1bは、自身とは別のPLC1aから、このPLC1aで実行されているユーザプログラムが出力した制御命令を取得し、取得した制御命令を基に、検証用データを作成することを特徴とする。そして、PLC1bは、検証用データを用いて、制御命令の送信元のPLC1aがウィルスに感染していないか否かを検証したり、検証用データをPC2へ送信し、PC2がこの検証用データを表示装置に表示することで、ユーザがPLC1aのウィルスの感染を検証したりする。」と記載されている(要約参照)。
特開2013−143077号公報
特許文献1に記載の技術において、スレーブ側のPLC検証用データを生成し、生成した検証用データを用いてマスタ側のPLCの異常を検知するが、マスタ側のPLCはスレーブ側の当該生成処理及び当該検知処理の間も、制御対象機器に制御命令を送信している。つまり、特許文献1に記載の技術は、機器の連続的な正常稼働を求められる産業制御システムにおいて、連続的な正常稼働を担保することができない。本発明の一態様は、機器に異常が起きたことを素早く検知し、機器を継続して正常に動作させる事を目的とする。
上記課題を解決するために、本発明の一態様は、以下の構成を採用する。ネットワーク装置と、前記ネットワーク装置に接続された運用系制御装置と、待機系制御装置と、を含む制御システムであって、前記運用系制御装置は、前記ネットワーク装置を介して前記運用系制御装置と接続された機器を制御し、前記ネットワーク装置は、前記機器の状態を計測する監視センサに接続され、前記監視センサによる計測値を受信し、前記受信した計測値が予め定められた範囲に含まれないと判定した場合、前記運用系制御装置と前記機器との接続を解除し、かつ前記ネットワーク装置を介して前記待機系制御装置と前記機器とを接続する、切替え処理を実行し、前記待機系制御装置は、前記切替え処理が実行された後、前記機器を制御する、制御システム。
本発明の一態様によれば、機器に異常が起きたことを素早く検知し、機器を継続して正常に動作させることができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
実施例1における産業制御システムの構成例を示す説明図である。 実施例1における、第1の攻撃を受けた産業制御システムの処理の一例を示すシーケンス図である。 実施例1における、第2の攻撃を受けた産業制御システムの処理の一例を示すシーケンス図である。 実施例1におけるゲートウェイのハードウェア構成例を示すブロック図である。 実施例1におけるゲートウェイの他のハードウェア構成例を示すブロック図である。 実施例1におけるゲートウェイの構成例を示すブロック図である。 実施例1における機器情報テーブルの一例である。 実施例1における物理ポート管理テーブルの一例である。 実施例1におけるスイッチテーブルの一例である。 実施例1における冗長パス登録テーブルの一例である。 実施例1におけるゲートウェイの切替え処理の一例を示す概要図である。 実施例1におけるセンサデータテーブルの一例である。 実施例1における、産業制御システムが第1の攻撃を受けた場合における監視結果テーブルの例である。 実施例1における、産業制御システムが第2の攻撃を受けた場合における監視結果テーブルの例である。 実施例1におけるゲートウェイの各データベースの設定処理の一例を示すフローチャートである。 実施例1における運用開始後のゲートウェイの処理の一例を示すフローチャートである。 実施例1における運用開始後のゲートウェイによる判定のアルゴリズムの一例を示すテーブルである。
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
図1は、本実施例のゲートウェイを含む産業制御システムの構成例を示す説明図である。産業制御システム10は、例えば、SCADA設計ツール104、ゲートウェイ105、運用コントローラ106、待機コントローラ107、フィールド機器110、及び監視センサ111を含む。ゲートウェイ105は、ネットワーク装置の一例である。以下、運用コントローラ106及び待機コントローラ107を特に区別する必要が無い場合、単にコントローラとも呼ぶ。
産業制御システム10は、例えば、階層的にネットワークを構成する。階層的なネットワークは、上位階層から順番に情報ネットワーク、制御情報ネットワーク、コントロールネットワーク102、フィールドネットワーク103を含む。図1では、情報ネットワークと制御情報ネットワークからなるネットワークを上位ネットワーク101として纏めて簡略化して記載している。
情報ネットワークは、例えば、オフィス内のネットワークであり、情報ネットワーク内にパソコンや外部ネットワークとの接続サーバ等が置かれる。制御情報ネットワークは、製造スケジューリングの管理、製造実績の収集、工程の進捗管理等が行われる工場内のネットワークであり、制御情報ネットワーク内にパソコンやサーバ等が置かれる。また、オフィスと工場を隔てる情報ネットワークと制御情報ネットワークの間にファイアウォールを入れてセキュリティを確保する運用が一般的である。
上位ネットワーク101において、例えば、標準のイーサネット(登録商標、以下同)が使用される。コントロールネットワーク102は、例えば、主に制御装置間の情報交換を行い、生産情報をリアルタイムで把握しコントロールするネットワークである。
図1では、PLC等のコントローラ、及びコントローラの制御プログラムを作成するSCADA設計ツール104が、ネットワーク装置の一例であるゲートウェイ105に接続されている。コントローラは例えば、論理制御装置である。コントローラは、制御プログラムを保持する。SCADA設計ツール104は、例えば、プロセッサ、メモリ、入出力インタフェース、及び通信インタフェースを含む計算機によって構成される。SCADA設計ツール104は、例えば、入出力インタフェースを介して入力装置及び出力装置(表示装置)に接続される。SCADA設計ツール104は、コントローラを管理する管理制御装置でもあり、コントローラの制御プロセスの状態表示や制御プログラムの書き込みや書き換え設定をすることが可能である。コントローラは、DCS(Distributed Control System)を含む。
フィールドネットワーク103は、工場のライン内の装置制御を行うためのネットワークであり、フィールド機器110とコントローラとの間の通信を行うためのネットワークである。フィールド機器110は、アクチュエータ等の工場に設置される機器である。フィールド機器110は、流量センサ及び制御バルブをセンサバスで集約したリモートI/O(Input/Output)等を含む。
コントロールネットワーク102とフィールドネットワーク103では、例えば、標準のイーサネットとは異なる産業用イーサネットが利用されてもよい。産業用イーサネットは、FL−Net(登録商標、以下同)、Ethernet/IP(登録商標、以下同)、Profinet(登録商標、以下同)、EtherCAT(登録商標、以下同)、CC−LinK IE(登録商標、以下同)等を含む。以下、コントロールネットワーク102とフィールドネットワーク103において、産業用イーサネットが利用されているものとする。
コントローラは、コントロールネットワーク102とフィールドネットワーク103に挟まれた位置にあり、上位と下位のネットワークでは異なるプロトコルで通信を行うことが一般的である。なお、本実施例では、産業制御システム10は工場のフィールド機器を制御する例を説明するが、産業制御システム10は、例えば、石油プラント又は化学プラント等に設置された機器を制御してもよいし、自動車のECU(Engine Control Unit)を制御ししてもよい。
次に外部ネットワークからの攻撃について説明する。近年、工場等の産業制御システムは、外部ネットワークとの接続をオープン化することにより、多角化するサイバー攻撃に曝される可能性が高くなり、サイバー攻撃に対して高いセキュリティを確保することが求められる。そこで本実施形態の産業制御システム10においては、悪意ユーザ端末100による攻撃が上位ネットワーク101を抜けた場合であっても、ゲートウェイ105が当該攻撃によるフィールド機器110の異常動作を即時に検出する。
本実施形態では、悪意ユーザ端末100が、インターネット網等を通じて産業制御システム10に侵入し、許可されたIPアドレスに成り済まして、上位ネットワーク101を抜け、コントロールネットワーク102に接続されたSCADA設計ツール104又は運用コントローラ106に不正アクセスを行う例を説明する。
攻撃1は、SCADA設計ツール104に不正アクセスを行い、SCADA設計ツール104を介して運用コントローラ106が保持する制御プログラムを書き換える攻撃である。悪意ユーザ端末100は、攻撃1によって、フィールド機器110の破壊や暴走、品質粗悪品を生産させるためのデータの改竄等を実行する。
攻撃2は、悪意ユーザ端末100が直接、運用コントローラ106が保持する制御プログラムに不正アクセスを行う攻撃である。悪意ユーザ端末100が、攻撃2を実行する場合のように、運用コントローラ106のメモリ上に直接書き込み可能であれば、運用状態中のシーケンス変更が容易に行える。つまり攻撃2は、攻撃1と同様、フィールド機器110に対して深刻な状態を引き起こす。なお、IPアドレスの成り済まし以外の侵入方法として、ウイルスに感染した管理端末のソフトウェアを経由して、バックドアが開けられて侵入するケースがある。
ゲートウェイ105は、コントロールネットワーク102を内部に取り込むため、複数の物理ポートを有する。ゲートウェイ105は、複数の物理ポートを持つためHUBとしてのスイッチング機能127を搭載している。
物理ポート601は、上位ネットワーク101との接続ポートである。物理ポート602は、SCADA設計ツール104との接続ポートである。物理ポート603は、運用コントローラ106の上位ネットワーク側の接続ポートである。物理ポート604は、運用コントローラ106の下位ネットワーク側の接続ポートである。物理ポート605は、待機コントローラ107の下位ネットワーク側の接続ポートである。物理ポート606は、フィールドネットワーク103との接続ポートである。
物理ポート607は、監視センサ111との接続ポートである。本実施例では、物理ポートを用いた接続が記載しているが、各ネットワークとゲートウェイ105との接続においては、無線ネットワークによる接続が用いられてもよい。
ゲートウェイ105は、コントロールネットワーク102を内部に取り込み、運用コントローラ106の上位のネットワークと下位のネットワークの両方を跨ぐ位置に配備されている。そのため、ゲートウェイ105は、複数の産業用イーサネットのプロトコルをサポートしている。
ゲートウェイ105は、物理ポート607を使用し、フィールド機器110を直接監視する監視センサ111を収容する。監視センサ111は、フィールド機器110の状態を計測する。フィールド機器110の状態は、フィールド機器110が設置された環境を含む。監視センサ111は、振動、歪み、音、温度、湿度、加速度、及び角速度等の1以上の項目を測定可能なセンサ、並びに画像解析用のカメラを含む。監視センサ111による測定項目は、監視対象のフィールド機器110の異常検出手段に合わせて、予め定められている。
監視センサ111は、例えば、取得したデータを、電流や電圧等に変換し、さらにデジタル信号として扱えるようにA/D(Analog to Digital)変換した後、特定のプロトコルに変換後のセンサ情報をマッピングした上でパケットとして扱える状態で、ゲートウェイ105の物理ポート607に入力する。当該特定のプロトコルは、MQTT(Message Queueing Telemetry Transport)等を含む。なお、本実施形態においてパケットは、OSI参照モデルのネットワーク層のデータユニットのみを示す表現ではなく、OSI参照モデルの他のレイヤにおけるデータユニットであってもよい。
ゲートウェイ105のセンサデータ異常検出機能122は、監視センサ111から受信したセンサデータを解析してフィールド機器110の異常発生を検知する。ゲートウェイ105のセンサデータ異常検出機能122は、例えば、ゲートウェイ105を設置する保守者等によって予め設定されたパラメータ範囲(上限値、下限値)と、監視センサ111から取得した生のセンサデータと、の比較をリアルタイムに行い異常を検知する。センサデータ異常検出機能122は、統計学的手法に基づいたはずれ値検知等を使用して当該比較を実行してもよい。なお、パラメータは上限値及び下限値で特定されていなくてもよく、例えば、分布範囲で特定されてもよい。
なお、上述したパラメータ範囲は、保守者が介在せずに設定されてもよい。具体的には、例えば、センサデータ異常検出機能122は、ゲートウェイ105の運用前に、フィールド機器110が正常に動いている段階で、取得するパラメータ範囲を、センサデータから学習してもよい。なお、図12では、各監視センサ111に対して、入力範囲が1つ設定されている例が記載されているが、各監視センサ111に対して複数の入力範囲が設定されてもよい。また、各入力範囲は1つの値からなってもよい。
異常検知における統計学的手法を用いた計算のように、ゲートウェイ搭載のCPUが当該計算を実行することが難しい場合は、センサデータ異常検出機能122はセンサデータを一度、外部サーバ等に転送し、別途、上限値、下限値のパラメータだけをゲートウェイ105に戻す方法でも良い。センサデータ異常検出機能122は、例えば、計算量及びデータ量等に応じて、当該計算をゲートウェイ105が実施するか、又は外部サーバが実施するかを判断してもよい。
ゲートウェイ105の切替え処理機能123は、センサデータ異常検出機能122からの異常検知をトリガにして、運用コントローラ106から待機コントローラ107に切替え処理を行う。切替え処理機能123は、例えば、外部ネットワークからの不正アクセスを判定する不正判定機能125による出力結果に関わらず、当該トリガに従って切替え処理を行う。当該切替え処理によって、センサデータに異常が発生しても、フィールド機器110を継続して制御することができる。
待機コントローラ107は、コントロールネットワーク102から切り離した状態、即ち接続無しの状態で、かつホットスタンバイの状態で運用される。待機コントローラ107は、悪意ユーザ端末100による外部ネットワークからの攻撃1、及び攻撃2等を受けないように、完全に上位ネットワークから切り離されている。
本実施例においては、産業制御システム10の運用前に、例えば、運用コントローラ106から待機コントローラ107に制御プログラムがコピーされる。つまり、例えば、フィールド機器110が正常に動いている段階での制御プログラムが、運用コントローラ106から外部メディアを経由して待機コントローラ107にバックアップとしてコピーされる。
運用コントローラ106と待機コントローラ107は、二重化同期ケーブル108を通じて同期した運用がなされる。制御プログラムのシーケンスについて、運用コントローラ106と待機コントローラ107でタイミングを合わせるための同期情報が、二重化同期ケーブル108を介してやり取りされる。
本実施例においてゲートウェイ105が切替え処理機能123を持つことにより、産業制御システム10において独立した二系統を準備したコントローラであっても、フィールドネットワーク103以下の構成を一重化構成で済むようにしている。ゲートウェイ105の中の切替え処理機能123は、運用コントローラ106と待機コントローラ107から選択した一方のからの出力を出力する。また、コントローラに対する入力は、運用コントローラ106と待機コントローラ107の両方に入力される。これにより待機コントローラ107は、運用コントローラ106と完全に同期させたホットスタンバイ運用が可能となる。
また、1つのユニットに二系統(二重化構成)を入れたコントローラ(PLC)も存在する、即ち1つのユニットが即ち運用コントローラ106と待機コントローラ107を含む。当該コントローラにおける、運用コントローラ106に相当する部及び待機コントローラ107に相当する部それぞれと、上位のネットワークと、の接続が完全に独立していれば、産業制御システム10に当該コントローラを用いても本実施例と同じ構成が可能である。
ゲートウェイ105は、内部に取り込んだコントロールネットワーク102上を通過するパケットを監視する制御パケット監視機能124を搭載している。制御パケット監視機能124の監視対象は、上位ネットワーク101からSCADA設計ツール104及び運用コントローラ106へのアクセス、並びにSCADA設計ツール104から運用コントローラ106へのアクセスにおけるパケットである。
ゲートウェイ105のスイッチング機能127は、スイッチテーブルを参照して内部のパスを管理する。制御パケット監視機能124は、当該パスに紐付けて、受信した制御パケットに含まれる制御コマンドを時系列に並べて情報を保持してもよい。不正判定機能125は、センサデータ異常検出機能122からの通知と、制御パケット監視機能124が保持する時系列の制御コマンド情報と、を用いて外部ネットワークからの不正アクセスの有無を判定する。
悪意ユーザ端末100が、許可されたIPアドレスに成り済まして侵入する場合や、ウイルスに感染した管理端末のソフトウェアを経由して、バックドアを開けて侵入する場合は、個々の制御パケットのみ監視によって正常なアクセスか、不正なアクセスかは判断できない。不正判定機能125は、実際のフィールド機器110の異常発生と、制御パケット情報の時系列と、から外部ネットワークからの不正アクセスを正しく判断することができる。
ゲートウェイ105は、外部ネットワークからの不正アクセスを遮断するパケット遮断機能126を搭載している。パケット遮断機能126は、不正判定機能125が特定した不正アクセスのパス情報に基づいて、不正アクセスが行われたパスを遮断する。即ち、当該パスに対応する送信元から、当該パスに対応する送信先へのパケットの送信が停止される。パケット遮断機能126は、IPアドレス単位でパスを遮断してしまうと、正規ユーザ端末のIPアドレスが通過出来ないため、許可されたIPアドレスに成り済ましている悪意ユーザ端末100のアクセスを排除するには、さらにソース元のMACアドレスを参照してフィルタリングする必要がある。
図2は、悪意ユーザ端末100が攻撃1を行った場合における産業制御システム10の処理の一例を示すシーケンス図である。図2の例ではゲートウェイ105は運用中である。運用中のゲートウェイ105の制御パケット監視機能124は、コントロールネットワーク102上を通過するパケットを監視する(S201)。外部ネットワークを通じて産業制御システム10に侵入した悪意ユーザ端末100は、SCADA設計ツール104のコントローラ用プログラムデータベースを狙ってデータベース書き換え設定(攻撃1)を実施している(S202)。コントローラ用プログラムデータベースには、運用コントローラ106が保持する制御プログラムを更新するための、更新用制御プログラムが格納されている。
SCADA設計ツール104は、データベース書き換え設定に従って、コントローラ用プログラムデータベースを書き換える(S203)。SCADA設計ツール104は、データベース書き換え設定に対する応答として、データベース書き換え完了通知を、悪意ユーザ端末100に返信する(S204)。
運用中のゲートウェイ105の制御パケット監視機能124は、コントロールネットワーク102上を通過するパケットを監視しているが、不正判定機能125は、悪意ユーザ端末100による不正なアクセスとはこの時点では判定しない。つまり、悪意ユーザ端末100が許可されたIPアドレスに成り済まして侵入する場合、不正判定機能125は、この時点では、不正なアクセスが発生したか否かを判定しない。これは、正規ユーザ、例えば、保守者が、コントローラ用プログラムデータベースを書き換える可能性があるからである。
ゲートウェイ105の制御パケット監視機能124は、ステップS202において上位ネットワーク101からSCADA設計ツール104に対してデータベース書き換え設定が行われたことを制御パケットの監視により把握している。同様に、制御パケット監視機能124は、ステップS204においてSCADA設計ツール104が上位ネットワーク101に対してデータベース書き換え完了通知を返信したことを制御パケットの監視により把握している。
続いて、SCADA設計ツール104は、運用コントローラ106が保持する制御プログラムを書き換えるための制御プログラムの書き換え設定を、運用コントローラ106に対して送信する(S205)。運用コントローラ106は、制御プログラム書き換え設定に従って、制御プログラムを書き換える(S207)。運用コントローラ106は、制御プログラム書き換え設定に対する応答として、制御プログラム書き換え完了通知を、SCADA設計ツール104に対して返信する(S208)。
なお、制御プログラムの書き換え設定と制御プログラム書き換え完了通知は、SCADA設計ツール104と運用コントローラ106間の制御信号のやり取りだが、ゲートウェイ105の制御パケット監視機能124は、コントロールネットワーク102上を通過するパケットを監視できる。従って、制御パケット監視機能は、制御プログラム書き換え設定を監視し(S206)、さらに書き換え完了通知を監視し(S208)、監視した制御パケット情報を保持することができる。
運用コントローラ106は、制御プログラムが書き換えられた後は、新しい制御プログラムで起動し、運用が開始される。運用コントローラ106は、新しい制御プログラムを用いて、フィールド機器110に対する制御を開始する(S210)。
運用コントローラ106は、悪意ユーザ端末100によって改竄された制御プログラムを用いているため、フィールド機器110で異常が発生する。異常発生のタイミングは、悪意ユーザ端末100によるデータベースの改竄内容次第である。新しい制御プログラムで起動直後、及び運用開始からかなりの時間が経過した時は、いずれも異常発生タイミングの一例である。
監視センサ111は、フィールド機器110を監視するためにセンサデータを取得し(S211)、ゲートウェイ105に送信する(S212)。本実施例では、フィールド機器110は、自身に発生した異常を検出しない。フィールド機器110は運用コントローラ106からの指示で動いているため、フィールド機器110を監視する監視センサ111が取得するセンサデータに基づいて、ゲートウェイ105のセンサデータ異常検出機能122が異常発生を検出する(S213)。なお、フィールド機器110が、自身に発生した異常を検出し、ゲートウェイ105に異常検出を報告してもよい。
センサデータ異常検出機能122が異常発生を検出すると、切替え処理機能123は切替え処理を実施する(S214)。具体的には、切替え処理機能123は、運用コントローラ106から待機コントローラ107へと運用を切替える。切替え処理実施後は、待機コントローラ107が、フィールド機器110を制御する(S218)。当該切替え処理によりフィールド機器110は継続して制御される。
次に、ゲートウェイ105の不正判定機能125は、フィールド機器110で異常が発生したこと、及びデータベース書き換え設定202が起こったことから不正アクセスが発生したと判定する(S215)。パケット遮断機能126は、不正アクセスのパスに対して遮断処理を実施する(S216)。当該処理により、悪意ユーザ端末100からの次の不正アクセスが遮断される。ゲートウェイ105は、切替え処理機能123は切替え処理を実施したことを、パケット遮断機能126は遮断処理を実施したことを、保守者に通知する(S217)。なお、本実施例における保守者への通知は、例えば、ゲートウェイ105に接続された保守者用端末に送信され、例えば、保守者用端末の表示画面等に表示される。また、SCADA設計ツール104が保守者用端末の機能を有していてもよい。
図3は、悪意ユーザ端末100が攻撃2を行った場合における産業制御システム10の処理の一例を示すシーケンス図である。図2との違いを説明する。ステップS201に続いて、外部ネットワークを通じて産業制御システム10に侵入した悪意ユーザ端末100は、運用コントローラ106に対して、運用コントローラ106が保持する制御プログラムの書き換え設定(攻撃2)を送信する(S302)。攻撃2は、運用コントローラ106に搭載されるCPUに付随するメモリを直接操作する攻撃である。
運用コントローラ106は、悪意ユーザ端末100からの制御プログラム書き換え設定に従って、制御プログラムを書き換える(S303)。運用コントローラ106は、制御プログラム書き換え設定に対する応答として、制御プログラム書き換え完了通知を、悪意ユーザ端末100に対して返信する(S304)。運用コントローラ106は、新しい制御プログラムを用いて、フィールド機器110に対する制御を開始する(S310)。続いて、ステップS211に遷移し、図2と同様の処理が実行される。
運用コントローラ106のメモリが操作され、運用中の制御プログラムが突然変更されたため、フィールド機器110に異常が発生する。また、図3の処理において制御パケット監視機能124は、上位ネットワーク101から運用コントローラ106に対して制御プログラム書き換え設定が送信されたことを把握している。同様に、制御パケット監視機能124は、運用コントローラ106から上位ネットワーク101に対して制御プログラム書き換え設定完了通知を返信したことを把握している。
図4は、ゲートウェイ105のハードウェア構成例を示すブロック図である。ゲートウェイ105は、例えば、内部通信IF(Interface)401、外部通信IF402、L2SW(Layer 2 Switch)405、CPU(Central Processing Unit)407、主記憶装置409、及び補助記憶装置410を備える。
内部通信IF401は、USB(Universal Serial Bus)等のシリアル通信インタフェースである。内部通信IF401は、保守者が操作する端末PCから直接ゲートウェイ105のCPU407に直接アクセス可能なデバッグインタフェースである。内部通信IF401は、例えば、シリアルバス404によって、CPU407と接続される。シリアルバス404は、電気的に接続される。
外部通信IF402は、例えば複数のポートを備え、LAN(Local Area Network)ケーブル等の有線ネットワーク回線に接続する回路である。また、外部通信IF402は、無線ネットワーク回線にも接続する。L2SW405は、CPU407の設定に基づいてIPアドレスやMACアドレスやVLANなどの識別IDで、主信号パケットを振り分ける機能を持つ半導体集積回路である。
外部通信IF402は、例えば、主信号の接続バス403によって、L2SW405と接続される。L2SW405に複数のポート分の主信号の接続バス403が集約されて、CPU407に主信号を束ねたバス406で接続される。主信号を束ねたバス406は、電気的に接続される。
主記憶装置409は、揮発性の記憶素子であるRAM(Random Access Memory)、及び不揮発性の記憶素子であるROM(Read Only Memory)を含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic RAM)、SRAM(Static RAM)、SDRAM(Synchronus DRAM)等の半導体メモリを含み、CPU407が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
CPU407は、プロセッサを含み、不揮発性の記憶媒体のROMに格納されているプログラムをロードしてRAMに展開して、当該プログラムが示す処理を行う。RAMはプログラムの一時的な記憶領域や作業領域、及び外部通信IF402からのパケットバッファ等に使用される。
補助記憶装置410は、CPU407上で動作するプログラムが扱うデータを格納する。補助記憶装置410は、例えば、HDD(Hard Disk Drive)、メモリカード等の不揮発性の記憶媒体を含み、CPU407が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。CPU407は、例えば、CPUバス408によって、主記憶装置409及び補助記憶装置410に接続される。CPUバス408は、電気的に接続される。
なお、例えば、CPU407が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介してゲートウェイ105に提供され、非一時的記憶媒体である不揮発性の補助記憶装置410に格納される。このため、ゲートウェイ105は、リムーバブルメディアからデータを読み込むインタフェースを有するとよい。
図5は、ゲートウェイ105の別のハードウェア構成例を示すブロック図である。図4との違いは、図4のL2SW405が、ASIC(Application Specific Integrated Circuit)/FPGA(Field Programmable Gate Array)501と置き換わっている点である。ASIC/FPGA501は、L2SWの機能を有し、図4のハードウェア構成においてCPU407が処理するパケット処理等のプログラムが示す機能の一部を専用回路として有する。図5のハードウェア構成において、負荷の重い処理をCPU407ではなくASIC/FPGA501が実行することにより、性能を抑えた安価なCPU407を利用することができる。
なお、CPU407がASIC/FPGA501を制御することがあるため、CPU407とASIC/FPGA501は、CPUバス408で互いに接続される。なお、図4と図5に示されるゲートウェイ105のハードウェア構成は例であり、実施の形態に応じて、適宜、構成要素の省略、置換、及び追加が可能である。例えば、ゲートウェイ105は、補助記憶装置410を備えていなくてもよい。
図6は、ゲートウェイ105の構成例を示すブロック図である。ゲートウェイ105は、物理ポート601〜607を含む。図1及び図6では、ゲートウェイ105が7つの物理ポートを含む例を記載しているが、ゲートウェイ105は8以上の物理ポートを含んでもよい。例えば、ゲートウェイ105は、16、32、又は48の物理ポートを含んでもよい。ゲートウェイ105は、上位ネットワーク101からの運用コントローラ106へのコマンド監視、及び下位ネットワークで運用コントローラ106から待機コントローラ107への切替えを行うため、運用コントローラ106の上位側に接続される物理ポート603及び運用コントローラ106の下位側に接続される物理ポート604を含む。
ゲートウェイ105は、例えば、パケット処理部608、スイッチ制御部609、パケット解析転送部610、不正アクセス判定部611、センサデータ異常検出部612、制御パケット監視部613、機器情報DB(Data Base)614、スイッチテーブルDB615、センサデータDB616、及びアクセス監視結果DB617を含む。
なお、CPU407は、主記憶装置409にロードされたパケット処理プログラムに従って動作することで、パケット処理部608として機能し、主記憶装置409にロードされたスイッチ制御プログラムに従って動作することで、スイッチ制御部609として機能する。ゲートウェイ105に含まれる他の部についても同様である。ゲートウェイ105が図5に示したハードウェア構成を有する場合、ゲートウェイ105に含まれる少なくとも1つの部が、ASIC/FPGA501によって実現されていてもよい。ゲートウェイ105に含まれる各DBは、主記憶装置409又は補助記憶装置410に格納されている。
パケット処理部608は、各物理ポートが収容する産業用イーサネットのプロトコルの終端処理と生成処理を行う。ゲートウェイ105内部は、標準イーサネットでパケット処理を行う。また、パケット処理部608は、各物理ポートからの入力に対して、多重化してパケット処理を行い、また、各物理ポートへのパケットを出力する際における振分け処理を実施する。
スイッチ制御部609は、スイッチテーブルDB615を参照して、受信したパケットをパスID単位で出力ポートへ振り分ける。また、スイッチ制御部609は、パスID単位で、切替え制御や遮断制御を行う。当該切替え制御は、ゲートウェイ105からのパケットを出力するコントローラを、運用コントローラ106から待機コントローラ107へ切替える処理を含む。当該遮断制御は、外部ネットワークからの攻撃に関して上位ネットワーク101からの入力パケットを遮断する処理を含む。
パケット解析転送部610は、ゲートウェイ105への設定情報パケット、監視センサ111が収集するセンサデータのパケット、及びコントロールネットワーク102間でやり取りされる制御パケット(設定パケット及び通知パケットを含む)、のフレームを解析し、センサデータ異常検出部612や制御パケット監視部613に振り分ける。また、制御パケット監視部613が制御パケットの監視は行うが、ゲートウェイ105内で制御パケットを終端することは無いので、パケット解析転送部610は、パケットを物理ポートに転送するために、制御パケットをスイッチ制御部609に送る。
センサデータ異常検出部612は、監視センサ111から受信したパケット情報を集約し、集約したパケット情報とセンサデータDB616に格納された情報とを比較する。センサデータ異常検出部612は、比較結果から異常を検出した場合は、不正アクセス判定部611に異常検出を通知する。
制御パケット監視部613は、受信した制御パケットの情報を集約し、集約結果に基づいてアクセス監視結果DB617を更新する。不正アクセス判定部611は、センサデータ異常検出部612からの異常通知を受信するとアクセス監視結果DB617を参照し、外部ネットワークからの不正アクセスの有無を判定し、不正アクセスが発生したアクセスパスを特定して、特定した結果をスイッチテーブルDB615に反映する。
図1を用いて説明した各機能と、図6を用いて説明した各部及び各DBと、の対応について説明する。図1はゲートウェイ105の各機能を示す概要図であり、実際のゲートウェイ105の機能ブロック配備位置とは異なる。センサデータ異常検出機能122は、センサデータ異常検出部612によって実現される。制御パケット監視機能124は、制御パケット監視部613によって実現される。不正判定機能125は、不正アクセス判定部611によって実現される。スイッチング機能127は、スイッチ制御部609によって実現される。切替え処理機能123及びパケット遮断機能126は、スイッチ制御部609によって実現される。
図7及び図8を用いて機器情報DB614を説明する。機器情報DB614は、ゲートウェイ105の情報を格納する。機器情報DB614は、例えば、機器情報テーブル700を含む。図7は、機器情報DB614に格納されている機器情報テーブルの一例である。
なお、本実施例においてゲートウェイ105が使用する情報がテーブルである例を説明するが、本実施形態において、産業制御システム10が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
機器情報テーブル700は、例えば、MACアドレス欄701、設定IPアドレス欄702、異常検出機能欄703、切替え機能欄704、パケット監視機能欄705、及びパケット遮断機能欄706を含む。
MACアドレス欄701は、ゲートウェイ105の個体を識別するMACアドレスを格納する。MACアドレスは、例えば、ゲートウェイ105のフラッシュメモリ等の不揮発性メモリに予め書き込まれている。設定IPアドレス欄702は、設定IPアドレスを格納する。設定IPアドレスは、例えば、ゲートウェイ105を設置時に保守者より設定される。
異常検出機能欄703、切替え機能欄704、パケット監視機能欄705、及びパケット遮断機能欄706は、それぞれ異常検出機能、切替え機能欄、パケット監視機能、及びパケット遮断機能が有効であるか無効であるかを示す値を格納する。各機能の有効/無効は、例えば、保守者によって予め選択されている。また、例えば、保守者は、フィールド機器110が安定的に運用された後の適切なタイミングで各機能の有効/無効を設定してもよい。
切替え機能は、スイッチ制御部609による、運用コントローラ106と待機コントローラ107との切替え機能である。パケット監視機能は、制御パケット監視部613によるコントロールネットワーク102間でやり取りされる制御パケットを監視する機能である。パケット遮断機能は、外部ネットワークからの攻撃を、スイッチ制御部609が自律して遮断する機能である。
図8は、機器情報DB614に格納されている物理ポート管理テーブルの一例である。機器情報DB614は、例えば、ゲートウェイ105内の物理ポートの情報を管理する物理ポート管理テーブル710を含む。
物理ポート管理テーブル710は、例えば、ポート番号欄707、ポート有効/無効欄708、及びプロトコル欄709を含む。ポート番号欄707は、各物理ポートを識別するポート番号を格納する。
ポート有効/無効欄708は、対応する物理ポートが有効であるか無効であるかを示す値を格納する。プロトコル欄709は、例えば、対応する物理ポートが収容する産業用イーサネットのプロトコルを格納する。物理ポート管理テーブル710の情報は、例えば、保守者によって予め設定されている。
以下、本実施例では、物理ポート601のポート番号が1、物理ポート602のポート番号が2、物理ポート603のポート番号が3、物理ポート604のポート番号が4、物理ポート605のポート番号が5、物理ポート606のポート番号が6、物理ポート607のポート番号が7であるものとする。
図8の例では、物理ポート601(ポート番号1)の上位ネットワーク101との接続及び物理ポート607(ポート番号7)の監視センサ111との接続に、標準イーサネットが用いられている。また、物理ポート602(ポート番号2)のSCADA設計ツール104との接続及び物理ポート603(ポート番号3)の運用コントローラ106の上位ネットワークとの接続に、Ethernet/IPが用いられている。
また、物理ポート604(ポート番号4)の運用コントローラ106の下位ネットワークとの接続、物理ポート605(ポート番号5)の待機コントローラ107の下位ネットワークとの接続、及び物理ポート606(ポート番号6)のフィールドネットワーク103との接続に、EtherCATが用いられている。図7Bにおける、各プロトコルの設定は一例である。
図9及び図10を用いてスイッチテーブルDB615を説明する。スイッチテーブルでDB615は、例えば、スイッチテーブル800及び冗長パス登録テーブル1000を格納する。図9は、スイッチテーブルDB615に格納されているスイッチテーブルの一例である。スイッチテーブル800は、例えば、パスID欄801、入力ポート番号欄802、出力ポート番号欄803、SA(送信元)IPアドレス欄804、DA(送信先)IPアドレス欄805、パケット監視欄806、遮断/透過欄807、及びコメント欄808を含む。
パスID801欄はパスIDを保持する。入力ポート番号欄802、出力ポート番号欄803、SAIPアドレス欄804、DAIPアドレス欄805は、それぞれ対応するパスIDのパスに対応する、入力ポート番号、出力ポート番号、送信元IPアドレス、及び送信先IPアドレスを保持する。
以下、図9の例が示すパスについて説明する。パスID「001」のパスは、上位ネットワーク101からSCADA設計ツール104へのパスである。当該パスにおける上位ネットワーク101からの入力は、物理ポート601(ポート番号1)で、SCADA設計ツール104への出力は、物理ポート602(ポート番号2)である。当該パスにおける、SAIPアドレスは上位ネットワークの接続先であり、DAIPアドレスはSCADA設計ツール104である。
また、パスID「002」のパスは、パスID「001」のパスと逆方向のパスである。パスID801「001」のパスとパスID「002」のパスは対で、双方向パスである。パスID「011」のパスは、監視センサ111からゲートウェイ105へのパスである。当該パスにおいて、監視センサ111から物理ポート607(ポート番号7)に入力がなされ、ゲートウェイ105から先への出力は無い。当該パスにおける、SAIPアドレスは監視センサ111のIPアドレスであり、DAIPアドレスはゲートウェイ105のIPアドレスである。
パスID「012」のパスは、上位ネットワーク101からゲートウェイ105へのパスである。当該パスにおいて、上位ネットワーク101から物理ポート601(ポート番号1)に入力がなされ、ゲートウェイ105から先への出力は無い。当該パスにおける、SAIPアドレスは上位ネットワーク101のIPアドレスであり、DAIPアドレスはゲートウェイ105のIPアドレスである。
パスID「013」のパスは、パスID「012」のパスと逆方向のパスである。パスID「012」のパスとパスID「013」のパスは対のパスであり、双方向パスとである。
同様に、パスID「003」のパスとパスID「004」のパスが、パスID「005」のパスとパスID「006」のパスが、パスID「007」のパスとパスID「008」のパスが、パスID「009」とパスID「010」のパスが、それぞれ対のパスであり双方向パスである。
これらの双方向パスを形成するパスの組み合わせは、入力ポート番号と出力ポート番号が設定されるため、ゲートウェイ105の中でパケットを終端することは無く、パケットをスルーする。その他のパスIDのパスについて、ゲートウェイ105の周辺接続環境を元に構成されており説明を省略する。
パケット監視欄806は、対応するパスにおけるパケット監視が有効であるか無効であるかを示す値を格納する。パケット監視欄806における有効/無効は、例えば、保守者によって予め設定される。遮断/透過欄807は、各パスIDに対応するパスにおける透過/遮断を示すモニタ情報を格納する。機器情報テーブル700のパケット監視機能欄705の値が「有効」かつパケット遮断機能欄706の値が「有効」である場合、ゲートウェイ105は、外部ネットワークからの攻撃に対して、パス単位で遮断を自律で実施することができる。
例えば、前述の攻撃1が発生した場合、攻撃1は上位ネットワーク101からSCADA設計ツール104への攻撃であるため、スイッチ制御部609は、ステップS216においてパスID「001」のパスを遮断する。また、前述の攻撃2が発生した場合、攻撃2は上位ネットワーク101から運用コントローラ106の上位ネットワークへの攻撃であるため、スイッチ制御部609はステップS216において、パスID「003」のパスを遮断する。
なお、スイッチテーブル800は、各パスのSA(送信元)MACアドレスをさらに管理してもよい。スイッチテーブル800におけるMACアドレスは、例えば、SAIPアドレス設定時にゲートウェイ105によって自動で取得されてもよいし、保守者によって予め設定されてもよい。例えば、外部ネットワークからの攻撃は、IPアドレスを詐称して侵入する可能性があるため、不正アクセス判定部611は、IPアドレスだけでなくさらにMACアドレスを参照して、パスを透過すべきか否かを判定してもよい。
図10は、スイッチテーブルDB615に格納されている冗長パス登録テーブルの一例である。冗長パス登録テーブル1000は、運用コントローラ106と待機コントローラ107を切替えるためのパスの情報を格納する。冗長パス登録テーブル1000は、例えば、冗長パスID欄1001、パスID欄1002、及び出力セレクタ設定欄1003を含む。冗長パスID欄1001は、冗長構成であるパスの組み合わせを識別するIDを格納する。パスID欄1002は、冗長構成であるパスのパスIDを格納する。出力セレクタ設定欄1003は、パス冗長構成であるパスが出力に利用されているパスか否かを示す値を格納する。
本実施例では、運用コントローラ106の下位ネットワーク側からフィールド機器110へのパスID「007」のパス及び待機コントローラ107の下位ネットワーク側からフィールド機器110へのパスID「009」のパスの組み合わせが、冗長パスを構成している。図10の例では、運用コントローラ106側のパスが利用され、待機コントローラ107側のパスは利用されていない。
図11は、ゲートウェイ105の切替え処理の一例を示す概要図である。図11には、産業制御システム10の一部が記載されている。図1においては記載を省略したが、フィールドネットワーク103はフィールド機器付随センサ1103に接続されている。フィールド機器付随センサ1103は、フィールド機器110を動かすために、フィールド機器110に付随するセンサである。コントローラは、フィールド機器110への制御コマンドを出力し、さらにフィールド機器付随センサ1103からの入力を受け付ける。コントローラは、フィールド機器付随センサ1103からの入力情報を元に、例えば既知の手法を用いてフィールド機器110を制御する。
なお、監視センサ111は、コントローラに収容されずに、ゲートウェイ105に直接収容されているため、フィールド機器110が設置済みであっても、監視センサ111を産業制御システム10に後付けすることができる。また、監視センサ111は、別の方式でフィールドネットワーク103に接続されてもよい。具体的には、例えば、監視センサ111は、コントローラに収容される、即ち監視センサ111が取得した情報はコントローラを経由してゲートウェイ105で集約される。この場合、監視センサ111のための個別のネットワークが必要なく、監視センサ111の物理的な配線、及び配置が容易である。ただし、この場合、コントローラは監視センサ111が取得した情報を転送するため、コントローラが保持する制御プログラムが変更される必要がある。
なお、ゲートウェイ105が監視センサ111からの情報を用いてフィールド機器110の異常を迅速に検知するために、本実施例では、上述したようにゲートウェイ105に監視センサが直接収容されている。
なお、前述したように運用コントローラ106と待機コントローラ107は、二重化同期ケーブル108で接続されて、両コントローラによるコマンドシーケンスの出力は同期されている。切替え処理機能123は、両コントローラからのフィールド機器110への制御コマンドのうち一方を選択して出力する、セレクタ出力を実行する。切替え処理機能123は、ゲートウェイ105が受信したフィールド機器付随センサ1103の情報を、コピーし、運用コントローラ106と待機コントローラ107の両方に入力する。以上により、フィールド機器110に異常が発生した場合において、運用コントローラ106から待機コントローラ107への切替え処理が迅速に行われる。
図12は、センサデータDB616に格納されているセンサデータテーブルの一例である。センサデータテーブル1200は、例えば、センサID欄1201、測定値欄1202、入力範囲設定値欄1203、及びフラグ欄1204を含む。なお、センサデータテーブル1200は、フラグ欄1204の値が「異常」と判定された時刻情報を保持してもよい。
センサID欄1201は、監視センサ111を識別するセンサIDを格納する。測定値欄1202は、対応する監視センサ111が測定した測定値を保持する。センサデータ異常検出部612は、各監視センサ111による測定値を対応する測定値欄1202に格納する。測定値欄1202は、最新の測定値を保持してもよいし、所定期間の測定値の平均を保持してもよいし、所定期間の測定値の時系列を保持してもよい。入力範囲設定値欄1203は、対応する測定値が正常であると判定される範囲を保持する。入力範囲設定値欄1203の範囲は、例えば、予め保守者によって設定される。フラグ欄1204は、対応する測定値が正常であるか異常であるかを示すフラグを保持する。
図12の例が示す測定値について説明する。センサID「1」の監視センサ111による測定値は、入力範囲設定値欄1203の範囲内であるため、センサデータ異常検出部612は当該測定値を正常と判定し、フラグ欄1204に「正常」を格納する。
センサID「2」の監視センサ111による測定値は、入力範囲設定値欄1203の範囲外であるため、センサデータ異常検出部612は当該測定値を異常と判定し、フラグ欄1204に「異常」を格納する。監視センサ111は、設置するフィールド機器110の用途に合わせて、用意される。図12は、2つの監視センサ111が設置されている場合の例である。
図13及び図14を用いてアクセス監視結果DB617に格納されているアクセス監視結果テーブルについて説明する。アクセス監視結果テーブルは、ゲートウェイ105が受信した制御パケットの情報を格納する。図13は、産業制御システム10が攻撃1を受けた場合におけるアクセス監視結果テーブル1300の例である。図13のアクセス監視結果テーブル1300は、攻撃1によって、コントロールネットワーク102上を通過するパケットの情報を保持する。
アクセス監視結果テーブル1300は、例えば、パスID欄1301、Type値欄1302、コマンド欄1303、及びコメント欄1304を含む。パスID欄1301は、制御パケットが通過したパスのパスIDを格納する。Type値欄1302は、制御パケットのイーサネットのヘッダのType値を格納する。コマンド欄1303は、制御パケットのコマンド情報を格納する。コメント欄1304は、パスの入力元と送信先を示す情報を格納する。
なお、アクセス監視結果テーブル1300は、コメント欄1304を含まなくてもよい。なお、例えば、制御パケット監視部613が、パケット解析転送部610から受信した制御パケットの解析結果をアクセス監視結果テーブル1300に格納する。また、図13及び図14の例では、アクセス監視結果テーブル1300は、パスID単位にコマンドの最新値のみを保持しているが、コマンドの値の時系列を保持してもよい。また、アクセス監視結果テーブル1300は、各コマンドが実施された時刻情報を保持してもよい。
図13の例が示すアクセス監視結果について説明する。パスIDが「001」であるパスは、上位ネットワーク101からSCADA設計ツール104へのアクセスするためのパスである。ステップS202、即ち攻撃1のデータベース書き換え設定のコマンドが当該パスを通過した。パスIDが「002」であるパスは、SCADA設計ツール104から上位ネットワーク101へアクセスするためのパスである。図13の例は、ステップS204のデータベース書き換え完了通知のコマンドが当該パスを通過したことを示す。
パスIDが「005」であるパスは、SCADA設計ツール104から運用コントローラ106の上位側ネットワークへアクセスするためのパスである。ステップS205の制御プログラム書き換え設定のコマンドが当該パスを通過した。パスIDが「006」であるパスは、運用コントローラ106の上位側ネットワークからSCADA設計ツール104へアクセスするためのパスである。図13の例は、ステップS208の制御プログラム書き換え完了通知のコマンドが当該パスを通過したことを示す。
図14は、産業制御システム10が攻撃2を受けた場合におけるアクセス監視結果テーブル1300の例である。図14のアクセス監視結果テーブル1300は、攻撃2によって、コントロールネットワーク102上を通過するパケットの情報を保持する。
図14の例が示すアクセス監視結果について説明する。パスIDが「003」であるパスは、上位ネットワーク101から運用コントローラ106の上位側ネットワークへアクセスするためのパスである。図14の例は、ステップS302の制御プログラム書き換え設定のコマンドが当該パスを通過したことを示す。パスIDが「004」であるパスは、SCADA設計ツール104から上位ネットワーク101へアクセスするためのパスである。図14の例は、ステップS304の制御プログラム書き換え完了通知のコマンドが当該パスを通過したことを示す。
図15は、ゲートウェイ105の登録時の各DBの設定処理の一例を示すフローチャートである。当該設定処理は、例えば、ゲートウェイ105を産業制御システム10のネットワークに設置する保守者によって実行される。保守者は、例えば、イーサネットを経由して又はUSB等によってゲートウェイ105に接続された保守者用端末等を用いて、当該設定処理を実行する。ゲートウェイ105自身の脆弱性が狙われないように、認証サービスを用いたVPN(Virtual Private Network)等を用いてよりセキュアな環境で当該設定処理が実行されることが好ましい。なお、図1及び図6には図示されていないが、例えば、ゲートウェイ105は、保守者用端末から入力された各DBの設定内容を対応するDBに書き込む機能部を有する。
まず、保守者は機器情報DB614の登録処理を実行する(S1502)。具体的には、保守者は、設定IPアドレス欄702に格納されるゲートウェイ105自身のIPアドレスを指定する。また、ステップS1502において、保守者は、物理ポート管理テーブル710の設定処理を行う。具体的には、保守者は、ゲートウェイ105が、コントロールネットワーク102上で接続する対向装置、フィールドネットワーク103上で接続する対向装置、監視センサとの接続に使用する物理ポート601〜607におけるポート有効/無効欄708の値を指定する。また、前記ポートを有効にした場合、当該ポートで収容するプロトコル、即ちプロトコル欄709の値を指定する。
次に、保守者はスイッチテーブルDB615の登録処理を実行する(S1503)。具体的には、例えば、保守者はゲートウェイ105に接続する対向装置との接続パスに対して、入力ポート番号欄802、出力ポート番号欄803、SAIPアドレス欄804、DAIPアドレス欄805の値を指定する。
なお、保守者がSAIPアドレス及びDAIPアドレスを指定せず、入出力ポート番号が指定された後にゲートウェイ105自身がネットワークから自動的に対向装置のSAIPアドレス及びDAIPアドレスを取得してもよい。また、ステップS1502において、保守者は、パスID単位でパケット監視欄806の有効/無効を設定する。
さらに、ステップS1502において、保守者は、冗長パス登録テーブル1000の設定処理、即ちコントローラの切替えに使用する冗長パスの設定を実施する。具体的には、例えば、保守者はパスID欄1002の値を指定することによりして冗長パスを登録する。また、保守者は、デフォルトの出力セレクタ設定欄1003の値を決定する。つまり、本実施例において、保守者は、どちらのコントローラが運用コントローラ106であるかを指定する。
次に、保守者はセンサデータDB616の登録処理を実行する(S1504)。具体的には、例えば、保守者は、入力範囲設定値欄1203の値を指定する。次に、保守者は、各機能の有効/無効設定を登録する(S1505)。具体的には、例えば、保守者は、異常検出機能欄703、切替え機能欄704、パケット監視機能欄705、及びパケット遮断機能欄706における有効/無効を指定する。
保守者による登録作業終了後に、ゲートウェイ105の運用が開始される。なお、ステップS1505の処理が実行されない限り、ステップS1501〜ステップS1503の処理が実行される順序は問わない。
図16は、運用開始後のゲートウェイ105の処理の一例を示すフローチャートである。まずゲートウェイ105の運用状態が開始される(S1601)。物理ポート601〜607は、パケット受信を待機する(S1602)。物理ポート601〜607は、パケットを受信しない場合(S1602:No)、引き続きパケット受信を待機する(S1602)。
物理ポート601〜607の少なくとも1つが、パケットを受信すると(S1602:Yes)、当該少なくとも1つの物理ポートそれぞれについて、ステップS1603以下の処理が実施される。以下、第1物理ポートが第1パケットを受信したものとして、第1物理ポートについてのステップS1603以下の処理の例を説明する。
第1物理ポートは、物理ポート管理テーブル710の第1物理ポートの物理ポート有効/無効欄708の値が有効であるか否かを判定する(S1603)。第1物理ポートは、第1物理ポートが無効であると判定した場合(S1603:NO)は、第1パケットを廃棄する(S1604)。
第1物理ポートが有効であると判定した場合(S1603:Yes)、パケット処理部608は、第1物理ポートに対応するプロトコル欄709の値に従って、第1パケットに対してパケット処理を実施する(S1605)。
次に、スイッチ制御部609は、機器情報テーブル700のパケット監視機能欄705の値が有効であるか否かを判定し(S1606)、判定結果に基づく処理を実行する。パケット監視機能が無効である場合(1606:No)、スイッチテーブルDB615を参照して、パケットの転送処理を実施し(S1621)、ステップS1602のパケット受信待機状態に戻る。なお、スイッチ制御部609は、ステップS1621において、遮断/透過欄807の値が「遮断」であるパスに対応するパケットを、送信先へ送信せず破棄する。
パケット監視機能が有効である場合(S1606:Yes)、パケット解析転送部610が、第1パケットの中身を解析し、ステップS1607に遷移するする。パケット解析転送部610は、第1パケットの中身の解析において、具体的には、第1パケットのDAIPアドレス、及びSAIPアドレスを特定し、特定したIPアドレスから、スイッチテーブル800を参照してパスIDを特定する。なお、前述したように、パケット解析転送部610は、IPアドレスを詐称して侵入を試みる外部ネットワークからの攻撃に備えるために、さらにMACアドレスも用いてパスIDを特定してもよい。
次に、パケット解析転送部610は、スイッチテーブル800の特定したパスIDのパケット監視欄806の値が有効であるか否かを判定し(S1607)、判定結果に対応する処理を実行する。パケット解析転送部610が特定したパスIDのパケット監視欄806の値が無効であると判定した場合(S1607:No)、ステップS1621の処理を実行し、ステップS1602のパケット受信待機状態に戻る。パケット解析転送部610が特定したパスIDのパケット監視欄806の値が有効であると判定した場合(S1607:Yes)、ステップS1608に遷移する。
ここで、ゲートウェイ105に入力されるパケットの例である4種類のパケットについて説明する。当該4種類のパケットとは、コントロールネットワーク102上を流れる制御に関わるパケット、フィールド機器110を監視する監視センサ111からのセンサデータパケット、コントローラからフィールド機器110への制御コマンドパケット、及びフィールド機器に付随するフィールド機器付随センサ1103のデータパケットである。コントロールネットワーク102上を流れる制御に関わるパケットは、設定コマンド、及び設定コマンドに応答を返す通知コマンド等を含む。
例えば、図9のスイッチテーブル800の例において、パスIDが「007」〜「010」のパスにおけるパケット監視は無効である。即ち図9の例において、パケット解析転送部610が、コントローラからフィールド機器110への制御コマンドパケット、フィールド機器に付随するフィールド機器付随センサ1103のデータパケットを監視することなく、スイッチ制御部609が、ステップS1621における、スイッチテーブルDB615に基づいた転送処理を実施する。
フローチャートの説明に戻る。次に、パケット解析転送部610は、第1パケットが監視センサ111からのセンサデータパケットであるか否かを判定する(S1608)。なお、パケット解析転送部610は、例えば、第1パケットの先頭の、ゲートウェイ105内部で使用する内部ヘッダ、の監視センサ111からのデータパケットであるか否かを示すフラグを参照してステップS1608の判定を実施する。
なお、当該フラグは、例えば、ステップS1605において、パケット処理部608によって設定される。具体的には、例えば、パケット処理部608は、スイッチテーブル800を参照して、受信したパケットが、監視センサ111に接続された物理ポートから転送されたものであるか否かを判定し、当該判定結果に従って当該フラグを受信したパケットの内部ヘッダに書き込む。
パケット解析転送部610は、第1パケットが監視センサ111からのセンサデータパケットであると判定した場合(S1608:Yes)、センサデータ異常検出部612は機器情報テーブル700の異常検出機能欄703の値が有効であるか否かを判定する(S1609)。
センサデータ異常検出部612は、異常検出機能欄703の値が無効であると判定した場合(S1609:No)、ステップS1602のパケット受信待機状態に戻る。センサデータ異常検出部612は、異常検出機能欄703の値が有効であると判定した場合(S1609:Yes)、センサデータテーブル1200の、取得したセンサデータが示すセンサIDに対応する測定値欄1202にセンサデータのセンサ値を格納し、入力範囲設定値欄1203を参照してセンサデータのセンサ値が設定範囲内であるか否かを判定する(S1611)。
センサデータ異常検出部612は、センサ値が設定範囲内であると判定した場合(S1611:Yes)、当該センサIDに対応するフラグ欄1204に値「正常」を格納し、ステップS1602のパケット受信待機状態に戻る。センサデータ異常検出部612は、センサ値が設定範囲内でないと判定した場合(S1611:No)、当該センサIDに対応するフラグ欄1204に値「異常」を格納し、ステップS1613に遷移する。なお、センサデータ異常検出部612は、ステップS1613に遷移する前に、保守者にフィールド機器110で異常が起こったことを保守者に通知する。なお、例えば、上述した保守者用端末への通知によって、保守者への通知が行われる。
なお、センサデータ異常検出部612が、ステップS1611において、センサ値が設定範囲外であると判定した場合(S1611:No)、例えば、対象のフィールド機器110を停止する命令を当該フィールド機器110に送信してもよい。例えば、センサデータテーブル1200が各センサに対応するフィールド機器110の情報を保持し、かつ主記憶装置409に当該命令コマンドが格納されていてもよく、センサデータ異常検出部612が当該情報と当該命令コマンドを用いて当該命令を実行する。
次に、センサデータ異常検出部612は、機器情報テーブル700の切替え機能欄704の値が有効であるか否かを判定する(S1613)。センサデータ異常検出部612は、切替え機能が有効であると判定した場合(S1613:Yes)、待機コントローラへの切替え処理が実施される(S1615)。
具体的には、ステップS1615において、センサデータ異常検出部612は冗長パス登録テーブル1000のステップS1606で特定したパスIDを含む冗長パスIDの出力セレクタ設定欄1003それぞれのセルの「ON」と「OFF」の値を入れ替える。さらにスイッチ制御部609は、待機コントローラ107への切替え処理を実施する(S1615)。ステップS1615に続いて、スイッチ制御部609は、切替えを実施したことを保守者に通知し(S1618)ステップS1602のパケット受信待機状態に戻る。なお、スイッチ制御部609は、ステップS1618において、フィールド機器110で異常が起こったことを保守者にさらに通知してもよい。
センサデータ異常検出部612が、切替え機能が無効であると判定した場合(S1613:No)、スイッチ制御部609は、待機コントローラ107の切替えが出来ないこと及びフィールド機器110で異常が起こったことを保守者に通知し(S1617)、ステップS1602のパケット受信待機状態に戻る。なお、センサデータ異常検出部612が、切替え機能が無効であると判定した場合(S1613:No)、ステップS1617の処理と併せて、後述するステップS1614の処理が実行されてもよい。
ステップS1608において、パケット解析転送部610は、第1パケットが監視センサ111からのセンサデータパケットでないと判定した場合(S1608:No)、第1パケットが制御パケットであるか否かを判定する(S1610)。パケット解析転送部610が、第1パケットが制御パケットでないと判定した場合(S1610:No)、ステップS1621の処理が実行され、ステップS1602のパケット受信待機状態に戻る。パケット解析転送部610が、第1パケットが制御パケットでないと判定した場合(S1610:No)、ステップS1612に遷移する。
ステップS1612において、パケット処理部608は、制御パケットを一次解析し、パケットの先頭の内部ヘッダに解析したコマンドの情報を書き込んで転送する。さらに、パケット解析転送部610は、ステップS1612において、より詳細にコマンドの中身を二次解析して特定する。また、パケット解析転送部は、解析した情報を制御パケット監視部613に通知する。制御パケット監視部613は、コマンド解析した結果をパスID単位に、アクセス監視結果テーブル1300に格納する。
続いて、不正アクセス判定部611は、フラグ欄1204のいずれかの値が「異常」であり、かつアクセス監視結果テーブル1300のコマンド欄1303が制御プログラム書き換え設定を含むか否かを判定する(S1614)。
なお、例えば、コマンド欄1303が制御プログラム書き換え設定を含むが、フラグ欄1204の全ての値が「正常」であるという状況、悪意ユーザ端末100による攻撃が実行されていなくても、保守者から、制御プログラム書き換えコマンド設定が正常に送信された場合において発生し得る。
また、例えば、フラグ欄1204のいずれかの値が「異常」であるが、コマンド欄1303が制御プログラム書き換え設定を含まないという状況は、悪意ユーザ端末100による攻撃が実行されていなくても、フィールド機器110又は監視センサ111が故障した場合に発生し得る。但し、前述したように、「異常」フラグがあり、かつ切替え機能が有効である場合には切替え処理が実行される。
従って、本実施例においては、不正アクセス判定部611は、上述したようにステップS1614の判定において、フラグ欄1204のいずれかの値が「異常」であり、かつコマンド欄1303が制御プログラム書き換え完了通知を含む場合に、外部ネットワークからの攻撃1及び攻撃2を含む不正アクセスがあったと判定する。図17を用いて後述するように、不正アクセスがあったと判定するための条件は、上記条件に限らない。
なお、不正アクセス判定部611は、ステップS1614において、フラグ欄1204のいずれかの値が「異常」であり、アクセス監視結果テーブル1300のコマンド欄1303が制御プログラム書き換え完了通知を含み、かつ制御プログラム書き換え完了通知が実行された少なくとも1つの時刻が、フラグ欄1204の値が「異常」に変更された少なくとも1つの時刻より早いか否かを判定してもよい。不正アクセス判定部611は、ステップS1614において、時刻を考慮したこのような条件を用いることにより、フィールド機器110に発生した異常が、外部からの攻撃によるものか、フィールド機器110又は監視センサ111の単なる故障によるものか、を判定する精度をさらに向上させることができる。
不正アクセス判定部611は、ステップS1614の条件が満たされないと判定した場合(S1614:No)、ステップS1621に遷移し、ステップS1602のパケット受信待機状態に戻る。また、不正アクセス判定部611は、ステップS1614の条件が満たされると判定した場合(S1614:Yes)、制御プログラム書き換え設定コマンドが通過したパスのパスIDを、パスID欄1301から抽出する(S1616)。なお、ステップS1616において、不正アクセス判定部611は、制御プログラム書き換え設定コマンドが通過したパスのパスIDに加えて又は代えて、制御プログラム書き換え完了通知が通過したパスのパスIDを、パスID欄1301から抽出してもよい。
なお、ステップS1616において、不正アクセス判定部611は、アクセス監視結果テーブル1300のコマンド欄1303を参照し、データベース書き換え完了通知コマンドが含まれると判定した場合、データベース書き換え設定が通過したパスのパスIDを併せて取得してもよい。ステップS1616に続いて、不正アクセス判定部611は、機器情報テーブル700のパケット遮断機能欄706の値が有効であるか否かを判定する(S1619)。
不正アクセス判定部611は、パケット遮断機能が有効であると判定した場合(S1619:Yes)、スイッチテーブル800の、ステップS1616で抽出したパスIDの遮断/透過欄807の値を「遮断」に変更し、当該パスID及び遮断したことを保守者に通知し(S1620)、ステップS1602の受信待機状態に遷移する。不正アクセス判定部611は、パケット遮断機能が無効であると判定した場合(S1619:No)、スイッチテーブル800を更新せずに、当該パスIDだけを保守者に通知し、ステップS1621に遷移し、ステップS1602のパケット受信待機状態に戻る。
なお、不正アクセス判定部611は、ステップS1616において、攻撃の種類を特定し、ステップS1620又はステップS1621において特定した攻撃の種類を保守者に通知してもよい。具体的には、例えば、不正アクセス判定部611は、アクセス監視結果テーブル1300を参照して、上位ネットワーク101から運用コントローラ106へのプログラム書き換え設定があったと判定した場合、攻撃2が発生したと判定する。また、例えば、不正アクセス判定部611は、アクセス監視結果テーブル1300を参照して、上位ネットワーク101からSCADA設計ツール104へのデータベース書き換え設定があったと判定した場合、攻撃1が発生したと判定する。
図17は、運用開始後のゲートウェイ105の処理フローチャートの判定論理の一例を示すテーブルである。具体的には、図17のテーブルは、ステップS1614において、不正アクセス判定部611が実施する判定アルゴリズムを示す。不正アクセス判定部611は、図17のテーブルが示す判定アルゴリズムを予め保持している。
カラム1701〜カラム1707は判定条件を示し、カラム1708は、カラム1701〜カラム1707の判定条件が満たされた場合におけるフィールド機器110の状態を示す。カラム1701は、センサデータ異常検出部612が、監視センサ111のセンサ値が正常であるとしたと判定したか否かを示すフラグ(正常であれば1、異常であれば0)を格納する。
カラム1702は、上位ネットワーク101からSCADAデータベース書き換え設定があったか否かを示すフラグを格納する。同様に、カラム1703は、上位ネットワーク101にSCADAデータベース書き換え完了通知があったか否かを示すフラグを格納する。カラム1704は、SCADA設計ツール104から運用コントローラ106の制御プログラム書き換え設定があったか否かを示すフラグを格納する。カラム1705は、SCADA設計ツール104に運用コントローラ106の制御プログラム書き換え完了通知があったか否かを示すフラグを格納する。
カラム1706は、上位ネットワーク101から運用コントローラ106の制御プログラム書き換え設定があったか否かを示すフラグを格納する。カラム1707は、上位ネットワーク101に運用コントローラ106の制御プログラム書き換え完了通知があったか否かを示すフラグを格納する。なお、カラム1702〜カラム1707に格納されるフラグにおける0は設定無し又は通知無しを示し、1は設定有り又は通知有りを示す。
レコード1709は、監視センサ111のセンサ値が正常、かつコントロールネットワーク102上で流れている監視対象の制御パケットが無い場合、フィールド機器110の状態が正常と判定されることを示す。
レコード1710は、監視センサ111のセンサ値が正常であり、上位ネットワーク101からSCADAデータベース書き換え設定があり、上位ネットワーク101へのSCADAデータベース書き換え完了通知があり、かつ他の監視対象の制御パケットが無い場合、フィールド機器110の状態が正常と判定されることを示す。なお、レコード1710の判定条件が満たされることは、正規ユーザが、上位ネットワーク101からSCADA設計ツール104のコントローラ用プログラムデータベース203を書き換えたことを示す。
同様に、レコード1711の判定条件が満たされることは、正規ユーザが、SCADA設計ツール104から運用コントローラ106が保持する制御プログラムを書き換えたことを示す。また、同様に、レコード1712の判定条件が満たされることは、正規ユーザが、上位ネットワーク101から運用コントローラ106が保持する制御プログラムを書き換えたことを示す。
レコード1713は、監視センサ111のセンサ値が異常であり、カラム1702〜カラム1705のフラグが1であり、かつカラム1706及びカラム1707のフラグが0である場合に、ゲートウェイ105が攻撃1を受けたことによりフィールド機器110に異常が発生したと判定されることを示す。同様に、レコード1714は、監視センサ111のセンサ値が異常であり、カラム1702〜カラム1705のフラグが0であり、かつカラム1706及びカラム1707のフラグが1である場合に、ゲートウェイ105が攻撃2を受けたことによりフィールド機器110に異常が発生したと判定されることを示す。
レコード1715の判定条件は、監視センサ111のセンサ値が異常であるが、コントロールネットワーク102上を流れる制御コマンドが何も無い、ことを示す。当該判定条件が満たされる場合、監視センサ111又はフィールド機器110に故障が発生していると判定される。従って、当該判定条件が満たされる場合、図17の例のように、フィールド機器110の状態は異常であるが攻撃は発生していないと判定されることが望ましい。この場合、運用コントローラ106から待機コントローラ107への切替え処理(S1615)が実施されることが望ましい。なお、監視センサ111が故障している場合、コントローラの切替え処理が実施されても異常発生が継続するため、センサデータ異常検出部612は、当該異常発生の継続を検知した場合、保守者に監視センサ111の故障を通知することが望ましい。
レコード1716の判定条件は、上位ネットワーク101からSCADAデータベース書き換え設定が有り、かつ上位ネットワーク101にSCADAデータベース書き換え完了通知が無いことを示す。つまり、当該判定条件が満たされる場合、フィールド機器110は故障していないと判定される。なお、このときSCADA設計ツール104が故障している可能性が高い。
同様に、レコード1717の判定条件は、SCADA設計ツール104からコントローラの制御プログラム書き換え設定が有り、SCADA設計ツール104に制御プログラム書き換え完了通知が届いていないことを示す。つまり、レコード1717の判定条件が満たされる場合、フィールド機器110は故障していないと判定される。なお、このとき運用コントローラ106が故障している可能性が高い。
レコード1716又はレコード1717の判定条件が満たされる場合、ゲートウェイ105は、コントロールネットワーク102に接続する機器間の設定コマンドに対する、本来送信されるべき応答である完了通知コマンドが受信していない。ゲートウェイ105は、タイマ機能を用いて設定コマンド受信時からの時間を計測し、所定時間内に当該設定コマンドに対応する応答である完了通知を受信していないと判定した場合、例えば、SCADA設計ツール104の故障、又は運用コントローラ106の故障を保守者に通知する。
具体的には、例えば、ゲートウェイ105は、例えば、上位ネットワーク101からSCADAデータベース書き換え設定を受信しから所定時間が経過しても、上位ネットワーク101にSCADAデータベース書き換え完了通知が無いと判定した場合、SCADA設計ツール104の故障を保守者に通知する。また、例えば、ゲートウェイ105は、SCADA設計ツール104からコントローラの制御プログラム書き換え設定を受信してから所定時間経過しても、SCADA設計ツール104に制御プログラム書き換え完了通知が届いていないと判定した場合、運用コントローラ106の故障を保守者に通知する。
以下、運用コントローラ106から待機コントローラ107への切替え処理が実施された後の復旧手段について説明する。ゲートウェイ105が攻撃1を受けた場合、SCADA設計ツール104のコントローラ用プログラムデータベース203を改竄されてしまっているので復旧は容易ではない。このとき、例えば、保守者が、コントローラ用プログラムデータベース203をバックアップした外部メディア、又は退避サーバ等から、コントローラ用プログラムデータベース203へデータを復旧する。
また、このとき、例えば、攻撃1を受けた(切替え処理前における)運用コントローラ106は、(切替え処理後における運用コントローラである)待機コントローラ107から正常な制御プログラムを、外部メディアを経由して取得した上で、コントローラネットワークから切り離され、新たな待機コントローラとなる。
ゲートウェイ105が攻撃2を受けた場合、運用コントローラ106が保持する制御プログラムが改竄されてしまっている。例えば、攻撃2によって、運用コントローラ106のキャッシュメモリ上に制御プログラムが直接書き込まれた場合は、不揮発性メモリ上に残る正常な制御シーケンスを示す制御プログラムが残っているため、(切替え処理前における)運用コントローラ106を再起動することにより復旧する。
なお、攻撃2によって、不揮発性メモリ上の制御プログラムが書き替えられた場合は、例えば、2面制御された不揮発性メモリをSBY側で起動する事で復旧することが可能である。なお、例えば、ゲートウェイ105が攻撃2を受けた場合の前述の2つの復旧処理は、保守者によって実施される。
以上、本実施形態の産業制御システム10において、ゲートウェイ105が監視センサ111から受信したセンサ値に基づいて、フィールド機器110の異常を検知し、コントローラの切替え処理を実施することにより、フィールド機器110に異常が起きたことを素早く検知し、フィールド機器110を継続して正常に動作させることができる。また、ゲートウェイ105は、当該異常を保守者に素早く通知することができる。
また、ステップS1614における判定条件が、フィールド機器110に異常が発生したと判定されたこと、及びプログラム書き換え設定コマンドが送信されたこと、を含むことにより、ゲートウェイ105は攻撃の発生を正確に判定し、攻撃の発生を保守者に通知することができる。
また、ゲートウェイ105は、プログラム書き換え設定が通過したパスを遮断することにより、運用コントローラ106へのさらなる攻撃を防止することができる。また、ゲートウェイ105は、ステップS1614の判定条件が満たされた場合に、データベース書き換え設定コマンドの有無を確認することにより、攻撃の種別を特定することができる。
また、ゲートウェイ105は、ステップS1614の判定条件が満たされ、かつデータベース書き換え設定コマンドが送信されたと判定した場合に、当該データベース書き換え設定コマンドが通過したパスを遮断することにより、SCADA設計ツール104へのさらなる攻撃を防止することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
10 産業制御システム、104 SCADA設計ツール、105 ゲートウェイ、106 運用コントローラ、107 待機コントローラ、110 フィールド機器、111 監視センサ、608 パケット処理部、609 スイッチ制御部、610 パケット解析部・パケット処理部、611 不正アクセス判定部、612 センサデータ異常検出部、613 制御パケット監視部、614 機器情報DB、615 スイッチテーブルDB、616 センサデータDB、617 アクセス監視結果DB

Claims (11)

  1. ネットワーク装置と、前記ネットワーク装置に接続された運用系制御装置と、待機系制御装置と、を含む制御システムであって、
    前記運用系制御装置は、前記ネットワーク装置を介して前記運用系制御装置と接続された機器を制御し、
    前記ネットワーク装置は、
    前記機器の状態を計測する監視センサに接続され、
    前記監視センサによる計測値を受信し、
    前記受信した計測値が予め定められた範囲に含まれないと判定した場合、前記運用系制御装置と前記機器との接続を解除し、かつ前記ネットワーク装置を介して前記待機系制御装置と前記機器とを接続する、切替え処理を実行し、
    前記待機系制御装置は、前記切替え処理が実行された後、前記機器を制御する、制御システム。
  2. 請求項1に記載の制御システムであって、
    前記運用系制御装置は、
    運用系制御プログラムを保持し、
    前記運用系制御プログラムに従って前記機器を制御し、
    前記ネットワーク装置は、
    前記運用系制御装置が送受信するパケットを監視し、
    前記運用系制御装置が受信するパケットを解析して、当該パケットの送信元を特定し、
    前記受信した計測値が前記範囲に含まれず、かつ前記運用系制御プログラムを書き換える第1書き換え命令に対する完了通知を含む第1パケットを前記運用系制御装置が送信した、ことを示す第1条件、が満たされると判定した場合、前記第1書き換え命令を含む第2パケットの送信元を示す情報を通知する、制御システム。
  3. 請求項2に記載の制御システムであって、
    前記第1条件は、前記受信した計測値が前記範囲に含まれず、前記運用系制御装置が前記第1パケットを送信し、かつ前記受信した計測値が前記範囲に含まれないと判定された時刻が、前記運用系制御装置が前記第1パケットを送信した時刻より後である、ことを示す、制御システム。
  4. 請求項2又は3のいずれか一つに記載の制御システムであって、
    前記ネットワーク装置は、
    前記運用系制御装置宛のパケットを受信して、前記運用系制御装置に転送し、
    前記第1条件が満たされると判定した場合、前記第2パケットの送信元から受信するパケットの前記運用系制御装置への転送を停止する、制御システム。
  5. 請求項2又は3のいずれか一つに記載の制御システムであって、
    前記ネットワーク装置は、
    更新用制御プログラムを保持する管理制御装置が受信するパケットを監視し、
    前記管理制御装置が受信するパケットを解析して、当該パケットの送信元を特定し、
    前記管理制御装置は、
    前記更新用制御プログラムを書き換える第2書き換え命令を含むパケットを受信した場合、前記更新用制御プログラムを書き換え、前記運用系制御装置に対して、書き替え後の前記更新用制御プログラムを用いて前記運用系制御プログラムを上書きする命令を含むパケットを前記第2パケットとして送信し、
    前記ネットワーク装置は、前記第1条件が満たされ、かつ前記管理制御装置が前記第2書き換え命令に対する完了通知を含む第3パケットを送信したと判定した場合、前記第2書き換え命令を含む第4パケットの送信元を示す情報を通知する、制御システム。
  6. 請求項5に記載の制御システムであって、
    前記ネットワーク装置は、
    前記管理制御装置宛のパケットを受信して、前記管理制御装置に転送し、
    前記第1条件が満たされ、かつ前記運用系制御装置が前記第3パケットを送信したと判定した場合、前記第4パケットの送信元から受信するパケットの前記管理制御装置への転送を停止する、制御システム。
  7. 請求項4に記載の制御システムであって、
    前記ネットワーク装置は、前記第2パケットの送信元から受信したパケットの前記運用系制御装置への転送を停止することを通知する、制御システム。
  8. 請求項6に記載の制御システムであって、
    前記ネットワーク装置は、前記第4パケットの送信元から受信したパケットの前記管理制御装置への転送を停止することを通知する、制御システム。
  9. 請求項1に記載の制御システムであって、
    前記ネットワーク装置は、前記切替え処理を実行したことを通知する、制御システム。
  10. 運用系制御装置と待機系制御装置を制御するネットワーク装置であって、
    前記ネットワーク装置を介して接続された機器を制御する前記運用系制御装置、に接続され、
    前記機器の状態を計測する監視センサに接続され、
    前記監視センサによる計測値を受信する異常検知部と、
    前記異常検知部が前記受信した計測値が予め定められた範囲に含まれないと判定した場合、前記運用系制御装置と前記機器との接続を解除し、かつ前記ネットワーク装置を介して前記待機系制御装置と前記機器とを接続するスイッチ制御部と、を含む、ネットワーク装置。
  11. 運用系制御装置と待機系制御装置を、ネットワーク装置が制御する制御方法であって、
    前記ネットワーク装置は、前記ネットワーク装置を介して接続された機器を制御する前記運用系制御装置、に接続され、
    前記制御方法は、
    前記ネットワーク装置が、
    前記機器の状態の計測値を受信し、
    前記受信した計測値が予め定められた範囲に含まれないと判定した場合、前記運用系制御装置と前記機器との接続を解除し、かつ前記ネットワーク装置を介して前記待機系制御装置と前記機器とを接続する、制御方法。
JP2016122614A 2016-06-21 2016-06-21 制御システム、ネットワーク装置、及び制御装置の制御方法 Pending JP2017228887A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016122614A JP2017228887A (ja) 2016-06-21 2016-06-21 制御システム、ネットワーク装置、及び制御装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016122614A JP2017228887A (ja) 2016-06-21 2016-06-21 制御システム、ネットワーク装置、及び制御装置の制御方法

Publications (1)

Publication Number Publication Date
JP2017228887A true JP2017228887A (ja) 2017-12-28

Family

ID=60889428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016122614A Pending JP2017228887A (ja) 2016-06-21 2016-06-21 制御システム、ネットワーク装置、及び制御装置の制御方法

Country Status (1)

Country Link
JP (1) JP2017228887A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019205125A (ja) * 2018-05-25 2019-11-28 株式会社東芝 異常要因判定装置、制御システム、および異常要因判定方法
WO2021028186A1 (de) * 2019-08-14 2021-02-18 Beckhoff Automation Gmbh Netzwerkverteiler, automatisierungsnetzwerk und verfahren zur datenübertragung in einem automatisierungsnetzwerk

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019205125A (ja) * 2018-05-25 2019-11-28 株式会社東芝 異常要因判定装置、制御システム、および異常要因判定方法
JP7071876B2 (ja) 2018-05-25 2022-05-19 株式会社東芝 制御システム、および異常要因判定方法
WO2021028186A1 (de) * 2019-08-14 2021-02-18 Beckhoff Automation Gmbh Netzwerkverteiler, automatisierungsnetzwerk und verfahren zur datenübertragung in einem automatisierungsnetzwerk
CN113875195A (zh) * 2019-08-14 2021-12-31 倍福自动化有限公司 网络分配器、自动化网络和用于在自动化网络中传输数据的方法
CN113875195B (zh) * 2019-08-14 2023-02-03 倍福自动化有限公司 网络分配器、自动化网络和用于在自动化网络中传输数据的方法
US12047199B2 (en) 2019-08-14 2024-07-23 Beckhoff Automation Gmbh Transmission of telegrams by a network distributor in an automation network

Similar Documents

Publication Publication Date Title
US10854059B2 (en) Wireless sensor network
US10218741B2 (en) Immunizing network devices using a malware marker
EP3111433B1 (en) Wireless sensor network
JP7534067B2 (ja) プロセス制御スイッチの中毒防止
JP6568654B2 (ja) 産業制御システム内の危殆化されたデバイスを識別するためのシステム及び方法
US10592668B2 (en) Computer system security with redundant diverse secondary control system with incompatible primary control system
US9245147B1 (en) State machine reference monitor for information system security
WO2013117148A1 (zh) 检测远程入侵计算机行为的方法及系统
US11397806B2 (en) Security monitoring device
US20210075801A1 (en) Control Device and Control System
RU2587542C2 (ru) Обнаружение и предотвращение проникновения в сеть технологической установки
US11552998B2 (en) Device and system with a root of trust
JP2018007179A (ja) 監視装置、監視方法および監視プログラム
EP3767913B1 (en) Systems and methods for correlating events to detect an information security incident
JP2017228887A (ja) 制御システム、ネットワーク装置、及び制御装置の制御方法
WO2016136223A1 (ja) インターコネクション装置、管理装置、リソース分離型コンピュータシステム、方法、及び、プログラム
JP5898024B2 (ja) マルウェア検出装置および方法
US20170310700A1 (en) System failure event-based approach to addressing security breaches
Negi et al. Intrusion Detection & Prevention in Programmable Logic Controllers: A Model-driven Approach
WO2021117665A1 (ja) 電子機器および電子機器の攻撃検知方法
JP2019022099A (ja) セキュリティポリシー情報管理システム、セキュリティポリシー情報管理方法、及びプログラム
JP6690377B2 (ja) コントローラおよび制御システム
WO2020109252A1 (en) Test system and method for data analytics
US11303677B2 (en) Method and system for managing the operation of a group of several connected objects
WO2017099062A1 (ja) 診断装置、診断方法、及び、診断プログラムが記録された記録媒体