(57)【要約】      （修正有）【課題】インダストリアルネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法及びシステムを提供する。【解決手段】システムは、ネットワークステートのリスト及び遷移確率を含むサイトアクセプタブルなネットワーク挙動のベースラインを設定するためのハードウェアとソフトウェアの要素を含む。遷移確率、は正常なネットワーク稼働中に、第一のネットワークステートが第二のネットワークステートに一時的に追従される推定確率を示すものである。さらに、確率を表す閾値を設定する。その閾値を下回ると、ネットワークステートのシーケンスが変則的であること及びサイトアクセプタブルなネットワーク挙動のベースラインに基づいて、特定の一連のパケットから得たネットワークステートのシーケンスが発生する確率を特定し、特定された確率が設定された閾値を下回るか否かにより防護措置を実行する。【選択図】なし【特許請求の範囲】
【請求項１】
インダストリアルプロセスを制御するためにプロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法であって、
ネットワークステートのリスト及び遷移確率を含むサイトアクセプタブルなネットワーク挙動のベースラインを設定することであって、
前記遷移確率は、正常なネットワーク稼働中に、第一のネットワークステートが第二のネットワークステートに一時的に追従される推定確率を示すものであること、
それを下回るとネットワークステートのシーケンスが変則的である確率を表す閾値を設定すること、
サイトアクセプタブルなネットワーク挙動のベースラインに基づき、特定の一連のパケットから得たネットワークステートのシーケンスが発生する確率を特定すること、
特定された確率が設定された閾値を下回るか否かにより防護措置を実行すること、
を含む、
ことを特徴とするインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項２】
前記ネットワークステートのリスト及び遷移確率を含むサイトアクセプタブルなネットワーク挙動のベースラインを設定することは、
正常なネットワーク挙動を表す一連のパケットを分析して、ネットワークステートの一時的なシーケンスを特定すること、
特定されたネットワークステートの時間的なシーケンスにおいて、前記第一のネットワークステートに前記第二のネットワークステートに一時的に追従される回数により、前記第一のネットワークステートに前記第二のネットワークステートに一時的に追従される確率を計算すること、
を含む、
ことを特徴とする請求項１に記載のインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項３】
前記特定の一連のパケットは、潜在的なサイバー攻撃のためにインダストリアルネットワークの操作をモニタする際に受信されるパケットを含む、
ことを特徴とする請求項１に記載のインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項４】
前記インダストリアルネットワークは、Ｍｏｄｂｕｓプロトコルを使用する、
ことを特徴とする請求項１に記載のインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項５】
前記インダストリアルネットワークは、分散ネットワークプロトコル３(ＤＮＰ３)を使用する、
ことを特徴とする請求項１に記載のインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項６】
前記ネットワークステートのシーケンスは、「Ｋ」の連続ネットワークステートを含む特定の一連のパケットから導出されるものであり、前記「Ｋ」は２よりも大きい、
ことを特徴とする請求項１に記載のインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項７】
前記実行する防護措置は、アラートを発することを含む、
ことを特徴とする請求項１に記載のインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項８】
前記実行する防護措置は、パケットをブロックすることを含む、
ことを特徴とする請求項１に記載のインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項９】
前記実行する防護措置は、ネットワーク内のノードを無効にすることを含む、
ことを特徴とする請求項１に記載のインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項１０】
前記正常なネットワーク挙動を表す一連のパケットを分析して、ネットワークステートの一時的なシーケンスを特定することには、分析されたパケットにおいて、Ｍｏｄｂｕｓソース、Ｍｏｄｂｕｓの出力先、Ｍｏｄｂｕｓ関数フィールドの組合によってネットワークステートを特定することを含む、
ことを特徴とする請求項１に記載のインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項１１】
前記アラートは、フォレンジックデータを含む、
ことを特徴とする請求項１に記載のインダストリアルプロセスを制御するために、プロトコルを使用するネットワークにおけるサイバーセキュリティの潜在的な感染を検知するための方法。
【請求項１２】
ネットワークにおけるサイバーセキュリティの潜在的な感染を検知するためのシステムであって、
コンピュータ構成要素を保存するための記憶媒体と、
コンピュータ構成要素を実行するためのコンピュータ化されたプロセッサと、
を有し、
前記コンピュータ構成要素は、
第一のコンピュータ構成要素であって、ネットワークステートのリスト及び遷移確率を含むサイトアクセプタブルなネットワーク挙動のベースラインを設定するものであり、前記遷移確率は、正常なネットワーク稼働中に、第一のネットワークステートが第二のネットワークステートに一時的に追従される推定確率を示すものである第一のコンピュータ構成要素と、
第二のコンピュータ構成要素であって、それを下回るとネットワークステートのシーケンスが変則的である確率を表す閾値を設定する第二のコンピュータ構成要素と、
第三のコンピュータ構成要素であって、サイトアクセプタブルなネットワーク挙動のベースラインに基づき、特定の一連のパケットから得たネットワークステートのシーケンスが発生する確率を特定する第三のコンピュータ構成要素と、
第四のコンピュータ構成要素であって、特定された確率が設定された閾値を下回るか否かにより、防護措置を実行する第四のコンピュータ構成要素と、
を有する、
ことを特徴とするネットワークにおけるサイバーセキュリティの潜在的な感染を検知するためのシステム。
【請求項１３】
コンピュータで使用可能な非一時的な記憶媒体であって、
該記憶媒体の上でコンピュータプログラムを実施することにより、インダストリアルネットワークにおけるサイバーセキュリティの潜在的な感染を検出するための適当なプログラムを実現するものであり、プログラムがシステムの上で実行される際に、
ネットワークステートのリスト及び遷移確率を含むサイトアクセプタブルなネットワーク挙動のベースラインを設定するステップであって、前記遷移確率は、正常なネットワーク稼働中に、第一のネットワークステートが第二のネットワークステートに一時的に追従される推定確率を示すステップと、
確率を表す閾値を設定するステップであって、その確率を下回るとネットワークステートのシーケンスが変則的であるとするステップと、
サイトアクセプタブルなネットワーク挙動のベースラインに基づき,特定の一連のパケットから得たネットワークステートのシーケンスが発生する確率を特定するステップと、
特定された確率が設定された閾値を下回るか否かにより、防護措置を実行するステップと、
を含む、
ことを特徴とするコンピュータで使用可能な非一時的な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業制御システムにおけるサイバー攻撃を軽減するための方法及びシステムに関するものである。
【背景技術】
【０００２】
産業制御システム（ＩＣＳ）は、制御構成要素（例えば、電気的、機械的、油圧及び空気の要素）の組み合わせを有するものであり、これらの要素を協働して産業目的（例えば、製造、物質やエネルギーの運輸）を達成する。
【０００３】
多くのＩＣＳは、例えば、多数の現場を含み、この現場において産業目的が達成され、また、産業目的をモニタして管理する制御センターと協働するものである。制御センターと現場は、電気通信またはデータリンク等によりリンクされる。また、制御センターは産業目的をモニタや管理するものであって、その際にＤＮＰ３（分散ネットワークプロトコル）、Ｍｏｄｂｕｓ及びＯＰＣなどの産業制御プロトコルを使用するものである。
【０００４】
産業制御システムへの悪意ある集団による攻撃に対する関心が高まっている。これはＩＣＳが、イントラネットとインターネットとの間のエアギャップの仮定において「安全性が低く設計された」からである。ＩＣＳにおけるサイバー攻撃は、主要インフラストラクチャを既に破壊し、将来において、設備、重要サービス、環境、人の生命さえにもより大きなダメージを引き起こす恐れがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、ＩＣＳにおけるサイバー攻撃を軽減するために、攻撃がいつ進行しているのかを検出する正確な方法を提供するものである。さらに、本発明は、重要な産業インフラの操作に影響を与えずに侵入を止めるために、アクティブなステップにより、検出された攻撃に効果的に対応するものである。
【０００６】
以下は最近のＩＣＳへの脅威の典型的及び非制限的なリストであって、本発明により軽減されるものである。
１．ウイルスであって、プログラマブルコントローラ（ＰＬＣ）を装って、ＩＣＳシステムに危害を与えるためにトラフィックを送信できるウイルス。
２．ヒューマンマシンインタフェース（ＨＩＭＩ）アプリケーションの中に侵入するコードであって、主要インフラストラクチャネットワーク中の通信のプロフィールを認識するコード。
３．Ｍｏｄｂｕｓ、ＤＮＰ３などのＩＣＳプロトコルの悪用。
４．稼働中のネットワークには存在しないホストから生ずる悪意の動作。
５．通信プロトコルの悪用であって、ＩＣＳ関連ではないが、稼働中のネットワークでは一般的なものであって、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ファイル転送プロトコル（ＦＴＰ）、サーバーメッセージブロック（ＳＭＢ）及びＮｅｔＢｉｏｓなどの悪用。
６．稼働中のネットワーク内で許可ユーザにより実行される不正な操作であって、彼らに許可される作業の範囲外での不正な操作。
【０００７】
以下は典型的及び非制限的な、本発明が提供する解決策のリストであって、運用要員及びセキュリティ要員によって対応されることができるリストである。
１．ネットワークで検出された、異なるＰＬＣｓにより生成されたトラフィックを学習する解決策である。これらのパターンから離れる試みが検知される。
２．ネットワークで検出された、異なるＨＩＭＩｓにより生成されたトラフィックを学習する解決策である。これらのパターンから離れる試みが検知される。このプロフィールは、コードインジェクションを実行する試みを含むものである。
３．仕様に従うトラフィック解析を実行する解決策であって、即ち、ネットワーク上で送信されるトラフィックをレビューし、公知仕様に従ってそれを検証する解決策である。
４．ステートマシンとしてネットワークの挙動をモデル化する解決策である。この解決策により、ネットワーク上で動作する要素が自動的かつ正確にマップされ、ステートの有限セットとしてそれらの挙動がモデル化される。そしてこの解決策により、作成されて正当であるとみなされるモデルに従って、各要素の挙動がトラックされる。悪意のある者がネットワーク上で操作を開始すると、ネットワークの内部や外部に関わらず、結果としてのトラフィックは、ステートマシンのモデルを侵害するものとして検出されることになる。
５．項目４に記載のステートマシンの一部としての内部運用環境において、ＩＴ（情報技術）プロトコルの使用をプロファイルする解決策である。これは、ほとんどの通信がマシン・トゥ・マシンをベースであり、そのために非常に明確である（通常のＩＴネットワークと比較して）という事実があるために実現することができる。
６．上述したステートマシンの一部としての内部運用環境において、ユーザの挙動をプロファイルする解決策である。これは、稼働中のネットワークの内部で操作するユーザが、通常、非常に明確な役割と活動（通常のＩＴネットワークにおけるユーザに関連する）を有するという事実があるために実現することができる。
【０００８】
本発明の実施例は、方法に利用されるものであり、この方法はインダストリアルネットワークにおけるサイバーセキュリティの潜在的な感染を検出するために、コンピュータにより実現されるものである。
この方法は、
ネットワークステートのリスト及び遷移確率を含むサイトアクセプタブルなネットワーク挙動のベースラインを設定することであって、
前記遷移確率は、正常なネットワーク稼働中に、第一のネットワークステートが第二のネットワークステートに一時的に追従される推定確率を示すものであること、
それを下回るとネットワークステートのシーケンスが変則的である確率を表す閾値を設定すること、
サイトアクセプタブルなネットワーク挙動のベースラインに基づき、特定の一連のパケットから得たネットワークステートのシーケンスが発生する確率を特定すること、
特定された確率が設定された閾値を下回るか否かにより防護措置を実行すること、
を含むこととする。
【０００９】
オプションとして、ネットワークステートのリスト及び遷移確率を含むサイトアクセプタブルなネットワーク挙動のベースラインを設定することは、
正常なネットワーク挙動を表す一連のパケットを分析して、ネットワークステートの一時的なシーケンスを特定すること、
及び、
特定されたネットワークステートの時間的なシーケンスにおいて、第一のネットワークステートが第二のネットワークステートに一時的に追従される回数により、第一のネットワークステートが第二のネットワークステートに一時的に追従される確率を計算すること、
を含む。
【００１０】
オプションとして、前記特定の一連のパケットは、パケットを有するものであり、このパケットは、潜在的なサイバー攻撃のために、インダストリアルネットワークの操作をモニタする際に受信されるものである。
【００１１】
オプションとして、インダストリアルネットワークは、Ｍｏｄｂｕｓプロトコルを使用する。
【００１２】
オプションとして、インダストリアルネットワークは、分散ネットワークプロトコル３（ＤＮＰ３）を使用する。
【００１３】
オプションとして、ネットワークステートのシーケンスは、「Ｋ」の連続ネットワークステートを含む特定の一連のパケットから導出されるものであり、ここで、「Ｋ」は２よりも大きい。
【００１４】
オプションとして、実行する防護措置は、アラートを発することを含む。
【００１５】
オプションとして、実行する防護措置は、パケットをブロックすることを含む。
【００１６】
オプションとして、実行する防護措置は、ネットワーク内のノードを無効にすることを含む。
【００１７】
オプションとして、正常なネットワーク挙動を表す一連のパケットを分析して、ネットワークステートの一時的なシーケンスを特定することには、分析されたパケットにおいて、Ｍｏｄｂｕｓソース、Ｍｏｄｂｕｓの出力先、Ｍｏｄｂｕｓ関数フィールドの組合によってネットワークステートを特定する、ことが含まれる。
【００１８】
オプションとして、アラートは、フォレンジックデータを含む。
【００１９】
本発明の実施例は、コンピュータシステムに利用されるものであり、このコンピュータシステムは、インダストリアルネットワークにおけるサイバーセキュリティの潜在的な感染を検出するものである。上記コンピュータシステムは、
コンピュータ構成要素を保存するための記憶媒体と、
コンピュータ構成要素を実行するためのコンピュータ化されたプロセッサと、
を含む。
ここで、コンピュータ構成要素は、
第一のコンピュータ構成要素であって、ネットワークステートのリスト及び遷移確率を含むサイトアクセプタブルなネットワーク挙動のベースラインを設定し、ここで、遷移確率は、正常なネットワーク稼働中に、第一のネットワークステートが第二のネットワークステートに一時的に追従される推定確率を示すものである第一のコンピュータ構成要素と、
第二のコンピュータ構成要素であって、確率を表す閾値を設定し、その確率を下回るとネットワークステートのシーケンスが変則的である第二のコンピュータ構成要素と、
第三のコンピュータ構成要素であって、サイトアクセプタブルなネットワーク挙動のベースラインに基づき、特定の一連のパケットから得たネットワークステートのシーケンスが発生する確率を特定する第三のコンピュータ構成要素と、
第四のコンピュータ構成要素であって、特定された確率が設定された閾値を下回るか否かにより、防護措置を実行する第四のコンピュータ構成要素と、
を含む。
【００２０】
本発明の実施例は、コンピュータで使用可能な非一時的な記憶媒体に利用されるものであり、この記憶媒体は、該記憶媒体の上でコンピュータプログラムを実施することにより、インダストリアルネットワークにおけるサイバーセキュリティの潜在的な感染を検出するための適当なプログラムを実現するものであり、プログラムがシステムの上で実行される際に下記のステップを実行するものであり、
ネットワークステートのリスト及び遷移確率を含むサイトアクセプタブルなネットワーク挙動のベースラインを設定するステップであって、前記遷移確率は、正常なネットワーク稼働中に、第一のネットワークステートが第二のネットワークステートに一時的に追従される推定確率を示すステップと、確率を表す閾値を設定するステップであって、その確率を下回るとネットワークステートのシーケンスが変則的であるとするステップと、
サイトアクセプタブルなネットワーク挙動のベースラインに基づき、特定の一連のパケットから得たネットワークステートのシーケンスが発生する確率を特定して、特定された確率が設定された閾値を下回るか否かにより、防護措置を実行する。
【００２１】
本明細書は、本明細書中において一貫して、または相互交換的に用いる用語を参照するものである。これらの用語は、その変形例を含み、以下の通りである。
【００２２】
「コンピュータ」は、マシン、コンピュータ、コンピューティングまたはコンピュータシステム（例えば、物理的に離れた位置またはデバイス）、サーバ、コンピュータとコンピュータ化されたデバイス、プロセッサ、処理システム、計算コア（例えば、共有デバイス）、及びそれらに類似するシステム、ワークステーション、モジュール及び前述したものの組み合わせを含む。前述した「コンピュータ」は、産業コンピュータ（遠隔端末装置（ＲＴＵ））、高機能電子デバイス（ＩＥＤ、プログラマブルコントローラ（ＰＬＣ）、アプライアンス）、パーソナルコンピュータ（例えば、ラップトップ、デスクトップ、タブレットコンピューター）またはコンピューティングデバイスの全てのタイプといった様々なタイプのものとすることができ、前記コンピューティングデバイスは、一つの場所から他の場所へ容易に転送できるモバイルデバイス（例えば、スマートフォン、携帯情報端末(ＰＤＡ)、移動電話または携帯電話）を含むものである。
【００２３】
「サーバ」は、通常、遠隔コンピュータまたは遠隔コンピュータシステム、またはそれらの中のコンピュータプログラムであって、上記で定義された「コンピュータ」に従うものである。前記「コンピュータ」は、インターネットを含む通信ネットワークまたは他のコンピュータネットワークなどの通信媒体によってアクセス可能である。「サーバ」は、同一または他のコンピュータにある他のコンピュータプログラム（及びそれらのユーザ）に対してサービスを提供する、機能を実行する。また、サーバは仮想マシン、コンピュータのエミュレーションをベースとするソフトウェアも含むことができる。
【００２４】
「アプリケーション」は、実行可能なソフトウェア及び、オプションとして、それを通じて特定の機能が実行できる全てのヒューマンマシンインタフェース（ＨＭＩ）を含む。
【００２５】
本明細書に使用される用語「リンクされる」は、直接または間接的なワイヤードまたはワイヤレスリンクの両方及び、電子及び／または互いのデータ通信において、サーバ、構成要素などを含むコンピュータを配置することを含む。
【００２６】
本明細書に使用される用語「ディープパケットインスペクション（パケットの深層検査）」は、コンピュータネットワークパケットフィルタリングのフォームを指すものであり、前記フォームは、検査ポイントを通過する際に、パケットのデータ部分（ヘッダーもあり得る）を検査し、プロトコル非準拠、ウイルス、スパム、侵入などのものを検索するものである。
【００２７】
本明細書に使用される用語「仮想サーバ」は、サーバを指すものであり、前記サーバは、他の仮想サーバとの間でコンピュータ資源を共有し、即ち、コンピュータ全体がサーバソフトウェアを実行することに供される専用サーバではない。仮想サーバは、存在し得るものであり、例えば、ゲストとして公共またはプライベートクラウドコンピューティングのデプロイメントにおいて存在する。
【００２８】
用語「ビッグデータ」は、複数ノードの上にあるハイデータ、高速ストレージを指すものである。
【００２９】
他に示さない限り、本明細書に用いられる全ての技術的及び／または科学的用語は、本発明の属する当業者により一般に理解されるのと同じ意味を有する。本明細書に記載されるものと似たまたはそれと等価の方法及び材料を、本発明の実施例の実施またはテストにおいて用いることができ、例示的な方法及び／または材料は以下で説明される。また、矛盾が生じた場合には、定義を含む特許明細書はコントロールするであろう。さらに、前記材料、方法と実施例は単に示すものであり、必然的に限定しようとするものではない。
【図面の簡単な説明】
【００３０】
本発明のいくつかの実施例は、単なる例として添付の図面を参照しながら本明細書で説明される。具体的な図面を詳細に参照して、示された特定の実施例は、例として、本発明の実施例に対する例示的な説明をすることを目的とする。この点に関して、図面とともに説明を行うことにより、当業者には、本発明の実施例が如何にして実施できるかは明らかであろう。
【００３１】
図面について、類似の参照数字または特性は、対応する構成要素あるいは類似の構成要素を表す。
図１は、本発明の実施例が適用されるシステム環境を示す図である。
図２は、本発明を使用する例示的な学習のアーキテクチャ及び脅威検出マシンの図である。
図３は、データ収集モジュールで実施されたロジックを示すフローチャートである。
図４は、ステートマシンモジュール及びオプショナルシナリオベースアラートモジュールへの例示的な特定プロトコルのベクトル入力を示す図である。
図５は、シナリオベースのアラートモジュールで実施されたロジックのフローチャートである。
図６は、例示的なパケットベースのシナリオデータ構造の図である。
図７は、学習フェーズ  におけるステートマシンモジュールで実施されたロジックのフローチャートである。
図８は、保護フェーズ  におけるステートマシンモジュールで実施されたロジックのフローチャートである。
【発明を実施するための形態】
【００３２】
本発明の少なくとも一実施例を詳細に説明する前に、本発明は、以下の説明で記述される及び／または図面に示される構成要素、及び／または方法の構造と配置の詳細に対する適用に必ずしも限定されないことは、理解されるべきである。本発明については、他の実施例が可能であり、または種々の方法で実行または実施することができる。
【００３３】
本発明は、システム、方法またはコンピュータプログラム製品によって実現されることができる。従って、本発明の様態は、完全なハードウェアの実施形態、完全なソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードを含む）、またはソフトウェアとハードウェアの様態を結合する実施形態の形を取ることができるものであり、この様態は本明細書において、一般的に、全て「サーキット」、「モジュール」または「システム」として呼ばれることができる。さらに、本発明の様態は、コンピュータプログラム製品の形を取ることができ、一つ以上の非一時的なコンピュータ読み込み（保存）可能な媒体（複数の媒体）により実現されるものであり、この媒体は、その上で実施されるコンピュータ読み込み可能なプログラムコードを有する。
【００３４】
本発明では、様々な実施例において、産業制御システム、構成デバイス、ネットワーク及びインフラストラクチャなどに対するサイバー攻撃の軽減のための方法及びシステムを提供する。本発明は、電力インフラストラクチャを保護するアプライアンスのために、詳細に、且つ模範的に説明されるものであり、該電力インフラストラクチャはＭｏｄｂｕｓ制御プロトコルを使用するものである。また、本発明は例えば、工業設備を保護するものであり、この工業設備は、化学プラント、発電、送信及び分配システム、水分配ネットワーク、廃水処理設備を含むがこれらに限定されなく、また、例えば、分散ネットワークプロトコル（ＤＮＰ３）、プロセス制御（ＯＰＣ）のためのオブジェクトリンク及び埋め込みなどの、インダストリアルネットワークのための他のプロトコルを使用するものである。
【００３５】
本発明のいくつかの実施例は、インダストリアルプロテクションテクノロジーサーバに利用されるものであり、このインダストリアルプロテクションテクノロジーサーバは、例えば、インダストリアルネットワークに入るまたはトラバースする各パケットのコピーを受信するものである。
【００３６】
また、本発明は、例えば、多くの物理的または仮想化されたサーバにより実現されるものであり、このサーバは、リンクされ、また産業インフラストラクチャを通じて分散されることができる。さらに、本発明は、例えば、ハードウェアもしくはソフトウェアモジュールにより実現されるものであり、このモジュールは、サーバ／ゲートウェイを転送するデバイス、またはパケットを転送するパケットの中でリンクされ、これにより、本発明は、パケットが転送するデバイスをトラバース する際に、各パケットを受信するものである（パケットのコピーを受信するというよりりかは）。
【００３７】
インダストリアルプロテクションテクノロジーサーバは、例えば、学習フェーズ及び保護フェーズの二つのフェーズで実行される。学習フェーズにおいて、インダストリアルプロテクションテクノロジーサーバは、リアルタイムまたはリプレイされるパケットを受信するものであり、前記パケットは、ＩＣＳネットワークの通常の動作を表すものとして知られている。インダストリアルプロテクションテクノロジーサーバは、これらのパケットからデータを抽出し、ディープパケットインスペクション（ＤＰＩ）を使用し、また、例えば、アライバルタイムなどのパケットメタデータを収集することができる。インダストリアルプロテクションテクノロジーサーバは、「ステートマシン」を構成するためにこのデータを分析するものであり、この「ステートマシン」は、ＩＣＳネットワークにおける通信の周期的性質をキャプチャする。ＩＣＳネットワーク通信の周期的性質の例は、ヒューマンマシンインタフェース(HMI)デバイスのケースにおいてみられることができるものであり、前記ＨＭＩデバイスは、固定周波数で、各プログラマブルコントローラ(PLC)を繰り返してポーリングし、これにより、トラフィックにおける一定のパターンが生成される。インダストリアルプロテクションテクノロジーサーバ中のアルゴリスムは、ＰＬＣスレーブ及びそれのマスタの間の通信でキャプチャされるパケットを観察することにより、ＰＬＣｓの状態を計算する。
【００３８】
インダストリアルプロテクションテクノロジーサーバは、学習フェーズと保護フェーズとの間において、例えば、インダストリアルプロテクションテクノロジーサーバのコンソールにおける人間の管理者によって行使されるコマンドにより遷移される。或いは、この遷移は、例えば、タイマ、イベントなどにより、自動的にトリガすることができる。
【００３９】
保護フェーズにおいて、インダストリアルプロテクションテクノロジーサーバは、例えば、リアルタイムまたはリプレイされるパケットを受信することで、異常なイベントがＩＣＳネットワークで起こるかどうかを特定することができる。インダストリアルプロテクションテクノロジーサーバは、これらのパケットからデータを抽出し、ディープパケットインスペクション（ＤＰＩ）を使用し、また、例えば、アライバルタイムなどのパケットメタデータを収集する。ＩＣＳは、特定のパケットが正常または変則的であるかどうかを特定するために、例えば、学習フェーズの間で構成されるステートマシンと共にこのデータを利用する。
【００４０】
変則的なパケットが検出された際に、インダストリアルプロテクションテクノロジーサーバは防護措置を実行するものであり、前記防護措置は、例えば、コンソールなどへのメッセージにより、サイトのセキュリティ担当者に警告することなどである。或いは、インダストリアルプロテクションテクノロジーサーバは、例えば、疑わしい攻撃の一部であるパケットをブロックする挙動を取る、または、自動的に、侵害されたように見えるネットワーク接続型デバイスをシャットダウンする挙動を取ることができる。
【００４１】
図１に示されるように、例示的なシステム環境（国立標準技術研究所（ＮＩＳＴ）８００‐８２に説明されるトポロジーに基づく）を示すものであり、このシステム環境は、ＩＣＳを保護する本発明を実施するインダストリアルプロテクションテクノロジーサーバを含む。ＩＣＳの例としては、発電システム、オイル及びガスの上流、中流又は下流システム、廃水プラントが含まれる。ＩＣＳは、例えば、三つのセクションにより構成され、それはフィールドネットワーク／サブステーション１３０、制御ネットワーク１４０及び企業ネットワーク１５０である。
【００４２】
フィールドネットワーク／サブステーション１３０の展開には多くの例が存在する。フィールドネットワーク／サブステーション１３０は、例えば、発電と電圧がモニタされる設備１３７を含む。この設備１３７は、遠隔端末装置（ＲＴＵｓ）１３２、リレーモジュール１３４、またはＭｏｄｂｕｓプロトコルなどをサポートするプログラマブルコントローラ(ＰＬＣｓ)１３６によって、ネットワークにリンクされる。これらのデバイスは、スレーブデバイスとして挙動し、制御サーバ１４６からのリードレジスタ、ライトレジスタ、及び他の制御コマンドに対応する。
【００４３】
フィールドネットワークサブステーション１３０におけるＲＴＵｓ１３２、ＰＬＣｓ１３６及びリレーモジュール１３４は、例えば、物理的にネットワークにリンクされる。また、このネットワークは、例えば、各デバイスをインダストリアルスイッチまたはマルチプレクサ１３８などにアタッチするシリアル・リンクであって、フィールドネットワーク‐制御ネットワーク通信リンク１６０にもアタッチするものであり、さらに、前記リンク１６０は、フィールドネットワークサブステーション１３０と制御ネットワーク１４０の間の接続性を提供する。
【００４４】
フィールドネットワーク‐制御ネットワーク通信リンク１６０は、例えば、光イーサネットなどのワイヤードリンクである。制御プロトコルは、ＲＴＵｓ１３２、リレーモジュール１３４、ＰＬＣｓ１３６を管理するために使用されるものであって、Ｍｏｄｂｕｓ‐ｏｖｅｒ‐ＴＣＰ／ＩＰなどを使用できるＩＰ／イーサネットなどを介してトンネリングされることができる。
【００４５】
或いは、フィールドネットワーク‐制御ネットワーク通信リンク１６０は、他の種類のリンクとすることができ、例えば、一般パケットラジオサービス（ＧＰＲＳ）、カテゴリ５ツイストペアイーサネットなどである。
【００４６】
或いは、制御ネットワーク１４０とフィールドネットワーク１３０は、例えば、単一のネットワークエンティティに統合されることができる。
【００４７】
制御ネットワーク１４０は、制御サーバ１４６を含むものであって、例えば、Ｍｏｄｂｕｓプロトコルを使用して、ＲＴＵｓ１３２、リレーモジュール１３４及びＰＬＣｓ１３６などを制御するＩＣＳマスタとして挙動する。制御サーバ１４６は、例えば、イーサネットによって、イーサネットスイッチ１４８にリンクされ、イーサネットスイッチ１４８は、例えば、フィールドネットワーク‐制御ネットワーク通信リンク１６０にもリンクされる。
【００４８】
制御ネットワークは、例えば、本発明のインダストリアルプロテクションテクノロジーサーバ１４２、及びそれに関連するヒューマンマシンインタフェース（ＨＭＩ）１４４も含み、その両方が、例えば、スイッチ１４８にリンクされる。スイッチ１４８は、例えば、スイッチ１４８によって受信される各パケットが、インダストリアルプロテクションテクノロジーサーバ１４２にもコピーされるように構成される。これは、例えば、スイッチポートアナライザー（Ｓｗｉｔｃｈ  Ｐｏｒｔ  ＡＮａｌｙｚｅｒ（ＳＰＡＮ））などのポートミラー技術を使用することにより達成されることができる。或いは、テストアクセスポイント（ＴＡＰ）技術を使用することができる。
【００４９】
或いは、インダストリアルプロテクションテクノロジーサーバ１４２は、例えば、インダストリアルスイッチ若しくはマルチプレクサ１３８に直接リンクされることができる。
【００５０】
イーサネットスイッチ１４８は、例えば、制御ネットワーク‐企業ネットワーク通信リンク１７５にもリンクされる。制御ネットワーク‐企業ネットワーク通信リンク１７５は、例えば、イーサネットリンクであり、例えば、企業ネットワークスイッチ１５６に接続される。
【００５１】
或いは、制御ネットワーク‐企業のネットワーク通信リンク１７５は、別の種類のリンクとすることができ、例えば、一般パケットラジオサービス（ＧＰＲＳ）、カテゴリ５ツイストペアイーサネットなどである。
【００５２】
或いは、企業ネットワーク及び制御ネットワークは、例えば、単一のネットワークエンティティに統合されることができる。
【００５３】
企業ネットワーク１５０は、制御ネットワーク‐企業ネットワーク通信リンク１７５によって制御ネットワーク１４０にリンクされる。企業ネットワークは、例えば、パーソナルコンピュータ（ＰＣｓ）１５２及びサーバ１５８を含むことができる。
【００５４】
サイバーセキュリティ管理コンソール１５４は、デバイスであり、このデバイスは、例えば、インダストリアルプロテクションテクノロジーサーバ１４２からの指示を、潜在的なサイバー攻撃が検出された際に受信する。また、サイバーセキュリティ管理コンソール１５４は、例えば、ツイストペア銅線イーサネットによって、企業ネットワークスイッチ１５６にリンクされる。
【００５５】
インダストリアルプロテクションテクノロジーサーバ１４２の内部構成は、図２に示される。インダストリアルプロテクションテクノロジーサーバ１４２は、ネットワークインターフェース２４０、データ収集モジュール２５０、ネットワークトポロジデータベース２５５、オプショナルシナリオベースアラートモジュール２６０、アラートデータベース２６５のオプショナルシナリオ、ステートマシンモジュール２７０、ネットワークステートマシン２７５及び管理モジュール２８０を含む。これらのモジュールは、例えば、ＣＰＵ、メモリ及びストレージを有する汎用計算機で実行するソフトウェアモジュールとすることができる。
【００５６】
データベースモジュール（ネットワークトポロジデータベース２５５、アラートデータベース２５５のオプショナルシナリオ、ネットワークステートマシン２７５）は、例えば、システム記憶域で実施される。或いは、いくつか若しくは全部のデータベースモジュールは、例えば、リモートサーバに配置する、または制御ネットワーク１４０若しくは企業ネットワーク１５０に配置する大きいデータリポジトリの中にあってもよい。
【００５７】
ネットワークインターフェース２４０は、例えば、物理的、仮想的または論理的なデータリンクであり、これはコンピュータ及び設備の内部若しくは外部のデバイスと通信するためのものである。
【００５８】
データ収集モジュール２５０は、例えば、ソフトウェアモジュールであって、例えば、ネットワークインターフェース２４０からパケットを読むモジュールである。データ収集モジュール２５０は、例えば、各受信パケットでディープパケットインスペクション（ＤＰＩ）を実行し、パケットデータ及びメタデータを抽出するものであって、それらはオプショナルシナリオベースアラートモジュール２６０及びステートマシンモジュール２７０によって使用されるためのものである。
【００５９】
ネットワークトポロジデータベース２５５は、ＩＣＳに検出されたマスタデバイス及びスレーブデバイスに関する情報を維持する。ネットワークトポロジデータベース２５５は、例えば、学習フェーズの間にデータ収集モジュール２５０によって入力され、例えば、保護フェーズの間にオプショナルシナリオベースアラートモジュール２６０及びステートマシンモジュール２７０により使用される。データ収集モジュール２５０によって実行されるプロセスは、図３に参照されるように以下のものである。
【００６０】
用語「シナリオ」は、基準に一致したネットワークイベントのセットであって、マッチングパケットまたは一連のパケットのための、データに一致したパケット及び／またはパケットメタデータ、及び／またはステートフル情報から成るセット、及び指示を指すものであり、この指示は、シナリオが満たされた時に何をするかに関する指示である。例としてのシナリオデータ構造は図８に示される。
【００６１】
オプショナルシナリオベースアラートモジュール２６０は、それが存在する場合には、例えば、各受信パケット（オペレーションにおける保護フェーズにおいて）をネットワークイベントに適用し、アラートデータベース２６５のためのオプショナルシナリオ中のシナリオを検出する。これにより、オプショナルシナリオベースアラートモジュール２６０は、例えば、パケットを検出するものであり、このパケットは、インダストリアルプロトコルの仕様に従うものではなく、また既知の脅威、新規ポート若しくは失敗したデバイスなどの動作イベントを含むものである。このシナリオベースアラートモジュール２６０は、このようなイベントを検出する（アラートデータベース２６５のシナリオにおけるシナリオの一つをマッチングする）際に、例えば、アラートを発する。シナリオベースアラートモジュール２６０は、ネットワークトポロジデータベース２５５をその分析において使用することができる。シナリオベースアラートモジュール２６０によって実行される詳細なプロセスは、図５に参照されるように以下のものである。
【００６２】
アラートデータベース２６５のためのオプショナルシナリオは、例えば、ネットワークイベントを記述する基準のリストを含む。ネットワークイベントシナリオは、管理モジュール２８０により、アラートデータベース２６５のシナリオ中にロードされる。
【００６３】
ステートマシンモジュール２７０は、例えば、データ収集モジュール２５０からパケットデータ及びメタデータを受信する。ステートマシンモジュール２７０は、ＩＣＳ装置が学習フェーズにあるか、または保護フェーズにあるかによって作動が異なる。学習フェーズでは、ステートマシンモジュール２７０は、受信パケットデータ／メタデータを分析して、ネットワークステートマシン２７５を作成する。保護フェーズでは、ステートマシンモジュール２７０は、例えば、ネットワークステートマシン２７５とともに各受信パケットを分析し、変則的なネットワークイベントを識別して、例えば、アラートを発する。学習フェーズにおけるステートマシンモジュール２７０によって実行されるプロセスは、図５に参照されるように以下に詳細に説明される。保護フェーズにおけるステートマシンモジュール２７０によって実行されるプロセスは、図６に参照されるように以下に詳細に説明される。
【００６４】
管理モジュール２８０は、管理リクエスト及び情報を、例えば、ヒューマンマシンインタフェース１４４並びに、インダストリアルプロテクションテクノロジーサーバ１４２及びサイバーセキュリティ管理コンソール１５４中の他のモジュールなどとを交換する機能を担う。ヒューマンマシンインタフェース１４４の管理機能は、例えば、学習フェーズと保護フェーズの間においてインダストリアルプロテクションテクノロジーサーバを遷移することを含むことができる。管理モジュール２８０によりサイバーセキュリティ管理コンソール１５４に送信される指示には、例えば、疑わしいパケットの受信を示すアラートが含まれる。
【００６５】
データ収集モジュール２５０よって続けられるプロシージャーは、図３のフローチャートに示される。本明細書の他のフローチャートと同様に、このフローチャートを使って、このフローチャートのプロセス及び／またはサブプロセスは、例えば、リアルタイムで自動、または手動のいずれか一方、及びこれらの組み合わせで実行される。
【００６６】
ブロック３０５では、システムは例えば、ネットワークインターフェース２４０からパケットを受信する。或いは、データ収集モジュール２５０のプロセスは、同様にハードドライブのファイルにあるパケットキャプチャからパケットを受信することができる。
【００６７】
ブロック３１０では、データ収集モジュール２５０のプロセスは、ディープパケットインスペクション（ＤＰＩ）をパケットに実行する。ブロック３１５では、プロトコルタイプが、例えば、ディープパケットインスペクションの結果に基づいて特定される。例えば、トランスポートプロトコルがイーサネットプロトコルにカプセル化されたデプロイメント（Ｍｏｄｂｕｓ‐ｏｖｅｒ‐Ｔｒａｎｓｐｏｒｔ制御プロトコル／国際通信基準（ＴＣＰ／ＩＰ）が使用されるケースのように）において、データ収集モジュール２５０のプロセスは、Ｍｏｄｂｕｓ関数コード及びユニット識別子などの上位層フィールドと共に、イーサタイプまたは仮想ローカルエリアネットワーク（ＶＬＡＮ）Ｉｄなどのイーサネットフィールドを検査することができる。ＤＮＰ３メッセージに運ばれたデータ構造などのペイロードデータは、同様に、例えばプロトコルタイプを特定するために使用されることができる。
【００６８】
或いは、システムは、ディープパケットインスペクションなしでプロトコルタイプを特定することができる。例えば、インダストリアルプロテクションテクノロジーサーバの物理的なインターフェースがＭｏｄｂｕｓ制御器である環境では、Ｍｏｄｂｕｓだけを受信することができる。この環境では、ディープパケットインスペクションは、不要であるため省略されることができる。
【００６９】
プロトコルタイプは、例えば、インダストリアルセッティングで使用されるＩＣＳプロトコルの一つとすることができる。これらは、Ｍｏｄｂｕｓ、ＯＰＣ、国際電気標準会議（ＩＥＣ）６１８５０、ＤＮＰ３などを含む。プロトコルタイプは、ＩＣＳプロトコルの一つとすることができ、このＩＣＳプロトコルは、ＴＣＰ／ＩＰなど、Ｍｏｄｂｕｓ−ｏｖｅｒ−ＴＣＰ／ＩＰ、ＤＮＰ３−ｏｖｅｒ−ＴＣＰ／ＩＰなどのトランスポートプロトコルにカプセル化されたものである。この方法は、一般的であり、ネットワーク上に現れるメッセージ形式またはプロトコルの全てのタイプに等しく適用されることが理解されるであろう。
【００７０】
ブロック３２０では、システムは、例えば、インダストリアルネットワークの循環挙動を表示する受信パケットから特定のフィールドを選択する。インダストリアルネットワークトラフィックは、パケットを使用することができるものであり、このパケットでは、例えば、コントローラタイプエンティティがインダストリアルプロセスを実行するデバイスに、問合せまたはコマンドを繰り返して送信する。このようなインダストリアルネットワークでは、システムは、プロトコルのフィールドを選択することができ、このフィールドは、ピアのアイデンティテイー、特定のコマンド及び問合せを示すものである。
【００７１】
例えば、そのプロトコルタイプがＭｏｄｂｕｓであるパケットの特定のケースでは、１バイトのスレーブアドレスは、例えば、このようなデータセットの一部とすることができ、該データセットは、インダストリアルネットワーク上のトランザクションの周期性を表すものである。Ｍｏｄｂｕｓ関数コードフィールドは、そのようなデータセットの一部とすることができるパケットデータの他の例である。また、アライバルタイム及び物理的入力ポートなどのパケットメタデータは、同様にそのようなデータセットの一部とすることができる。
【００７２】
ブロック３２５では、例えば、現在のパケットで通信するマスタ及びスレーブのアドレスを反映するために、システムはネットワークトポロジデータベース２５５をアップデートする。このプロセスではまた、例えば、ネットワークトポロジデータベース２５５から無効のアドレスを排除する。ネットワークトポロジデータベース２５５に対するアップデートは、例えば、インダストリアルプロテクションテクノロジーサーバが学習フェーズにあるときだけ実行される。
【００７３】
ブロック３３０において、システムは、オプションとしてパケットに関連するネットワーク捜査データを保存し、その後において、アラートが生成される場合に使用する。ブロック３３５では、システムは、選択されたデータセットに基づき、データベクトルを準備する。ブロック３４０では、システムは、例えばデータベクトルをステートマシンモジュール２５０に渡す。
【００７４】
図４は、例示的なベクトルを示し、このベクトルは、Ｍｏｄｂｕｓプロトコルを含むパケットからデータ収集モジュール２５０によって作成されたものである。前記ベクトルは、８‐ビットＭｏｄｂｕｓスレーブアドレス４１０で始まり、その次にＭｏｄｂｕｓ関数コード４２０が続く。最後に入力ポートまたはアライバルタイムなどのメタデータ４３０がある。
【００７５】
図４に示すベクトルは、例としてだけ機能するものであり、特定のデータ構造または内容を指定することを意図するものではない。他のトポロジーまたは他のインダストリアルプロトコルにおけるデプロイメントにより、異なるベクトルフォーマットを使用することができる。
【００７６】
オプショナルシナリオベースアラートモジュール２６０によって続けられるプロシージャーは、図５のフローチャートに示される。処理はブロック５０５において開始される。ブロック５１０では、例えば、アラートデータベース２６５のシナリオから第一のシナリオが選択される。
【００７７】
ブロック５２０では、パケットは、シナリオにおけるパケットマッチング仕様（もしあれば）に適用される。パケットマッチング仕様は、パケット中で評価されるためのオフセット及びデータパターンを含む。例えば、パケットマッチング仕様は、悪意のあるサイトに属すると知られている特定の宛先ＩＰ（インターネットプロトコル）アドレスを指定することができる。シナリオにおけるパケットマッチング仕様に対するパケットへの適用の結果は、例えば、「マッチ」または「ノンマッチ」となる。
【００７８】
ブロック５３０では、パケットは、シナリオのメタデータマッチング仕様（もしあれば）に適用される。例えば、メタデータマッチング仕様は、特別な管理を必要とする特定の入力ポートを指定することができる。或いは、メタデータマッチング仕様は、例えば、特定のパケット間のアライバルタイムの値または範囲を指定することができる。シナリオにおけるメタデータマッチング仕様に対するパケットへの適用の結果は、例えば、「マッチ」または「ノンマッチ」となる。
【００７９】
ブロック５４０では、パケットは、シナリオのステートフル特性仕様(もしあれば)に適用される。例えば、シナリオがデバイスの消失を検出することにマッチするように指定される場合には、未応答の要求（未応答の要求のある閾値の後）を構成するパケットは、マッチとなる。また、シナリオのステートフル特性仕様に対するパケットへの適用は、例えば、仕様（例えば、カウンタ及びタイマ）のステートフルコンテンツを変更することもできる。
【００８０】
ブロック５５０では、システムは、シナリオにおけるそれぞれの三つの仕様（例えば、パケットマッチング、メタデータマッチング、ステートフル特性マッチング）のために、シナリオ構造に対するパケットへの適用がマッチするかどうかを特定する。もしマッチする場合には、ブロック５３０では、システムはマッチされたシナリオに関連する指示６９９を検査する。その指示がアラートの発生である場合には、ブロック５６０では、シナリオベースアラートモジュール２６０のプロセスは、例えば、管理者のコンソールでメッセージを表示することでアラートを発する。或いは、システムは、例えば、特定のイベントが検出された管理モジュール２８０に信号を送る。
【００８１】
次にプロセスは、ブロック５１０に戻り、次のシナリオが選択される。シナリオのリストが無くなると、ブロック５７０においてシナリオベースのアラート処理が、新しいパケットが受信されるまで完了される。
【００８２】
図６は、例示的なシナリオデータ構造を示す。この例示的なパケットベースのシナリオデータ構造は、オプショナルパケットマッチング仕様６１０で始まる。パケットマッチング仕様６１０は、例えば、一つ以上のパケットパターンマッチングタプルにより構成され、ここで、各パケットマッチングタプルは、例えば、パケットの中でパターンがどこでマッチされるべきかを示すオフセット値、データマッチングパターン及びマッチされるパターンの長さを示す値により構成される。
【００８３】
オプショナルメタデータマッチング仕様６２０は、例えば、一連のメタデータ識別子、及びメタデータ値のペアにより構成されるものであり、ここで、各ペアは、一種のメタデータ及び一つの値を識別し、マッチさせる。例えば、メタデータ識別子及びメタデータ値のペアは、パケットの入力ポートがポート０である場合にマッチすることを指定することができる。或いは、例えば、メタデータ識別子及びメタデータ値のペアは、パケットの時間間隔がある値を下回った際にマッチすることを指定することができる。
【００８４】
オプショナルステートフル特性仕様６３０は、例えば、一連のステートフル特性識別子、ステートフル特性値及び持続的なステートタプルにより構成され、ここで、各タプルは、マッチされるステートフル特性のタイプや値を識別し、パケットにわたってチェック可能とするために、持続的なステート情報を含むものである。例えば、ステートフル特性識別子及びステートフル特性識別子のペアは、特定のパケットの１０００インスタンスが１秒間隔で受信された際にマッチさせることを指定することができる。
【００８５】
指示６９９は、パケットデータ、メタデータ、およびステートフル特性仕様がパケットとのマッチする場合に、パケットが如何にして扱われるべきであるかを指定する。指示６９９は、例えば、二つの値を有することができ、一つはパケットがアラートをトリガーする値とし、もう一つはアラートをトリガーしない値とする。
【００８６】
学習フェーズにおけるステートマシンモジュール２７０に従われる例示的なプロシージャーは、図７のフローチャートに示される。ブロック７０５においてプロセスが開始される。ブロック７１０では、システムは、例えば、データ収集モジュール２５０から入力ベクトルを受信する。このベクトルは、パケットからのデータフィールド及びメタデータを、パケットの通常シーケンスで表す。ブロック７１５では、システムは、クラスタリングアルゴリズムを受信ベクトルに適用して数値を生成し、この数値は「初期ステート」といい、また「現ステート」でもある。ブロック７２０では、システムは、初期ステートに対応するネットワークステートマシン２７５のテーブル内のエントリを選択する。ブロック７２５では、システムは、別のベクトル、又は、保護フェーズへの遷移命令のいずれかを受信する。別のベクトルが受信された場合には、次にブロック７３０において、クラスタリング機能がベクトルに適用され、「新しいステート」といわれる数値が生じる。ブロック７３５では、システムは、現ステートと新しいステートの間の遷移をカウントする遷移カウンタをネットワークステートマシン２７５のテーブルエントリに追加する。ブロック７４０では、「現ステート」の値が「新しいステート」の値に設定される。次いで、新しい現ステートのためのステート制御データを選択するために、ブロック７２０に戻される。保護フェーズへの遷移という命令が受信された際には、ブロック７４５で学習フェーズは終了される。
【００８７】
学習フェーズにおける機械学習エンジン２７０のプロシージャーについての説明については、受信パケットから新しい入力ベクトルを受信することで、「ステート」を特定する。他の実施様態では異なる動作をすることができる。例えば、特定の態様におけるプロシージャーにおいて、新しいステートを特定するために、クラスタリング機能を適用する前に、固定数のパケットを蓄積することができる。或いは、このプロシージャーにより、例えば、特定のイベントまで一連のパケットを受信し、新しいステートを特定するために、クラスタリング機能を蓄積されたパケットに適用することができる。
【００８８】
保護フェーズにおける機械学習エンジン２７０に従うプロシージャーは、図8に示される。
【００８９】
ブロック８０５では、システムはベクトルを受信する。ブロック８１０では、システムは、受信ベクトルから「新しいステート」を導出するために、クラスタリングアルゴリズムを適用する。ブロック８１５では、システムは、新しいステートが現ステートに続く確率を計算するために、ネットワークステートマシン２７５中の遷移カウント情報を使用する。ブロック８２０では、システムは、ブロック８１５の計算結果を、前のベクトルにおけるブロック８１５の計算結果と共に使用し、最後の「K」ステート（このステートにおいて、「K」は本実施例にとって特別な定数であって、２以上である）の連続発生の確率を計算する。ブロック８２５では、システムはこの確率をアラートの閾値と比較する。この確率がアラートの閾値を下回る場合には、異常が発生し、ブロック８３０においてシステムは防護措置を取ることとし、例えば、アラートを発するなどの措置を取る。次いで、次のベクトルを受信するために、ブロック８０５に戻る。
【００９０】
その処理において、機械学習エンジン２７０は、例えば、同様にインダストリアルプロテクションテクノロジーサーバの他のインスタンスで「相互相関」を実行することができる。「相互相関」において、機械学習エンジン２７０は、例えば、それらのインスタンスのモニタされるパラメータのステートを特定するために、他のインダストリアルプロテクションテクノロジーサーバインスタンスのネットワークで調査する。機械学習エンジン２７０は続いて、例えば、現在処理済のパケットが変則的であるか、または非変則的であるかに対する評価におけるこのステート情報を使用することができる。
【００９１】
本発明の実施例として詳細に説明されるものとして、各パケットのコピーがＩＣＳ装置に送られる。或いは、実施例では、例えば、各パケットがフォワーディングデバイスまたはゲートウェイを通る際に、各パケットを検査することができる。このような実施例では、防護措置を実行する決定において、例えば、パケットをフォーワードせずにむしろパケットを破棄することにより行うことができる。
【００９２】
本発明の実施例として詳細に説明されるものとして、ＩＣＳ装置によって取られたる防護措置は、サイバーセキュリティ管理コンソール１５４にアラートを送ることとする。或いは、実施例として、ノードを無効にするための措置を実行することができ、このノードは、変則的なトラフィックを生成するまたは転送するものである。このような実施例では、例えば、ＩＣＳ装置は、特定のノードを管理してそれを無効にするために、SNMPなどの管理プロトコルを使用することができる。
【００９３】
或いは、実施例として、ノードを無効にするための防護措置を実行することができ、このノードは、変則的なトラフィックを生成するまたは転送するものである。このような実施例では、例えば、ＩＣＳ装置は、特定のノードを管理してそれを無効にするために、SNMPなどの管理プロトコルを使用することができる。
【００９４】
或いは、実施例として、例えば、ネットワークにおけるプログラムノードに対する防護措置を実行することで、特定のパターンにマッチするトラフィックを破棄させる。このような実施例では、ＩＣＳ装置は、例えば、特定のノードを管理するために、SNMPなどの管理プロトコルを使用することができる。
【００９５】
図中のフローチャート及びブロックダイアグラムは、本発明の様々実施例による構造、機能性、及びシステム、方法とコンピュータプログラム製品の可能な構成に対する操作、を示すものである。この点において、フローチャートまたはブロックダイアグラムの各ブロックは、モジュール、セグメント、またはコードの一部を表示することができ、このコードは、指定された論理関数（複数の関数）を実装するための一つ以上の実行可能な命令を含む。いくつかの代替実施例では、ブロックに記載された機能が、図形に記載された順序通りに発生しないことに注意すべきである。例えば、連続して示される二つのブロックは、実際に、同時に実質的に実行される、またはブロックは、時々逆順序で実行されることができ、これは、関与する機能によるものである。ブロックダイアグラム及び／またはフローチャート図における各ブロック、並びにブロックダイアグラム及び／またはフローチャート図におけるブロックの組合せは、専用ハードウェアベースのシステムによって実施され得ることにも注意されるであろう。前記専用ハードウェアベースのシステムは、指定された機能または行為、または専用ハードウェアとコンピュータ命令との組合せを実行するものである。
【００９６】
明確化のために別の実施例に関して説明された本発明のある特徴は、同様に一つの実施例で組み合わせて提供され得ることが理解される。また、逆に、簡潔のために一つの実施例に関連して説明された本発明の様々な特徴は、別々に提供される、または全ての適切なサブコンビネーションで、または本発明の他の説明された実施例では適切として提供されることができる。様々な実施例に関して説明されたある特徴は、その実施例がそれらの要素なしで実施できない限り、それらの実施例の本質的な特徴と見なすべきではない。
【００９７】
その一部を含む上述したプロセスはソフトウェア、ハードウェア、及びそれの組合せによって実行されることができる。これらのプロセス及びそれの一部は、コンピュータ、コンピュータ型デバイス、ワークステーション、プロセッサ、マイクロ・プロセッサ、それに関連する他の電子検索ツール、メモリ、および他の非一時的な記憶型デバイスによって実行されることができる。これらのプロセス及びそれの一部は、同様に、コンパクトディスク(CDｓ)または磁気、光学のディスクなどを含む他のディスク、機械によって読取り可能なものなど、または磁気、光学の若しくは半導体記憶のものを含む他のコンピュータの使用可能な記憶媒体、または他の電子信号源などのプログラム可能な非一時的な記憶媒体により実施されることができる。
【００９８】
その構成要素を含む前記プロセス（方法）及びシステムは、特定のハードウェアとソフトウェアを例示的に参照して、本明細書を説明したものである。前記プロセス（方法）は、例として説明されたものであり、これにより、過度の実験を行わずにこれらの実施例を実施することを抑えるために、特定のステップとそれらの順序が省略される及び／または当業者によって変更されることができる。前記プロセス（方法）及びシステムは、過度の実験を行わずに、これらの全ての実施例を実施することを抑える必要となるように、当業者が他のハードウェアとソフトウェアを容易に製造できるための十分な方法で、従来の技術を使用して説明された。
【００９９】
本発明は、特定の実施例に関連して説明されたが、多くの変化、修正および変形が当業者には明らかである。従って、添付された請求の精神及び広い範囲内に属するこのような変化、修正および変形は全て包含されることを意図する。
【図１】
2017041886.tif 000002
【図２】
2017041886.tif 000003
【図３】
2017041886.tif 000004
【図４】
2017041886.tif 000005
【図５】
2017041886.tif 000006
【図６】
2017041886.tif 000007
【図７】
2017041886.tif 000008
【図８】
2017041886.tif 000009
【外国語明細書】
Title of Invention
METHOD FOR MITIGATION OF CYBER ATTACKS ON INDUSTRIAL CONTROL SYSTEMS
TECHNICAL FIELD OF THE INVENTION
The present invention relates to methods and systems for mitigating cyber attacks on industrial control systems.
BACKGROUND
An Industrial Control System (ICS) includes combinations of control components (e.g., electrical, mechanical, hydraulic, pneumatic) that act together to achieve an industrial objective (e.g., manufacturing, transportation of matter or energy).  
Many ICS comprise, for example, a number of field sites where industrial objectives are accomplished, together with, for example, a control center which monitors and manages the industrial objective. The control center and field sites are linked via, for example, telecommunications channels or data links.   The control center monitors or manages the industrial objective using, for example, industrial control protocols such as DNP3 (Distributed Network Protocol), Modbus, OPC, and the like.
Attacks by malicious parties on industrial control systems have been an increasing concern.  This is because ICS were ‘designed insecure’, with the assumption of air-gap between the intranet and the internet.  Cyber attacks on ICS have already disrupted critical infrastructure and in the future may cause even more profound damage to facilities, critical services, the environment, and even human life.
SUMMARY OF THE INVENTION
The present invention provides for mitigation of cyber attacks on ICS as it provides an accurate way of detecting when an attack is underway. Moreover, the present invention effectively responds to a detected attack by taking active steps to halt the intrusion without impacting the operation of crucial industrial infrastructure. 
The following is an exemplary and non-limiting list of threats to modern ICS, which are mitigated by the present invention:
1. Viruses capable of masquerading as a Programmable Logic Controller (PLC) and transmitting traffic in order to cause harm to an ICS system. 
2. Code injection into the Human-Machine Interface (HMI) application, by recognizing the profile of the communication within critical infrastructure networks. 
3. Exploitation of ICS protocols such as Modbus, DNP3 etc.
4. Malicious activities originating from hosts which do not reside on the operational network.
5. Exploitation of communication protocols, which are not ICS oriented, but are common in operational networks, such as: Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (FTP), Server Message Block (SMB), NetBios.
6. Unauthorized operations being taken by authorized users within the operational network, which are outside the scope of their permitted work.
The following is an exemplary and non-limiting list of solutions which the invention provides for, which may be attended to by operational and security personnel:
1. A solution for learning the traffic being generated by different PLCs found on the network. An attempt to deviate from these patterns will be detected.
2. A solution for learning the traffic being generated by different HMIs found on the network. An attempt to deviate from these patterns will be detected. This profile includes attempts to perform code injection.
3. A solution of performing traffic analysis according to specifications, i.e., reviewing the traffic being transmitted on the network and validating it according to known specifications.
4. A solution for modeling the behavior of the network as a state machine. This solution can automatically and accurately map the elements operating on the network, and to model their behavior as a finite set of states. It then tracks the behavior of each elements according to the model that was constructed and that is considered as legitimate. 
Whenever a malicious actor starts operating on the network, whether inside or outside of the network, the resulting traffic will be detected as violating the state machine's model. 
5. A solution for profiling the usage of IT (Information Technology) protocols inside operational environments, as part of the state machine described in item 4. This can be accomplished due to the fact that most of the communications is machine-to-machine based, and therefore very well defined (compared to regular IT networks). 
6. A solution for profiling the user behavior inside operational environments, as part of the state machine described above. This can be accomplished due to the fact that a user operating inside an operational network usually has a very well-defined role and activities (in relation to users in regular IT networks).
Embodiments of the present invention are directed to a method, which is computer-implemented, for detecting a potential compromise of cyber security in an industrial network.  The method comprises: establishing a baseline of site-acceptable network behavior comprising a list of network states and transition probabilities, wherein a transition probability denotes an estimated probability of a first network state being followed temporally by a second network state during normal network operation;  establishing a threshold representing the probability below which a sequence of network states is anomalous;  determining a probability for the occurrence of a sequence of network states as obtained from a particular stream of packets, according to the baseline of site-acceptable network behavior; and,  taking protective action according to whether the determined probability is below the established threshold.
Optionally,  the establishing a baseline of site-acceptable network behavior comprising a list of network states and transition probabilities comprises: analyzing a series of packets representing normal network behavior, to determine a temporal sequence of network states; and,  computing the probability of a first network state being followed temporally by a second network state, according to the number of times that the first network state is followed temporally by the second network state in the determined temporal sequence of network states.
Optionally, the particular stream of packets comprises packets received in monitoring the operation of the industrial network for potential cyber attack.
Optionally, the industrial network utilizes the Modbus protocol.
Optionally, the industrial network utilizes Distributed Network Protocol 3 (DNP3).
Optionally, the sequence of network states derived from a particular stream of packets includes “k” successive network states, where “k” is greater than two.
Optionally, the taking protective action comprises raising an alert.
Optionally, the taking protective action comprises blocking a packet.
Optionally, the taking protective action comprises disabling a node in the network.
Optionally, the analyzing a series of packets representing normal network behavior, to determine a temporal sequence of network states comprises determining a network state according to the combination of Modbus source, Modbus destination, and Modbus function fields in the analyzed packet.
Optionally, the alert comprises forensic data.
Embodiments of the present invention are directed to a computer system to detecting a potential compromise of cyber security in an industrial network.  The computer system comprises: a storage medium for storing computer components; and  a computerized processor for executing the computer components  comprising: a first computer component for establishing a baseline of site-acceptable network behavior comprising a list of network states and transition probabilities, wherein a transition probability denotes an estimated probability of a first network state being followed temporally by a second network state during normal network operation; a second computer component for establishing a threshold representing the probability below which a sequence of network states is anomalous; a third computer component for determining a probability for the occurrence of a sequence of network states as obtained from a particular stream of packets, according to the baseline of site-acceptable  network behavior; and, a fourth computer component for taking protective action according to whether the determined probability is below the established threshold.
Embodiments of the present invention are directed to a computer-usable non-transitory storage medium having a computer program embodied thereon for causing a suitable programmed system to  detecting a potential compromise of cyber security in an industrial network, by performing the following steps when such program is executed on the system, the steps comprising: establishing a baseline of site-acceptable network behavior comprising a list of network states and transition probabilities, wherein a transition probability denotes an estimated probability of a first network state being followed temporally by a second network state during normal network operation; establishing a threshold representing the probability below which a sequence of network states is anomalous; determining a probability for the occurrence of a sequence of network states as obtained from a particular stream of packets, according to the baseline of site-acceptable network behavior; and, taking protective action according to whether the determined probability is below the established threshold.
This document references terms that are used consistently or interchangeably herein. These terms, including variations thereof, are as follows:
A “computer” includes machines, computers and computing or computer systems (for example, physically separate locations or devices), servers, computer and computerized devices, processors, processing systems, computing cores (for example, shared devices), and similar systems, workstations, modules and combinations of the aforementioned.  The aforementioned “computer” may be in various types, such as an industrial computer (Remote Terminal Unit (RTU), Intelligent Electronic Device (IED, Programmable Logic Controller (PLC), appliance), a personal computer (e.g., laptop, desktop, tablet computer), or any type of computing device, including mobile devices that can be readily transported from one location to another location (e.g., smartphone, personal digital assistant (PDA), mobile telephone or cellular telephone). 
A "server" is typically a remote computer or remote computer system, or computer program therein, in accordance with the “computer” defined above, that is accessible over a communications medium, such as a communications network or other computer network, including the Internet.  A “server” provides services to, or performs functions for, other computer programs (and their users), in the same or other computers. A server may also include a virtual machine, a software based emulation of a computer.
An "application", includes executable software, and optionally, any human-machine interfaces (HMI), through which certain functionality may be implemented.
The term "linked" as used herein includes both wired or wireless links, either direct or indirect, and placing the computers, including, servers, components and the like, in electronic and/or data communications with each other.
The term “deep packet inspection” as used herein refers to a form of computer network packet filtering that examines the data part (and possibly also the header) of a packet as it passes an inspection point, searching for protocol non-compliance, viruses, spam, intrusions, or the like.
The term “virtual server” as used herein refers to a server that shares computer resources with other virtual servers i.e. it is not a dedicated server wherein the entire computer is dedicated to running the server software.  Virtual servers may exist, for example, as guests in public or private cloud computing deployments.
The term “big data” refers to a high-data, high-velocity storage which resides, for example, on multiple nodes.
Unless otherwise defined herein, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains. Although methods and materials similar or equivalent to those described herein may be used in the practice or testing of embodiments of the invention, exemplary methods and/or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and are not intended to be necessarily limiting. 
BRIEF DESCRIPTION OF DRAWINGS
Some embodiments of the present invention are herein described, by way of example only, with reference to the accompanying drawings. With specific reference to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments of the invention. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments of the invention may be practiced.
Attention is now directed to the drawings, where like reference numerals or characters indicate corresponding or like components. In the drawings: 
FIG. 1 is a diagram illustrating a system environment in which an embodiment of the invention is deployed;
FIG. 2 is a diagram of the architecture of an exemplary learning and threat detection machine utilizing the invention;
FIG. 3 is a flow diagram illustrating the logic implemented in the Data Collection Module;
FIG. 4 is an exemplary protocol-specific vector input to the State Machine Module and optional Scenario-based Alert Module;
FIG. 5 is a flow diagram of logic implemented in the Scenario-based Alert Module;
FIG. 6 is an exemplary packet-based scenario data structure; 
FIG. 7 is a flow diagram of logic implemented in the State Machine Module in learning phase; and,
FIG. 8 is a flow diagram of logic implemented in the State Machine Module in the protection phase.
DETAILED DESCRIPTION OF THE INVENTION
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not necessarily limited in its application to the details of construction and the arrangement of the components and/or methods set forth in the following description and/or illustrated in the drawings.  The invention is capable of other embodiments or of being practiced or carried out in various ways. 
The present invention may be embodied in a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit," "module" or "system." Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more non-transitory computer readable (storage) medium(s) having computer readable program code embodied thereon.   
The invention provides, in various embodiments, methods and systems for mitigation of cyber attacks on, for example, industrial control systems and constituent devices, networks, and infrastructure. The invention is described in detail and exemplarily for an appliance protecting an electrical power infrastructure which utilizes the Modbus control protocol.  The invention may also protect, for example, industrial facilities including but not limited to chemical plants, electrical power generation, transmission and distribution systems, water distribution networks, and wastewater treatment facilities, and using, for example, other protocols for industrial networks such as Distributed Network Protocol (DNP3), Object Linking and Embedding for Process Control (OPC), and the like.
Some embodiments of the present invention are directed to an Industrial Protection Technology Server which receives, for example, a copy of each packet that enters or traverses the industrial network.  
The invention may also be embodied, for example, in a number of physical or virtualized servers which may be collocated or may be dispersed through the industrial infrastructure.  The invention may also be embodied, for example, in hardware or software modules that are collocated within packet forwarding devices or packet forwarding servers/gateways, so that the invention receives each packet as it traverses the forwarding device (rather than receiving a copy of the packet).
The Industrial Protection Technology Server operates in, for example, two phases:  a learning phase, and a protection phase. During the learning phase, the Industrial Protection Technology Server receives real time or replayed packets which are known to represent normal operation of the ICS network.  The Industrial Protection Technology Server extracts data from these packets using Deep Packet Inspection (DPI), and may also, for example, collect packet metadata such as, for example, arrival time.  The Industrial Protection Technology Server analyzes this data to construct a “state machine” that captures the periodic properties of the communication on the ICS network.  An example of ICS network communication periodic properties can be seen in the case of a human-machine interface (HMI) device which repeatedly polls every programmable logic controller (PLC) at a fixed frequency, so that a certain pattern in the traffic is generated. An algorithm in the Industrial Protection Technology Server calculates the states of the PLCs from observing the packets captured in the communication between the PLC slave and its master. 
The Industrial Protection Technology Server transitions between learning phase and protection phase according to, for example, a command invoked by a human administrator on a console of the Industrial Protection Technology Server.  Alternatively, the transition may be triggered automatically by, for example, a timer, an event, or the like.
During the protection phase, the Industrial Protection Technology Server receives, for example, real time or replayed packets so that it may determine whether anomalous events are taking place on the ICS network.  The Industrial Protection Technology Server extracts data from these packets using Deep Packet Inspection (DPI), and also, for example, collects packet metadata such as, for example, arrival time.  The ICS uses, for example, this data in conjunction with the state machine constructed during the learning phase to determine whether particular packets are normal or anomalous.  
When an anomalous packet is detected, the Industrial Protection Technology Server takes protective action such as, for example, alerting a site’s security officer via a message to a console or the like. Alternatively, the Industrial Protection Technology Server may, for example, take action to block the packets that are part of the suspected attack, or take action to automatically shut down a network-attached device that appears to have been compromised.
Reference is now made to FIG.1, which shows an exemplary system environment (based on topologies described in National Institute of Standards and Technology (NIST) 800-82) including an Industrial Protection Technology Server embodying the invention which protects an ICS. Examples of ICS include: power generation systems; oil and gas upstream, midstream or downstream systems; and wastewater plants. The ICS comprise, for example, three sections:  the field network/substation 130, the control network 140, and the corporate network 150.
There may be many instances of the field network/substation 130 in a deployment. The field network/substation 130 includes, for example, equipment 137 dedicated to power generation and to voltage monitoring. This equipment 137 is linked to a network via, for example, Remote Terminal Units (RTUs) 132, Relay Modules 134, or Programmable Logic Controllers (PLCs) 136 supporting, for example, the Modbus protocol. These devices act, for example, as slave devices which respond to read register, write register, and other control commands from the Control Server 146.  
The RTUs 132, PLCs 136, and Relay Modules 134 in the field network substation 130 are, for example, physically linked to a network.  The network is, for example, a serial link attaching each device to an industrial switch or multiplexer 138 which also attaches to, for example, a field network-control network communications link 160 that provides connectivity between the field network substation 130 and the control network 140.
The field network-control network communications link 160 is, for example, a wired link such as, for example, optical Ethernet.  The control protocol used to manage the RTUs 132, Relay Modules 134, and PLCs 136 may be tunneled over, for example, IP/Ethernet,  enabling use of, for example, Modbus-over-TCP/IP.
Alternatively the field network-control network communications link 160 may be another kind of link such as, for example, General Packet Radio Service (GPRS), Category 5 twisted-pair Ethernet, and the like.
Alternatively, the control network 140 and field network 130 may, for example, be integrated in a single network entity.
The control network 140 includes the control server 146 which acts, for example, as the ICS master using, for example, the Modbus protocol to control, for example, the RTUs 132, Relay Modules 134, and PLCs 136.  The control server 146 is linked, for example, via Ethernet to, for example, an Ethernet switch 148 which is also linked, for example, to the field network-control network communications link 160.
The control network also includes, for example, the Industrial Protection Technology Server of the invention 142 and its associated human-machine interface (HMI) 144, which both link, for example, to the switch 148.  The switch 148 is configured so that, for example, every packet received by the switch 148 is copied also to the Industrial Protection Technology Server 142.  This may be accomplished, for example, using port mirroring technology such as Switch Port ANalyzer (SPAN). Alternatively, test access point (TAP) technology may be used. 
Alternatively, the Industrial Protection Technology Server 142 may link, for example, directly to the industrial switch or multiplexer 138.
The Ethernet switch 148 is also linked to for example, the control network-corporate network communications link 175. The control network-corporate network communications link 175 is, for example, an Ethernet link and connects, for example to the corporate network switch 156.  
Alternatively the control network-corporate network communications link 175 may be another kind of link such as, for example, General Packet Radio Service (GPRS), Category 5 twisted-pair Ethernet, and the like.
Alternatively, the corporate network and control network may, for example, be integrated in a single network entity.
The corporate network 150 is linked to the control network 140 via the control network-corporate network communications link 175.  The corporate network may include, for example, personal computers (PCs) 152, and servers 158.
The cyber security management console 154 is the device that receives, for example, indications from the Industrial Protection Technology Server 142 when a potential cyber attack has been detected. The cyber security management console 154 also links to the corporate network switch 156 via, for example, twisted-pair copper Ethernet.
The internal architecture of the Industrial Protection Technology Server 142 is shown in FIG. 2. The Industrial Protection Technology Server 142 includes Network Interfaces 240, Data Collection Module 250, Network Topology Database 255, optional Scenario-based Alert Module 260, optional Scenarios for Alert Database 265, State Machine Module 270, Network Behavior State Machine 275, and Management Module 280.  These modules may be, for example, software modules running on a general purpose computer including a CPU, memory, and storage.
The database modules (Network Topology Database 255, optional Scenarios for Alert Database 255, Network Behavior State Machine 275) are implemented, for example, in system storage.  Alternatively, some or all of the database modules may, for example, be located in remote servers or in a big data repository located in the Control Network 140 or the Corporate Network 150.
The Network Interfaces 240 are, for example, physical, virtual, or logical data links for communication with computers and devices inside or outside the facility.  
The Data Collection Module 250 is, for example, a software module which, for example, reads packets from Network Interfaces 240.  The Data Collection Module 250 performs Deep Packet Inspection (DPI) on, for example, each received packet, and extracts, for example, packet data and metadata for use by the optional Scenario-based Alert Module 260 and State Machine Module 270,
The Network Topology Database 255 maintains information about the master devices and slave devices that have been detected on the ICS.  The Network Topology Database 255 is populated, for example, by the Data Collection Module 250 during the learning phase, and is utilized, for example, by the optional Scenario-based Alert Module 260 and State Machine Module 270, during the protection phase.   The process executed by the Data Collection Module 250 is shown below with reference to FIG. 3.
The term "scenario" refers to a set of network event-matching criteria that consists of packet-matching data and/or packet metadata and/or stateful information for matching packets or a series of packets, as well as a directive regarding what to do when the scenario has been satisfied.  An exemplary scenario data structure is shown in FIG. 8.
The optional Scenario-based Alert Module 260, when present, applies, for example, each packet received (in the protection phase of operation) to the network event detecting scenarios in the optional Scenarios for Alert Database 265.  In this manner, the optional Scenario-based Alert Module 260 detects, for example, packets which are not in compliance with the specifications of the industrial protocols, packets including known threats, operational events such as new ports or failed devices, and the like.  When the Scenario-based Alert Module 260 detects such events (by matching one of the scenarios in the Scenarios for Alert Database 265) it, for example, raises an alert. The Scenario-based Alert Module 260 may, for example, utilize the Network Topology Database 255 in its analysis.  The detailed process executed by the Scenario-based Alert Module 260 is depicted below with reference to FIG. 5.
The optional Scenarios for Alert Database 265 includes, for example, a list of criteria describing network events.  The network event scenarios are loaded into the Scenarios for Alert Database 265 by, for example, the Management Module 280.
The State Machine Module 270 receives, for example, packet data and metadata from, for example, the Data Collection Module 250.  The State Machine Module 270 operates differently according to whether the ICS appliance is in learning phase or protection phase.  In the learning phase, the State Machine Module 270 analyzes received packet data/metadata to create the Network Behavior State Machine 275.  In the protection phase, the State Machine Module 270 analyzes, for example, each received packet in conjunction with the Network Behavior State Machine 275 to identify anomalous network events and, for example, raise an alert.  The process executed by the State Machine Module 270 in the learning phase is illustrated in detail below, with reference to FIG. 5.  The process executed by the State Machine Module 270 in the protection phase is illustrated in detail below, with reference to FIG. 6.
The Management Module 280 is responsible for exchanging management requests and information with, for example, the Human Machine Interface 144, as well as, for example, other modules within the Industrial Protection Technology Server 142, and the Cyber Security Management Console 154. Management functionality of the Human Machine Interface 144 may include, for example, transitioning the Industrial Protection Technology Server between learning phase and protection phase.   Indications sent by the Management Module 280 to the Cyber Security Management Console 154 include, for example, alerts indicating reception of suspicious packets.
The procedure followed by the Data Collection Module 250 is illustrated as a flow diagram in FIG. 3.  With this flow diagram, as with other flow diagrams herein, the processes and/or subprocesses of the flow diagrams, are, for example, performed either automatically, manually, and combinations thereof, and in real time. 
At block 305, the system receives a packet from, for example, a Network Interface 240.  Alternatively, the Data Collection Module 250 process may also receive a packet from, for example, a packet capture that resides in a file on a hard drive.
At block 310, the Data Collection Module 250 process performs deep packet inspection (DPI) on the packet. At block 315, the protocol type is determined on the basis of, for example, the result of the deep packet inspection.  For example, in a deployment where transport protocols are encapsulated in the Ethernet protocol (as in a case where Modbus-over-Transport Control Protocol/Internet Protocol (TCP/IP) is utilized), the Data Collection Module 250 process may examine Ethernet fields such as the ether type or Virtual Local Area Network (VLAN) Id, together with higher layer fields such as Modbus function code and unit identifier.  Payload data such as the data structures carried in a DNP3 message may also, for example, be used to determine the protocol type.
Alternatively, the system may determine the protocol type without deep packet inspection.  For example, in a circumstance where the physical interface of the Industrial Protection Technology Server is a Modbus controller, only Modbus may be received.  In this situation, the deep packet inspection may be unnecessary and thus omitted.
The protocol type may be, for example, one of the ICS protocols used in industrial settings.  These include Modbus, OPC, International Electrotechnical Commission (IEC) 61850, DNP3, and the like.  The protocol type may also be, for example, one of the ICS protocols encapsulated in a transport protocol such as TCP/IP e.g., Modbus-over-TCP/IP, DNP3-over-TCP/IP, and the like.  It will be understood that this method is general, and applies equally to any type of message format or protocol which appears on the network.
At block 320, the system selects specific fields from, for example, the received packet which reveal, for example, the cyclical behavior of the industrial network.   The industrial network traffic may use a protocol in which, for example, a controller-type entity repeatedly sending inquiries or commands to devices, which perform an industrial process.  In such an industrial network, the system may, for example, select the fields of the protocol which signify the identities of the peers and the particular commands and queries.  
For example, in the specific case of a packet whose protocol type is Modbus, the 1 byte slave address may, for example, be part of such a data set that reveals the cyclical nature of the transactions on the industrial network.  The Modbus function code field is another example of packet data that may be part of such a data set.  Packet metadata such as arrival time and physical input port may also be part of such a data set.  
At block 325, the system updates the Network Topology Database 255 to, for example, reflect the addresses of the master and slave communicating in the current packet.  The process may also, for example, eliminate inactive addresses from the Network Topology Database 255.   These updates to the Network Topology Database 255 are, for example, performed when the Industrial Protection Technology Server is in the learning phase only.
At block 330, the system optionally stores network forensic data associated with the packet, to be used later if, for example, an alert is generated. At block 335, the system prepares a data vector based on the selected data set.  At block 340, the system passes the data vector to, for example, the State Machine Module 250.
FIG. 4 shows an exemplary vector created by the Data Collection Module 250 from a packet containing the Modbus protocol.  The vector begins with the 8-bit Modbus Slave Address 410, followed by the Modbus Function Code 420.  Finally there is Metadata 430, such as input port or arrival time. 
The vector illustrated in FIG. 4 serves as an example only and does not intend to specify a particular data structure or content.  Deployments with other topologies or other industrial protocols may utilize different vector formats.
The procedure followed by the optional Scenario-based Alert Module 260 is illustrated as a flow diagram in FIG. 5.    Processing begins with block 505.  At block 510, the first scenario from, for example, the Scenarios for Alert Database 265 is selected.  
At block 520, the packet is applied to the packet-matching specifications in the scenario (if present).  The packet matching specifications include offsets and data patterns to be evaluated in the packet.  For example, a packet-matching specification may specify a particular destination IP (Internet Protocol) address known to belong to a malicious site.  The result of the application of the packet to the packet-matching specifications in the scenario will be, for example, either a "match" or a "non-match".   
At block 530, the packet is applied to the metadata-matching specifications of the scenario (if present).   For example, a metadata-matching specification may specify a particular input port that requires special supervision. Alternatively, a metadata-matching specification may, for example, specify a particular interpacket arrival time value or range.  The result of the application of the packet to the metadata-matching specifications in the scenario will be, for example, either a "match" or a "non-match". 
At block 540, the packet is applied to the stateful characteristics specifications of the scenario (if present).  For example, if the scenario is specified to match upon detecting the disappearance of a device, then a packet that constitutes an unanswered request (after a certain threshold of unanswered requests) will constitute a match.   The application of the packet to the stateful characteristics specifications of the scenario may also, for example, change stateful contents of the specification (e.g., counters and timers).
At block 550 the system determines whether the application of the packet to the scenario structure resulted in a match for each of the 3 specifications in the scenario (i.e., packet matching, metadata-matching, stateful characteristics matching). If so then at block 530 the system examines the Directive 699 associated with the matched scenario.  If the directive is to alert, then at block 560 the Scenario-based Alert Module 260 process, raises an alert by, for example, displaying a message on an administrator’s console. Alternatively, the system may, for example, send a signal to the Management Module 280 that a particular event has been detected. 
The process then returns to block 510, and the next scenario is selected. If the list of scenarios is exhausted, then at block 570 Scenario-based Alert processing is completed until a new packet is received.
FIG. 6 illustrates an exemplary scenario data structure.  The exemplary packet-based scenario data structure begins with an optional Packet-matching Specification 610.  The Packet-matching Specification 610 comprises, for example, one or more packet pattern matching tuples, where each packet matching tuple comprises, for example, an Offset value indicating where in the packet the pattern should be matched, a data-matching pattern and a value indicating the length of the pattern to be matched.
The optional Metadata-matching Specification 620 comprises, for example, a series of metadata-identifier and metadata-value pairs, where each pair identifies a type of metadata and a value to be matched.  For example, the metadata-identifier and metadata value pair may specify that if the packet input port is port 0 then a match occurs.  Alternatively, for example, the metadata-identifier and metadata value pair may specify that if the packet interarrival time is below a certain value, then a match occurs.
The optional Stateful Characteristics Specification 630 comprises, for example, a series of stateful characteristic identifier, stateful characteristic value, and persistent state  tuples, where each tuple identifies a type of stateful characteristic and a value to be matched, and includes persistent state information so that checks can be made across packets.  For example, the stateful characteristic identifier and stateful characteristic identifier pair may specify that if 1000 instances of a particular packet are received in a 1 second interval, then a match occurs.  
The directive 699 specifies how the packet should be handled if the packet data, metadata, and stateful characteristics specifications result in a match with a packet.  The directive 699 may have, for example, two values: one value to signify that the packet trigger an alert, and as second value to indicate that the packet should not trigger an alert.
The exemplary procedure followed by the State Machine Module 270 while in learning phase is shown in as a flow diagram in FIG. 7.  At block 705, the process begins.  At block 710, the system receives an input vector from, for example, the Data Collection Module 250.  The vector represents data fields and metadata from a packet in a normal sequence of packets.  At block 715, the system applies the clustering algorithm to the received vector resulting in a numerical value that is termed the “initial state” and is also the “current state”. At block 720, the system selects the entry in the Network Behavior State Machine 275 table that corresponds to the initial state.  At block 725, the system receives either another vector, and an instruction to transition to the protection phase.  If another vector was received, then at block 730 the clustering function is applied to the vector, resulting in a numerical value that is termed the “new state”.  At block 735, the system increments the transition counter in the Network Behavior State Machine 275 table entry that counts transitions between the current state and the new state.  At block 740, the value of the “current state” is set to the value of the “new state”. Control then returns to block 720, to select the state control data for the new current state.  When an instruction to transition to protection phase is received, then at block 745 the learning phase ends.
This description of the Machine Learning Engine 270 procedure during the learning phase determines a “state” upon the receipt of a new input vector from a received packet.    Other embodiments may behave differently.  For example, the procedure in a particular embodiment may accumulate a fixed number of packets before applying the clustering function to determine a new state.  Alternatively the procedure may, for example, receive a stream of packets until a particular event and then apply the clustering function to the accumulated packets to determine a new state.
The procedure followed by the Machine Learning Engine 270 while in protection phase is shown in FIG. 8.  
At block 805, the system receives a vector.  At block 810, the system applies the clustering algorithm to derive the “new state” from the received vector.  At block 815, the system uses the transition count information in the Network Behavior State Machine 275 to compute the probability that the new state follows the current state.  At block 820, the system uses the result of the computation of block 815, in conjunction with the results of the computations of block 815 on previous vectors, to compute the probability of the sequential occurrence of the last “k” states (where “k” is a constant that is specific to the embodiment and is greater than 2).  At block 825, the system compares this probability to an alert threshold.  If the probability is below the alert threshold, then an anomaly has occurred and at block 830, the system takes protective action such as, for example, raising an alert.  Control then returns to block 805 for receipt of the next vector.
In its processing, the Machine Learning Engine 270 may also, for example, perform “cross-correlation” with other instances of the Industrial Protection Technology Server.  In “cross-correlation”, the Machine Learning Engine 270, for example, enquires over the network of other Industrial Protection Technology Server instances to determine the state of the monitored parameters of those instances.  The Machine Learning Engine 270 may then, for example, use this state information in its evaluation of whether the currently processed packet is anomalous or non-anomalous.
The invention has been described in detail for an embodiment wherein a copy of each packet is sent to the ICS appliance.  Alternatively, an embodiment may, for example, examine each packet as it passes through a forwarding device or gateway.  In such an embodiment, the determination to take protective action may, for example, be accompanied by dropping the packet rather than forwarding it.
The invention has been described in detail for an embodiment wherein the protective action taken by the ICS appliance is sending an alert to the Cyber Security Management Console 154.  Alternatively, an embodiment may, for example, take action to disable a node that is generating or forwarding anomalous traffic.  In such an embodiment, the ICS appliance may, for example, use a management protocol such as SNMP to manage the particular node and disable it.
Alternatively, an embodiment may, for example, take protective action to disable a node that is generating or forwarding anomalous traffic.  In such an embodiment, the ICS appliance may, for example, use a management protocol such as SNMP to manage the particular node and disable it. 
Alternatively, an embodiment may, for example, take protective action to program nodes in the network so that they will drop traffic that matches a particular pattern.  In such an embodiment, the ICS appliance may, for example, use a management protocol such as SNMP to manage the particular node.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. 
It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the invention. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.
The above-described processes including portions thereof can be performed by software, hardware and combinations thereof. These processes and portions thereof can be performed by computers, computer-type devices, workstations, processors, micro-processors, other electronic searching tools and memory and other non-transitory storage-type devices associated therewith. The processes and portions thereof can also be embodied in programmable non-transitory storage media, for example, compact discs (CDs) or other discs including magnetic, optical, etc., readable by a machine or the like, or other computer usable storage media, including magnetic, optical, or semiconductor storage, or other source of electronic signals. 
The processes (methods) and systems, including components thereof, herein have been described with exemplary reference to specific hardware and software. The processes (methods) have been described as exemplary, whereby specific steps and their order can be omitted and/or changed by persons of ordinary skill in the art to reduce these embodiments to practice without undue experimentation. The processes (methods) and systems have been described in a manner sufficient to enable persons of ordinary skill in the art to readily adapt other hardware and software as may be needed to reduce any of the embodiments to practice without undue experimentation and using conventional techniques. 
Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.  
What is claimed is:
1.  A method for detecting a potential compromise of cyber security in a network utilizing a protocol for controlling an industrial process, comprising:
establishing a baseline of site-acceptable network behavior comprising a list of network states and transition probabilities, wherein a transition probability denotes an estimated probability of a first network state being followed temporally by a second network state during normal network operation; 
establishing a threshold representing the probability below which a sequence of network states is anomalous;
determining a probability for the occurrence of a sequence of network states as obtained from a particular stream of packets, according to the baseline of site-acceptable network behavior; and,
taking protective action according to whether the determined probability is below the established threshold.
2. The method of claim 1, wherein the establishing a baseline of site-acceptable network behavior comprising a list of network states and transition probabilities comprises: 
analyzing a series of packets representing normal network behavior, to determine  a temporal sequence of network states; and,  
computing the probability of a first network state being followed temporally by a second network state, according to the number of times that the first network state is followed temporally by the second network state in the determined temporal sequence of network states.
3. The method of claim 1, wherein the particular stream of packets comprises packets received in monitoring the operation of the industrial network for potential cyberattack.
4. The method of claim 1, wherein the industrial network utilizes the Modbus protocol.
5. The method of claim 1, wherein the industrial network utilizes Distributed Network Protocol 3 (DNP3).
6. The method of claim 1, wherein the sequence of network states derived from a particular stream of packets includes k successive network states, where k is greater than two.
7. The method of claim 1, wherein the taking protective action comprises raising an alert.
8. The method of claim 1, wherein the taking protective action comprises blocking a packet.
9. The method of claim 1, wherein the taking protective action comprises disabling a node in the network.
10. The method of claim 1, wherein the analyzing a series of packets representing normal network behavior, to determine a temporal sequence of network states comprises determining a network state according to the combination of Modbus source, Modbus destination, and Modbus function fields in the analyzed packet.
11. The method of claim 1, wherein the alert comprises forensic data.
12. A computer system for detecting a potential compromise of cyber security in an industrial network, comprising: 
a storage medium for storing computer components; and,
a computerized processor for executing the computer components comprising: 
a first computer component for establishing a baseline of site-acceptable network behavior comprising a list of network states and transition probabilities, wherein a transition probability denotes an estimated probability of a first network state being followed temporally by a second network state during normal network operation; 
a second computer component for establishing a threshold representing the probability below which a sequence of network states is anomalous; 
a third computer component for determining a probability for the occurrence of a sequence of network states as obtained from a particular stream of packets, according to the baseline of site-acceptable  network behavior; and,
a fourth computer component for taking protective action according to whether the determined probability is below the established threshold.
13. A computer-usable non-transitory storage medium having a computer program embodied thereon for causing a suitable programmed system to  detecting a potential compromise of cyber security in an industrial network, by performing the following steps when such program is executed on the system, the steps comprising:
establishing a baseline of site-acceptable network behavior comprising a list of network states and transition probabilities, wherein a transition probability denotes an estimated probability of a first network state being followed temporally by a second network state during normal network operation;
establishing a threshold representing the probability below which a sequence of network states is anomalous; 
determining a probability for the occurrence of a sequence of network states as obtained from a particular stream of packets, according to the baseline of site-acceptable network behavior; and, 
taking protective action according to whether the determined probability is below the established threshold.
ABSTRACT
Methods and systems for detecting a potential compromise of cyber security in an industrial network are disclosed.  These methods and systems comprise elements of hardware and software for establishing a baseline of site-acceptable network behavior comprising a list of network states and transition probabilities, wherein a transition probability denotes an estimated probability of a first network state being followed temporally by a second network state during normal network operation;  establishing a threshold representing the probability below which a sequence of network states is anomalous;  determining a probability for the occurrence of a sequence of network states as obtained from a particular stream of packets, according to the baseline of site-acceptable network behavior; and, taking protective action according to whether the determined probability is below the established threshold.
2017041886.tif 000010
2017041886.tif 000011
2017041886.tif 000012
2017041886.tif 000013
2017041886.tif 000014
2017041886.tif 000015
2017041886.tif 000016
2017041886.tif 000017