(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】プロセス制御システムの整合性低下を識別する方法
(51)【国際特許分類】
G06F 21/64 20130101AFI20240625BHJP
G05B 9/02 20060101ALI20240625BHJP
G05B 23/02 20060101ALI20240625BHJP
G06F 21/50 20130101ALI20240625BHJP
【FI】
G06F21/64
G05B9/02 B
G05B23/02 V
G06F21/50
(21)【出願番号】P 2022133876
(22)【出願日】2022-08-25
(62)【分割の表示】P 2019125011の分割
【原出願日】2013-05-15
【審査請求日】2022-08-25
(32)【優先日】2012-05-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】512132022
【氏名又は名称】フィッシャー-ローズマウント システムズ,インコーポレイテッド
(74)【代理人】
【識別番号】100084995
【氏名又は名称】加藤 和詳
(72)【発明者】
【氏名】アーロン シー. ジョーンズ
(72)【発明者】
【氏名】ロバート ビー. ハブコスト
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2011-221751(JP,A)
【文献】国際公開第2002/057860(WO,A1)
【文献】特開2008-135004(JP,A)
【文献】国際公開第2008/056700(WO,A1)
【文献】特開2011-070674(JP,A)
【文献】米国特許第06950964(US,B1)
【文献】特開平11-232095(JP,A)
【文献】米国特許出願公開第2002/0095591(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/64
G05B 9/02
G05B 23/02
G06F 21/50
(57)【特許請求の範囲】
【請求項1】
プロセス制御システムの整合性の低下を識別するための方法であって、
プロセッサを用いて、前記プロセス制御システムのファイルシステム上のファイルを監視すること
と、
前記プロセッサを用いて、前記ファイルシステム上に存在するはずのファイルを監視するシステムプロファイル内で、前記ファイルが識別されるか否かを検証することと、
前記プロセッサを用いて、前記ファイルが前記システムプロファイル内で識別されない場合に、前記プロセス制御システムの整合性の低下を識別することと、
顧客
が前記プロセス制御システムを変更したことを示す
前記整合性の低下が識別された場合に、
前記プロセス制御システムを前記顧客に提供するプロセス制御システムプロバイダに警告をすること
と、
前記整合性の低下が検出された場合に、前記ファイルに関連する違法なプロセスを終了させることと、
を含む方法。
【請求項2】
前記ファイルが前記システムプロファイル内に含まれる場合に、前記ファイルを前記システムプロファイル内の前記ファイルに関連する値と比較して、前記ファイルが前記値と一致するか否かを判断することと、
前記ファイルが前記システムプロファイル内に含まれる場合、かつ前記ファイルが前記値と一致しない場合に、前記プロセス制御システムの前記整合性の前記低下を識別することと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記整合性の前記低下が識別されると、プロセス制御システムプロバイダ又はプロセス制御システムの管理者の少なくとも一方に警告することをさらに含む、請求項1に記載の方法。
【請求項4】
前記ファイルが前記システムプロファイルの例外として識別される場合、前記整合性の前記低下が識別されない、請求項1に記載の方法。
【請求項5】
前記ファイルのハッシュ値を計算し、
前記計算されたハッシュ値を前記
システムプロファイル内の前記ファイルに関連する値と比較することと、
をさらに含み、
前記システムプロファイル内の前記ファイルに関連する値が、以前に計算されたハッシュ値である、
請求項1に記載の方法。
【請求項6】
前記システムプロファイルを初期化することをさらに含み、
前記システムプロファイルを初期化することが、
前記ファイルシステム上の前記ファイルを識別することと、
前記ファイルに関連した値を計算することと、
前記システムプロファイル内に前記値を格納することと
を含む、請求項1に記載の方法。
【請求項7】
前記システムプロファイルをリモートプロファイルサーバーから取得することをさらに含む、請求項1に記載の方法。
【請求項8】
前記プロセス制御システムのプロセッサによって実行されているプロセスを識別することをさらに含み、
前記ファイルシステム上で識別された前記ファイルが、前記プロセッサによって実行されている前記プロセスに関連している、
請求項1に記載の方法。
【請求項9】
前記プロセス制御システムのネットワークコミュニケータのネットワーク通信を識別することと、
前記ネットワーク通信のプロパティを前記システムプロファイルの格納されたプロパティと比較することと、
前記ネットワーク通信の前記プロパティが前記システムプロファイルの前記格納されたプロパティに一致しない場合に、前記プロセス制御システムの前記整合性の前記低下を識別することと、
をさらに含む、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、プロセス制御システムに関し、より詳細には、プロセス制御システムの整合性低下を識別する方法及び装置に関する。
【背景技術】
【0002】
セキュリティ違反は、プロセス制御システム(例えば、発電所、石油精製所、化学工場など)などのコンピューティングシステムに対する絶え間ない脅威である。プロセス制御システムのセキュリティ違反は、破滅的な影響を及ぼし得る。かかるセキュリティ違反を防ぐため、プロセス制御システムは、意図的に外部通信から分離される。プロセス制御システムは、通常、システムの日常業務を実行するために必要な全てのコンポーネントを含み、外部システムと通信しない。
【0003】
しかし、例えば、警告、エラーメッセージ、注意メッセージなど、プロセス制御システムに関連するか、かつ/またはプロセス制御システムによって生成されるいくつかの情報は、プロセス制御システムの外部と共有する必要があり得る。プロセス制御システムの外部と情報を共有するための一般的な技術は、例えば、インターネットなどの、電子通信システムを伴う。しかし、かかる電子通信システムを経由した通信は、プロセス制御システム内のセキュリティの脆弱性を引き起こし得る。
【発明の概要】
【課題を解決するための手段】
【0004】
プロセス制御システムの整合性の低下を識別する方法例は、プロセス制御システムのファイルシステム上のファイルを識別することを含む。次いで、そのファイルがシステムプロファイル内で識別されるか否かが判断される。システムプロファイルは、ファイルシステム上に存在するはずのファイルを識別する。ファイルがシステムプロファイル内で識別されない場合に、プロセス制御システムの整合性の低下が識別される。
【0005】
プロセス制御システムの整合性の低下を識別するための装置例は、プロセス制御ノードのファイルシステム上に格納されているファイルのプロパティと第1の格納されたプロパティとの間の差を整合性の低下として識別するためのファイルシステム検証ツール(file system verifier)を含む。システム例は、プロセス制御ノードによって実行されるアクティブプロセスのプロパティと第2の格納されたプロパティとの間の差を整合性の低下として識別するためのアクティブプロセス検証ツールをさらに含む。
【図面の簡単な説明】
【0006】
【
図1】プロセス制御ノードを含むプロセス制御システム例のブロック図である。
【
図2】整合性ガード(integrity guard)を含む、
図1のプロセス制御ノードの実施例のブロック図である。
【
図3】
図1および
図2のプロセス制御ノード例の整合性ガードの実施例のブロック図である。
【
図4】
図1のプロセス制御システムの整合性における変化を検出するために実行され得る方法例を表す流れ図である。
【
図5】ファイルシステムの整合性検証を実行し得る方法例を表す流れ図である。
【
図6】ネットワークトラフィックの整合性検証を実行し得る方法例を表す流れ図である。
【
図7】アクティブプロセスの整合性検証を実行し得る方法例を表す流れ図である。
【
図8】
図1および/もしくは
図2のプロセス制御ノード例、ならびに/または
図2および/もしくは
図3の整合性ガード例を実施するために、
図4~
図7の方法例を実行可能なプロセッサプラットフォーム例のブロック図である。
【発明を実施するための形態】
【0007】
プロセス制御システムのセキュリティ違反は、プロセス制御システムの顧客(例えば、プロセス制御システムのオペレータ)に向けて、および/または製作者(例えば、プロセス制御システムの提供者)に向けて、悪意のある変更をプロセス制御システムに対して可能にし得る。顧客に影響を及ぼす変更には、プロセス制御システムを支配すること、機密情報および/またはプロセス制御システムの設定にアクセスすること、プロセス制御システムを無効にすることなどを含み得る。プロセス制御システムの製作者に影響を及ぼす変更には、プロセス制御システムの製作者に影響を及ぼさなければ顧客がそれに対して支払う必要があり得る機能にアクセスすることなどを含み得る。
【0008】
セキュリティ違反に対処するため、本明細書に記載する方法および装置例は、プロセス制御システム内にある1つまたは複数のプロセス制御ノード内の整合性ガードを含む。整合性ガード例は、プロセス制御ノードの整合性、およびそれによって、プロセス制御システムの整合性を監視および検証する。プロセス制御ノードの整合性は、いくつかの方法で監視される。例えば、整合性ガードは、プロセス制御ノードのファイルシステムを監視および検証し、整合性ガードは、プロセス制御ノードのネットワーク通信を監視および検証し、かつ/または整合性ガードは、プロセス制御ノードのアクティブプロセスを監視および検証する。
【0009】
消費者システム(例えば、パーソナルコンピュータ)では、システム問題を検出するためにアンチウイルスシステムが使用される。アンチウイルスシステムは、例えば、既知の悪意のあるアプリケーションのシグネチャ(signature)および/または定義など、既知の問題の定義を使用する。アンチウイルスシステムは、次いで、システム上のアプリケーションおよび/またはファイルを定義と肯定的に照合することにより、問題を識別する。すなわち、定義と一致するものは何でも問題と見なされる。対照的に、以下で説明する例の整合性ガードは、ファイルシステムの不規則性、ネットワーク通信の不規則性、および/またはアクティブプロセスの不規則性を否定的に識別することにより、プロセス制御ノードおよび/またはプロセス制御システムの整合性における低下を識別する。すなわち、定義と一致しないものは不規則性および/または問題と考えられる。
【0010】
本明細書に記載する例では、シグネチャは、整合性ガードが、ファイル、アプリケーション、プロセスなどを識別できるようにする、ファイル、アプリケーション、プロセスなどの1つまたは複数の識別特徴(例えば、サイズ、更新日、その内容など)を含む。
【0011】
プロセス制御システムの整合性の低下を検出すると、整合性ガードは、プロセス制御システムの管理者および/またはプロセス制御システムのプロバイダに警告を送信し得る。本明細書で説明するように、管理者は、プロセス制御システムに関連するか、かつ/または別なふうに関係する人および/もしくはグループであり得る。例えば、プロセス制御システムの管理者は、そのプロセス制御システムに関連した情報を受信すべきオペレータ、インストーラ、マネージャ、ユーザー、所有者、または任意の他の人および/もしくはグループであり得る。かかる警告は、プロセス制御システムの管理者が予防措置を講じることを可能にし得る。警告は、プロセス制御システムのプロバイダが、顧客が、例えば、有料の機能にアクセスするために、プロセス制御システムをいつ変更しようとしたかを識別できるようにし得る。警告の送信の追加および/または代替として、整合性ガードは、管理者に警告を表示すること、違法なプロセスを終了すること、システムまたはサービスをシャットダウンすること、セキュリティ検証等を実行することなどを行い得る。
【0012】
図1は、1つまたは複数のプロセス制御ノード115を含む、プロセス制御システム例110のブロック
図100である。いくつかの例では、プロセス制御システム110は、発電所、石油精製所、化学工場などで稼働する。
【0013】
図1のプロセス制御システム110のようなプロセス制御システム例は、通常、アナログバス、デジタルバスまたはアナログ/デジタル結合バスを経由して、プロセス制御ノード115に通信的に結合されたフィールド装置を有する、1つまたは複数のプロセス制御ノード115を含む。フィールド装置は、例えば、バルブ、バルブポジショナ、スイッチおよび送信機(例えば、温度センサー、圧力センサーおよび流量センサー)であり得、バルブの開閉およびプロセス制御パラメータの測定など、プロセス制御システム110内のプロセス制御機能を実行する。プロセス制御ノード115は、フィールド装置によって行われたプロセス測定値を示す信号を受信し、制御ルーチンを実装するためにこの情報を処理し、プロセスの動作を制御するためにプロセス制御システム110内で送信される制御信号を生成する。このように、プロセス制御ノード115は、フィールド装置を通信的に結合するバスおよび/または他の通信リンクを経由してフィールド装置を使用して、制御方式を実行および調整し得る。いくつかの例では、プロセス制御ノード115は、例えば、警告および/または注意を提供するため、プロセス制御システム110内で使用されるパラメータを取得するため、など、プロセス制御システム110の外部の資源と通信する。
【0014】
図示した例のプロセス制御システム110は、プロセス制御システムプロバイダ120によってプロセス制御システム110のオペレータに提供される。プロセス制御システムプロバイダ120は、例えば、警告を受信するため、プロセス制御システム110に更新情報を提供するため、適切な使用許可を確実にするためなど、プロセス制御システム110と通信する。図示した例では、プロセス制御システムプロバイダ120は、インターネット125を経由して、プロセス制御システム110と通信する。しかし、例えば、仮想プライベートネットワーク(VPN)、ダイヤルアップ接続など、任意の他のタイプの通信媒体が、追加または代替として使用され得る。
【0015】
図示した例では、プロセス制御システム110は、プロセス制御システム管理者130によって管理される。本明細書で説明するように、プロセス制御システム管理者130は、プロセス制御システム110に関連するか、かつ/または別なふうに関係する任意の人および/もしくはグループであり得る。例えば、プロセス制御システム管理者130は、プロセス制御システム110に関連した情報を受信すべきオペレータ、インストーラ、マネージャ、ユーザー、所有者、または任意の他の人および/もしくはグループであり得る。図示した例のプロセス制御システム管理者130は、プロセス制御システム110を運用および/または保守する。いくつかの例では、プロセス制御システム管理者130は、プロセス制御システム110を配備および/または構成する。プロセス制御システム管理者130は、プロセス制御システム110の構成に関与するので、プロセス制御システム管理者130は、プロセス制御システム110の構成に関与しなければそれに対して支払われる機能性を不注意にまたは別なふうに起動および/またはインストールし得る。いくつかの例では、プロセス制御システム110は、購入されていない機能が動作中である場合、プロセス制御システム管理者130に警告する。反対に、プロセス制御システム110は、購入されている機能がインストールされていないか、構成されていないか、かつ/または適切に動作していない場合、プロセス制御システム管理者130に警告し得る。
【0016】
図2は、
図1のプロセス制御ノード115の実施例のブロック図である。ノード例115は、プロセス制御コンポーネント210、ファイルシステム220、ネットワークコミュニケータ230、プロセッサ240、および整合性ガード250を含む。
【0017】
図2の図示した例のプロセス制御コンポーネント例210は、例えば、バルブ、ポンプ、ファン、加熱器、冷却器、および/または他の装置を介してプロセスを制御するために、入力を受信可能な入力装置を含む。プロセス制御コンポーネント例210は、例えば、温度計、圧力計、流量計、および/または他の装置などの、出力を生成可能な出力装置も含む。いくつかの例では、プロセス制御コンポーネント210は、コントローラ(例えば、DeltaV(登録商標)コントローラ)と通信的に結合され、それは、出力装置によって出力された情報を収集し、プロセスを変更するために、命令を入力装置に送信する。プロセス制御コンポーネント210によって使用される情報には、例えば、プロセス情報、環境情報、およびプロセス変数(例えば、反応炉入り口圧力などの測定されたプロセス変数)の値を含む。
【0018】
図2の図示例のファイルシステム例220は、プロセス制御コンポーネント210および/または、より一般的には、プロセス制御ノード115を操作するための情報を格納する。図示した例では、ファイルシステム220は、ハードディスクドライブで実施される。しかし、ファイルシステム220は、例えば、フラッシュメモリ、磁気媒体など、データを格納するための任意の装置であり得る。さらに、ファイルシステム220に格納されるデータは、例えば、ニューテクノロジファイルシステム(NTFS)、ファイルアロケーションテーブル(FAT)など、任意のデータフォーマットであり得る。
【0019】
図2の図示例のネットワークコミュニケータ例230は、イーサネット(登録商標)インタフェースである。図示した例では、ネットワークコミュニケータ230は、ネットワーク通信(例えば、HTTP要求など)を、プロセス制御システム110内の他のプロセス制御ノード115および/またはプロセス制御システム110の外部の他の装置(例えば、インターネット125上の装置など)から受信するか、かつ/またはネットワーク通信をそれらに送信する。図示した例では、ネットワークコミュニケータ230はイーサネット(登録商標)インタフェースであるが、任意の他のタイプのインタフェースが追加または代替として使用され得る。例えば、ネットワークコミュニケータ230は、ブルートゥース(登録商標)インタフェース、WiFiインタフェース、デジタル加入者回線(DSL)インタフェース、T1インタフェースなどのうちの1つまたは複数を含み得る。図示した例では、単一のネットワークコミュニケータ230が示されているが、任意の数および/またはタイプのネットワークコミュニケータが追加または代替として使用され得る。例えば、2つのネットワークコミュニケータ(例えば、イーサネット(登録商標)インタフェース)が使用され得る。
【0020】
図2の図示例のプロセッサ例240は、プロセス制御ノード115を操作するために情報を処理する。
図2のプロセッサ例240は、命令を実行するプロセッサによって実施されるが、代替として、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、または他の回路機構によって実施され得る。図示した例は、プロセッサ240は、ファイルシステム220に格納されたマシン可読命令に基づいて、情報を処理する。しかし、命令は、例えば、メモリ、インターネット資源など、任意の他の場所に格納され得る。プロセス制御ノード115の整合性の低下(例えば、セキュリティ違反など)の場合には、命令が変更されている可能性があり、プロセッサ240がその命令を実行する際に、プロセス制御ノード115が意図した通りに機能しない可能性がある。
【0021】
図2の図示例の整合性ガード例250はプロセス制御ノード115の整合性、およびそれによって、プロセス制御システム110の整合性を監視および検証する。プロセス制御ノード115の整合性は、例えば、プロセス制御ノード115のファイルシステム220の監視および検証、プロセス制御ノード115のネットワークコミュニケータ230との間のネットワーク通信の監視および検証、ならびに/またはプロセス制御ノード115のプロセッサ240によって実行されているアクティブプロセスの監視および検証を含む、いくつかの方法で監視される。
【0022】
図3は、
図1および
図2のプロセス制御ノード例115の整合性ガード250の実施例のブロック図である。整合性ガード例250は、ファイルシステム検証ツール310、ネットワーク通信検証ツール320、アクティブプロセス検証ツール330、プロファイルストア(profile store)340、および警告装置(alerter)350を含む。プロファイルストア例340は、ファイルシステムプロファイル311、ネットワーク通信プロファイル321、およびアクティブプロセスプロファイル331を含む。図示した例では、ファイルシステムプロファイル311、ネットワーク通信プロファイル321、およびアクティブプロセスプロファイル331は、別個のプロファイルとして示されているが、ファイルシステムプロファイル311、ネットワーク通信プロファイル321、およびアクティブプロセスプロファイル331は、単一のプロファイル(例えば、システムプロファイル)に結合および/または配置され得る。
【0023】
ファイルシステム検証ツール例310は、命令を実行するプロセッサによって実施されるが、代替として、ASIC、DSP、FPGA、または他の回路機構によって実施され得る。図示した例では、ファイルシステム検証ツール310は、ファイルシステム220の整合性を監視および/または検証する。図示した例では、ファイルシステム検証ツール310は、ファイルシステム220上のファイルをプロファイルストア340内に格納されたファイルシステムプロファイル311と照合することにより、ファイルシステム220の整合性を検証する。いくつかの例では、ファイルシステム検証ツール310は、ファイルシステム220上のファイルのハッシュ値を計算し、計算されたハッシュ値が、ファイルシステムプロファイル311に格納されているファイルの以前に計算されたハッシュ値と一致するか否かを判断する。図示した例では、ハッシュ値は、ハッシング法(例えば、セキュアハッシュアルゴリズム1(SHA-1)、メッセージダイジェスト5(MD5)など)を用いて計算される。計算されたハッシュ値が以前に計算されたハッシュ値と一致すれば、そのファイルは変更されていない。しかし、計算されたハッシュ値が以前に計算されたハッシュ値と一致しなければ、そのファイルは変更されている。プロセス制御システムの特定のファイルに対する変更は、プロセス制御ノード115の整合性の低下を示し得る。
【0024】
いくつかの例では、ファイルシステムプロファイル311は、あるファイルおよび/またはファイルのディレクトリに対する例外を含む。例えば、ファイルシステムプロファイル311は、ログアクティビティがプロセス制御ノード115の整合性における低下として識別されないように、ログファイルおよび/またはログファイルディレクトリ(例えば、1つまたは複数のログファイルが格納され得る場所)に対する例外を含み得る。ファイルシステム検証ツール310が、プロセス制御ノード115のファイルシステム220の整合性における低下を識別すると、ファイルシステム検証ツール310は、警告装置350を介して、プロセス制御システム管理者130および/またはプロセス制御システムプロバイダ120に警告する。いくつかの例では、ファイルシステム検証ツール310は、プロセス制御ノード115の整合性の低下という結果となっているファイルを除去(例えば、削除、隔離など)するための措置を講じる。
【0025】
図示した例のファイルシステム検証ツール310は、既知のシステムのプロファイルと一致しない項目(例えば、ファイル、ファイルのディレクトリなど)を識別することにより、プロセス制御ノード115の整合性における低下を識別する。逆に、既知のアンチウイルスシステムは、既知の問題の定義と照合することにより、悪意のあるファイルを識別する。例えば、アンチウイルスシステムは、特定のウイルスに関連したファイルが存在するか否かを識別するためにファイルシステムをスキャンし得るが、他方、ファイルシステム検証ツール例310は、ファイルシステムプロファイル内に含まれていない任意のファイルが存在する場合を識別する。
【0026】
ネットワーク通信検証ツール例320は、命令を実行するプロセッサによって実施されるが、代替として、ASIC、DSP、FPGA、または他の回路機構によって実施され得る。図示した例では、ネットワーク通信検証ツール320は、ネットワーク通信のプロパティを識別することにより、ネットワークコミュニケータ230との間のネットワーク通信を監視および/または検証する。図示した例では、有効な通信の1つまたは複数のプロパティが、ネットワーク通信プロファイル321に格納される。図示した例のネットワーク通信プロファイル321は、プロファイルストア340に格納される。
【0027】
図示した例では、ネットワーク通信プロファイル321は、プロセス制御ノード115によって標準的に使用されるポート番号を識別するプロパティを含む。プロセス制御ノード115によって標準的に使用されないポートを使用しようとする試みが検出されると、ネットワーク通信検証ツール例320は、この試みをプロセス制御ノード115の整合性の低下として識別する。追加または代替として、ネットワーク通信プロファイル321は、シグネチャの一部として他のパラメータを含み得る。例えば、シグネチャは、プロセス制御ノード115によって使用される宛先アドレス(例えば、インターネットプロトコル(IP)アドレス、ドメイン名、電子メールアドレスなど)、プロセス制御ノード115によって使用されるメッセージフォーマットなどを含み得る。
【0028】
いくつかの例では、ネットワーク通信検証ツール320は、ネットワーク通信プロファイル321に含まれていない宛先に向けられたネットワーク通信が送信されると、ネットワーク通信が整合性の低下を示しているか否かを判断する。いくつかの例では、ネットワーク通信検証ツール320は、ネットワーク通信を送信するプロセス制御ノード115のプロセスについて問い合わせを行うために、チャレンジレスポンス機構を使用する。
【0029】
ネットワーク通信検証ツール320が、プロセス制御ノード115の整合性の低下を検出すると、ネットワーク通信検証ツール320は、警告装置350を介して、プロセス制御システム管理者130および/またはプロセス制御システムプロバイダ120に警告する。いくつかの例では、ネットワーク通信検証ツール320は、ネットワーク通信を遮断する、ネットワーク通信のログを取る、などを行う。
【0030】
アクティブプロセス検証ツール例330は、命令を実行するプロセッサによって実施されるが、代替として、ASIC、DSP、FPGA、または他の回路機構によって実施され得る。図示した例では、アクティブプロセス検証ツール330は、プロセッサ240によって実行されているアクティブプロセスを監視および/または検証する。図示した例では、プロセスは、アクティブプロセスプロファイル331に基づいて監視および/または検証される。しかし、プロセスを識別する任意の他の方法が追加または代替として使用され得る。
【0031】
図示した例では、アクティブプロセスプロファイル331は、プロセス制御ノード115によって標準的に使用されるプロセスを識別するシグネチャ(例えば、プロセス名、プロセスによって使用されるDynamically Linked Libraries(DLL)など)を含む。図示した例では、アクティブプロセス検証ツール330がプロセス制御ノード115のオペレーティングシステムとやりとりする際に、アクティブプロセスが識別される。いくつかの例では、アクティブプロセスは、ロードされた1つまたは複数のDLLを有するとして識別される。アクティブプロセス検証ツール330は、プロセス制御ノード115のオペレーティングシステムによって識別される各プロセスを、アクティブプロセスプロファイル331と対照して検証する。プロセスは、例えば、それらがファイルシステム220上の特定の位置からロードされているか、特定のDLLがプロセスによってロードされているか、ファイル(例えば、実行可能ファイル、DLL、構成ファイル)が、アクティブプロセスプロファイル331に格納されているハッシュ値に一致する計算されたハッシュ値を有するか、などを判断するためにチェックされる。プロセスが、既知のプロセスのシグネチャに一致しないことが分かると、アクティブプロセス検証ツール330は、例えば、プロセスを終了すること、プロセス制御ノード115をシャットダウンすること、プロセスの終了をログに取ること、警告装置350を介して、プロセス制御システム管理者130および/またはプロセス制御システムプロバイダ120に警告することなどの動作を実行する。
【0032】
図示例のプロファイルストア340は、ファイルシステムの検証された構成、検証されたネットワーク通信、検証されたアクティブプロセス、および/または以前の検証の結果を格納する。プロファイルストア340は、例えば、フラッシュメモリ、磁気媒体、光媒体など、データを格納するための任意の装置であり得る。さらに、プロファイルストア340に格納されたデータは、例えば、バイナリデータ、カンマ区切りデータ、タブ区切りデータ、構造化照会言語(SQL)構造などの、任意のデータフォーマットであり得る。図示した例では、プロファイルストア340は、単一のデータベースとして示されているが、プロファイルストア340は、任意の数および/またはタイプのデータベースによって実施され得る。
【0033】
いくつかのプロセス制御システムでは、所与のプロファイル(例えば、ファイルシステムプロファイル311、ネットワーク通信プロファイル321、アクティブプロセスプロファイル331など)が存在しない可能性がある。従って、それらのシステムでは、プロファイルは、作成されるか、かつ/または初期化される必要がある。プロファイルを初期化するために、整合性ガードは、プロセス制御ノード115のファイルシステム上のファイルを識別し、それらに対するハッシュ値を計算する。もちろん、プロファイルを初期化する他の方法、例えば、プロセス制御ノード115によって実行されているアクティブプロセスを識別すること、プロセス制御ノード115のネットワーク通信を監視することなどが、追加または代替として使用され得る。図示した例では、かかるプロファイルの初期化は、プロセス制御ノード115のインストール時に行われる。従って、プロファイルは、プロファイルの初期化時における、プロセス制御ノード115のスナップショットを表す。しかし、いくつかの例では、プロファイルの初期化は、例えば、構成変更後、サードパーティアプリケーションのインストール後など、後で起こる。初期化されたプロファイルは、次いで、整合性ガード250によって将来使用するために、プロファイルストア340に格納される。
【0034】
いくつかの例では、プロファイルストア340および/またはそこに格納されているプロファイルは、リモートプロファイル(例えば、リモートプロファイルサーバーに格納されているプロファイル)と同期化される。図示した例では、リモートプロファイルサーバー(図示せず)は、プロセス制御システム110内のサーバーである。しかし、いくつかの例では、リモートプロファイルサーバーは、プロセス制御システムプロバイダ120によって(例えば、インターネット125を経由して)ホストに接続される。例えば、あらゆるプロセス制御ノード上でプロファイルを初期化することは実行可能でないことがある。いくつかの例では、プロファイル(例えば、ファイルシステムプロファイル311、ネットワーク通信プロファイル321、アクティブプロセスプロファイル331など)が、別のプロセス制御ノード115から取得される。従って、プロセス制御システム管理者130および/またはプロセス制御システムプロバイダ120は、更新されたプロファイルを作成し、そのプロファイルを複数のプロセス制御ノード上で使用し得る。いくつかの例では、プロファイルは、自動的に更新され、プロセス制御ノードを更新するために、適切なノード(例えば、同様の機能性を実行するプロセス制御ノード)にプッシュ型配信される。
【0035】
いくつかの例では、サードパーティアプリケーションをプロセス制御ノード115上にインストールする必要があり得るが、インストール時に、プロファイルに対して適切な変更が行われていない可能性がある。その結果、アプリケーションに関連したファイル、ネットワーク通信、および/またはプロセスが、整合性の低下として認識される可能性があるだろう。いくつかの例では、安全な(benign)サードパーティアプリケーションに対するログエントリの監査を可能にするために、新しくインストールされたアプリケーションに関連した識別子が、整合性の低下に対応するログエントリに追加される。図示した例では、ログは、テキストベースのファイルとして、プロセス制御ノード115上にローカルに格納される。しかし、例えば、バイナリファイル、データベース、ロギングシステム(例えば、Windows(登録商標) Event Logなど)など、かかる情報を格納する任意の他の方法が、追加または代替として使用され得る。さらに、ログエントリは、それらが、例えば、syslogシステム、簡易ネットワーク管理プロトコル(SNMP)などの、リモートロギングプロトコルおよび/またはシステムを介して生じると、システムに送信され得る。かかるログは、プロセス制御システムプロバイダ120に送信され得、それらは、次いで、サードパーティアプリケーションが、それが整合性の低下であるかどうかに関して適切に識別されるように、プロファイルを更新し得る。
【0036】
警告装置例350は、命令を実行するプロセッサによって実施されるが、代替として、ASIC、DSP、FPGA、または他の回路機構によって実施され得る。図示した例では、警告装置350は、プロセス制御ノード115および、より一般的には、プロセス制御システム110の整合性の低下を、プロセス制御システム管理者130および/またはプロセス制御システムプロバイダ120に警告する。図示した例では、警告装置例350は、警告メッセージを表示すること(例えば、コンピュータディスプレイ上にダイアログボックスを表示すること)により、プロセス制御システム管理者130および/またはプロセス制御システムプロバイダ120に警告する。追加または代替として、警告装置350は、例えば、電子メール(eメール)メッセージ、ショートメッセージサービス(SMS)メッセージ、システムアラームなど、任意の他の方法で、プロセス制御システム管理者130および/またはプロセス制御システムプロバイダ120に警告し得る。
【0037】
図2の整合性ガード250の実施方法例が
図3に示されているが、
図3に示す1つまたは複数の要素、プロセス、および/または装置は、任意の他の方法で、結合、分割、再配置、省略、および/または実施され得る。さらに、ファイルシステム検証ツール例310、ネットワーク通信検証ツール例320、アクティブプロセス検証ツール例330、プロファイルストア例340、警告装置例350、および/またはより一般的に、
図3の整合性ガード例250は、ハードウェア、ソフトウェア、ファームウェア、ならびに/またはハードウェア、ソフトウェア、および/もしくはファームウェアの任意の組合せによって実施され得る。従って、例えば、ファイルシステム検証ツール例310、ネットワーク通信検証ツール例320、アクティブプロセス検証ツール例330、プロファイルストア例340、警告装置例350、および/またはより一般的に、
図3の整合性ガード例250のいずれも、1つまたは複数の回路、プログラマブルプロセッサ、特定用途向け集積回路(ASIC)、プログラム可能論理回路(PLD)および/またはフィールドプログラム可能論理回路(FPLD)などによって実施され得る。本特許の装置クレームが、純粋にソフトウェアおよび/またはファームウェア実施をカバーすると解釈される場合、ファイルシステム検証ツール例310、ネットワーク通信検証ツール例320、アクティブプロセス検証ツール例330、プロファイルストア例340、および/または警告装置例350の少なくとも1つは、本明細書により、ソフトウェアおよび/またはファームウェアを格納するメモリ、DVD、CD、ブルーレイなどの、有形的コンピュータ可読媒体を含むように明示的に定義される。さらになお、
図2および/もしくは
図3の整合性ガード例250は、1つもしくは複数の要素、プロセスおよび/もしくは装置を、
図3に示すものに加えて、または
図3に示すものの代わりに含み得、かつ/または図示した要素、プロセスおよび装置の一部もしくは全部のうちの2つ以上を含み得る。
【0038】
図2および/または
図3の整合性ガード250を実施するための方法またはプロセス例を表す流れ図を
図4~
図7に示す。これらの例では、プロセスは、
図8に関連して以下で説明するプロセッサプラットフォーム800に示すプロセッサ812などのプロセッサによって実行するためのプログラムを含み得る。プログラムは、CD-ROM、フロッピィディスク、ハードドライブ、デジタル多用途ディスク(DVD)、ブルーレイディスク、またはプロセッサ812に関連したメモリなどの有形的コンピュータ可読媒体上に格納されたソフトウェアで実施され得るが、プログラム全体および/またはその部分は、プロセッサ812以外の装置によって代わりに実行され得るか、かつ/またはファームウェアもしくは専用ハードウェアで実施され得る。さらに、プログラム例は、
図4~
図7に示す流れ図に関連して説明されるが、整合性ガード例250を実施する他の多くの方法が、代わりに使用され得る。例えば、ブロックの実行順序が変更され得るか、かつ/または説明されるブロックのいくつかが、変更、除外、もしくは結合され得る。
【0039】
前述したように、
図4~
図7のプロセス例は、ハードディスクドライブ、フラッシュメモリ、読取り専用メモリ(ROM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、キャッシュ、ランダムアクセスメモリ(RAM)および/または任意の期間(例えば、長期間、永久的、短期間、情報の一時的なバッファリング、および/またはキャッシングのため)情報が格納される任意の他の記憶媒体などの、有形的コンピュータ可読媒体上に格納されたコード化命令(例えば、コンピュータ可読命令)を使用して実施され得る。本明細書では、有形的コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読ストレージを含み、かつ伝搬信号を除外するように明示的に定義される。
【0040】
追加または代替として、
図4~
図7のプロセス例は、ハードディスクドライブ、フラッシュメモリ、読取り専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリおよび/または任意の期間(例えば、長期間、永久的、短期間、情報の一時的なバッファリング、および/またはキャッシングのため)情報が格納される任意の他の記憶媒体などの、持続的コンピュータ可読媒体上に格納されたコード化命令(例えば、コンピュータ可読命令)を使用して実施され得る。本明細書では、持続的コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読媒体を含み、かつ伝搬信号を除外するように明示的に定義される。本明細書では、「少なくとも(at least)」という句は、クレームの従来技術部分において遷移用語(transition term)として使用される場合、用語「含む(comprising)」が無制限であるのと同様に、無制限である。従って、「少なくとも」をその従来技術部分において遷移用語として使用するクレームは、クレーム内で明示的に詳述されるものに加えて、要素を含み得る。
【0041】
図4は、
図1のプロセス制御システム110の整合性における変化を検出するために実行され得る方法例を表す流れ
図400である。
図4のブロック410、420、および430は、サブプロセスを表し、プロセス制御システム110の整合性における変化を検出するために並行して実行される。
【0042】
ブロック410では、整合性ガード250のファイルシステム検証ツール例310は、プロセス制御ノード115のファイルシステム220を監視および/または検証する。ファイルシステム検証ツール310の動作は、
図5に関連してさらに説明される。ブロック420では、整合性ガード250のネットワーク通信検証ツール例320は、プロセス制御ノード115のネットワークコミュニケータ230のネットワーク通信を監視および/または検証する。ネットワーク通信検証ツール320の動作は、
図6に関連してさらに説明される。ブロック430では、整合性ガード250のアクティブプロセス検証ツール例330は、プロセス制御ノード115のプロセッサ240によって実行されるアクティブプロセスを監視および/または検証する。アクティブプロセス検証ツール330の動作は、
図7に関連してさらに説明される。
【0043】
前述したように、ブロック410、420、および430は、サブプロセスを表し、互いに並行して実行される。図示した例では、ブロック410、420、および430は、連続的に実行される。しかし、これらのサブプロセスを実行する任意の他の方法が、追加または代替として使用され得る。例えば、ブロック410、420、および430は、利用されるシステム資源の量を削減するために定期的に実行され得る(例えば、監視および/または検証プロセスが、5分ごと、1時間に一度、一日に一度など、実行される)。追加または代替として、これらのサブプロセスが、連続的実行および定期的実行の組合せを使用して、実行され得る。例えば、ファイルシステム検証ツール310は、ファイルシステム220を1時間に一度、監視し得(ブロック410)、ネットワーク通信検証ツール320は、ネットワークコミュニケータ230のネットワーク通信を連続的に監視し得(ブロック420)、また、アクティブプロセス検証ツール330は、プロセッサ240によって実行されるアクティブプロセスを5分ごとに監視および/または検証し得る(ブロック430)。しかし、定期的実行および/または連続的実行の任意の他の組合せが、追加または代替として使用され得る。
【0044】
図示した例では、通知が警告装置350に伝送される。通知は、プロセスの監視および/または検証プロセスの状態に関して、警告装置350に通知し得る。通知は、整合性の低下の検出を識別するために使用され得る。通知は、例えば、ネットワーク通信、プロセス間通信、通知のファイルへの書込み、プロセスの終了(例えば、ブロック410、420、および/または430)など、任意の方法で送信され得る。通知を受信すると、警告装置350は、整合性の低下が検出されているか否かを判断する(ブロック440)。整合性の低下がなければ、制御は終了へ進む。前述したように、
図4で説明するプロセスは、定期的に繰り返され得るか、かつ/または連続的に実行され得る。
【0045】
整合性の低下がある場合、制御は、警告装置350がプロセス制御システム管理者130に整合性の低下を警告するブロック450に進む。図示した例では、警告装置350は、警告メッセージを表示する(例えば、コンピュータディスプレイ上にダイアログボックスを表示する)ことにより、プロセス制御システム管理者130に警告する(ブロック450)。図示した例では、警告装置350は、警告メッセージを表示する(例えば、コンピュータディスプレイ上にダイアログボックスを表示する)ことにより、プロセス制御システムプロバイダ120に警告する(ブロック460)。しかし、プロセス制御システム管理者130および/またはプロセス制御システムプロバイダ120に警告する任意の他の方法が、追加または代替として使用され得る。例えば、警告装置350は、例えば、電子メール(eメール)メッセージの送信、ショートメッセージサービス(SMS)メッセージの送信、システムアラームのトリガー、プロセス制御システム110の無効化などにより、プロセス制御システム管理者130および/またはプロセス制御システムプロバイダ120に警告し得る。
【0046】
図5は、ファイルシステムの整合性検証を実行し得る方法例を表す流れ
図500である。
【0047】
図5の方法例は、
図4のブロック410で説明するサブプロセスを表す。ファイルシステム検証ツール310がファイルシステムプロファイル311をプロファイルストア340からロードすると、実行を開始する(ブロック510)。ファイルシステム検証ツール310は、ファイルシステム220上に格納されている個々のファイルを識別する(ブロック520)。ファイルは、例えば、プロセス制御ノード115のオペレーティングシステムとやりとりすることにより、識別され得る。
【0048】
ファイルシステム検証ツール310は、識別されたファイルが、ファイルシステムプロファイル311内で例外として識別されるか否かを判断する(ブロック530)。例えば、ファイルが特定のディレクトリ内にある、ファイルが特定のサイズである、ファイルが特定のファイル拡張子(例えば、画像(.jpg)、テキスト文書(.txt)など)を有する場合、そのファイルは例外であり得る。ファイルがファイルシステムプロファイル311内で例外として識別される場合、制御は、さらなるファイルが存在するか否かが判断されるブロック580に進む。ブロック530で、ファイルが例外として識別されなければ、制御はブロック540に進む。ファイルシステム検証ツール310は、次いで、そのファイルがプロファイル311内に含まれているか否かを判断する(ブロック540)。ファイルがプロファイル311内に含まれていなければ、ファイルシステム検証ツール310は、整合性低下の検出のログを取る(ブロック570)。プロファイルに含まれておらず、かつ、例外に含まれていないファイルの検出は、新しいファイルがファイルシステム上に存在する場合に、ファイルシステム検証ツール310が、整合性の低下を検出できるようにする。
【0049】
ブロック540で、識別されたファイルがプロファイルに含まれる場合、ファイルシステム検証ツール310は、識別されたファイルのハッシュ値を決定(例えば、計算)する(ブロック550)。ファイルシステム検証ツール310は、次いで、識別されたファイルの計算されたハッシュ値が、プロファイル内のファイルに対応する格納されたハッシュ値と一致するか否かを判断する(ブロック560)。例えば、ファイルが変更されていれば、計算されたハッシュ値は、格納されたハッシュ値と一致しない可能性がある。ハッシュ値の比較は、ファイルシステム検証ツール310が、ファイルが変更されているか否かを検出できるようにする。計算されたハッシュ値が、格納されたハッシュ値と一致しない場合、ファイルシステム検証ツール310は、整合性低下の検出のログを取る(ブロック570)。図示した例では、ファイルシステム検証ツール310は、プロセス制御ノード115にローカルなログ内にログエントリを格納することにより、整合性低下の検出のログを取る。しかし、いくつかの例では、ファイルシステム検証ツール310は、ログエントリをロギング場所(例えば、プロセス制御システム110にローカルなロギングサーバー、例えば、プロセス制御システムプロバイダ、サードパーティなどにおけるプロセス制御システムにリモートなロギングサーバー)に送信することにより、整合性低下の検出のログを取る。いくつかの例では、ログエントリは、例えば、syslogロギングシステム、簡易ネットワーク管理プロトコル(SNMP)などの、リモートロギングプロトコルおよび/またはシステムを使用して送信される。計算されたハッシュ値が、格納されたハッシュ値と一致する場合、ファイルシステム検証ツール310は、検証すべきさらなるファイルがあるか否かの判断へと進む(ブロック580)。図示した例では、検証すべきさらなるファイルがなければ、制御は、
図5の方法の終了へと進む。警告装置350は、次いで、サブプロセスが完了したという通知を受信する。いくつかの例では、
図5の動作は、ファイルシステム220が再検証されるように、繰り返される。
【0050】
図6は、ネットワーク通信検証を実行するための方法例を表す流れ
図600である。
図6の方法例は、
図4のブロック420で説明するサブプロセスを表す。
【0051】
図6の方法例は、ネットワーク通信検証ツール320がネットワーク通信プロファイル321をプロファイルストア340からロードすると、実行を開始する(ブロック610)。ネットワーク通信検証ツール320は、ネットワークコミュニケータ230のネットワーク通信を識別する(ブロック620)。ネットワーク通信検証ツール320は、次いで、識別されたネットワーク通信がネットワーク通信プロファイル321に含まれているか否かを判断する(ブロック630)。図示した例では、ネットワーク通信プロファイル321は、プロセス制御ノード115によって標準的に使用されるポート番号(例えば、伝送制御プロトコル(TCP)ポート番号など)を含む。プロセス制御ノード115によって標準的に使用されないポートを使用しようとする試みが検出されると、ネットワーク通信検証ツール例320はこの試みをプロセス制御ノード115の整合性の低下として識別する。プロセス制御ノード115の整合性の低下が検出されると、制御は、ネットワーク通信検証ツール320が整合性低下の検出のログを取るブロック640に進む。図示した例では、ネットワーク通信検証ツール320は、プロセス制御ノード115にローカルなログ内にログエントリを格納することにより、整合性低下の検出のログを取る。しかし、いくつかの例では、ネットワーク通信検証ツール320は、ログエントリをロギング場所(例えば、プロセス制御システム110にローカルなロギングサーバー、例えば、プロセス制御システムプロバイダ、サードパーティなどにおけるプロセス制御システムにリモートなロギングサーバー)に送信することにより、整合性低下の検出のログを取る。いくつかの例では、ログエントリは、例えば、syslogロギングシステム、簡易ネットワーク管理プロトコル(SNMP)などの、リモートロギングプロトコルおよび/またはシステムを使用して送信される。
【0052】
いくつかの例では、ネットワーク通信検証ツール320は、例えば、送信元アドレスおよび/または宛先アドレス(例えば、インターネットプロトコル(IP)アドレス、ドメイン名、電子メールアドレスなど)、プロセス制御ノード115によって使用されるメッセージフォーマット、ネットワーク通信の内容など、他のパラメータに基づいて、ネットワーク通信を検証し得る。ネットワーク通信検証ツール320が、プロセス制御ノード115によって使用されると期待されるネットワーク通信と一致するネットワーク通信を検出すると、制御は、ネットワーク通信検証ツール320が、ネットワークコミュニケータ230のネットワーク通信の監視および検証を継続するブロック620に進む。前述したように、
図6の動作は、定期的および/または連続的に実行され得る。図示した例では、
図6の方法は、連続的に実行される。
【0053】
図7は、アクティブプロセスの整合性検証を実行するための方法例を表す流れ
図700である。
図7の方法例は、
図4のブロック430で説明するサブプロセスを表す。
【0054】
図7の方法例は、アクティブプロセス検証ツール330がアクティブプロセスプロファイル331をプロファイルストア340からロードすると、実行を開始する(ブロック710)。アクティブプロセス検証ツール330は、次いで、プロセッサ240によって実行されるアクティブプロセスを識別する(ブロック720)。アクティブプロセスは、例えば、プロセス制御ノード115のオペレーティングシステムとやりとりすることにより識別され得る。アクティブプロセス検証ツール330は、次いで、識別されたプロセスが、アクティブプロセスプロファイル331内で例外として識別されるか否かを判断する(ブロック730)。例えば、プロセスが特定のディレクトリからロードされた場合、プロセスが特定サイズのメモリフットプリントを有する場合など、そのプロセスは例外であり得る。プロセスがアクティブプロセスプロファイル331内で例外として識別される場合、制御は、さらなるアクティブプロセスが存在するか否かが判断されるブロック780に進む。プロセスが例外として識別されなければ、制御はブロック740に進む。アクティブプロセス検証ツール330は、次いで、そのプロセスがアクティブプロセスプロファイル331内に含まれているか否かを判断する(ブロック740)。プロセスがアクティブプロセスプロファイル331内に含まれていない場合、アクティブプロセス検証ツール330は、整合性低下の検出のログを取る(ブロック770)。図示した例では、アクティブプロセス検証ツール330は、プロセス制御ノード115にローカルなログ内にログエントリを格納することにより、整合性低下の検出のログを取る。しかし、いくつかの例では、アクティブプロセス検証ツール330は、ログエントリをロギング場所(例えば、プロセス制御システム110にローカルなロギングサーバー、例えば、プロセス制御システムプロバイダ、サードパーティなどにおけるプロセス制御システムにリモートなロギングサーバー)に送信することにより、整合性低下の検出のログを取る。いくつかの例では、ログエントリは、例えば、syslogロギングシステム、簡易ネットワーク管理プロトコル(SNMP)などの、リモートロギングプロトコルおよび/またはシステムを使用して送信される。プロファイルに含まれておらず、かつ、例外に含まれていないプロセスの検出は、新しいプロセス(例えば、未知のプロセス、不正(rogue)プロセス、サードパーティプロセスなど)が実行されている場合に、アクティブプロセス検証ツール330が、整合性の低下を検出できるようにする。識別されたプロセスがプロファイルに含まれる場合、アクティブプロセス検証ツール330は、プロセスに関連するファイル(例えば、実行可能ファイル、DLL、構成ファイルなど)のハッシュ値を決定(例えば、計算)する(ブロック750)。
【0055】
アクティブプロセス検証ツール330は、識別されたファイルの計算されたハッシュ値が、プロファイル内の識別されたファイルに対応する格納されたハッシュ値と一致するか否かを判断する(ブロック760)。例えば、プロセスに関連するファイルが変更されている場合、計算されたハッシュ値は、格納されたハッシュ値と一致しない可能性がある。ハッシュ値の比較は、アクティブプロセス検証ツール330が、プロセスが変更されているか否かを検出できるようにする。計算されたハッシュ値が、格納されたハッシュ値と一致しなければ、アクティブプロセス検証ツール330は、整合性低下の検出のログを取る(ブロック770)。図示した例では、アクティブプロセス検証ツール330は、プロセス制御ノード115にローカルなログ内にログエントリを格納することにより、整合性低下の検出のログを取る。しかし、いくつかの例では、アクティブプロセス検証ツール330は、ログエントリをロギング場所(例えば、プロセス制御システム110にローカルなロギングサーバー、例えば、プロセス制御システムプロバイダ、サードパーティなどにおけるプロセス制御システムにリモートなロギングサーバー)に送信することにより、整合性低下の検出のログを取る。いくつかの例では、ログエントリは、例えば、syslogロギングシステム、簡易ネットワーク管理プロトコル(SNMP)などの、リモートロギングプロトコルおよび/またはシステムを使用して送信される。計算されたハッシュ値が、格納されたハッシュ値と一致すれば、アクティブプロセス検証ツール330は、検証すべきさらなるプロセスがあるか否かの判断に進む(ブロック780)。図示した例では、検証すべきさらなるプロセスがなければ、制御は、
図7のアクティブプロセスの整合性検証の終了に進む。警告装置350は、次いで、サブプロセスが完了したという通知を受信する。いくつかの例では、
図7のアクティブプロセスの整合性検証は、アクティブプロセスが再検証されるように、繰り返される。
【0056】
図8は、
図1および/もしくは
図2のプロセス制御ノード例、ならびに/または
図2および/もしくは
図3の整合性ガード例を実施するために、
図4~
図7の方法例を実行可能なプロセッサプラットフォーム例800のブロック図である。プロセッサプラットフォーム例800は、例えば、サーバー、パーソナルコンピュータ、携帯電話(例えば、セル方式の携帯無線電話)、携帯情報端末(PDA)、インターネット家電、または任意の他のタイプのコンピューティング装置であり得る。
【0057】
本例のシステム800は、プロセッサ812を含む。例えば、プロセッサ812は、製造業者からの1つまたは複数のマイクロプロセッサもしくはコントローラによって実施できる。
【0058】
プロセッサ812は、ローカルメモリ813(例えば、キャッシュ)を含み、ランダムアクセスメモリ814および読取り専用メモリ816を含むメインメモリと、バス818を経由して通信する。ランダムアクセスメモリ814は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUSダイナミックランダムアクセスメモリ(RDRAM)および/または任意の他のタイプのランダムアクセスメモリデバイスによって実施され得る。読取り専用メモリ816は、フラッシュメモリおよび/または任意の他の所望のタイプのメモリデバイスによって実施され得る。ランダムアクセスメモリ814、読取り専用メモリ816へのアクセスは、メモリコントローラによって制御される。
【0059】
プロセッサプラットフォーム800は、インタフェース回路820も含む。インタフェース回路820は、イーサネット(登録商標)インタフェース、ユニバーサルシリアルバス(USB)、および/またはPCI Expressインタフェースなど、任意のタイプのインタフェース規格によって実施され得る。
【0060】
1つまたは複数の入力装置822がインタフェース回路820に接続される。入力装置822は、ユーザーがデータおよびコマンドをプロセッサ812に入力できるようにする。入力装置は、例えば、キーボード、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイント(isopoint)および/または音声認識システムによって実施できる。
【0061】
1つまたは複数の出力装置824もインタフェース回路820に接続される。出力装置824は、例えば、表示装置(例えば、液晶ディスプレイ、ブラウン管ディスプレイ(CRT)、プリンタおよび/またはスピーカ)によって実施できる。インタフェース回路820は、従って、通常、グラフィックスドライバカードを含む。
【0062】
インタフェース回路820は、ネットワーク826(例えば、イーサネット(登録商標)接続、デジタル加入者回線(DSL)、電話回線、同軸ケーブル、携帯電話システムなど)を介して、外部コンピュータとのデータ交換を容易にするモデムまたはネットワークインタフェースカードなどの通信装置(例えば、ネットワークコミュニケータ230)も含む。
【0063】
プロセッサプラットフォーム800は、ソフトウェアおよびデータを格納するための1つまたは複数の大容量記憶装置828も含む。かかる大容量記憶装置828の例には、フロッピィディスクドライブ、ハードドライブディスク、コンパクトディスクドライブおよびデジタル多用途ディスク(DVD)ドライブを含む。大容量記憶装置828は、ファイルシステム220および/またはプロファイルストアを実施し得る。
【0064】
図4~
図7の方法を実施するためのコード化命令832は、大容量記憶装置828内、ローカルメモリ813内、揮発性メモリ814内、不揮発性メモリ816内、および/またはCDもしくはDVDなどの取り外し可能記憶媒体上に格納され得る。
【0065】
前記から、前述の開示した方法、装置および製品は、プロセス制御システムの整合性における変化(例えば、低下)を検出する能力を提供することが理解されるであろう。
【0066】
ある方法例、装置および製品が本明細書で説明されているが、本特許がカバーする範囲はそれらに限定されない。逆に、本特許は、本特許の特許請求の範囲に適正に含まれる全ての方法、装置および製品をカバーする。