IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ フィッシャー−ローズマウント システムズ,インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】プロセス制御スイッチの中毒防止
(51)【国際特許分類】
   H04L 12/46 20060101AFI20240806BHJP
   H04L 61/09 20220101ALI20240806BHJP
   G05B 9/02 20060101ALI20240806BHJP
【FI】
H04L12/46 200S
H04L61/09
G05B9/02 A
【請求項の数】 13
【外国語出願】
(21)【出願番号】P 2018185661
(22)【出願日】2018-09-28
(65)【公開番号】P2019092149
(43)【公開日】2019-06-13
【審査請求日】2021-09-28
(31)【優先権主張番号】62/565,920
(32)【優先日】2017-09-29
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/565,924
(32)【優先日】2017-09-29
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/949,888
(32)【優先日】2018-04-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】512132022
【氏名又は名称】フィッシャー-ローズマウント システムズ,インコーポレイテッド
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(74)【代理人】
【識別番号】100113608
【弁理士】
【氏名又は名称】平川 明
(74)【代理人】
【識別番号】100138357
【弁理士】
【氏名又は名称】矢澤 広伸
(72)【発明者】
【氏名】アレクサンドル ダ シルヴァ ペイショート
(72)【発明者】
【氏名】ネイル ジェイ. ピーターソン
【審査官】速水 雄太
(56)【参考文献】
【文献】特開2010-081610(JP,A)
【文献】特開2006-324723(JP,A)
【文献】特開2017-046149(JP,A)
【文献】特開2015-050767(JP,A)
【文献】特開2017-143497(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
G05B 9/02
(57)【特許請求の範囲】
【請求項1】
プロセス制御スイッチの通信ポートを介してデバイスに接続された前記プロセス制御スイッチを備えるプロセスプラント内のプロセス制御システムのセキュリティを向上させる方法であって、
前記プロセス制御スイッチの第1の通信ポートのロックダウンを開始することと、
前記ロックダウンの開始に応答して、前記第1の通信ポートの前記ロックダウン時に既知のアドレスペアの記録を生成し、前記既知のアドレスペアは前記第1の通信ポートを介して通信していたデバイスのハードウェアアドレス及び対応するネットワークアドレスを含む、ことと、
前記第1の通信ポートの前記ロックダウンの後、
前記第1の通信ポートを介して、デバイスからのデータパケットを受信することであって、前記データパケットは、少なくとも(i)前記デバイスの特定のネットワークアドレス、および(ii)前記デバイスの特定のハードウェアアドレスを示す、ことと、
前記デバイスの前記特定のネットワークアドレスと前記デバイスの前記特定のハードウェアアドレスの双方を有する既知のアドレスペアが前記記録に含まれているかどうかを判定することと、
前記判定に応答して、アラートを生成することと
を備える、方法。
【請求項2】
前記第1の通信ポートの前記ロックダウンを開始することに関連して、
前記プロセス制御スイッチによって、前記第1の通信ポートに接続された前記デバイスのセットの前記ハードウェアアドレスのセットを取得すること
をさらに備える、請求項1に記載の方法。
【請求項3】
前記デバイスの前記特定のネットワークアドレスと前記デバイスの前記特定のハードウェアアドレスが前記記録に含まれているかどうかを判定することは、
前記デバイスの前記特定のハードウェアアドレスが、前記第1の通信ポートに以前に接続された前記デバイスのセットのうちの1つのハードウェアアドレスと一致しないと判定すること
を備える、請求項1または2に記載の方法。
【請求項4】
前記アラートを生成することは、
前記第1の通信ポートを示す前記アラートを生成することと、
前記アラートを前記プロセス制御システムに関連するコンピューティングデバイスのユーザインタフェース上に表示させることと、
を備える、請求項1から3のいずれか一項に記載の方法。
【請求項5】
記プロセス制御スイッチによって、(i)前記第1の通信ポートに接続された第1のデバイスの第1のネットワークアドレスと、(ii)追加のプロセス制御スイッチを介して第2の通信ポートに接続された複数のデバイスの複数のネットワークアドレスとを取得すること
さらに備える、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記判定に応答して、
前記データパケットの送信を可能にすること
をさらに備える、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記判定に応答して、
前記データパケットの送信を拒否すること
をさらに備える、請求項1から5のいずれか一項に記載の方法。
【請求項8】
記プロセス制御スイッチに組み込まれた特定用途向け集積回路(ASIC)のセットを使用して、前記ネットワークアドレスのセットを取得すること
さらに備える、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記プロセス制御スイッチは、オープンシステム相互接続(OSI)モデルの第2層および第3層で動作する、請求項1から8のいずれか一項に記載の方法。
【請求項10】
プロセスプラント内のプロセス制御システムで使用されるプロセス制御スイッチであって、
プロセス制御システムのデバイスが接続するように構成された通信ポートのセットと、
コンテンツアドレス可能なメモリと、
通信ポートのセットおよびコンテンツアドレス可能メモリに通信可能に結合され、
(a)第1の通信ポートのロックダウンを開始し、
(b)前記ロックダウンの開始に応答して、前記第1の通信ポートの前記ロックダウン時に既知のアドレスペアの記録を生成し、前記既知のアドレスペアは前記第1の通信ポートを介して通信していたデバイスのハードウェアアドレス及び対応するネットワークアドレスを含み、
(c)前記第1の通信ポートの前記ロックダウンの後、
(1)前記第1の通信ポートを介して、デバイスからのデータパケットを受信し、前記データパケットは、少なくとも(i)前記デバイスの特定のネットワークアドレス、および(ii)前記デバイスの特定のハードウェアアドレスを示し、
(2)前記デバイスの前記特定のネットワークアドレスと前記デバイスの前記特定のハードウェアアドレスの双方を有する既知のアドレスペアが前記記録に含まれているかどうかを判定し、
(3)前記判定に応答して、アラートを生成するように構成された特定用途向け集積回路(ASIC)のセットと
を備える、プロセス制御スイッチ。
【請求項11】
前記ASICのセットは、前記通信ポートのセットの前記ロックダウンを開始すること
に関連して、
前記通信ポートのセットうちの少なくとも一部に接続された前記デバイスのセットの前記ハードウェアアドレスのセットを取得するようにさらに構成された、
請求項10に記載のプロセス制御スイッチ。
【請求項12】
前記デバイスの前記特定のネットワークアドレスと前記デバイスの前記特定のハードウェアアドレスが前記記録に含まれていないと判断するために、前記ASICのセットは、
前記デバイスの前記特定のハードウェアアドレスが、前記通信ポートのセットのうちの1つに以前に接続された前記デバイスのセットのうちの1つのハードウェアアドレスと一致しないことを判定するように構成された、
請求項10または11に記載のプロセス制御スイッチ。
【請求項13】
前記プロセス制御スイッチは、オープンシステム相互接続(OSI)モデルの第2層および第3層で動作する、請求項10から12のいずれか一項に記載のプロセス制御スイッチ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にプロセス制御システムに関し、より詳細には、スマートプロセス制御スイッチのポートをロックダウンする技術に関する。
【背景技術】
【0002】
発電、化学、石油、または他のプロセスで使用されるような分散型またはスケーラブルなプロセス制御システムなどのプロセス制御システムは、典型的には、互いに通信可能に結合され、プロセス制御ネットワークを介して少なくとも1つのホストまたはオペレータワークステーションに、またアナログ、デジタルまたはアナログ/デジタルバスを組み合わせて1つ以上のフィールドデバイスに結合された、1つ以上のプロセスコントローラを含む。
【0003】
フィールドデバイスは、たとえば、バルブ、バルブポジショナ、スイッチおよび送信機(たとえば、温度、圧力および流量センサ)であってもよく、バルブの開閉や開閉器のオン/オフ、プロセスパラメータの測定など、プロセスまたはプラント内の機能を実行する。
【0004】
通常、プロセスプラント環境内に配置されるプロセスコントローラは、フィールドデバイスによって作成されたプロセス測定値またはプロセス変数、および/またはフィールドデバイスに関する他の情報を示す信号を受信し、コントローラアプリケーションまたはルーチンを実行する。各コントローラは、受け取った情報を使用して制御ルーチンを実行し、バスを介してフィールドデバイスに送られてプロセスまたはプラントの動作を制御する制御信号を生成する。1つ以上のコントローラルーチンは、プロセス制御判断を行い、受信した情報に基づいて制御信号を生成し、HART(登録商標)、およびFieldbusフィールドデバイスなどのフィールドデバイス内で実施される制御モジュールまたはブロックと連携する、制御モジュールを実装する。プロセスコントローラ内の制御モジュールは、制御信号を通信線または信号路上でフィールドデバイスに送信し、これによってプロセスの動作を制御する。
【0005】
フィールドデバイスおよびプロセスコントローラからの情報は、通常、プロセス制御ネットワークを介して、保守ワークステーション、パーソナルコンピュータ、ハンドヘルドデバイス、データヒストリアン、レポートジェネレータ、集中データベースなどのような、1つ以上の他のハードウェアデバイスに利用可能にされる。ネットワークを介して通信される情報は、オペレータまたは保守者がプロセスに関して所望の機能を実行することを可能にする。たとえば、情報は、オペレータがプロセス制御ルーチンの設定を変更すること、プロセスコントローラまたはスマートフィールドデバイス内の制御モジュールの動作を変更すること、プロセスプラント内の特定のデバイスのプロセスまたはステータスの現在の状態を表示すること、フィールドデバイスおよびプロセスコントローラによって生成されたアラームを表示すること、人員の訓練またはプロセス制御ソフトウェアのテストの目的でプロセスの動作をシミュレートすること、プロセスプラント内の問題またはハードウェア障害を診断することを可能にする。
【0006】
フィールドデバイスは、通常、イーサネット構成のLANであってもよいプロセス制御ネットワークを介してハードウェアデバイスと通信する。ネットワークは、プロセスパラメータ、ネットワーク情報、および他のプロセス制御データを、様々なネットワークデバイスおよびプロセス制御システム内の様々なエンティティに中継する。ネットワークデバイスは、典型的には、ルーティング、フレームレート、タイムアウト、および他のネット
ワークパラメータを制御することによって、ネットワークを介したデータの流れを容易にするが、プロセスデータ自体は変更しない。典型的なネットワークデバイスには、たとえば、レイヤ2ネットワークスイッチ、レイヤ3ネットワークスイッチ、ルータ、および/またはハブが含まれる。ここに参照される層は、OSIモデル層に関連する。
【0007】
一般に、レイヤ2ネットワークスイッチはメッセージを受信し、受信したメッセージを、LAN内の宛先デバイスのMACアドレス(メッセージによって識別される)に関連付けられたポートの1つを介して転送する。レイヤ2ネットワークスイッチは、通常、MACアドレスと、対応するスイッチポートとの間の関係を確立するテーブルを格納する。レイヤ2ネットワークスイッチがメッセージを受信すると、メッセージの宛先MACアドレスを識別し、MACアドレスに対応するスイッチのポートをテーブルから識別し、そのポートを介してメッセージを転送する。レイヤ2ネットワークスイッチが、テーブルに格納されていない宛先MACアドレスを持つメッセージを受信すると、スイッチのすべてのポートにメッセージをブロードキャストし、これは、メッセージが宛先デバイスに到達し、宛先デバイスが応答するまで繰り返され、その結果、宛先MACアドレスに「マッピングされた」適切なポートがスイッチに通知される。特に、レイヤ2スイッチはルーティングを実行せず、転送の判定にIPアドレスを使用せず、スイッチと宛先デバイス間の中間ノードも追跡しない。むしろ、レイヤ2スイッチは単にテーブルを参照して、メッセージの転送に使用するスイッチのポートを判定する。
【0008】
一方、レイヤ3デバイス(ルータやレイヤ3スイッチなど)は、ルーティングを実行し、中間ノードを特定し、転送および/またはルーティングにIPアドレスを使用することがよくある。このルーティング機能とネットワークアドレスを利用する機能により、レイヤ3デバイスは、レイヤ3デバイスが接続されているLAN外の宛先にデータをルーティングできる。ルータおよびレイヤ3ネットワークスイッチは、プロセス制御ネットワーク内でプロセス制御データをルーティングできることがあるが、特にプロセス制御環境での動作のために設計または構成された場合、ルータおよびレイヤ3スイッチは、レイヤ2スイッチよりも大幅に高価になる。(たとえば、2~3倍高価)である。
【0009】
プロセス制御ネットワークがサイズおよび複雑さを増すにつれて、対応するネットワークデバイスの数およびタイプが増加する。システムとネットワークの成長の結果、これらの複雑なシステムのセキュリティと管理はますます困難になっている。たとえば、各ネットワークデバイスは、プロセス制御システムコンポーネントと他のネットワークデバイスとをネットワークを介して物理的に相互接続するためのアクセスポイントまたはポートを提供する1つ以上の通信ポートを含むことができる。これらのネットワークデバイスポートは、他のデバイスを追加することによってネットワーク拡張のためのアクセスポイントになるか、またはエンティティが敵意のあるなしにかかわらず、ネットワークにアクセスし、望ましくなく有害なネットワークトラフィックを開始する可能性がある。
【0010】
悪意のあるエンティティに関するセキュリティ上の問題に対処するために、一部のコントロールスイッチは、無効なポートを介してデバイスが通信できないように、ポート(たとえば、未使用ポート)を無効にする無効化メカニズムを備えている。さらに、制御スイッチの中には、ロックされたポートを介して、ロックダウン時にそのポートに接続された単一のデバイスへの通信を制限するために、ポートを「ロック」することができる、ロックダウン機構を有するものがある(たとえば、米国特許第8590033号明細書に開示されているように)。しかしながら、これらの従来のロックダウン機構は限られている。特に、従来のロックダウン機構は、(i)2つ以上の接続されたデバイスを有するポートおよび/または(ii)第2のスイッチ(とき「アップリンクポート」と呼ばれる)に接続されたポートをロックダウンすることに失敗する。通常、アップリンクポートは、ロックダウン中にアップリンクポートの機能を維持して、プラントの運転を妨害する過度に制
限的なロックダウンを誤って実装することを回避するために、ネットワークセキュリティのロックダウンから除外される(つまり、ロックが解除されたままになる)。さらに、いくつかのスイッチは、ポートに接続された複数のデバイスを識別し、そのポートがスイッチに接続されていると仮定して、デバイスのデイジーチェーンに接続されたポートを「アップリンクポート」として分類する。したがって、いくつかの制御スイッチは、従来のロックダウン機構を実装して、悪意のあるデバイスが、以前は使用されていなかった(たとえば、そのポートを無効にする)か、または単一のエンドデバイスにのみ接続されていた(たとえば、そのポートをロックすることによって)ポートを介してネットワークに接続するのを防止する一方で、これらのスイッチは、アップリンクスイッチに接続されたポート、3つ以上のエンドデバイス、または複数の物理アドレスを持つ1つのデバイス(仮想化システムなど)で脆弱なままである。
【発明の概要】
【発明が解決しようとする課題】
【0011】
記載された方法およびシステムは、プロセス制御スイッチがそのポートおよび/またはポートのすべてをロックダウンすることを可能とし、および/またはプロセス制御スイッチの各ポートを介して通信する各デバイスの物理アドレスとネットワークアドレスの「既知のペア」を識別することを可能にする。
【課題を解決するための手段】
【0012】
一実施形態では、方法は、プロセス制御スイッチの通信ポートを介してデバイスに接続されたプロセス制御スイッチを含むプロセスプラント内のプロセス制御システムのセキュリティを向上させる。この方法は、(A)プロセス制御スイッチの通信ポートのセットのロックダウンを開始すること、(B)前記通信ポートのセットのロックダウンを開始することに関連して、プロセス制御スイッチによって、一組の通信ポートのうちの少なくとも一部に接続されたデバイスのセットのネットワークアドレスのセットを取得し、プロセス制御スイッチ用のアドレスマッチングテーブルを生成することであって、アドレスマッチングテーブルは、デバイスのセットの物理アドレスのセットとデバイスのセットのネットワークアドレスのセットとを一致させる、こと、および/または(C)通信ポートのセットのうちの1つを介して、デバイスからのデータパケットを受信することを備え、データパケットは、(i)デバイスのネットワークアドレスと、(ii)デバイスの物理アドレスとを示し、デバイスのネットワークアドレスおよびデバイスの物理アドレスがアドレス一致テーブルに含まれていないことを判定し、および/または判定に応答して、アラートを生成する。
【0013】
一実施形態では、プロセスプラント内のプロセス制御システムで使用されるプロセス制御スイッチは、(A)プロセス制御システムのデバイスが接続するように構成された通信ポートのセット、(B)コンテンツアドレス可能なメモリ、および/または(C)通信ポートのセットおよびコンテンツアドレス可能メモリに通信可能に結合され、(a)通信ポートのセットのロックアウトを開始するように構成された特定用途向け集積回路(ASIC)のセットとを備える。ASICは、追加的または代替的に、(b)通信ポートのセットの少なくとも一部のロックダウンを開始することに関連して、(1)通信ポートのセットうちの少なくとも一部に接続されたデバイスのセットのネットワークアドレスのセットを取得すること、および/または(2)デバイスのセットの物理アドレスのセットを、デバイスのセットのネットワークアドレスのセットに一致させるアドレス一致テーブルを生成する。ASICは、追加的または代替的に、(c)通信ポートのセットのロックダウン後、(1)通信ポートのセットの1つを介して、(i)デバイスのネットワークアドレスと(ii)デバイスの物理アドレスとを示すデバイスからのデータパケットを受信し、(2)デバイスのネットワークアドレスおよびデバイスの物理アドレスがアドレス一致テーブルに含まれていないと判断し、および/または(3)判定に応答して、アラートを生成
するように構成されている。
【0014】
一実施形態では、プロセスプラント内のプロセス制御システムに関連するプロセス制御スイッチに関連するセキュリティ問題を検出する方法が存在し、プロセス制御スイッチは、プロセス制御スイッチの通信ポートのセットを介してデバイスのセットに接続される。この方法は、(A)プロセス制御スイッチに関連付けられたアドレス一致テーブルにアクセスすることであって、一致テーブルは、デバイスのセットの物理アドレスのセットをデバイスのセットのネットワークアドレスのセットに一致させる、こと、(B)アドレス一致テーブルに含まれるネットワークアドレスのセットのうちの1つに一致する宛先ネットワークアドレスを指定するマッピング要求をブロードキャストすること、(C)通信ポートのセットの1つを介して、(i)宛先ネットワークアドレスおよび(ii)返信デバイスの物理アドレスを示す応答デバイスからのマッピング要求への応答を受信すること、(D)応答デバイスの物理アドレスが、アドレス一致テーブルに含まれるデバイスのセットの物理アドレスのセットと一致しないと判断すること、および/または(E)判定に応答して、アラートを生成することのうちの1つ以上を備える。
【0015】
一実施形態では、プロセスプラント内のプロセス制御システムに関連するセキュリティ問題を検出するためのシステムが存在する。このシステムは、(A)コンテンツを提示するように構成されたユーザインタフェースと、(B)通信ポートのセットを介して、プロセス制御システムに関連する一組のデバイスに接続されたプロセス制御スイッチのうちの1つ以上を備え、かつ(1)プロセス制御スイッチに関連付けられたアドレス一致テーブルにアクセスすることであって、一致テーブルは、デバイスのセットの物理アドレスのセットをデバイスのセットのネットワークアドレスのセットに一致させる、こと、(2)アドレス一致テーブルに含まれるネットワークアドレスのセットのうちの1つに一致する宛先ネットワークアドレスを指定するマッピング要求をブロードキャストすること、(3)通信ポートのセットの1つを介して、(i)宛先ネットワークアドレスおよび(ii)返信デバイスの物理アドレスを示す応答デバイスからのマッピング要求への応答を受信すること、(4)応答デバイスの物理アドレスが、アドレス一致テーブルに含まれるデバイスのセットの物理アドレスのセットと一致しないと判断すること、および/または(5)判定に応答して、アラートを生成し、そのアラートをユーザインタフェース上に表示させるように構成されている。
【0016】
なお、この概要は、以下の詳細な説明でさらに説明される概念の選択を紹介するために提供されている。詳細な説明で説明したように、特定の実施形態は、この要約に記載されていない特徴および利点を含むことができ、特定の実施形態は、この要約に記載された1つ以上の特徴および/または利点を省略することができる。
【0017】
以下に説明される図面のそれぞれは、一実施形態による、開示されたシステムおよび/または方法の1つ以上の態様を示す。詳細な説明は、以下の図に含まれる参照番号を参照する。
【図面の簡単な説明】
【0018】
図1A】スマートプロセス制御スイッチを実装して、ネットワークセキュリティを強化し、ネットワーク管理および保守を容易にするプロセスプラント内のプロセス制御システムの概略図である。
図1B図1Aに示すスマートプロセス制御スイッチを実装して、ネットワークセキュリティを強化し、ネットワーク管理および保守を容易にするプロセスプラント内のプロセス制御システムの第2の概略図である。
図1C】一般的にイーサネットプロトコルを使用するプロセス制御システムを介して通信することができる、データまたはフレームの基本単位を示す。
図2A図1Aおよび図1Bに示されたものと同様のスマートプロセス制御スイッチのセットを実装して、ロックダウン性能を改善し、ネットワークセキュリティを強化する、第一の実施形態のプロセス制御ネットワークのネットワーク図である。
図2B】スマートプロセス制御スイッチのセットを実装して、ロックダウン性能を改善し、ネットワークセキュリティを強化する、第二の実施形態のプロセス制御ネットワークのネットワーク図である。
図2C図1A、1Bおよび図2Aに示すスマートプロセス制御スイッチのブロック図である。
図3A図1A図2Cに示される1つ以上のスマートプロセス制御スイッチのためのポートをロックダウンおよびロック解除する方法の一例を示す。
図3B】ロックダウンコマンドを受信した後に、図1A図2Cに示されたスマートプロセス制御スイッチのポートをロックする例示的な方法を示す。
図3C図1A図1B図2A、および図2Bに示されるスマートプロセス制御スイッチをロック解除する方法の一例を示す。
図4A図1A図2Cに示されるスマートプロセス制御スイッチのロックおよびロック解除を容易にするために提供され得る例示的なユーザインタフェースを示す。
図4B】ロック解除されているスイッチのセットが配置された、図4Aに示された例示的なユーザインタフェースを示す。
図4C】ロックされたスイッチのセットが配置された、図4Aおよび図4Bに示された例示的なユーザインタフェースを示す。
図4D】「ロックペンディング」状態を有するスイッチのセットが埋め込まれた、図4A図4Bおよび図4Cに示されている例示的なユーザインタフェースを示す。
図5図2Cに示すアドレス一致テーブルの一例を示す図である。
図6】プロセスプラント内のプロセス制御システムのセキュリティを向上させるために、図2Cおよび図5に示すアドレス一致テーブルを実装する例示的な方法のブロック図を示す。
図7図1A図2Cに示されるスマートプロセス制御スイッチに関連するセキュリティ問題を検出する例示的な方法のブロック図を示す。
【発明を実施するための形態】
【0019】
本開示は、(i)既知の物理アドレスを有するデバイスによる使用のために排他的にその通信ポートをロックダウンするためのロックダウン動作またはルーチンを実装でき、かつ/または(ii)スイッチ146を介して通信する各デバイスの物理アドレスとネットワークアドレスの「既知のペア」を識別するためのアドレスマッピング操作またはルーチンを実装できる、スマートプロセス制御スイッチ146(図1A図1Bおよび図2Cに示され、とき「スイッチ146」と呼ばれる)を説明する。
【0020】
一般に、スイッチは、構成可能スイッチと構成不可能スイッチの2つに分類される。構成可能スイッチ(「管理スイッチ」とも呼ばれる)は、様々なネットワーク設定(たとえば、ポート速度、仮想LAN、冗長性、ポートミラーリング、トラフィック優先順位付けのためのQoS(Quality of Service)など)を持つことができ、ネットワーク設定は、スイッチを特定の実装に合わせることができるようにユーザによって設定される。構成不可能スイッチ(「非管理スイッチ」とも呼ばれる)は、エンドユーザが簡単に変更できないネットワーク設定を持つOEMメーカーの仕様で一般的に構成される。構成可能スイッチは、トラフィックの入力および制御が望まれる環境(たとえば、工業環境)においてしばしば見られるが、構成不可能スイッチは、一般に、それほど洗練されていない環境(たとえば、家庭または小規模オフィス)を対象とする。
【0021】
一般に、本明細書中で使用される場合、「管理スイッチ」というフレーズは、上述のように「構成可能スイッチ」という語句と同義ではなく、「非管理スイッチ」というフレー
ズは、上記の「構成不可能スイッチ」というフレーズと同義ではない。むしろ、「管理」および「非管理」という用語は、スイッチのロック可能性を指す。すなわち、本明細書で使用される「管理スイッチ」は、本明細書で説明されるロックダウン機能を有するスイッチを指し、「非管理スイッチ」は、本明細書で説明されるロックダウン機能を欠くスイッチを指す。スイッチ146は、説明したロックダウン動作を実施するように構成されているので、スイッチ146は、「管理スイッチ」と呼ぶことができる。
【0022】
ロックダウン動作は、スイッチ146がそのポートをロックすることを可能にして、ロックダウン時にそのポートに接続されたデバイスが「既知」のデバイスになるようにする。「既知のデバイス」は、「新しい」デバイスがポートを介して通信することを許可されていない間に、そのポートを使用し続けることが許可されている。すなわち、スイッチ146は、スイッチ146がロックされた後にスイッチ146に接続する「新しい」デバイスから受信した通信を「ドロップ」し、スイッチ146が新たに接続された悪意のあるデバイスによる攻撃からポートを保護することを可能にする。一般的に言えば、「接続」という用語は、デバイスとスイッチ146のポートとを参照して使用される場合、ポートと物理媒体(たとえば、CAT5またはCAT6ケーブルなどのイーサネットケーブル)との間の物理的接続を指し、スイッチ146とデバイスとの間の通信を可能にする。物理媒体は、デバイスとの通信を容易にする1つ以上の中間デバイスを介して直接的または間接的にデバイスに接続することができる。
【0023】
ロックダウン操作を実施する場合、スイッチ146は、スイッチ146の各ポートに(直接的または間接的に)接続されたすべての既知のデバイスの物理アドレス(たとえば、MACアドレス)のレコード(たとえば、静的アドレステーブル)を生成することができる。従来の制御スイッチとは異なり、スイッチ146は、単一のポートに接続された3つ以上の物理デバイスの記録を生成することができる。たとえば、3つ、4つ、5つ以上のデバイスが1つのポートにデイジーチェーン接続されている場合、スイッチ146は、単一のポートにデイジーチェーン接続された複数のデバイスのそれぞれの物理アドレスのレコードを生成することができる。その結果、スイッチ146は、すべてのポートを「ロック」し、既知の物理アドレス(たとえば、ロックダウンが開始された時点のレコード上の物理アドレスと一致するソース物理アドレス)を有するデバイスのみについてスイッチ146を介した通信を可能にすることができる。このようなシナリオでは、悪意のあるデバイスがロックダウン後にスイッチ146のポートに物理的に接続すると、スイッチ146は、悪意のあるデバイスからのメッセージを転送しない(物理アドレスがロックダウン時にそのポートに接続されたデバイスの物理アドレスと一致しないと仮定して)。したがって、スイッチ146は、悪意のあるデバイスが制御ネットワークに加わるのを防ぐことができ、これにより、悪意のあるデバイスが制御ネットワークから機密情報を収集したり、制御ネットワークに接続されたデバイスを不正に制御したりすることが防止される。
【0024】
ロックダウン動作は、スイッチ146が接続されているネットワーク上のセキュリティ脅威を検出するデバイスに応答して送信されたロックコマンドをスイッチ146が受信したことに応答して、スイッチ146によって実施されてもよい。たとえば、ロックコマンドは、スイッチ146に関連付けられたプラントで実装される制御システム(たとえば、DeltaV制御システム)内のデバイス(たとえば、サーバ、ワークステーション、またはコントローラなどのコンピュータ)によって送信されてもよい。別の例として、ロックコマンドは、ネットワーク活動を監視するセキュリティシステム(たとえば、セキュリティソフトウェアを実行するコンピュータまたはASICのような特別に設計されたハードウェア)によって送信することができる。セキュリティシステムは、アクセス制御システム、アンチキーロガーシステム、アンチマルウェアシステム、アンチスパイウェアシステム、破壊防止システム、ウイルス対策システム、暗号システム、ファイアウォールシステム、侵入検知システム(IDS)、侵入防止システム(IPS)、セキュリティ情報管
理システム、またはセキュリティ情報およびイベント管理(SIEM)システムなどの、ネットワーク活動を監視するための1つ以上のシステムを含んでもよい。これらのセキュリティシステムのうちの1つ以上は、ロックコマンドを生成するために協調して動作することができる。たとえば、ファイアウォールシステムはセキュリティ脅威を検出し、SIEM(複数のソースからのセキュリティ脅威を集約するように構成されている可能性がある)に通知することができ、SIEMは、ロックコマンドを送信することによって応答することができる。例示的なセキュリティ上の脅威は、多くの方法のいずれかで検出される可能性がある。たとえば、セキュリティシステムは、署名に基づく検出(たとえば、マルウェアなどの既知の脅威の既知のネットワークシグネチャの認識)および/または異常に基づく検出(たとえば、ノードに関連付けられた特定のプロトコルに関連するものなど、特定の論理ポートのみがオープンおよび使用されると予想されるノードで開かれる新しい論理ポートなどの偏差を検出する)。
【0025】
ロックダウンルーチンは、各ポートでのトラフィックを所定のしきい値に制限するトラフィック制御ルーチンと組み合わせて利用することができる。各ポートの各しきい値は、ポートに接続されたデバイスのタイプに基づいて判定されてもよい。たとえば、コントローラがポートに接続されている場合、コントローラのトラフィック使用率は、ポートごとの一定量の入出力トラフィック(たとえば、512kbpsの入力、または1500のパケット/秒の出力トラフィックなど)およびそれに応じて設定されてもよいポートのトラフィックしきい値を超えるとは限らない。フィールドデバイスはトラフィックを多少消費する可能性があるため、フィールドデバイスに接続されているポートのトラフィックしきい値が異なる場合がある。場合によっては、トラフィック制御はプロセス制御スイッチにとって重要な機能である。たとえば、所与のプロセス制御システムの特定の通信要件が観察された場合、トラフィック制御を持たないプロセス制御スイッチは、あらゆるタイプのデバイス間で交換されるトラフィックの量を許容し、したがって容易に検出される基本的なサービス拒否攻撃を阻止しない。プロセス制御システムは非常に予測可能な傾向があり、したがって、これらの特定のユースケースで使用されるプロトコルとデバイスタイプに基づいてしきい値を設定することは困難ではない。
【0026】
ロックダウン動作をさらに参照すると、スイッチ146は、ポートが第2のスイッチに接続されるとき(たとえば、ブリッジプロトコルブリッジユニット(BPDU)フレームを使用して)を、判定することができ、第2のスイッチが第2のスイッチ146であるか、「非管理スイッチ」(たとえば、開示されたロックダウン機能を持たないスイッチ)であるかを判定するために、第2のスイッチでハンドシェイクを実行することができる。第2のスイッチがロック解除可能または「非管理」スイッチである場合、スイッチ146は、ロック解除可能スイッチまたは「非管理」スイッチを介して、スイッチ146のポートに接続されたすべてのエンドデバイスの物理アドレスを識別して記録することができる。
【0027】
必要に応じて、スイッチ146は、ロックダウン中にロック解除された特定のポートを残すことができる。たとえば、スイッチ146は、ポートが第2のスイッチに接続されたとき(このようなポートは「アップリンクポート」と呼ばれ得る)を判定し、ハンドシェイクを実行して、第2のスイッチを「管理」であるかどうか、(すなわち、スイッチ146のように「ロック可能」)、または「非管理」であるかどうか(すなわち、スイッチ146のように「ロック可能」ではない)を判定する。第2のスイッチが「管理」である場合、スイッチ146は、アップリンクポートをロック解除したままにしてもよい(そしてその結果、アップリンクポートを介して受信されたメッセージのソース物理アドレスを検査することができず、および/またはメッセージのソース物理アドレスは検査できるが、ソース物理アドレスが不明なメッセージはドロップされない)。そのようなアップリンクポートは、「管理アップリンクポート」と呼ばれてもよい。第2のスイッチが「非管理」である場合、スイッチ146は、「非管理スイッチ」を介してアップリンクポートに接続
されたすべてのエンドデバイスの物理アドレスを識別して記録することができ、アップリンクポートは「非管理アップリンクポート」と呼ばれてもよい。その後、スイッチ146は、スイッチ146が非管理スイッチに接続された未知のデバイスから発生したメッセージをドロップするように、アップリンクポートをロックすることができ、スイッチ146が接続されているより広いネットワークに未知のデバイス(たとえば、悪意のあるデバイスなど)がアクセスすることを防止する。スイッチ146のロックされたポートは、既知のデバイスからブロードキャストおよびマルチキャストメッセージを送信し続けてもよく、そのような場合、未知のまたは不正デバイス(すなわち、所与のポートに対して既知の物理アドレスを持たないデバイス)は、これらの送信されたブロードキャストおよびマルチキャストメッセージを聞くことができる。しかしながら、そのような場合、不正デバイスは、これらのメッセージに応答することができず、そうでなければ、スイッチ146のロックされたポートを介してメッセージを送信することができない。
【0028】
アドレスマッピング動作は、スイッチ146がロックダウンの後に、デバイスが単に既知の物理アドレスを偽装していないことを確認することにより、既知の物理アドレスを有するデバイスが既知のデバイスであることを検証することを可能にする。スイッチ146は、既知の物理アドレスごとにネットワークアドレス(たとえば、IPアドレス)を追跡することによってこの検証を実行する。したがって、所与のポートに関する既知の各デバイスは、スイッチ146によって追跡された既知のアドレスペア(すなわち、物理アドレスおよびネットワークアドレス)を有するべきである。その結果、悪意のあるデバイスがスイッチ146のロックされたポートに接続し、そのロックされたポートに対して既知のデバイスの物理アドレスをうまく偽装した場合であっても、スイッチ146は、悪意のあるデバイスのネットワークアドレスが、物理アドレスとペアになっているレコード上のネットワークアドレスと一致しないことを検出する。その結果、スイッチ146は、アラートを生成し、かつ/または悪意のあるデバイスから受信した通信をドロップする。
【0029】
スイッチ146は、必要に応じて、ポートミラーリングを実装することができる。たとえば、スイッチ146は、特定のポートに出入りするパケットをコピーし、コピーされたパケットを分析器に送信することができる(たとえば、アナライザに関連付けられた割り当てられたポートを介して)。分析器は、コピーされたパケットを分析するように(たとえば、ソフトウェアを介して)構成された任意の機械であってもよい。ポートミラーリングは、元のパケットを送信および/または受信するデバイスに大きな影響を与えることなく、コピーされたパケットに対して診断および/またはデバッグを実行することを可能にする。
【0030】
図1Aおよび1Bは、スイッチ146を実装して、ネットワークセキュリティを強化し、ネットワーク管理および保守を容易にするプロセスプラント内のプロセス制御システム100の概略図である。プロセス制御システム100は、プロセス制御ネットワーク150およびノード間の電気通信を可能にするために接続された通信リンクを含む。プロセス制御ネットワーク150はノードの集合である(たとえば、情報を送信、受信、および/または転送することができるデバイスまたはシステム)。ネットワーク150のノードは、1つ以上のスイッチ146と、1つ以上のプロセスコントローラ110と、少なくとも1つは表示画面を含む、1つ以上のホストワークステーションまたはコンピュータ120~122(たとえば、承認されたワークステーションおよび/またはサーバとすることができる)と、1つ以上の入力/出力(I/O)カード140と、1つ以上のフィールドデバイス130,133および/または142と、ゲートウェイ143と、および/またはデータヒストリアン145を含む。いくつかの実施形態は、フィールドデバイス142およびゲートウェイ143を含まない。
【0031】
ネットワーク150はローカルエリアネットワーク(LAN)である。場合によっては
、ワイドエリアネットワーク(WAN)および/または電気通信ネットワークがプラントネットワークの一部であってもよいが、場合によってはネットワーク150の不可欠な部分ではない場合もある。ネットワーク150は、イーサネット通信および/または任意の適切な通信プロトコル(たとえば、TCP/IP、プロプライエタリプロトコルなど)用に構成されてもよく、かつハードワイヤード(好ましい)または無線技術を使用して実装することができる。ネットワーク150の追加の態様は、詳細な説明の最後でより詳細に説明される。
【0032】
1つ以上のプロセスコントローラ110(各々は、たとえば、Fisher Rosemount Systems,Inc.によって販売されているDeltaV(商標)コントローラであってもよい)は、1つ以上のスイッチ146を介して、ネットワーク150ならびに1つ以上のホストワークステーションまたはコンピュータ120~122に通信可能に接続される。各コントローラ110は、1つ以上のネットワークインタフェースカード(「通信インタフェース」と呼ばれることもある)を含んでもよく、I/Oカード140を介してフィールドデバイス130に接続することができ、その各々はバックプレーンを介してコントローラ110の1つに通信可能に接続することができる。フィールドデバイス130は、(たとえば、DeltaVエレクトロニックマーシャリング技術を使用して)ネットワーク150に通信可能に結合されてもよい。ネットワーク150は、オープンプロトコルを使用してフィールドデバイスに接続し、データを1つ以上のプロセスコントローラ110に送り返す、DeltaV CHARM I/Oカード(CIOC)、無線I/Oカード(WIOC)、イーサネットI/Oカード(EIOC)などのイーサネットベースのI/Oノードを接続するためにも使用することができる。この場合、コントローラ110とI/Oノードとの間の通信は、明示的に所有権を有することがある。
【0033】
ネットワーク150のサブネットワークであってもよいI/Oネットワーク155は、(たとえば、I/Oカード140を介して)コントローラ110とフィールドデバイス130,133,142との間の通信を容易にする。I/Oネットワーク155は、追加のスイッチ146(図1B参照)など、図1Aには示されていない中間ノードを含むことができる。I/Oネットワーク155は、イーサネット通信および/または任意の適切な通信プロトコル(たとえば、TCP/IP、ModbusIPなど)用に構成してもよく、かつ実装に応じて有線または無線技術を使用して実装することができる。いくつかの実施形態は、I/Oネットワーク155を含まないか、またはI/Oネットワーク155の修正バージョンを含む(たとえば、いくつかの実施形態は、コントローラ110とフィールドデバイスとの間にスイッチを含まない)。
【0034】
I/Oカード140は、フィールドデバイス130に、たとえば、標準的な4~20mAデバイス、標準的なイーサネットプロトコルおよび/またはFOUNDATION Fieldbusプロトコル(Fieldbus)、HARTプロトコル、または任意の他の所望の通信プロトコルまたはコントローラプロトコルなどの任意のスマート通信プロトコルなどに関連する任意の所望のハードウェアおよびソフトウェアを使用して通信可能に接続される。
【0035】
フィールドデバイス130は、センサ、バルブ、送信機、ポジショナなどの任意のタイプのデバイスであってもよい。図1Aに示す実施形態では、フィールドデバイス130は、標準的なアナログ4~20mA回線131を介してHARTモデム140と通信するHARTデバイスであり、一方で、フィールドデバイス133は、Fieldbusプロトコル通信を使用してデジタルバス135またはI/Oネットワーク155を介してI/Oカード140と通信する、Fieldbusフィールドデバイスなどのスマートデバイスである。無論、フィールドデバイス130および133は、将来開発される任意の標準規格またはプロトコルを含む任意の他の所望の標準規格(複数可)またはプロトコルに準拠
してもよい。
【0036】
フィールドデバイス142は、ゲートウェイ143などの特殊なネットワークデバイスを介してデジタルバス135に接続することができる。たとえば、フィールドデバイス142はProfibus-PAコマンドを理解するだけでよく、I/Oネットワーク135はPROFIBUS-DPプロトコルを実装してもよい。このために、ゲートウェイ143は双方向PROFIBUS-DP/PA変換を提供することができる。スイッチ146はまた、ゲートウェイ143またはその近くに配置されてもよい。
【0037】
1つ以上のプロセッサを内部に有するプラント内の多くの分散コントローラのうちの1つとすることができるコントローラ110は、1つ以上のプロセス制御ルーチンを実装または管理する。ルーチンは、コントローラに格納されるか、コントローラに関連付けられる1つ以上の制御ループを含むことができる。コントローラ110はまた、ネットワーク150および関連するネットワークデバイス146を介して、デバイス130または133、ホストコンピュータ120~122、およびデータヒストリアン145と通信して、任意の方法でプロセスを制御する。本明細書に記載される任意の制御ルーチンまたは要素は、そのように所望される場合は、その一部を異なるコントローラまたは他のデバイスによって実装または実行させてもよいことに留意されたい。同様に、本明細書で説明された、プロセス制御システム100内部で実装されることになる制御ルーチンまたは要素は、ソフトウェア、ファームウェア、ハードウェア等を含む任意の形式を取り得る。この議論の目的のために、プロセス制御要素は、たとえば、任意のコンピュータ可読媒体上に記憶されたルーチン、ブロック、またはモジュールを含むプロセス制御システムの任意の部位または部分であり得る。制御ルーチンは、サブルーチン、サブルーチンの一部(コード行など)などのモジュールまたは制御プロシージャの任意の一部であり得、ラダーロジック、シーケンシャルファンクションチャート、機能ブロック図、オブジェクト指向プログラミング、または任意の他のソフトウェアプログラミング言語または設計パラダイムを使用するなど、任意の所望のソフトウェアフォーマットで実装することができる。同様に、制御ルーチンは、たとえば、1つ以上のEPROM、EEPROM、特定用途向け集積回路(ASIC)、または任意の他のハードウェアまたはファームウェア要素にハードコードされてもよい。さらに、制御ルーチンは、グラフィカル設計ツールまたは任意の他のタイプのソフトウェア/ハードウェア/ファームウェアプログラミングまたは設計ツールを含む任意の設計ツールを使用して設計することができる。したがって、コントローラ110は、任意の所望の様式で制御ストラテジまたは制御ルーチンを実装するように構成することができる。
【0038】
データヒストリアン145は、任意の所望の種類のメモリ、およびデータを記憶するための任意の所望のまたは既知のソフトウェア、ハードウェア、またはファームウェアを有する、任意の所望の種類のデータストレージまたは収集ユニットであってもよく、かつワークステーション120~122のうちの1つから分離されてもよく、またはその一部であってもよい。データヒストリアン145は、スイッチ146を介してネットワーク150および/またはホスト120および122に通信可能に結合されてもよい。
【0039】
図1Cは、イーサネットプロトコルを使用して、一般的にはプロセス制御システム100を介して、かつプロセス制御ネットワーク150を介して通信することができるデータまたはフレーム175の基本単位を示す。イーサネットフレーム175は、スイッチ146または他のプロセス制御システム100のコンポーネントのようなデバイス間で情報をそれぞれ運ぶ7つのフィールドを含む。フィールドは、受信デバイスによって解釈されて処理される多数のデータバイト178を含むことができる。たとえば、宛先MACアドレスフィールド180は、プロセス制御ネットワーク100の中間または宛先ノードの物理アドレスを含むことができ、ソースMACアドレスフィールド182は、プロセス制御シ
ステム100の送信ノードまたは中間ノードの物理アドレスを含むことができる。宛先MACアドレス180およびソースMACアドレス182フィールドは、プロセス制御ネットワーク150を介して送信されたデータを処理するために、スイッチ146からのデータと共に使用されてもよい。いくつかの実施形態では、フィールド180,182は、デバイスが「ロックダウン」状態にあるときに、受信側ネットワークデバイス内に格納された1つ以上のテーブルと比較することができる。比較の結果は、受信したデータまたはロックされたネットワークデバイスへの他の物理的または論理的な接続を拒絶するか、そうでなければ拒否するために使用することができる。
【0040】
図2Aは、図2Cに示すように、スイッチ146の一例を表しているスイッチ146A~Dのセットが、ロックダウン性能を改善し、ネットワークセキュリティを向上させるために実装される例示的なプロセス制御ネットワーク200Aのネットワーク図である。実線はロックされたポートに接続された通信リンクを表し、点線はロック解除されたポートに接続された通信リンクを表す。有利なことに、スイッチ146A~Dの各ポートをロックダウンすることができる。その結果、たとえ悪意のあるデバイスが、スイッチ146A~Dの1つのポートに接続されたプロセス制御デバイス、ハブ、または非管理スイッチに接続しても、各スイッチ146A~Dがロックダウンされたときに、悪意のあるデバイスは、そのポートを介して通信することができない。
【0041】
ネットワーク200Aは、スイッチ146A~Dに加えて、デバイス111A~111L(集合的に「デバイス111」と呼ぶ)、デバイス113A~113D(集合的に「デバイス113」と呼ぶ)、およびハブ112を含む。デバイス111は、プロセス制御プラント内で動作し、プロセス制御ネットワークを介して通信するように具体的に構成されたプロセス制御デバイスである。各デバイス111は、(たとえば、冗長性のために)1つまたは2つの物理アドレスを有する。一般に、デバイス111の物理アドレスは、デバイス111がプロセス制御ネットワーク100D上の他のプロセス制御デバイスによって認識されるように特別に構成されたMACアドレスである。たとえば、各デバイス111の物理アドレスは、それぞれがプロセス制御環境での実装のために特別に構成されたデバイスとして認識可能であるように、特定の認識されたパターンの文字(たとえば、F9-C3-XX-XX-XX-XX)で開始または終了することができる。例示的なデバイス111は、プロセスコントローラ、I/Oカード、ワークステーション、データヒストリアン、および特別に構成されたネットワークデバイスを含む。
【0042】
デバイス113は、(i)プロセス制御ネットワーク用に特別に構成されていないデバイス(「市販のデバイス」または「汎用デバイス」とも呼ばれる)および/または(ii)3つ以上の物理アドレスを有するデバイス(特別に構成されたプロセス制御デバイスと「汎用」デバイスの両方を含むことができる)を含む。ハブ112は汎用ネットワークハブである。
【0043】
スイッチ146A~Dは、ポートに接続されたデバイスのタイプまたは数に関係なく、すべてのポートをロックすることができ、スイッチ146A~Dのいずれかのポートに(直接的または間接的に)接続する悪意のあるデバイスによる攻撃を防ぐことができる。図2Aは、スイッチ146A~Dが現在のプロセス制御スイッチを改良するいくつかの例を示す。以下に、スイッチ146A~Dの利点を示す4つの特定の例について説明する。4つの例とは、(i)「汎用デバイス」またはデバイス(プロセス制御または「汎用」)に接続されたポートを3つ以上の物理アドレスでロックすること、(ii)非管理スイッチに接続されたポートをロックすること、(iii)一連のデイジーチェーン接続されたデバイスに接続されたポートをロックすること、および(iv)複数のデバイスに接続されたハブなどの管理されていないネットワークデバイスに接続されたポートをロックすることである。
【0044】
第1の例は、デバイス113Aに接続されたときにロックすることができるポート201を含むスイッチ146Aを含む。デバイス113Aは、(i)任意の数の物理アドレスを有する「汎用デバイス」または(ii)3つ以上の物理アドレスを有するプロセス制御デバイスであってもよい。動作中、スイッチ146Aは、ポート201をロックするためのロックダウンルーチンを実施する。ロックダウン後、スイッチ146Aは、デバイス113Aの物理アドレスとは異なる物理アドレスを有するデバイスをポート201を介して通信することを許可しない。言い換えれば、スイッチ146Aは、ポート201で受信された任意のメッセージを分析して、メッセージに含まれるソース物理アドレスを識別する。メッセージが、ロックダウンの時点でスイッチ146Aによって知られているデバイス113Aの物理アドレスと一致するソース物理アドレスを含まない場合、スイッチ146Aは、その他のポートの1つを介してメッセージを転送するのではなく、メッセージを「ドロップ」し、スイッチ146Aによってポート違反アラートが生成される。比較すると、典型的なプロセス制御スイッチは、デバイス113Aが「汎用」デバイスまたは3つ以上の物理アドレスを有するデバイスのいずれかであるため、デバイス113Aに接続されたポートをロックすることができない可能性があり、通常、プロセス制御スイッチは、ロックダウン手順が開始されても、そのようなポートをロックしない。
【0045】
スイッチ146Aはまた、スイッチ146Bに接続されたポート211を含む。ポート211に接続された実線で示すように、ポート211はロックされている。したがって、スイッチ146Aは、スイッチ146B~Dのいずれかに接続されたデバイスの任意の物理アドレスを含む、ロッキング時にポート211を介して通信するすべてのデバイスの物理アドレスを格納することができる。場合によっては、スイッチ146B~Dのそれぞれは、上流スイッチ146(たとえば、スイッチ146A)に接続されているという通知を受信することができ、その結果、上流スイッチ146が、リストされた物理アドレスが既知のアドレスであることを保証するために、メッセージにリストされた物理アドレスを認証することを前提として、ロックダウン中に物理アドレスを認証することができない。他の例では、スイッチ146B~Dのうちの1つ以上は、スイッチ146Aと共にロックダウン中に物理アドレスを認証する。
【0046】
第2の例は、非管理スイッチ(すなわち、記載されたロックダウン機能を持たないスイッチ、またはBPDUフレームを送信できないスイッチ)に接続されたときにロック可能なポート203を含むスイッチ146Bを含む。ポート203、および第2のスイッチに接続された他の任意のポート(たとえば、スイッチ146Aのポート211およびポート213,215、および217)は、「アップリンクポート」と呼ぶことができる。なお、一部の状況では、スイッチ146は、アップリンクポートを識別するとき、管理アップリンクポートのみを識別するように構成することができ、したがって、スイッチポート203は、スイッチ146Bによってアップリンクポートとして分類されないことがある(たとえば、スイッチ146は、他のスイッチ146に接続されているポートをアップリンクポートとしてのみ分類するように構成することができる)。デバイス111G~Iは、ポート203に物理的に接続された非管理スイッチ109に接続されている。特に、非管理スイッチ109は、(スイッチ109をデバイス111G~Iに接続する点線によって示されるように)そのポートをロックダウンすることができないので、悪意のあるデバイスは、スイッチ109に接続して、スイッチ109に接続された他のデバイス(たとえば、デバイス111G~111I)と通信することができる。換言すれば、誰かがネットワーク200A内のロック可能なスイッチ(たとえば、スイッチ146A~146D)のすべてをロックダウンしようとしても、未知の物理的な新しいデバイスがスイッチ109に接続することができ、スイッチ109は、悪意のあるデバイスからのメッセージに含まれる宛先アドレスにマッピングされたスイッチ109のポートに、悪意のあるデバイスからのメッセージを転送する。
【0047】
しかしながら、ポート203は、スイッチ146Bによってロックされているので(スイッチ146Bとスイッチ109を接続する実線で示すように)、ポート203で受信された新しい未知のデバイスからのメッセージは、スイッチ146Bによってドロップされる。スイッチ146Bがロックされると、ポート203を介して通信するすべての既知のデバイスの既知の物理アドレスのレコードが作成されるので、それらの既知のデバイスがスイッチ109のような非管理アップリンクスイッチを介して通信しているとしても、メッセージはドロップされる(スイッチ146Bは、ポート203を介して送受信されるメッセージのソースおよび送信先アドレスを監視および記録することによってこのレコードを作成することができる)。したがって、図示の例では、スイッチ146Bは、デバイス111G~Iの物理アドレスのみがポート203に関連付けられるように、既知の物理アドレスのレコードを「ロック」する。その結果、スイッチ109に(たとえば、有線または無線接続を介して)接続する任意のデバイスは、スイッチ146Bのポート203を介してネットワーク200A上の他のデバイスと通信することができない(新しいデバイスがデバイス111G~Iのうちの1つのものと一致する物理アドレスを有する場合、スイッチ146はアドレスマッピングテーブル222を利用して新しいデバイスがデバイス111G~Iの1つではないことを検出する)。要するに、ポート203がそのポートをロックしない非管理スイッチ(すなわち、スイッチ109)に接続されていても、スイッチ146Bは、ロックダウン時にスイッチ109に接続されたデバイスのみがスイッチ146Bを介して通信できるようにポート203をロックすることができる。
【0048】
第3の例に移ると、図2Aは、デイジーチェーン接続されたデバイス111Eおよび111Fのセットがポート205に接続されたときにロックすることができるポート205を含むスイッチ146Cを示す。デバイス111Eはポート205に物理的に接続され、デバイス111Fはデバイス111Eにデイジーチェーン接続され、デバイス111Eとデバイス205との接続を介してネットワーク200A上の他のデバイスと通信することができる。一般に、デイジーチェーン接続はパススルー接続であり、すべてのデイジーチェーン接続されたデバイス(つまり、111Eおよび111F)がポート205に直接アクセスできるようにする。特に、デバイス111Eは、デバイス111Eと111Fとの間で点線で示すように、デバイス111Fに接続されたアクセスポイントをロックしない。したがって、悪意のあるデバイスは、デバイス111Eまたは111Fに接続する可能性があり、そのいずれかが、悪意のあるデバイスから受信したメッセージを転送する可能性がある。ただし、新しいデバイスがポート205に接続された同じデイジーチェーンに接続されている場合や、デイジーチェーンのデバイスが新しいデバイスに置き換えられた場合は、スイッチ146Cは、ポート205に対するポート違反のフラグを立て、デイジーチェーンに接続された任意のデバイスからの通信を許可しない可能性がある。いくつかの例では、スイッチ146Cは、ロックダウン中に新しいデバイスからのメッセージを単純にドロップすることができる。ポート205をロックダウンすると、スイッチ146Cは、ポート205(たとえば、デバイス111Eおよび111F)を介して通信するすべての既知のデバイスの既知の物理アドレスのレコードを作成し、既知の物理アドレスとは異なるソース物理アドレス(たとえば、悪意のあるデバイスの物理アドレス)を識別するメッセージを廃棄するので、メッセージはドロップされる。したがって、悪意のあるデバイスがデバイス111Eまたは111Fに接続している間に、悪意のあるデバイスからの任意のメッセージは、スイッチ146Cによってドロップされる(すなわち、スイッチ146Cの他のポートを介して転送されない)。
【0049】
最後に、第4の例として、図2Aは、複数のデバイスに接続されたロック解除可能なハブ112に接続されたときにロック可能なポート207を含むスイッチ146Dを示す。要するに、スイッチ146Dは、スイッチ146Bが非管理スイッチ109をどのように処理するのかと同様に、ハブ112を処理する。デバイス113D、111K、および1
11Lは、ポート207に物理的に接続されたハブ112に接続されている。ハブ112は、(ハブ112をデバイス113D、111K、および111Lに接続する点線によって示されるように)そのポートをロックダウンすることができないので、悪意のあるデバイスは、ハブ112に接続して、ハブ112に接続された他のデバイスと通信することができる。しかしながら、ポート207はスイッチ146Dによってロックされているので、ポート207で受信された新しい未知のデバイスからのメッセージは、スイッチ146Dによってドロップされる。
【0050】
特に、デバイス113D、111K、および111Lは、それらの物理アドレスがスイッチ146Dおよび/または146Bのメモリに登録されているので、ネットワーク200を介して通信することができる。場合によっては、使いやすさと利便性のために、スイッチ146A~Dのアップリンクポート(たとえば、ポート213および215)はロックされないが、アップリンクポートにマッピングされたすべての物理アドレスが(たとえば、スイッチ146Bおよび/または146Dに)登録され、アドレステーブルへの変更がフラグされ、アラートがスイッチによって生成される。たとえば、誰かがスイッチ146Bからスイッチ146Dを切断しようとし、新しいハブをポート215に接続しようとすると、スイッチ146Bは、新しいハブおよびスイッチ146Bを介して通信しようとするデバイスの未知のアドレスを検出する。誰かがスイッチ146Bとスイッチ146Dとの間に中間デバイスとして新しいハブを挿入しようとすると、スイッチ146Bおよび146Dの両方は、新しいハブ(および/またはハブに接続された新しいデバイスの任意の新しいアドレス)を検出することができ、一方または両方が、スイッチ146Bおよび146Dに現在接続されている新しい物理アドレスに関するアラートを生成することができる。アップリンクポート検出メカニズムにより、ユーザは、そのような物理的なアクセス介入がいつ実施されるかを識別することができる。
【0051】
図2Bは、スイッチ146A~Dのセットが実装されている例示的なプロセス制御ネットワーク200Bのネットワーク図である。ネットワーク200Bは、ネットワーク200Aと同様である。ネットワーク200B内の各スイッチ146A~Dは、そのポートの1つが第2のスイッチ(すなわち、アップリンクポート)に接続されているときを検出し、第2のスイッチが管理されていないときにのみアップリンクポートをロックするように構成される。各スイッチ146A~Dは、第2のスイッチでハンドシェイクを分析して、第2のスイッチが管理されているかどうかを判断する(たとえば、第2のスイッチがスイッチ146であるかどうかを判定する)。ロックダウンの間、各スイッチ146A~Dは、接続された第2のスイッチがロック可能であるかどうかに応じて、アップリンクポートを介して受信されたメッセージを異なる方法で処理することができる。言い換えれば、各スイッチ146A~Dは、第2のスイッチがロック可能であるかどうかに応じて、ロック解除またはアップリンクポートをロック状態にすることができる。
【0052】
たとえば、スイッチ146Aは、スイッチ146Bに接続されたアップリンクポート211を含む。スイッチ146Bはロック可能であるので、スイッチ146Aは、アップリンクポート211をロック解除したままにする。同様に、スイッチ146Bは、それらがロック可能スイッチ146Cおよび146Dに接続されているので、アップリンクポート213および215をロック解除したままにする。スイッチ146Aは、メッセージに含まれるソース物理アドレスを認証することなく、スイッチ146Bから受信したメッセージを転送することができる。スイッチ146Aは、スイッチ146Bがそのポートに対してロックダウンを処理していると「仮定している」と言えるかもしれず、したがって、ロックダウン中であっても、アップリンクポート211をロックすることはできない。スイッチ146Bは同様にポート213および215のロックを解除したままにしておくことができる。場合によっては、スイッチ146Aおよび146Bは、アップリンクポート211~215を介して受信されたメッセージのソース物理アドレスを引き続き監視し、ソ
ース物理アドレスを既知の物理アドレスと比較することができる。スイッチ146Aおよび146Bは、監視によってソース物理アドレスが未知であることが明らかになったときに、ポート違反アラームを生成することができる。
【0053】
第2のスイッチがロック可能でない場合(たとえば、汎用または「既製品」のスイッチ)、スイッチ146A~Dは、図2Aを参照して説明したのと同じ方法で、アップリンクポートをロックすることができる。たとえば、スイッチ146Bは、図2Aを参照して説明したように、アップリンクポート203(非管理またはアンロック可能スイッチ109に接続されている)をロックすることができる。場合によっては、アップリンクポートがロックされると、スイッチ146A~Dは、未知のソース物理アドレスを有するメッセージをドロップする。他の例では、アップリンクポートがロックされると、スイッチ146A~Dは未知の物理アドレスを有するメッセージを転送し続けながら、ポート違反アラームまたはアラートを生成する。
【0054】
図2Cは、スイッチ146のブロック図であり、スイッチ146は、DeltaV(登録商標)プロセス制御ネットワーク(異なるユースケースに対処するために異なるファミリがある)で使用するためのDeltaVスマートスイッチであってもよい。スイッチ146はレイヤ2スイッチであり、スイッチ146はOSIモデルのレイヤ2(データリンクレイヤ)で動作することを意味する。動作中、スイッチ146は、メッセージの転送ポートを、(i)メッセージに含まれる宛先物理アドレスを特定し、(ii)宛先物理アドレスに関連する転送ポートを識別するためにスイッチングテーブルを参照することにより、メッセージ用の転送ポートを選択する。スイッチ146は中間ノードを追跡しない。たとえば、スイッチ146が、4つの中間ノードを介してスイッチ146に接続されたエンドデバイス向けのメッセージを受信した場合、スイッチ146は、「次のノード」または他の中間ノードのいずれかの記録を持たない。むしろ、スイッチングテーブルを参照して、メッセージを転送するためにどのポートを使用すべきかを判定する。さらに、スイッチ146は、メッセージ転送の目的でネットワークアドレスを追跡せず、IPルーティングテーブルを利用しない。
【0055】
対照的に、ルータなどのレイヤ3ネットワークデバイスは、OSIモデルのレイヤ3(ネットワークレイヤ)で動作し、通常はルーティングテーブルを使用する。ルータはメッセージを受信すると、メッセージに含まれる宛先ネットワークアドレスを識別する。次に、ルータはルーティングテーブルを参照して、宛先ネットワークアドレスに到達する最適なルートを特定し、最適ルートについてリストされた「ネクストホップ」ネットワークアドレスを識別し、「ネクストホップ」ネットワークアドレスを持つデバイスにメッセージを転送する。レイヤ3スイッチは、通常、ルータと同様のネットワークルーティングインテリジェンスを持っている。場合によっては、スイッチ146は、レイヤ3スイッチであってもよい。すなわち、ある実施形態では、スイッチ146は、ルーティングおよび/または転送のためにネットワークアドレスを利用することができる。
【0056】
前述したように、スイッチ146は「スマートプロセス制御スイッチ」であり、これは、スイッチ146が、プロセス制御環境のために特に構成され、プロセスコントローラ、フィールドデバイス、I/Oカード、プロセス制御ワークステーション、プロセス制御ヒストリアンなどのプロセス制御システムに固有のデバイスと通信するために構成されることを意味する。スイッチ146のファームウェアは、ストーム制御(特定の通信のためのデータ転送を制限する)および/またはループ防止のようなDeltaV通信要件に対処する特定の構成を含むことができる。スイッチ146は、プロセス制御システム100用に特別に設計されたスイッチ146のファームウェアにダウンロードすることによってプロセス制御動作用に構成することができる。特殊化されたファームウェアは、プロセス制御システム100に特有のケースを使用しており、一般にユーザが変更することができな
い。一般に、使用されるファームウェアは、ネットワークループを防止し、ネットワークストームを防ぎ、未使用のスイッチポートをロックダウンするように設計されている。
【0057】
スイッチ146は、1つ以上の通信ポート202、コンソールアクセスポート204、およびステータスライト206を含む。通信ポート202は、ネットワーク150を介した通信のために、様々な他のネットワークデバイスおよびプロセス制御システムコンポーネントを相互接続するために使用され、ステータスライト206は、ネットワークデバイスの現在の動作を示し、診断の目的で使用することができる。一般に、ポート202は、イーサネット接続(たとえば、CAT5 ScTPケーブルまたはCAT6ケーブルを利用する)または光ファイバ接続などの有線の物理接続を受信するように構成されている。
【0058】
スイッチ146はまた、スイッチ146によって実行される動作および機能を実行するように具体的に構成された特定用途向け集積回路(ASIC)である回路230を含む。高レベルでは、回路230はポート202を制御する。特に、回路230は、ポート220を有効および無効化し、ポート220をロックおよびアンロックし、ポート220で受信したメッセージを処理する。図2Bは回路230を単一回路として示しているが、いくつかの実装では、スイッチ146は、回路230に関して説明した機能を実行する複数の回路を含むことができる。
【0059】
さらに、スイッチ146は、メモリ208(揮発性メモリ210および/または不揮発性メモリ212を含むことができる)を含むことができる。メモリ208は、(i)1つ以上の標準および私的管理情報ベース(MIB)214と、(ii)(「転送データベーステーブル」または「FDBテーブル」と呼ばれることもある)交換テーブル216と、(iii)動的アドレステーブル218と、(iii)静的アドレステーブル220と、(iv)アドレス一致テーブル222とを含む。いくつかの例では、メモリ208はコンテンツアドレス可能メモリ(CAM)を含むことができ、テーブル214~222のうちの1つ以上をCAMに格納することができる。
【0060】
一般に、各MIB214は、特定のMIB214に対応するデバイス(たとえば、スイッチ146)を管理するために操作できるオブジェクトまたは変数のデータベースである。MIB214は、スイッチ146を管理し、プロセス制御ネットワーク150に特有の機能を実装するためのコマンドラインインタフェース(CLI)を介してアクセス可能なオブジェクトの集合を含むことができる。1つ以上のプライベートMIB214は、本明細書で説明するロックダウンおよびロック解除機能を制御するために回路230によって管理され得るオブジェクトを含み得る。さらに、回路230は、プライベートMIB214を利用して、スイッチ146と通信するランタイムAPIを介してDeltaV(登録商標)ネットワークセキュリティ機能のためのインタフェースを提供することができる。プロセス制御ネットワーク150は、ネットワークデバイスの混合物を含むように構成することができ、各々のネットワークデバイスは、ロックダウンおよびロック解除機能(すなわち、「ロックデバイス」)を制御するためのプライベートMIB、およびロックダウンまたはロック解除機能を持たない市販のネットワークデバイスをそれぞれ含む。
【0061】
スイッチングテーブル216は、各物理アドレスに対して、1つ以上の物理アドレス(たとえば、MACアドレス)およびスイッチ146の対応するポートとを含む。動作中、スイッチ146はポート202の1つでメッセージを受信する。回路230は、メッセージに含まれる宛先物理アドレスを識別するためにメッセージを分析し、宛先物理アドレスに対応するポート202を識別するためにスイッチングテーブル216を参照する。スイッチングテーブル216が宛先物理アドレスを含まない場合、回路230はフラッディングルーチンを実行することができ、その間にスイッチ146はすべてのポート202を介してメッセージを送信する。宛先物理アドレスを有するデバイスが(直接的または間接的
に)ポート202の1つに接続されていると仮定すると、デバイスは受信したメッセージに応答する。スイッチ146が応答を受信した後、回路230は、宛先物理アドレスと、回路230が宛先デバイスからの応答を受信したポート202とをスイッチングテーブル216に記録する。
【0062】
一般に、スイッチ146は、動的アドレステーブル218を使用して、メッセージの転送または廃棄に関する判定を行うことはない。むしろ、動的アドレステーブル218は、経時的に連続的に更新され得るポートに接続されたデバイスの記録を表す。動的アドレステーブル218は、スイッチ146の各ポート202に現在接続されているエンドデバイスの物理アドレスをリストアップする。たとえば、スイッチ146は、デバイスから受信したフレーム175(図1Cに示す)を解析して、デバイスのソースMACアドレス180を識別することによって特定のポート202への物理アドレスのマッピングを動的に学習することができる。スイッチ146は、ソースMACアドレス180を、特定のポート202にマッピングされた物理アドレスとして動的アドレステーブル218に追加する。さらに、スイッチ146は、(i)宛先デバイスの宛先MACアドレス182を識別するためにフレーム175を分析し、(ii)スイッチングテーブル216に関して説明したフラッディングルーチンを実行して、(iii)宛先デバイスからの応答メッセージが受信されるポート202を識別することにより、物理アドレスの第2のポートへのマッピングを、動的に学習できる。場合によっては、動的アドレステーブル218は、転送テーブル216から情報をコピーすることによって定期的に更新することができる。さらに、いくつかの実施態様では、スイッチ146は、判定を転送し、接続されたデバイスの物理アドレスを追跡するためにのみ、テーブル216および218のうちの1つを使用する。
【0063】
回路230は、新しい物理アドレスを新しいデバイスが接続されているポート202にマッピングして、現在使用されていない物理アドレスをエージングすることによって(たとえば、メッセージが特定の物理アドレスとの間で成功裏に送信されずに通過した時間または数のメッセージを追跡することによって)、ノードがスイッチ146に接続されるかまたはスイッチ146から切断されるときに動的アドレステーブル218を更新することができる。たとえば、エージングタイムの満了時に、回路230は、動的アドレステーブル218から物理アドレスを除去することができる。
【0064】
静的アドレステーブル220は、動的アドレステーブル218と同様に、各ポート202に関連するエンドデバイスの物理アドレスをリストアップする。しかし、テーブル220内の物理アドレスは動的に学習されず、老化しない。むしろ、それらは、スイッチ146がロックされたときに動的テーブル218をコピーすることによって明示的に入力される。スイッチ146のファームウェアに実装された機能は、スイッチングテーブル216をテーブル218および220と比較して着信メッセージを処理することができる。ポート202で受信されたメッセージに含まれるソース物理アドレスを認証するための認証動作を実行するときに、静的アドレステーブル220は、回路230によって利用されてもよい。特に、受信されたメッセージのソース物理アドレスが、静的アドレステーブル220の受信ポートにマッピングされた既知の物理アドレスとして識別されない場合、回路230はメッセージをドロップすることができる。
【0065】
一般に、物理アドレスは、スイッチ146が通常の状態または「ロック解除」状態にある間に、スイッチテーブル216に追加されてもよい。たとえば、「ロック解除」状態において、スイッチ146がイーサネットフレーム175を受信すると、回路130は宛先MACアドレス180を検査し、スイッチングテーブル216を参照して、フレーム175を転送すべき適切なポート202を識別する。スイッチテーブル216が、受信した宛先MACアドレス180に関する情報を含まない場合、スイッチ146は、イーサネットフレーム175をネットワーク150内のすべてのポートにブロードキャストする。別の
ネットワークデバイスでブロードキャストされたMACを認識すると、他のフレームは、ブロードキャストスイッチ146に送られ、ブロードキャストスイッチ146は、発見されたMACアドレスを動的アドレステーブル218およびFDBテーブル216に追加する。しかし、(後述するように)「ロックダウン」状態では、スイッチングテーブル216は、さらなる変更または追加を防止するために、現在の構成において固定されてもよい。ロックされたときに以前に学習された物理アドレスおよび動的アドレステーブル218に含まれる他の情報は、静的アドレステーブル220に移動され、スイッチ146の学習は無効にされる。ロックダウン状態では、切替テーブル216を変更することはできず、スイッチ146が、未知のまたは未学習のMACアドレス182から受信したフレーム175を受け入れて転送するのを防止する。
【0066】
アドレス一致テーブル222は、テーブル216、218、および220のうちの1つ以上に記憶された既知の物理アドレスごとのネットワークアドレスをリストアップする。スイッチ146は、ネットワークアドレスに対するARP要求を送信することによって、既知の物理アドレスのネットワークアドレスを判定することができる。代替的に、場合によっては、データベースは、プロセス制御ネットワーク150上のノード用のネットワークアドレスのリストを記憶することができ、スイッチ146は、既知の物理アドレス用のデータベースネットワークアドレスからダウンロードすることができる。スイッチ146は、受信したメッセージの転送ポートを選択するためにアドレス一致テーブル222を利用しないが、スイッチ146はテーブル222を使用してアドレス解決プロトコル(ARP)スプーフィングを防止することができる。特に、スイッチ146がロックダウンされると、ソースデバイスがアドレス一致テーブル222内の既知のネットワークアドレスと一致するネットワークアドレスを有することを確認することによって、スイッチ146にメッセージを送信したソースデバイスの識別を検証することができる。この検証は、悪意のあるデバイスが既知のデバイスの物理アドレスを偽装した場合に役立つ。アドレス一致テーブル222は、図5を参照して以下でより詳細に説明される。
【0067】
スイッチ146がアップリンクポート(すなわち、第2のスイッチに接続されたポート)を有する場合、スイッチ146は、第2のスイッチが「管理」スイッチであるか「非管理」スイッチであるかを判断するために、第2のスイッチとのハンドシェイクを実施することができる。一般に、「管理」スイッチはそのポートをロックすることができ、「非管理」スイッチはそのポートをロックすることができない。ハンドシェイク中に、スイッチ146は、その「ロック可能性」または状態が管理状態または非管理状態であることに関する第2のスイッチからの指示を受信することができる。ある場合では、スイッチ146は、クエリを第2のスイッチに送信することができ、第2のスイッチは、第2のスイッチが管理されているという指示で応答することができる。また、第2のスイッチは、第2のスイッチが管理されていない、または単に応答しない可能性があるという指示で応答してもよい。ある時間期間(たとえば、1秒、5秒、30秒など)内に応答を受信できないことは、第2のスイッチが管理されていないことをスイッチ146に示すように作用することができる。
【0068】
スイッチ146が、第2のスイッチが管理されているという指示を受信すると、スイッチ146は、第2のスイッチが第2のスイッチのポートのロックを処理することを前提として、第2のスイッチのロックをバイパスすることができる。これにより、スイッチ146は、第2のスイッチを介して通信するデバイスのソース物理アドレスを監視し、これらの監視されたソース物理アドレスを既知の物理アドレスのレコードと比較することができる。スイッチ146が、既知の物理アドレスではない第2のスイッチに接続された監視されたソース物理アドレスを検出すると、スイッチ146は、アラーム(たとえば、ユーザインタフェースを介して表示するためにワークステーション120または122のうちの1つに送信され得るポート違反アラーム)を生成することができる。
【0069】
図3Aは、1つ以上のスイッチ146のポート202をロックおよびロック解除する例示的な方法300を示す。一般に、方法300は、プロセス制御システム100のユーザがスイッチ146をロックダウンさせ、スイッチ146が「未知」のデバイスから受信したメッセージをドロップするようにする。たとえば、ユーザがスイッチ146のポート202からデバイスを抜き取り、その場所にある別のデバイスを差し込むと、スイッチ146は、異なるデバイスからのメッセージを拒絶し、システム100のワークステーション120,122上で実行されるユーザインタフェース、監視サービス、および/または他のアプリケーションに警告する。ロックダウン状態では、ネットワーク150および/または155内のすべてのポート202がロックされてもよく、「未知の」物理アドレスを有する新しい装置がポート202を介して通信することを防止する。以下の方法は、一般に、図4A図4Dに示すユーザインタフェース400を参照するが、記載された機能を実行するための任意の適切なユーザインタフェースが利用され得ることが理解されるであろう。
【0070】
ブロック302において、ユーザは、ユーザインタフェース400(図4A~Dに示す)を表示するプロセス制御ネットワークセキュリティアプリケーションを起動することができる。 ロックダウンプロセスを開始する。ワークステーション120または122のうちの1つは、ロックダウンおよびロック解除手順を開始するためにスイッチ146でMIB214を利用することができるユーザインタフェース400を提供することができる。
【0071】
ブロック304において、アプリケーションは、自動的に(たとえば、起動時に)、またはユーザからの入力に応答して、スイッチ探索を開始することができる。ユーザインタフェース400は、「探索スイッチ」のステータス表示402、またはプロセス制御ネットワーク150の1つ以上のスイッチ146が識別されているという別の表示を表示することができる。いくつかの実施形態では、アプリケーションは、ネットワークデバイス探索を開始すると、ユーザインタフェース400の1つ以上の機能ボタンを無効にすることができる。ユーザは、ネットワークデバイス探索を手動で開始することもできる。場合によっては、アプリケーションは、プロセス制御ネットワーク150内に存在する任意のスイッチ(管理対象または非管理対象)を探索することができる。他の例では、アプリケーションは、ロックダウン機能を含むスイッチ146などのネットワークデバイスのみを識別することができる。
【0072】
アプリケーションは、1つ以上のパラメータを使用してネットワーク150を検索することによって、スイッチ146を探索することができる。場合によっては、アプリケーションは、追加的または代替的に、ネットワーク155を検索することができる。スイッチ146は、スイッチ146の物理アドレスを使用して最初に探索されてもよい。スイッチ146は、コミッショニングプロセス中にネットワークアドレスを有するように構成することができる。このコミッショニングプロセスの後、MIB214を介してスイッチ146との通信が可能となり(たとえば、スイッチ146は、スイッチ146のプライベートMIB214を特定することによって識別することができる)、LAN外のデバイスは、メッセージをスイッチ146のネットワークアドレスにアドレス指定することによって、メッセージをスイッチ146に送信することができる。アプリケーションは、指定された範囲の物理アドレスおよび/またはネットワークアドレスを検索することによってスイッチ146を検索することができる。なお、スイッチ146自体がネットワークアドレスを有していてもよいが、スイッチ146は、一般に、受信されたメッセージの転送ポートを選択するとき、他のデバイスのネットワークアドレスに依存しない。
【0073】
ブロック306において、ブロック304で探索された1つ以上のスイッチ146(図
4B)は、拡張可能なドロップダウンメニュー406(図4A)によってユーザインタフェース400によって表示されてもよく、探索されたスイッチの1つのパラメータは、拡張可能なドロップダウンメニュー406(図4C)から選択されたスイッチ146に対して表示されてもよい。たとえば、ロック状態、ロックタイマ、およびパスワード経過時間などのセキュリティパラメータは、ユーザインタフェース400のウィンドウに表示されてもよい。ウィンドウにはスイッチアラーム(たとえば、COMM、FAILED、MAINT、ADVISE)およびコンポーネント状態パラメータ(たとえば、電源装置の状態、シャーシの温度など)も表示することができる。スイッチのポートは、各ポートの多数のパラメータと共にリストアップされることもある(たとえば、ポートが使用可能かどうかを示し、接続されたエンドノードのノード名を識別し、ポートロックアドレスを識別し、および/またはポートロック違反が存在するかどうかを示す)。
【0074】
探索可能なスイッチ146のすべてが探索されると、ユーザインタフェース400は、検索が完了したことを示すことができる。いくつかの実施形態では、方法300が最初に開始されるとき、スイッチ146は、インタフェース400の閉じたスイッチリスト内の物理アドレスのみで表示されてもよい。発見されたスイッチが他の方法でロックダウンされていない場合、ロック状態は、探索されたスイッチ146が「ロック解除」状態であることを示すことができる。ロック解除状態では、スイッチ146は、ネットワーク150内のすべての通常の機能を実行することができる。いくつかの実施形態では、ロック解除状態のポート202は、学習、エージング、および転送の基本的な透過的ブリッジ機能を実行することができる。デフォルトのエージングタイムは、600秒(10分)に設定することができるが、スイッチ146およびネットワーク150の構成に応じて他のデフォルト時間を設定してもよい。検索の完了時に、1つ以上の機能ボタン434は、ユーザによる選択または自動プロセスによって利用可能であり得る。
【0075】
ブロック308において、ユーザまたは自動プロセスは、図4Aに示されるユーザインタフェース400上にリストアップされた「ロック解除」スイッチのうちの1つ以上を選択することができる。ユーザは、1つ以上の所望のスイッチを選択するためにワークステーションの入力デバイス(たとえば、マウスまたはタッチスクリーン)を利用することによってこの選択を行うことができ、ユーザインタフェース400に、スイッチをロックするための選択可能なボタンを有するドロップダウンメニューを表示させることができる。図4Bに示すように、ユーザはネットワーク全体を選択して、(たとえば、所望のネットワーク上で右クリックすることによって)ロックダウンすることもできる(すなわち、選択されたネットワーク内のすべてのスイッチ146がロックされている)。いくつかの例では、1つ以上のスイッチ146は、ロックダウンを開始するように作動することができるハードウェアアクチュエータ(たとえば、ボタン)を含むことができる。さらに、自動プロセスは、ある容量のネットワーク150に接続している悪意のあるデバイスの検出のようなトリガに基づいて、ロックダウンのためのスイッチを選択することができる。
【0076】
ブロック310において、ワークステーションは、ユーザが図4Fに示すロックボタン436などのロックボタンを選択したことを検出したことに応答して、ロックダウンプロセス(図3Bに示す方法325など)を開始する。ユーザインタフェース400によって提供されるロックボタンは、プロセス制御ネットワーク150の異なる部分に対するロックダウンを選択的に開始するプロセスを開始することができる。たとえば、別個のボタンは、1つ以上の選択されたスイッチ146において、ネットワーク全体、プライマリネットワーク、セカンダリネットワーク、個々のスイッチ146、または特定のポート202を選択的にロックする能力を提供することができる。さらなるセキュリティのために、ロックダウンプロセスは、場合によっては選択されたワークステーション120,122からのみ開始され、たとえばプロセス制御ネットワーク150の物理的部分ではないリモートワークステーションを使用してインターネットを介して開始されなくてもよく、または
、1つ以上の事前承認されたMACアドレスまたはIPアドレスからのみ開始されてもよい。ロックボタンを選択してロックダウンプロセスを開始すると、認証プロセスが開始される。たとえば、ワークステーションは、ロックダウンプロセスへのアクセス権を確認するためにユーザ名とパスワードまたは他の個人識別情報をユーザから要求することができる。アプリケーション400は、スイッチ146をロックおよびアンロックするためにMIB214を介した管理アクセスを利用することができる。通信は暗号化されていてもよく、使用される鍵またはパスワードは、ユーザには知られていなくてもよいが、スイッチ146およびアプリケーション400に知られていてもよい。
【0077】
ロックボタンを選択した後の認証時において、ワークステーションは、選択されたスイッチ146にロックコマンドを送ることができる(たとえば、選択されたスイッチ146のプライベートMIB214の1つ以上の変数を設定することによって)。ロックコマンドの受信に応答して、スイッチ146は、そのポート202のすべてをロックすることができる。一般に、ポート202をロックすることは、ロック状態がアクティブにされたときにスイッチ146のスイッチングテーブル216に含まれないソースMACアドレス182を有する任意のメッセージまたはフレーム175を受け入れないことを含む。いくつかの実施形態では、許可されていない物理アドレスをスイッチ146のメモリ208に記録してもよく(たとえば、既知の敵意のあるMACアドレス、不正デバイスに属するMACアドレスの範囲など)、スイッチ146は、許可されていない物理アドレスの1つを含む受信メッセージをすべてドロップする。
【0078】
ブロック311において、1つ以上のスイッチ146のためにロックダウンプロセス325を実行した後、たとえば、トラブルシューティング動作、定期メンテナンス、診断、ネットワーク再構成などの間に、1つ以上のスイッチ146をロック解除する必要があり得る。
【0079】
ブロック312において、ユーザまたは自動プロセスは、「ロックされた」状態にある1つ以上のスイッチ146を選択することができ、ユーザが図4Dに示すようなロック解除ボタンを選択することに応答して、ブロック314において、ユーザによって使用されるワークステーションは、ロック解除プロセス(図3Cに示す方法350のような)を開始することができる。ロックボタンと同様に、ロック解除ボタンは、1つ以上のプライベートMIB214を利用することによって、以前にロックされたプロセス制御ネットワーク150の異なる部分のロック解除プロセスを開始することができる。追加のセキュリティのために、ロック解除プロセスは、以前にロックされた1つ以上のポート220を自動的に再ロックするロックダウンタイマで構成されてもよい。ロックダウンタイマは、デフォルト設定で構成することができ、ロック解除プロセスの完了後のある期間の満了時に(ブロック316)、ロック解除スイッチ146のうちの1つ以上を再ロックすることができる(ブロック310)。一実施形態では、ロックダウンタイマは、60分(すなわち、3600秒)のデフォルト設定で構成される。解除プロセスは選択されたワークステーション120,122から開始され、たとえばプロセス制御ネットワーク150の物理的部分ではないリモートワークステーションを使用してインターネットを介して開始されなくてもよく、または、1つ以上の事前承認されたMACアドレスからのみ開始されてもよい。
【0080】
ロック解除プロセスは、認証プロセスも含むことができる。たとえば、ワークステーション120または122および/またはユーザインタフェース400は、ロックダウンプロセスに対するアクセス権を確認するために、ユーザからユーザ名およびパスワードまたは他の個人識別を要求することができる。ユーザが適切に認証された場合、ユーザは、1つ以上の選択されたロックされたスイッチ146および/またはポート202のプライベートMIB214にアクセスして、ロック解除を開始することができる。
【0081】
図3Bは、スイッチ146のポート202をロックする方法例325を示す。以下で説明されるブロックは、スイッチ146および/またはワークステーション120または122によって実施されてもよい。
【0082】
ブロック326において、スイッチ146は、静的アドレステーブル220のような静的テーブルを生成する。一般に、静的テーブルは、ロックダウンが開始された時点でスイッチ146の各ポートに接続された既知の物理アドレスのレコードである。ポート状態および/または物理アドレスマッピングは、ユーザによって自動的にまたは明示的に(たとえば、不揮発性メモリ212に)格納されてもよい。必要に応じて、ロックされたポートを強制的に開くことを防止するために、電源サイクルまたは再起動時に、既知の物理アドレスの記録をスイッチ146によって使用することができる。
【0083】
いくつかの実施形態では、静的テーブルは、動的アドレステーブル218から各ポート202にマッピングされた物理アドレスのリストをコピーすることによって生成される。場合によっては、既知の物理アドレスおよび他のデータを動的アドレステーブル218から完全に除去し、静的アドレステーブル220に移動することができる。いくつかの実施形態では、動的アドレステーブル218内の学習されたアドレスの現在の数が最大数よりも多い場合、アドレスのサブセットのみがロックされてもよい。その後、残りのアドレスは、スイッチングテーブル216から除去され、接続エラーをもたらす可能性がある。接続の問題が発生した場合、ユーザインタフェースにエラーメッセージが送信され、ロックダウンプロセスの失敗を示すことがある。
【0084】
ブロック328において、スイッチ146は、各ポートに受信された各メッセージを分析して、各メッセージに含まれるソース物理アドレスを識別することができる(たとえば、図1Cに示された送信元MACアドレス182)。次に、スイッチ146は、ソース物理アドレスが静的テーブルに含まれているかどうかを判断することができる(ブロック330)。そうでない場合、ソース物理アドレスは未知のアドレスであり、メッセージはドロップされる(ブロック332)。
【0085】
メッセージのソースアドレスが静的テーブルに含まれている場合は、スイッチ146は、メッセージに含まれる宛先アドレスに対応するポートのトラフィックを分析する(ブロック334)。転送ポートでのトラフィックがメモリに記憶されたトラフィックしきい値(たとえば、スイッチ構成中にユーザまたはプログラムによる入力)よりも低い場合、メッセージは転送される(ブロック306)。そうでない場合、メッセージはトラフィックがしきい値を下回るまで保持され、その時点でメッセージが転送される。いくつかの実装形態では、メッセージは、所定の時間の後にドロップされてもよく、または直ちにドロップされてもよい。いくつかの実施形態では、スイッチ146は、追加的または代替的に、受信ポートにおけるトラフィックを分析し、また、トラフィックが所定のトラフィックしきい値を下回っている場合にのみ、メッセージのソースアドレスを分析する(ブロック328)。
【0086】
なお、いくつかの例では、スイッチ146は、ロックダウンの間、スイッチ146のための典型的な機能を無効化することができる。一実施形態では、スイッチ146は、スイッチ146用のまたは特定のポート202用のアドレス学習およびアドレスエージング機能を無効にする。たとえば、動的アドレステーブル218は無効にされ、もはやいかなる入力も受け入れられず、スイッチ146はもはや新しいアドレスを探索するためにネットワーク150をフラッディングすることができず、エージング時間が経過した後、以前に受信されたアドレスは動的アドレステーブル218から除去されない。
【0087】
ロックダウンを開始した後、ユーザインタフェース400は、1つ以上のスイッチ146のロック状態を「ロック解除」または「完了」からのステータス表示を、選択されたデバイスがロックされた、またはロックされているという表示に変更することができる。図4Cを参照すると、ロックダウンプロセスが完了すると、ユーザインタフェース400は、ロックされたスイッチの「ロック状態」を「ロックされている」として表示することができる。
【0088】
図3Cは、スイッチ146のロックを解除するための例示的な方法350を示す。ユーザのワークステーションは、(たとえば、スイッチ146のプライベートMIB214の1つのオブジェクトまたは変数の値を変更することによって)スイッチ146にロック解除コマンドを送信することができる。
【0089】
ブロック354において、物理アドレスを特定のポートにマッピングする静的テーブル220内のアドレスデータを削除することができる。いくつかの実施形態では、ユーザまたは他の明示的なプロセスによって追加された静的アドレスデータは、ロック解除中に静的アドレステーブル220に保持されてもよい。
【0090】
ブロック356において、スイッチ146は、ポート220のロック解除状態を可能にすることができる。特に、スイッチ146は、静的テーブル218と一致しないソースアドレスを有するメッセージの廃棄を停止する。
【0091】
ブロック358において、スイッチ146は、通常のポートまたはデバイス機能を再開することができる。たとえば、ロック解除状態では、ロックダウンの間中断された典型的な学習機能およびエージング機能が再開され、スイッチングテーブル216および動的テーブル218が再投入されてもよい。
【0092】
ブロック360において、スイッチ146は、新しいスイッチまたはポート構成を記憶することができる。たとえば、ポート状態および/または物理アドレスは、ユーザによって自動的にまたは明示的に格納され、電源サイクルまたは再起動時にスイッチ146によって実装される。
【0093】
いくつかの実施形態では、ブロック314で解除プロセスを開始した後、ユーザインタフェース400は、1つ以上のスイッチのロック状態を「ロックされている」から、選択されたスイッチが「ロック保留」状態にあるという指示に変更することができる。さらに、ロックダウンタイマがロック解除プロセスで初期化されている場合、残りの時間ステータスは、デバイスがロックされた状態に戻るまでの残り時間を示すことがある。残りの時間は、決してロック状態に戻らないように構成することもできる。たとえば、プライベートMIB214のオブジェクトにアクセスして、タイマを「決して元に戻さない」状態、または他の任意の時間量に構成することができる。
【0094】
いくつかの実施形態では、スイッチ146は、電源投入時に、保存された構成に戻ることができる。たとえば、エンティティは、ロックされたポートを強制的に開くために、1つ以上のスイッチ146の電力を循環させることによって、不正デバイスをプロセス制御ネットワーク150に接続しようと試みることができる。電源が投入されると、スイッチ146は、その不揮発性メモリ212(図2)で保存された構成にアクセスするように構成されてもよい。したがって、電源投入されたスイッチがロック状態またはロック解除状態に戻ったかどうかにかかわらず、電力サイクルの前にネットワーク150に接続されたすべてのデバイスは、システムとの通信を自動的に再確立し、電源がオフの間に新しいデバイスがポートに追加されると、拒否される。「ロック解除」状態でデバイスの電源が投入され、ロックダウンタイマがゼロより大きい場合、その時間の経過後にデバイスは自動
的にロック状態に入ることができる。
【0095】
図5は、いくつかの実施形態に係る、アドレス一致テーブル222の一例を示す。図5に示すアドレス一致テーブル222は、(たとえば、連想メモリを使用して)スイッチ146に格納することができるデータおよび/またはプロセス制御システム内の別のデバイスの表現であってもよい。代替的にまたは追加的に、デバイス(スイッチ146、ワークステーション120または122、または他のデバイスなど)は、アドレス一致テーブル146に含まれる情報の少なくとも一部を、ユーザによるアクセスおよびレビューのためにユーザインタフェース(たとえば、ユーザインタフェース400)上に提示させることができる。アドレス一致テーブル222は単なる一例であり、例示的な情報を含み、代替および/または追加の情報を含むことができることを理解されたい。
【0096】
アドレス一致テーブル222は、それぞれが対応するデータおよび情報で構成された列のセットを含むことができる。特に、アドレス一致テーブル222は、ポート列505、IPアドレス列510、MACアドレス列515、ロックダウン状態列520、およびセキュリティ状態列525を含むことができる。ポート列505は、スイッチ146の通信ポート202のセット(図示のように、通信ポート1~6)を識別することができる。通信ポート202のセット内の通信ポートのそれぞれは、それに接続されたデバイスまたは別のスイッチを有することができる。通信ポートが別のスイッチ146に接続されている場合、通信ポートはアップリンクポートと見なすことができる。なお、図5は、各ポートに接続された単一のデバイス(またはデバイスなし)を示しているが、単一のポートは、物理アドレス(列510)、ネットワークアドレス(列515)、ロックダウン状態(列520)、およびセキュリティ状態(列525)を含む複数のデバイスにマッピングすることができる。
【0097】
IPアドレス列510は、通信ポート222のセットにそれぞれ接続されたデバイスのセットのネットワークアドレス(たとえば、IPアドレス)のセットを識別することができ、MACアドレス列515は、通信ポートのセットにそれぞれ対応するデバイスのセットの物理アドレスのセット(たとえば、MACアドレス)を識別することができる。たとえば、IPアドレスが10.10.10.2、MACアドレスが00:0C:F5:09:56:E9のデバイスが通信ポート「1」に接続されている。図5に示すように、通信ポート「3」および通信ポート「6」のいずれにもデバイスが接続されていないので、対応するIPおよびMACアドレスはゼロである。
【0098】
ロックダウン状態欄520は、通信ポート222のセットのそれぞれのロックダウン状態(たとえば、「ロックされている」または「ロック解除」)を識別することができる。図5に示すように、接続されたデバイスを有する(通信ポート「1」、「2」、「4」、「5」)の各通信ポート222は「ロックされている」であり、接続されていない通信ポート(通信ポート「3」および「6」)は「ロック解除」である。しかしながら、典型的な例では、スイッチポートがアップリンクポートとして識別されるか、CLIコンフィギュレーションを介して無視される(常にロック解除される)ユーザによって手動で設定されている場合を除いて、スイッチ146がロックされると、スイッチ146のすべてのポートがロックされる。本明細書で論じられる実施形態では、スイッチ146(および具体的には、スイッチ146のASICのセット)は、占有された通信ポートのロックダウンを開始することに関連して、デバイスのIPおよびMACアドレスを取得することができる。
【0099】
セキュリティステータス欄525は、通信ポートのセットのそれぞれのセキュリティステータスを識別してもよい。実施形態によれば、スイッチ146は、既に接続されているデバイス間で、および/またはスイッチのロックダウン後にスイッチに接続できる他の任
意のデバイス間で、通信ポートのセットを介して送受信される情報(たとえば、データパケットとして)を自動的かつ継続的に監視できる。
【0100】
スイッチ146は、受信したデータパケットを調べて、データパケットに含まれる情報に矛盾がないかどうかを判定することができる。特に、スイッチ146は、アドレス一致テーブル222に含まれる情報とデータパケットに含まれる情報とを比較して、不一致を識別することができる。スイッチ146が特定の通信ポートに対するデータパケットトラフィックの不一致を識別しない場合、特定の通信ポートのセキュリティステータスは「正常」であってもよい。対照的に、スイッチ146がデータパケットトラフィックにおける不一致を識別した場合、特定の通信ポート222のセキュリティ状態は、「正常」から「異常」に変化し得る。
【0101】
図5に示すように、通信ポート「2」および「6」のセキュリティステータスは「異常」であり、残りの通信ポートはセキュリティステータス「正常」である。例示的な実施形態では、通信ポート「2」のセキュリティ状態は、試みられたARPスプーフィング攻撃のために「異常」であり得る。この実施形態では、最初に通信ポート「2」に接続されたデバイスは、データパケットをスイッチ146に送ることができる攻撃デバイスによって置き換えられる可能性がある(または元々接続されたデバイスが侵害される可能性がある)。スイッチ146は、データパケットを検査し、データパケットに含まれるIPアドレスおよびMACアドレスの一方または両方がアドレス一致テーブル222内の対応するIPアドレスおよび/またはMACアドレスと一致しないことを判定することができる。したがって、スイッチ146は、対応する通信ポートのセキュリティステータスを「異常」に更新することができる。
【0102】
同様に、例示的な実施形態では、通信ポート「6」のセキュリティ状態はまた、試みられたARPスプーフィング攻撃のために「異常」であり得る。この実施形態では、通信ポート「6」は、ロックダウン時に接続されたデバイスがないため、ロック解除されてもよい。ロックダウンに続いて、デバイス(攻撃デバイスであっても攻撃デバイスでなくてもよい)は、ロックされていない通信ポート「6」に接続することができ、デバイスはデータパケットをスイッチに送信することができる。スイッチ146は、データパケットを検査し、通信ポート「6」はロックされていないので、通信ポート「6」を介して通信するデバイスは存在しないことを判定できる。したがって、スイッチは、通信ポートのセキュリティ状態を「異常」に更新することができる。
【0103】
スイッチ146は、検出されたアラートの通信および/または表示を容易にすることができる。実施形態では、スイッチ146は、ユーザインタフェースを備えていてもよいプロセス制御システムの別のデバイスに接続されてもよい。スイッチ146は、1つ以上の検出されたアラートの表示をデバイスに送信することができ、デバイスは、ユーザインタフェースを介して1つ以上の検出された警告を表示または提示するように構成されてもよい。したがって、プロセス制御プラントに関連するユーザ(たとえば、個人または管理者)は、情報にアクセスしてその情報を見直し、適切な是正措置または診断措置を容易にすることができる。
【0104】
図6は、プロセスプラント内のプロセス制御システム100などのプロセス制御システムのセキュリティを向上させるためにアドレス一致テーブル222を実施する例示的な方法600のブロック図を示す。方法600は、スイッチ146によって容易にすることができる。
【0105】
方法600は、スイッチ146がスイッチ146の通信ポートのセットのロックダウンを開始する(ブロック605)とき開始することができる。実施形態では、スイッチ14
6は、通信ポート146のセットの一部またはすべてのロックダウンを開始することができる。
【0106】
通信ポートのセットのロックダウンを開始することに関連して、スイッチ146は、通信ポートのセットの少なくとも一部に接続されたデバイスのセットのネットワークアドレスのセット(たとえば、IPアドレスのセット)を取得することができる(ブロック610)。スイッチは、ロックダウンを開始する(および/または完了する)前、同時に、またはその後に、ネットワークアドレスのセットを取得することができることを理解されたい。ある実施形態では、スイッチに組み込まれたASICのセットは、デバイスのセットの、通信ポートのセットの少なくとも一部への接続に関連するデータを使用して、ネットワークアドレスのセットを取得することができる。追加的または代替的に、デバイスのセットは、プロセスプラント内の1つ以上のデバイスおよび/または1つ以上の追加のデバイス(または追加のスイッチ)が接続する1つ以上のスイッチを含むことができる。特定の実施形態では、スイッチ146は、(i)第1の通信ポートに接続された第1のデバイスの第1のネットワークアドレス(すなわち、デバイス接続)、および(ii)追加のスイッチ(すなわち、スイッチ接続)を介して第2の通信ポートに接続された複数のデバイスの複数のネットワークアドレスを取得してもよい。ネットワークアドレスは、プロセス制御ネットワーク上の別のデバイスから取得することができる。
【0107】
スイッチ146は、ロックダウンの開始に関連して、通信ポートのセットの少なくとも一部に接続されたデバイスのセットの物理アドレスのセット(たとえば、MACアドレスのセット)を任意に取得する(ブロック615)。スイッチは、ロックダウンを開始する(および/または完了する)前、同時に、またはその後に、物理アドレスのセットを取得することができることを理解されたい。たとえば、スイッチは、ロックダウンを開始する前に、物理アドレスのセットを取得して記録してもよい。ある実施形態では、スイッチ146に組み込まれたASIC(たとえば、回路230)のセットは、デバイスのセットの、通信ポートのセットの少なくとも一部への接続に関連するデータを使用して、物理アドレスのセットを取得することができる。
【0108】
スイッチ146は、スイッチ146のアドレス一致テーブル222を生成し(ブロック620)、アドレス一致テーブル222は、デバイスのセットの物理アドレスのセットを、デバイスのセットのネットワークアドレスのセットに一致させることができる。アドレス一致テーブル222は、物理アドレスセットおよびネットワークアドレスのセットを通信ポートのセットの少なくとも一部とさらに一致させることができる。すなわち、スイッチ146の特定のポートに(直接的または間接的に)接続されたすべてのデバイスについて、アドレスマッピングテーブル222は、特定のポートに対するネットワークアドレスおよび物理アドレスのアドレスペアをリストアップすることができる。したがって、複数のデバイスに接続されたポートは、複数の関連するアドレスペア(すなわち、接続された各デバイスのための1つのアドレスペア)を有する。スイッチ146は、アクセスおよびレビューのためにアドレス一致テーブルをローカルに(たとえば、内容アドレス可能なメモリを使用して)格納することができる。
【0109】
スイッチ146は、通信ポートのセットの1つを介して、デバイスからのデータパケットを受信してもよく(ブロック625)、データパケットは、少なくとも(i)デバイスのネットワークアドレス、および(ii)デバイスの物理アドレスを示すことができる。実施形態では、スイッチ146がロックダウンを開始する前または後に、デバイスを通信ポートのセットの1つに接続することができる。加えて、または代替的に、デバイスは、通信ポートのセットの1つに以前に接続された(すなわち、ケーブル交換の場合に)別のデバイスを置き換えることができる。加えて、または代替的に、デバイスは、ロック解除された通信ポートまたは通信ポートのセットの一部の通信ポート(すなわち、ロックされ
た通信ポート)に接続されてもよい。
【0110】
実施形態によれば、データパケットは、デバイスによるARPスプーフィング攻撃を表すことができ、スイッチ146は、デバイスのネットワークアドレスとデバイスの物理アドレスがアドレス一致テーブル222に含まれているかどうかを判定することによって(ブロック630)判定するように構成することができる。特に、デバイスのネットワークアドレスと物理アドレスがペアとして、デバイスが接続されている通信ポートのアドレス一致テーブルに含まれているマッピングされたネットワークアドレスおよびマッピングされた物理アドレスと一致しないことがある。たとえば、デバイスが通信ポート「3」に接続され、デバイスのネットワークアドレスおよび物理アドレスの一方または両方が、通信ポート「3」の対応するマッピングされたアドレスと一致しない場合、不一致が存在する。
【0111】
スイッチ146が、アドレスが一致する(「YES」)と判定した場合、処理は終了し、繰り返すか、または他の機能に進むことができる。対照的に、スイッチ146が、アドレスが一致しないと判断した場合(「NO」)、ARPスプーフィングの試みがあり、スイッチ146はアラートを生成することができる(ブロック35)。実施形態では、アラートは、デバイスが接続されている通信ポートのセットの1つ、および/またはデバイスのネットワークアドレスおよび/または物理アドレスを含む他の情報を示すことができる。さらに、スイッチ146は、アラートをユーザインタフェース上に表示させ(ブロック40)、ここで、ユーザインタフェースは、プロセスプラント内の別のデバイスまたはコンポーネントに含まれてもよい。したがって、ユーザ(たとえば、プラント技術者または管理者)は、アラートの内容をレビューし、適切な処置を開始することができる。
【0112】
スイッチ146はさらに、データパケットの送信を許可するか拒否するかを判定する(ブロック645)。実施形態では、判定は、デフォルト選択(たとえば、常に許可または常に拒否)であってもよいし、または、スイッチ146は、データパケット自体の内容、デバイスの物理アドレス、デバイスのネットワークアドレス、および/または他の要因など、1つ以上の要因に基づいて送信を許可するか拒否するかを動的に判定することができる。
【0113】
スイッチが送信を許可すると判断した場合(「許可」)、スイッチはデータパケットの送信を許可する(ブロック50)。対照的に、スイッチ146が送信を拒否すると判定した場合(「拒否」)、スイッチはデータパケットの送信を拒否することができる(すなわち、データパケットをドロップする可能性がある)。
【0114】
図7は、スイッチ146に関連するセキュリティ問題を検出する例示的な方法700のブロック図を示す。方法700は、スイッチ146によって容易にすることができる。
【0115】
方法700は、本明細書で説明するように、スイッチ146がスイッチ146の通信ポートのセットのロックダウンを任意に開始する(ブロック705)とき開始することができる。実施形態では、スイッチ146は、場合によっては、通信ポートのうちの1つ以上が、必要に応じてロック解除されたままであり得るように、通信ポートのセットの一部または全部のロックダウンを開始することができる。
【0116】
通信ポートのセットのロックダウンを開始することに関連して、スイッチ146は、通信ポートのセットの少なくとも一部に接続されたデバイスのセットのネットワークアドレスのセット(たとえば、IPアドレスのセット)を取得することができる。スイッチ146は、ロックダウンを開始する(および/または完了する)前、同時に、またはその後に、ネットワークアドレスのセットを取得することができることを理解されたい。ある実施
形態では、スイッチ146に組み込まれたASICのセットは、デバイスのセットの、通信ポートのセットの少なくとも一部への接続に関連するデータを使用して、ネットワークアドレスのセットを取得することができる。追加的または代替的に、デバイスのセットは、プロセスプラント内の1つ以上のデバイスおよび/または1つ以上の追加のデバイス(または追加のスイッチ)が接続する1つ以上のスイッチを含むことができる。特定の実施形態では、スイッチ146は、(i)第1の通信ポートに接続された第1のデバイスの第1のネットワークアドレス(すなわち、デバイス接続)、および(ii)追加のスイッチ(すなわち、スイッチ接続)を介して第2の通信ポートに接続された複数のデバイスの複数のネットワークアドレスを取得してもよい。
【0117】
スイッチ146は、ロックダウンの開始に関連して、通信ポートのセットの少なくとも一部に接続されたデバイスのセットの物理アドレスのセット(たとえば、MACアドレスのセット)を任意に取得する。スイッチは、ロックダウンを開始する(および/または完了する)前、同時に、またはその後に、物理アドレスのセットを取得することができることを理解されたい。たとえば、スイッチ146は、ロックダウンを開始する前に、物理アドレスのセットを取得して記録してもよい。ある実施形態では、スイッチ146に組み込まれたASICのセットは、デバイスのセットの、通信ポートのセットの少なくとも一部への接続に関連するデータを使用して、物理アドレスのセットを取得することができる。
【0118】
スイッチ146はさらに、アドレス一致テーブル222を生成してアクセスし(ブロック710)、アドレス一致テーブル222は、デバイスのセットの物理アドレスのセットを、デバイスのセットのネットワークアドレスのセットに一致させることができる。アドレス一致テーブル222は、物理アドレスのセットおよびネットワークアドレスのセットを通信ポートのセットの少なくとも一部とさらに一致させることができる。したがって、接続されたデバイスを有する各通信ポートは、デバイスの関連する物理アドレスおよびデバイスのネットワークアドレスを有することができる。実装形態では、スイッチ146に組み込まれたASICのセットは、アドレス一致テーブル222を生成することができる。スイッチ146は、アクセスおよびレビューのためにアドレス一致テーブルをローカルに(たとえば、内容アドレス可能なメモリを使用して)格納することができる。
【0119】
スイッチ146は、アドレス一致テーブルに含まれるネットワークアドレスのセットの1つに一致する宛先ネットワークアドレスを指定するマッピング要求をブロードキャストすることができる(ブロック615)。実施形態では、マッピング要求は、アドレスマッピングテーブルからのIPアドレスを含むARP要求の形態であってもよく、ARP要求は、IPアドレスに対応するMACアドレスを見つけることを意図しており、ARP要求は、スイッチに接続された各デバイスに送信され得る。
【0120】
スイッチ146は、通信ポートのセットの1つを介して、応答デバイスからのマッピング要求への応答を受信し(ブロック720)、応答は、(i)宛先ネットワークアドレスと、(ii)応答デバイスの物理アドレスとを示すことができる。実施形態によれば、応答デバイスからの応答は、スイッチ146が判定するように構成された応答デバイスによる試みられたARPスプーフィング攻撃を表すことができる。
【0121】
したがって、スイッチ146は、応答デバイスの物理アドレスがアドレス一致テーブルに含まれるデバイスのセットの物理アドレスのセットのいずれかと一致するかどうかを判断することができる(ブロック725)。特に、応答デバイスの物理アドレスは、応答デバイスが接続されている通信ポートのアドレス一致テーブル222に含まれるマッピングされた物理アドレスと一致しないことがある。たとえば、応答デバイスが通信ポート「3」に接続され、応答デバイスの物理アドレスが通信ポート「3」の対応するマッピングされた物理アドレスと一致しない場合、不一致が存在する。実施形態では、ネットワークに
組み込まれたASICのセットが判定を行うことができる。
【0122】
スイッチ146が、物理アドレスが一致する(「YES」)と判定した場合(すなわち、試行されたARPスプーフィング攻撃がない場合)、処理は終了し、繰り返すか、または他の機能に進むことができる。対照的に、スイッチ146が、物理アドレスが一致しないと判断した場合(「NO」)、ARPスプーフィングの試みがあり、スイッチはアラートを生成することができる(ブロック730)。実施形態では、アラートは、応答デバイスが接続されている通信ポートのセットの1つ、および/または応答デバイスのネットワークアドレスおよび/または物理アドレスを含む他の情報を示すことができる。さらに、スイッチ146は、アラートをユーザインタフェース上に表示させ(ブロック735)、ここで、ユーザインタフェースは、プロセスプラント内の別のデバイスまたはコンポーネントに含まれてもよい。したがって、ユーザ(たとえば、プラント技術者または管理者)は、アラートの内容をレビューし、適切な処置を開始することができる。
【0123】
本明細書で説明されるロックダウンルーチンおよびアドレスマッピングルーチンは、ソフトウェア、ハードウェア、ファームウェア、またはそれらのいくつかの組み合わせで実施されてもよい。したがって、本明細書で説明される方法300,325,350,500,600、および700は、標準的な多目的CPUおよび/またはASICのような特別に設計されたハードウェアまたはファームウェア上で実施されてもよい。ソフトウェアで実施される場合、ソフトウェアは、磁気ディスク、レーザディスク、光ディスク、または他の記憶媒体、コンピュータまたはプロセッサのRAMまたはROMなどの任意のコンピュータ可読メモリに格納されてもよい。同様に、このソフトウェアは、たとえばコンピュータ可読ディスクまたは他の搬送可能なコンピュータ記憶機構上に、または電話回線やインターネットなどの通信チャネルを介して変調された任意の既知のまたは所望の配信方法を介して、ユーザまたはプロセス制御システムに配信することができる。(これは、可搬型記憶媒体を介してそのようなソフトウェアを提供することと同じであるか、または交換可能であると見なされる)。
【0124】
一般に、本明細書で使用する「メモリ」または「メモリデバイス」という句は、コンピュータ読み取り可能媒体(「CRM」)を含むシステムまたはデバイスを指す。「CRM」は、情報(たとえば、データ、コンピュータ読み取り可能命令、プログラムモジュール、アプリケーション、ルーチンなど)を配置、保持、および/または検索するために、関連するコンピューティングシステムによってアクセス可能な1つの媒体または複数の媒体を指す。「CRM」は、現実には、非一時的な媒体を指し、電波などの実体のない一時的な信号を指すものではないことに留意されたい。
【0125】
図1Aを参照して述べたように、ネットワーク150は、ノード(たとえば、情報を送信、受信、および/または転送することができるデバイスまたはシステム)およびノード間の通信を可能にするように接続された通信リンクの集合体である。一般に、「ノード」という用語は、接続ポイント、再配布ポイント、または通信エンドポイントを指す。ノードは、情報を送信、受信、および/または転送することができる任意のデバイスまたはシステム(たとえば、コンピュータシステム)であってもよい。たとえば、メッセージを発信および/または最終的に受信するエンドデバイスまたはエンドシステムは、ノードである。(たとえば、2つのエンドデバイス間で)メッセージを受信し転送する中間デバイスも、一般に「ノード」であると見なされる。「通信リンク」または「リンク」は、2つ以上のノードを接続する経路または媒体である。リンクは、物理リンクおよび/または論理リンクであってもよい。物理的リンクは、情報が転送されるインタフェースおよび/または媒体であり、現実には、有線または無線であってもよい。物理リンクの実施例には、電気エネルギーの伝送のための導体を有するケーブル、光伝送のための光ファイバ接続、および/または電磁波の1つ以上の特性に加えられた変更を介して情報を搬送する無線電磁
信号が含まれ得る。
図1A
図1B
図1C
図2A
図2B
図2C
図3A
図3B
図3C
図4A
図4B
図4C
図4D
図5
図6
図7