(57)【要約】      （修正有）【課題】プロセス制御システムの整合性の低下を識別するための方法および装置を提供する。【解決手段】方法例は、プロセス制御システムのファイルシステム上のファイルを識別することを含む。方法例は、ファイルがシステムプロファイル内で識別されるか否かを判断することをさらに含み、そのシステムプロファイルは、存在するはずのファイルを識別する。ファイルがシステムプロファイル内で識別されない場合に、プロセス制御システムの整合性の低下が識別される。【選択図】図５
2019194905.tif 000002
【特許請求の範囲】
【請求項１】
プロセス制御システムの整合性の低下を識別するための方法であって、
前記プロセス制御システムのファイルシステム上のファイルを識別することと、
前記ファイルシステム上に存在するはずのファイルを識別するシステムプロファイル内で、前記ファイルが識別されるか否かを判断することと、
前記ファイルが前記システムプロファイル内で識別されない場合に、前記プロセス制御システムの整合性の低下を識別することと、
を含む方法。
【請求項２】
前記ファイルが前記システムプロファイル内に含まれる場合に、前記ファイルを前記システムプロファイル内の前記ファイルに関連する値と比較して、前記ファイルが前記値と一致するか否かを判断することと、
前記ファイルが前記システムプロファイル内に含まれる場合、かつ前記ファイルが前記値と一致しない場合に、前記プロセス制御システムの整合性の前記低下を識別することと
をさらに含む、請求項１に記載の方法。
【請求項３】
整合性の前記低下が識別されると、プロセス制御システムプロバイダまたはプロセス制御システム管理者のうちの少なくとも一方に警告することをさらに含む、請求項１に記載の方法。
【請求項４】
前記ファイルが前記システムプロファイルの例外として識別される場合、整合性の前記低下が識別されない、請求項１に記載の方法。
【請求項５】
前記ファイルのハッシュ値を計算することと、
前記計算されたハッシュ値を前記値と比較することと、
をさらに含み、
前記システムプロファイル内の前記ファイルに関連した前記値が、以前に計算されたハッシュ値である、
請求項１に記載の方法。
【請求項６】
前記システムプロファイルを初期化することをさらに含み、
前記システムプロファイルを初期化することが
前記ファイルシステム上の前記ファイルを識別することと、
前記ファイルに関連した前記値を計算することと、
前記システムプロファイル内に前記値を格納することと
を含む、請求項１に記載の方法。
【請求項７】
前記システムプロファイルをリモートプロファイルサーバーから取得することをさらに含む、請求項１に記載の方法。
【請求項８】
前記プロセス制御システムのプロセッサによって実行されているプロセスを識別することをさらに含み、
前記ファイルシステム上で識別された前記ファイルが、前記プロセッサによって実行されている前記プロセスに関連している、
請求項１に記載の方法。
【請求項９】
前記プロセス制御システムのネットワークコミュニケータのネットワーク通信を識別することと、
前記ネットワーク通信のプロパティを前記システムプロファイルの格納されたプロパティと比較することと、
前記ネットワーク通信の前記プロパティが前記システムプロファイルの前記格納されたプロパティに一致しない場合に、前記プロセス制御システムの整合性の前記低下を識別することと
をさらに含む、請求項１に記載の方法。
【請求項１０】
プロセス制御システムの整合性の低下を識別するための装置であって、
プロセス制御ノードのファイルシステム上に格納されたファイルのプロパティと、第１の格納された値との間の差を、整合性の低下として識別するためのファイルシステム検証ツールと、
前記プロセス制御ノードによって実行されるアクティブプロセスのプロパティと、第２の格納された値との間の差を、整合性の前記低下として識別するためのアクティブプロセス検証ツールと
を備える装置。
【請求項１１】
整合性の前記低下が識別されると、プロセス制御システムプロバイダまたはプロセス制御システム管理者のうちの少なくとも一方に警告するための警告装置をさらに備える、請求項１０に記載の装置。
【請求項１２】
前記第１の格納された値がハッシュ値であり、前記ファイルの前記プロパティが計算されたハッシュ値である、請求項１０に記載の装置。
【請求項１３】
前記アクティブプロセスの前記プロパティが、前記プロセスに関連したファイルの計算されたハッシュ値である、請求項１０に記載の装置。
【請求項１４】
前記警告装置が、電子メールメッセージを送信することにより、前記プロセス制御システムプロバイダまたは前記プロセス制御システム管理者のうちの少なくとも一方に警告するためである、請求項１０に記載の装置。
【請求項１５】
前記プロセス制御ノードのネットワークコミュニケータの監視されたネットワーク通信のプロパティと第３の格納された値との間の差を、前記低下として検出するためのネットワーク通信検証ツールをさらに備える、請求項１０に記載の装置。
【請求項１６】
有形的マシン可読媒体であって、実行される場合に、
マシンに少なくとも、
プロセス制御システムのファイルシステム上のファイルを識別することと、
前記ファイルシステム上に存在するはずのファイルを識別するシステムプロファイル内で、前記ファイルが識別されるか否かを判断することと、
前記ファイルが前記システムプロファイル内で識別されない場合に、前記プロセス制御システムの整合性の低下を識別することと
をさせる命令を格納する、
有形的マシン可読媒体。
【請求項１７】
実行される場合に、前記マシンに少なくとも
前記ファイルが前記システムプロファイル内に含まれる場合に、前記ファイルを前記システムプロファイル内の前記ファイルに関連した値と比較して、前記ファイルが前記値と一致するか否かを判断することと、
前記ファイルが前記システムプロファイル内に含まれる場合、かつ前記ファイルが前記値と一致しない場合に、前記プロセス制御システムの整合性の前記低下を識別することと
をさせる命令をさらに格納する、請求項１６に記載のマシン可読媒体。
【請求項１８】
実行される場合に、前記マシンに少なくとも
前記ファイルのハッシュ値を計算することと、
前記計算されたハッシュ値を前記値と比較することと
をさせる命令をさらに格納し、
前記システムプロファイル内の前記ファイルに関連した前記値が、以前に計算されたハッシュ値である、
請求項１６に記載のマシン可読媒体。
【請求項１９】
実行される場合に、前記マシンに少なくとも
前記プロセス制御システムによって実行されているプロセスを識別させる命令をさらに格納し、
前記ファイルシステム上で識別された前記ファイルが、前記プロセッサによって実行されている前記プロセスに関連している、
請求項１６に記載のマシン可読媒体。
【請求項２０】
実行される場合に、前記マシンに少なくとも
前記プロセス制御システムのネットワークコミュニケータのネットワーク通信を識別することと、
前記ネットワーク通信のプロパティを前記システムプロファイルの格納されたプロパティと比較することと、
前記ネットワーク通信の前記プロパティが前記システムプロファイルの前記格納されたプロパティに一致しない場合に、前記プロセス制御システムの整合性の前記低下を識別することと
をさせる命令をさらに格納する、請求項１６に記載のマシン可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、プロセス制御システムに関し、より詳細には、プロセス制御システムの整合性低下を識別する方法及び装置に関する。
【背景技術】
【０００２】
セキュリティ違反は、プロセス制御システム（例えば、発電所、石油精製所、化学工場など）などのコンピューティングシステムに対する絶え間ない脅威である。プロセス制御システムのセキュリティ違反は、破滅的は影響を及ぼし得る。かかるセキュリティ違反を防ぐため、プロセス制御システムは、意図的に外部通信から分離される。プロセス制御システムは、通常、システムの日常業務を実行するために必要な全てのコンポーネントを含み、外部システムと通信しない。
【０００３】
しかし、例えば、警告、エラーメッセージ、注意メッセージなど、プロセス制御システムに関連するか、かつ／またはプロセス制御システムによって生成されるいくつかの情報は、プロセス制御システムの外部と共有する必要があり得る。プロセス制御システムの外部と情報を共有するための一般的な技術は、例えば、インターネットなどの、電子通信システムを伴う。しかし、かかる電子通信システムを経由した通信は、プロセス制御システム内のセキュリティの脆弱性を引き起こし得る。
【発明の概要】
【課題を解決するための手段】
【０００４】
プロセス制御システムの整合性の低下を識別する方法例は、プロセス制御システムのファイルシステム上のファイルを識別することを含む。次いで、そのファイルがシステムプロファイル内で識別されるか否かが判断される。システムプロファイルは、ファイルシステム上に存在するはずのファイルを識別する。ファイルがシステムプロファイル内で識別されない場合に、プロセス制御システムの整合性の低下が識別される。
【０００５】
プロセス制御システムの整合性の低下を識別するための装置例は、プロセス制御ノードのファイルシステム上に格納されているファイルのプロパティと第１の格納された値との間の差を整合性の低下として識別するためのファイルシステム検証ツール（ｆｉｌｅ  ｓｙｓｔｅｍ  ｖｅｒｉｆｉｅｒ）を含む。システム例は、プロセス制御ノードによって実行されるアクティブプロセスのプロパティと第２の格納された値との間の差を整合性の低下として識別するためのアクティブプロセス検証ツールをさらに含む。
【図面の簡単な説明】
【０００６】
【図１】プロセス制御ノードを含むプロセス制御システム例のブロック図である。
【図２】整合性ガード（ｉｎｔｅｇｒｉｔｙ  ｇｕａｒｄ）を含む、図１のプロセス制御ノードの実施例のブロック図である。
【図３】図１および図２のプロセス制御ノード例の整合性ガードの実施例のブロック図である。
【図４】図１のプロセス制御システムの整合性における変化を検出するために実行され得る方法例を表す流れ図である。
【図５】ファイルシステムの整合性検証を実行し得る方法例を表す流れ図である。
【図６】ネットワークトラフィックの整合性検証を実行し得る方法例を表す流れ図である。
【図７】アクティブプロセスの整合性検証を実行し得る方法例を表す流れ図である。
【図８】図１および／もしくは図２のプロセス制御ノード例、ならびに／または図２および／もしくは図３の整合性ガード例を実施するために、図４〜図７の方法例を実行可能なプロセッサプラットフォーム例のブロック図である。
【発明を実施するための形態】
【０００７】
プロセス制御システムのセキュリティ違反は、プロセス制御システムの顧客（例えば、プロセス制御システムのオペレータ）に向けて、および／または製作者（例えば、プロセス制御システムの提供者）に向けて、悪意のある変更をプロセス制御システムに対して可能にし得る。顧客に影響を及ぼす変更には、プロセス制御システムを支配すること、機密情報および／またはプロセス制御システムの設定にアクセスすること、プロセス制御システムを無効にすることなどを含み得る。プロセス制御システムの製作者に影響を及ぼす変更には、そうでなければ顧客がそれに対して支払う必要があり得る機能にアクセスすることなどを含み得る。
【０００８】
セキュリティ違反に対処するため、本明細書に記載する方法および装置例は、プロセス制御システム内にある１つまたは複数のプロセス制御ノード内の整合性ガードを含む。整合性ガード例は、プロセス制御ノードの整合性、およびそれによって、プロセス制御システムの整合性を監視および検証する。プロセス制御ノードの整合性は、いくつかの方法で監視される。例えば、整合性ガードは、プロセス制御ノードのファイルシステムを監視および検証し、整合性ガードは、プロセス制御ノードのネットワーク通信を監視および検証し、かつ／または整合性ガードは、プロセス制御ノードのアクティブプロセスを監視および検証する。
【０００９】
消費者システム（例えば、パーソナルコンピュータ）では、システム問題を検出するためにアンチウイルスシステムが使用される。アンチウイルスシステムは、例えば、既知の悪意のあるアプリケーションのシグネチャ（ｓｉｇｎａｔｕｒｅ）および／または定義など、既知の問題の定義を使用する。アンチウイルスシステムは、次いで、システム上のアプリケーションおよび／またはファイルを定義と肯定的に照合することにより、問題を識別する。すなわち、定義と一致するものは何でも問題と見なされる。対照的に、以下で説明する例の整合性ガードは、ファイルシステムの不規則性、ネットワーク通信の不規則性、および／またはアクティブプロセスの不規則性を否定的に識別することにより、プロセス制御ノードおよび／またはプロセス制御システムの整合性における低下を識別する。すなわち、定義と一致しないものは不規則性及び又問題と考えられる。
【００１０】
本明細書に記載する例では、シグネチャは、整合性ガードが、ファイル、アプリケーション、プロセスなどを識別できるようする、ファイル、アプリケーション、プロセスなどの１つまたは複数の識別特徴（例えば、サイズ、更新日、その内容など）を含む。
【００１１】
プロセス制御システムの整合性の低下を検出すると、整合性ガードは、プロセス制御システムの管理者および／またはプロセス制御システムのプロバイダに警告を送信し得る。本明細書で説明するように、管理者は、プロセス制御システムに関連するか、かつ／または別なふうに関係する人および／もしくはグループであり得る。例えば、プロセス制御システムの管理者は、そのプロセス制御システムに関連した情報を受信すべきオペレータ、インストーラ、マネージャ、ユーザー、所有者、または任意の他の人および／もしくはグループであり得る。かかる警告は、プロセス制御システムの管理者が予防措置を講じることを可能にし得る。警告は、プロセス制御システムのプロバイダが、顧客が、例えば、有料の機能にアクセスするために、プロセス制御システムをいつ変更しようとしたかを識別できるようにし得る。警告の送信の追加および／または代替として、整合性ガードは、管理者に警告を表示すること、違法なプロセスを終了すること、システムまたはサービスをシャットダウンすること、セキュリティ検証等を実行することなどを行い得る。
【００１２】
図１は、１つまたは複数のプロセス制御ノード１１５を含む、プロセス制御システム例１１０のブロック図１００である。いくつかの例では、プロセス制御システム１１０は、発電所、石油精製所、化学工場などで稼働する。
【００１３】
図１のプロセス制御システム１１０のようなプロセス制御システム例は、通常、アナログバス、デジタルバスまたはアナログ／デジタル結合バスを経由して、プロセス制御ノード１１５に通信的に結合されたフィールド装置を有する、１つまたは複数のプロセス制御ノード１１５を含む。フィールド装置は、例えば、バルブ、バルブポジショナ、スイッチおよび送信機（例えば、温度センサー、圧力センサーおよび流量センサー）であり得、バルブの開閉およびプロセス制御パラメータの測定など、プロセス制御システム１１０内のプロセス制御機能を実行する。プロセス制御ノード１１５は、フィールド装置によって行われたプロセス測定値を示す信号を受信し、制御ルーチンを実装するためにこの情報を処理し、プロセスの動作を制御するためにプロセス制御システム１１０内で送信される制御信号を生成する。このように、プロセス制御ノード１１５は、フィールド装置を通信的に結合するバスおよび／または他の通信リンクを経由してフィールド装置を使用して、制御方式を実行および調整し得る。いくつかの例では、プロセス制御ノード１１５は、例えば、警告および／または注意を提供するため、プロセス制御システム１１０内で使用されるパラメータを取得するため、など、プロセス制御システム１１０の外部の資源と通信する。
【００１４】
図示した例のプロセス制御システム１１０は、プロセス制御システムプロバイダ１２０によってプロセス制御システム１１０のオペレータに提供される。プロセス制御システムプロバイダ１２０は、例えば、警告を受信するため、プロセス制御システム１１０に更新情報を提供するため、適切な使用許可を確実にするためなど、プロセス制御システム１１０と通信する。図示した例では、プロセス制御システムプロバイダ１２０は、インターネット１２５を経由して、プロセス制御システム１１０と通信する。しかし、例えば、仮想プライベートネットワーク（ＶＰＮ）、ダイヤルアップ接続など、任意の他のタイプの通信媒体が、追加または代替として使用され得る。
【００１５】
図示した例では、プロセス制御システム１１０は、プロセス制御システム管理者１３０によって管理される。本明細書で説明するように、プロセス制御システム管理者１３０は、プロセス制御システム１１０に関連するか、かつ／または別なふうに関係する任意の人および／もしくはグループであり得る。例えば、プロセス制御システム管理者１３０は、プロセス制御システム１１０に関連した情報を受信すべきオペレータ、インストーラ、マネージャ、ユーザー、所有者、または任意の他の人および／もしくはグループであり得る。図示した例のプロセス制御システム管理者１３０は、プロセス制御システム１１０を運用および／または保守する。いくつかの例では、プロセス制御システム管理者１３０は、プロセス制御システム１１０を配備および／または構成する。プロセス制御システム管理者１３０は、プロセス制御システム１１０の構成に関与するので、プロセス制御システム管理者１３０は、そうでなければそれに対して支払われる機能性を不注意にまたは別なふうに起動および／またはインストールし得る。いくつかの例では、プロセス制御システム１１０は、購入されていない機能および／または機能性が動作中である場合、プロセス制御システム管理者１３０に警告する。反対に、プロセス制御システム１１０は、購入されている機能および／または機能性がインストールされていないか、構成されていないか、かつ／または適切に動作していない場合、プロセス制御システム管理者１３０に警告し得る。
【００１６】
図２は、図１のプロセス制御ノード１１５の実施例のブロック図である。ノード例１１５は、プロセス制御コンポーネント２１０、ファイルシステム２２０、ネットワークコミュニケータ２３０、プロセッサ２４０．および整合性ガード２５０を含む。
【００１７】
図２の図示した例のプロセス制御コンポーネント例２１０は、例えば、バルブ、ポンプ、ファン、加熱器、冷却器、および／または他の装置を介してプロセスを制御するために、入力を受信可能な入力装置を含む。プロセス制御ノード例２１０は、例えば、温度計、圧力計、流量計、および／または他の装置などの、出力を生成可能な出力装置も含む。いくつかの例では、プロセス制御コンポーネント２１０は、コントローラ（例えば、Ｄｅｌｔａ（登録商標）コントローラ）と通信的に結合され、それは、出力装置によって出力された情報を収集し、プロセスを変更するために、命令を入力装置に送信する。プロセス制御コンポーネント２１０によって使用される情報には、例えば、プロセス情報、環境情報、およびプロセス変数（例えば、反応炉入り口圧力などの測定されたプロセス変数）の値を含む。
【００１８】
図２の図示例のファイルシステム例２２０は、プロセス制御コンポーネント２１０および／または、より一般的には、プロセス制御ノード１１５を操作するための情報を格納する。図示した例では、ファイルシステム２２０は、ハードディスクトライブで実施される。しかし、ファイルシステム２２０は、例えば、フラッシュメモリ、磁気媒体など、データを格納するための任意の装置であり得る。さらに、ファイルシステム２２０に格納されるデータは、例えば、ニューテクノロジファイルシステム（ＮＴＦＳ）、ファイルアロケーションテーブル（ＦＡＴ）など、任意のデータフォーマットであり得る。
【００１９】
図２の図示例のネットワークコミュニケータ例２３０は、イーサネット（登録商標）インタフェースである。図示した例では、ネットワークコミュニケータ２３０は、ネットワーク通信（例えば、ＨＴＴＰ要求など）を、プロセス制御システム１１０内の他のプロセス制御ノード１１５および／またはプロセス制御システム１１０の外部の他の装置（例えば、インターネット１２５上の装置など）から受信するか、かつ／またはネットワーク通信をそれらに送信する。図示した例では、ネットワークコミュニケータ２３０はイーサネット（登録商標）インタフェースであるが、任意の他のタイプのインタフェースが追加または代替として使用され得る。例えば、ネットワークコミュニケータ２３０は、ブルートゥースインタフェース、ＷｉＦｉインタフェース、デジタル加入者回線（ＤＳＬ）インタフェース、Ｔ１インタフェースなどのうちの１つまたは複数を含み得る。図示した例では、単一のネットワークコミュニケータ２３０が示されているが、任意の数および／またはタイプのネットワークコミュニケータが追加または代替として使用され得る。例えば、２つのネットワークコミュニケータ（例えば、イーサネット（登録商標）インタフェース）が使用され得る。
【００２０】
図２の図示例のプロセッサ例２４０は、プロセス制御ノード１１５を操作するために情報を処理する。図２のプロセッサ例２４０は、命令を実行するプロセッサによって実施されるが、代替として、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の回路機構によって実施され得る。図示した例は、プロセッサ２４０は、ファイルシステム２２０に格納されたマシン可読命令に基づいて、情報を処理する。しかし、命令は、例えば、メモリ、インターネット資源など、任意の他の場所に格納され得る。プロセス制御ノード１１５の整合性の低下（例えば、セキュリティ違反など）の場合には、命令が変更されている可能性があり、プロセッサ２４０がその命令を実行する際に、プロセス制御ノード１１５が意図した通りに機能しない可能性がある。
【００２１】
図２の図示例の整合性ガード例２５０はプロセス制御ノード１１５の整合性、およびそれによって、プロセス制御システム１１０の整合性を監視および検証する。プロセス制御ノード１１５の整合性は、例えば、プロセス制御ノード１１５のファイルシステム２２０の監視および検証、プロセス制御ノード１１５のネットワークコミュニケータ２３０との間のネットワーク通信の監視および検証、ならびに／またはプロセス制御ノード１１５のプロセッサ２４０によって実行されているアクティブプロセスの監視および検証を含む、いくつかの方法で監視される。
【００２２】
図３は、図１および図２のプロセス制御ノード例１１５の整合性ガード２５０の実施例のブロック図である。整合性ガード例２５０は、ファイルシステム検証ツール３１０、ネットワーク通信検証ツール３２０、アクティブプロセス検証ツール３３０、プロファイルストア（ｐｒｏｆｉｌｅ  ｓｔｏｒｅ）３４０、および警告装置（ａｌｅｒｔｅｒ）３５０を含む。プロファイルストア例３４０は、ファイルシステムプロファイル３１１、ネットワーク通信プロファイル３２１、およびアクティブプロセスプロファイル３３１を含む。図示した例では、ファイルシステムプロファイル３１１、ネットワーク通信プロファイル３２１、およびアクティブプロセスプロファイル３３１は、別個のプロファイルとして示されているが、ファイルシステムプロファイル３１１、ネットワーク通信プロファイル３２１、およびアクティブプロセスプロファイル３３１は、単一のプロファイル（例えば、システムプロファイル）に結合および／または配置され得る。
【００２３】
ファイルシステム検証ツール例３１０は、命令を実行するプロセッサによって実施されるが、代替として、ＡＳＩＣ、ＤＳＰ、ＦＰＧＡ、または他の回路機構によって実施され得る。図示した例では、ファイルシステム検証ツール３１０は、ファイルシステム２２０の整合性を監視および／または検証する。図示した例では、ファイルシステム検証ツール３１０は、ファイルシステム２２０上のファイルをプロファイルストア３４０内に格納されたシステムプロファイル３１１と照合することにより、ファイルシステム２２０の整合性を検証する。いくつかの例では、ファイルシステム検証ツール３１０は、ファイルシステム２２０上のファイルのハッシュ値を計算し、計算されたハッシュ値が、ファイルシステムプロファイル３１１に格納されているファイルの以前に計算されたハッシュ値と一致するか否かを判断する。図示した例では、ハッシュ値は、ハッシング法（例えば、セキュアハッシュアルゴリズム１（ＳＨＡ−１）、メッセージダイジェスト５（ＭＤ５）など）を用いて計算される。計算されたハッシュ値が以前に計算されたハッシュ値と一致すれば、そのファイルは変更されていない。しかし、計算されたハッシュ値が以前に計算されたハッシュ値と一致しなければ、そのファイルは変更されている。プロセス制御システムの特定のファイルに対する変更は、プロセス制御ノード１１５の整合性の低下を示し得る。
【００２４】
いくつかの例では、ファイルシステムプロファイル３１１は、あるファイルおよび／またはファイルのディレクトリに対する例外を含む。例えば、ファイルシステムプロファイル３１１は、ログアクティビティがプロセス制御ノード１１５の整合性における低下として識別されないように、ログファイルおよび／またはログファイルディレクトリ（例えば、１つまたは複数のログファイルが格納され得る場所）に対する例外を含み得る。ファイルシステム検証ツール３１０が、プロセス制御ノード１１５のファイルシステム２２０の整合性における低下を識別すると、ファイルシステム検証ツール３１０は、警告装置３５０を介して、プロセス制御システム管理者１３０および／またはプロセス制御システムプロバイダ１２０に警告する。いくつかの例では、ファイルシステム検証ツール３１０は、プロセス制御ノード１１５の整合性の低下という結果となっているファイルを除去（例えば、削除、隔離など）するための措置を講じる。
【００２５】
図示した例のファイルシステム検証ツール３１０は、既知のシステムのプロファイルと一致しない項目（例えば、ファイル、ファイルのディレクトリなど）を識別することにより、プロセス制御ノード１１５の整合性における低下を識別する。逆に、既知のアンチウイルスシステムは、既知の問題の定義と照合することにより、悪意のあるファイルを識別する。例えば、アンチウイルスシステムは、特定のウイルスに関連したファイルが存在するか否かを識別するためにファイルシステムをスキャンし得るが、他方、ファイルシステム検証ツール例３１０は、ファイルシステムプロファイル内に含まれていない任意のファイルが存在する場合を識別する。
【００２６】
ネットワーク通信検証ツール例３２０は、命令を実行するプロセッサによって実施されるが、代替として、ＡＳＩＣ、ＤＳＰ、ＦＰＧＡ、または他の回路機構によって実施され得る。図示した例では、ネットワーク通信検証ツール３２０は、ネットワーク通信のプロパティを識別することにより、ネットワークコミュニケータ２３０との間のネットワーク通信を監視および／または検証する。図示した例では、有効な通信の１つまたは複数のプロパティが、ネットワーク通信プロファイル３２１に格納される。図示した例のネットワーク通信プロファイル３２１は、プロファイルストア３４０に格納される。
【００２７】
図示した例では、ネットワーク通信プロファイル３２１は、プロセス制御ノード１１５によって標準的に使用されるポート番号を識別するプロパティを含む。プロセス制御ノード１１５によって標準的に使用されないポートを使用しようとする試みが検出されると、ネットワーク通信検証ツール例３２０は、この試みをプロセス制御ノード１１５の整合性の低下として識別する。追加または代替として、ネットワーク通信プロファイル３２１は、シグネチャの一部として他のパラメータを含み得る。例えば、シグネチャは、プロセス制御ノード１１５によって使用される宛先アドレス（例えば、インターネットプロトコル（ＩＰ）アドレス、ドメイン名、電子メールアドレスなど）、プロセス制御ノード１１５によって使用されるメッセージフォーマットなどを含み得る。
【００２８】
いくつかの例では、ネットワーク通信検証ツール３２０は、ネットワーク通信プロファイル３２１に含まれていない宛先に向けられたネットワーク通信が送信されると、ネットワーク通信が整合性の低下を示しているか否かを判断する。いくつかの例では、ネットワーク通信検証ツール３２０は、ネットワーク通信を送信するプロセス制御ノード１１５のプロセスについて問い合わせを行うために、チャレンジレスポンス機構を使用する。
【００２９】
ネットワーク通信検証ツール３２０が、プロセス制御ノード１１５の整合性の低下を検出すると、ネットワーク通信検証ツール３２０は、警告装置３５０を介して、プロセス制御システム管理者１３０および／またはプロセス制御システムプロバイダ１２０に警告する。いくつかの例では、ネットワーク通信検証ツール３２０は、ネットワーク通信を遮断する、ネットワーク通信のログを取る、などを行う。
【００３０】
アクティブプロセス検証ツール例３３０は、命令を実行するプロセッサによって実施されるが、代替として、ＡＳＩＣ、ＤＳＰ、ＦＰＧＡ、または他の回路機構によって実施され得る。図示した例では、アクティブプロセス検証ツール３３０は、プロセッサ２４０によって実行されているアクティブプロセスを監視および／または検証する。図示した例では、プロセスは、アクティブプロセスプロファイル３３１に基づいて監視および／または検証される。しかし、プロセスを識別する任意の他の方法が追加または代替として使用され得る。
【００３１】
図示した例では、アクティブプロセスプロファイル３３１は、プロセス制御ノード１１５によって標準的に使用されるプロセスを識別するシグネチャ（例えば、プロセス名、プロセスによって使用されるＤｙｎａｍｉｃａｌｌｙ  Ｌｉｎｋｅｄ  Ｌｉｂｒａｒｉｅｓ（ＤＬＬ）など）を含む。図示した例では、アクティブプロセス検証ツール３３０がプロセス制御ノード１１５のオペレーティングシステムとやりとりする際に、アクティブプロセスが識別される。いくつかの例では、アクティブプロセスは、ロードされた１つまたは複数のＤＬＬを有するとして識別される。アクティブプロセス検証ツール３３０は、プロセス制御ノード１１５のオペレーティングシステムによって識別される各プロセスを、アクティブプロセスプロファイル３３１と対照して検証する。プロセスは、例えば、それらがファイルシステム２２０上の特定の位置からロードされているか、特定のＤＬＬがプロセスによってロードされているか、ファイル（例えば、実行可能ファイル、ＤＬＬ、構成ファイル）が、アクティブプロセスプロファイル３３１に格納されているハッシュ値に一致する計算されたハッシュ値を有するか、などを判断するためにチェックされる。プロセスが、既知のプロセスのシグネチャに一致しないことが分かると、アクティブプロセス検証ツール３３０は、例えば、プロセスを終了すること、プロセス制御ノード１１５をシャットダウンすること、プロセスの終了をログに取ること、警告装置３５０を介して、プロセス制御システム管理者１３０および／またはプロセス制御システムプロバイダ１２０に警告することなどの動作を実行する。
【００３２】
図示例のプロファイルストア３４０は、ファイルシステムの検証された構成、検証されたネットワーク通信、検証されたアクティブプロセス、および／または以前の検証の結果を格納する。プロファイルストア３４０は、例えば、フラッシュメモリ、磁気媒体、光媒体など、データを格納するための任意の装置であり得る。さらに、プロファイルストア３４０に格納されたデータは、例えば、バイナリデータ、カンマ区切りデータ、タブ区切りデータ、構造化照会言語（ＳＱＬ）構造などの、任意のデータフォーマットであり得る。図示した例では、プロファイルストア３４０は、単一のデータベースとして示されているが、プロファイルストア３４０は、任意の数および／またはタイプのデータベースによって実施され得る。
【００３３】
いくつかのプロセス制御システムでは、所与のプロファイル（例えば、ファイルシステムプロファイル３１１、ネットワーク通信プロファイル３２１、アクティブプロセスプロファイル３３１など）が存在しない可能性がある。従って、それらのシステムでは、プロファイルは、作成されるか、かつ／または初期化される必要がある。プロファイルを初期化するために、整合性ガードは、プロセス制御ノード１１５のファイルシステム上のファイルを識別し、それらに対するハッシュ値を計算する。もちろん、プロファイルを初期化する他の方法、例えば、プロセス制御ノード１１５によって実行されているアクティブプロセスを識別すること、プロセス制御ノード１１５のネットワーク通信を監視することなどが、追加または代替として使用され得る。図示した例では、かかるプロファイルの初期化は、プロセス制御ノード１１５のインストール時に行われる。従って、プロファイルは、プロファイルの初期化時における、プロセス制御ノード１１５のスナップショットを表す。しかし、いくつかの例では、プロファイルの初期化は、例えば、構成変更後、サードパーティアプリケーションのインストール後など、後で起こる。初期化されたプロファイルは、次いで、整合性ガード２５０によって将来使用するために、プロファイルストア３４０に格納される。
【００３４】
いくつかの例では、プロファイルストア３４０および／またはそこに格納されているプロファイルは、リモートプロファイル（例えば、リモートプロファイルサーバーに格納されているプロファイル）と同期化される。図示した例では、リモートプロファイルサーバー（図示せず）は、プロセス制御システム１１０内のサーバーである。しかし、いくつかの例では、リモートプロファイルサーバーは、プロセス制御システムプロバイダ１２０によって（例えば、インターネット１２５を経由して）ホストされる。例えば、あらゆるプロセス制御ノード上でプロファイルを初期化することは実行可能でないことがある。いくつかの例では、プロファイル（例えば、ファイルシステムプロファイル３１１、ネットワーク通信プロファイル３２１、アクティブプロセスプロファイル３３１など）が、別のプロセス制御ノード１１５から取得される。従って、プロセス制御システム管理者１３０および／またはプロセス制御システムプロバイダ１２０は、更新されたプロファイルを作成し、そのプロファイルを複数のプロセス制御ノード上で使用し得る。いくつかの例では、プロファイルは、自動的に更新され、プロセス制御ノードを更新するために、適切なノード（例えば、同様の機能性を実行するプロセス制御ノード）にプッシュ型配信される。
【００３５】
いくつかの例では、サードパーティアプリケーションをプロセス制御ノード１１５上にインストールする必要があり得るが、インストール時に、プロファイルに対して適切な変更が行われていない可能性がある。その結果、アプリケーションに関連したファイル、ネットワーク通信、および／またはプロセスが、整合性の低下として認識される可能性があるだろう。いくつかの例では、安全な（ｂｅｎｉｇｎ）サードパーティアプリケーションに対するログエントリの監査を可能にするために、新しくインストールされたアプリケーションに関連した識別子が、整合性の低下に対応するログエントリに追加される。図示した例では、ログは、テキストベースのファイルとして、プロセス制御ノード１１５上にローカルに格納される。しかし、例えば、バイナリファイル、データベース、ロギングシステム（例えば、Ｗｉｎｄｏｗｓ（登録商標）  Ｅｖｅｎｔ  Ｌｏｇなど）など、かかる情報を格納する任意の他の方法が、追加または代替として使用され得る。さらに、ログエントリは、それらが、例えば、ｓｙｓｌｏｇシステム、簡易ネットワーク管理プロトコル（ＳＮＭＰ）などの、リモートロギングプロトコルおよび／またはシステムを介して生じると、システムに送信され得る。かかるログは、プロセス制御システムプロバイダ１２０に送信され得、それらは、次いで、サードパーティアプリケーションが、それが整合性の低下であるかどうかに関して適切に識別されるように、プロファイルを更新し得る。
【００３６】
警告装置例３５０は、命令を実行するプロセッサによって実施されるが、代替として、ＡＳＩＣ、ＤＳＰ、ＦＰＧＡ、または他の回路機構によって実施され得る。図示した例では、警告装置３５０は、プロセス制御ノード１１５および、より一般的には、プロセス制御システム１１０の整合性の低下を、プロセス制御システム管理者１３０および／またはプロセス制御システムプロバイダ１２０に警告する。図示した例では、警告装置例３５０は、警告メッセージを表示すること（例えば、コンピュータディスプレイ上にダイアログボックスを表示すること）により、プロセス制御システム管理者１３０および／またはプロセス制御システムプロバイダ１２０に警告する。追加または代替として、警告装置３５０は、例えば、電子メール（ｅメール）メッセージ、ショートメッセージサービス（ＳＭＳ）メッセージ、システムアラームなど、任意の他の方法で、プロセス制御システム管理者１３０および／またはプロセス制御システムプロバイダ１２０に警告し得る。
【００３７】
図２の整合性ガード２５０の実施方法例が図３に示されているが、図３に示す１つまたは複数の要素、プロセス、および／または装置は、任意の他の方法で、結合、分割、再配置、省略、除去、および／または実施され得る。さらに、ファイルシステム検証ツール例３１０、ネットワーク通信検証ツール例３２０、アクティブプロセス検証ツール例、プロファイルストア例３４０、警告装置例３５０、および／またはより一般的に、図３の整合性ガード例２５０は、ハードウェア、ソフトウェア、ファームウェア、ならびに／またはハードウェア、ソフトウェア、および／もしくはファームウェアの任意の組合せによって実施され得る。従って、例えば、ファイルシステム検証ツール例３１０、ネットワーク通信検証ツール例３２０、アクティブプロセス検証ツール例、プロファイルストア例３４０、警告装置例３５０、および／またはより一般的に、図３の整合性ガード例２５０のいずれも、１つまたは複数の回路、プログラマブルプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能論理回路（ＰＬＤ）および／またはフィールドプログラム可能論理回路（ＦＰＬＤ）などによって実施され得る。本特許の装置クレームまたはシステムクレームのいずれかが、純粋にソフトウェアおよび／またはファームウェア実施をカバーすると解釈される場合、ファイルシステム検証ツール例３１０、ネットワーク通信検証ツール例３２０、アクティブプロセス検証ツール例、プロファイルストア例３４０、および／または警告装置例３５０の少なくとも１つは、本明細書により、ソフトウェアおよび／またはファームウェアを格納するメモリ、ＤＶＤ、ＣＤ、ブルーレイなどの、有形的コンピュータ可読媒体を含むように明示的に定義される。さらになお、図２および／もしくは図３の整合性ガード例２５０は、１つもしくは複数の要素、プロセスおよび／もしくは装置を、図３に示すものに加えて、または図３に示すものの代わりに含み得、かつ／または図示した要素、プロセスおよび装置の一部もしくは全部のうちの２つ以上を含み得る。
【００３８】
図２および／または図３の整合性ガード２５０を実施するための方法またはプロセス例を表す流れ図を図４〜図７に示す。これらの例では、プロセスは、図８に関連して以下で説明するプロセッサプラットフォーム８００に示すプロセッサ８１２などのプロセッサによって実行するためのプログラムを含み得る。プログラムは、ＣＤ−ＲＯＭ、フロッピィディスク、ハードドライブ、デジタル多用途ディスク（ＤＶＤ）、ブルーレイディスク、またはプロセッサ８１２に関連したメモリなどの有形的コンピュータ可読媒体上に格納されたソフトウェアで実施され得るが、プログラム全体および／またはその部分は、プロセッサ８１２以外の装置によって代わりに実行され得るか、かつ／またはファームウェアもしくは専用ハードウェアで実施され得る。さらに、プログラム例は、図４〜図７に示す流れ図に関連して説明されるが、整合性ガード例２５０を実施する他の多くの方法が、代わりに使用され得る。例えば、ブロックの実行順序が変更され得るか、かつ／または説明されるブロックのいくつかが、変更、除外、もしくは結合され得る。
【００３９】
前述したように、図４〜図７のプロセス例は、ハードディスクドライブ、フラッシュメモリ、読取り専用メモリ（ＲＯＭ）、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）および／または任意の期間（例えば、長期間、永久的、短期間、情報の一時的なバッファリング、および／またはキャッシングのため）情報が格納される任意の他の記憶媒体などの、有形的コンピュータ可読媒体上に格納されたコード化命令（例えば、コンピュータ可読命令）を使用して実施され得る。本明細書では、有形的コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読ストレージを含み、かつ伝搬信号を除外するように明示的に定義される。
【００４０】
追加または代替として、図４〜図７のプロセス例は、ハードディスクドライブ、フラッシュメモリ、読取り専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリおよび／または任意の期間（例えば、長期間、永久的、短期間、情報の一時的なバッファリング、および／またはキャッシングのため）情報が格納される任意の他の記憶媒体などの、持続的コンピュータ可読媒体上に格納されたコード化命令（例えば、コンピュータ可読命令）を使用して実施され得る。本明細書では、持続的コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読媒体を含み、かつ伝搬信号を除外するように明示的に定義される。本明細書では、「少なくとも（ａｔ  ｌｅａｓｔ）」という句は、クレームの従来技術部分において遷移用語（ｔｒａｎｓｉｔｉｏｎ  ｔｅｒｍ）として使用される場合、用語「含む（ｃｏｍｐｒｉｓｉｎｇ）」が無制限であるのと同様に、無制限である。従って、「少なくとも」をその従来技術部分において遷移用語として使用するクレームは、クレーム内で明示的に詳述されるものに加えて、要素を含み得る。
【００４１】
図４は、図１のプロセス制御システム１１０の整合性における変化を検出するために実行され得る方法例を表す流れ図４００である。図４のブロック４１０、４２０、および４３０は、サブプロセスを表し、プロセス制御システム１１０の整合性における変化を検出するために並行して実行される。
【００４２】
ブロック４１０では、整合性ガード２５０のファイルシステム検証ツール例３１０は、プロセス制御ノード１１５のファイルシステム２２０を監視および／または検証する。ファイルシステム検証ツール３１０の動作は、図５に関連してさらに説明される。ブロック４２０では、整合性ガード２５０のネットワーク通信検証ツール例３２０は、プロセス制御ノード１１５のネットワークコミュニケータ２３０のネットワーク通信を監視および／または検証する。ネットワーク通信検証ツール３２０の動作は、図６に関連してさらに説明される。ブロック４３０では、整合性ガード２５０のアクティブプロセス検証ツール例３３０は、プロセス制御ノード１１５のプロセッサ２４０によって実行されるアクティブプロセスを監視および／または検証する。アクティブプロセス検証ツール３３０の動作は、図７に関連してさらに説明される。
【００４３】
前述したように、ブロック４１０、４２０、および４３０は、サブプロセスを表し、互いに並行して実行される。図示した例では、ブロック４１０、４２０、および４３０は、連続的に実行される。しかし、これらのサブプロセスを実行する任意の他の方法が、追加または代替として使用され得る。例えば、ブロック４１０、４２０、および４３０は、利用されるシステム資源の量を削減するために定期的に実行され得る（例えば、監視および／または検証プロセスが、５分ごと、１時間に一度、一日に一度など、実行される）。追加または代替として、これらのサブプロセスが、連続的実行および定期的実行の組合せを使用して、実行され得る。例えば、ファイルシステム検証ツール３１０は、ファイルシステム２２０を１時間に一度、監視し得（ブロック４１０）、ネットワーク通信検証ツール３２０は、ネットワークコミュニケータ２３０のネットワーク通信を連続的に監視し得（ブロック４２０）、また、アクティブプロセス検証ツール３３０は、プロセッサ２４０によって実行されるアクティブプロセスを５分ごとに監視および／または検証し得る（ブロック４３０）。しかし、定期的実行および／または連続的実行の任意の他の組合せが、追加または代替として使用され得る。
【００４４】
図示した例では、通知が警告装置３５０に伝送される。通知は、プロセスの監視および／または検証プロセスの状態に関して、警告装置３５０に通知し得る。通知は、整合性の低下の検出を識別するために使用され得る。通知は、例えば、ネットワーク通信、プロセス間通信、通知のファイルへの書込み、プロセスの終了（例えば、ブロック４１０、４２０、および／または４３０）など、任意の方法で送信され得る。通知を受信すると、警告装置３５０は、整合性の低下が検出されているか否かを判断する（ブロック４４０）。整合性の低下がなければ、制御は終了へ進む。前述したように、図４で説明するプロセスは、定期的に繰り返され得るか、かつ／または連続的に実行され得る。
【００４５】
整合性の低下がある場合、制御は、警告装置３５０がプロセス制御システム管理者１３０に整合性の低下を警告するブロック４５０に進む。図示した例では、警告装置３５０は、警告メッセージを表示する（例えば、コンピュータディスプレイ上にダイアログボックスを表示する）ことにより、プロセス制御システム管理者１３０に警告する（ブロック４５０）。図示した例では、警告装置３５０は、警告メッセージを表示する（例えば、コンピュータディスプレイ上にダイアログボックスを表示する）ことにより、プロセス制御システムプロバイダ１２０に警告する（ブロック４６０）。しかし、プロセス制御システム管理者１３０および／またはプロセス制御システムプロバイダ１２０に警告する任意の他の方法が、追加または代替として使用され得る。例えば、警告装置３５０は、例えば、電子メール（ｅメール）メッセージの送信、ショートメッセージサービス（ＳＭＳ）メッセージの送信、システムアラームのトリガー、プロセス制御システム１１０の無効化などにより、プロセス制御システム管理者１３０および／またはプロセス制御システムプロバイダ１２０に警告し得る。
【００４６】
図５は、ファイルシステムの整合性検証を実行し得る方法例を表す流れ図５００である。
【００４７】
図５の方法例は、図４のブロック４１０で説明するサブプロセスを表す。ファイルシステム検証ツール３１０がファイルシステムプロファイル３１１をプロファイルストア２４０からロードすると、実行を開始する（ブロック５１０）。ファイルシステム検証ツール３１０は、ファイルシステム２２０上に格納されている個々のファイルを識別する（ブロック５２０）。ファイルは、例えば、プロセス制御ノード１１５のオペレーティングシステムとやりとりすることにより、識別され得る。
【００４８】
ファイルシステム検証ツール３１０は、識別されたファイルが、ファイルシステムプロファイル３３１内で例外として識別されるか否かを判断する（ブロック５３０）。例えば、ファイルが特定のディレクトリ内にある、ファイルが特定のサイズである、ファイルが特定のファイル拡張子（例えば、画像（．ｊｐｇ）、テキスト文書（．ｔｘｔ）など）を有する場合、そのファイルは例外であり得る。ファイルがファイルシステムプロファイル３３１内で例外として識別される場合、制御は、さらなるファイルが存在するか否かが判断されるブロック５８０に進む（ブロック５８０）。ブロック５３０で、ファイルが例外として識別されなければ、制御はブロック５４０に進む。ファイルシステム検証ツール３１０は、次いで、そのファイルがプロファイル３３１内に含まれているか否かを判断する（ブロック５４０）。ファイルがプロファイル３３１内に含まれていなければ、ファイルシステム検証ツール３１０は、整合性低下の検出のログを取る（ブロック５７０）。プロファイルに含まれておらず、かつ、例外に含まれていないファイルの検出は、新しいファイルがファイルシステム上に存在する場合に、ファイルシステム検証ツール３１０が、整合性の低下を検出できるようにする。
【００４９】
ブロック５４０で、識別されたファイルがプロファイルに含まれる場合、ファイルシステム検証ツール３１０は、識別されたファイルのハッシュ値を決定（例えば、計算）する（ブロック５５０）。ファイルシステム検証ツール３１０は、次いで、識別されたファイルの計算されたハッシュ値が、プロファイル内のファイルに対応する格納されたハッシュ値と一致するか否かを判断する（ブロック５６０）。例えば、ファイルが変更されていれば、計算されたハッシュ値は、格納されたハッシュ値と一致しない可能性がある。ハッシュ値の比較は、ファイルシステム検証ツール３１０が、ファイルが変更されているか否かを検出できるようにする。計算されたハッシュ値が、格納されたハッシュ値と一致しない場合、ファイルシステム検証ツール３１０は、整合性低下の検出のログを取る（ブロック５７０）。図示した例では、ファイルシステム検証ツール３１０は、プロセス制御ノード１１５にローカルなログ内にログエントリを格納することにより、整合性低下の検出のログを取る。しかし、いくつかの例では、ファイルシステム検証ツール３１０は、ログエントリをロギング場所（例えば、プロセス制御システム１１０にローカルなロギングサーバー、例えば、プロセス制御システムプロバイダ、サードパーティなどにおけるプロセス制御システムにリモートなロギングサーバー）に送信することにより、整合性低下の検出のログを取る。いくつかの例では、ログエントリは、例えば、ｓｙｓｌｏｇロギングシステム、簡易ネットワーク管理プロトコル（ＳＮＭＰ）などの、リモートロギングプロトコルおよび／またはシステムを使用して送信される。計算されたハッシュ値が、格納されたハッシュ値と一致する場合、ファイルシステム検証ツール３１０は、検証すべきさらなるファイルがあるか否かの判断へと進む（ブロック５８０）。図示した例では、検証すべきさらなるファイルがなければ、制御は、図５の方法の終了へと進む。警告装置３５０は、次いで、サブプロセスが完了したという通知を受信する。いくつかの例では、図５の動作は、ファイルシステム２２０が再検証されるように、繰り返されるか、かつ／または継続される。
【００５０】
図６は、ネットワークトラフィック通信検証を実行するための方法例を表す流れ図６００である。図６の方法例は、図４のブロック４２０で説明するサブプロセスを表す。
【００５１】
図６の方法例は、ネットワーク通信検証ツール３２０がネットワーク通信プロファイル３２１をプロファイルストア３４０からロードすると、実行を開始する（ブロック６１０）。ネットワーク通信検証ツール３２０は、ネットワークコミュニケータ２３０のネットワーク通信を識別する（ブロック６２０）。ネットワーク通信検証ツール３２０は、次いで、識別されたネットワーク通信がネットワーク通信プロファイル３２１に含まれているか否かを判断する（ブロック６３０）。図示した例では、ネットワーク通信プロファイル３２１は、プロセス制御ノード１１５によって標準的に使用されるポート番号（例えば、伝送制御プロトコル（ＴＣＰ）ポート番号など）を含む。プロセス制御ノード１１５によって標準的に使用されないポートを使用しようとする試みが検出されると、ネットワーク通信検証ツール例３２０はこの試みをプロセス制御ノード１１５の整合性の低下として識別する。プロセス制御ノード１１５の整合性の低下が検出されると、制御は、ネットワーク通信検証ツール３２０が整合性低下の検出のログを取るブロック６４０に進む（ブロック６４０）。図示した例では、ネットワーク通信検証ツール３２０は、プロセス制御ノード１１５にローカルなログ内にログエントリを格納することにより、整合性低下の検出のログを取る。しかし、いくつかの例では、ネットワーク通信検証ツール３２０は、ログエントリをロギング場所（例えば、プロセス制御システム１１０にローカルなロギングサーバー、例えば、プロセス制御システムプロバイダ、サードパーティなどにおけるプロセス制御システムにリモートなロギングサーバー）に送信することにより、整合性低下の検出のログを取る。いくつかの例では、ログエントリは、例えば、ｓｙｓｌｏｇロギングシステム、簡易ネットワーク管理プロトコル（ＳＮＭＰ）などの、リモートロギングプロトコルおよび／またはシステムを使用して送信される。
【００５２】
いくつかの例では、ネットワーク通信検証ツール３２０は、例えば、送信元アドレスおよび／または宛先アドレス（例えば、インターネットプロトコル（ＩＰ）アドレス、ドメイン名、電子メールアドレスなど）、プロセス制御ノード１１５によって使用されるメッセージフォーマット、ネットワーク通信の内容など、他のパラメータに基づいて、ネットワーク通信を検証し得る。ネットワーク通信検証ツール３２０が、プロセス制御ノード１１５によって使用されると期待されるネットワーク通信と一致するネットワーク通信を検出すると、制御は、ネットワーク通信検証ツール３２０が、ネットワークコミュニケータ２３０のネットワーク通信の監視および検証を継続するブロック６２０に進む。前述したように、図６の動作は、定期的および／または連続的に実行され得る。図示した例では、図６の方法は、連続的に実行される。
【００５３】
図７は、アクティブプロセスの整合性検証を実行するための方法例を表す流れ図７００である。図７の方法例は、図４のブロック４３０で説明するサブプロセスを表す。
【００５４】
図７の方法例は、アクティブプロセス検証ツール３３０がアクティブプロセスプロファイル３３１をプロファイルストア２４０からロードすると、実行を開始する（ブロック７１０）。アクティブプロセス検証ツール３３０は、次いで、プロセッサ２４０によって実行されるアクティブプロセスを識別する（ブロック７２０）。アクティブプロセスは、例えば、プロセス制御ノード１１５のオペレーティングシステムとやりとりすることにより識別され得る。アクティブプロセス検証ツール３３０は、次いで、識別されたプロセスが、アクティブプロセスプロファイル３３１内で例外として識別されるか否かを判断する（ブロック７３０）。例えば、プロセスが特定のディレクトリからロードされた場合、プロセスが特定サイズのメモリフットプリントを有する場合など、そのプロセスは例外であり得る。プロセスがアクティブプロセスプロファイル３３１内で例外として識別される場合、制御は、さらなるアクティブプロセスが存在するか否かが判断されるブロック７８０に進む（ブロック７８０）。プロセスが例外として識別されなければ、制御はブロック７４０に進む。アクティブプロセス検証ツール３３０は、次いで、そのプロセスがアクティブプロセスプロファイル３３１内に含まれているか否かを判断する（ブロック７４０）。プロセスがアクティブプロセスプロファイル３３１内に含まれていない場合、アクティブプロセス検証ツール３３０は、整合性低下の検出のログを取る（ブロック７７０）。図示した例では、ファイルシステム検証ツール３１０は、プロセス制御ノード１１５にローカルなログ内にログエントリを格納することにより、整合性低下の検出のログを取る。しかし、いくつかの例では、ファイルシステム検証ツール３１０は、ログエントリをロギング場所（例えば、プロセス制御システム１１０にローカルなロギングサーバー、例えば、プロセス制御システムプロバイダ、サードパーティなどにおけるプロセス制御システムにリモートなロギングサーバー）に送信することにより、整合性低下の検出のログを取る。いくつかの例では、ログエントリは、例えば、ｓｙｓｌｏｇロギングシステム、簡易ネットワーク管理プロトコル（ＳＮＭＰ）などの、リモートロギングプロトコルおよび／またはシステムを使用して送信される。プロファイルに含まれておらず、かつ、例外に含まれていないプロセスの検出は、新しいプロセス（例えば、未知のプロセス、不正（ｒｏｇｕｅ）プロセス、サードパーティプロセスなど）が実行されている場合に、アクティブプロセス検証ツール３３０が、整合性の低下を検出できるようにする。識別されたプロセスがプロファイルに含まれる場合、アクティブプロセス検証ツール３３０は、プロセスに関連するファイル（例えば、実行可能ファイル、ＤＬＬ、構成ファイルなど）のハッシュ値を決定（例えば、計算）する（ブロック７５０）。
【００５５】
アクティブプロセス検証ツール３３０は、識別されたファイルの計算されたハッシュ値が、プロファイル内の識別されたファイルに対応する格納されたハッシュ値と一致するか否かを判断する（ブロック７６０）。例えば、プロセスに関連するファイルが変更されている場合、計算されたハッシュ値は、格納されたハッシュ値と一致しない可能性がある。ハッシュ値の比較は、アクティブプロセス検証ツール３３０が、プロセスが変更されているか否かを検出できるようにする。計算されたハッシュ値が、格納されたハッシュ値と一致しなければ、アクティブプロセス検証ツール３３０は、整合性低下の検出のログを取る（ブロック７７０）。図示した例では、アクティブプロセス検証ツール３３０は、プロセス制御ノード１１５にローカルなログ内にログエントリを格納することにより、整合性低下の検出のログを取る。しかし、いくつかの例では、アクティブプロセス検証ツール３１０は、ログエントリをロギング場所（例えば、プロセス制御システム１１０にローカルなロギングサーバー、例えば、プロセス制御システムプロバイダ、サードパーティなどにおけるプロセス制御システムにリモートなロギングサーバー）に送信することにより、整合性低下の検出のログを取る。いくつかの例では、ログエントリは、例えば、ｓｙｓｌｏｇロギングシステム、簡易ネットワーク管理プロトコル（ＳＮＭＰ）などの、リモートロギングプロトコルおよび／またはシステムを使用して送信される。計算されたハッシュ値が、格納されたハッシュ値と一致すれば、アクティブプロセス検証ツール３３０は、検証すべきさらなるプロセスがあるか否かの判断に進む（ブロック７８０）。図示した例では、検証すべきさらなるプロセスがなければ、制御は、図７のマシン可読命令の終了に進む。警告装置３５０は、次いで、サブプロセスが完了したという通知を受信する。いくつかの例では、図７のマシン可読命令は、アクティブプロセスが再検証されるように、繰り返されるか、かつ／または継続される。
【００５６】
図８は、図１および／もしくは図２のプロセス制御ノード例、ならびに／または図２および／もしくは図３の整合性ガード例を実施するために、図４〜図７の方法例を実行可能なプロセッサプラットフォーム例８００のブロック図である。プロセッサプラットフォーム例８００は、例えば、サーバー、パーソナルコンピュータ、携帯電話（例えば、セル方式の携帯無線電話）、携帯情報端末（ＰＤＡ）、インターネット家電、または任意の他のタイプのコンピューティング装置であり得る。
【００５７】
本例のシステム８００は、プロセッサ８１２を含む。例えば、プロセッサ８１２は、任意の所望のファミリまたは製造業者からの１つまたは複数のマイクロプロセッサもしくはコントローラによって実施できる。
【００５８】
プロセッサ８１２は、ローカルメモリ８１３（例えば、キャッシュ）を含み、揮発性メモリ８１４および不揮発性メモリ８１６を含むメインメモリと、バス８１８を経由して通信する。揮発性メモリ８１４は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ＲＡＭＢＵＳダイナミックランダムアクセスメモリ（ＲＤＲＡＭ）および／または任意の他のタイプのランダムアクセスメモリデバイスによって実施され得る。不揮発性メモリ８１６は、フラッシュメモリおよび／または任意の他の所望のタイプのメモリデバイスによって実施され得る。メインメモリ８１４、８１６へのアクセスは、メモリコントローラによって制御される。
【００５９】
プロセッサプラットフォーム８００は、インタフェース回路８２０も含む。インタフェース回路８２０は、イーサネット（登録商標）インタフェース、ユニバーサルシリアルバス（ＵＳＢ）、および／またはＰＣＩ  Ｅｘｐｒｅｓｓインタフェースなど、任意のタイプのインタフェース規格によって実施され得る。
【００６０】
１つまたは複数の入力装置８２２がインタフェース回路８２０に接続される。入力装置８２２は、ユーザーがデータおよびコマンドをプロセッサ８１２に入力できるようにする。入力装置は、例えば、キーボード、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイント（ｉｓｏｐｏｉｎｔ）および／または音声認識システムによって実施できる。
【００６１】
１つまたは複数の出力装置８２４もインタフェース回路８２０に接続される。出力装置８２４は、例えば、表示装置（例えば、液晶ディスプレイ、ブラウン管ディスプレイ（ＣＲＴ）、プリンタおよび／またはスピーカ）によって実施できる。インタフェース回路８２０は、従って、通常、グラフィックスドライバカードを含む。
【００６２】
インタフェース回路８２０は、ネットワーク８２６（例えば、イーサネット（登録商標）接続、デジタル加入者回線（ＤＳＬ）、電話回線、同軸ケーブル、携帯電話システムなど）を介して、外部コンピュータとのデータ交換を容易にするモデムまたはネットワークインタフェースカードなどの通信装置（例えば、ネットワークコミュニケータ２３０）も含む。
【００６３】
プロセッサプラットフォーム８００は、ソフトウェアおよびデータを格納するための１つまたは複数の大容量記憶装置８２８も含む。かかる大容量記憶装置８２８の例には、フロッピィディスクドライブ、ハードドライブディスク、コンパクトディスクドライブおよびデジタル多用途ディスク（ＤＶＤ）ドライブを含む。大容量記憶装置８２８は、ファイルシステム２２０および／またはプロファイルストアを実施し得る。
【００６４】
図４〜図７の方法を実施するためのコード化命令は、大容量記憶装置８２８内、ローカルメモリ８１３内、揮発性メモリ８１４内、不揮発性メモリ８１６内、および／またはＣＤもしくはＤＶＤなどの取り外し可能記憶媒体上に格納され得る。
【００６５】
前記から、前述の開示した方法、装置および製品は、プロセス制御システムの整合性における変化（例えば、低下）を検出する能力を提供することが理解されるであろう。
【００６６】
ある方法例、装置および製品が本明細書で説明されているが、本特許がカバーする範囲はそれらに限定されない。逆に、本特許は、本特許の特許請求の範囲に適正に含まれる全ての方法、装置および製品をカバーする。
【図１】
2019194905.tif 000003
【図２】
2019194905.tif 000004
【図３】
2019194905.tif 000005
【図４】
2019194905.tif 000006
【図５】
2019194905.tif 000007
【図６】
2019194905.tif 000008
【図７】
2019194905.tif 000009
【図８】
2019194905.tif 000010
【手続補正書】
【提出日】令和1年7月4日(2019.7.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセス制御システムの整合性の低下を識別するための方法であって、
前記プロセス制御システムのファイルシステム上のファイルを識別することと、
前記ファイルシステム上に存在するはずのファイルを識別するシステムプロファイル内で、前記ファイルが識別されるか否かを判断することと、
前記ファイルが前記システムプロファイル内で識別されない場合に、前記プロセス制御システムの整合性の低下を識別することと、
を含む方法。
【請求項２】
前記ファイルが前記システムプロファイル内に含まれる場合に、前記ファイルを前記システムプロファイル内の前記ファイルに関連する値と比較して、前記ファイルが前記値と一致するか否かを判断することと、
前記ファイルが前記システムプロファイル内に含まれる場合、かつ前記ファイルが前記値と一致しない場合に、前記プロセス制御システムの整合性の前記低下を識別することと
をさらに含む、請求項１に記載の方法。
【請求項３】
整合性の前記低下が識別されると、プロセス制御システムプロバイダまたはプロセス制御システム管理者のうちの少なくとも一方に警告することをさらに含む、請求項１に記載の方法。
【請求項４】
前記ファイルが前記システムプロファイルの例外として識別される場合、整合性の前記低下が識別されない、請求項１に記載の方法。
【請求項５】
前記ファイルのハッシュ値を計算することと、
前記計算されたハッシュ値を前記値と比較することと、
をさらに含み、
前記システムプロファイル内の前記ファイルに関連した前記値が、以前に計算されたハッシュ値である、
請求項１に記載の方法。
【請求項６】
前記システムプロファイルを初期化することをさらに含み、
前記システムプロファイルを初期化することが
前記ファイルシステム上の前記ファイルを識別することと、
前記ファイルに関連した前記値を計算することと、
前記システムプロファイル内に前記値を格納することと
を含む、請求項１に記載の方法。
【請求項７】
前記システムプロファイルをリモートプロファイルサーバーから取得することをさらに含む、請求項１に記載の方法。
【請求項８】
前記プロセス制御システムのプロセッサによって実行されているプロセスを識別することをさらに含み、
前記ファイルシステム上で識別された前記ファイルが、前記プロセッサによって実行されている前記プロセスに関連している、
請求項１に記載の方法。
【請求項９】
前記プロセス制御システムのネットワークコミュニケータのネットワーク通信を識別することと、
前記ネットワーク通信のプロパティを前記システムプロファイルの格納されたプロパティと比較することと、
前記ネットワーク通信の前記プロパティが前記システムプロファイルの前記格納されたプロパティに一致しない場合に、前記プロセス制御システムの整合性の前記低下を識別することと
をさらに含む、請求項１に記載の方法。
【請求項１０】
プロセス制御システムの整合性の低下を識別するための装置であって、
プロセス制御ノードのファイルシステム上に格納されたファイルのプロパティと、第１の格納された値との間の差を、整合性の低下として識別するためのファイルシステム検証ツールと、
前記プロセス制御ノードによって実行されるアクティブプロセスのプロパティと、第２の格納された値との間の差を、整合性の前記低下として識別するためのアクティブプロセス検証ツールと
を備える装置。
【請求項１１】
整合性の前記低下が識別されると、プロセス制御システムプロバイダまたはプロセス制御システム管理者のうちの少なくとも一方に警告するための警告装置をさらに備える、請求項１０に記載の装置。
【請求項１２】
前記第１の格納された値がハッシュ値であり、前記ファイルの前記プロパティが計算されたハッシュ値である、請求項１０に記載の装置。
【請求項１３】
前記アクティブプロセスの前記プロパティが、前記プロセスに関連したファイルの計算されたハッシュ値である、請求項１０に記載の装置。
【請求項１４】
前記警告装置が、電子メールメッセージを送信することにより、前記プロセス制御システムプロバイダまたは前記プロセス制御システム管理者のうちの少なくとも一方に警告するためである、請求項１０に記載の装置。
【請求項１５】
前記プロセス制御ノードのネットワークコミュニケータの監視されたネットワーク通信のプロパティと第３の格納された値との間の差を、前記低下として検出するためのネットワーク通信検証ツールをさらに備える、請求項１０に記載の装置。
【請求項１６】
有形的マシン可読媒体であって、実行される場合に、
マシンに少なくとも、
プロセス制御システムのファイルシステム上のファイルを識別することと、
前記ファイルシステム上に存在するはずのファイルを識別するシステムプロファイル内で、前記ファイルが識別されるか否かを判断することと、
前記ファイルが前記システムプロファイル内で識別されない場合に、前記プロセス制御システムの整合性の低下を識別することと
をさせる命令を格納する、
有形的マシン可読媒体。
【手続補正書】
【提出日】令和1年8月13日(2019.8.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセス制御システムの整合性の低下を識別するための方法であって、
前記プロセス制御システムのファイルシステム上のファイルを識別することと、
前記ファイルシステム上に存在するはずのファイルを識別するシステムプロファイル内で、前記ファイルが識別されるか否かを判断することと、
前記ファイルが前記システムプロファイル内で識別されない場合に、前記プロセス制御システムの整合性の低下を識別することと、
を含む方法。
【請求項２】
前記ファイルが前記システムプロファイル内に含まれる場合に、前記ファイルを前記システムプロファイル内の前記ファイルに関連する値と比較して、前記ファイルが前記値と一致するか否かを判断することと、
前記ファイルが前記システムプロファイル内に含まれる場合、かつ前記ファイルが前記値と一致しない場合に、前記プロセス制御システムの前記整合性の前記低下を識別することと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記整合性の前記低下が識別されると、プロセス制御システムプロバイダ又はプロセス制御システムの管理者の少なくとも一方に警告することをさらに含む、請求項１又は２に記載の方法。
【請求項４】
前記ファイルが前記システムプロファイルの例外として識別される場合、前記整合性の前記低下が識別されない、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記ファイルのハッシュ値を計算することと、
前記計算されたハッシュ値を前記システムプロファイル内の前記ファイルに関連した値と比較することと、
をさらに含み、
前記システムプロファイル内の前記ファイルに関連した前記値が、以前に計算されたハッシュ値である、
請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記システムプロファイルを初期化することをさらに含み、
前記システムプロファイルを初期化することが
前記ファイルシステム上の前記ファイルを識別することと、
前記ファイルに関連した値を計算することと、
前記システムプロファイル内に前記値を格納することと
を含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記システムプロファイルをリモートプロファイルサーバーから取得することをさらに含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記プロセス制御システムのプロセッサによって実行されているプロセスを識別することをさらに含み、
前記ファイルシステム上で識別された前記ファイルが、前記プロセッサによって実行されている前記プロセスに関連している、
請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記プロセス制御システムのネットワークコミュニケータのネットワーク通信を識別することと、
前記ネットワーク通信のプロパティを前記システムプロファイルの格納されたプロパティと比較することと、
前記ネットワーク通信の前記プロパティが前記システムプロファイルの前記格納されたプロパティに一致しない場合に、前記プロセス制御システムの前記整合性の前記低下を識別することと、
をさらに含む、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
プロセス制御システムの整合性の低下を識別するための装置であって、
プロセス制御ノードのファイルシステム上に格納されたファイルのプロパティと、第１の格納された値との間の差を、整合性の低下として識別するための、ファイルシステム検証ツールと、
前記プロセス制御ノードによって実行されるアクティブプロセスのプロパティと、第２の格納された値との間の差を、前記整合性の前記低下として識別するための、アクティブプロセス検証ツールと、
を含む装置。
【請求項１１】
前記整合性の低下が識別されると、プロセス制御システムプロバイダ又はプロセス制御システムの管理者の少なくとも一方に警告するための、警告装置をさらに含む、請求項１０に記載の装置。
【請求項１２】
前記第１の格納された値がハッシュ値であり、前記ファイルの前記プロパティが計算されたハッシュ値である、請求項１０又は１１に記載の装置。
【請求項１３】
前記アクティブプロセスの前記プロパティが、前記アクティブプロセスに関連したファイルの計算されたハッシュ値である、請求項１０〜１２のいずれか一項に記載の装置。
【請求項１４】
前記警告装置が、電子メールメッセージを送信することにより、前記プロセス制御システムプロバイダまたは前記プロセス制御システムの管理者のうちの少なくとも一方に警告する、請求項１１、請求項１１に従属する請求項１２、および請求項１１と請求項１１に従属する請求項１２とに従属する請求項１３のいずれか一項に記載の装置。
【請求項１５】
前記プロセス制御ノードのネットワークコミュニケータの監視されたネットワーク通信のプロパティと第３の格納された値との間の差を、前記低下として検出するための、ネットワーク通信検証ツールをさらに備える、請求項１０〜１４のいずれか一項に記載の装置。
【請求項１６】
実行されると、請求項１〜９のいずれか一項に記載の方法をマシンに行わせる、命令を格納する、有形的マシン可読媒体。