(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6923265
(24)【登録日】2021年8月2日
(45)【発行日】2021年8月18日
(54)【発明の名称】プラントセキュリティシステムにおける構成可能なロバスト性エージェント
(51)【国際特許分類】
H04L 12/66 20060101AFI20210805BHJP
H04L 12/935 20130101ALI20210805BHJP
G06F 21/55 20130101ALI20210805BHJP
G05B 23/02 20060101ALI20210805BHJP
【FI】
H04L12/66 B
H04L12/935
G06F21/55
G05B23/02 V
【請求項の数】23
【全頁数】33
(21)【出願番号】特願2016-102096(P2016-102096)
(22)【出願日】2016年5月23日
(65)【公開番号】特開2016-220213(P2016-220213A)
(43)【公開日】2016年12月22日
【審査請求日】2019年5月23日
(31)【優先権主張番号】14/719946
(32)【優先日】2015年5月22日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】512132022
【氏名又は名称】フィッシャー−ローズマウント システムズ,インコーポレイテッド
(74)【代理人】
【識別番号】100079049
【弁理士】
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【弁理士】
【氏名又は名称】加藤 和詳
(72)【発明者】
【氏名】ヴィナヤ エス. レイアペタ
(72)【発明者】
【氏名】ヤコブ ビー. レスチャンスキー
(72)【発明者】
【氏名】ウィリアム イー. ベネット
【審査官】
羽岡 さやか
(56)【参考文献】
【文献】
特開2006−060306(JP,A)
【文献】
特開2008−278357(JP,A)
【文献】
特開2014−123996(JP,A)
【文献】
特表2014−519113(JP,A)
【文献】
特開2004−185622(JP,A)
【文献】
特開2005−229573(JP,A)
【文献】
渡辺 哲仁,ITで進化する設計機器の監視保守システム,富士時報,富士電機株式会社 ,2003年 7月10日,P.429(65)-433(69)
【文献】
織田 薫 ,パケット・フィルタリングでより安全に ルーターの設定で実現 不要なパケットは遮断,日経Internet Solutions 第65号 ,日経BP社 Nikkei Business Publications,Inc. ,2002年11月22日,P.124-131
【文献】
高木 淳史 Atsushi TAKAGI,内容と数量に基づくパケット選択プロセッサの実現と評価 Implementation and Evaluation of Packet Selection Processor Based on Packet Quantity and Contents,電子情報通信学会技術研究報告 Vol.104 No.659 IEICE Technical Report,日本,社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2005年 2月11日,第104巻,P.65-70
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00−12/955
G05B 23/02
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
プロセス制御システムの通信ネットワーク内のメッセージトラフィックを安全にする方法であって、
前記通信ネットワークに接続されたデバイスで一連のメッセージを受信することと、
前記デバイスにあるプロセッサを介して、前記一連のメッセージのそれぞれを分析して、前記メッセージのそれぞれの1つ以上のメッセージ特徴を決定することと、
前記デバイスにある前記プロセッサを介して、前記デバイスで記憶されるロジックルールの組に基づいて前記メッセージのそれぞれをフィルタリングすることと、を含み、前記ロジックルールのルールは、前記デバイスへの又は前記デバイスからのメッセージトラフィックの予想される流れを反映し、前記ルールは、前記デバイスへの又は前記デバイスからのメッセージトラフィックの範囲を含むトラフィックパターンパラメータを含み、前記フィルタリングが、1つ以上の第1のメッセージ特徴の組を有するメッセージを伝達することと、1つ以上の第2のメッセージ特徴の組を有するメッセージを停止することと、前記ルールに対応する1つ以上の第3のメッセージ特徴の組を有するメッセージをカウントすることとを含み、前記デバイスへの又は前記デバイスからのメッセージトラフィックの範囲と比較して、前記1つ以上の第3のメッセージ特徴の組と関連付けられたカウントに基づいて、前記1つ以上の第3のメッセージ特徴の組を有する前記メッセージを伝達または停止することをさらに含む、前記方法。
【請求項2】
1つ以上の第3のメッセージ特徴の組を有するメッセージをカウントすることが、特定期間内に受信された前記第3のメッセージ特徴の組のうちの1つを有するメッセージの数をカウントすることを含む、請求項1に記載の前記方法。
【請求項3】
1つ以上の第3のメッセージ特徴の組を有するメッセージをカウントすることが、特定期間内に受信された前記第3のメッセージ特徴の組のそれぞれの前記メッセージの数のカウントを保持することを含む、請求項1又は請求項2に記載の前記方法。
【請求項4】
前記ロジックルールを、前記デバイス内の読み出し専用メモリ、及び、読み出し/書き込みメモリの少なくとも1つに記憶することをさらに含む、請求項1〜請求項3の何れか1項に記載の前記方法。
【請求項5】
前記ロジックルールの少なくとも部分を前記デバイスにあるフラッシュメモリに記憶することをさらに含む、請求項1〜請求項4の何れか1項に記載の前記方法。
【請求項6】
1つ以上のログファイルを作成するために、1つ以上の停止されたメッセージに関する情報をロギングすることをさらに含む、請求項1〜請求項5の何れか1項に記載の前記方法。
【請求項7】
ロギングの情報を有する前記1つ以上のログファイルを、前記通信ネットワークを介してユーザに通信することをさらに含む、請求項1〜請求項6の何れか1項に記載の前記方法。
【請求項8】
前記1つ以上の第3のメッセージ特徴の組のうちの1つを有するメッセージのメッセージカウントがネットワークノードへの又は前記ネットワークノードからのメッセージトラフィックの範囲外であるときに、アラートを生成してユーザに送信すること、及び、セキュリティ動作を起動することの少なくとも1つを行うことをさらに含む、請求項1〜請求項7の何れか1項に記載の前記方法。
【請求項9】
セキュリティ動作を起動することが、前記通信ネットワーク上のデバイス内でウイルスまたは侵入検出ソフトウェアを起動すること、及び、前記通信ネットワークの通信リンクからデバイスを切断することの少なくとも1つを行うことを含む、請求項1〜請求項8の何れか1項に記載の前記方法。
【請求項10】
セキュリティ動作を起動することが、前記通信ネットワーク上の異なるデバイスを、前記通信ネットワークの通信リンクから切断することを含む、請求項1〜請求項9の何れか1項に記載の前記方法。
【請求項11】
前記1つ以上の第1のメッセージ特徴の組を有する前記メッセージを伝達すること、及び前記1つ以上の第3のメッセージ特徴の組を有する前記メッセージを伝達することが、前記デバイスで処理するために、前記メッセージを前記デバイスの通信スタックに伝達することを含む、請求項1〜請求項10の何れか1項に記載の前記方法。
【請求項12】
前記1つ以上の第1のメッセージ特徴の組を有する前記メッセージを伝達すること、及び前記1つ以上の第3のメッセージ特徴の組を有する前記メッセージを伝達することが、前記通信ネットワーク上の別のデバイスへの伝送のために、前記メッセージを通信リンクに伝達することを含む、請求項1〜請求項11の何れか1項に記載の前記方法。
【請求項13】
前記一連のメッセージを前記通信ネットワークに接続されたデバイスで受信することが、前記デバイス内で生成された第1の一連のメッセージを受信することと、前記通信ネットワークの通信リンクから受信された第2の一連のメッセージを受信することと、を含み、前記一連のメッセージのそれぞれを分析することが、前記第1の一連のメッセージ及び前記第2の一連のメッセージのそれぞれを別個に分析することを含み、前記メッセージのそれぞれをフィルタリングすることが、前記第1の一連のメッセージ及び前記第2の一連
のメッセージのそれぞれを別個にフィルタリングすることを含む、請求項1〜請求項12の何れか1項に記載の前記方法。
【請求項14】
第1の一連のメッセージ及び第2の一連のメッセージのそれぞれを別個にフィルタリングすることが、前記第1の一連のメッセージを第1のロジックルールの組を使用してフィルタリングすることと、前記第2の一連のメッセージを第2の異なるロジックルールの組を使用してフィルタリングすることと、を含む、請求項1〜請求項13の何れか1項に記載の前記方法。
【請求項15】
通信リンクを介して通信可能に結合されたプロセス制御システムの複数のネットワークノードを有し、前記複数のネットワークノードは、1つ以上のプロセス制御ノードを有する通信ネットワークでの使用のためのセキュリティシステムであって、
1つ以上のメッセージモジュールインターフェースであって、前記メッセージモジュールインターフェースのそれぞれが、前記ネットワークノードのうちの1つにあるプロセッサ上で実行して、前記ネットワークノードでのメッセージトラフィックを検出し、メッセージのそれぞれの1つ以上のメッセージ特徴を決定する、メッセージモジュールインターフェースと、
1つ以上のロジックルールを記憶するルールメモリであって、前記1つ以上のロジックルールは、前記ネットワークノードへの又は前記ネットワークノードからのメッセージトラフィックの予想される流れを反映するルールを含み、前記ルールは、前記ネットワークノードへの又は前記ネットワークノードからのメッセージトラフィックの範囲を含むトラフィックパターンパラメータを含むことを特徴とするルールメモリと、
プロセッサ内に記憶され、かつプロセッサ上で実行され、また前記ルールメモリに結合された1つ以上のフィルタリングユニットと、を備え、前記フィルタリングユニットのそれぞれが、
構文フィルタリングモジュールと、
ボリュームフィルタリングモジュールと、
を含み、前記構文フィルタリングモジュールが、前記プロセッサ上で実行し、メッセージ特徴情報に基づいて前記ルールメモリ内に記憶された1つ以上のロジックルールを適用して、前記メッセージを伝達するか、前記メッセージを停止するか、または前記メッセージを前記ボリュームフィルタリングモジュールに伝達し、
前記ボリュームフィルタリングモジュールが、前記ルールに対応する特定のメッセージ特徴の組を有するメッセージの数をカウントして、メッセージカウントを決定し、前記ネットワークノードへの又は前記ネットワークノードからのメッセージトラフィックの範囲と比較して、前記メッセージカウントに基づいて前記特定のメッセージ特徴の組を有する前記メッセージを伝達するか、または前記メッセージを停止する、前記セキュリティシステム。
【請求項16】
前記ボリュームフィルタリングモジュールに結合されているアラート生成モジュールをさらに含み、前記アラート生成モジュールが、前記プロセッサ上で実行して、前記メッセージカウントが前記ネットワークノードへの又は前記ネットワークノードからのメッセージトラフィックの範囲外であるときに、アラートをユーザに送信する、請求項15に記載の前記セキュリティシステム。
【請求項17】
前記ボリュームフィルタリングモジュールに結合されているアラート生成モジュールをさらに含み、前記アラート生成モジュールが、前記プロセッサ上で実行して、前記メッセージカウントが前記ネットワークノードへの又は前記ネットワークノードからのメッセージトラフィックの範囲外であるときに、前記通信ネットワークからデバイスを切断する、請求項15又は請求項16に記載の前記セキュリティシステム。
【請求項18】
前記1つ以上のフィルタリングユニットが、前記通信リンクから前記ネットワークノードに入ってくるメッセージを受信して分析する第1のフィルタリングユニットと、前記ネットワークノード内で生成され、前記通信リンクを介して別のネットワークノードに送信されているメッセージを受信して分析する第2のフィルタリングユニットと、を含む、請求項15〜請求項17の何れか1項に記載の前記セキュリティシステム。
【請求項19】
通信ネットワークであって、
通信リンクと、
プロセス制御システムの複数のネットワークノードであって、前記ネットワークノードのそれぞれが、前記通信リンクに結合されたネットワークデバイスを含み、前記複数のネットワークノードの1つ以上は、プロセス制御ノードであり、プロセッサ、及び前記プロセッサ上で実行して、前記通信リンクを行き来するメッセージを処理する通信スタックを有する、ネットワークノードと、
を備え、複数の前記ネットワークノードのそれぞれが、
1つ以上のメッセージモジュールインターフェースであって、前記メッセージモジュールインターフェースのそれぞれが、ネットワークノードにあるプロセッサ上で実行して、前記通信スタックから、または前記通信リンクから来るメッセージトラフィックを検出し、前記メッセージのそれぞれの1つ以上のメッセージ特徴を決定する、メッセージモジュールインターフェースと、
1つ以上のロジックルールを記憶する、ルールメモリであって、前記1つ以上のロジックルールは、前記ネットワークノードへの又は前記ネットワークノードからのメッセージトラフィックの予想される流れを反映するルールを含み、前記ルールは、前記ネットワークノードへの又は前記ネットワークノードからのメッセージトラフィックの範囲を含むトラフィックパターンパラメータを含むことを特徴とするルールメモリと、
プロセッサ内に記憶され、かつプロセッサ上で実行され、また前記ルールメモリに結合されたフィルタリングモジュールであって、前記ルールメモリ内に記憶された前記ロジックルールの組を使用して、1つ以上の第1のメッセージ特徴の組を有するメッセージを伝達し、1つ以上の第2のメッセージ特徴の組を有するメッセージを停止し、前記ルールに対応する1つ以上の第3のメッセージ特徴の組を有するメッセージをカウントし、また前記ネットワークデバイスへの又は前記ネットワークデバイスからのメッセージトラフィックの範囲と比較して、前記1つ以上の第3のメッセージ特徴の組と関連付けられたカウントに基づいて、前記1つ以上の第3のメッセージ特徴の組を有する前記メッセージをさらに伝達または停止する、フィルタリングモジュールと、をさらに含む、前記通信ネットワーク。
【請求項20】
前記フィルタリングモジュールが、前記1つ以上の第3のメッセージ特徴の組を有する前記メッセージのためのメッセージカウントを、特定期間内に受信された特定のメッセージ特徴の組を有するいくつかのメッセージとして生成する、請求項19に記載の前記通信ネットワーク。
【請求項21】
前記複数のネットワークノードのそれぞれが、前記フィルタリングモジュールに結合されているアラート生成モジュールをさらに含み、前記アラート生成モジュールが、前記プロセッサ上で実行して、メッセージカウントのうちの1つが前記ネットワークノードへの又は前記ネットワークノードからのメッセージトラフィックの範囲外であるときに、アラートをユーザに送信する、請求項19又は請求項20に記載の前記通信ネットワーク。
【請求項22】
前記複数のネットワークノードのそれぞれが、前記フィルタリングモジュールに結合されているアラート生成モジュールをさらに含み、前記アラート生成モジュールが、前記プロセッサ上で実行して、メッセージカウントのうちの1つが前記ネットワークノードへの又は前記ネットワークノードからのメッセージトラフィックの範囲外であるときに、通信リンクネットワークからデバイスを切断する、請求項19〜請求項21の何れか1項に記載の前記通信ネットワーク。
【請求項23】
前記複数のネットワークノードのそれぞれが、2つ以上のフィルタリングモジュールを含み、前記2つ以上のフィルタリングモジュールのうちの1つ目が、前記通信リンクから前記ネットワークノードにある前記ネットワークデバイスに入ってくるメッセージを受信して分析し、前記2つ以上のフィルタリングモジュールのうちの2つ目が、前記ネットワークノードにある前記ネットワークデバイス内で生成され、前記通信リンクを介して別のネットワークノードにある別のネットワークデバイスに送信されているメッセージを受信して分析する、請求項19〜請求項22の何れか1項に記載の前記通信ネットワーク。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、概して、プロセスまたは工業プラント通信システムに関し、より具体的に、プラント通信ネットワーク内のトラフィック検出及びフィルタリングに基づいて、制御及び保守通信ネットワーク、例えば、プロセス及び工業制御システムで使用される制御及び保守通信ネットワークへの侵入を検出することに関する。
【背景技術】
【0002】
プロセスまたは工業制御及び保守システム、例えば、発電、化学、石油、または他の製造プロセスで使用されるプロセス制御システムのような分散または拡張可能なプロセス制御システムは、典型的に、相互に、プロセス制御ネットワークを介して少なくとも1つのホストまたはオペレータワークステーションに、及びアナログ、デジタル、または組み合わされたアナログ/デジタルバスを介して1つ以上のフィールドデバイスに通信可能に結合された1つ以上のコントローラを含む。例えば、バルブ、バルブポジショナ、スイッチ、及びトランスミッタ(例えば、温度、圧力、及び流量センサ)であり得るフィールドデバイスは、プロセスまたはプラント内で、バルブを開閉する、デバイスの電源を切り替える、及びプロセスパラメータを測定するなどの機能を実行する。コントローラは、フィールドデバイスによって行われたプロセスもしくはプラント計測及び/またはフィールドデバイスに関する他の情報を示す信号を受信し、この情報を使用して1つ以上の制御ルーチンを実装し、その後、プラントネットワークのバスまたは通信チャネル上でフィールドデバイスに送信される制御信号を生成して、プロセスまたはプラントの動作を制御する。フィールドデバイス及びコントローラからの情報は、典型的に、通信ネットワークを介して、オペレータワークステーションによって実行される1つ以上のアプリケーションに対して入手可能になり、オペレータまたは保守者が、プロセスまたはプラントに関する任意の所望の機能を実行すること、例えば、プラントの現状を見ること、プラントの動作を修正すること、デバイスを較正すること、欠陥デバイスを検出することなどを可能にする。
【0003】
動作中、典型的にプロセスプラント環境内に位置するプロセスコントローラは、構成スキームに従い、フィールドデバイス及び/またはフィールドデバイスに関する他の情報によって行われるか、または関連付けられるプロセス計測またはプロセス変数を示す信号を定期的または規則的に受信し、この情報を使用してコントローラアプリケーションを実行するように構成される。コントローラアプリケーションは、例えば、プロセス制御決定を行い、受信された情報に基づいて制御信号を生成し、HART(登録商標)及びFOUNDATION(登録商標)フィールドバスフィールドデバイスなどのフィールドデバイス内で制御モジュールまたはブロックと連動する、異なる制御モジュールを実装する。さらに、プロセスコントローラ内の制御モジュールは、ここでも構成スキームに従い、制御信号を通信線または他の信号パス上でフィールドデバイスに送信して、それにより、プロセスの動作を制御する。
【0004】
フィールドデバイス及びプロセスコントローラからの情報はまた典型的に、プラント内または外部の1つ以上の他のハードウェアデバイス、例えば、オペレータワークステーション、保守ワークステーション、サーバ、パーソナルコンピュータ、携帯デバイス、データまたは事象ヒストリアン、レポートジェネレータ、集中データベースなどに対しても、1つ以上の安全なプロセス制御または保守ネットワークを介して入手可能にされる。プロセス制御または保守通信ネットワーク上で通信される情報は、オペレータまたは保守者がプロセスに関する所望の機能を実行すること、及び/またはプラントもしくはそのプラント内のデバイスの動作を見ることを可能にする。例えば、制御情報は、オペレータがプロセス制御ルーチンの設定を変更すること、プロセスコントローラまたはスマートフィールドデバイス内の制御モジュールの動作を修正すること、プロセスの現状またはプロセスプラント内の特定デバイスの状態を見ること、フィールドデバイス及びプロセスコントローラによって生成されるアラーム及び/またはアラートを見ること、人材を育成する、またはプロセス制御ソフトウェアを試験する目的でプロセスの動作をシミュレートすること、プロセスプラント内の問題またはハードウェア障害を診断することなどを許可する。
【0005】
フィールドデバイス及びコントローラは、通常、例えば、イーサネットにより構成されたLANとして実装され得る、1つ以上の安全なプロセス制御または保守通信ネットワーク上で他のハードウェアデバイスと通信する。プロセス制御または保守通信ネットワークは、プロセスパラメータ、ネットワーク情報、及び他のプロセス制御データを、様々なネットワークデバイスを通してプロセス制御システム内の様々なエンティティに送信する。典型的なネットワークデバイスとして、ネットワークインターフェースカード、ネットワークスイッチ、ルータ、サーバ、ファイアウォール、コントローラ、オペレータワークステーション、及びデータベースが挙げられる。ネットワークデバイスは、典型的に、ルーティング、フレームレート、タイムアウト、及び他のネットワークパラメータを制御することによって、ネットワークを通るデータの流れを促進するが、プロセスデータ自体を変更しない。プロセス制御ネットワークのサイズ及び複雑性が増大するにつれて、ネットワークデバイスの数及びタイプが対応して増加する。システム及びネットワーク成長の結果として、これらの複雑なシステム内のセキュリティ及びその管理はますます困難になる。しかしながら手始めに、これらのネットワークは、一般に他の外部ネットワークから分離され、1つ以上のファイアウォールによって外的攻撃から保護される。
【0006】
一般に、典型的な工業制御システムにおいて、ネットワークへの侵入を制限するために、プラント制御システムワークステーション/サーバは、プラントと関連付けられた様々な機能を実行する外部プラントネットワークと、制御システム内で制御及びデータ取得機能を実行する組み込み制御デバイス(例えば、コントローラ、PLC、RTU)との間に戦略的に配置される。制御ワークステーション/サーバの主なセキュリティ目的は、マルウェアが制御及び保守システムに侵入し、組み込みデバイスに悪影響を及ぼすのを防ぐこと、ならびにマルウェアがプラントプロセス制御データベースに記憶された構成及び履歴データを変更するのを防ぐことである。なおもさらに、これらのワークステーション/サーバは、制御システムへの不正アクセスを防いで、プラント構成の不正変更、プラントデータへの不正アクセスなどを防ぐ。ファイアウォール、「アンチウイルス」ソフトウェア、及び「ホワイトリスティング」などの多くのセキュリティ機構を使用して、これらのセキュリティ目的に対処することができるが、これらのセキュリティ機構は、典型的に十分でない。例えば、アンチウイルスソフトウェアは、「ゼロデイ」ウイルスから保護することができず、ホワイトリスティングのみが不正アプリケーションが実行するのを防ぐ。さらに、これらのセキュリティ機構は、プラントオペレータまたは予定された制御動作の活動を妨害する可能性を有するため、これらの機構のうちのいくつかは、過度に侵入的であってプロセス制御システムでは動作上実践することができない。
【0007】
一般的な意味において、マルウェア、例えばゼロデイ攻撃の核心部にあるマルウェアは、典型的に、プロセス制御ネットワーク内のメモリデバイス、ネットワークポート、または直接データリンクにアクセスする特権または許可を有するアプリケーションまたはサービスの動作によって、外部ネットワークへの正規の通信接続を介して安全な制御システムネットワークに導入される。代替として、マルウェアは、感染したポータブルデバイス及び/またはメディアを制御システムデバイスに接続するローカルな人員を介して安全な制御システムに導入される場合がある。その後、マルウェアは、他のデバイスに(例えば、通信を介して)伝播され得、及び/またはマルウェアに感染したアプリケーションまたはサービスのセキュリティ特権を使用して、プロセス制御ネットワーク内のデバイス内で実行され得る。さらに、このマルウェアは、それ自体がローカルに持続して、ネットワーク化されたデバイスのリブート後にそれを再度実行されるのを許可し得る。場合によって、マルウェアは、ホストの特権、例えば、感染したアプリケーションまたはサービスを、アプリケーションまたはサービスが実行されるアカウントの特権を使用して段階的に拡大し得、そうすることで、マルウェアは、より高い特権を必要とするプロセス制御デバイスまたはネットワークデバイス内でアクションまたは動作を実行可能であり得、故に、典型的に制御システム動作に対してより有害である。これらの攻撃がプラント制御システムの進行中の動作を妨害するとき、これらの攻撃は、プロセスプラント内で深刻かつ潜在的に破壊的または致命的でさえある影響を有し得る。
【0008】
プロセスまたは工業制御及び保守ネットワークに対する攻撃を防止または制限するように動作するハードウェア及びソフトウェア構成を定義及び構築することに対して膨大な量の研究活動が行われてきた。しかしながら、堅く防御された工業制御システム(ICS)ネットワークまたは監視制御とデータ収集(SCADA)ネットワークでさえも、依然としてセキュリティ防御の不良構成、悪意を持って行動する正当なアクセスを有するユーザ、及び外部攻撃者の代わりに行動する公的に知られていないが悪意のあるソフトウェアなどのセキュリティ脅威に曝される。さらに、一旦ネットワークが感染すると、プロセスもしくは工業制御デバイス内またはプラント通信ノード内のウイルスまたはマルウェアの存在を自動的に検出する能力が限られる。一般的に言えば、一旦プラント環境内で攻撃が成功すると、一般に、プラント通信ノードまたはデバイスが感染したことを検出するためにオペレータ、保守者などを必要とする。通信ネットワークの各ノードでバックグラウンドウイルススキャンソフトウェアを実行することが可能であるが、このソフトウェアは、大量のメモリ及び処理リソースを使い、定期的に更新される必要があり(相当のネットワーク保守リソース及び時間を要する)、依然としてゼロデイウイルスを検出することができない。
【0009】
多くの場合、プラントデバイスまたはネットワークノードにおけるウイルスまたは不正ソフトウェアは、デバイスもしくはネットワークの性能減少を引き起こし得るか、ネットワーク内のそのノードもしくは他のノードでのエラーもしくはアラームの生成を引き起こすのに十分なほどに正常なプラント動作を中断し得るか、または他の深刻で顕著な問題を引き起こし得る。これらの場合のうちのいくつかにおいて、オペレータまたは他のプラント人員がウイルスの存在を検出することは比較的容易であり得るが、ウイルスの場所を検出することは依然として困難であり得る。さらに、多くの他の場合、ウイルスまたは攻撃は、ネットワーク動作をわずかに低下させ得る一方で、この低下またはプラント動作に対する他の影響がごくわずかになり得、そのため検出が非常に困難であり得るため、かなりの期間にわたって未検出のまま動作し得る。結果として、多くの場合、ウイルスはかなりの期間にわたって未検出になり得、その期間の間にこれらのウイルスは、プラント効率を低減するように動作し、プラントデータの窃盗を許可し、より深刻な侵入を可能にし、ネットワークデバイスを深刻な攻撃または害に曝すなどし得る。
【発明の概要】
【0010】
工業またはプロセスプラント制御または保守システムなどの制御システムは、ネットワーク上で送信された通信のロバスト分析及びフィルタリングを提供して、潜在的に感染したネットワークノードから防御する、通信ネットワーク脅威検出システムを実装する。一般的に言えば、分析システムは、ノードデバイス(例えば、コントローラ、ユーザインターフェース、スイッチなど)と、通信ネットワークとの間のインターフェースで動作する、ロバスト性エージェントを含み、ロバスト性エージェントは、ネットワークから入ってくるか、またはネットワークに向かって進むメッセージを分析及びフィルタリングして、ロバスト性エージェントを通って流れるメッセージのタイプまたはそれに関する情報を確認する。ロバスト性エージェントは、ある特定のタイプのメッセージ(例えば、ある特定の既定の特徴を有するメッセージ)がエージェントを通ってネットワークまたはデバイスに伝達されるのを許可するように構成されてよく、他の既定の特徴を有するメッセージを破棄またはフィルタリングすることによって、これらのメッセージがエージェントを通過するのを防ぐことができ、及び/または他の特徴を有するさらに他のメッセージを、ボリュームフィルターに伝達してカウントさせることができる。このボリュームフィルターは、特定のタイプの(または特定のメッセージ特徴の組を有する)メッセージの数をカウントするように動作してよく、またこれらの検出されたメッセージの数が、特定の期間にわたって特定の閾値よりも少ない場合、これらのメッセージを伝達するように動作し得るが、カウントされたメッセージの数が、特定の期間にわたって特定の閾値よりも大きい場合、これらのメッセージをフィルタリングし得る。一般的に言えば、ロバスト性エージェントは、そのフィルタリング動作が、ネットワークに対して行われた変更に基づいて経時的に変更され得、異なるタイプのネットワークまたは異なるプラント内のネットワークに対して微調整またはセットアップされ得るように構成されることができ、また一般に、ロバスト性エージェントまたは多くのロバスト性エージェントを有するセキュリティシステムが動作される任意の特定ネットワークの予想される動作に一致するように構成され得る。
【0011】
一般的な意味で、1つ以上のそのようなロバスト性エージェントを使用するセキュリティシステムは、感染した可能性があるノードが、あるタイプであるか、または侵入と関連付けられる可能性が高い特徴を有するメッセージを伝達するのを防ぎ、感染した可能性があるノードが、侵入と関連付けられ得る相当量のメッセージをネットワーク上に送信するのを防ぐ。さらに、このシステムは、感染したノードからの攻撃下にあるノードが、侵入と関連付けられ得るか、または侵入によって引き起こされ得る、ネットワークからの相当量のメッセージを受容または受信するのを防ぐのを助ける。具体的に、セキュリティシステムのロバスト性エージェントは、(ノードからの)送信メッセージを見直して、これらのメッセージが、ネットワークの構成に基づいてネットワーク上で予想されるタイプのメッセージと対応するかどうかを決定し、例えば、アウトバウンドメッセージが、構成されたときにネットワーク通信内で予想される特徴の組を有するメッセージであるかどうかを決定する。場合によって、セキュリティシステムは、ネットワーク動作に必要であるか、または必須であると思われるタイプのメッセージを含み得る、ある特定のタイプの(またはある特定の特徴の組を有する)全てのメッセージを伝達するように構成されてよい。他の場合、セキュリティシステムは、ある特定のタイプの、またはある特定の特徴を有する全てのメッセージを拒絶またはフィルタリングするように構成されてよく、これらのメッセージは、構成されたときにネットワークの正常動作中に発生しないはずであり、したがって、システム内のマルウェアまたは感染したノードによって生成された可能性がある。第3の場合、セキュリティシステムは、ある特定のタイプの、またはある特定の特徴の組を有するメッセージを、ある特定のボリュームまたはレベルまで条件的に伝達し、その後、それらのメッセージを何らかの方法でフィルタリングするようにセットアップされ得る。この場合、この第3のタイプのある限定数のメッセージが、構成されたときにネットワーク内で起こることが予想されるが、これらのメッセージは、ある特定のレベルまたはボリュームのみのこれらのメッセージが予想されることにおいて疑われることが可能である。特定期間中にある特定のレベルまたはボリュームを超えるこのタイプのメッセージの存在は、したがって、これらのメッセージがマルウェアまたはネットワークへの別のタイプの感染または侵入によって生成されることを示し得る。そのようなボリュームが検出された場合、その後、ロバスト性エージェントは、これらのメッセージの全てをフィルタリングし得るか、または限定数のこれらのメッセージを伝達し得る一方で、他をフィルタリングして、ボリュームをある特定のレベルよりも低く保持することができ、ユーザに通知することができ、侵入検出ソフトウェアを実行することができ、及び/またはメッセージを生成するデバイスをネットワークリンクから切断して、感染したデバイスがネットワークへのアクセスを有するのを防いでもよい。
【0012】
いずれにしても、セキュリティシステムのロバスト性モジュールのそれぞれは、ボリュームフィルター内の特定の許可されるボリュームの様々なタイプのメッセージを伝達する、フィルタリングする、またはボリュームフィルターに伝達するメッセージのタイプまたは特徴を特定する構成ファイルを使用して動作するように構成されてよく、ボリューム閾値に到達するか、または超えるときなどに、ロバスト性エージェントによって措置が講じられる。この構成またはそれと関連付けられたルールは、ロバスト性エージェントまたはそのロバスト性エージェントが動作するデバイスに取り付けられた読み出し専用フラッシュメモリに記憶されてよく、これがロバスト性エージェントの動作中に構成データを変更不可能にするか、または読み出し/書き込みメモリに記憶されてよく、これがネットワークの動作中に構成を変更可能にして、したがってよりロバストにし、それにより、ネットワークに対して行われた変更に基づいて、セキュリティシステムが動作中に再構成されるのを許可する。しかしながら、後者の場合、構成ファイルは、構成ファイルを感染させるように動作することができるマルウェアの影響をより受け易いことがある。場合によって、ルールの一部がフラッシュメモリに記憶され得る一方で、ルールに使用されるいくらかのデータまたはリストは、他のタイプのメモリに構成可能な様式で記憶されてよい。
【0013】
一般的に言えば、ロバスト性エージェントの構成は、各ロバスト性エージェントが取り付けられるネットワーク場所及びデバイスに基づいて異なってよい。さらに、任意の数のロバスト性エージェントは、ネットワークセキュリティシステムを作製するように、通信ネットワーク内に提供されてもよい。それが望ましい場合もあるが、ネットワーク内の各デバイスが必ずしもその独自のロバスト性エージェントを有する必要はない。同様に、各ロバスト性エージェントの構成は、ネットワークノードの比較的静的な構成、ならびにプラントまたはプラント制御ネットワークで使用されるプロセスまたは工業制御または保守システム構成のプライオリ性質に起因して適切に動作するようにセットアップされてよい。
【0014】
1つ以上の実施形態では、通信リンクを介して通信的に結合された複数のネットワークノードを有する通信ネットワーク内で使用するためのセキュリティシステムは、1つ以上のメッセージモジュールインターフェースを含み、これらのメッセージモジュールインターフェースのそれぞれが、ネットワークノードのうちの1つにあるプロセッサ上で実行して、ネットワークノードでのメッセージトラフィックを検出し、メッセージのそれぞれの1つ以上のメッセージ特徴を決定する。セキュリティシステムは、1つ以上のロジックルールを記憶するルールメモリも含み、セキュリティシステムは、プロセッサに記憶され、かつプロセッサ上で実行され、またルールメモリに結合された1つ以上のフィルタリングユニットを含み、フィルタリングユニットのそれぞれが、第1のフィルタリングモジュール及び第2のフィルタリングモジュールを含む。この場合、第1のフィルタリングモジュールは、プロセッサ上で実行し、メッセージ特徴情報に基づいて、ルールメモリに記憶された1つ以上のロジックルールを適用して、メッセージを伝達するか、メッセージを停止するか、またはメッセージを第2のフィルタリングモジュールに伝達する。さらに、第2のフィルタリングモジュールは、特定のメッセージ特徴の組を有するメッセージの数をカウントして、メッセージカウントを決定し、このメッセージカウントに基づいてメッセージを伝達するか、または特定のメッセージ特徴の組を有するメッセージを停止する。
【0015】
所望される場合、メッセージカウントは、特定期間内に受信された特定のメッセージ特徴の組を有する特定数のメッセージを含んでよい。なおもさらに、ルールメモリは、読み出し専用メモリ、読み出し/書き込みメモリ、または読み出し専用メモリである第1の部分及び読み出し/書き込みメモリである第2の部分を含むメモリであってよい。追加として、ルールメモリは、リムーバブルフラッシュメモリなどのフラッシュメモリであってよい。
【0016】
さらに、セキュリティシステムは、第1及び/または第2のフィルタリングモジュールに結合されたロギングモジュールを含んでよく、これがプロセッサ上で実行して、1つ以上の停止されたメッセージに関する情報を受信し、1つ以上の停止されたメッセージに関する情報をログまたはログファイルに記憶する。ロギングモジュールは、停止されたメッセージのもう1つのログをユーザに送信する通信インターフェースを含んでよく、停止されたメッセージに関するメタデータを記憶することができる。セキュリティシステムは、第2のフィルタリングモジュールに結合されているアラート生成モジュールも含み得るか、または代わりに含んでよく、アラート生成モジュールは、プロセッサ上で実行して、メッセージカウントが既定レベルに到達したときに、アラートをユーザに送信する。アラート生成モジュールは、メッセージカウントが既定レベルに到達したときに、通信ネットワークからデバイス(例えば、特定のタイプの、または特定の特徴の組を有する多数のメッセージを生成するネットワーク上の任意のデバイス)を切断するように動作してもよい。なおもさらに、1つ以上のフィルタリングユニットは、通信リンクからネットワークノードに入ってくるメッセージを受信して分析する第1のフィルタリングユニットと、ネットワークノード内で生成され、通信リンクを介して別のネットワークノードに送信されているメッセージを受信して分析する第2のフィルタリングユニットと、を含んでよい。
【0017】
1つ以上の他の実施形態では、通信ネットワーク内のメッセージトラフィックを安全にする方法は、通信ネットワークに接続されたデバイスで一連のメッセージを受信することと、デバイスにあるプロセッサを介して、一連のメッセージのそれぞれを分析して、メッセージのそれぞれの1つ以上のメッセージ特徴を決定することとを含む。この方法は、デバイスにあるプロセッサを介して、デバイスで記憶されるロジックルールの組に基づいて、メッセージのそれぞれをフィルタリングすることをさらに含み、このフィルタリングが、1つ以上の第1のメッセージ特徴の組を有するメッセージを伝達することと、1つ以上の第2のメッセージ特徴の組を有するメッセージを停止することと、1つ以上の第3のメッセージ特徴を有するメッセージをカウントすることとを含む。さらに、この方法は、1つ以上の第3のメッセージ特徴の組と関連付けられたカウントに基づいて、1つ以上の第3のメッセージ特徴の組を有するメッセージを伝達または停止することをさらに含む。
【0018】
さらに別の1つ以上の実施形態では、通信ネットワークは、通信リンクと、複数のネットワークノードとを含み、ネットワークノードのそれぞれが、通信リンクに結合されたネットワークデバイスを含み、プロセッサ、及びこのプロセッサ上で実行して、通信リンクを行き来するメッセージを処理する通信スタックを有する。なおもさらに、複数のネットワークノードのそれぞれは、1つ以上のメッセージモジュールインターフェースをさらに含み、メッセージモジュールインターフェースのそれぞれが、ネットワークノードにあるプロセッサ上で実行し、通信スタックから、または通信リンクから入ってくるメッセージトラフィックを検出して、メッセージのそれぞれの1つ以上のメッセージ特徴を決定する。複数のネットワークノードのそれぞれは、1つ以上のロジックルールを記憶し、プロセッサに記憶され、かつプロセッサ上で実行され、またルールメモリに結合されたフィルタリングモジュールを含む、ルールメモリも含み、これがルールメモリに記憶されたロジックルールの組を使用して、1つ以上の第1のメッセージ特徴の組を有するメッセージを伝達し、1つ以上の第2のメッセージ特徴の組を有するメッセージを停止して、1つ以上の第3のメッセージ特徴の組を有するメッセージをカウントする。フィルタリングモジュールは、1つ以上の第3のメッセージ特徴の組と関連付けられたカウントに基づいて、1つ以上の第3のメッセージ特徴の組を有するメッセージをさらに伝達または停止する。
【図面の簡単な説明】
【0019】
【
図1】プロセス制御ネットワーク内で使用され、ネットワークへの侵入の効果を制限し得る、構成可能なロバスト性エージェントを描く。
【
図2】1つ以上のロバスト性エージェントに基づくセキュリティシステムが実装され得る、複数の相互接続された通信ネットワークを有するプロセスまたは工業プラントの例示的なブロック図である。
【
図3】分散プロセス制御システム及びプロセス自動化ネットワークの形態の、オペレータ及び保守ワークステーション、サーバ、及びコントローラノードを含む様々なネットワークノードを有する、
図2のプラントネットワークのうちの1つの例示的な図であり、その中で
図1のロバスト性エージェントを使用するセキュリティシステムが、感染または易感染したノードの効果を制限し、それらを潜在的に検出するように動作する。
【発明を実施するための形態】
【0020】
一般的に言えば、本明細書に記載されるネットワークセキュリティシステムは、通信ネットワーク上の1つ以上のデバイスに入ってくる、及び/またはそこから出ていくネットワークトラフィックを分析して、メッセージタイプ、送信者、受信者、送信者/受信者の対などの1つ以上のメッセージ特徴に基づいて、全てはネットワークセキュリティを実行する目的で、メッセージが伝達されるべきか、フィルタリングされるべきか、またはさらに処理されるべきかを決定することによって、脅威検出及び脅威修復を実装する。場合によって、さらなる処理は、特定期間内に特定のタイプ(または他の特徴の組)を有するメッセージのボリュームをカウントすること、または検出することを含んでよい。さらなる処理は、伝達されるか、または隔離される(例えば、消去される)かのいずれかである特定タイプの、または他の特徴の組を有するメッセージをもたらし得、及び/またはノードで侵入検出を実行する、デバイスをネットワークから外してネットワークをデバイス内の感染から保護するなどのいくつかの他の措置が講じられ得る。本明細書に記載されるセキュリティシステムは、工業システムまたはプロセス制御ネットワーク構成のプライオリ性質が、特定のネットワーク構成から生じる、予想または既知のトラフィック統計に基づいて、基本的なメッセージトラフィックが分析される(及び比較的既知であり静的となる)のを可能にするため、有効に実行する。すなわち、プロセス制御、工業システム、またはプラント自動化ネットワーク内のネットワーク通信の構成は、一般に、通信ネットワークの実装または動作前にある程度周知であり、故にネットワークトラフィックの基本的な構成は、これらのネットワークの使用または動作中に著しく変化する傾向はない。代わりに、ネットワーク通信トラフィックは、通信ネットワークの動作中に(統計的意味で)比較的静的である傾向があり、故に、ネットワークメッセージまたはメッセージパターンのタイプまたは特徴の変化は、特に統計的な意味において、元の構成または所望の構成の一部でないネットワークへの侵入を示し得る。
【0021】
一般的に言えば、例えば、イーサネットインターフェースを有する工業制御システムデバイスは、デバイス動作に悪影響を及ぼす可能性がある様々なネットワークトラフィックパターン及び条件に曝される。本明細書に記載されるセキュリティシステムは、ネットワーク上のデバイスへの出入りなどの、ネットワーク上の特定のメッセージトラフィックパターンを規制するルールで構成または更新されることができる。しかしながら、制御システムオペレータは、変則的なトラフィックにもかかわらずロバストであるデバイスを必要とし、故に、本明細書に記載されるセキュリティシステムは、有害なデバイス動作を防ぐためにトラフィックを適切に検出して扱うように動作中に構成されてよい。場合によって、ルールは、動的に構成可能であってよく、ルールは、予測的保護を提供するための条件または他のルールに基づく依存性を有してよく、ルールは、有効なロバスト動作を提供するように他のルールを動的に発動してよく、またルールは、特定のインストールにおいて特定のトラフィックパターンに適合可能であってよい。さらに、本明細書に記載されるセキュリティシステムは、ネットワークが動作可能である間に、動的に発見された有害なトラフィックパターン及び/または条件から保護するためのルールを自動的に作成することができる。なおもさらに、場合によって、セキュリティシステムは、それらのデバイスから出る出口トラフィックを分析し、許可されたトラフィックルールまたはメッセージタイプに一致しない変則的なトラフィックを破棄することによって、易感染された制御システムデバイスまたはノードからの攻撃を特定して防ぐことができ、それにより、悪意のあるネットワーク攻撃を開始する制御システムでのこれらのデバイスの使用を防ぐ。
【0022】
より具体的に、本明細書に記載されるセキュリティシステムは、セキュリティが行われる通信ネットワークの1つ以上のノードに位置する構成可能なロバスト性エージェントを含む。一般的な意味において、構成可能なロバスト性エージェントは、ある特定の既定の特徴を有する特定のタイプ、流れ、またはパターンのメッセージの存在が、ノード内で動作する(もしくはいくつかの他のノードでは、そのノードを攻撃する)マルウェアを示し得るが、またはそうでなければノード上またはノードからの攻撃を示し得るという理論下で、通信ノードに出入りするメッセージトラフィックの流れを管理(例えば、制限)するように動作する。ロバスト性エージェントは、ノードに流入するか、またはノードから流出するメッセージのそれぞれを分析して、メッセージが、(1)予想される、(2)予想されない、または(3)ある程度予想されるが、制限されたボリュームもしくはレベルに限られる、特徴を有するかどうかを決定することによって、そのような攻撃の効果を制限するように動作する。着信メッセージが、ネットワーク通信内で予想される特徴(例えば、メッセージタイプ、ある特定の送信者もしくは受信者、または送信者/受信者の対など)の組を有する場合、ロバスト性エージェントは、単にメッセージを伝達することができる(メッセージがネットワークからの着信メッセージであるときはノード内に、またはメッセージがノードからの発信メッセージであるときはネットワークリンク上に)。着信メッセージが、受信または送信デバイスでのネットワーク通信で予想されない特徴(例えば、メッセージタイプ、ある特定の送信者もしくは受信者、または送信者/受信者の対など)の組を有する場合、ロバスト性エージェントは、メッセージがノード内のより高レベルの通信スタックに到達すること(メッセージがネットワークからの着信メッセージであるとき)、またはネットワークリンク上に配置されることを防ぐように、メッセージを削除、フィルタリング、または隔離してよい。着信メッセージが、ネットワーク通信内である程度予想されるが、制限されたレベルまたはボリュームに限られる特徴(例えば、メッセージタイプ、ある特定の送信者もしくは受信者、または送信者/受信者の対など)の組を有する場合、ロバスト性エージェントは、そのタイプの、またはその特徴の組を有するメッセージをカウントして、ある特定の期間にわたってロバスト性エージェントを通過する、そのタイプの、またはその特徴の組を有するメッセージの数を決定することができる。
【0023】
この場合、ロバスト性エージェントは、ボリュームが特定レベルよりも低い場合、メッセージを伝達し得、ボリュームが特定レベルまたは閾値を超える場合は、メッセージをブロックまたは隔離し得る。さらに、ボリュームが特定レベルを超え、ノードが攻撃下にあるか、またはマルウェアもしくはネットワークを攻撃している感染を有することを示す場合、ロバスト性エージェントは、さらなる措置を講じて通信ネットワークを保護し得る。例えば、ロバスト性エージェントは、そのノードが特定タイプのいくつかのメッセージをネットワーク上に送信しているときに、ロバスト性エージェントが位置するノードを切断してもよい。代替として、ロバスト性エージェントが別のノードからの攻撃を検出したとき(他のノードからの疑わしいメッセージの数またはボリュームに基づいて)、ロバスト性エージェントは、信号またはメッセージを他のノードに(例えば、通信ネットワーク上で)送信して、他のノード自体をネットワークから切断させることができる。これらまたは他の場合、ロバスト性エージェントは、ユーザまたはオペレータに潜在的な攻撃及び攻撃の詳細の一部を通知し得るか、ネットワークの1つ以上のノードでマルウェアまたは侵入検出アプリケーションを起動して、これらのノードにウイルス、マルウェア、または他の侵入があるかどうかを決定し得るか、または任意の他の所望の措置を講じ得る。
【0024】
所望される場合、ロバスト性エージェントは、ロバスト性エージェントが、それが位置する特定のネットワーク環境、それが位置する特定のノードなどにおいて、より良好に適合されるのを可能にするように構成可能であり得る。具体的に、ロバスト性エージェントは、特定のノードに出入りする予想されるメッセージトラフィックに基づいて構成可能であり得、これはノードのタイプ(例えば、コントローラノード、ユーザインターフェースノード、データベースノードなど)に基づいて、ノードの場所などに基づいて変更され得るか、または異なり得る。さらに、ロバスト性エージェントの構成可能な性質は、ノードでのメッセージトラフィックの検出された統計に基づいて、または通信システムの1つ以上のノードの構成の変化に応答するなどして、より良好に動作する(例えば、構成される)のを可能にし得る。
【0025】
図1は、上記の機能を実行するために通信ネットワーク内で使用され得る、例示のロバスト性エージェントまたはモジュール10を示す。具体的に、ロバスト性モジュール10は、ネットワークノードのインターフェース(例えば、ネットワークデバイス)及びネットワークリンク12の物理層に配設される。より具体的に、ロバスト性モジュール10は、ネットワークリンク12に接続されるイーサネットドライバ14などのネットワークドライバと、ネットワークデバイスのネットワーク通信スタック16の高次層との間に結合され得る。
図1に示されるように、ロバスト性モジュール10は、インバウンド構文フィルターモジュール20、及びドライバ14とネットワークスタック16との間に結合されたインバウンドボリュームフィルターモジュール22を含み、ネットワークリンク12からネットワークデバイスに送信されるメッセージを処理することができる。ロバスト性モジュール10は、アウトバウンド構文フィルターモジュール30、及びネットワークスタック16とドライバ14との間に結合されたアウトバウンドボリュームフィルターモジュール32を含み、ネットワークデバイス(ネットワーク通信スタック16)からネットワークリンク12に送信されるメッセージを処理することもできる。ロバスト性モジュール10はまた、モジュール20、22、30、及び32のそれぞれに接続された破棄されたメッセージロギングブロック40、モジュール20、22、30、及び32のうちの1つ以上によって実装され得る構成ルール(例えば、ロジックルール)を記憶するルールメモリ42、ならびにルールメモリ42においてルールを構築(例えば、確立または変更)するために使用され得るルールビルダーブロック44も含む。なおもさらに、ロバスト性モジュール10は、ボリュームフィルター22または32のうちの一方が、相当量の特定タイプの(例えば、特定の特徴の組を有する)メッセージを検出したときに、アラートをユーザに提供するように動作し得るアラートジェネレータ46を含んでよい。アラートジェネレータ46はさらにまたは代わりに、ネットワークのこのデバイスもしくは異なるノードでマルウェアもしくはウイルス検出ソフトウェアを起動する、デバイスをネットワークから切断する、またはネットワークの別のノードにあるロバスト性エージェントにメッセージを送信して、そのノードが自らをネットワークから切断させるなどの他のアクションを実行することができる。
【0026】
動作中、メッセージは、通信リンク12から受信され、ドライバ14で処理されて、例えば、リンク12上のメッセージのそれぞれが、特定のネットワークデバイスに、またはそのデバイス内もしくはそれと関連付けられたアドレスもしくはアプリケーションにアドレス指定されたかを決定する。当然のことながら、ドライバ14は、
図1に示されるイーサネットドライバなどの任意の既知または所望のタイプのネットワークドライバであり得、任意の既知の方法で動作することができる。その後、ネットワークデバイスに向けられたメッセージは、これらのメッセージを分析して、メッセージの1つ以上の特徴を決定する、インバウンド構文フィルターモジュール20の入力49に伝達される。これらの特徴は、メッセージのタイプ(例えば、UDP、TCPなど)、メッセージと関連付けられた送信者及び/または受信者、メッセージの長さ、パリティ、セキュリティタイプ、メッセージの優先度、メッセージを送信もしくは受信するポート、または任意の他の所望のメッセージ特徴を含んでもよい。これらの1つ以上のメッセージ特徴は、一般に、ヘッダー及び/もしくはトレーラー、またはメッセージの他の隠蔽部分の情報に見出され得るか、またはそれから決定され得るが、メッセージのペイロードまたはデータ部分の特徴が、フィルタリングのために審査され、使用されてもよい。
【0027】
一般的に言うと、インバウンド構文フィルターモジュール20は、各メッセージの1つ以上の特徴の組を決定する(この特徴の組は、ルールメモリ42に記憶され得るか、もしくはそれによって提供され得るか、または構文モジュールフィルター20にハードコードされ得る)。メッセージと関連付けられた1つ以上の特徴の組を決定した後、次に構文フィルターモジュール20は、これらの決定された特徴に基づいて動作する1つ以上のロジックルールを適用して、このメッセージをさらに処理する方法を決定する。具体的に、決定されたメッセージ特徴及びルールメモリ42内のルールに基づいて、構文フィルターモジュール20は、メッセージ(安全または予想されるメッセージであるとみなされる)を出力50から直接ロバスト性モジュール10の出力に、故にネットワークデバイスのネットワーク通信スタック16の次の層上に伝達することができ、メッセージがデコードされ、処理されて、ネットワークデバイス内の適切な受信者に任意の標準方法で伝達される。他の場合、決定されたメッセージ特徴及びルールメモリ42内のルールに基づいて、構文フィルターモジュール20は、メッセージ(安全でない、またはネットワーク内で明らかに許可されていないとみなされる)を出力52から破棄されたトラフィックロギングブロック40に伝達され得、これがこのメッセージ、このメッセージに関するメタデータ、またはネットワーク侵入を分析する際、ルールメモリ42内のルールを変更して、より良好またはより正確なフィルタリングを実行する際などに今後使用するためのメッセージに関する他の情報をログすることができる。さらに他の場合、決定されたメッセージ特徴及びルールメモリ42内のルールに基づいて、構文フィルターモジュール20は、メッセージ(潜在的に安全でないとみなされる)をインバウンドボリュームフィルターモジュール22の出力54から入力55に伝達してもよい。
【0028】
一般的に言えば、これらのメッセージは、あるタイプであり得るか、または正当なネットワークトラフィックで使用され、また典型的なマルウェアまたはウイルスによってシステムを特にボリュームで攻撃するために使用される特徴を有し得るため、インバウンドボリュームフィルターモジュール22は、これらのメッセージが、必ずしもそうではないが、正当であり得ることを示す特徴を有するメッセージを扱う。インバウンドボリュームフィルターモジュール22は、これらのメッセージを受信し(インバウンド構文フィルターモジュール20によって検出される)、これらのメッセージを(1つ以上のカウンターを使用して)カウントして、追加として、特定期間にわたって、または過去の特定期間にわたって、そのようなメッセージがいくつ受信されたかを記録し得る。故に、インバウンドボリュームフィルターモジュール22は、ある特定のメッセージ特徴の組を有するメッセージのメッセージトラフィックのボリューム(例えば、特定期間にわたる、または特定期間内のメッセージの数)を決定する。当然のことながら、インバウンドボリュームフィルターモジュール22は、任意の数の異なるメッセージ特徴の組に対してメッセージボリュームを追跡することができる。
【0029】
いずれにしても、あるメッセージタイプ(すなわち、特定の特徴の組を有するメッセージ)の現在のボリュームが既定の閾値よりも低い場合(閾値はルールメモリ42に記憶され得る)、インバウンドボリュームフィルターモジュール22は、ネットワークデバイス内で処理するために、出力56を介してスタック16にメッセージを伝達することができる。反対に、あるメッセージタイプ(すなわち、特定の特徴の組を有するメッセージ)の現在のボリュームが既定の閾値を超える場合(閾値はルールメモリ42に記憶され得る)、インバウンドボリュームフィルターモジュール22は、例えば、出力57を介して破棄されたトラフィックロギングブロック40にメッセージを提供することによって、メッセージをブロックまたは破棄することができる。ここでも同様に、ブロック40は、メッセージ及び/またはメッセージに関するメタデータをログして、これらのブロックされたメッセージに関する統計を決定することができる。なおもさらに、インバウンドボリュームフィルターモジュール22は、あるメッセージタイプの現在のボリュームを、複数の閾値と比較し得るか、または複数の閾値を使用して、講じられる措置を決定し得る。例えば、メッセージがボリュームフィルターモジュール22で受信され、このタイプのメッセージの現在検出されたボリュームが、第1の(例えば、より低い)閾値よりも低い場合、ボリュームフィルターモジュール22は、このメッセージをネットワークデバイスのスタック16に伝達し得る。しかしながら、メッセージがボリュームフィルターモジュール22で受信され、このタイプのメッセージの現在の検出されたボリュームが、第1の(例えば、より低い)閾値よりも大きいが、第2の(例えば、より高い)閾値よりも低い場合、ボリュームフィルターモジュール22は、メッセージをロギングブロック40に送信することによってメッセージをブロックし得る。しかしながら、メッセージがボリュームフィルターモジュール22で受信され、このタイプのメッセージの現在の検出されたボリュームが、第2の(例えば、より高い)閾値よりも高い場合、ボリュームフィルターモジュール22は、メッセージをブロックし得(メッセージをロギングブロック40に送信することによって)、ネットワークを保護するためにいくつかのさらなる措置を実行することもできる。例えば、第2以上のボリューム閾値が伝達されたとき、ボリュームフィルター22は、ネットワークデバイス上の潜在的な攻撃を示すアラートをユーザに送信し得る、アラートジェネレータ46と通信することができ、ネットワークデバイスをネットワークリンク12から切断して、デバイスを攻撃から保護することができ、メッセージを送信するデバイスなどの別のデバイスにメッセージを送信して、ネットワークを保護するためにそのデバイス自体をネットワークから切断させることができ、デバイス内でマルウェアまたはウイルス検出ソフトウェアを起動することができる。当然のことながら、アラートジェネレータ46を提供するか、またはネットワーク内で異なる措置を取らせるために、任意の数の異なるボリュームレベル閾値が確立されてよい。
【0030】
図1に示されるように、ロバスト性モジュール10は、アウトバウンド構文フィルターモジュール30及びアウトバウンドボリュームフィルターモジュール32によって定義されたアウトバウンドフィルタリングパスも含む。この場合、モジュール30及び32が、ネットワークリンク12を介して別のデバイスに送信される、通信スタック16から受信された発信メッセージ上で動作することを除いて、アウトバウンド構文フィルターモジュール30は、インバウンド構文フィルターモジュール20と同様に動作し、アウトバウンドボリュームフィルターモジュール32は、インバウンドボリュームフィルターモジュール22と同様に動作する。さらに、モジュール30及び32は、それぞれモジュール20及び22によって使用されるものと同じルールを使用し得るが、モジュール30及び32は、インバウンドメッセージに適用されるものとは異なるアウトバウンドメッセージ上のフィルタリング動作を許可するように異なるルールを使用し得る。故に、モジュール30及び32は、インバウンドメッセージ上で動作するモジュール20及び22に関して上記のものと本質的に同じ方法で、アウトバウンドメッセージ上で一緒に動作し、それにより、ロバスト性モジュール10が位置するノードまたはデバイス内に常駐する潜在的なマルウェア及び感染からネットワーク上の他のデバイスを保護する。したがって、アウトバウンドモジュール30及び32は、ロバスト性エージェント10と関連付けられたデバイス内に常駐するマルウェア、ウイルス、または他のソースの存在を検出するように動作することができ、また例えば、ボリュームフィルター32が、既定レベルまたはボリュームの、特定タイプまたは構成のアウトバウンドメッセージがデバイスから送信されるのを検出したときに、アラートジェネレータ46と通信して、アラートジェネレータにアラートをユーザに送信させる、及び/またはそのデバイスをネットワークから切断させるように動作することができる。
【0031】
動作中、ロギングブロック40は、破棄されたメッセージを受信、分析、及び追跡するように動作し得る。具体的に、ロギングブロック40は、破棄されたメッセージのそれぞれに関する、タイミング、送信者/受信者、メッセージのタイプ、メッセージの長さ、構文またはボリュームフィルターモジュールでメッセージが破棄された理由などを含む様々なメタデータを決定することができ、これらのメッセージに対するログを作成し得る。ブロック40は、着信及び発信メッセージに対して、各メッセージのタイプに対して、メッセージの各送信者/受信者に対してなど、別個のログを作成することができる。当然のことながら、ロギングブロック40は、任意の他のタイプのログを作成してもよく、またこれらのログをユーザインターフェース、データベースデバイス、または任意の他のデバイスに、要求に応じて、ログがある特定の長さになると定期的に、または任意の他の所望のトリガー事象に応答して送信し得る。なおもさらに、ロギングブロック40は、そのように所望される場合、予め構成された、及びハードコードされたルールに基づいて、またはルールリスト42からのルールに基づいて、情報をログする、及び/または破棄されたメッセージに関するログ情報を送信することができる。このように、破棄されたメッセージのロギングも同様に構成され得る。ロギングブロック42は、そのように所望される場合、ネットワークリンク12上でログをエクスポートし得るか、またはローカル接続などのロバスト性モジュール10への任意の他の通信接続を介してログをエクスポートし得る。
【0032】
同様に、上で示されるように、構成可能なルールリスト42は、インバウンド構文フィルターモジュール20、インバウンドボリュームフィルターモジュール22、アウトバウンド構文フィルターモジュール30、アウトバウンドボリュームフィルターモジュール32、ロギングブロック40、及び変更ジェネレータ46のそれぞれに対するルールを記憶することができる。これらのルールは、別のアプリケーションと通信し得る(ネットワークリンク12を介して、またはブルートゥース接続、無線インターネット接続、携帯デバイスからの断続的ハードワイヤ接続などのロバスト性モジュール10への任意の他の通信接続を介して)ルールビルダーモジュール44を介して構成可能であり、ルールリスト42に記憶されたルールを構築するために使用される1つ以上のルールを受信することができる。他のアプリケーションは、ネットワークリンク12上のユーザインターフェース(例えば、構成インターフェース)に記憶される、または例えば、ハードワイヤもしくは無線通信接続など)を介してモジュール10に断続的に接続する形態デバイスに記憶されるルールビルダーアプリケーションであってよい。所望される場合、ルールビルダー44は、モジュール10に対する通信インターフェースであり得、ルールリスト42に記憶されたルールのオンラインまたは動作中構成を可能にし、それにより、ロバスト性モジュール10がネットワーク上の新しい構成、メッセージトラフィックの統計の変更などに照らして再構成されるのを可能にする。しかしながら、所望される場合、ルールビルダー44は、デバイスに内在し得るか、またはロバスト性モジュール10が位置するデバイスのインターフェース(例えば、USBポートもしくは他の外部メモリポート)にプラグインされ得る書き込み保護されたフラッシュメモリであり得る。そのようなフラッシュメモリは、使用中に書き込み可能でないため、フラッシュメモリ上に記憶されたルールを変更することができず、これがロバスト性モジュール10をルールリスト42の変更を介して感染され得ることから保護する。すなわち、ルールリスト42を変更するために、フラッシュメモリ44は、除去され、ロバスト性モジュール10内で使用するために、その上に新しいルールで置き換えられる必要がある。ルールリスト42のこの構成がロバスト性モジュール10を侵入からより安全にする一方で、システムを動作中に構成しにくくもする。当然のことながら、所望される場合、ルールメモリ42は、ルールビルダー44と同じモジュールに組み込まれ得る。ある場合では、ルールリスト42内のルールのうちのいくつかは、フラッシュメモリに記憶され得、故に構成可能でないが、これらのルールは、動作中に変更することができるルールリスト42などのメモリに記憶されたリストを使用することができ、それにより、ロバスト性モジュール10のいくらかの動作中構成を許可する。単なる例示の目的で、下の表1は、ロバスト性モジュールのインバウンド及びアウトバウンド構文及びボリュームフィルターのそれぞれに使用され得る例示のルールの組を提供する。表1は、各ルールに対して、そのルールがフラッシュメモリに記憶されているかどうか、ルールが構成可能であるかどうか、ルールがWindowsオペレーティングシステム実装を使用するかどうか、及びルールがネットワーク内の組み込みデバイス(例えば、コントローラ)において使用されるかどうかも定義する。当然のことながら、表1は、特定のロバスト性モジュール10において使用され得るルールの組の1つの実施例のみを提供し、任意の他のタイプ及び数のルールが、任意の特定のロバスト性モジュール10で使用され得る。
【表1】
【表2】
【表3】
【0033】
単なる実施例として、
図2及び3は、
図1のロバスト性モジュール10のうちの1つ以上で作製されたネットワークセキュリティシステムが、インストールされて使用され得る、例示のプラントネットワークを示す。具体的に、
図2は、それぞれが様々なネットワークノードを有する、異なるが相互接続されたいくつかの通信ネットワーク112、114、116、及び118を含むプラントまたは工業通信システム110を示す。
図2の通信ネットワーク112は、例えば、イーサネットバスまたは任意の他の有線もしくは無線通信バスもしくはネットワークであり得る、通信バス124によって相互接続された複数のノード122A〜122Hを含むビジネス通信ネットワークであってよい。ノード122A、122Bは、例えば、ビジネスアプリケーションまたはプログラムが実行するコンピュータ、サーバ、ワークステーションなどを含んでよく、またノード122Cは、例えば、ビジネスデータ、工業プラント構成データ、またはプラントに関する任意の他の所望のデータを記憶するデータベースであってよい。同様に、ノード122D、122E、及び122Fは、ネットワーク112を他の通信ネットワーク114、116、118にそれぞれ接続して、ネットワーク間通信を許可するゲートウェイノードであり得る。なおもさらに、ノード122Gは、ネットワーク112をインターネット、クラウド、または他の広域ネットワークに接続して、ネットワーク112が遠隔サーバ、プラント、または他のコンピュータと通信するのを可能にするゲートウェイノードであり得る。
【0034】
この例では、ネットワーク114、116、及び118は、有線または無線通信バスまたはネットワークリンクによって相互接続された様々なノードを含む、プラント(プロセスプラントまたは工業プラントなど)制御ネットワークである。プラント制御ネットワーク114、116、118のそれぞれは、様々なタイプのデバイスのうちのいずれかをそのノードに含んでよい。例えば、プラント制御ネットワーク114及び116は、有線通信ネットワークとして示され、それぞれが1つ以上のユーザインターフェースデバイス130と、ネットワーク114及び116に対するプラント制御ネットワーク構成データを記憶し得るデータベースまたはヒストリアン132と、この場合はイーサネット通信バスの形態の、通信バス136を介して相互接続された1つ以上のプロセスコントローラノード134と、1つ以上のサーバまたはプロセッサノード138とを含む。プロセス制御ノード134は、入力/出力(I/O)及びフィールドデバイス(例えば、センサ、バルブ、制御デバイス)などの、1つ以上の有線または無線サブネットワーク140を介して他のデバイスに通信可能に結合された1つ以上のプロセスコントローラを含んでよい。サブネットワーク140内のフィールドデバイスは、例えば、バルブ、センサ、トランスミッタ、またはプラント内のいくつかのパラメータもしくはプロセス変数を計測するか、またはプラント内の材料動作もしくは材料の流れに関連するいくつかの物理的制御動作を実行する、他の計測もしくは制御デバイスの形態を取り得る。フィールドデバイスサブネットワーク140は、例えば、ハイウェイアドレス可能遠隔トランスミッタ(HART(登録商標))プロトコル、FOUNDATION(登録商標)フィールドバスプロトコル、Profibusプロトコル、CANプロトコルなどの任意の所望のプロセス制御通信プロトコルまたはパラダイムを使用し得る。なおもさらに、フィールドデバイスサブネットワーク140は、WirelessHART(登録商標)ネットワークなどの有線または無線ネットワークとして実装されてよい。ネットワーク114及び116は、ネットワーク114及び116をネットワーク112、インターネット、または他のWANなどに接続するノード122D、122Eにゲートウェイデバイスを含んでもよい。当然のことながら、これらのゲートウェイデバイスは、ファイアウォール及び他のセキュリティ機構またはアプリケーションを提供することができる。
【0035】
同様の方法で、通信ネットワーク118は、無線イーサネットプロトコル、WirelessHART(登録商標)プロトコル、ISA100無線プロトコルなどの無線通信プロトコルを使用し得る無線通信ネットワークとして示される。通信ネットワーク118は、ユーザインターフェースデバイスまたはワークステーション130、データベース132、プロセスコントローラ134、サーバ136、フィールドデバイスサブネットワーク140、ゲートウェイデバイス139などの様々なデバイスを含むように示される。当然のことながら、任意の数のこれらのタイプ及び他のタイプのデバイスは、通信ネットワーク114、116、及び118の様々なノードに位置し得る。ネットワーク112、114、116、及び118内のネットワークデバイスのうちのいずれかまたは全てが、
図1のロバスト性モジュール10と関連付けられる、及び本明細書に記載されるモジュールのうちのいずれかを含む、様々なソフトウェアモジュールが記憶されて実行され得る、1つ以上のコンピュータ可読メモリ及びプロセッサを含んでよいことが理解されるであろう。
【0036】
重要なことに、本明細書に記載されるセキュリティシステムは、
図2のネットワーク112、114、116、及び118のうちのいずれか及び全てにおいて実装され、例えば、マルウェアまたはこれらのネットワークの様々なノード内で実行する他の不正アプリケーションの形態の、これらのネットワークへの侵入の効果を制限することができる。一般的に言えば、ネットワーク112、114、116、及び118のそれぞれに対する、またはさらにはネットワーク112、114、116、118のうちのいずれかにあるノードのそれぞれに対する別個のロバスト性モジュールに基づくセキュリティシステムが存在し得る。一方で、場合によって、単一セキュリティシステムを使用して、ネットワーク114及び116、またはネットワーク112及び114などのネットワーク112〜118のうちの複数をカバーしてもよい。
【0037】
実施例として、
図2のネットワーク114、116、及び118に概して示されるように、ロバスト性モジュールに基づくセキュリティシステムは、これらの各ネットワークのノードのそれぞれのインターフェース(例えば、通信スタック内)及びこれらのネットワークが取り付けられる通信リンクに位置するロバスト性モジュール210を含む。ここで、ロバスト性モジュール210(本明細書では、トランジットトラフィック分析エージェントとも称される)は、
図1のロバスト性モジュールまたはエージェント10として上述される形態であってよい。追加として、
図2は、各ネットワークの各ノードでのロバスト性モジュールを示すが、必ずしも保護されるネットワークの各ノードに別個のロバスト性モジュールを提供する必要がないこともある。代わりに、本明細書に記載されるセキュリティは、ネットワークの各ノードに位置するロバスト性モジュールを有する必要なしに、ネットワーク内で1つ以上のロバスト性モジュールを使用することができる。例えば、セキュリティシステムは、ユーザインターフェースデバイスなどのより複雑なデバイスにロバスト性モジュール210を有することなく、コントローラなどのネットワークの組み込みデバイスのネットワークインターフェースにロバスト性モジュール210を含んでよい。いずれにしても、ロバスト性モジュール210は、ネットワーク内の任意の所望のデバイスにおいて、任意の所望の方法でインストールされることができ、これらのロバスト性モジュールを使用するセキュリティシステムは、本明細書において具体的に説明される実施例に限定されない。さらに、セキュリティシステムは、ネットワーク112、114、116、及び118のノードのうちの1つ以上に位置する構成及びユーザインターフェースサポートモジュール211を含んでよい。ユーザインターフェースサポート及び構成アプリケーション211は、コンピュータ可読メモリ内に記憶され、これらのデバイスのプロセッサ上で実行して、ロバスト性モジュール210のうちのいずれかのルールリスト42内のルールを構成する能力をユーザに提供し、保護されるネットワークのロバスト性モジュール210のうちのいずれかまたは全ての破棄されたトラフィックログをユーザが見るのを可能にしてよく、どのデバイスまたはノードがオフラインで実行されるか、または多量の疑わしいメッセージトラフィックを送信または受信することに関して現在疑わしいかをユーザが把握できるようにしてよく、ユーザがより良好な、または強化されたセキュリティを提供するようにロバスト性モジュール210のうちのいずれかを構成するのを可能にする環境を提供してもよい。
【0038】
一般的に言えば、ロバスト性モジュール210のそれぞれは、モジュール内のルールにより、インバウンド及びアウトバウンドメッセージを見るか、または分析して、メッセージを伝達すること、疑わしいメッセージをブロックすること、及び/またはメッセージ上でボリュームフィルタリングをカウントして実行するのを許可する。ロバスト性モジュール210は、独立して動作し得るか、または特定のネットワーク内もしくはさらにはネットワークにわたって、調整されたメッセージフィルタリングを提供するように調整され得る。
【0039】
さらなる実施例として、
図3は、
図2の通信ネットワーク114をより詳細に示す。この実施例において、通信ネットワーク114は、ゲートウェイデバイス(例えば、他のネットワーク226へのゲートウェイ、外部システム228へのゲートウェイ、例えば、インターネット)、もう1つのユーザインターフェースデバイスまたはワークステーション230、構成データベース232、サーバ233、及び2つのプロセス制御ノード234A及び234Bなどの様々なデバイスを相互接続する1つ以上のスイッチ202を含み得る、有線イーサネットバス200を含む。ここで、第1のプロセス制御ノード234Aは、入力/出力(I/O)カード236及び238を介して有線フィールドデバイス215〜222に通信可能に接続され、無線ゲートウェイ235及びネットワークバックボーン200を介して無線フィールドデバイス240〜258に通信可能に接続された1つ以上の冗長プロセスコントローラ260を含む。この場合、無線ゲートウェイ235は、ネットワーク114の第2の制御ノード234Bである。しかしながら、別の実施形態では、ノード234Aにあるコントローラ260は、バックボーン200以外の通信ネットワークを使用して、例えば、別の有線または無線通信リンクまたはI/Oモジュールを使用することによって、無線ゲートウェイ235に通信可能に接続され得る。
【0040】
例として、Emerson Process Managementによって販売されているDeltaV(商標)コントローラであり得るコントローラ260は、フィールドデバイス215〜222及び240〜258のうちの少なくともいくつかを使用して、1つ以上のバッチプロセスまたは連続プロセス、保守アプリケーション、安全システムアプリケーションなどを実装するように動作し得る。コントローラ260は、例えば、標準4〜20maデバイスプロトコル、及び/またはFOUNDATION(登録商標)フィールドバスプロトコル、HART(登録商標)プロトコル、WirelessHART(登録商標)プロトコルなどの任意のスマート通信プロトコルと関連付けられた任意の所望のハードウェア及びソフトウェアを使用して、フィールドデバイス215〜222及び240〜258に通信可能に接続され得る。コントローラ260は、追加として、または代替として、入力/出力(I/O)カード236、238を介して、フィールドデバイス215〜222及び240〜258のうちの少なくともいくつかと他のタイプの接続を介して通信可能に接続されてよい。
図3に示されるネットワーク114において、コントローラ260、フィールドデバイス215〜222、及びI/Oカード236、238は、有線デバイスであり、フィールドデバイス240〜258は、無線フィールドデバイスである。当然のことながら、有線フィールドデバイス215〜222及び無線フィールドデバイス240〜258は、任意の他の所望の標準(複数可)またはプロトコル、例えば、今後開発される任意の標準またはプロトコルを含む、任意の有線または無線プロトコルに準拠し得る。
【0041】
図3のコントローラ260は、制御ループを含み得る、1つ以上のプロセス制御ルーチン(メモリ272に記憶される)を実装または管理するプロセッサ270を含む。プロセッサ270は、制御活動または保守、モニタリング、及び安全システム活動などの他の活動を実行するために、フィールドデバイス215〜222及び240〜258、ならびにネットワークバックボーンまたはリンク200に通信可能に接続された他のノードと通信し得る。制御ルーチンまたはモジュールのうちのいずれかが、そのように所望される場合、異なるコントローラまたは他のデバイスによってその部分を実装または実行させ得ることに留意すべきである。同様に、プロセス制御システム内で実装される制御ルーチンまたはモジュールは、ソフトウェア、ファームウェア、ハードウェアなどを含む任意の形態を取り得る。制御ルーチンは、例えば、オブジェクト指向のプログラミング、ラダーロジック、シーケンシャル機能チャート、機能ブロックダイヤグラムを使用するか、または任意の他のソフトウェアプログラミング言語またはデザインパラダイムを使用して、任意の所望のソフトウェアフォーマットで実装され得る。制御ルーチンは、ランダムアクセスメモリ(RAM)または読み出し専用メモリ(ROM)などの任意の所望のタイプのメモリに記憶されてよい。同様に、制御ルーチンは、例えば、1つ以上のEPROM、EEPROM、特定用途向け集積回路(ASIC)、または任意の他のハードウェアもしくはファームウェア素子にハードコードされ得る。故に、コントローラ260は、任意の所望の方法で制御戦略または制御ルーチンを実装するように構成され得る。
【0042】
いくつかの実施形態では、コントローラ260は、一般に機能ブロックと称されるものを使用して制御戦略を実装し、各機能ブロックが、オブジェクトまたは制御ルーチン全体の他の部分(例えば、サブルーチン)であり、他の機能ブロックと共に(リンクと呼ばれる通信を介して)動作して、プロセス制御システム内でプロセス制御ループを実装する。制御ベースの機能ブロックは、典型的に、トランスミッタ、センサ、または他のプロセスパラメータ計測デバイスと関連付けられるものなどの入力機能、比例積分導関数(PID)、ファジーロジックなどの制御を実行する制御ルーチンと関連付けられるものなどの制御機能、制御、またはバルブなどのいくつかのデバイスの動作を制御して、プロセス制御システム内のいくつかの物理的機能を実行する出力機能のうちの1つを実行する。当然のことながら、ハイブリッド及び他のタイプの機能ブロックが存在する。機能ブロックは、コントローラ260に記憶され、それによって実行され得るか(典型的に、これらの機能ブロックが標準4〜20maデバイス及びHARTデバイスなどのいくつかのタイプのスマートフィールドデバイスに使用されるか、もしくはそれと関連付けられる場合である)、またはフィールドデバイス自体に記憶され、それによって実装され得る(フィールドバスデバイスを用いる場合であり得る)。コントローラ260は、1つ以上の制御ループを実装し得る1つ以上の制御ルーチン280を含んでよい。各制御ループは、典型的に、制御モジュールと称され、機能ブロックのうちの1つ以上を実行することによって実行されてよい。
【0043】
有線フィールドデバイス215〜222は、センサ、バルブ、トランスミッタ、ポジショナなどの任意のタイプのデバイスであり得るが、I/Oカード236及び238は、任意の所望の通信またはコントローラプロトコルに準拠する任意のタイプのI/Oデバイスであり得る。
図3に示される実施形態では、フィールドデバイス215〜218は、アナログラインまたは組み合わされたアナログ及びデジタルライン上でI/Oカード226に通信する標準4〜20maデバイスまたはHARTデバイスであるが、フィールドデバイス219〜222は、FOUNDATION(登録商標)フィールドバス通信プロトコルを使用してデジタルバス上でI/Oカード238に通信するFOUNDATION(登録商標)フィールドバスフィールドデバイスなどのスマートデバイスである。しかしながら、いくつかの実施形態では、有線フィールドデバイス215〜222のうちの少なくともいくつか及び/またはI/Oカード236、238のうちの少なくともいくつかは、ビッグデータネットワークを使用してコントローラ260と通信し得る。いくつかの実施形態では、有線フィールドデバイス215〜222のうちの少なくともいくつか及び/またはI/Oカード236、238のうちの少なくともいくつかは、プロセス制御システムネットワーク114のノードであり得る。
【0044】
図3に示される実施形態では、無線フィールドデバイス240〜258は、WirelessHART(登録商標)プロトコルなどの無線プロトコルを使用して、無線ネットワーク290内で通信する。そのような無線フィールドデバイス240〜258は、無線で通信するようにも構成される(例えば、無線プロトコルを使用して)、ネットワーク114の1つ以上の他のノードと直接通信し得る。無線で通信するように構成されていない1つ以上の他のノードと通信するために、無線フィールドデバイス240〜258は、通信バックボーン200または別の制御通信ネットワークに接続された無線ゲートウェイ235を利用してよい。いくつかの実施形態では、無線フィールドデバイス240〜258のうちの少なくともいくつかは、プロセス制御システムネットワーク114のノードであってよい。
【0045】
無線ゲートウェイ235は、無線デバイス240〜258、有線デバイス215〜222、及び/またはプロセス制御ネットワーク114の他のノードの間の通信結合を提供する。無線ゲートウェイ235は、場合によって、有線及び無線プロトコルスタック(例えば、アドレス会話、ルーティング、パケット分割、優先度付けなど)の下位層においてルーティング、バッファリング、及びタイミングサービスを使用する一方で、有線及び無線プロトコルスタックの1つまたは複数の共有層をトンネリングすることによって、通信結合を提供する。他の場合、無線ゲートウェイ235は、いかなるプロトコル層も共有しない有線プロトコルと無線プロトコルとの間のコマンドを翻訳し得る。プロトコル及びコマンド会話に加えて、無線ゲートウェイ235は、無線ネットワーク290内で実装される無線プロトコルと関連付けられたスケジューリングスキームのタイムスロット及びスーパーフレーム(均等に時間間隔で区切られた通信タイムスロットの組)によって使用される同期クロックを提供し得る。さらに、無線ゲートウェイ235は、無線ネットワーク290に対するネットワーク管理、及びリソース管理、性能調整、ネットワーク障害の軽減、モニタリングトラフィック、セキュリティなどの管理機能を提供し得る。
【0046】
有線フィールドデバイス215〜222と同様に、無線ネットワーク290の無線フィールドデバイス240〜258は、プロセスプラント内で物理的制御機能を実行することができ、例えば、弁を開閉するか、またはプロセスパラメータの計測を行うか、または他の機能を実行する。しかしながら、無線フィールドデバイス240〜258は、ネットワーク290の無線プロトコルを使用して通信するように構成される。そのようにして、無線フィールドデバイス240〜258、無線ゲートウェイ235、及び無線ネットワーク290の他の無線ノードは、典型的に、無線通信パケットの生成者及び消費者である。
【0047】
いくつかのシナリオでは、無線ネットワーク290は、非無線デバイスを含んでよい。例えば、
図3のフィールドデバイス248は、旧来の4〜20mAデバイスであってよく、フィールドデバイス250は、伝統的な有線HARTデバイスであってよい。ネットワーク290内で通信するために、フィールドデバイス248及び250は、無線アダプタ(WA)252aまたは252bを介して無線通信ネットワーク290に接続されてよい。追加として、無線アダプタ252a、252bは、FOUNDATION(登録商標)フィールドバス、PROFIBUS、DeviceNetなどの他の通信プロトコルを支持し得る。さらに、無線ネットワーク290は、無線ゲートウェイ235と有線通信している別個の物理デバイスであり得る、1つ以上のネットワークアクセスポイント255a、255bを含み得るか、または無線ゲートウェイ235内で一体型デバイスとして提供され得る。無線ネットワーク290は、無線通信ネットワーク290内の1つの無線デバイスから別の無線デバイスにパケットを転送するために1つ以上のルータ258を含んでもよい。無線デバイス240〜258は、
図3において点線によって示される無線通信ネットワーク290の無線リンク上で相互に、及び無線ゲートウェイ235と通信し得る。
【0048】
図3のネットワーク114は、有限数のフィールドデバイス215〜222及び240〜258と共に、単一コントローラ260を示しているに過ぎないが、これは、単に例示的かつ非限定的な実施形態である。任意の数のコントローラは、ネットワーク114上に含まれてよく、コントローラ260は、任意の数の有線または無線フィールドデバイス215〜222、240〜258と通信して、例えば、プラント内のプロセスを制御することができる。さらに、プロセスプラントは、任意の数の無線ゲートウェイ235、ルータ258、アクセスポイント255、及び無線プロセス制御通信ネットワーク290を含んでもよい。
【0049】
一般的に言えば、セキュリティシステムは、
図1に関して記載されるように構成された1つ以上のロバスト性モジュールを使用して、任意の所望の方法でネットワーク114内にインストールまたは実装され得る。具体的に、
図3に示されるように、セキュリティシステムは、ネットワークノード226、228、230、232、233、234A、及び234Bのそれぞれ、ならびにスイッチ202またはネットワーク114の他のエンドポイントデバイスのうちのいずれかに配設されたロバスト性モジュール210を含む。
図3では完全に詳細に示されていないが、ロバスト性モジュール210は、サブノードデバイスのうちのいずれかにおいて、例えば、I/Oデバイス236及び238において、有線フィールドデバイス215〜222のうちの1つ以上において、または無線デバイス240〜258のうちの1つ以上においてインストールされ得る。
図3では、サブノードデバイス内のロバスト性モジュール210のそれぞれは、参照番号210aでラベル表示され、それがネットワーク114のより大きなノードのサブノード内にあることを示す。
図1に関して示されるように、ロバスト性モジュール210及び210aは、ノードのそれぞれに出入りするトラフィックを分析し、またフィルタリングを実行してトラフィックに関するメタデータをコンパイルし得る一方で、メッセージ及びボリュームフィルタリングを実行する。
【0050】
この例示のセキュリティシステムでは、ロバスト性モジュール210は、独立して動作し得るが、相互に通信して、例えば、ボリュームフィルターによって決定されるように、それらのデバイスが多くの疑わしいメッセージを送信している場合、それらそれぞれのデバイスをネットワークから切断するか、または破棄したメッセージログを相互に、またはユーザインターフェースモジュール211(ユーザインターフェースデバイス230内にあるように示される)を提供するように相互に指示することができる。なおもさらに、ユーザは、ユーザインターフェースモジュール211を使用して、ロバスト性モジュール210のうちの1つ以上を構成してもよく、ユーザは、それを行うための適切なセキュリティIDまたはセキュリティ許可を有する必要があり得る。当然のことながら、ユーザインターフェースモジュール211は、1つ以上のネットワークリンク200上で通信してよく、ユーザインターフェースモジュール211は、ネットワーク114上の他のコンピュータデバイスのうちのいずれかにおいて、例えば、構成データベース232、ゲートウェイデバイス226、228、スイッチ202などにおいてネットワーク上でインストールされてもよい。追加として、フィールドデバイス215〜222、I/Oデバイス236、238、及び無線フィールドデバイス240〜258などのサブネットワークデバイスからの通信(アラート及び破棄ログなど)は、コントローラ260またはゲートウェイデバイス235などの主ネットワークノードデバイスに送信されてよく、その後、これらのデバイスは、それらの通信をユーザインターフェースモジュール211または他のロバスト性モジュール210に転送し得る。なおもさらに、
図3に示されるように、構成データベース232は、ネットワーク内の構成変更を検出することができ、またこれらの構成変更に基づくロバスト性モジュールルールの組を、ロバスト性モジュール210に任意の所望の方法で通信することができる、構成変更モジュール370を含む。
図3のノードのうちの少なくともいくつかに示されるように、ノードデバイスのそれぞれは、プロセッサ309を含み、これはマイクロプロセッサ、ASIC、または様々なロバスト性モジュール210を実装及び実行し、プロセッサ309上で実行するための、これらのモジュールを記憶するコンピュータ可読記憶311を含む、他のプロセッサであり得る。
【0051】
一般的な意味において、ロバスト性モジュール210のルールメモリ42に記憶されたメッセージ分析ルールは、ネットワーク114のノードに出入りするメッセージトラフィックの予想されるまたは正常な動作を反映する。より具体的に、ルールデータベース42に記憶されたルールは、特定期間中に、例えば、ネットワークが起動して実行しているが、それがセットアップされた直後であるとき、ネットワークが易感染されていないことが比較的確実であるときなど、ネットワーク114のノードから来るメッセージまたはトラフィックメタデータを収集して分析することによって生成されてよい。この期間中、生成または収集されたメッセージトラフィックデータは、統計的な意味で、ネットワークの「正常な」または「予想される」動作を反映する。様々なトラフィックパターンパラメータまたは統計は、この期間中に収集されたメッセージトラフィックデータから収集または生成されることができ、このデータは、様々なロバスト性モジュール210に対する1つ以上のルールの組を作成する際に使用するために、トラフィックパターンデータベースに記憶されてよい。収集または生成され、またデータベースに記憶されるトラフィックパターンパラメータは、例えば、任意の粒度の任意の特定ノードまたはノードのグループにおけるトラフィックの統計的尺度を含んでよい。すなわち、記憶されたトラフィックパターンパラメータは、任意のタイプのデータ、タイムフレーム、ノードもしくはグループノード、着信もしくは発信、送信者受信、長さなどに関してグループ化または実行されたデータの任意の統計的尺度(例えば、平均、標準偏差、平均、中央値、カウントなど)を示してよく、ネットワークの構成階層を反映する階層などの任意の所望の階層に記憶され得る。トラフィックパターンパラメータは、ノードまたはノードのグループに出入りする通信の任意のタイプまたはグループに対する範囲または制限を含んでもよく、それを超えるとき、ボリュームフィルター閾値、警告メッセージ、ネットワークからの切断などを反映するか、または引き起こす。これらの範囲または制限は、例えば、固定数の形態の絶対的な制限であり得るか、または第1もしくは第2標準偏差内に含まれる平均値の3倍、中央値もしくは平均値を超える、もしくは下回る既定量などの他の統計的尺度に基づくか、または関連する相対的な制限であり得る。
【0052】
理解されるように、ルールデータベース42内のルールが作成され、現在の、または収集されたメッセージを分析してネットワーク内の異常または侵入を検出すべき方法を定義するために使用される。より具体的に、ルールデータベース42内のルールは、例えば、収集されたメタデータまたは収集されたメッセージに関する統計を、トラフィックパターンデータと比較することによって、及び/またはトラフィックパターン制限もしくは範囲を使用することによって、収集されたメッセージトラフィックを分析すべき方法を特定する。一般的な意味において、
図1のフィルターモジュール20、22、30、32は、ルールデータベース42に記憶されたルールを実装して、収集されたメッセージデータまたはメタデータを、既知の、所望の、または予想されるトラフィックパターンパラメータと比較する。
【0053】
同様に、
図1に示されるように、ロバスト性モジュール10は、モジュール20、22、30、及び32によって実行された分析の結果に基づいて1つ以上のアラート、アラーム、またはメッセージを生成し得る、アラートジェネレータ46を含んでよい。アラートジェネレータ46によって作成されたアラート、アラーム、またはメッセージは、ネットワークリンクを介するか、またはその目的で提供されるか、もしくは使用される任意の他の通信リンクを介するかのいずれかで、オペレータ、セキュリティ人員、IT人員などの任意の所望の人員に送信されてよい。実施例として、アラート、アラーム、またはメッセージは、指定された人の電子メールアカウントに、プラントに関する他のデータも示すオペレータまたはセキュリティーインターフェースに送信されてよく、私有もしくは公共ネットワークを介して指定された人または人の集団に、電話、またはモバイルデバイスなどの任意の所望のデバイスで送達されるテキストメッセージとして送信されてもよい。同様に、これらのアラート、アラーム、またはメッセージは、ネットワークへの潜在的な侵入に応答し、調査する責任がある任意の指定された者の電話、時計、装着可能なデバイス、ラップトップ、タブレットコンピュータなどの携帯デバイス上でアラームまたは通知を発信することができる。場合によって、アラームまたはアラートジェネレータ46は、感染したまたは潜在的に感染したノードへのアクセスを制限するように動作することができ、ノードをシャットダウンし得るか、または非常に深刻な状況では、通信ネットワーク自体を他のネットワークからシャットダウンもしくは隔離して、侵入によりプラントもしくはプラント内のサブシステムに対して及ぼされる損傷を制限することができる。当然のことながら、アラートジェネレータ46は、ネットワーク内の他のデバイスと通信して、そのような自動動作をもたらし得るソフトウェアまたはロジックを含んでよい。場合によって、アラートジェネレータ46は、プラントネットワーク内でそのような自動的措置を講じる前に、例えば、ユーザインターフェースモジュール211を介して、ユーザからの許可を求めることができるが、他の場合では、侵入または潜在的な侵入をユーザに通知する前または同時に、ネットワーク内で措置を実行することができる。さらに、自動的措置を講じるとき、アラートジェネレータ46は、感染した、または潜在的に感染したノードと通信して、そのノードから(出入りする)通信を制限すること、例えば、そのノードからの特定タイプのメッセージを制限または停止すること、そのノードでの特定アプリケーションの動作(異常なメッセージトラフィックを生成し得る)を停止または制限すること、デバイスのある特定のポートを介する通信を停止または制限することなどができる。故に、1つのロバスト性モジュール10または210のアラートジェネレータ46は、別のロバスト性モジュールのルールメモリ42のルールを変更または改変して、まず後者のロバスト性モジュールが疑わしいメッセージをリンク上で送信するのを防ぐのを助けることができる。代わりに、または追加として、アラートジェネレータ46は、他のネットワークに接続されたゲートウェイノードなどの他のノードと通信して、ネットワークと他のネットワークとの間のメッセージを制限または停止することができる。この措置は、重要な動作(例えば、制御動作)がネットワーク上で起こるのを許可し得る一方で、ネットワークを外部ソースから隔離して、少なくとも一時的に、変則的なメッセージトラフィックがネットワークに出入りするのを防ぎ、これがデータ窃盗を制限することができ、ネットワーク内のウイルスが他のネットワークに感染するのを停止することができ、感染したノードを介したネットワークへのさらなる侵入を停止することができる。例えば、アラートジェネレータ46は、サイト上のセキュリティ人員によって変則が確認されるまで、外部ビジネスシステムと影響される工業制御システムネットワークとの間の全通信を切断し得る。当然のことながら、アラートジェネレータ46は、セキュリティシステムなどの他のシステムに結合され(通信接続され)、これらの機能を実行することができる。
【0054】
ルールデータベース42は、メッセージトラフィックもしくはトラフィックパターン内に変則があるかどうかを決定するために、故にアラートもしくはアラームを生成すべきか、または他のフィルタリングを行うべきかを決定するために、通信ネットワークノードからもしくは通信リンクから受信されたメッセージトラフィックもしくはメッセージメタデータ上で実行される分析を定義する、1人以上のセキュリティ人員、構成人員、ユーザ、オペレータなどによって作成または生成された任意の所望のルールの組を記憶することができる。故に、モジュール20、22、30、及び32によって用いられるルールは、ノードから収集されたメッセージデータを、そのノードに対する標準またはベースラインのデータの組と比較して、制限または差分変数などの他のトラフィックパターンパラメータによって定義されるように、それらの間に有意差があるかどうかを決定するように動作することができる。
【0055】
任意の所望のタイプのデータが、メッセージに対してロバスト性モジュール10及び210で入手されて分析され得ること、ならびにルールデータベース42内のルールが、任意の所望の方法でデータを分析するために作成され得ることが理解されるであろう。例えば、メッセージデータは、メッセージ自体に関する一般的な情報、例えば、ペイロードタイプ、長さ、ソース(構成ノード対非構成ノード、ソースポートなど)、アドレス(ソース及び宛先アドレス、ポートなど)、スコープ(ユニキャスト、マルチキャスト、ブロードキャストなど)、ペイロードタイプ(TCP、UDP、その他など)、及びタイミング(1日の時間、相対時間、試行率など);通信情報、例えば、メッセージタイミング(例えば、割合、1日の時間、シーケンスエラーなど)、セキュリティエラー(失敗した統合性、認証、または復号化など)、メッセージコンテンツ(サイズ、フォーマットエラーなど);ならびに偽情報、例えば、レート制限情報(状態、方法、レート制限など)、及び接続試行(アウトオブシーケンス、不正、スイープなど)を含み得る。当然のことながら、任意の他のタイプのメッセージデータまたはメタデータは、ルール42内で同様に、または代わりに入手され、使用されてよく、本明細書に提供されるリストが包括的でないことが理解されるであろう。
【0056】
さらに、メッセージデータは、ネットワークまたはノード内の他の要因またはパラメータ、例えば、送信または受信ノードの役割(例えば、これらのノードがワークステーション、サーバ、ゲートウェイ、コントローラ、I/Oサーバ、リモート端末ユニット(RTU)などであるかどうか)に基づいて収集され、記憶され得る。故に、メッセージ及びトラフィックメタデータが、ネットワークの様々な異なる階層レベルで、またはそれに対して、デバイスもしくはノードベース、デバイスもしくはノードロールベース、メッセージベースなどで、またはネットワークの任意の他の階層レベルに対して作成され得ることが理解されるであろう。なおもさらに、制御または通信ネットワークの構成情報を使用して、メッセージメタデータを分析するために、最初にルールを作成するか、もしくは修正するか、またはメッセージメタデータ分析を組織化してもよい。一般的に言えば、ネットワークに対する構成情報は、ノード(デバイス)のそれぞれにおけるアプリケーションの数、モジュール、制御ルーチンなど、及びこれらの様々な論理要素、ソフトウェア要素、及びハードウェア要素が相互に通信する方法に関する情報を含み、通信ペア(送信者/受信者ペア)、通信タイミング、頻度、メッセージのタイプ、制御システムの役割またはデバイスタイプなどが挙げられる。この構成情報を使用して、ノードのうちのいずれかでメッセージを分析するために使用されるルールを作成または修正することができる。すなわち、構成階層情報(例えば、どのデバイス及びモジュールがネットワーク内のどの他のモジュール及びデバイスに関連しているか)を含む構成情報を使用して、メッセージを分析するためのルールのパラメータを作成、修正、または記入することができる。実施例として、構成情報を使用して、例えば、メッセージを分析するために、一般化されたルールのサブセット(すなわち、プロファイル)を選択することができる。構成情報を使用して、1つ以上の一般化されたルールパラメータ内の特定の値にプラグインすることもでき(例えば、ルールが<購読者>のプレースホルダを有する場合、構成情報を使用して、その構成に列挙される特定の購読者に関するアドレス及びポート情報を記入することができる)。この方法で、有効なロジックルールは、デバイスまたはノードの制御システム構成に基づいて、より大きな一般ルールの組から特定ルールのサブセットに調整され得る。
【0057】
なおもさらに、
図2及び3に示されるように、セキュリティシステムは、例えば、ネットワーク構成データベースまたはサーバデバイス122Cもしくは232に記憶され得るネットワーク構成変更モジュール370を含んでよい。一般的に言えば、構成変更モジュール370は、通信ネットワークに対するネットワーク構成の変更を検出するように動作し、その後、これらの変更及び/またはこれらの変更の通知を、例えば、ネットワークリンクを介してユーザインターフェースモジュール211に送信する。本明細書で使用される場合、構成変更は、ネットワーク上のデバイスまたはデバイスの組の動作に対して行われた任意の変更を含んでよく、新しいデバイス、アプリケーション、モジュールなどの追加、任意のデバイス、アプリケーション、モジュールなどの削除、ならびにデバイス、アプリケーション、モジュールなど、パラメータ、設定、または他の構成の変更(任意のハードウェア、ソフトウェア、またはファームウェア設定の変更を含む)を含み、例えばバッチプロセスなどで使用される、例えばレシピを変更するなどの、通信及びプロセス制御設定を変更することを含む。この場合、構成エンジニアまたは他のユーザが、例えば、新しいアプリケーション、またはモジュールをネットワークに追加すること、ネットワーク内のアプリケーションまたはモジュールが相互に通信する方法を変更することなどによってネットワーク構成を変更したときはいつも、ネットワーク構成変更モジュール370は、そのような変更を検出し、通知をユーザインターフェースモジュール211に送信して、ユーザにネットワーク構成の変更を知らせる。当然のことながら、変更モジュール370は、構成データベース(例えば、
図3のデータベース232)に位置するように示されているが、構成モジュール370は、構成アプリケーションへのアクセスを有するか、またはそれを実装する(ネットワークの構成を変更するか、もしくはユーザが変更するのを可能にする)、または他の方法で構成の変更が通知される任意のデバイスまたはコンピュータであり得、任意の所望の方法で動作して、ネットワーク構成の変更を検出することができる。
【0058】
いずれにしても、ネットワークの構成に対して変更が行われたときはいつも(例えば、ネットワーク上の、またはネットワークに結び付けられたデバイスのうちのいずれかにおいて、任意のソフトウェア、機能ブロック、モジュールなどの通信アスペクトの追加、削除、または変更をもたらす)、変更検出モジュール370は、ユーザインターフェースモジュール211に通知を送信して、ネットワークトラフィックパターンまたは詳細の変更または潜在的な変更をユーザに知らせることができる。この通知は、ユーザが新しいルールを作成するか、またはロバスト性モジュール210のうちの1つ以上に既にあるルールを改変し、それにより、新しいネットワーク構成に照らして、ロバスト性モジュール210をより良好に構成するのを可能にし得る。
【0059】
故に、理解されるように、ネットワーク構成の変更は、例えば、ある特定タイプのネットワークメッセージを増加または減少させることによって、ネットワークメッセージの流れを変更することができ、特定タイプのネットワーク通信を(例えば、ネットワーク上の様々なデバイス間、またはネットワークのノードにある様々なデバイス内で実行されるアプリケーション間の特定タイプの通信の特性または量を変更することによって)変更する。状況によって、新しい構成の結果として、1つ以上のロバスト性モジュール210のルールデータベース42内のルールを変更、追加、または削除して、ルールデータベースの1つ以上のルール内でプロファイルプラグインを実装して、新しい構成のパラメータに一致させるか、または反映させるなどによって、例えば、ルールを新しい構成に調整することが望ましい場合がある。例えば、新しいタイプの通信は、新しい構成によって追加されてよく、ルールは、新しい通信に基づいてプロファイルプラグインで更新されてよく、またその後、このルールを使用して、これらの新しいタイプの通信と関連付けられたメッセージを分析してもよい。
【0060】
さらに、本明細書に記載されるセキュリティシステムは、別個の構文及びボリュームフィルターを有するように示されているが、単一フィルターが、これらの異なるフィルターのそれぞれについて記載される機能を実行することができる。例えば、単一フィルタリングモジュールは、ネットワークデバイスのプロセッサ上で実行され、デバイスのルールメモリに記憶されたロジックルールを使用して、1つ以上の第1のメッセージ特徴の組を有するメッセージを伝達すること、1つ以上の第2のメッセージ特徴の組を停止すること、及び1つ以上の第3のメッセージ特徴の組を有するメッセージをカウントすることができ、またさらに、1つ以上の第3のメッセージ特徴の組と関連付けられたカウントに基づいて、1つ以上の第3のメッセージ特徴の組を有するメッセージを伝達または停止するように動作することができる。
【0061】
本明細書に記載されるセキュリティ技術は、イーサネット、及びフィールドバス、HART、及び標準4〜20maプロトコルなどの様々な既知のプロセス制御プロトコルを使用するネットワークプロセス制御デバイス及びシステムと共に使用されるように記載されたが、本明細書に記載されるセキュリティ技術は、当然のことながら、任意の他のプロセス制御通信プロトコルまたはプログラミング環境を使用する任意のタイプの制御デバイス内で実装されることができ、任意の他のタイプのデバイス、機能ブロック、またはコントローラと共に使用されてよい。本明細書に記載されるセキュリティ特徴は、好ましくは、ソフトウェアで実装されるが、それらは、ハードウェア、ファームウェアなどで実装されてよく、コンピュータデバイスと関連付けられた任意の他のプロセッサによって実行されてもよい。故に、本明細書に記載される方法及びルーチン及びシステムは、そのように所望される場合、標準多用途CPU内、または例えば、ASICなどの特異的に指定されたハードウェアまたはファームウェア上で実装され得る。ソフトウェアで実装されるとき、このソフトウェアは、任意のコンピュータ可読メモリ内、例えば、コンピュータもしくはプロセッサのRAMまたはROM内の磁気ディスク、レーザディスク、光ディスク、または他の記憶媒体上などに記憶され得る。同様に、このソフトウェアは、例えば、コンピュータ可読ディスクまたは他の輸送可能なコンピュータ記憶機構上を含む、任意の既知のまたは所望の送達方法を介して、ユーザまたはプロセス制御システムに送達され得るか、または電話線、インターネットなどの通信チャネル上で変調され得る。
【0062】
さらに、本発明は、特定の実施例を参照して説明されたが、これは単なる例示であり、本発明を制限するものではないことが意図され、本発明の趣旨及び範囲から逸脱することなく、開示される実施形態に対して変更、追加、または削除が行われてよいことが当業者には明らかとなるであろう。