(57)【要約】  工業生産環境におけるセキュリティ脆弱性の仮想パッチのためのシステムが、産業用オートメーションデバイス(たとえば、PLC)を含む。産業用オートメーションデバイスは、複数の産業用オートメーションデバイスにまたがり、1つまたは複数の仮想パッチを記憶する分散型データベースのインスタンス、および仮想パッチエンジンセキュリティアプリケーションを含むアプリコンテナを含む。アプリコンテナは、動作中に産業用オートメーションデバイスによって生成されたシステム情報を収集し、1つまたは複数のセキュリティ攻撃を特定するためにシステム情報に1つまたは複数の仮想パッチを適用するように構成される。
2019527877.tif 000002
【特許請求の範囲】
【請求項１】
工業生産環境におけるセキュリティ脆弱性の仮想パッチのためのシステムであって、
産業用オートメーションデバイスを含み、前記産業用オートメーションデバイスが、
複数の産業用オートメーションデバイスにまたがり、1つまたは複数の仮想パッチを記憶する分散型データベースのインスタンス、および
アプリコンテナであって、
動作中に前記産業用オートメーションデバイスによって生成されたシステム情報を収集し、
1つまたは複数のセキュリティ攻撃を特定するために前記システム情報に前記1つまたは複数の仮想パッチを適用するように構成された仮想パッチエンジンセキュリティアプリケーションを含む、アプリコンテナを含む、システム。
【請求項２】
前記1つまたは複数の仮想パッチが、それぞれ、前記産業用オートメーションデバイス上で利用され得るはっきりと区別可能な攻撃シグネチャを記載する請求項1に記載のシステム。
【請求項３】
前記システム情報が、前記産業用オートメーションデバイス上で実行される1つまたは複数のアプリケーションによってなされるシステムコールに対応する請求項1に記載のシステム。
【請求項４】
前記システム情報が、(i)読み取り操作または書き込み操作のうちの少なくとも一方が実行されたメモリブロック、(ii)システム構成の変更、および(iii)アラームステータスの変化のうちの1つまたは複数を含む請求項1に記載のシステム。
【請求項５】
前記システム情報が、(i)前記産業用オートメーションデバイス上で実行されるプロセス、(ii)前記産業用オートメーションデバイス上で実行されるスレッド、(iii)前記産業用オートメーションデバイスによって利用されるネットワーク接続、(iv)ファイル作成情報、および(v)ファイル修正情報のうちの1つまたは複数をさらに含む請求項4に記載のシステム。
【請求項６】
前記仮想パッチエンジンセキュリティアプリケーションが、1つまたは複数の制御コマンドと組み合わせて前記産業用オートメーションデバイスの1つまたは複数の構成を実行した将来の結果のインジケータを決定するために、前記産業用オートメーションデバイスによって実行される制御コードのシンボリック実行を実行する請求項1に記載のシステム。
【請求項７】
前記仮想パッチエンジンセキュリティアプリケーションが、将来の結果の前記インジケータが(i)安全でないシステムの状態、または(ii)前記工業生産環境に関連する1つもしくは複数の所定の安全上の制約の違反に対応する場合に前記1つまたは複数の制御コマンドの将来の実行を阻止する請求項6に記載のシステム。
【請求項８】
前記分散型データベースの前記インスタンスおよび前記アプリコンテナが、前記産業用オートメーションデバイス上の第1の仮想マシンにおいて実行される請求項1に記載のシステム。
【請求項９】
前記産業用オートメーションデバイスが、
1つまたは複数のフィールドデバイスに関連するオートメーションシステムの生産データによってスキャンサイクルに従って更新されるプロセスイメージ、
プラントフロアネットワーク上でオートメーションシステムのネットワークデータを送信および受信するように構成されたネットワーキング構成要素を実行する第2の仮想マシンを含む請求項8に記載のシステム。
【請求項１０】
前記第2の仮想マシンが、前記プロセスイメージを介して収集された前記オートメーションシステムの生産データと、前記ネットワーキング構成要素を介して収集された前記オートメーションシステムのネットワークデータとを記憶するように構成された組み込まれたヒストリアンを含むリアルタイムデータベースをさらに実行する請求項9に記載のシステム。
【請求項１１】
動作中に前記産業用オートメーションデバイスによって生成された前記システム情報が、前記組み込まれたヒストリアンから前記仮想パッチエンジンセキュリティアプリケーションによって取り出される請求項10に記載のシステム。
【請求項１２】
前記仮想パッチエンジンセキュリティアプリケーションが、(i)セキュリティオペレーションセンターによって生成された1つまたは複数の新しい仮想パッチを受信し、(ii)前記1つまたは複数の新しい仮想パッチを前記分散型データベースに記憶するようにさらに構成される請求項1に記載のシステム。
【請求項１３】
前記仮想パッチエンジンセキュリティアプリケーションが、前記セキュリティオペレーションセンターに前記1つまたは複数のセキュリティ攻撃の指示を送信するようにさらに構成される請求項12に記載のシステム。
【請求項１４】
前記仮想パッチエンジンセキュリティアプリケーションが、
前記1つまたは複数のセキュリティ攻撃に関連する1つまたは複数の制御コマンドを特定し、
1つまたは複数のセキュリティ攻撃を特定することに応じて、アクティブ応答の設定が可能にされるかどうかを判定し、
前記アクティブ応答の設定が可能にされない場合に、前記1つまたは複数の制御コマンドを実行し、前記産業用オートメーションデバイスに関連するオペレータに異常を報告し、
前記アクティブ応答の設定が可能にされる場合、前記1つまたは複数の制御コマンドの実行を阻止するようにさらに構成される請求項1に記載のシステム。
【請求項１５】
工業生産環境におけるセキュリティ脆弱性の仮想パッチのためのシステムであって、
1つまたは複数の制御プログラムを実行する第1の仮想マシンと、
前記1つまたは複数の制御プログラムに関連するシステム情報を収集すること、および1つまたは複数のセキュリティ攻撃を特定するために前記システム情報に1つまたは複数の仮想パッチを適用することを行うように構成された仮想パッチエンジンセキュリティアプリケーションを実行する第2の仮想マシンと、
前記第1の仮想マシンと前記第2の仮想マシンとの間の前記システム情報の転送を容易にするように構成された内部通信チャネルと、
前記第1の仮想マシンおよび前記第2の仮想マシンを実行するハイパーバイザとを含む、システム。
【請求項１６】
前記第2の仮想マシンが、
複数の産業用コントローラにまたがり、前記1つまたは複数の仮想パッチを記憶する分散型データベースのインスタンスをさらに含む請求項15に記載のシステム。
【請求項１７】
動作中に前記1つまたは複数の制御プログラムによって生成された前記システム情報が、前記第1の仮想マシン内の組み込まれたヒストリアンから前記仮想パッチエンジンセキュリティアプリケーションによって取り出される請求項15に記載のシステム。
【請求項１８】
前記第2の仮想マシンが、複数のアプリを実行するように構成されたアプリコンテナを含み、前記仮想パッチエンジンセキュリティアプリケーションが、前記アプリコンテナにおいて実行される請求項17に記載のシステム。
【請求項１９】
前記システム情報が、(i)読み取り操作または書き込み操作のうちの少なくとも一方が実行されたメモリブロック、(ii)システム構成の変更、および(iii)アラームステータスの変化のうちの1つまたは複数を含む請求項15に記載のシステム。
【請求項２０】
前記システム情報が、(i)前記第1の仮想マシン上で実行されるプロセス、(ii)前記第1の仮想マシン上で実行されるスレッド、(iii)前記第1の仮想マシンによって利用されるネットワーク接続、(iv)ファイル作成情報、および(v)ファイル修正情報のうちの1つまたは複数をさらに含む請求項19に記載のシステム。
【請求項２１】
工業生産環境におけるセキュリティ脆弱性の仮想パッチのための、コンピュータによって実施される方法であって、
産業用制御システムに適用され得る1つまたは複数のセキュリティ脆弱性の利用方法の指示をセキュリティオペレーションセンターのコンピュータによって受信するステップと、
シミュレーションされた工業環境を使用して前記1つまたは複数のセキュリティ脆弱性の利用方法を前記セキュリティオペレーションセンターのコンピュータによって再現するステップと、
前記1つまたは複数のセキュリティ脆弱性の利用方法に対応する脆弱性の利用検出シグネチャを前記セキュリティオペレーションセンターのコンピュータによって生成するステップと、
前記脆弱性の利用検出シグネチャが適用され得る産業用コントローラの1人または複数のユーザを前記セキュリティオペレーションセンターのコンピュータによって特定するステップと、
それぞれの特定されたユーザに関して、前記1つまたは複数のセキュリティ脆弱性の利用方法の試みられた実行を検出するように動作可能な仮想パッチを生成し、前記仮想パッチを前記特定されたユーザに配信するステップとを含む、コンピュータによって実施される方法。
【請求項２２】
工業生産環境におけるセキュリティ脆弱性の仮想パッチのための、コンピュータによって実施される方法であって、
産業用制御システムに適用され得る1つまたは複数の攻撃行動の指示をセキュリティオペレーションセンターのコンピュータによって受信するステップと、
前記1つまたは複数の攻撃行動に対応する攻撃検出シグネチャを前記セキュリティオペレーションセンターのコンピュータによって生成するステップと、
前記攻撃検出シグネチャが適用され得る産業用コントローラの1人または複数のユーザを前記セキュリティオペレーションセンターのコンピュータによって特定するステップと、
それぞれの特定されたユーザに関して、前記攻撃検出シグネチャを検出するように動作可能な仮想パッチを生成し、前記仮想パッチを前記特定されたユーザに配信するステップとを含む、コンピュータによって実施される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、仮想パッチおよびセキュリティコンテキスト情報の自動配信によって、サイバー攻撃に関連する制御システムの回復力(resiliency)を向上させることに関する。開示されるテクノロジーは、たとえば、プログラマブルロジックコントローラ(PLC)および分散制御システム(DCS)などの産業用コントローラが使用される様々な自動化された生産環境に適用される可能性がある。
【背景技術】
【０００２】
セキュリティパッチは、産業用制御システム(ICS)のセキュリティコミュニティが直面する最も挑戦的な問題のうちの1つである。所与のプログラマブルロジックコントローラ(PLC)においてセキュリティの脆弱性を修正するために、ほとんどの場合、完全なファームウェアの更新および完全なシステムのリブートが必要とされる。さらに、セキュリティパッチが、実際に動いている生産システムを更新するリスクおよびコストを劇的に増大させる新しい欠陥および脆弱性をもたらす可能性がある。
【０００３】
これまで、産業用制御システムのためのパッチの管理は、ほとんどの場合、手動で実行されてきた。適用可能な規格およびベストプラクティスによって推薦される追加的な(外部)セキュリティ制御は、アプリケーションベンダーからのパッチの互換性試験の結果を待つ間の長いパッチの遅延を補償するための追加的な保護を提供するための対策を展開する(国際電気標準会議62443.02.01_2009参照)。しかし、そのような対策は、概して、PLCの外にあり、ネットワークレベルで何が行われ得るかによって制限される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】PCT特許出願PCT/US2016/28893
【特許文献２】PCT特許出願PCT/US2015/64863
【特許文献３】米国特許出願第15/040,565号
【非特許文献】
【０００５】
【非特許文献１】国際電気標準会議62443.02.01_2009
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の実施形態は、制御システムのための仮想パッチおよびセキュリティコンテキスト情報の自動化された配信に関連する方法、システム、および装置を提供することによって上述の短所および欠点のうちの1つまたは複数に対処し、克服する。より具体的には、本明細書において説明された技術は、完全なソフトウェアイメージ/OSをリロードする必要なしに仮想パッチの展開を可能にするPLCのための自動化されたメカニズム(プロセス)、アーキテクチャ、およびセキュリティアプリケーション(たとえば、アプリ)を提供する。仮想パッチは、脆弱性の開示とシステムのアップグレードとの間の時間帯に軽減されていない脆弱性を利用する潜在的な攻撃者からの保護を提供する。
【課題を解決するための手段】
【０００７】
本発明の一部の実施形態によれば、工業生産環境におけるセキュリティ脆弱性の仮想パッチのためのシステムが、産業用オートメーションデバイス(たとえば、PLC)を含む。産業用オートメーションデバイスは、複数の産業用オートメーションデバイスにまたがり、1つまたは複数の仮想パッチを記憶する分散型データベースのインスタンス、および仮想パッチエンジンセキュリティアプリケーションを含むアプリコンテナを含む。アプリコンテナは、動作中に産業用オートメーションデバイスによって生成されたシステム情報を収集し、1つまたは複数のセキュリティ攻撃を特定するためにシステム情報に1つまたは複数の仮想パッチを適用するように構成される。各仮想パッチは、産業用オートメーションデバイス上で利用され得るはっきりと区別可能な(distinct)攻撃シグネチャを記載する可能性がある。
【０００８】
上述のシステムにおいて使用されるシステム情報は、産業用オートメーションデバイス上で実行される1つまたは複数のアプリケーションによってなされるシステムコールに対応する可能性がある。一部の実施形態において、システム情報は、(i)読み取り操作または書き込み操作のうちの少なくとも一方が実行されたメモリブロック、(ii)システム構成の変更、および(iii)アラームステータスの変化のうちの1つまたは複数を含む。追加的に(または代替的に)、システム情報は、(i)産業用オートメーションデバイス上で実行されるプロセス、(ii)産業用オートメーションデバイス上で実行されるスレッド、(iii)産業用オートメーションデバイスによって利用されるネットワーク接続、(iv)ファイル作成情報、および(v)ファイル修正情報のうちの1つまたは複数を含む可能性がある。
【０００９】
上述のシステムの一部の実施形態において、仮想パッチエンジンセキュリティアプリケーションは、1つまたは複数の制御コマンドと組み合わせて産業用オートメーションデバイスの1つまたは複数の構成を実行した将来の結果を決定するために、産業用オートメーションデバイスによって実行される制御コードのシンボリック実行を実行する。これらの将来の結果は、たとえば、セキュリティ違反、システム障害、またはその他の望ましくない状態のインジケータの形態で特定される可能性がある。仮想パッチエンジンセキュリティアプリケーションは、将来の結果の前記インジケータが、たとえば、安全でないシステムの状態、または工業生産環境に関連する所定の安全上の制約の違反に対応する場合に制御コマンドの将来の実行を阻止する可能性がある。
【００１０】
上述のシステムの一部の実施形態において、分散型データベースのインスタンスおよびアプリコンテナは、産業用オートメーションデバイス上の第1の仮想マシンにおいて実行される。産業用オートメーションデバイスは、1つまたは複数のフィールドデバイスに関連するオートメーションシステムの生産データによってスキャンサイクルに従って更新されるプロセスイメージ、およびプラントフロアネットワーク(plant floor network)上でオートメーションシステムのネットワークデータを送信および受信するように構成されたネットワーキング構成要素を実行する第2の仮想マシンをさらに含む可能性がある。一実施形態において、第2の仮想マシンは、プロセスイメージを介して収集されたオートメーションシステムの生産データと、ネットワーキング構成要素を介して収集されたオートメーションシステムのネットワークデータとを記憶するように構成される組み込まれたヒストリアン(historian)を含むリアルタイムデータベースをさらに実行する。それから、動作中に産業用オートメーションデバイスによって生成されたシステム情報は、組み込まれたヒストリアンから仮想パッチエンジンセキュリティアプリケーションによって取り出される可能性がある。
【００１１】
上述のシステムの一部の実施形態において、仮想パッチエンジンセキュリティアプリケーションは、(i)セキュリティオペレーションセンターによって生成された新しい仮想パッチを受信し、(ii)新しい仮想パッチを分散型データベースに記憶するようにさらに構成される。加えて、仮想パッチエンジンセキュリティアプリケーションは、セキュリティオペレーションセンターにセキュリティ攻撃の指示を送信するようにさらに構成される可能性がある。一部の実施形態において、仮想パッチエンジンセキュリティアプリケーションは、1つまたは複数のセキュリティ攻撃に関連する1つまたは複数の制御コマンドを特定するようにさらに構成される。1つまたは複数のセキュリティ攻撃を特定することに応じて、仮想パッチエンジンセキュリティアプリケーションは、アクティブ応答(active response)の設定が可能にされるかどうかを判定する。アクティブ応答の設定が可能にされない場合、制御コマンドが実行され、産業用オートメーションデバイスに関連するオペレータに異常が報告される。一方、アクティブ応答の設定が可能にされる場合、制御コマンドの実行が阻止される。
【００１２】
本発明のその他の実施形態によれば、工業生産環境におけるセキュリティ脆弱性の仮想パッチのためのシステムが、2つの仮想マシンと、仮想マシンの間のシステム情報の転送を容易にするように構成された内部通信チャネルと、仮想マシンを実行するハイパーバイザとを含む。システム内の第1の仮想マシンは、1つまたは複数の制御プログラムを実行し、一方、第2の仮想マシンは、(たとえば、上述のようにアプリコンテナ内で)仮想パッチエンジンセキュリティアプリケーションを実行する。この仮想パッチエンジンセキュリティアプリケーションは、1つまたは複数の制御プログラムに関連するシステム情報を収集し、1つまたは複数のセキュリティ攻撃を特定するためにシステム情報に1つまたは複数の仮想パッチを適用するように構成される。このシステム情報は、たとえば、(i)読み取り操作または書き込み操作のうちの少なくとも一方が実行されたメモリブロック、(ii)システム構成の変更、および(iii)アラームステータスの変化、(iv)第1の仮想マシン上で実行されるプロセス、(v)第1の仮想マシン上で実行されるスレッド、(vi)第1の仮想マシンによって利用されるネットワーク接続、(vii)ファイル作成情報、および/または(viii)ファイル修正情報のうちの1つまたは複数を含む可能性がある。一部の実施形態において、第2の仮想マシンは、複数の産業用コントローラにまたがり、1つまたは複数の仮想パッチを記憶する分散型データベースのインスタンスをさらに含む。一部の実施形態において、システム情報は、第1の仮想マシン内の組み込まれたヒストリアンから仮想パッチエンジンセキュリティアプリケーションによって取り出される。
【００１３】
本発明のその他の実施形態によれば、工業生産環境におけるセキュリティ脆弱性の仮想パッチのための、コンピュータによって実施される方法が、セキュリティオペレーションセンターのコンピュータが、産業用制御システムに適用され得るセキュリティ脆弱性の利用方法の指示を受信するステップと、シミュレーションされた工業環境を使用してそれらのセキュリティ脆弱性の利用方法を再現するステップとを含む。セキュリティオペレーションセンターのコンピュータは、セキュリティ脆弱性の利用方法に対応する脆弱性の利用検出シグネチャを生成し、脆弱性の利用検出シグネチャが適用され得る産業用コントローラのユーザを特定する。そして、それぞれの特定されたユーザに関して、セキュリティオペレーションセンターのコンピュータは、(i)セキュリティ脆弱性の利用方法の試みられた実行を検出するように動作可能な仮想パッチを生成し、(ii)特定されたユーザに仮想パッチを配信する。
【００１４】
本発明のその他の実施形態によれば、工業生産環境におけるセキュリティ脆弱性の仮想パッチのための、コンピュータによって実施される方法が、セキュリティオペレーションセンターのコンピュータが、産業用制御システムに適用され得る攻撃行動(attack campaign)の指示を受信するステップと、攻撃行動に対応する攻撃検出シグネチャ(attack detection signature)を生成するステップとを含む。方法は、セキュリティオペレーションセンターのコンピュータが攻撃検出シグネチャが適用され得る産業用コントローラのユーザを特定するステップをさらに含む。それぞれの特定されたユーザに関して、セキュリティオペレーションセンターのコンピュータは、攻撃検出シグネチャを検出するように動作可能な仮想パッチを生成し、特定されたユーザに仮想パッチを配信する。
【００１５】
本発明のさらなる特徴および利点は、添付の図面を参照しながら進行する例示的な実施形態の以下の詳細な説明から明らかにされるであろう。
【００１６】
本発明の上述のおよびその他の態様は、添付の図面と併せて読まれるときに以下の詳細な説明から最もよく理解される。本発明を説明する目的で、現在好ましい実施形態が図面に示されるが、本発明は開示される特定の手段に限定されないことが理解される。図面に含まれるのは、以下の図である。
【図面の簡単な説明】
【００１７】
【図１】一部の実施形態によるサイバーセキュリティアプリケーションを用いる高結合制御セキュリティPLC(highly-coupled control-security PLC)を示す図である。
【図２】一部の実施形態によるセキュリティ異常検出および仮想パッチのアーキテクチャを示す図である。
【図３】一部の実施形態による仮想パッチプロセスを示す図である。
【発明を実施するための形態】
【００１８】
概して、仮想パッチおよびセキュリティコンテキスト情報の自動配信によって、サイバー攻撃に関連する制御システムの回復力を向上させることに関するシステム、方法、および装置が、本明細書において説明される。本明細書において説明される仮想パッチは、疑わしい活動または構成コマンドを検出し、構成される場合には傍受するためにオペレーティングシステムおよびメモリに綿密な低レベルのアクセスをすることが可能なPLCカーネルモジュールアプリケーションとして展開される可能性がある。PLCのための仮想パッチは、脆弱性の利用の検出および場合によっては攻撃の防止を可能にするので、動いている生産システムのパッチに関連する問題を大幅に軽減するために適用される可能性がある。
【００１９】
参照により本明細書に組み込まれる、2016年4月22日に出願された、「Improving Control System Resilience by Highly Coupling Security Functions with Control」と題されたPCT特許出願PCT/US2016/28893は、プロセスの変数(センサーおよびアクチュエータ)の知識に基づく侵入検出方式を含むセキュリティ異常検出アプリを説明する。開示されたアーキテクチャおよびアプリケーションは、教師なし機械学習に基づくPLCのためのローカルの保護を提供した。本明細書において説明されるシステムおよび方法は、仮想パッチとして自動的にセキュリティオペレーションセンター(SOC)から低フットプリントの攻撃シグネチャを展開するメカニズムを提供することによってそのアーキテクチャおよびアプリケーションを補間し、強化する。
【００２０】
図1は、一部の実施形態によるサイバーセキュリティアプリケーションを用いる高結合制御セキュリティPLC 100を示す。この例は、Siemensソフトウェア環境内の実装を示すが、図1に示される全体的な概念は、その他の環境内の等価的なソフトウェアにも拡張され得ることを理解されたい。PLC 100は、複数の仮想マシン(VM)を実行する複数のプロセッサコアを有する。一部の実施形態において、各コアは、異なる仮想マシンに専用である可能性がある。図1の例においては、1つの仮想マシン105が、Simatic S7のファームウェア(FW)を実装するように構成され、もう1つの仮想マシン110が、WindowsかまたはLinux（登録商標、以下同じ）かのどちらかを実装するように構成される。Simatic S7 PLCのファームウェアは、オートメーション環境内のフィールドデバイスとインターフェースを取るための1つまたは複数の制御プログラムを実行する。VM1上で実行されるいずれのアプリケーションも、VM0上で実行される制御アプリケーションに悪影響を与えない。仮想マシン105内には、組み込まれたヒストリアンによって駆動されるリアルタイムデータベースが存在する。そのリアルタイムデータベースは、1つまたは複数のヒューマンマシンインターフェース(HMI)および製造実行システム(MES)からの入力、出力、メモリ変数、およびコマンドなどの、1つまたは複数の制御プログラムに関連するすべてのリアルタイムプロセスイメージデータを時系列として収集する。参照により本明細書に組み込まれる、2015年12月10日に出願された、「Distributed Embedded Data and Knowledge Management System Integrated with PLC Historian」と題されたPCT特許出願PCT/US2015/64863は、本明細書において説明される高結合制御セキュリティPLC 100にとともに使用され得るヒストリアンを実装するための技術の例を提供する。Windows/Linuxの仮想マシン110においては、別のリアルタイムデータベースが、内部通信チャネルまたは共有メモリ(SM)を使用して、Simatic S7のファームウェア内にホストされるリアルタイムデータベース(RTDB)とデータをやりとりする。
【００２１】
仮想マシン110内の「処理」ブロックは、主なデータ処理、リアルタイムデータベース内の主なデータの読み取り/書き込み/フィルタリング/平滑化を実行する機能ブロックである。仮想マシン110内の「コンテキスト」のブロックは、測定値を(たとえば、ビール発酵タンクの)温度に変換するなど、すべてのデータの意味を生産の知識に変換するトランスレータとして働く。仮想マシン110内のアプリコンテナによってホストされる複数のアプリケーションが存在し、それらのアプリケーションの一部は、セキュリティ機能を対象とし得る。たとえば、App1は、(下でさらに詳細に検討されるように)サイバー攻撃の検出/防止のための仮想パッチアプリのために使用される可能性があり、App2は、機械予知分析アプリケーション(machine prognostic analysis application)である可能性がある。それらのアプリケーションは、両方とも、リアルタイムデータベース内の収集されたデータに基づいて働く必要がある。この場合、仮想パッチアプリは、WindowsまたはLinuxアプリケーションと丁度同じように容易に追加、削除、および更新され得る。PLCにおいてアプリコンテナ内にアプリケーションを実装するための方法およびシステムは、参照により本明細書に組み込まれる、2016年2月10日に出願された、「Extending a Programmable Logic Controller with Apps」と題された米国特許出願第15/040,565号にさらに詳細に記載されている。
【００２２】
本明細書において使用されるとき、用語、仮想パッチは、異なる脆弱性または攻撃を記述する実行可能なアルゴリズム(シグネチャ)を指す。仮想パッチは、(i)再現された脆弱性/攻撃の分析、(ii)PLCの脆弱性/攻撃の潜在的な根本原因の判定、(iii)脆弱性の根本原因に関連付けられる記録された攻撃ベクトル(attack vector)、(iv)攻撃ベクトルが働くことを可能にする必要とされる有効化されたPLCの構成(たとえば、有効化された脆弱性のあるサービス)、および(v)生産プロセスの種類、制御される変数、接続された機械などのその他のコンテキスト情報のうちの1つまたは複数に基づいて生成される。各仮想パッチは、サイバー攻撃観測記述形式(CybOX(商標))または制御システムの特殊性を考慮するその導出された拡張されたバージョンなどの標準化された言語によって定義された攻撃の詳細を含む可能性がある。これらの詳細は、たとえば、ファイルパターン、ネットワークパケット/フロー、ユーザセッション識別子、システムイベントログなどを含む可能性がある。仮想パッチは、HMIからの偽のコマンド、MESからの改ざんされたデータブロック、およびさらにはサービス妨害(DoS)攻撃などの侵入/サイバーセキュリティ攻撃を説明する可能性があるオントロジー(ontology)によって記述される可能性がある。オントロジーは、サイバー攻撃によって導かれる悪影響(たとえば、生産および品質の観点で低下した性能、機械の損傷)などのその他の知識も含む可能性がある。侵入およびサイバーセキュリティのオントロジーおよび追加的な生産プロセスの知識は、プロセスイメージデータ(フィールドデータ)とコントローラ内のその他の形態のコンテキストの知識との間を因果関係で結び、異常イベントについての推論を可能にすることができる。
【００２３】
(下でさらに詳細に説明される)各コントローラ仮想パッチエンジンの展開は、それぞれの場合の特定の適用可能な攻撃の筋書きに基づいてシグネチャに基づくセキュリティ侵入検出を可能にする。一部の実施形態においては、関連するシグネチャのほんの小さなサブセットが、それぞれの利用可能な攻撃ベクトルの利用の潜在的リスクに基づいてロードされ、これは、不必要なCPU利用を防止する。各仮想パッチは、制御デバイス(たとえば、PLC)上の検出エンジンが、検査されるシステムの離散的なセキュリティイベント(たとえば、構成の変更)および疑わしいデータフロー(ネットワークまたはメモリ)の所与の組合せに関して継続的に検証することを可能にするペイロードおよび命令を含む。所与のPLC/筋書きに関する仮想パッチの適用可能性の確認および検証が、その仮想パッチの展開の前に実行される可能性がある。
【００２４】
図2は、一部の実施形態によるセキュリティ異常検出および仮想パッチのアーキテクチャ200を示す。この例は、活動によって3つの領域、すなわち、技術者およびプラントオペレータによって実行されるローカルプラント205の活動、コントローラ(またはその他の使用可能なデバイス)215A、215B、および215C上で実施されるセキュリティ異常検出機能、ならびにSOC210における脅威管理に概念的に分けられる。図2に提示された矢印は、アーキテクチャ200内のデバイスの間で情報/データが転送される可能性があるいくつかの潜在的な方法を示す例示的な目的で提示されているが、これらの矢印は、アーキテクチャ200を使用して行われる可能性がある様々な情報/データの転送の例であるに過ぎず、デバイスの異なるペアの間の転送がアーキテクチャ200内で同様に実施される可能性があることを理解されたい。
【００２５】
ワークフローのローカルプラント205の部分は、技術者205Aおよびプラントオペレータ205Bを含む。技術者205Aは、異常検出アプリ、仮想パッチアプリ、およびその他のセキュリティアプリを開発し、コントローラ215A、215B、および215Cに展開する。加えて、技術者205Aは、コントローラ215A、215B、および215CとSOC210との間の情報のやりとりのレベルを指定するように(展開されるアプリかまたはその他のシステム設定かのどちらかによって)コントローラ215A、215B、および215Cを構成する可能性がある。さらに、一部の実施形態において、技術者205Aは、SOC210が特定の脅威の条件にどのように反応すべきであるかを規定する可能性がある。
【００２６】
SOC210は、セキュリティ/プロセス制御スペシャリスト210Aおよびアナリティクスクラウド210Bを含む。セキュリティ/プロセス制御スペシャリスト210Aは、アナリティクスクラウド210Bに脅威インテリジェンス情報(threat intelligence information)を提供する。アナリティクスクラウド210Bは、(下でさらに詳細に説明されるように)専門のセキュリティアナリティクスによって脅威インテリジェンス情報を処理してコントローラ215A、215B、および215Cに配信され得る新しい攻撃ベクトルを特定する。追加的に、アナリティクスクラウド210Bは、プラントセキュリティステータス情報(たとえば、イベントなど)を収集し、脅威インテリジェンス情報をさらに改善するために情報をセキュリティ/プロセス制御スペシャリスト210Aと共有する可能性がある。
【００２７】
コントローラ215A、215B、および215Cに展開されると、異常検出アプリは、各デバイス上のセキュリティの挙動(たとえば、セキュリティイベント/ログ収集)を可能にする。追加的に、一部の実施形態において、異常検出アプリは、状況認識コンテキスト(situational awareness context)をコントローラ215A、215B、および215Cに与える。各コントローラ215A、215B、および215Cは、回復力を高めるためにアプリ間通信によって可能にされる分散型の監視を提供する可能性もある。プロセス制御またはプロセスビューを操作しようとするすべての試みは、ローカルでも、各コントローラ215A、215B、および215Cに含まれる組み込まれたヒストリアンにまたがる分散型データベース管理システム(DDMS)を使用するピアによっても検出され得る。
【００２８】
加えて、図2に示されるこのアーキテクチャ200は、ローカルデータベースのデータ点として展開されるカスタムセキュリティシグネチャ(security signature)のプロビジョニングのために使用される可能性がある。たとえば、大域的インテリジェンス(global intelligence)と相互に関連付けられる新しい(外部)攻撃ベクトルは、SOC210に含まれるアナリティクスクラウド210Bからのコンテキストに基づいてカスタム配信される可能性がある。同様に、セキュリティの異常は、コントローラ215A、215B、および215CによってSOC210にブロードキャストされる可能性がある。カスタムシグネチャおよび仮想パッチは、SOC210によって発行され、そのSOC210のアナリティクスクラウド210Bを通じて配信される可能性がある(任意で、顧客が、その顧客独自のSOCを持つと判断する可能性がある)。たとえば、一部の実施形態において、アナリティクスクラウド210Bは、外部セキュリティ情報(たとえば、脅威インテリジェンス)と、製品情報(たとえば、PLCの技術的特徴)と、セキュリティ脆弱性情報と、限定することなく生産プロセスデータ、プロセス構成、ネットワークトポロジー、およびセキュリティ構成などのその他のコンテキストに関連する情報とを相互に関連付ける1つまたは複数のアプリケーションを実行する。この情報に基づいて、アナリティクスクラウド210Bは、コントローラ215A、215B、および215Cに適用可能な攻撃ベクトルを特定する。これらの攻撃ベクトルが特定されると、セキュリティの専門家201Aがサイバー攻撃および仮想パッチを確認し、検証した後、攻撃を検出するための仮想パッチが生成され、コントローラ215A、215B、および215Cに展開される可能性がある。このインフラストラクチャは、(攻撃シグネチャまたはTTP--戦術、技術、および手順--が知られている)過去に発生した事態が同じ脆弱性を有する同様のインフラストラクチャに置いて発生することを防止するためにやはり使用される可能性がある。
【００２９】
各コントローラ215A、215B、および215Cは、DDMSとして実行されるそのコントローラのそれぞれの組み込まれたヒストリアン内に仮想パッチのローカルデータベースを含む。これらのデータベースの各々は、本明細書においては「仮想パッチデータベース」と呼ばれるデータセットを有する。これらのデータベースを使用して、その他の接続された制御デバイスからの攻撃シグネチャまたはデータが、攻撃が起こっていることを確認するために読まれ得る。たとえば、コントローラ215Aおよび215Bからのネットワーク接続イベントを分析することによって、コントローラ215Cは、所与の悪意のあるパターンを確認することができる可能性がある。
【００３０】
仮想パッチデータベースは、2つの主なインスタンス、すなわち、リアルタイムおよび事後に分けられる可能性がある。リアルタイムのインスタンスは、サイズを削減され(限られた数の仮想パッチがインストールされ得る)、コマンドの傍受を可能にする。任意で、利用可能な入力およびメモリステータスを前提として、要求されたコマンドのシンボリック実行が安全でないプロセスステータスに至るかどうかを調べるために、傍受されたコマンドの実行が確認される可能性がある。事後は、制御または構成コマンドを傍受することを認めないが、セキュリティ侵害の確認が警告されることと、追加的なフォレンジックデータが安全に収集されることとを認める。
【００３１】
各コントローラ215A、215B、および215Cのアプリコンテナは、(図2に示されるように)本明細書においては「仮想パッチエンジン」と呼ばれるカーネルモジュールセキュリティアプリケーションを含む。この仮想パッチエンジンは、仮想パッチおよび脅威インテリジェンスをセキュリティフィードとして自動的に受信するためにSOC210と通信する。エンジンは、サイバー攻撃の実行を示す一致する疑わしいセキュリティの挙動を特定するために仮想パッチデータベースを継続的にスキャンする検出アルゴリズムを実行するためにこの情報を使用する。仮想パッチエンジンは、読み取られたおよび書き込まれたメモリブロック、システム構成の変更、アラームステータスの変化、スキャン時間、ブロック実行時間などの実行されたプロセス/スレッド、ネットワーク接続、ファイル作成/修正、およびPLCに固有の情報などのシステムに関連する情報をさらに収集する可能性がある。そして、収集された情報が、一致する継続中の攻撃を特定するために仮想パッチエンジンによって分析される可能性がある。一部の実施形態において、各コントローラ215A、215B、および215Cの組み込まれたローカルのヒストリアンは、限られたタイムスロットの中で最近のシステムの変更の履歴的な分析をやはり可能にする。攻撃は、特定されると、コントローラによってローカルで処理され得る(たとえば、特定のアドレスからのネットワークトラフィックを遮断する)。代替的に(または追加的に)、攻撃に関する通知が、セキュリティツールによるさらなるエスカレーションまたは管理のためにプラントオペレータ205Bに送信され得る。
【００３２】
一部の実施形態、仮想パッチエンジンは、制御コードのシンボリック実行を使用して、所与の制御コマンド/制御論理と組み合わせて所与の構成を実行した将来の結果を判定し、必要に応じて(たとえば、それがシステムを安全でない状態にするかまたは安全上の制約に違反する場合)、それを阻む。一部の実施形態において、仮想パッチエンジンは、PLCアプリケーションプログラムならびにI/Oおよびその他の接続されたPLCインターフェースにアクセスしようと試みるすべての呼び出しを傍受する。仮想パッチエンジンは、呼び出しが先に進むのを可能にする前にそれぞれの呼び出しを確認する。仮想パッチエンジンの検出は、任意で、(上で検討された)セキュリティ異常検出アプリによってまたは適用可能な攻撃行動中に作動させ得る。
【００３３】
図3は、一部の実施形態による仮想パッチプロセス300を示す。プロセス300は、2つのセキュリティに焦点を合わせたアプリがPLCにインストールされるときに始まる。より詳細には、ステップ305において、侵入挙動検出(behavioral intrusion detection)を可能にする異常検出アプリがPLCにインストールされ、ステップ310において、シグネチャに基づく検出を可能にする仮想パッチアプリがPLCにインストールされる。これらのアプリは任意の順序でインストールされる可能性があるが、一部の実施形態においてはインストールの順序を規定するアプリ間の依存関係が存在する可能性がある。インストールされると、ステップ315において、PLCは、連続監視状態になる。
【００３４】
攻撃が検出されると、応答動作がコントローラによって実行される。異なるレベルの応答が、デバイス上の構成に基づいて可能である(たとえば、技術者またはオペレータによってアプリのうちの1つまたは複数内で指定される)。最も邪魔にならない応答アクションにおいては、セキュリティ異常が報告されるだけであり、ログがコントローラの外にエクスポートされる。その真逆の場合、構成コマンドが拒絶される可能性があり、セーフシャットダウンアクションがトリガされる可能性がある。例として、ハートブリード(Heartbleed)シェルショック(Shellshock)脆弱性のあるOpenSSLライブラリによって可能にされる実行される脆弱性のあるHTTPSサービスの可用性が、ネットワークのハートブリードペイロードの注入が検出されると無効化される可能性がある。代替的に、コマンドが受け付けられる可能性があるが、応答が防止される可能性がある。両極端の間で、その他の応答の形態が使用される可能性がある。
【００３５】
図3の例においては、「アクティブ応答」がコントローラ上で可能にされるかどうかに基づいて選択された2つの可能な応答が示される。用語「アクティブ応答」は、実行が阻止されるべきか否かを示すコントローラの設定を指す。この設定は、たとえば、コントローラの技術者またはオペレータによって提供される可能性がある。アクティブ応答が可能にされる場合、ステップ330において、実行が阻止されるか、または1つもしくは複数のコマンドが拒絶される可能性がある。代替的に、アクティブ応答が可能にされない場合、ステップ335において、構成/制御コマンドが実行され、異常が(たとえば、HMIを介してまたはプラントオペレータに直接)レポートされる。
【００３６】
引き続き図3を参照すると、ステップ340において、新しい脆弱性が、オートメーション環境内のデバイスかまたは外部ソースかのどちらかによって開示される。ステップ345において、SOCが、脆弱性を検証し、再現する。次に、ステップ350において、特定のデバイスが脆弱性およびそれを利用しようとする試みを特定することを可能にする新たな脆弱性の利用検出シグネチャを生成する。そして、ステップ325において、仮想パッチが生成され、(たとえば、ファームウェアのバージョン、ハードウェア、およびその他のパラメータをマッチングすることに基づいて)シグネチャが適用可能である各顧客に配信される。顧客のサイトにおいて、仮想パッチが、オートメーションシステムによってステップ320において展開される。技術者またはオペレータが、ソフトウェアインターフェースを使用してパッチを承認すると判断する可能性があるが、概して、オートメーションシステムが、パッチが選択/確認されると自動的にパッチを展開する。展開されると、技術者またはオペレータは、パッチに基づいてシステム構成を修正する可能性がある。たとえば、特定の脆弱性に関して、技術者またはオペレータは、関連する脆弱性の利用シグネチャが検出されると率直にかまたは即座にかのどちらかでシャットダウンするようにコントローラを構成する可能性がある。SOCがオートメーション環境にしっかりと統合されているか、またはプラントオペレータ/技術者が一部の責任をSOCに委嘱した筋書きにおいては、ステップ320および325が組み合わされ得ることに留意されたい。したがって、SOC(または何らかのその他の仲介グループもしくはサービス)は、仮想パッチを制御デバイスに直接配信し、(たとえば、プラントの技術者またはオペレータによって与えられたプリファレンスに基づいて)対応する応答の挙動を構成することができる。このメカニズムは、必ずしも脆弱性の存在に依存しない攻撃方法を検出するために使用される可能性があることに留意されたい。たとえば、これらのシグネチャは、「総当たり」型の攻撃または「リソース枯渇」を検出するために使用される可能性がある。さらに、開示された脆弱性に関するペイロード検出アルゴリズムを適用することに加えて、攻撃行動が、仮想パッチの配信によって検出される可能性もある。
【００３７】
一部の実施形態において、仮想パッチは、(セキュリティ情報およびイベント管理の相関規則と同様に)真の結果が攻撃の肯定の特徴付けを表すブール代数の計算によって可能にされる。次の例は、この場合を示す。
真の攻撃=x∧(y∨(z∧¬(a==1.6)))
式中、xは、一致する認証イベントであり、yは、入ってくるメモリブロック変更要求であり、zは、一致する出ていくコマンドの値であり、aは、CPUのファームウェアのバージョンである。
【００３８】
図3は、新しい攻撃技術、実践、および手順が現れるときにシステムがそれらにどのようにして反応し得るかを示す。ステップ355において、攻撃行動が、たとえば、オートメーションデバイスによって、プラントの技術者もしくはオペレータによって、またはSOC自体によって検出される。次に、ステップ360において、SOCが、それに応じて調査をし、攻撃を特徴付ける。この特徴付けに基づいて、SOCは、ステップ365において、攻撃検出シグネチャを生成する。そして、シグネチャが、ステップ320および325において、そのシグネチャが当てはまるそれぞれの顧客に仮想パッチの形態で配信され、展開される。配信および展開の方法は、脆弱性検出シグネチャ(vulnerability detection signature)に関連して上で検討された方法と同様の方法で実施される可能性がある。
【００３９】
本明細書において説明される方法、システム、および装置は、従来のシステムと比較していくつかの利点を提供する。たとえば、本明細書において説明される仮想パッチは、PLCに固有のセキュリティシグネチャの自動化された配信を可能にし、脆弱性/パッチのリリースとパッチのインストールとの間の時間期間の間の保護の潜在能力を提供する。加えて、本明細書において説明される技術は、特に分散コンピューティング環境においてPLCハードウェアへの影響を最小限にしながら適用される可能性がある。たとえば、分散された空いているCPU/メモリリソースが、分散型の異常検出のために使用される可能性があり、分散された利用可能なストレージ空間が、分散型の異常検出のために使用される可能性がある。分散コンピューティングの使用は、非集中型の攻撃検出も可能にし、非集中型の攻撃検出は、従来のシステムに存在することが多い単一障害点を避ける。また、生成された検出シグネチャ/仮想パッチは、単なる純粋にネットワークに関連するデータおよびイベントではなく多方面からの入力データ(たとえば、ネットワークの挙動、システムの挙動、生産プロセスの挙動)に基づく検出を可能にする。さらに、シグネチャは、隣接するデバイスを保護するために生成される可能性がある。この手法は、レガシーデバイス保護のための実装の道筋を提供する。
【００４０】
制御デバイスによって使用される本明細書において説明されるプロセッサは、1つまたは複数の中央演算処理装置(CPU)、グラフィカル処理ユニット(GPU)、または当技術分野において知られている任意のその他のプロセッサを含む可能性がある。より広く、本明細書において使用されるプロセッサは、タスクを実行するための、コンピュータ可読媒体に記憶された機械可読命令を実行するためのデバイスであり、ハードウェアおよびファームウェアのいずれか一方または組合せを含む可能性がある。プロセッサは、タスクを実行するための実行可能な機械可読命令を記憶するメモリも含む可能性がある。プロセッサは、実行可能なプロシージャもしくは情報デバイスによる使用のために情報を操作、分析、修正、変換、もしくは送信することによって、および/または出力デバイスに情報をルーティングすることによって情報に作用する。プロセッサは、たとえば、コンピュータ、コントローラ、またはマイクロプロセッサの能力を使用するかまたは含み、多目的コンピュータによって実行されない特別な目的の機能を実行するための実行可能命令を使用して調整される可能性がある。プロセッサは、任意のその他のプロセッサに(電気的におよび/または実行可能な構成要素を含むものとして)結合され、それらの間のインタラクションおよび/または通信を可能にする可能性がある。ユーザインターフェースプロセッサまたはジェネレータは、表示画像またはその一部を生成するための電子回路またはソフトウェアまたはそれら両方の組合せを含む知られている要素である。ユーザインターフェースは、プロセッサまたはその他のデバイスとのユーザのインタラクションを可能にする1つまたは複数の表示画像を含む。
【００４１】
限定することなく制御レイヤデバイスおよび関連するコンピューティングインフラストラクチャを含む本明細書において説明される様々なデバイスは、本発明の実施形態に従ってプログラミングされた命令を保持し、データ構造、テーブル、レコード、または本明細書において説明されるその他のデータを含むための少なくとも1つのコンピュータ可読媒体またはメモリを含む可能性がある。本明細書において使用される用語「コンピュータ可読媒体」は、実行するために1つまたは複数のプロセッサに命令を与えることに関与する任意の媒体を指す。コンピュータ可読媒体は、非一時的不揮発性媒体、揮発性媒体、および送信媒体を含むがこれらに限定されない多くの形態をとる可能性がある。不揮発性媒体の非限定的な例は、光ディスク、ソリッドステートドライブ、磁気ディスク、および光磁気ディスクを含む。揮発性媒体の非限定的な例は、ダイナミックメモリを含む。送信媒体の非限定的な例は、システムバスを構成する配線を含む同軸ケーブル、銅線、および光ファイバを含む。送信媒体は、無線波および赤外線データ通信中に生成される音波または光波などの音波または光波の形態をとる可能性もある。
【００４２】
本明細書において使用される実行可能なアプリケーションは、たとえば、ユーザのコマンドまたは入力に応答してオペレーティングシステム、コンテキストデータ獲得システム、またはその他の情報処理システムの機能などの所定の機能を実施するようにプロセッサを調整するためのコードまたは機械可読命令を含む。実行可能なプロシージャは、1つまたは複数の特定のプロセスを実行するための実行可能なアプリケーションのコードもしくは機械可読命令のセグメント、サブルーチン、またはコードもしくは一部分のその他のはっきりと区別可能なセクションである。これらのプロセスは、入力データおよび/またはパラメータを受信すること、受信された入力データに対する操作を実行することおよび/または受信された入力パラメータに応じて機能を実行すること、ならびに結果として得られる出力データおよび/またはパラメータを提供することを含む可能性がある。
【００４３】
本明細書における機能およびプロセスのステップは、自動的に、完全にユーザのコマンドに応答して、または部分的にユーザのコマンドに応答して実行される可能性がある。自動的に実行される(ステップを含む)活動は、ユーザが活動を直接的に開始することなしに1つまたは複数の実行可能命令またはデバイスの動作に応じて実行される。
【００４４】
図のシステムおよびプロセスは、排他的でない。その他のシステム、プロセス、およびメニューが、同じ目的を達成するために本発明の原理に従って導き出される可能性がある。本発明が特定の実施形態を参照して説明されたが、本明細書において示され、説明された実施形態および変更形態は例示のみを目的としていることを理解されたい。現在の設計に対する修正が、本発明の範囲を逸脱することなく当業者によって実施される可能性がある。本明細書において説明されたように、様々なシステム、サブシステム、エージェント、マネージャ、およびプロセスが、ハードウェア構成要素、ソフトウェア構成要素、および/またはこれらの組合せを使用して実装され得る。本明細書におけるいかなる請求項の構成要素(claim element)も、語句「〜ための手段(means for)」を使用して明示的に記載されていない限り合衆国法典第35編(米国特許法)第112条第6段落の規定の下で解釈されるべきでない。
【符号の説明】
【００４５】
100  PLC
105  仮想マシン
110  仮想マシン
200  アーキテクチャ
201A  セキュリティの専門家
205  ローカルプラント
205A  技術者
205B  プラントオペレータ
210  SOC
210A  セキュリティ/プロセス制御スペシャリスト
210B  アナリティクスクラウド
215A  コントローラ
215B  コントローラ
215C  コントローラ
300  仮想パッチプロセス
【図１】
2019527877.tif 000003
【図２】
2019527877.tif 000004
【図３】
2019527877.tif 000005
【手続補正書】
【提出日】平成31年2月22日(2019.2.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
工業生産環境におけるセキュリティ脆弱性の仮想パッチのためのシステムであって、
1つまたは複数の制御プログラムを実行する第1の仮想マシンと、
前記1つまたは複数の制御プログラムに関連するシステム情報を収集すること、および1つまたは複数のセキュリティ攻撃を特定するために前記システム情報に1つまたは複数の仮想パッチを適用することを行うように構成された仮想パッチエンジンセキュリティアプリケーションを実行する第2の仮想マシンと、
前記第1の仮想マシンと前記第2の仮想マシンとの間の前記システム情報の転送を容易にするように構成された内部通信チャネルと、
前記第1の仮想マシンおよび前記第2の仮想マシンを実行するハイパーバイザとを含む、システム。
【請求項２】
前記第2の仮想マシンが、
複数の産業用コントローラにまたがり、前記1つまたは複数の仮想パッチを記憶する分散型データベースのインスタンスをさらに含む請求項1に記載のシステム。
【請求項３】
動作中に前記1つまたは複数の制御プログラムによって生成された前記システム情報が、前記第1の仮想マシン内の組み込まれたヒストリアンから前記仮想パッチエンジンセキュリティアプリケーションによって取り出される請求項1に記載のシステム。
【請求項４】
前記第2の仮想マシンが、複数のアプリを実行するように構成されたアプリコンテナを含み、前記仮想パッチエンジンセキュリティアプリケーションが、前記アプリコンテナにおいて実行される請求項3に記載のシステム。
【請求項５】
前記システム情報が、読み取り操作または書き込み操作のうちの少なくとも一方が実行されたメモリブロック、システム構成の変更、アラームステータスの変化、前記第1の仮想マシン上で実行するプロセス、前記第1の仮想マシンを実行するスレッド、前記第1の仮想マシンによって利用されるネットワーク接続、ファイル作成情報、およびファイル修正情報のうちの1つまたは複数を含む請求項1に記載のシステム。
【請求項６】
前記仮想パッチエンジンセキュリティアプリケーションが、1つまたは複数の制御コマンドと組み合わせて
産業用オートメーションデバイスの1つまたは複数の構成を実行した将来の結果のインジケータを決定するために、前記産業用オートメーションデバイスによって実行される制御コードのシンボリック実行を実行する請求項1に記載のシステム。
【請求項７】
前記仮想パッチエンジンセキュリティアプリケーションが、将来の結果の前記インジケータが(i)安全でないシステムの状態、または(ii)前記工業生産環境に関連する1つもしくは複数の所定の安全上の制約の違反に対応する場合に前記1つまたは複数の制御コマンドの将来の実行を阻止する請求項6に記載のシステム。
【請求項８】
前記第2の仮想マシンが、
1つまたは複数のフィールドデバイスに関連するオートメーションシステムの生産データによってスキャンサイクルに従って更新されるプロセスイメージと、
プラントフロアネットワーク上でオートメーションシステムのネットワークデータを送信および受信するように構成されたネットワーキング構成要素を実行する、請求項1に記載のシステム。
【請求項９】
前記第2の仮想マシンが、前記プロセスイメージを介して収集された前記オートメーションシステムの生産データと、前記ネットワーキング構成要素を介して収集された前記オートメーションシステムのネットワークデータとを記憶するように構成された組み込まれたヒストリアンを含むリアルタイムデータベースをさらに実行する請求項8に記載のシステム。
【請求項１０】
動作中に産業用オートメーションデバイスによって生成された前記システム情報が、前記組み込まれたヒストリアンから前記仮想パッチエンジンセキュリティアプリケーションによって取り出される請求項9に記載のシステム。
【請求項１１】
前記仮想パッチエンジンセキュリティアプリケーションが、(i)セキュリティオペレーションセンターによって生成された1つまたは複数の新しい仮想パッチを受信し、(ii)前記1つまたは複数の新しい仮想パッチを分散型データベースに記憶するようにさらに構成される請求項1に記載のシステム。
【請求項１２】
前記仮想パッチエンジンセキュリティアプリケーションが、前記セキュリティオペレーションセンターに前記1つまたは複数のセキュリティ攻撃の指示を送信するようにさらに構成される請求項11に記載のシステム。
【請求項１３】
前記仮想パッチエンジンセキュリティアプリケーションが、
前記1つまたは複数のセキュリティ攻撃に関連する1つまたは複数の制御コマンドを特定し、
1つまたは複数のセキュリティ攻撃を特定することに応じて、アクティブ応答の設定が可能にされるかどうかを判定し、
前記アクティブ応答の設定が可能にされない場合に、前記1つまたは複数の制御コマンドを実行し、産業用オートメーションデバイスに関連するオペレータに異常を報告し、
前記アクティブ応答の設定が可能にされる場合、前記1つまたは複数の制御コマンドの実行を阻止するようにさらに構成される請求項1に記載のシステム。
【請求項１４】
工業生産環境におけるセキュリティ脆弱性の仮想パッチのための、コンピュータによって実施される方法であって、
産業用制御システムに適用され得る1つまたは複数のセキュリティ脆弱性の利用方法の指示をセキュリティオペレーションセンターのコンピュータによって受信するステップと、
前記1つまたは複数のセキュリティ脆弱性の利用方法に対応する脆弱性の利用検出シグネチャを前記セキュリティオペレーションセンターのコンピュータによって生成するステップと、
前記脆弱性の利用検出シグネチャが適用され得る産業用コントローラの1人または複数のユーザを前記セキュリティオペレーションセンターのコンピュータによって特定するステップと、
それぞれの特定されたユーザに関して、前記1つまたは複数のセキュリティ脆弱性の利用方法の試みられた実行を検出するように動作可能な仮想パッチを生成し、前記仮想パッチを前記特定されたユーザに配信するステップとを含む、コンピュータによって実施される方法。
【請求項１５】
シミュレーションされた工業環境を使用して前記1つまたは複数のセキュリティ脆弱性の利用方法を前記セキュリティオペレーションセンターのコンピュータによって再現するステップをさらに含む、請求項14に記載の、コンピュータによって実施される方法。
【国際調査報告】
2019527877.tif 000006
2019527877.tif 000007