(57)【要約】幾つかの例において、コンピュータシステムは、少なくとも１つのコンピューティング装置によって制御された機器を含む制御システムからパケットデータを受信しうる。コンピュータシステムは、パケットデータに基づいてデータ表現を生成しうる。例えば、データ表現は、機器の状態又は設定の少なくとも一方を表しうる。コンピュータシステムは、データ表現に認識を実行して、パケット情報が正常状態を示すか異常状態を示すかを決定しうる。受信パケット情報が異常状態を示すという決定に基づいて、コンピュータシステムは、少なくとも１つのアクションを実行しうる。
2021511590.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
１つ以上のプロセッサと、
実行命令を維持する１つ以上の非一時的コンピュータ可読媒体とを備え、前記実行命令が、前記１つ以上のプロセッサによって実行されたとき、
少なくとも１つのコンピューティング装置によって制御された機器を含む制御システムからパケットデータを受信する操作と、
前記パケットデータに基づいて、前記機器の状態又は設定の少なくとも一方を表すデータ表現を生成する操作と、
前記データ表現の認識を実行して、前記パケット情報が正常状態を示すか異常状態を示すかを決定する操作と、
前記受信パケット情報が前記異常状態を示すという決定に基づいて、少なくとも１つのアクションを実行する操作と、含む操作を実行するように前記１つ以上のプロセッサを構成するシステム。
【請求項２】
前記操作が、更に、複数のピクセルを含むイメージとして前記データ表現を生成する操作を含み、前記複数のピクセルが、
前記パケットデータから抽出された機器設定値、又は、
前記パケットデータから抽出された機器状態値の少なくとも一方に基づいて定義される、請求項１に記載のシステム。
【請求項３】
前記データ表現が、前記制御システム内の１つ以上の制御コンピューティング装置からある時間にわたって受信された複数のパケットのパケット情報を表す時系列データブロックである、請求項１に記載のシステム。
【請求項４】
前記データ表現に認識を実行する操作が、前記データ表現の１つ以上の特徴を、以前に受信したパケットの複数のデータ表現の１つ以上の特徴と比較して、前記受信パケットが前記正常状態を示すか前記異常状態を示すかを決定する操作を含む、請求項１に記載のシステム。
【請求項５】
前記操作が、更に、
前記以前に受信したデータパケットの複数のデータ表現に少なくとも部分的に基づいて機械学習モデルをトレーニングする操作を含み、前記複数のデータ表現が、前記正常状態又は前記異常状態の一方と関連付けられ、
前記データ表現に前記認識を実行する操作が、前記機械学習モデルを使用して前記データ表現のパターンが前記正常状態を示すか前記異常状態を示すかを決定する、請求項１に記載のシステム。
【請求項６】
前記操作が、更に、
グラフィックユーザインタフェースを介して受信されたパターンに基づいて複数のシミュレートされたデータ表現を生成する操作と、
前記シミュレートされたデータ表現を、前記機械学習モデルをトレーニングするために使用される前記複数のデータ表現と共に含む操作とを含む、請求項５に記載のシステム。
【請求項７】
前記操作が、更に、
前記データ表現及び識別されたパターンの前記指示を記憶する操作と、
次に前記機械学習モデルをトレーニングするときに前記記憶されたデータ表現を前記複数のデータ表現と共に含む操作とを含む、請求項１に記載のシステム。
【請求項８】
前記操作が、更に、
前記受信パケットデータが１つ以上の機器制御コンピューティング装置から周期的に受信されたサイクリックパケットに対応することを決定する操作と、
前記受信パケットデータが前記サイクリックパケットに対応するという決定に基づいて、前記パケットデータから抽出された値を前記データ表現の最後に追加し、以前に受信したパケットデータから抽出された値を前記データ表現の別の最後から除去する操作とを含む、請求項１に記載のシステム。
【請求項９】
前記操作が、更に、
前記受信パケットデータが前記制御システム内の監視コンピューティング装置から受信されたシーケンシャルパケットに対応することを決定する操作と、
前記シーケンシャルパケットの到着通知を前記データ表現に追加する操作とを含む、請求項１に記載のシステム。
【請求項１０】
前記パケットデータに基づいて、前記機器の状態又は設定の少なくとも一方を表すデータ表現を生成する操作が、更に、
前記機器の前記状態又は前記設定の一方に対応する、８ビットを超える値を抽出する操作と、
前記抽出された値を上位ビットの第１の値と下位ビットの第２の値に分割する操作と、
前記第１の値に定数を乗算する操作と、
前記乗算された第１の値と前記第２の値を有する前記データ表現を生成する操作とを含む、請求項１に記載のシステム。
【請求項１１】
前記操作が、更に、
前記データ表現の認識パターンを、前記機器の前記状態又は前記機器の前記設定の少なくとも一方と関連付けられた正常又は異常の指示と共に表示するグラフィカルユーザインタフェースを提示する操作と、
前記グラフィカルユーザインタフェースを介して入力を受け取って、前記正常の指示を異常に変更するか前記異常の指示を正常に変更する操作と、
前記変更をパターンデータ構造内の前記認識パターンと関連付ける操作とを含む、請求項１に記載のシステム。
【請求項１２】
前記操作が、更に、前記データ表現を、前記機器の設定又は状態の少なくとも一方の様々な値にそれぞれ対応する複数の列又は行を含むマトリクスとして生成する操作を含む、請求項１に記載のシステム。
【請求項１３】
前記少なくとも１つのアクションを実行する操作が、
前記制御システムの動作を監視するコンピューティング装置に、前記検出された異常状態の指示を含む通信を送信する操作と、
制御コンピューティング装置に前記機器の設定を変更させる制御通信を前記制御コンピューティング装置に送信する操作との少なくとも一方を含む、請求項１に記載のシステム。
【請求項１４】
１つ以上のプロセッサによって、少なくとも１つのコンピューティング装置によって制御された機器を含む制御システムからパケットデータを受信するステップと、
前記パケットデータに基づいて、前記機器の状態又は設定の少なくとも一方を表すデータ表現を生成するステップと、
前記データ表現に認識を実行して、前記パケット情報が正常状態を示すか異常状態を示すかを決定するステップと、
前記受信パケット情報が前記異常状態を示すという決定に基づいて、少なくとも１つのアクションを実行するステップとを含む方法。
【請求項１５】
命令を記憶する１つ以上の非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されたとき、
少なくとも１つのコンピューティング装置によって制御された機器を含む制御システムからパケットデータを受信し、
前記パケットデータに基づいて、前記機器の状態又は設定の少なくとも一方を表すデータ表現を生成し、
前記データ表現に認識を実行して、前記パケット情報が正常状態を示すか異常状態を示すかを決定し、
前記受信パケット情報が前記異常状態を示すという決定に基づいて、少なくとも１つのアクションを実行するように、システムの前記１つ以上のプロセッサをプログラムする、１つ以上の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータシステムセキュリティの技術分野に関する。
【背景技術】
【０００２】
製造施設、工場、複合設備、発電所、交通システム、精製所、工業制御システム及び様々な他のオペレーショナルテクノロジ（ＯＴ）システムは、機器を望ましい方法で動作させるために依存されるコンピュータシステムによって制御されうる。ＯＴシステムのセキュリティは、伝統的にスタンドアロン式のＯＴ実装に依存してきた。しかしながら、最近では、ＯＴシステムは、他のコンピュータシステム及びインターネットにリンクされるようになり、これによりセキュアなＯＴシステムの必要性が高まった。例えば、ＯＴシステムは、有害、破壊的、あるいは機器の異常動作を引き起こしうる電子通信によってもたらされる攻撃又は他の不安定化にさらされうる。例えば、幾つかの例では、人や悪意あるコードなどの悪意ある行為者が、電子通信を使用して機器を誤動作させるか異常動作させうる。他の例では、機器の制御設定が、電子通信によって非意図的又は間違いで変更されることがあり、これも機器の望ましくない異常動作を引き起こしうる。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書の実施態様は、有害通信から制御システムを守るための機構及び技術を含む。幾つかの例において、コンピュータシステムは、制御システムから通信のパケットデータを受信しうる。制御システムは、少なくとも１つのコンピューティング装置によって制御された機器を含みうる。コンピュータシステムは、パケットデータに基づいてデータ表現を生成しうる。例えば、データ表現は、機器の状態又は設定の少なくとも１つを表しうる。コンピュータシステムは、データ表現に認識を実行して、パケット情報が正常状態を示すか異常状態を示すかを決定しうる。受信したパケット情報が異常状態を示すという決定に基づいて、コンピュータシステムは、少なくとも１つのアクションを実行しうる。
【０００４】
詳細な説明は、添付図面に関して説明される。図において、参照番号の左端の数字は、参照番号が最初に現われた図を示す。様々な図内の同じ参照番号の使用は、類似又は同一の項目又は特徴を示す。
【図面の簡単な説明】
【０００５】
【図１】幾つかの実施態様による異常動作を引き起こしうる通信を検出し管理できるコンピュータシステムの例示的なアーキテクチャを示す図である。
【図２】幾つかの実施態様によるセキュリティプログラムによって実行されうる例示的なプロセスを示す流れ図である。
【図３Ａ】幾つかの実施態様によるサイクリックパケットの例示的なフォーマットを示す図である。
【図３Ｂ】幾つかの実施態様によるシーケンシャルパケットの例示的なフォーマットを示す図である。
【図４】幾つかの実施態様による例示的なパケットデータ表現を示す図である。
【図５】幾つかの実施態様による例示的なプロセスを示す流れ図である。
【図６Ａ】幾つかの実施態様による時系列データを強調する例を示す図である。
【図６Ｂ】幾つかの実施態様による時系列データを強調する例を示す図である。
【図７Ａ】幾つかの実施態様による例示的なパケットデータ表現を示す図である。
【図７Ｂ】幾つかの実施態様による例示的なパケットデータ表現を示す図である。
【図８】幾つかの実施態様による時系列データを強調する例を示す図である。
【図９】幾つかの実施態様による例示的な変数フィールドデータ構造を示す図である。
【図１０】幾つかの実施態様による例示的なパターンデータ構造を示す図である。
【図１１】幾つかの実施態様による例示的なダッシュボードグラフィックユーザインタフェースを示す図である。
【図１２】幾つかの実施態様によるセキュリティプログラムによって実行されうる例示的なプロセスを示す流れ図である。
【発明を実施するための形態】
【０００６】
本明細書の幾つかの実施態様は、機器、機械、工業制御ネットワーク又は他のオペレーショナルテクノロジ（ＯＴ）システムが、被制御システムの異常動作を引き起こしうる通信を受けるときに決定するシステムのための技術及び機構を対象とする。一例として、サービスコンピューティング装置は、ネットワークで送信されたパケットを検査することによって通信データのパターンを認識しうる。サービスコンピューティング装置は、通信データの認識結果に基づいてパケット（又は、その結果生じる機器の動作）が正常であるか異常であるかを決定しうる。例えば、サービスコンピューティング装置は、非標準プロトコルにより記述されＯＴシステムの制御ネットワークで送信されたパケットを分析することによって、通信データを正常か異常として分類できる。したがって、被制御システムによって使用されるプロトコルが未知の場合でも、本明細書の実施態様は、正常通信を、被制御システムを異常動作させうる有害通信と区別できる。
【０００７】
幾つかの例は、サービスコンピューティング装置がパケットデータを受信し検査することによって通信データのパターンを認識するパターン認識システム及びプロセスを含む。一例として、パケットデータは、制御システムの制御ネットワーク内で送信されたパケットをミラーリングすることによって取得されうる。場合によっては、制御ネットワークは、ヒューマン・マシン・インタフェース（ＨＭＩ）コンピューティング装置と、制御ネットワークを介して制御システム内の機器を制御する一次及び二次制御コンピューティング装置との間の一次及び二次回線を含みうる。
【０００８】
サービスコンピューティング装置は、パケットデータからデータ表現を生成するように構成されうる。場合によって、データ表現は、時系列データをイメージ又はマトリクスフォーマットで表す時系列データブロックを含みうる。サービスコンピューティング装置は、機械制御のための機器設定値又は状態値の少なくとも１つを含むサイクリックパケットを監視するためにデータ表現を生成しうる。サービスコンピューティング装置は、更に、設定値を更新しうるテンポラリシーケンシャルパケットを監視するために、データ表現を生成するように構成されうる。サービスコンピューティング装置は、更に、パケットのペイロードデータから設定値、状態値又は動作値を抽出し、対応する機器の設定値、状態値及び／又は動作値の履歴値を含む対応する時系列データブロックを生成するように構成されうる。サービスコンピューティング装置は、更に、パターン認識プロセスを実行して、時系列データブロックを使用して通信データの１つ以上のパターンを認識するように構成されうる。サービスコンピューティング装置は、更に、認識結果を統計的に集約し、認識結果に基づいて認識パターンが正常か異常かに関する指示と共に認識パターンを表示しうるダッシュボードグラフィックユーザインタフェース（ＧＵＩ）を描写し提示するように構成されうる。
【０００９】
本明細書の幾つかの実施態様は、被制御システムの制御ネットワーク内で送信されたパケットを分析することによって通信データの状態を監視するセキュリティシステム及び技術を提供する。例えば、本明細書のシステムは、ＯＴ制御システムに使用されうるプリミティブ及び／又は非標準化プロトコルによって記述されたパケットを分析できる。一例として、本明細書のシステムは、制御システムの制御コマンドを偽装する攻撃を検出できる。例えば、悪意ある行為者が、動作機器の制御値を変更する場合、従来のセキュリティ技術は、そのような変更を検出できないことがある。他方、本明細書のセキュリティシステム及び方法は、制御通信におけるパケットを分析し、パケットが被制御機器の望ましくない有害な又は異常な動作の原因になりうるかを決定できる。
【００１０】
本明細書における幾つかの例では、コンピュータシステムは、人間機械インタフェースと機械制御コンピュータとを接続するネットターク内で送信されたパケットを分析することによって、通信データのパターンを認識しうる。コンピュータシステムは、機械制御コンピュータの状態値と設定値を監視するサイクリックパケットと、設定値を操作するシーケンシャルパケットとを監視しうる。コンピュータシステムは、パケットデータに基づいて機械制御コンピュータの状態値と設定値を表す履歴データからなる時系列データブロックなどの受信パケットデータのデータ表現を生成しうる。更に、コンピュータシステムは、各時系列データブロックのパターンを認識でき、時系列データを正常又は異常として分類しうる。更に、本明細書のコンピュータシステムは、時系列データブロックを対応パターンのパターン番号と共に記憶するトレーニングデータを含みうる。トレーニングデータは、時系列データブロックをパターンの番号と共に使用してディープラーニングを実行する機械学習モデルをトレーニングするために使用される。
【００１１】
幾つかの例では、時系列データブロックは、機械コントローラの履歴状態と設定値及び／又はシーケンシャルパケットの履歴到着をピクセルバンドとして表すイメージデータとして生成されうる。幾つかの例では、履歴データのピクセルバンドとは別に状態値と設定値の初期値と最終値を含む時系列データブロックが生成されうる。幾つかの例では、各種類の状態値と設定値を様々なチャネルを使用するデータブロックとして表す時系列データブロックが生成されうる。更に、幾つかの例では、状態値と設定値のそれぞれをイメージデータ内の様々な色を使用するピクセルとして表す時系列データブロックが生成されうる。場合によって、時系列データブロックを生成するとき、８ビットを超える状態値と設定値は、上位ビットの値と下位ビットの値に分割されてもよく、上位ビットを強調するために定数値を掛けた上位ビットの値を表す時系列データブロックが生成されうる。
【００１２】
検討のため、幾つかの例示的な実施態様は、通信が被制御機器に適用されるべきでないパケットを含むかどうかを決定するコンピュータシステムの環境で示される。しかしながら、本明細書の実施態様は、本明細書の開示を鑑みて当業者に明らかなように、提供された特定の例に限定されず、他のタイプの機器及びシステム、他の使用環境、他のシステムアーキテクチャ、他のアプリケーションなどに拡張されうる。
【００１３】
図１は、幾つかの実施態様による、異常動作を引き起こしうる通信を検出し管理できるコンピュータシステム１００の例示的アーキテクチャを示す。システム１００は、機器がコンピュータによって制御されるＯＴ制御システム又は他の制御システムなど、機器制御システム１０４と通信できる少なくとも１つのサービスコンピューティング装置１０２を含む。例えば、サービスコンピューティング装置１０２は、１つ以上のネットワーク１０６によって接続されてもよく、ネットワーク１０６は、回線Ａや回線Ｂなどの冗長通信回線を含みうる。幾つかの例では、１つ以上のネットワーク１０６は、ローカルエリアネットワーク（ＬＡＮ）を含むことができ、他の例では、１つ以上のネットワーク１０６は、インターネットなどの広域ネットワーク（ＷＡＮ）を含みうる。したがって、１つ以上のネットワーク１０６は、光ファイバ、イーサネット、ファイバチャネルを含む有線ネットワーク、セルラネットワークなどの無線ネットワーク、Ｗｉ−Ｆｉなどのローカル無線ネットワーク、ＢＬＵＥＴＯＯＴＨ（登録商標）などの短距離無線通信、直接有線接続、又はこれらの任意の組み合わせを含みうる。したがって、１つ以上のネットワーク１０６は、有線及び／又は無線両方の通信技術を含みうる。そのような通信に使用される構成要素は、ネットワークの種類、選択された環境又はこれらの両方の少なくとも一部分に依存できる。
【００１４】
制御システム１０４は、更に、少なくとも１つの一次制御コンピューティング装置１０８と、場合によっては少なくとも１つの二次制御コンピューティング装置１１０を含む。示された例では、制御システム１０４は、複数対の一次コンピューティング装置１０８と二次コンピューティング装置、即ち、第１の一次制御コンピューティング装置１０８（１）と第１の二次制御コンピューティング装置１１０（１）を含む第１対から、第Ｎの一次制御コンピューティング装置１０８（Ｎ）と第Ｎの二次制御コンピューティング装置１１０（Ｎ）を含む第Ｎ対までを含み、これらの対はそれぞれ、制御アプリケーション１１２を実行できる。各対の一次コンピューティング装置１０８は、本明細書の他の場所で列挙されたようなＯＴシステム内の機器又は他の被制御機器などの１つ以上の機器１１４を制御する制御アプリケーション１１２を実行できる。更に、各対の二次制御コンピューティング装置１１０は、一次制御コンピューティング装置１０８に故障があった場合に冗長フォールバックシステムとして働く制御アプリケーション１１２を実行しうる。
【００１５】
示された例では、第１対の制御コンピューティング装置１０８（１）及び１１０（１）は、制御アプリケーション１１２を実行して、３つの機器、即ち機器Ａ１１４（ａ）、機器Ｂ１１４（ｂ）、機器Ｃ１１４（ｃ）を制御する。更に、第Ｎ対の制御コンピューティング装置１０８（Ｎ）及び１１０（Ｎ）は、制御アプリケーション１１２を実行して、３つの機器（即ち、機器Ｄ１１４（ｄ）、機器Ｅ１１４（ｅ）、機器Ｆ１１４（ｆ））を制御する。この例では、各機器１１４は、プロセスマネージャ１１６と、第１の機械１１８や第２の機械１２０などの１つ以上の機械を含む。したがって、機器Ａ１１４（ａ）は、プロセスマネージャ１１６（ａ）、第１の機械１１８（ａ）及び第２の機械１２０（ａ）を含むことがあり、機器Ｂ１１４（ｂ）は、プロセスマネージャ１１６（ｂ）、第１の機械１１８（ｂ）及び第２の機械１２０（ｂ）を含むことがあり、機器Ｃ１１４（ｃ）は、プロセスマネージャ１１６（ｃ）、第１の機械１１８（ｃ）及び第２の機械１２０（ｃ）を含むことがあり、機器Ｄ１１４（ｄ）は、プロセスマネージャ１１６（ｄ）、第１の機械１１８（ｄ）及び第２の機械１２０（ｄ）を含むことがあり、機器Ｅ１１４（ｅ）は、プロセスマネージャ１１６（ｅ）、第１の機械１１８（ｅ）及び第２の機械１２０（ｅ）を含むことがあり、機器Ｆ１１４（ｆ）は、プロセスマネージャ１１６（ｆ）、第１の機械１１８（ｆ）及び第２の機械１２０（ｆ）を含むことがある。プロセスマネージャ１１６は、制御アプリケーション１１２から命令を受けてそれぞれの機器１１４の機械を制御するコンピューティング装置（組み込みプロセッサ、論理回路、他の処理装置など）でよい。あるいは、他の例では、プロセスマネージャ１１６が含まれなくてもよく、制御アプリケーション１１２は、制御信号を直接送信することなどによってそれぞれの機械１１８，１２０と直接通信しうる。
【００１６】
更に、制御システム１０４は、アドミニストレータ、システムマネージャ、他のユーザなどの人によって使用されうる１つ以上の人間機械インタフェース（ＨＭＩ）コンピューティング装置１２４を含みうる。ＨＭＩコンピューティング装置１２４は、制御システム１０４と関連機器１１４を監視しかつ／又は管理するための管理アプリケーション（管理プログラム１２６など）を実行しうる。したがって、ＨＭＩコンピューティング装置１２４、一次制御コンピューティング装置１０８、二次制御コンピューティング装置１１０、及び幾つかの例ではサービスコンピューティング装置１０２は、有線接続、無線接続又はこれらの組み合わせを使用して１つ以上のネットワーク１０６を介して通信できる。更に、幾つかの例では、一次制御コンピューティング装置１０８と二次制御コンピューティング装置１１０は、１つ以上のネットワーク１０６を介して、あるいは１つ以上の他のネットワーク、別個のＬＡＮ、直接接続などを介して機器１１４と通信しうる。更に、制御システム１０４の一例が図１の例に示されるが、本明細書の開示の恩恵を受ける当業者には多数の代替構成及び変形が明らかになる。したがって、本明細書の実施態様は、制御システム１０４の如何なる特定の構成にも限定されない。
【００１７】
幾つかの実施態様では、サービスコンピューティング装置１０２は、任意の数の方法で実施されうる１つ以上のサーバ、パーソナルコンピュータ、又は他のタイプのコンピューティング装置を含みうる。例えば、サーバの場合、プログラム、他の機能要素、及びデータ記憶機構の少なくとも一部分が、スタンドアロンサーバ、サーバのクラスタ、サーバファーム又はデータセンタ、クラウドホストコンピュータサービスなど、少なくとも１つのサーバ上に実現されうるが、追加又は代替として他のコンピューターアーキテクチャも使用されうる。
【００１８】
示された例では、サービスコンピューティング装置１０２は、１つ以上のプロセッサ１３０、１つ以上の通信インタフェース１３２、及び１つ以上のコンピュータ可読媒体１３４を含むかあるいはそれらと関連付けられうる。各プロセッサ１３０は、単一の処理ユニット又は幾つかの処理ユニットでよく、単一又は複数のコンピューティングユニット、或いは複数の処理コアを含みうる。プロセッサ１３０は、１つ以上の中央処理装置、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、状態機械、論理回路、及び／又は操作命令に基づいて信号を処理する任意の装置として実現されうる。例えば、プロセッサ１３０は、本明細書に記載されたアルゴリズムとプロセスを実行するように特にプログラム又は構成された任意の適切なタイプのうちの１つ以上のハードウェアプロセッサ及び／又は論理回路でよい。プロセッサ１３０は、コンピュータ可読媒体１３４に記憶されたコンピュータ可読命令をフェッチし実行するように構成されてもよく、この命令は、本明細書に記載された機能を実行するようにプロセッサ１３０をプログラムできる。
【００１９】
コンピュータ可読媒体１３４は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータなどの情報を記憶するための任意のタイプの技術で実現された揮発性及び不揮発性メモリ及び／又は取り外し可能及び取り外し不能媒体を含みうる。例えば、コンピュータ可読媒体１３４は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、光ストレージ、ソリッドステートストレージ、磁気テープ、磁気ディスクストレージ、ＲＡＩＤストレージシステム、オブジェクトストレージシステム、ストレージアレイ、ネットワーク接続ストレージ、ストレージエリアネットワーク、クラウドストレージ、又は所望の情報を記憶するために使用できコンピューティング装置によってアクセスされうる他の媒体を含みうるがこれらに限定されない。サービスコンピューティング装置１０２の構成により、コンピュータ可読媒体１３４は、言及されるとき、非一時的コンピュータ可読媒体がエネルギー、キャリア信号、電磁波及び／又は信号自体などの媒体を除外するという点で、有形的な非一時的媒体でもよい。場合によって、コンピュータ可読媒体１３４が、サービスコンピューティング装置１０２と同じ位置でよいが、他の例では、コンピュータ可読媒体１３４は、サービスコンピューティング装置１０２から部分的に離れてもよい。
【００２０】
コンピュータ可読媒体１３４は、プロセッサ１３０によって実行可能な任意数の機能要素を記憶するために使用されうる。多くの実施態様では、これらの機能要素は、プロセッサ１３０によって実行可能であり、実行されたとき、特に本明細書でサービスコンピューティング装置１０２によるアクションを実行するようにプロセッサ１３０をプログラムする実行命令及び／又はプログラムを含む。コンピュータ可読媒体１３４に記憶された機能要素は、セキュリティプログラム１３６を含みうる。セキュリティプログラム１３６は、本明細書に記載されたような様々なタスクをプロセッサ１３０に実行させるために実行可能な１つ以上のコンピュータプログラム、コンピュータ可読命令、実行可能コード又はその一部分を含みうる。示された例では、セキュリティプログラム１３６は、トレーニングデータ１４２を使用して１つ以上の機械学習モデル１４０を生成しトレーニングするために呼び出されうるモデル構築プログラム１３８を含むか、そのモデル構築プログラム１３８にアクセスできる。加えて、セキュリティプログラム１３６は、更に、後で更に考察されるように、シミュレータＧＵＩ１４６及び／又は時系列データデータ構造（ＤＳ）１４８を生成するように実行されうる。
【００２１】
モデル構築プログラム１３８は、セキュリティプログラム１３６の実行可能モジュール又はその一部分でよい。あるいは、他の例では、モデル構築プログラム１３８は、セキュリティプログラム１３６によって呼び出されうる個別に実行可能なスタンドアロンコンピュータプログラムでよい。モデル構築プログラム１３８は、機械１１８，１２０又はプロセスマネージャ１１６などの機器１１４の異常動作を引き起こしうるパケットの認識に使用される少なくとも１つの機械学習モデル１４０を構築しトレーニングするように１つ以上のプロセッサ１３０を構成しうる。次に、セキュリティプログラム１３６は、トレーニングされた機械学習モデル１４０を新しく受信したパケットに適用して、そのパケットが正常な動作条件又は異常な動作条件に対応するかを決定できる。
【００２２】
更に、コンピュータ可読媒体１３４内の機能要素は、サービスコンピューティング装置１０２の各種機能を制御し管理しうるオペレーティングシステム（図１に示されない）を含みうる。場合によっては、機能要素は、コンピュータ可読媒体１３４の記憶部分に記憶され、コンピュータ可読媒体１３４のローカルメモリ部分にロードされ、１つ以上のプロセッサ１３０によって実行されうる。多数の他のソフトウェア及び／又はハードウェア構成は、本明細書の開示の恩恵を受ける当業者に明らかであろう。
【００２３】
更に、コンピュータ可読媒体１３４は、本明細書に記載された機能とサービスを実行するために使用されるデータとデータ構造を記憶しうる。例えば、コンピュータ可読媒体１３４は、１つ以上の機械学習モデル１４０を記憶でき、また機械学習モデル１４０をトレーニングするために使用されるトレーニングデータ１４２を記憶できる。後で更に考察されるように、コンピュータ可読媒体１３４に記憶されうる追加のデータ及びデータ構造は、時系列データＤＳ１４８、認識結果ＤＳ１５０、パターンＤＳ１５２、及び変数フィールドＤＳ１５４を含む。更に、コンピュータ可読媒体１３４は、機器１１４に関連した状態遷移情報を状態遷移情報ＤＳ１５８に記憶できる。状態遷移情報は、機器１１４に関連したドメイン情報と、認識結果１５０が正常状態に対応するか異常状態に対応するかを決定するために使用されうる機器１１４が動作する環境とを含みうる。
【００２４】
機械学習モデル１４０は、１つ以上の受信パケットが機器１１４の異常動作を引き起こす可能性があるかどうかを決定するためにセキュリティプログラム１３６によって使用されうる。機械学習モデル１４０の例には、ランダムフォレスト、サポートベクトルマシン、又は畳み込みニューラルネットワークなどの深層学習ネットワークなどの分類モデルが含まれうる。機械学習モデル１４０の追加の例には、予測モデル、決定樹、線形回帰モデルなどの回帰モデル、マルコフモデルや隠れマルコフモデルなどの確率的モデル、再帰型ニューラルネットワークなどの人工ニューラルネットワークなどが含まれうる。したがって、本明細書の実施態様は、特定のタイプの機械学習モデルに限定されない。
【００２５】
サービスコンピューティング装置１０２は、更に、１つ以上の表示装置１６０を含むかその表示装置１６０と関連付けられうる。例えば、セキュリティプログラム１３６は、パターン情報を提示するためのシミュレータＧＵＩ１４６を表示装置１６０上に生成しうる。更に、セキュリティプログラム１３６は、認識結果及び任意の識別された異常パケットに関連した情報を提示するためのダッシュボードＧＵＩ１６２を表示装置１６０上に生成しうる。サービスコンピューティング装置１０２は、また、プログラム、ドライバなどを含みうる他の機能要素及びデータ、並びに機能要素によって使用又は生成されるデータを含むか維持しうる。更に、サービスコンピューティング装置１０２は、多くの他の論理要素、プログラム要素、及び物理構成要素を含むことができ、これらはそれぞれ、単に本明細書の考察に関連した例である。
【００２６】
通信インタフェース１３２は、１つ以上のネットワーク１０６などを介して様々な他の装置との通信を可能にするための１つ以上のインタフェース及びハードウェア構成要素を含みうる。したがって、通信インタフェース１３２は、ネットワーク１０６への接続を提供する１つ以上のポートを含んでもよく、それらのポートに結合されてもよい。例えば、通信インタフェース１３２は、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（広域ネットワーク）、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク（例えば、Ｗｉ−Ｆｉ）及び有線ネットワーク（例えば、光ファイバ、イーサネット、ファイバチャネル）のうちの１つ以上、直接接続、並びに後で更に列挙されるような、ＢＬＵＥＴＯＯＴＨ（登録商標）などの短距離無線通信による通信を可能にできる。
【００２７】
更に、ＨＭＩコンピューティング装置１２４、一次制御コンピューティング装置１０８、二次制御コンピューティング装置１１０、及び場合によってはプロセスマネージャ１１６が、前述されたものと類似の構成とハードウェアを含みうるが、管理プログラム１２６、制御アプリケーション１１２及び様々なデータなどの様々な機能要素はない。例えば、場合によって、ＨＭＩコンピューティング装置１２４は、サーバコンピューティング装置、デスクトップコンピューティング装置、ラップトップコンピューティング装置、タブレットコンピューティング装置、スマートフォンコンピューティング装置、ウェアラブルコンピューティング装置などを含む、ネットワークを介して通信できる任意のタイプのコンピューティング装置でよい。
【００２８】
幾つかの例では、ＨＭＩコンピューティング装置１２４上で実行する管理プログラム１２６は、制御コンピューティング装置１０８，１１０によって制御された機器１１４の動作状態を監視しうる。例えば、制御アプリケーション１１２は、例えば機器１１４の設定値と状態値を含むサイクリング監視パケット（サイクリックパケット）１７０を、制御コンピューティング装置１０８及び１１０からそれぞれ回線Ａ及び回線Ｂを介して、例えば、制御コンピューティング装置１０８及び１１０からそれぞれＨＭＩコンピューティング装置１２４に周期的に送信するように構成されうる。幾つかの例では、サイクリックパケット１７０は、一定間隔で周期的に送信されうる。したがって、ＨＭＩコンピューティング装置１２４上の管理プログラム１２６は、サイクリックパケット１７０を受信し、サイクリックパケット１７０からの情報を表示装置（図１に示されない）上に提示して、ＨＭＩコンピューティング装置１２４を使用して機器１１４及び制御コンピューティング装置１０８及び／又は１１０の状態を監視できる。
【００２９】
幾つかの例では、一次制御コンピューティング装置１０８と二次制御コンピューティング装置１１０がそれぞれ、ＨＭＩコンピューティング装置１２４との通信に使用するそれ自体のＩＰアドレスを有しうる。一次制御コンピューティング装置１０８が正常に動作しているときは、二次制御コンピューティング装置１１０からＨＭＩコンピューティング装置１２４によって受信されたサイクリックパケット１７０が廃棄されうる。他方、一次制御コンピューティング装置１０８が誤動作又は他のタイプの障害を起こしている場合、ＨＭＩコンピューティング装置１２４は、二次制御コンピューティング装置１１０のＩＰアドレスを通信に使用するように切り換えることなどによって、二次制御コンピューティング装置１１０からサイクリックパケット１７０を受信するように切り換わる。更に、そのような状況では、二次制御コンピューティング装置１１０は、一次制御コンピューティング装置１０８が制御していた機器１１４の制御を引き継いでもよく、サイクリックパケット１７０をそれぞれのＨＭＩコンピューティング装置１２４に周期的に送信し続けてもよい。
【００３０】
更に、管理プログラム１２６は、オペレータが命令をシーケンシャル動作パケット（シーケンシャルパケット）１７２によって一次制御コンピューティング装置１０８（又は、一次制御コンピューティング装置１０８が遮断されている場合は二次制御コンピューティング装置１１０）に送信することを可能にすることなどによって、機器１１４を手動で制御するために使用されうる。例えば、シーケンシャルパケット１７２は、機械１１８，１２０の一方など、１つ以上のターゲット機器１１４の動作値を設定又は変更するための命令を含みうる。制御コンピューティング装置１０８又は１１０は、シーケンシャルパケット１７２を受信し読み取り、次に対応する制御信号をターゲット機器１１４に送信してターゲット機器１１４の動作を変化させうる。
【００３１】
サービスコンピューティング装置１０２上で実行するセキュリティプログラム１３６は、回線Ａと回線Ｂの両方からの通信データをミラーリングするか種々の他の技術などによって、回線Ａと回線Ｂからパケットデータ１７６を受信しうる。場合によって、受信パケットデータ１７６は、サイクリックパケット１７０とシーケンシャルパケット１７２の両方を含みうる。前述したように、制御コンピューティング装置１０８，１１０によって制御される機器１１４の設定値と状態値を監視するために使用されるサイクリックパケット１７０は、回線Ａと回線Ｂを介して、例えば一定間隔で周期的に送信されうる。一例として、セキュリティプログラム１３６は、回線Ａ又は回線Ｂのどちらかから最初に到着するパケットを受信し、回線Ａ又は回線Ｂの他方から後に到着するパケットを廃棄できる。更に、ターゲット機器１１４の設定値の設定を指示するシーケンシャルパケット１７２は、回線Ａ又は回線Ｂのどちらかを介して送信されうる。したがって、セキュリティプログラム１３６は、回線Ａと回線Ｂの両方によって到着する全てのシーケンシャルパケット１７２を受信し検査しうる。
【００３２】
前述されたように、セキュリティプログラム１３６がパケットデータ１７６を受信するとき、セキュリティプログラム１３６は、パケットデータ１７６からデータ表現を生成し、機械学習モデル１４０を使用してパケットのどれかが機器１１４の異常動作に対応する可能性があるかどうかを決定できる。セキュリティプログラム１３６によって実行されるプロセスの詳細は、例えば図２に関して更に後述される。制御システム１０４の異常動作に対応するパケットパターンに関する情報は、シミュレータＧＵＩ１４６によって指示及び／又は更新されうる。更に、セキュリティプログラム１３６によって決定された結果は、表示装置１６０上にダッシュボードＧＵＩ１６２で示されうる。
【００３３】
更に、幾つかの例において、セキュリティプログラム１３６は、パケットデータ１７６の分析結果に基づいて、１つ以上の動作又は他のアクションを実行しうる。幾つかの例では、パケットが機器１１４の異常動作を引き起こす可能性があることをセキュリティプログラム１３６が決定した場合、セキュリティプログラム１３６は、情報をＨＭＩコンピューティング装置１２４に通信で送信して、管理プログラム１２６に、修正命令を追加のシーケンシャルパケット１７２として、影響を受けた制御コンピューティング装置１０８，１１０に送信させうる。別の例として、パケットが機器１１４の異常動作を引き起こす可能性があることをセキュリティプログラム１３６が決定した場合、セキュリティプログラム１３６は、制御コンピューティング装置１０８，１１０と直接通信して、制御コンピューティング装置に機器の１つ以上の動作パラメータを変更させて異常動作を修正させうる。更に、この例では、サービスコンピューティング装置１０２が、ＨＭＩコンピューティング装置１２４とは別個のコンピューティング装置であるように示されているが、他の例では、サービスコンピューティング装置１０２は、ＨＭＩコンピューティング装置１２４と同じコンピューティング装置でもよく、したがって、本明細書に記載されたセキュリティ機能は、ＨＭＩコンピューティング装置１２４によって実行されうる。
【００３４】
図２、図５及び図１２は、幾つかの実施態様による例示的プロセスを示す流れ図を含む。プロセスは、一連の動作を表すブロックの集合として論理流れ図で示され、その動作の幾つか又は全ては、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されうる。ソフトウェアの分脈で、ブロックは、１つ以上のプロセッサによって実行されたとき、列挙された動作を実行するようにプロセッサをプログラムする１つ以上のコンピュータ可読媒体に記憶されたコンピュータ実行命令を表しうる。一般に、コンピュータ実行命令は、特定の機能を実行するか特定のデータ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。ブロックが示された順序は、限定として解釈されるべきでない。任意の数の示されたブロックが、任意の順序に組み合わされかつ／又はプロセス若しくは代替プロセスの実施と並列に組み合わされてもよく、必ずしも全てのブロックが実行されなくてもよい。検討のため、プロセスは、本明細書の例で示された環境、フレームワーク及びシステムに関して言及されるが、プロセスは、種々様々な他の環境、フレームワーク及びシステムで実行されうる。
【００３５】
図２は、幾つかの実施態様による、機器の異常動作に対応するパケットを検出するための例示的プロセス２００を示す流れ図である。プロセス２００は、少なくとも部分的に、サービスコンピューティング装置１０２又は他の適切なコンピューティング装置上で実行するセキュリティプログラム１３６によって実行されうる。
【００３６】
２０２で、セキュリティプログラムは、制御システム１０４からパケットデータ１７６を受信する。前述したように、パケットデータ１７６は、制御システム１０４からサービスコンピューティング装置１０２にミラーリングされうる。セキュリティプログラム１３６が制御システム１０４から受信するサイクリックパケットとシーケンシャルパケットのフォーマットは、図３に関して更に後述される。前述したように、セキュリティプログラムは、一次制御コンピューティング装置が正常に作動しているときは二次制御コンピューティング装置から受信したサイクリックパケットを廃棄しうる。
【００３７】
２０４で、セキュリティプログラムは、受信したパケットデータから、受信パケットデータのデータ表現として時系列データブロックを生成できる。時系列データブロックを生成するプロセスは更に後述される。幾つかの例では、セキュリティプログラム１３６は、更に後述されるように、時系列データブロックを生成するときに変数フィールドデータ構造１５４にアクセスしてピクセルなどの配置を決定できる。
【００３８】
２０６で、セキュリティプログラムは、時系列データブロックを時系列データＤＳ１４８に記憶し、時系列データブロックを認識のために提供しうる。
【００３９】
２０８で、セキュリティプログラムは、機械学習モデル１４０を使用して、受信した時系列データブロック内のパターンを認識しうる。例えば、セキュリティプログラム１３６は、時系列データブロックのパターンを制御システムの正常又は異常動作を示すパターンに対応するように分類することによって、通信データのパターンをディープラーニングで認識するための機械学習モデル１４０を使用できる。場合によって、認識は、時系列データブロックを、パターンＤＳ１５２に含まれる複数のパターンからの特定パターン番号と関連付けることを含みうる。
【００４０】
２１０で、セキュリティプログラムは、パターン認識の時系列結果を使用することによってパターン認識の結果を修正しうる。例えば、パターンが、現場の経験に従ってＡからＢに変更されＢからＣに変更されなければならないとき、認識パターンがＡからＤに変更されＤからＣに変更された場合は、ＤのパターンがＣに修正される。
【００４１】
２１２で、セキュリティプログラムは、時系列データブロックを関連パターン番号及び結果（又は、修正結果）と共にトレーニングデータ１４２に記憶しうる。この情報をトレーニングデータ１４２に追加することによって、トレーニングデータは常に更新されて、機械学習モデル１４０を周期的にリトレーニングし更新できる。
【００４２】
２１４で、セキュリティプログラムは、認識結果を認識結果データ構造１５０に記憶しうる。
【００４３】
２１６で、セキュリティプログラムは、受信パケットデータ１７６に対応する動作が有害かあるいは機器の異常動作をもたらしうるかを決定しうる。例えば、セキュリティプログラム１３６は、認識結果を状態遷移情報ＤＳ１５８内の状態遷移情報と比較し、動作が悪意があるか、有害かあるいは異常かどうかを決定するための１組の論理規則を適用しうる。例えば、状態遷移情報は、機器の知識及び機器が動作する環境に基づいており、認識パターンの状態遷移情報を含みうる。
【００４４】
２１８で、セキュリティプログラムは、ダッシュボードＧＵＩ１６２を、認識結果から、動作が有害であるかあるいは異常であるかに関する決定から、及びパターンデータ構造１５２から得られたパターン情報から生成及び提示できる。
【００４５】
２２０で、場合によって、セキュリティプログラムは、ダッシュボードＧＵＩ１６２を介して１つ以上の変更を受信できる。例えば、ユーザは、異常と分類された結果が実際には正常であるか又はその逆であることを決定しうる。したがって、ユーザは、ダッシュボード内の正常又は異常記号を変更し、セキュリティプログラム１３６は、それに応じてパターンＤＳ１５２を更新しうる。
【００４６】
２２２で、セキュリティプログラムは、ユーザ命令などに応じて、シミュレータＧＵＩ１４８を生成しうる。更に後述されるように、シミュレータＧＵＩ１４８は、パターンデータ構造１５２からのパターンデータを含みうる。２２４に示されたように、ユーザは、パターンをパターンＤＳに追加することなどによってパターンデータを変更しうる。
【００４７】
２２４で、セキュリティプログラムは、シミュレータＧＵＩ１４８を介して受信した追加パターンを受信し、追加パターンをパターンＤＳに記憶しうる。
【００４８】
２２６で、セキュリティプログラムは、パターンＤＳ１５２内のパターンを使用してシミュレートされた時系列データブロックを生成しうる。例えば、新しく受信したパターンを使用して、受信パケットデータ１７６に基づいて生成されたものに類似の時系列データブロックを生成できる。セキュリティプログラム１３６は、シミュレートされた時系列データブロックを構成するときに変数フィールドＤＳ１５４にアクセスして、ピクセル位置などを決定できる。パターンＤＳ１５２からのシミュレートされた時系列データブロック及び関連パターン番号が、トレーニングデータ１４２に追加されうる。
【００４９】
２２８で、幾つかの例では、イメージを分類するクラスタ化及び微分抽出などの従来の認識技術の認識結果に基づいて、セキュリティプログラムは、時系列データＤＳ１４８内の時系列データブロックにパターン番号を付加して、パターン番号を有する時系列データブロックを生成しうる。パターン番号を有する時系列データブロックは、後で機械学習モデル１４０を更新するトレーニングデータ１４２の一部として使用されるトレーニングデータ１４２に追加されうる。
【００５０】
２３０で、セキュリティプログラム１３６は、モデル構築プログラムを周期的に呼び出して機械学習モデル１４０をトレーニングしかつ／又は更新しうる。例えば、新しいトレーニングデータ１４２が蓄積されたとき、モデル構築プログラムは、機械学習モデル１４０をより最近のトレーニングデータ１４２でリトレーニングするために周期的に使用されうる。
【００５１】
図３Ａは、幾つかの実施態様によるサイクリックパケット１７０の例示的なフォーマット３００を示す。前述したように、サイクリックパケット１７０は、機械の状態値と設定値、及び制御コンピューティング装置によって制御されたプロセスマネージャの信号を監視するために使用されうる。サイクリックパケット１７０は、送信元ＩＰアドレス（例えば、それぞれの制御コンピューティング装置のＩＰアドレス）を表すＳＩＰ３０２、宛先ＩＰアドレス（例えば、ＨＭＩコンピューティング装置のＩＰアドレス）を表すＤＩＰ３０４、送信元ポート番号を表すＳｐｏｒｔ３０６、宛先ポート番号を表すＤｐｏｒｔ３０８、及びコマンド名３０９を含む。
【００５２】
更に、サイクリックパケット１７０は、第１の機械３１０、第２の機械３１２，…，第Ｍの機械３１４、及び第１のプロセスマネージャ３１６，…，第Ｌのプロセスマネージャ３１８など、１つ以上の機械と１つ以上のプロセスマネージャの制御情報を含む。機械ごとに提供される情報は、状態値３２０、第１の設定値３２２、第２の設定値３２４及び第３の設定値３２６を含みうる。更に、プロセスマネージャごとに提供される情報は、第１の信号３３０、第２の信号３３２及び第３の信号３３４を含みうる。更に、図３Ａに関して例示的なパケットフォーマット及び情報が示されるが、本明細書の開示の恩恵を受ける当業者には多数の他の変形が明らかであろう。
【００５３】
図３Ｂは、幾つかの実施態様によるシーケンシャルパケット１７２の例示的フォーマット３５０を示す。前述したように、シーケンシャルパケット１７２は、機器内の機械の値を設定するために使用されうる。シーケンシャルパケット１７２は、この例では、例えば、機械設定及び／又はプロセスマネージャ信号設定の値を設定するために、機器を制御する制御コンピューティング装置のうちの１つに送信されうる制御情報を含む。シーケンシャルパケット１７２は、送信元ＩＰアドレス（例えば、ＨＭＩコンピューティング装置のＩＰアドレス）を表すＳＩＰ３０２、宛先ＩＰアドレス（例えば、それぞれの制御コンピューティング装置のＩＰアドレス）を表すＤＩＰ３０４、送信元ポート番号を表すＳｐｏｒｔ３０６、宛先ポート番号を表すＤｐｏｒｔ３０８、及びコマンド名３０５を含む。
【００５４】
更に、シーケンシャルパケット１７２は、行われる書き込み又は読み取りを指示する書き込み／読み取り命令３５２を含みうる。更に、シーケンシャルパケット１７２は、機器のどの機械に対して値を書き込むか読み取るべきかを指示する機械インジケータ３５４、設定値番号を表す設定値番号３５６、及び新しい値を示す設定値３５８を含みうる。更に、シーケンシャルパケット１７２は、機器のどのプロセスマネージャに対して信号値を書き込むか読み取るべきかを示すプロセスマネージャインジケータ３６０、信号番号（例えば、幾つかの例では、１、２、又は３）を表す信号番号３６２、及びプロセスマネージャに適用される信号値を表す信号値３６４を含みうる。
【００５５】
図４は、幾つかの実施態様によるデータ表現として例示的な時系列データブロック４００を示す。幾つかの例では、時系列データブロック４００は、図１と図２に関して前述されたように、セキュリティプログラムが制御システム１０４から受信するパケットデータを使用してセキュリティプログラム１３６（図４に示されない）によって生成されたデータ表現である。例えば、セキュリティプログラムは、サイクリックパケット１７０から抽出された設定値、状態値及び動作データを使用して時系列データブロック４００を作成でき、これは、それぞれの制御コンピューティング装置によってそれぞれの機器１１４（図４に示されない）に適用される状態値と設定値を示しうる。更に、セキュリティプログラムは、シーケンシャルパケット１７２を使用して時系列データブロック４００を作成でき、この時系列データブロック４００は、制御コンピューティング装置によってそれぞれの機器内の機械又はプロセスマネージャに適用される値を示しうる。幾つかの例では、セキュリティプログラムは、図１と図２に関して前述され、図９に関して更に後述される変数フィールドデータ構造１５４に示された配置情報に従って時系列データブロック４００を生成しうる。
【００５６】
示された例では、セキュリティプログラムは、受信パケット情報から時系列データブロック４００を、複数のピクセルからなるイメージデータ４０２として生成する。したがって、この例では、時系列データブロック４００は、受信パケット情報を表すイメージである。このイメージは、図１と図２に関して前述された認識プロセスで使用されうる。代替例では、受信パケットデータは、更に後述されるように、時系列データブロック４００としてマトリクスとして表されうる。例えば、イメージは、高さが第１次元であり、幅が第２次元であり、ＲＧＢ色が第３次元のマトリクスとして表され、サイズは３に制限される。場合によって、マトリクスは、第３次元で無制限のサイズを有しうる。他の変形は、本明細書の開示の恩恵を受ける当業者に明らかになる。
【００５７】
図４の時系列データブロック４００において、イメージデータ４０２は、時系列データブロック４００の下４０４の方ほど古いデータを示し、時系列データブロック４００の上４０６の方ほど新しいデータを示す。この順序は、他の例では逆にされもよく、又は別の代替案として、情報は、垂直方向ではなく水平方向に時間経過順に表されうる。更に、４０８で示されたように、時系列データブロック４００は、各１ピクセルに対応する複数の時間間隔に垂直方向に分割され、１ピクセルの垂直間隔は１サイクルを表す。
【００５８】
時系列データブロック４００は、例えば図３に関して前述された状態値３２０に対応する状態値の時系列データを表す第１のピクセルバンド４１０を含む。更に、第２のピクセルバンド４１２は、図３の設定値１  ３２２の時系列データを表し、第３のピクセルバンド４１４は、図３の設定値２  ３２４の時系列データを表しうる。更に、ピクセル４２０とピクセル４２２は、設定値２を操作するシーケンシャルパケットの到着を表し、ピクセル４２４とピクセル４２６は、設定値１を操作するシーケンシャルパケットの到着を表す。到着ピクセルごとに、対応するピクセルバンド上に遷移４３０が表されうる。状態値及び設定値１と２の時系列データを表すピクセルバンド４１０、４１２及び４１４はそれぞれ、１ピクセル以上の幅を有することができ、幾つかの例では、色付けされてもよく、パケットから抽出された値に対応する他のグラフィカル効果又はパターンを有してもよい。一例として、ピクセルバンド４１０、４１２及び４１４の幅はそれぞれ、状態値及び設定値１及び２のビット幅に対応しうる。この例では、図３の設定値３  ３２６及び／又は信号１〜３  ３３０〜３３４のピクセルバンドは、時系列データブロック４００に含まれないが、他の例では、そのようなパラメータを含むパケットが受信される場合には含まれる。
【００５９】
前述されたように、例えば、図２に関して、セキュリティプログラムは、パターン番号を時系列データブロック４００に付加し、付加されたパターン番号を有する時系列データブロック４００を、機械学習モデルをトレーニングするためにモデル構築プログラムによって使用されるトレーニングデータの一部として記憶しうる。セキュリティプログラムは、時系列データブロック４００を機械学習モデルへの入力として使用して、時系列データブロック４００内のパターンを認識しうる。一例として、機械学習モデルは、上に列挙されるように、他のタイプの機械学習モデルが使用されてもよいが、ＣＮＮ（畳み込みニューラルネットワーク）などのディープラーニングアルゴリズムに基づいてもよい。
【００６０】
機械学習モデルを使用して時系列データブロック４００内のパターンを認識することによって、セキュリティプログラムは、制御システム１０４内で送信された非標準化プロトコルのパケットを分析することによって通信データのパターンを認識できる。幾つかの例では、セキュリティプログラムは、パターンを認識するための時間を、それぞれの時系列データブロック４００がシーケンシャルパケット１７２の到着を表すピクセルを含む時間に制限しうる。更に、セキュリティプログラムは、認識結果をパターンデータ構造１５２内の定義された正常又は異常動作の情報と突き合わせることによって通信データを機器の正常又は異常動作に対応するように分類する機械学習モデルの出力に基づいて、ダッシュボードＧＵＩを分類情報と共に提示できる。
【００６１】
図５は、幾つかの実施態様により時系列データブロックを生成するための例示的プロセス５００を示す流れ図である。幾つかの例において、プロセス５００は、プロセス５００に示された動作の少なくとも幾つかを行うためのセキュリティプログラム１３６を実行することによって、サービスコンピューティング装置１０２又は他の適切なコンピューティング装置の１つ以上のプロセッサによって実行されうる。
【００６２】
５０２で、セキュリティプログラムは、例えば図１と図２に関して前述されたように制御システム１０４からパケットを受信しうる。
【００６３】
５０４で、セキュリティプログラムは、受信パケットがサイクリックパケットかシーケンシャルパケットかどうかを決定しうる。パケットがサイクリックパケットである場合、プロセスは５０６に進み、そうでない場合プロセスは５１４に進む。
【００６４】
５０６で、セキュリティプログラムは、サイクリックパケットが新しいサイクリックパケットかどうかを決定しうる。例えば、パケットがサイクリックパケットであるとき、パケットは、複数のパケットで構成されうる。したがって、セキュリティプログラムは、特定のサイクルのパケットが新しいかどうかを決定しうる。新しい場合、プロセスは５０８に進み、そうでない場合、プロセスは５０８を省略する。
【００６５】
５０８で、セキュリティプログラムは、１つの行（１サイクル、即ち時間間隔に対応する）を時系列データブロックの一番下に追加しうる。
【００６６】
５１０で、セキュリティプログラムは、パケットのペイロードから変数フィールドを抽出しうる。
【００６７】
５１２で、セキュリティプログラムは、抽出した値を、変数フィールドＤＳ１５４を参照しながら、時系列データブロックの最上行内のプリセットフィールド（例えば、図９に関して後述される変数フィールドＤＳ１５４内の列９１０に指定されたように）に追加しうる。例えば、変数フィールドＤＳ１５４は、設定値又は状態値として抽出されなければならないパケットフィールドの場所を示しうる。
【００６８】
５１４で、パケットが５０４のシーケンシャルパケットであると決定された場合、セキュリティプログラムは、パケットのペイロードから動作ターゲットのフィールドを抽出しうる。例えば、これは、図３Ｂに関して前述されたような宛先ＩＰアドレス（ＤＩＰ３０４）に基づいて決定されうる。
【００６９】
５１６で、セキュリティプログラムが、到着通知を時系列データ構造の最上行内のプリセットフィールドに追加でき、同時に、変数フィールドデータ構造を参照して、設定値又は状態値として抽出すべきパケットフィールドの位置を決定できる。
【００７０】
５１８で、時系列データブロック内の行数がしきい値を超えた場合、時系列データは、時系列データＤＳ１４８に記憶され、時系列データの最下行が削除される。ステップ１１０４で１行を時系列データブロック４０１に追加するとき、時系列データブロックジェネレータ１０１が、時系列データブロック４０１の現在の最上行を新しい最上行として複製しうる。時系列データブロックジェネレータ１０１がパケットを受信しない場合、以前の行のデータが新しい行のデータとして使用される。
【００７１】
図６Ａは、幾つかの実施態様による例示的な時系列データ６００を示す。図６Ａの例は、図４のピクセルバンド４１０〜４１４上の１つの垂直間隔（即ち、１サイクル）を生成する例を示す図であり、ピクセルバンド４１０〜４１４はそれぞれ、図４の時系列データブロック４００内の状態値３２０、設定値１  ３２２及び設定値２  ３２４の時系列データを表す。例えば、フルカラーイメージデータの１ピクセルは、典型的には、合計２４ビットのカラーデータの場合、赤、緑及び青の各色に８ビットのデータを有する。更に、グレースケールイメージデータの１ピクセルは、典型的には、輝度を表す８ビットのデータを有しうる。時系列データブロック４００は、状態値３２０、設定値１及び設定値２の１つの垂直間隔をそれぞれ８ビットを超える幅を有するように表すために、複数ピクセルの図４のピクセルバンド４１０〜４１４の１つの垂直間隔を含みうる。
【００７２】
図６Ａは、８ビットを超える状態値と設定値を上位ビットと下位ビットの値に分割し、定数値を掛けた上位ビットの値を表す時系列データブロックを生成することによって、状態値３２０、設定値１  ３２２及び設定値２  ３２４を幅８ビットを超える幅を有するように表す技術の一例を示す。この例では、パケットから抽出された初期値が、上位ビット６０２と下位８ビット６０４を含む２つの値に分割される。上位ビット６０２の値は、定数値（例えば、この例では８）を掛けて乗算上位ビット６０６の値を生成することによって強調されうる。乗算上位ビット６０６は、下位ビット６０４の値と組み合わされて複数ピクセル６０８を生成する。
【００７３】
図６Ｂは、幾つかの実施態様による時系列データを生成する例６２０を示す。図６Ａの例において、示された技術は、値が下位ビットの値から上位ビットの値に桁上げするときに下位ビットと上位ビット両方の値が小さい値になりうるので、特徴を表すのに十分でないことがある。したがって、特徴をはっきりと表すために、本明細書の幾つかの例は、上位ビットの値と下位ビットの値の桁上げ又は大小関係を表すピクセルを追加するプロセスを含みうる。図６Ｂのプロセスは、最初に、８ビットを超える状態値３２０並びに設定値３２２及び３２４を下位８ビット６２２の値と上位ビット６２４の別の値に分割することを含む。次に、下位８ビット６２２の値を表すピクセル６２６が直接生成されうる。更に、上位ビット６２４の値がゼロより大きいときに最大値（０ｘＦＦ）になることによって桁上げを表すピクセル６２８が生成されてもよく、上位ビットの値が定数値より大きいときに上位ビットの値に定数値（即ち、この例では３２）を掛けることによって大小関係を表すピクセル６３０、６３２及び６３４が生成されてもよい。最後に、このプロセスは、これらのピクセルを複数のピクセルデータ６４０に組み合わせる。次に、セキュリティプログラムは、複数のピクセルの幅として表されるピクセルバンド４１０、４１２及び４１４を生成しうる。したがって、セキュリティプログラムは、パターン認識の精度を高めるために上記プロセスを使用して生成された時系列データブロック４００の特徴を強調しうる。
【００７４】
図７Ａは、幾つかの実施態様による例示的な時系列データブロック７００を示す。図７Ａの例は、時系列データブロック７００内の特徴を強調する代替プロセスを含む。この例は、状態値３２０並びに／又は設定値３２２及び３２４の初期値と最終値を強調できる。この例では、時系列データブロック７００は、時系列設定値１を表すピクセルバンド７０２と、時系列設定値２を表すピクセルバンド７０４とを含む。この場合、時系列データブロック７００は、設定値１の初期値を表すピクセル７０６と、設定値２の初期値を表すピクセル７０８を含む。更に、時系列データブロック７００は、設定値１の最終値を表すピクセル７１０と、設定値２の最終値を表すピクセル７１２とを含む。したがって、時系列データブロック７００は、状態値３２０並びに／又は設定値３２２及び３２４の初期値と最終値を強調する。
【００７５】
図７Ｂは、幾つかの実施態様による例示的なデータブロック７２０を示す。図７Ｂの例は、状態値並びに設定値１及び２それぞれのＲＧＢのカラーデータのような異なるチャネルデータを使用して特徴を強調する代替プロセスを含む。この例では、時系列データブロック７２０は、個々のピクセルのデータの３つのチャネルとしてＲＧＢ（赤、緑、青）のような３種類のデータを有する。時系列データブロック７２０は、様々な種類のデータに様々なチャネルの組み合わせを使用してピクセルバンドを表す。例えば、時系列データブロック７２０は、時系列状態値を表すピクセルバンド７２２と、時系列設定値１を表すピクセルバンド７２４と、時系列設定値２を表すピクセルバンド７２６を含む。この場合、時系列状態値を表すピクセルバンド７２２が、カラーチャネル１（例えば、赤）を使用し、時系列設定値１を表すピクセルバンド７２４が、カラーチャネル２及び３（例えば、緑、青）を使用し、時系列設定値２を表すピクセルバンド７２６が、カラーチャネル２（例えば、緑）を使用しうる。したがって、時系列データブロック７２０は、各種類のデータ値によって特徴を強調し、これにより本明細書のパターン認識の精度が改善される。
【００７６】
図８は、幾つかの実施態様による時系列データの例８００を示す。この例では、セキュリティプログラムは、時系列データブロック内の状態値３２０並びに設定値３２２及び３２４の時系列データを表すピクセルバンドの１つの垂直（周期的）間隔を生成しうる。例えば、時系列データブロック４１０などの時系列データブロックは、値ごとに１バイトのデータに基づいて、状態値３２０及び／又は設定値３２２，３２４の１つの垂直（周期的）間隔を表す。例えば、状態値３２０並びに設定値３２２及び３２４がそれぞれ、４ビット（例えば、０ｘＣ）の値として表され、図８に示されたように、サイクリックパケット３００のペイロード内で、０ｘＣＣ  ８０２や０ｘＣ０  ８０４などの左揃え値として記述されたとき、左揃え値は、上位４ビット８０６、中位４ビット８０８及び下位４ビット８１０の３つの値に分割されうる。これらの３つの値はそれぞれ、定数値（この例では８など）が掛けられ、それぞれ０ｘＣ０  ８１２、８１４及び８１６などの１バイトの３つの独立値として表されうる。セキュリティプログラムは、８ビット未満の各値を１バイトの独立値として表し、したがって、前述のプロセスを使用して時系列データブロックの特徴を強調でき、これにより、本明細書のパターン認識の精度が改善される。
【００７７】
図９は、幾つかの実施態様による例示的な変数フィールドデータ構造１５４を示す。変数フィールドデータ構造１５４は、機器の変数フィールドを指定するために使用され、イメージデータ又はマトリクスデータを表しうる。変数フィールドデータ構造１５４は、機器の識別子９０２と、それぞれの機器に含まれる機械９０４と、それぞれの機器に含まれるプロセスマネージャ９０６と、それぞれの機械とプロセスマネージャの値の型９０８と、それぞれの時系列データブロック内の左側からのピクセル（又は列）の位置９１０と、各値によるパケットペイロード内の左側からのバイト（又はパケット）の位置９１２とを含む。例えば、機器Ａ１１４（ａ）は、機械１１８（ａ）、機械１２０（ａ）及びプロセスマネージャ１１６（ａ）を含み制御する。各機械１１８（ａ），１２０（ａ）は、状態値、設定値１〜４、設定値１〜２の動作値、及び別の動作値を含む。更に、プロセスマネージャ１１６（ａ）は、信号１〜３を含む。同様に、機器Ｂ１１４（ｂ）は、機械１１８（ｂ）、機械１２０（ｂ）及びプロセスマネージャ１１６（ｂ）を含み制御する。各機械１１８（ｂ）及び１２０（ｂ）は、状態値、設定値１〜４、設定値１〜２の動作値、及び別の動作値を含む。更に、プロセスマネージャ１１６（ｂ）は、信号１〜３を含む。同様に、機器Ｃ１１４（ｃ）は、機械１１８（ｃ）、機械１２０（ｃ）及びプロセスマネージャ１１６（ｃ）を含み制御する。各機械１１８（ｃ），１２０（ｃ）は、状態値、設定値１〜４、設定値１〜２の動作値、及び別の動作値を含む。更に、プロセスマネージャ１１６（ｃ）は、信号１〜３を含む。
【００７８】
前述したように、変数フィールドデータ構造１５４の列９１０は、各時系列データブロックの最上行内のプリセットフィールド（ピクセル又は列）を示す。変数フィールドを指定する変数フィールドデータ構造１５４の情報は、図１と図２に関して前述されたシミュレータＧＵＩによって変更可能でよい。変数フィールドデータ構造１５４に含まれる情報によって、セキュリティプログラムは、図９に示されたように、それぞれのパケット内の教示値の位置を決定し、変数フィールドを指定する情報を使用して時系列データブロックを生成できる。
【００７９】
図１０は、幾つかの実施態様による例示的なパターンデータ構造（ＤＳ）１５２を示す。図１０の例は、パターンＤＳ１５２の例示的フォーマットを示し、このフォーマットは、パターン番号１００２によるパターンのリストと、１００４で示されたように、リストされたパターンごとの正常又は異常の情報を含む。更に、パターンＤＳ１５２は、リストされた各パターンに示されたように、機械１１８，１２０又はプロセスマネージャ１１６に応じてリストされた各機器１１４による状態値、設定値１〜４、設定値１〜２の動作値、他の動作値及び／又は信号１〜３のアクション１００６を含む。
【００８０】
アクション１００６の情報１００８は、指定値が増大するか減少するか、初期値、最終値、変更の初期及び最終サイクル、及び／又は値がどのように変化したかを含みうる。パターンＤＳ１５２の情報は、図１と図２に関して前述したシミュレータＧＵＩ１４６に表示されうる。更に、パターンＤＳ１５２の情報は、シミュレータＧＵＩを介してユーザによって手動で変更又は追加されてもよく、かつ／又は実時系列データブロックに基づいて自動的に作成されてもよい。したがって、セキュリティプログラムは、ユーザが、シミュレータＧＵＩを介してパターンテーブル又はファイル１１７の情報を手動で変更することによって、パターン１００２ごとに「正常」又は「異常」１００４の指定を変更することを可能にできる。セキュリティプログラムは、パターンＤＳ１５２に記録されたパターンの情報によって指定されたように時系列データブロックを生成しうる。更に、モデル構築プログラムは、機械学習モデル１４０を、ランニングシミュレーションから得られたトレーニングデータの組み合わせ、パターンデータ構造１５２内のパターン、及び実際の動作環境から得られた情報に基づいて作成できる。
【００８１】
図１１は、幾つかの実施態様による例示的なダッシュボードＧＵＩ１６２を示す。図１１の例では、ダッシュボードＧＵＩ１６２は、現在認識されているパターン１１０４を表示する第１の表１１０２と、以前に認識されていた統計パターン１１０８を表示する第２の表１１０６とを含む。
【００８２】
現在認識されているパターン１１０４を表示する第１の表１１０２は、現在認識されているパターンのパターン番号１１１０と、各機器Ａ〜Ｃにより並びに対応する機械１１８，１２０及びプロセスマネージャ１１６ごとに、パターンが正常か異常かの指示１１１２とを表示する。以前に認識されていた統計パターン１１０８を表示する第２の表１１０６は、各パターンによって、パターン番号１１２０、動作パターン及び値１１２２、正常又は異常の指示１１２４、実現数１１２６、頻度１１２８、最近の時間１１３０、及び実際に検出されたパターン１１０８を含みうる。ユーザは、各パターンによる正常又は異常の表示を示す列１１２４によって特定のパターンの正常又は異常の指示を更新し、更新された情報は、パターンデータ構造に反映される。したがって、ダッシュボードＧＵＩ１６２は、ユーザが、実行後に正常又は異常の情報を手動で変更し、実現値などの統計情報を表示することを可能にする。
【００８３】
図１２は、幾つかの実施態様によるセキュリティプログラム１３６によって実行されうる例示的なプロセス１２００を示す流れ図である。前述の例では、パケットデータを入力データとして使ってパターンを認識するシステムが開示される。図１２の例によって示されたように、本明細書のシステム及びプロセスは、幾つかの例では、パケットデータ以外のデータを使用しうる。図１２は、センサ、カメラ、マイクロフォン、記憶装置、情報技術装置、気象観測装置、医療記録などのデータ発生源１２０４から受信された時系列データ１２０２を使用してパターンを認識する流れを示す。この例では、ブロック２０２は、１２０６に概して示されたようにパケットデータの受信からデータの受信に変更される。他の状況では、異常データを認識する図１２のプロセスは、一般に、図２に関して前述されたものと同じである。
【００８４】
本明細書に記載された例示的なプロセスは、検討のために提供されたプロセスの例に過ぎない。本明細書の開示を鑑みて多くの他の変形が当業者に明らかになる。更に、本明細書の開示は、プロセスを実行するのに適したシステム、アーキテクチャ及び環境の幾つかの例を示すが、本明細書の実施態様は、図示され検討された特定の例に限定されない。更に、この開示は、記述され図面に示されたような種々の例示的実施態様を提供する。しかしながら、この開示は、本明細書に記述され図示された実施態様に限定されず、当業者に知られるか知られることになるように、他の実施態様に拡張されうる。
【００８５】
本明細書に記述された種々の命令、プロセス及び技術は、本明細書においてコンピュータ可読媒体に記憶されプロセッサによって実行されるプログラムなどのコンピュータ実行命令の一般的状況で検討されうる。一般に、プログラムは、特定のタスクを実行するか特定の抽象データ型を実現するためのルーチン、モジュール、オブジェクト、コンポーネント、データ構造、実行可能コードなどを含む。これらのプログラムなどは、ネイティブコードとして実行されてもよく、仮想機械又は他のジャスト・イン・タイムコンパイル実行環境などでダウンロードされ実行されうる。典型的には、プログラムの機能は、種々の実施態様で必要に応じて組み合わされるか分散されうる。これらのプログラム及び技術の実現は、コンピュータ記憶媒体に記憶されてもよく、何らかの形態の通信媒体により伝送されてもよい。
【００８６】
内容を構造的特徴及び／又は方法論的行為に固有の言語で述べたが、添付の特許請求の範囲に定義された内容が、必ずしも述べた特定の特徴又は行為に限定されないことを理解されたい。より正確に言うと、特定の特徴及び行為は、特許請求の範囲を実現する例示的な形態として開示される。
【符号の説明】
【００８７】
１００  システム
１０２  サービスコンピューティング装置
１０６  回線
１０８  一次制御コンピューティング装置
１１０  二次制御コンピューティング装置
１１２  制御アプリケーション
１１４  機器
１１６  プロセスマネージャ
１２４  ＨＭＩコンピューティング装置
１２６  管理プログラム
１３０  プロセッサ
１３２  通信インタフェース
１３４  コンピュータ可読媒体
１３６  セキュリティプログラム
１３８  モデル構築プログラム
１４０  機械学習モデル
１４２  トレーニングデータ
１４６  シミュレータＧＵＩ
１４８  時系列データＤＳ
１５０  認識結果ＤＳ
１５２  パターンＤＳ
１５４  変数フィールドＤＳ
１５８  状態遷移情報ＤＳ
１６０  表示装置
１６２  ダッシュボードＧＵＩ
１７０  サイクリックパケット
１７２  シーケンシャルパケット
１７６  パケットデータ
【図１】
2021511590.tif 000003
【図２】
2021511590.tif 000004
【図３Ａ】
2021511590.tif 000005
【図３Ｂ】
2021511590.tif 000006
【図４】
2021511590.tif 000007
【図５】
2021511590.tif 000008
【図６Ａ】
2021511590.tif 000009
【図６Ｂ】
2021511590.tif 000010
【図７Ａ】
2021511590.tif 000011
【図７Ｂ】
2021511590.tif 000012
【図８】
2021511590.tif 000013
【図９】
2021511590.tif 000014
【図１０】
2021511590.tif 000015
【図１１】
2021511590.tif 000016
【図１２】
2021511590.tif 000017
【手続補正書】
【提出日】令和2年7月17日(2020.7.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムであって、
１つ以上のプロセッサと、
実行命令を維持する１つ以上の非一時的コンピュータ可読媒体とを含み、前記実行命令は、前記１つ以上のプロセッサによって実行されたとき、
制御システムから複数の回線を介して送信されたパケットデータを受信する操作であって、前記パケットデータが、サイクリックパケットデータとテンポラリシーケンシャルパケットデータを含み、前記サイクリックパケットデータが、前記機器の状態値を含み、前記テンポラリシーケンシャルパケットデータが、前記機器の１つの状態に１つの設定値を含み、前記制御システムが、少なくとも１つのコンピューティング装置によって制御された機器を含む操作と、
前記パケットデータに基づいて、前記機器の状態値と設定値の両方を表すデータ表現を生成する操作であって、
前記パケットデータが、前記１つ以上の機器制御コンピューティング装置からの複数の回線を介して周期的に送信され最初に受信されたサイクリックパケットに対応するという決定に基づいて、前記データ表現を生成することが、前記パケットデータから抽出された値を前記データ表現の最後に追加し、以前に受信されたパケットデータから抽出された値を前記データ表現の別の最後から除去することを含むか、
前記パケットデータが、前記制御システム内のコンピューティング装置の監視から複数の回線を介して送信され受信されたテンポラリシーケンシャルパケットに対応するという決定に基づいて、前記データ表現を生成する操作が、前記シーケンシャルパケットの到着の通知を前記データ表現に追加することを含むか、又は
前記パケットデータと前記データ表現の間の前記状態値と前記設定値の位置を決定する表に基づいて、前記サイクリックパケットと前記テンポラリシーケンシャルパケットから前記状態値と前記設定値の両方を含む、前記データ表現を生成する操作と、
前記データ表現に認識を実行して、前記テンポラリシーケンシャルパケットを受信するときだけ、前記パケットデータが正常状態を示すか異常状態を示すかを決定する操作と、
前記パケットデータが前記異常状態を示すという決定に基づいて、少なくとも１つのアクションを実行する操作と、を含む操作を実行するように前記１つ以上のプロセッサを構成するシステム。
【請求項２】
前記操作が、更に、複数のピクセルを含むイメージとして前記データ表現を生成する操作を更に含み、前記複数のピクセルが、
前記パケットデータから抽出された機器設定値、又は、
前記パケットデータから抽出された機器状態値の少なくとも一方に基づいて定義される、請求項１に記載のシステム。
【請求項３】
前記データ表現が、前記制御システム内の１つ以上の制御コンピューティング装置からある時間にわたって受信された複数のパケットのパケットデータを表す時系列データブロックである、請求項１に記載のシステム。
【請求項４】
前記データ表現に前記認識を実行する操作が、前記データ表現の１つ以上の特徴を、以前に受信されたパケットの複数のデータ表現のうちの１つ以上の特徴と比較して、前記パケットデータが、前記正常状態を示すか前記異常状態を示すかを決定する操作を含む、請求項１に記載のシステム。
【請求項５】
前記操作が、更に、
前記以前に受信されたデータパケットの複数のデータ表現に少なくとも部分的に基づいて機械学習モデルをトレーニングする操作を含み、前記複数のデータ表現が、前記正常状態又は前記異常状態の一方と関連付けられ、
前記データ表現に前記認識を実行する操作が、前記機械学習モデルを使用して前記データ表現のパターンが前記正常状態を示すか前記異常状態を示すかを決定する、請求項１に記載のシステム。
【請求項６】
前記操作が、更に、
グラフィックユーザインタフェースを介して受信されたパターンに基づいて複数のシミュレートされたデータ表現を生成する操作と、
前記シミュレートされたデータ表現を、前記機械学習モデルをトレーニングするために使用された前記複数のデータ表現と共に含む操作とを含む、請求項５に記載のシステム。
【請求項７】
前記操作が、更に、
前記データ表現及び識別されたパターンの前記指示を記憶する操作と、
次に前記機械学習モデルをトレーニングするときに、前記記憶されたデータ表現を前記複数のデータ表現と共に含む操作とを含む、請求項１に記載のシステム。
【請求項８】
前記パケットデータに基づいて前記データ表現を生成する操作であって、前記データ表現が、前記機器の状態又は設定の少なくとも１つを表し、更に、
前記機器の前記状態又は前記設定の一方に対応する、８ビットを超える値を抽出する操作と、
前記抽出された値を上位ビットの第１の値と下位ビットの第２の値に分割する操作と、
前記第１の値に定数を乗算する操作と、
前記乗算された第１の値と前記第２の値を有する前記データ表現を生成する操作とを含む、請求項１に記載のシステム。
【請求項９】
前記操作が、更に、
前記データ表現の認識パターンを、前記機器の前記状態又は前記機器の前記設定の少なくとも一方と関連付けられた正常又は異常の指示と共に表示するグラフィカルユーザインタフェースを提示する操作と、
前記グラフィカルユーザインタフェースを介して入力を受け取って、前記正常の指示を異常に変更するか前記異常の指示を正常に変更する操作と、
前記変更をパターンデータ構造内の前記認識パターンと関連付ける操作とを含む、請求項１に記載のシステム。
【請求項１０】
前記操作が、更に、前記データ表現を、前記機器の設定又は状態の少なくとも一方の様々な値にそれぞれ対応する複数の列又は行を含むマトリクスとして生成する操作を含む、請求項１に記載のシステム。
【請求項１１】
前記少なくとも１つのアクションを実行する操作が、
前記制御システムの動作を監視するコンピューティング装置に、前記検出された異常状態の指示を含む通信を送信する操作と、
制御コンピューティング装置に前記機器の設定を変更させる制御通信を前記制御コンピューティング装置に、送信する操作との少なくとも１つを含む、請求項１に記載のシステム。
【請求項１２】
１つ以上のプロセッサによって、制御システムから複数の回線を介して送信されたパケットデータを受信するステップであって、前記パケットデータが、サイクリックパケットデータとテンポラリシーケンシャルパケットデータを含み、前記サイクリックパケットデータが、前記機器の状態値を含み、前記テンポラリシーケンシャルパケットデータが、前記機器の１つの状態に１つの設定値を含み、前記制御システムが、少なくとも１つのコンピューティング装置によって制御された機器を含むステップと、
前記パケットデータに基づいて、前記機器の状態値と設定値の両方を表すデータ表現を生成するステップであって、
前記パケットデータが、前記１つ以上の機器制御コンピューティング装置から周期的に受信された複数の回線を介して周期的に送信され、最初に受信されたサイクリックパケットに対応するという決定に基づいて、前記データ表現を生成するステップが、前記パケットデータから抽出された値を前記データ表現の最後に追加し、以前に受信されたパケットデータから抽出された値を前記データ表現の別の最後から除去するステップを含むか、
前記パケットデータが、前記制御システム内の監視コンピューティング装置から複数の回線を介して送信され受信されたテンポラリシーケンシャルパケットに対応するという決定に基づいて、前記データ表現を生成するステップが、前記シーケンシャルパケットの到着通知を前記データ表現に追加するステップを含むか、又は、
前記パケットデータと前記データ表現の間の前記状態値と設定値の位置を決定する表に基づいて、前記サイクリックパケットと前記テンポラリシーケンシャルパケットから前記状態値と設定値の両方を含む、前記データ表現を生成するステップと、
前記データ表現に認識を実行して、前記テンポラリシーケンシャルパケットを受信するときだけ前記パケットデータが正常状態を示すか異常状態を示すかを決定するステップと、
前記パケットデータが前記異常状態を示すという決定に基づいて、少なくとも１つのアクションを実行するステップとを含む方法。
【請求項１３】
命令を記憶する１つ以上の非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されたとき、
制御システムから複数の回線を介して送信されたパケットデータを受信する操作であって、前記パケットデータが、サイクリックパケットデータとテンポラリシーケンシャルパケットデータを含み、前記サイクリックパケットデータが、前記機器の状態値を含み、前記テンポラリシーケンシャルパケットデータが、前記機器の１つの状態に１つの設定値を含み、前記制御システムが、少なくとも１つのコンピューティング装置によって制御される機器を含む操作と、
前記パケットデータに基づいて、前記機器の状態値と設定値を表すデータ表現を生成する操作であって、
前記パケットデータが、前記１つ以上の機器制御コンピューティング装置から複数の回線を介して周期的に転送され最初に受信されたサイクリックパケットに対応するという決定に基づいて、前記データ表現を生成する操作が、前記パケットデータから抽出された値を前記データ表現の最後に追加し、以前に受信したパケットデータから抽出された値を前記データ表現の別の最後から除去する操作を含むか、
前記パケットデータが、前記制御システム内の監視コンピューティング装置からの複数の回線を介して送信され受信されたテンポラリシーケンシャルパケットに対応するという決定に基づいて、前記データ表現を生成する操作が、前記シーケンシャルパケットの到着通知を前記データ表現に追加する操作を含むか、又は、
前記パケットデータと前記データ表現の間の状態値と設定値の前記位置を決定する表に基づいて、前記データ表現を生成する操作が、前記サイクリックパケットと前記テンポラリシーケンシャルパケットから状態値と設定値の両方を含む、前記データ表現を生成する操作と、
前記テンポラリシーケンシャルパケットを受信したときだけ、前記データ表現に認識を実行して、前記パケットデータが正常状態を示すか異常状態を示すかを決定する操作と、
前記パケットデータが前記異常状態を示すという決定に基づいて、少なくとも１つのアクションを実行する操作とを行うように、システムの前記１つ以上のプロセッサをプログラムする１つ以上の非一時的なコンピュータ可読媒体。
【請求項１４】
前記操作が、更に、
指定値が増大するか減少するか、初期値、最終値、変更の初期及び最終サイクル、及び前記指定値がどのように変化したかを含む表に基づいて、複数の前記シミュレートされたデータ表現を生成する操作を含む、請求項６に記載のシステム。
【請求項１５】
前記操作が、更に、前記上位ビットの前記第１の値の大きさにより最大値の１つ以上のピクセルを生成する操作を含む、請求項８に記載のシステム。
【国際調査報告】
2021511590.tif 000018