本明細書の幾つかの実施態様は、機器、機械、工業制御ネットワーク又は他のオペレーショナルテクノロジ(OT)システムが、被制御システムの異常動作を引き起こしうる通信を受けるときに決定するシステムのための技術及び機構を対象とする。一例として、サービスコンピューティング装置は、ネットワークで送信されたパケットを検査することによって通信データのパターンを認識しうる。サービスコンピューティング装置は、通信データの認識結果に基づいてパケット(又は、その結果生じる機器の動作)が正常であるか異常であるかを決定しうる。例えば、サービスコンピューティング装置は、非標準プロトコルにより記述されOTシステムの制御ネットワークで送信されたパケットを分析することによって、通信データを正常か異常として分類できる。したがって、被制御システムによって使用されるプロトコルが未知の場合でも、本明細書の実施態様は、正常通信を、被制御システムを異常動作させうる有害通信と区別できる。
幾つかの例は、サービスコンピューティング装置がパケットデータを受信し検査することによって通信データのパターンを認識するパターン認識システム及びプロセスを含む。一例として、パケットデータは、制御システムの制御ネットワーク内で送信されたパケットをミラーリングすることによって取得されうる。場合によっては、制御ネットワークは、ヒューマン・マシン・インタフェース(HMI)コンピューティング装置と、制御ネットワークを介して制御システム内の機器を制御する一次及び二次制御コンピューティング装置との間の一次及び二次回線を含みうる。
サービスコンピューティング装置は、パケットデータからデータ表現を生成するように構成されうる。場合によって、データ表現は、時系列データをイメージ又はマトリクスフォーマットで表す時系列データブロックを含みうる。サービスコンピューティング装置は、機械制御のための機器設定値又は状態値の少なくとも1つを含むサイクリックパケットを監視するためにデータ表現を生成しうる。サービスコンピューティング装置は、更に、設定値を更新しうるテンポラリシーケンシャルパケットを監視するために、データ表現を生成するように構成されうる。サービスコンピューティング装置は、更に、パケットのペイロードデータから設定値、状態値又は動作値を抽出し、対応する機器の設定値、状態値及び/又は動作値の履歴値を含む対応する時系列データブロックを生成するように構成されうる。サービスコンピューティング装置は、更に、パターン認識プロセスを実行して、時系列データブロックを使用して通信データの1つ以上のパターンを認識するように構成されうる。サービスコンピューティング装置は、更に、認識結果を統計的に集約し、認識結果に基づいて認識パターンが正常か異常かに関する指示と共に認識パターンを表示しうるダッシュボードグラフィックユーザインタフェース(GUI)を描写し提示するように構成されうる。
本明細書の幾つかの実施態様は、被制御システムの制御ネットワーク内で送信されたパケットを分析することによって通信データの状態を監視するセキュリティシステム及び技術を提供する。例えば、本明細書のシステムは、OT制御システムに使用されうるプリミティブ及び/又は非標準化プロトコルによって記述されたパケットを分析できる。一例として、本明細書のシステムは、制御システムの制御コマンドを偽装する攻撃を検出できる。例えば、悪意ある行為者が、動作機器の制御値を変更する場合、従来のセキュリティ技術は、そのような変更を検出できないことがある。他方、本明細書のセキュリティシステム及び方法は、制御通信におけるパケットを分析し、パケットが被制御機器の望ましくない有害な又は異常な動作の原因になりうるかを決定できる。
本明細書における幾つかの例では、コンピュータシステムは、人間機械インタフェースと機械制御コンピュータとを接続するネットターク内で送信されたパケットを分析することによって、通信データのパターンを認識しうる。コンピュータシステムは、機械制御コンピュータの状態値と設定値を監視するサイクリックパケットと、設定値を操作するシーケンシャルパケットとを監視しうる。コンピュータシステムは、パケットデータに基づいて機械制御コンピュータの状態値と設定値を表す履歴データからなる時系列データブロックなどの受信パケットデータのデータ表現を生成しうる。更に、コンピュータシステムは、各時系列データブロックのパターンを認識でき、時系列データを正常又は異常として分類しうる。更に、本明細書のコンピュータシステムは、時系列データブロックを対応パターンのパターン番号と共に記憶するトレーニングデータを含みうる。トレーニングデータは、時系列データブロックをパターンの番号と共に使用してディープラーニングを実行する機械学習モデルをトレーニングするために使用される。
幾つかの例では、時系列データブロックは、機械コントローラの履歴状態と設定値及び/又はシーケンシャルパケットの履歴到着をピクセルバンドとして表すイメージデータとして生成されうる。幾つかの例では、履歴データのピクセルバンドとは別に状態値と設定値の初期値と最終値を含む時系列データブロックが生成されうる。幾つかの例では、各種類の状態値と設定値を様々なチャネルを使用するデータブロックとして表す時系列データブロックが生成されうる。更に、幾つかの例では、状態値と設定値のそれぞれをイメージデータ内の様々な色を使用するピクセルとして表す時系列データブロックが生成されうる。場合によって、時系列データブロックを生成するとき、8ビットを超える状態値と設定値は、上位ビットの値と下位ビットの値に分割されてもよく、上位ビットを強調するために定数値を掛けた上位ビットの値を表す時系列データブロックが生成されうる。
検討のため、幾つかの例示的な実施態様は、通信が被制御機器に適用されるべきでないパケットを含むかどうかを決定するコンピュータシステムの環境で示される。しかしながら、本明細書の実施態様は、本明細書の開示を鑑みて当業者に明らかなように、提供された特定の例に限定されず、他のタイプの機器及びシステム、他の使用環境、他のシステムアーキテクチャ、他のアプリケーションなどに拡張されうる。
図1は、幾つかの実施態様による、異常動作を引き起こしうる通信を検出し管理できるコンピュータシステム100の例示的アーキテクチャを示す。システム100は、機器がコンピュータによって制御されるOT制御システム又は他の制御システムなど、機器制御システム104と通信できる少なくとも1つのサービスコンピューティング装置102を含む。例えば、サービスコンピューティング装置102は、1つ以上のネットワーク106によって接続されてもよく、ネットワーク106は、回線Aや回線Bなどの冗長通信回線を含みうる。幾つかの例では、1つ以上のネットワーク106は、ローカルエリアネットワーク(LAN)を含むことができ、他の例では、1つ以上のネットワーク106は、インターネットなどの広域ネットワーク(WAN)を含みうる。したがって、1つ以上のネットワーク106は、光ファイバ、イーサネット、ファイバチャネルを含む有線ネットワーク、セルラネットワークなどの無線ネットワーク、Wi-Fiなどのローカル無線ネットワーク、BLUETOOTH(登録商標)などの短距離無線通信、直接有線接続、又はこれらの任意の組み合わせを含みうる。したがって、1つ以上のネットワーク106は、有線及び/又は無線両方の通信技術を含みうる。そのような通信に使用される構成要素は、ネットワークの種類、選択された環境又はこれらの両方の少なくとも一部分に依存できる。
制御システム104は、更に、少なくとも1つの一次制御コンピューティング装置108と、場合によっては少なくとも1つの二次制御コンピューティング装置110を含む。示された例では、制御システム104は、複数対の一次コンピューティング装置108と二次コンピューティング装置、即ち、第1の一次制御コンピューティング装置108(1)と第1の二次制御コンピューティング装置110(1)を含む第1対から、第Nの一次制御コンピューティング装置108(N)と第Nの二次制御コンピューティング装置110(N)を含む第N対までを含み、これらの対はそれぞれ、制御アプリケーション112を実行できる。各対の一次コンピューティング装置108は、本明細書の他の場所で列挙されたようなOTシステム内の機器又は他の被制御機器などの1つ以上の機器114を制御する制御アプリケーション112を実行できる。更に、各対の二次制御コンピューティング装置110は、一次制御コンピューティング装置108に故障があった場合に冗長フォールバックシステムとして働く制御アプリケーション112を実行しうる。
示された例では、第1対の制御コンピューティング装置108(1)及び110(1)は、制御アプリケーション112を実行して、3つの機器、即ち機器A114(a)、機器B114(b)、機器C114(c)を制御する。更に、第N対の制御コンピューティング装置108(N)及び110(N)は、制御アプリケーション112を実行して、3つの機器(即ち、機器D114(d)、機器E114(e)、機器F114(f))を制御する。この例では、各機器114は、プロセスマネージャ116と、第1の機械118や第2の機械120などの1つ以上の機械を含む。したがって、機器A114(a)は、プロセスマネージャ116(a)、第1の機械118(a)及び第2の機械120(a)を含むことがあり、機器B114(b)は、プロセスマネージャ116(b)、第1の機械118(b)及び第2の機械120(b)を含むことがあり、機器C114(c)は、プロセスマネージャ116(c)、第1の機械118(c)及び第2の機械120(c)を含むことがあり、機器D114(d)は、プロセスマネージャ116(d)、第1の機械118(d)及び第2の機械120(d)を含むことがあり、機器E114(e)は、プロセスマネージャ116(e)、第1の機械118(e)及び第2の機械120(e)を含むことがあり、機器F114(f)は、プロセスマネージャ116(f)、第1の機械118(f)及び第2の機械120(f)を含むことがある。プロセスマネージャ116は、制御アプリケーション112から命令を受けてそれぞれの機器114の機械を制御するコンピューティング装置(組み込みプロセッサ、論理回路、他の処理装置など)でよい。あるいは、他の例では、プロセスマネージャ116が含まれなくてもよく、制御アプリケーション112は、制御信号を直接送信することなどによってそれぞれの機械118,120と直接通信しうる。
更に、制御システム104は、アドミニストレータ、システムマネージャ、他のユーザなどの人によって使用されうる1つ以上の人間機械インタフェース(HMI)コンピューティング装置124を含みうる。HMIコンピューティング装置124は、制御システム104と関連機器114を監視しかつ/又は管理するための管理アプリケーション(管理プログラム126など)を実行しうる。したがって、HMIコンピューティング装置124、一次制御コンピューティング装置108、二次制御コンピューティング装置110、及び幾つかの例ではサービスコンピューティング装置102は、有線接続、無線接続又はこれらの組み合わせを使用して1つ以上のネットワーク106を介して通信できる。更に、幾つかの例では、一次制御コンピューティング装置108と二次制御コンピューティング装置110は、1つ以上のネットワーク106を介して、あるいは1つ以上の他のネットワーク、別個のLAN、直接接続などを介して機器114と通信しうる。更に、制御システム104の一例が図1の例に示されるが、本明細書の開示の恩恵を受ける当業者には多数の代替構成及び変形が明らかになる。したがって、本明細書の実施態様は、制御システム104の如何なる特定の構成にも限定されない。
幾つかの実施態様では、サービスコンピューティング装置102は、任意の数の方法で実施されうる1つ以上のサーバ、パーソナルコンピュータ、又は他のタイプのコンピューティング装置を含みうる。例えば、サーバの場合、プログラム、他の機能要素、及びデータ記憶機構の少なくとも一部分が、スタンドアロンサーバ、サーバのクラスタ、サーバファーム又はデータセンタ、クラウドホストコンピュータサービスなど、少なくとも1つのサーバ上に実現されうるが、追加又は代替として他のコンピューターアーキテクチャも使用されうる。
示された例では、サービスコンピューティング装置102は、1つ以上のプロセッサ130、1つ以上の通信インタフェース132、及び1つ以上のコンピュータ可読媒体134を含むかあるいはそれらと関連付けられうる。各プロセッサ130は、単一の処理ユニット又は幾つかの処理ユニットでよく、単一又は複数のコンピューティングユニット、或いは複数の処理コアを含みうる。プロセッサ130は、1つ以上の中央処理装置、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、状態機械、論理回路、及び/又は操作命令に基づいて信号を処理する任意の装置として実現されうる。例えば、プロセッサ130は、本明細書に記載されたアルゴリズムとプロセスを実行するように特にプログラム又は構成された任意の適切なタイプのうちの1つ以上のハードウェアプロセッサ及び/又は論理回路でよい。プロセッサ130は、コンピュータ可読媒体134に記憶されたコンピュータ可読命令をフェッチし実行するように構成されてもよく、この命令は、本明細書に記載された機能を実行するようにプロセッサ130をプログラムできる。
コンピュータ可読媒体134は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータなどの情報を記憶するための任意のタイプの技術で実現された揮発性及び不揮発性メモリ及び/又は取り外し可能及び取り外し不能媒体を含みうる。例えば、コンピュータ可読媒体134は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、光ストレージ、ソリッドステートストレージ、磁気テープ、磁気ディスクストレージ、RAIDストレージシステム、オブジェクトストレージシステム、ストレージアレイ、ネットワーク接続ストレージ、ストレージエリアネットワーク、クラウドストレージ、又は所望の情報を記憶するために使用できコンピューティング装置によってアクセスされうる他の媒体を含みうるがこれらに限定されない。サービスコンピューティング装置102の構成により、コンピュータ可読媒体134は、言及されるとき、非一時的コンピュータ可読媒体がエネルギー、キャリア信号、電磁波及び/又は信号自体などの媒体を除外するという点で、有形的な非一時的媒体でもよい。場合によって、コンピュータ可読媒体134が、サービスコンピューティング装置102と同じ位置でよいが、他の例では、コンピュータ可読媒体134は、サービスコンピューティング装置102から部分的に離れてもよい。
コンピュータ可読媒体134は、プロセッサ130によって実行可能な任意数の機能要素を記憶するために使用されうる。多くの実施態様では、これらの機能要素は、プロセッサ130によって実行可能であり、実行されたとき、特に本明細書でサービスコンピューティング装置102によるアクションを実行するようにプロセッサ130をプログラムする実行命令及び/又はプログラムを含む。コンピュータ可読媒体134に記憶された機能要素は、セキュリティプログラム136を含みうる。セキュリティプログラム136は、本明細書に記載されたような様々なタスクをプロセッサ130に実行させるために実行可能な1つ以上のコンピュータプログラム、コンピュータ可読命令、実行可能コード又はその一部分を含みうる。示された例では、セキュリティプログラム136は、トレーニングデータ142を使用して1つ以上の機械学習モデル140を生成しトレーニングするために呼び出されうるモデル構築プログラム138を含むか、そのモデル構築プログラム138にアクセスできる。加えて、セキュリティプログラム136は、更に、後で更に考察されるように、シミュレータGUI146及び/又は時系列データデータ構造(DS)148を生成するように実行されうる。
モデル構築プログラム138は、セキュリティプログラム136の実行可能モジュール又はその一部分でよい。あるいは、他の例では、モデル構築プログラム138は、セキュリティプログラム136によって呼び出されうる個別に実行可能なスタンドアロンコンピュータプログラムでよい。モデル構築プログラム138は、機械118,120又はプロセスマネージャ116などの機器114の異常動作を引き起こしうるパケットの認識に使用される少なくとも1つの機械学習モデル140を構築しトレーニングするように1つ以上のプロセッサ130を構成しうる。次に、セキュリティプログラム136は、トレーニングされた機械学習モデル140を新しく受信したパケットに適用して、そのパケットが正常な動作条件又は異常な動作条件に対応するかを決定できる。
更に、コンピュータ可読媒体134内の機能要素は、サービスコンピューティング装置102の各種機能を制御し管理しうるオペレーティングシステム(図1に示されない)を含みうる。場合によっては、機能要素は、コンピュータ可読媒体134の記憶部分に記憶され、コンピュータ可読媒体134のローカルメモリ部分にロードされ、1つ以上のプロセッサ130によって実行されうる。多数の他のソフトウェア及び/又はハードウェア構成は、本明細書の開示の恩恵を受ける当業者に明らかであろう。
更に、コンピュータ可読媒体134は、本明細書に記載された機能とサービスを実行するために使用されるデータとデータ構造を記憶しうる。例えば、コンピュータ可読媒体134は、1つ以上の機械学習モデル140を記憶でき、また機械学習モデル140をトレーニングするために使用されるトレーニングデータ142を記憶できる。後で更に考察されるように、コンピュータ可読媒体134に記憶されうる追加のデータ及びデータ構造は、時系列データDS148、認識結果DS150、パターンDS152、及び変数フィールドDS154を含む。更に、コンピュータ可読媒体134は、機器114に関連した状態遷移情報を状態遷移情報DS158に記憶できる。状態遷移情報は、機器114に関連したドメイン情報と、認識結果150が正常状態に対応するか異常状態に対応するかを決定するために使用されうる機器114が動作する環境とを含みうる。
機械学習モデル140は、1つ以上の受信パケットが機器114の異常動作を引き起こす可能性があるかどうかを決定するためにセキュリティプログラム136によって使用されうる。機械学習モデル140の例には、ランダムフォレスト、サポートベクトルマシン、又は畳み込みニューラルネットワークなどの深層学習ネットワークなどの分類モデルが含まれうる。機械学習モデル140の追加の例には、予測モデル、決定樹、線形回帰モデルなどの回帰モデル、マルコフモデルや隠れマルコフモデルなどの確率的モデル、再帰型ニューラルネットワークなどの人工ニューラルネットワークなどが含まれうる。したがって、本明細書の実施態様は、特定のタイプの機械学習モデルに限定されない。
サービスコンピューティング装置102は、更に、1つ以上の表示装置160を含むかその表示装置160と関連付けられうる。例えば、セキュリティプログラム136は、パターン情報を提示するためのシミュレータGUI146を表示装置160上に生成しうる。更に、セキュリティプログラム136は、認識結果及び任意の識別された異常パケットに関連した情報を提示するためのダッシュボードGUI162を表示装置160上に生成しうる。サービスコンピューティング装置102は、また、プログラム、ドライバなどを含みうる他の機能要素及びデータ、並びに機能要素によって使用又は生成されるデータを含むか維持しうる。更に、サービスコンピューティング装置102は、多くの他の論理要素、プログラム要素、及び物理構成要素を含むことができ、これらはそれぞれ、単に本明細書の考察に関連した例である。
通信インタフェース132は、1つ以上のネットワーク106などを介して様々な他の装置との通信を可能にするための1つ以上のインタフェース及びハードウェア構成要素を含みうる。したがって、通信インタフェース132は、ネットワーク106への接続を提供する1つ以上のポートを含んでもよく、それらのポートに結合されてもよい。例えば、通信インタフェース132は、LAN(ローカルエリアネットワーク)、WAN(広域ネットワーク)、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク(例えば、Wi-Fi)及び有線ネットワーク(例えば、光ファイバ、イーサネット、ファイバチャネル)のうちの1つ以上、直接接続、並びに後で更に列挙されるような、BLUETOOTH(登録商標)などの短距離無線通信による通信を可能にできる。
更に、HMIコンピューティング装置124、一次制御コンピューティング装置108、二次制御コンピューティング装置110、及び場合によってはプロセスマネージャ116が、前述されたものと類似の構成とハードウェアを含みうるが、管理プログラム126、制御アプリケーション112及び様々なデータなどの様々な機能要素はない。例えば、場合によって、HMIコンピューティング装置124は、サーバコンピューティング装置、デスクトップコンピューティング装置、ラップトップコンピューティング装置、タブレットコンピューティング装置、スマートフォンコンピューティング装置、ウェアラブルコンピューティング装置などを含む、ネットワークを介して通信できる任意のタイプのコンピューティング装置でよい。
幾つかの例では、HMIコンピューティング装置124上で実行する管理プログラム126は、制御コンピューティング装置108,110によって制御された機器114の動作状態を監視しうる。例えば、制御アプリケーション112は、例えば機器114の設定値と状態値を含むサイクリング監視パケット(サイクリックパケット)170を、制御コンピューティング装置108及び110からそれぞれ回線A及び回線Bを介して、例えば、制御コンピューティング装置108及び110からそれぞれHMIコンピューティング装置124に周期的に送信するように構成されうる。幾つかの例では、サイクリックパケット170は、一定間隔で周期的に送信されうる。したがって、HMIコンピューティング装置124上の管理プログラム126は、サイクリックパケット170を受信し、サイクリックパケット170からの情報を表示装置(図1に示されない)上に提示して、HMIコンピューティング装置124を使用して機器114及び制御コンピューティング装置108及び/又は110の状態を監視できる。
幾つかの例では、一次制御コンピューティング装置108と二次制御コンピューティング装置110がそれぞれ、HMIコンピューティング装置124との通信に使用するそれ自体のIPアドレスを有しうる。一次制御コンピューティング装置108が正常に動作しているときは、二次制御コンピューティング装置110からHMIコンピューティング装置124によって受信されたサイクリックパケット170が廃棄されうる。他方、一次制御コンピューティング装置108が誤動作又は他のタイプの障害を起こしている場合、HMIコンピューティング装置124は、二次制御コンピューティング装置110のIPアドレスを通信に使用するように切り換えることなどによって、二次制御コンピューティング装置110からサイクリックパケット170を受信するように切り換わる。更に、そのような状況では、二次制御コンピューティング装置110は、一次制御コンピューティング装置108が制御していた機器114の制御を引き継いでもよく、サイクリックパケット170をそれぞれのHMIコンピューティング装置124に周期的に送信し続けてもよい。
更に、管理プログラム126は、オペレータが命令をシーケンシャル動作パケット(シーケンシャルパケット)172によって一次制御コンピューティング装置108(又は、一次制御コンピューティング装置108が遮断されている場合は二次制御コンピューティング装置110)に送信することを可能にすることなどによって、機器114を手動で制御するために使用されうる。例えば、シーケンシャルパケット172は、機械118,120の一方など、1つ以上のターゲット機器114の動作値を設定又は変更するための命令を含みうる。制御コンピューティング装置108又は110は、シーケンシャルパケット172を受信し読み取り、次に対応する制御信号をターゲット機器114に送信してターゲット機器114の動作を変化させうる。
サービスコンピューティング装置102上で実行するセキュリティプログラム136は、回線Aと回線Bの両方からの通信データをミラーリングするか種々の他の技術などによって、回線Aと回線Bからパケットデータ176を受信しうる。場合によって、受信パケットデータ176は、サイクリックパケット170とシーケンシャルパケット172の両方を含みうる。前述したように、制御コンピューティング装置108,110によって制御される機器114の設定値と状態値を監視するために使用されるサイクリックパケット170は、回線Aと回線Bを介して、例えば一定間隔で周期的に送信されうる。一例として、セキュリティプログラム136は、回線A又は回線Bのどちらかから最初に到着するパケットを受信し、回線A又は回線Bの他方から後に到着するパケットを廃棄できる。更に、ターゲット機器114の設定値の設定を指示するシーケンシャルパケット172は、回線A又は回線Bのどちらかを介して送信されうる。したがって、セキュリティプログラム136は、回線Aと回線Bの両方によって到着する全てのシーケンシャルパケット172を受信し検査しうる。
前述されたように、セキュリティプログラム136がパケットデータ176を受信するとき、セキュリティプログラム136は、パケットデータ176からデータ表現を生成し、機械学習モデル140を使用してパケットのどれかが機器114の異常動作に対応する可能性があるかどうかを決定できる。セキュリティプログラム136によって実行されるプロセスの詳細は、例えば図2に関して更に後述される。制御システム104の異常動作に対応するパケットパターンに関する情報は、シミュレータGUI146によって指示及び/又は更新されうる。更に、セキュリティプログラム136によって決定された結果は、表示装置160上にダッシュボードGUI162で示されうる。
更に、幾つかの例において、セキュリティプログラム136は、パケットデータ176の分析結果に基づいて、1つ以上の動作又は他のアクションを実行しうる。幾つかの例では、パケットが機器114の異常動作を引き起こす可能性があることをセキュリティプログラム136が決定した場合、セキュリティプログラム136は、情報をHMIコンピューティング装置124に通信で送信して、管理プログラム126に、修正命令を追加のシーケンシャルパケット172として、影響を受けた制御コンピューティング装置108,110に送信させうる。別の例として、パケットが機器114の異常動作を引き起こす可能性があることをセキュリティプログラム136が決定した場合、セキュリティプログラム136は、制御コンピューティング装置108,110と直接通信して、制御コンピューティング装置に機器の1つ以上の動作パラメータを変更させて異常動作を修正させうる。更に、この例では、サービスコンピューティング装置102が、HMIコンピューティング装置124とは別個のコンピューティング装置であるように示されているが、他の例では、サービスコンピューティング装置102は、HMIコンピューティング装置124と同じコンピューティング装置でもよく、したがって、本明細書に記載されたセキュリティ機能は、HMIコンピューティング装置124によって実行されうる。
図2、図5及び図12は、幾つかの実施態様による例示的プロセスを示す流れ図を含む。プロセスは、一連の動作を表すブロックの集合として論理流れ図で示され、その動作の幾つか又は全ては、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されうる。ソフトウェアの分脈で、ブロックは、1つ以上のプロセッサによって実行されたとき、列挙された動作を実行するようにプロセッサをプログラムする1つ以上のコンピュータ可読媒体に記憶されたコンピュータ実行命令を表しうる。一般に、コンピュータ実行命令は、特定の機能を実行するか特定のデータ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。ブロックが示された順序は、限定として解釈されるべきでない。任意の数の示されたブロックが、任意の順序に組み合わされかつ/又はプロセス若しくは代替プロセスの実施と並列に組み合わされてもよく、必ずしも全てのブロックが実行されなくてもよい。検討のため、プロセスは、本明細書の例で示された環境、フレームワーク及びシステムに関して言及されるが、プロセスは、種々様々な他の環境、フレームワーク及びシステムで実行されうる。
図2は、幾つかの実施態様による、機器の異常動作に対応するパケットを検出するための例示的プロセス200を示す流れ図である。プロセス200は、少なくとも部分的に、サービスコンピューティング装置102又は他の適切なコンピューティング装置上で実行するセキュリティプログラム136によって実行されうる。
202で、セキュリティプログラムは、制御システム104からパケットデータ176を受信する。前述したように、パケットデータ176は、制御システム104からサービスコンピューティング装置102にミラーリングされうる。セキュリティプログラム136が制御システム104から受信するサイクリックパケットとシーケンシャルパケットのフォーマットは、図3に関して更に後述される。前述したように、セキュリティプログラムは、一次制御コンピューティング装置が正常に作動しているときは二次制御コンピューティング装置から受信したサイクリックパケットを廃棄しうる。
204で、セキュリティプログラムは、受信したパケットデータから、受信パケットデータのデータ表現として時系列データブロックを生成できる。時系列データブロックを生成するプロセスは更に後述される。幾つかの例では、セキュリティプログラム136は、更に後述されるように、時系列データブロックを生成するときに変数フィールドデータ構造154にアクセスしてピクセルなどの配置を決定できる。
206で、セキュリティプログラムは、時系列データブロックを時系列データDS148に記憶し、時系列データブロックを認識のために提供しうる。
208で、セキュリティプログラムは、機械学習モデル140を使用して、受信した時系列データブロック内のパターンを認識しうる。例えば、セキュリティプログラム136は、時系列データブロックのパターンを制御システムの正常又は異常動作を示すパターンに対応するように分類することによって、通信データのパターンをディープラーニングで認識するための機械学習モデル140を使用できる。場合によって、認識は、時系列データブロックを、パターンDS152に含まれる複数のパターンからの特定パターン番号と関連付けることを含みうる。
210で、セキュリティプログラムは、パターン認識の時系列結果を使用することによってパターン認識の結果を修正しうる。例えば、パターンが、現場の経験に従ってAからBに変更されBからCに変更されなければならないとき、認識パターンがAからDに変更されDからCに変更された場合は、DのパターンがCに修正される。
212で、セキュリティプログラムは、時系列データブロックを関連パターン番号及び結果(又は、修正結果)と共にトレーニングデータ142に記憶しうる。この情報をトレーニングデータ142に追加することによって、トレーニングデータは常に更新されて、機械学習モデル140を周期的にリトレーニングし更新できる。
214で、セキュリティプログラムは、認識結果を認識結果データ構造150に記憶しうる。
216で、セキュリティプログラムは、受信パケットデータ176に対応する動作が有害かあるいは機器の異常動作をもたらしうるかを決定しうる。例えば、セキュリティプログラム136は、認識結果を状態遷移情報DS158内の状態遷移情報と比較し、動作が悪意があるか、有害かあるいは異常かどうかを決定するための1組の論理規則を適用しうる。例えば、状態遷移情報は、機器の知識及び機器が動作する環境に基づいており、認識パターンの状態遷移情報を含みうる。
218で、セキュリティプログラムは、ダッシュボードGUI162を、認識結果から、動作が有害であるかあるいは異常であるかに関する決定から、及びパターンデータ構造152から得られたパターン情報から生成及び提示できる。
220で、場合によって、セキュリティプログラムは、ダッシュボードGUI162を介して1つ以上の変更を受信できる。例えば、ユーザは、異常と分類された結果が実際には正常であるか又はその逆であることを決定しうる。したがって、ユーザは、ダッシュボード内の正常又は異常記号を変更し、セキュリティプログラム136は、それに応じてパターンDS152を更新しうる。
222で、セキュリティプログラムは、ユーザ命令などに応じて、シミュレータGUI148を生成しうる。更に後述されるように、シミュレータGUI148は、パターンデータ構造152からのパターンデータを含みうる。224に示されたように、ユーザは、パターンをパターンDSに追加することなどによってパターンデータを変更しうる。
224で、セキュリティプログラムは、シミュレータGUI148を介して受信した追加パターンを受信し、追加パターンをパターンDSに記憶しうる。
226で、セキュリティプログラムは、パターンDS152内のパターンを使用してシミュレートされた時系列データブロックを生成しうる。例えば、新しく受信したパターンを使用して、受信パケットデータ176に基づいて生成されたものに類似の時系列データブロックを生成できる。セキュリティプログラム136は、シミュレートされた時系列データブロックを構成するときに変数フィールドDS154にアクセスして、ピクセル位置などを決定できる。パターンDS152からのシミュレートされた時系列データブロック及び関連パターン番号が、トレーニングデータ142に追加されうる。
228で、幾つかの例では、イメージを分類するクラスタ化及び微分抽出などの従来の認識技術の認識結果に基づいて、セキュリティプログラムは、時系列データDS148内の時系列データブロックにパターン番号を付加して、パターン番号を有する時系列データブロックを生成しうる。パターン番号を有する時系列データブロックは、後で機械学習モデル140を更新するトレーニングデータ142の一部として使用されるトレーニングデータ142に追加されうる。
230で、セキュリティプログラム136は、モデル構築プログラムを周期的に呼び出して機械学習モデル140をトレーニングしかつ/又は更新しうる。例えば、新しいトレーニングデータ142が蓄積されたとき、モデル構築プログラムは、機械学習モデル140をより最近のトレーニングデータ142でリトレーニングするために周期的に使用されうる。
図3Aは、幾つかの実施態様によるサイクリックパケット170の例示的なフォーマット300を示す。前述したように、サイクリックパケット170は、機械の状態値と設定値、及び制御コンピューティング装置によって制御されたプロセスマネージャの信号を監視するために使用されうる。サイクリックパケット170は、送信元IPアドレス(例えば、それぞれの制御コンピューティング装置のIPアドレス)を表すSIP302、宛先IPアドレス(例えば、HMIコンピューティング装置のIPアドレス)を表すDIP304、送信元ポート番号を表すSport306、宛先ポート番号を表すDport308、及びコマンド名309を含む。
更に、サイクリックパケット170は、第1の機械310、第2の機械312,…,第Mの機械314、及び第1のプロセスマネージャ316,…,第Lのプロセスマネージャ318など、1つ以上の機械と1つ以上のプロセスマネージャの制御情報を含む。機械ごとに提供される情報は、状態値320、第1の設定値322、第2の設定値324及び第3の設定値326を含みうる。更に、プロセスマネージャごとに提供される情報は、第1の信号330、第2の信号332及び第3の信号334を含みうる。更に、図3Aに関して例示的なパケットフォーマット及び情報が示されるが、本明細書の開示の恩恵を受ける当業者には多数の他の変形が明らかであろう。
図3Bは、幾つかの実施態様によるシーケンシャルパケット172の例示的フォーマット350を示す。前述したように、シーケンシャルパケット172は、機器内の機械の値を設定するために使用されうる。シーケンシャルパケット172は、この例では、例えば、機械設定及び/又はプロセスマネージャ信号設定の値を設定するために、機器を制御する制御コンピューティング装置のうちの1つに送信されうる制御情報を含む。シーケンシャルパケット172は、送信元IPアドレス(例えば、HMIコンピューティング装置のIPアドレス)を表すSIP302、宛先IPアドレス(例えば、それぞれの制御コンピューティング装置のIPアドレス)を表すDIP304、送信元ポート番号を表すSport306、宛先ポート番号を表すDport308、及びコマンド名305を含む。
更に、シーケンシャルパケット172は、行われる書き込み又は読み取りを指示する書き込み/読み取り命令352を含みうる。更に、シーケンシャルパケット172は、機器のどの機械に対して値を書き込むか読み取るべきかを指示する機械インジケータ354、設定値番号を表す設定値番号356、及び新しい値を示す設定値358を含みうる。更に、シーケンシャルパケット172は、機器のどのプロセスマネージャに対して信号値を書き込むか読み取るべきかを示すプロセスマネージャインジケータ360、信号番号(例えば、幾つかの例では、1、2、又は3)を表す信号番号362、及びプロセスマネージャに適用される信号値を表す信号値364を含みうる。
図4は、幾つかの実施態様によるデータ表現として例示的な時系列データブロック400を示す。幾つかの例では、時系列データブロック400は、図1と図2に関して前述されたように、セキュリティプログラムが制御システム104から受信するパケットデータを使用してセキュリティプログラム136(図4に示されない)によって生成されたデータ表現である。例えば、セキュリティプログラムは、サイクリックパケット170から抽出された設定値、状態値及び動作データを使用して時系列データブロック400を作成でき、これは、それぞれの制御コンピューティング装置によってそれぞれの機器114(図4に示されない)に適用される状態値と設定値を示しうる。更に、セキュリティプログラムは、シーケンシャルパケット172を使用して時系列データブロック400を作成でき、この時系列データブロック400は、制御コンピューティング装置によってそれぞれの機器内の機械又はプロセスマネージャに適用される値を示しうる。幾つかの例では、セキュリティプログラムは、図1と図2に関して前述され、図9に関して更に後述される変数フィールドデータ構造154に示された配置情報に従って時系列データブロック400を生成しうる。
示された例では、セキュリティプログラムは、受信パケット情報から時系列データブロック400を、複数のピクセルからなるイメージデータ402として生成する。したがって、この例では、時系列データブロック400は、受信パケット情報を表すイメージである。このイメージは、図1と図2に関して前述された認識プロセスで使用されうる。代替例では、受信パケットデータは、更に後述されるように、時系列データブロック400としてマトリクスとして表されうる。例えば、イメージは、高さが第1次元であり、幅が第2次元であり、RGB色が第3次元のマトリクスとして表され、サイズは3に制限される。場合によって、マトリクスは、第3次元で無制限のサイズを有しうる。他の変形は、本明細書の開示の恩恵を受ける当業者に明らかになる。
図4の時系列データブロック400において、イメージデータ402は、時系列データブロック400の下404の方ほど古いデータを示し、時系列データブロック400の上406の方ほど新しいデータを示す。この順序は、他の例では逆にされもよく、又は別の代替案として、情報は、垂直方向ではなく水平方向に時間経過順に表されうる。更に、408で示されたように、時系列データブロック400は、各1ピクセルに対応する複数の時間間隔に垂直方向に分割され、1ピクセルの垂直間隔は1サイクルを表す。
時系列データブロック400は、例えば図3に関して前述された状態値320に対応する状態値の時系列データを表す第1のピクセルバンド410を含む。更に、第2のピクセルバンド412は、図3の設定値1 322の時系列データを表し、第3のピクセルバンド414は、図3の設定値2 324の時系列データを表しうる。更に、ピクセル420とピクセル422は、設定値2を操作するシーケンシャルパケットの到着を表し、ピクセル424とピクセル426は、設定値1を操作するシーケンシャルパケットの到着を表す。到着ピクセルごとに、対応するピクセルバンド上に遷移430が表されうる。状態値及び設定値1と2の時系列データを表すピクセルバンド410、412及び414はそれぞれ、1ピクセル以上の幅を有することができ、幾つかの例では、色付けされてもよく、パケットから抽出された値に対応する他のグラフィカル効果又はパターンを有してもよい。一例として、ピクセルバンド410、412及び414の幅はそれぞれ、状態値及び設定値1及び2のビット幅に対応しうる。この例では、図3の設定値3 326及び/又は信号1~3 330~334のピクセルバンドは、時系列データブロック400に含まれないが、他の例では、そのようなパラメータを含むパケットが受信される場合には含まれる。
前述されたように、例えば、図2に関して、セキュリティプログラムは、パターン番号を時系列データブロック400に付加し、付加されたパターン番号を有する時系列データブロック400を、機械学習モデルをトレーニングするためにモデル構築プログラムによって使用されるトレーニングデータの一部として記憶しうる。セキュリティプログラムは、時系列データブロック400を機械学習モデルへの入力として使用して、時系列データブロック400内のパターンを認識しうる。一例として、機械学習モデルは、上に列挙されるように、他のタイプの機械学習モデルが使用されてもよいが、CNN(畳み込みニューラルネットワーク)などのディープラーニングアルゴリズムに基づいてもよい。
機械学習モデルを使用して時系列データブロック400内のパターンを認識することによって、セキュリティプログラムは、制御システム104内で送信された非標準化プロトコルのパケットを分析することによって通信データのパターンを認識できる。幾つかの例では、セキュリティプログラムは、パターンを認識するための時間を、それぞれの時系列データブロック400がシーケンシャルパケット172の到着を表すピクセルを含む時間に制限しうる。更に、セキュリティプログラムは、認識結果をパターンデータ構造152内の定義された正常又は異常動作の情報と突き合わせることによって通信データを機器の正常又は異常動作に対応するように分類する機械学習モデルの出力に基づいて、ダッシュボードGUIを分類情報と共に提示できる。
図5は、幾つかの実施態様により時系列データブロックを生成するための例示的プロセス500を示す流れ図である。幾つかの例において、プロセス500は、プロセス500に示された動作の少なくとも幾つかを行うためのセキュリティプログラム136を実行することによって、サービスコンピューティング装置102又は他の適切なコンピューティング装置の1つ以上のプロセッサによって実行されうる。
502で、セキュリティプログラムは、例えば図1と図2に関して前述されたように制御システム104からパケットを受信しうる。
504で、セキュリティプログラムは、受信パケットがサイクリックパケットかシーケンシャルパケットかどうかを決定しうる。パケットがサイクリックパケットである場合、プロセスは506に進み、そうでない場合プロセスは514に進む。
506で、セキュリティプログラムは、サイクリックパケットが新しいサイクリックパケットかどうかを決定しうる。例えば、パケットがサイクリックパケットであるとき、パケットは、複数のパケットで構成されうる。したがって、セキュリティプログラムは、特定のサイクルのパケットが新しいかどうかを決定しうる。新しい場合、プロセスは508に進み、そうでない場合、プロセスは508を省略する。
508で、セキュリティプログラムは、1つの行(1サイクル、即ち時間間隔に対応する)を時系列データブロックの一番下に追加しうる。
510で、セキュリティプログラムは、パケットのペイロードから変数フィールドを抽出しうる。
512で、セキュリティプログラムは、抽出した値を、変数フィールドDS154を参照しながら、時系列データブロックの最上行内のプリセットフィールド(例えば、図9に関して後述される変数フィールドDS154内の列910に指定されたように)に追加しうる。例えば、変数フィールドDS154は、設定値又は状態値として抽出されなければならないパケットフィールドの場所を示しうる。
514で、パケットが504のシーケンシャルパケットであると決定された場合、セキュリティプログラムは、パケットのペイロードから動作ターゲットのフィールドを抽出しうる。例えば、これは、図3Bに関して前述されたような宛先IPアドレス(DIP304)に基づいて決定されうる。
516で、セキュリティプログラムが、到着通知を時系列データ構造の最上行内のプリセットフィールドに追加でき、同時に、変数フィールドデータ構造を参照して、設定値又は状態値として抽出すべきパケットフィールドの位置を決定できる。
518で、時系列データブロック内の行数がしきい値を超えた場合、時系列データは、時系列データDS148に記憶され、時系列データの最下行が削除される。ステップ1104で1行を時系列データブロック401に追加するとき、時系列データブロックジェネレータ101が、時系列データブロック401の現在の最上行を新しい最上行として複製しうる。時系列データブロックジェネレータ101がパケットを受信しない場合、以前の行のデータが新しい行のデータとして使用される。
図6Aは、幾つかの実施態様による例示的な時系列データ600を示す。図6Aの例は、図4のピクセルバンド410~414上の1つの垂直間隔(即ち、1サイクル)を生成する例を示す図であり、ピクセルバンド410~414はそれぞれ、図4の時系列データブロック400内の状態値320、設定値1 322及び設定値2 324の時系列データを表す。例えば、フルカラーイメージデータの1ピクセルは、典型的には、合計24ビットのカラーデータの場合、赤、緑及び青の各色に8ビットのデータを有する。更に、グレースケールイメージデータの1ピクセルは、典型的には、輝度を表す8ビットのデータを有しうる。時系列データブロック400は、状態値320、設定値1及び設定値2の1つの垂直間隔をそれぞれ8ビットを超える幅を有するように表すために、複数ピクセルの図4のピクセルバンド410~414の1つの垂直間隔を含みうる。
図6Aは、8ビットを超える状態値と設定値を上位ビットと下位ビットの値に分割し、定数値を掛けた上位ビットの値を表す時系列データブロックを生成することによって、状態値320、設定値1 322及び設定値2 324を幅8ビットを超える幅を有するように表す技術の一例を示す。この例では、パケットから抽出された初期値が、上位ビット602と下位8ビット604を含む2つの値に分割される。上位ビット602の値は、定数値(例えば、この例では8)を掛けて乗算上位ビット606の値を生成することによって強調されうる。乗算上位ビット606は、下位ビット604の値と組み合わされて複数ピクセル608を生成する。
図6Bは、幾つかの実施態様による時系列データを生成する例620を示す。図6Aの例において、示された技術は、値が下位ビットの値から上位ビットの値に桁上げするときに下位ビットと上位ビット両方の値が小さい値になりうるので、特徴を表すのに十分でないことがある。したがって、特徴をはっきりと表すために、本明細書の幾つかの例は、上位ビットの値と下位ビットの値の桁上げ又は大小関係を表すピクセルを追加するプロセスを含みうる。図6Bのプロセスは、最初に、8ビットを超える状態値320並びに設定値322及び324を下位8ビット622の値と上位ビット624の別の値に分割することを含む。次に、下位8ビット622の値を表すピクセル626が直接生成されうる。更に、上位ビット624の値がゼロより大きいときに最大値(0xFF)になることによって桁上げを表すピクセル628が生成されてもよく、上位ビットの値が定数値より大きいときに上位ビットの値に定数値(即ち、この例では32)を掛けることによって大小関係を表すピクセル630、632及び634が生成されてもよい。最後に、このプロセスは、これらのピクセルを複数のピクセルデータ640に組み合わせる。次に、セキュリティプログラムは、複数のピクセルの幅として表されるピクセルバンド410、412及び414を生成しうる。したがって、セキュリティプログラムは、パターン認識の精度を高めるために上記プロセスを使用して生成された時系列データブロック400の特徴を強調しうる。
図7Aは、幾つかの実施態様による例示的な時系列データブロック700を示す。図7Aの例は、時系列データブロック700内の特徴を強調する代替プロセスを含む。この例は、状態値320並びに/又は設定値322及び324の初期値と最終値を強調できる。この例では、時系列データブロック700は、時系列設定値1を表すピクセルバンド702と、時系列設定値2を表すピクセルバンド704とを含む。この場合、時系列データブロック700は、設定値1の初期値を表すピクセル706と、設定値2の初期値を表すピクセル708を含む。更に、時系列データブロック700は、設定値1の最終値を表すピクセル710と、設定値2の最終値を表すピクセル712とを含む。したがって、時系列データブロック700は、状態値320並びに/又は設定値322及び324の初期値と最終値を強調する。
図7Bは、幾つかの実施態様による例示的なデータブロック720を示す。図7Bの例は、状態値並びに設定値1及び2それぞれのRGBのカラーデータのような異なるチャネルデータを使用して特徴を強調する代替プロセスを含む。この例では、時系列データブロック720は、個々のピクセルのデータの3つのチャネルとしてRGB(赤、緑、青)のような3種類のデータを有する。時系列データブロック720は、様々な種類のデータに様々なチャネルの組み合わせを使用してピクセルバンドを表す。例えば、時系列データブロック720は、時系列状態値を表すピクセルバンド722と、時系列設定値1を表すピクセルバンド724と、時系列設定値2を表すピクセルバンド726を含む。この場合、時系列状態値を表すピクセルバンド722が、カラーチャネル1(例えば、赤)を使用し、時系列設定値1を表すピクセルバンド724が、カラーチャネル2及び3(例えば、緑、青)を使用し、時系列設定値2を表すピクセルバンド726が、カラーチャネル2(例えば、緑)を使用しうる。したがって、時系列データブロック720は、各種類のデータ値によって特徴を強調し、これにより本明細書のパターン認識の精度が改善される。
図8は、幾つかの実施態様による時系列データの例800を示す。この例では、セキュリティプログラムは、時系列データブロック内の状態値320並びに設定値322及び324の時系列データを表すピクセルバンドの1つの垂直(周期的)間隔を生成しうる。例えば、時系列データブロック410などの時系列データブロックは、値ごとに1バイトのデータに基づいて、状態値320及び/又は設定値322,324の1つの垂直(周期的)間隔を表す。例えば、状態値320並びに設定値322及び324がそれぞれ、4ビット(例えば、0xC)の値として表され、図8に示されたように、サイクリックパケット300のペイロード内で、0xCC 802や0xC0 804などの左揃え値として記述されたとき、左揃え値は、上位4ビット806、中位4ビット808及び下位4ビット810の3つの値に分割されうる。これらの3つの値はそれぞれ、定数値(この例では8など)が掛けられ、それぞれ0xC0 812、814及び816などの1バイトの3つの独立値として表されうる。セキュリティプログラムは、8ビット未満の各値を1バイトの独立値として表し、したがって、前述のプロセスを使用して時系列データブロックの特徴を強調でき、これにより、本明細書のパターン認識の精度が改善される。
図9は、幾つかの実施態様による例示的な変数フィールドデータ構造154を示す。変数フィールドデータ構造154は、機器の変数フィールドを指定するために使用され、イメージデータ又はマトリクスデータを表しうる。変数フィールドデータ構造154は、機器の識別子902と、それぞれの機器に含まれる機械904と、それぞれの機器に含まれるプロセスマネージャ906と、それぞれの機械とプロセスマネージャの値の型908と、それぞれの時系列データブロック内の左側からのピクセル(又は列)の位置910と、各値によるパケットペイロード内の左側からのバイト(又はパケット)の位置912とを含む。例えば、機器A114(a)は、機械118(a)、機械120(a)及びプロセスマネージャ116(a)を含み制御する。各機械118(a),120(a)は、状態値、設定値1~4、設定値1~2の動作値、及び別の動作値を含む。更に、プロセスマネージャ116(a)は、信号1~3を含む。同様に、機器B114(b)は、機械118(b)、機械120(b)及びプロセスマネージャ116(b)を含み制御する。各機械118(b)及び120(b)は、状態値、設定値1~4、設定値1~2の動作値、及び別の動作値を含む。更に、プロセスマネージャ116(b)は、信号1~3を含む。同様に、機器C114(c)は、機械118(c)、機械120(c)及びプロセスマネージャ116(c)を含み制御する。各機械118(c),120(c)は、状態値、設定値1~4、設定値1~2の動作値、及び別の動作値を含む。更に、プロセスマネージャ116(c)は、信号1~3を含む。
前述したように、変数フィールドデータ構造154の列910は、各時系列データブロックの最上行内のプリセットフィールド(ピクセル又は列)を示す。変数フィールドを指定する変数フィールドデータ構造154の情報は、図1と図2に関して前述されたシミュレータGUIによって変更可能でよい。変数フィールドデータ構造154に含まれる情報によって、セキュリティプログラムは、図9に示されたように、それぞれのパケット内の教示値の位置を決定し、変数フィールドを指定する情報を使用して時系列データブロックを生成できる。
図10は、幾つかの実施態様による例示的なパターンデータ構造(DS)152を示す。図10の例は、パターンDS152の例示的フォーマットを示し、このフォーマットは、パターン番号1002によるパターンのリストと、1004で示されたように、リストされたパターンごとの正常又は異常の情報を含む。更に、パターンDS152は、リストされた各パターンに示されたように、機械118,120又はプロセスマネージャ116に応じてリストされた各機器114による状態値、設定値1~4、設定値1~2の動作値、他の動作値及び/又は信号1~3のアクション1006を含む。
アクション1006の情報1008は、指定値が増大するか減少するか、初期値、最終値、変更の初期及び最終サイクル、及び/又は値がどのように変化したかを含みうる。パターンDS152の情報は、図1と図2に関して前述したシミュレータGUI146に表示されうる。更に、パターンDS152の情報は、シミュレータGUIを介してユーザによって手動で変更又は追加されてもよく、かつ/又は実時系列データブロックに基づいて自動的に作成されてもよい。したがって、セキュリティプログラムは、ユーザが、シミュレータGUIを介してパターンテーブル又はファイル117の情報を手動で変更することによって、パターン1002ごとに「正常」又は「異常」1004の指定を変更することを可能にできる。セキュリティプログラムは、パターンDS152に記録されたパターンの情報によって指定されたように時系列データブロックを生成しうる。更に、モデル構築プログラムは、機械学習モデル140を、ランニングシミュレーションから得られたトレーニングデータの組み合わせ、パターンデータ構造152内のパターン、及び実際の動作環境から得られた情報に基づいて作成できる。
図11は、幾つかの実施態様による例示的なダッシュボードGUI162を示す。図11の例では、ダッシュボードGUI162は、現在認識されているパターン1104を表示する第1の表1102と、以前に認識されていた統計パターン1108を表示する第2の表1106とを含む。
現在認識されているパターン1104を表示する第1の表1102は、現在認識されているパターンのパターン番号1110と、各機器A~Cにより並びに対応する機械118,120及びプロセスマネージャ116ごとに、パターンが正常か異常かの指示1112とを表示する。以前に認識されていた統計パターン1108を表示する第2の表1106は、各パターンによって、パターン番号1120、動作パターン及び値1122、正常又は異常の指示1124、実現数1126、頻度1128、最近の時間1130、及び実際に検出されたパターン1108を含みうる。ユーザは、各パターンによる正常又は異常の表示を示す列1124によって特定のパターンの正常又は異常の指示を更新し、更新された情報は、パターンデータ構造に反映される。したがって、ダッシュボードGUI162は、ユーザが、実行後に正常又は異常の情報を手動で変更し、実現値などの統計情報を表示することを可能にする。
図12は、幾つかの実施態様によるセキュリティプログラム136によって実行されうる例示的なプロセス1200を示す流れ図である。前述の例では、パケットデータを入力データとして使ってパターンを認識するシステムが開示される。図12の例によって示されたように、本明細書のシステム及びプロセスは、幾つかの例では、パケットデータ以外のデータを使用しうる。図12は、センサ、カメラ、マイクロフォン、記憶装置、情報技術装置、気象観測装置、医療記録などのデータ発生源1204から受信された時系列データ1202を使用してパターンを認識する流れを示す。この例では、ブロック202は、1206に概して示されたようにパケットデータの受信からデータの受信に変更される。他の状況では、異常データを認識する図12のプロセスは、一般に、図2に関して前述されたものと同じである。
本明細書に記載された例示的なプロセスは、検討のために提供されたプロセスの例に過ぎない。本明細書の開示を鑑みて多くの他の変形が当業者に明らかになる。更に、本明細書の開示は、プロセスを実行するのに適したシステム、アーキテクチャ及び環境の幾つかの例を示すが、本明細書の実施態様は、図示され検討された特定の例に限定されない。更に、この開示は、記述され図面に示されたような種々の例示的実施態様を提供する。しかしながら、この開示は、本明細書に記述され図示された実施態様に限定されず、当業者に知られるか知られることになるように、他の実施態様に拡張されうる。
本明細書に記述された種々の命令、プロセス及び技術は、本明細書においてコンピュータ可読媒体に記憶されプロセッサによって実行されるプログラムなどのコンピュータ実行命令の一般的状況で検討されうる。一般に、プログラムは、特定のタスクを実行するか特定の抽象データ型を実現するためのルーチン、モジュール、オブジェクト、コンポーネント、データ構造、実行可能コードなどを含む。これらのプログラムなどは、ネイティブコードとして実行されてもよく、仮想機械又は他のジャスト・イン・タイムコンパイル実行環境などでダウンロードされ実行されうる。典型的には、プログラムの機能は、種々の実施態様で必要に応じて組み合わされるか分散されうる。これらのプログラム及び技術の実現は、コンピュータ記憶媒体に記憶されてもよく、何らかの形態の通信媒体により伝送されてもよい。
内容を構造的特徴及び/又は方法論的行為に固有の言語で述べたが、添付の特許請求の範囲に定義された内容が、必ずしも述べた特定の特徴又は行為に限定されないことを理解されたい。より正確に言うと、特定の特徴及び行為は、特許請求の範囲を実現する例示的な形態として開示される。