(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-21
(45)【発行日】2024-03-29
(54)【発明の名称】工場制御システムをインテリジェントにエミュレートし、応答データをシミュレートするための方法、システム及び装置
(51)【国際特許分類】
G06F 21/56 20130101AFI20240322BHJP
【FI】
G06F21/56
(21)【出願番号】P 2022551360
(86)(22)【出願日】2021-02-26
(86)【国際出願番号】 US2021019857
(87)【国際公開番号】W WO2021173961
(87)【国際公開日】2021-09-02
【審査請求日】2022-10-12
(32)【優先日】2020-06-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-02-28
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-02-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】511289471
【氏名又は名称】ナノトロニクス イメージング インコーポレイテッド
【氏名又は名称原語表記】NANOTRONICS IMAGING,INC.
【住所又は居所原語表記】2251 FRONT STREET,SUITE 110,P.O.BOX 306,CUYAHOGA FALLS,OHIO 44223,U.S.A.
(74)【代理人】
【識別番号】110002321
【氏名又は名称】弁理士法人永井国際特許事務所
(72)【発明者】
【氏名】プットマン,マシュー シー
(72)【発明者】
【氏名】プットマン,ジョン ビー
(72)【発明者】
【氏名】ピンスキー,バディム
(72)【発明者】
【氏名】サンドストローム,アンドリュー
(72)【発明者】
【氏名】ウィリアムス ,ジェームス ザ サード
【審査官】平井 誠
(56)【参考文献】
【文献】国際公開第2018/044410(WO,A1)
【文献】米国特許出願公開第2015/0213369(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
インターフェースに結合されたコントローラエミュレータによって、プロセスシミュレータ及び深層学習プロセッサに1つ又は複数の制御信号を提供するステップであって、前記インターフェースは、前記コントローラエミュレータを外部ソースからの入力に公開する、ステップと、
前記1つ又は複数の制御信号の受信に応答して、前記プロセスシミュレータによって、前記深層学習プロセッサに提供される応答データをシミュレートするステップと、
前記深層学習プロセッサによって、前記1つ又は複数の制御信号の予期される応答データ及び予期される挙動パターンデータを生成するステップと、
前記深層学習プロセッサによって、前記シミュレートされた応答データの実際の挙動パターンデータを生成するステップと、
(i)前記シミュレートされた応答データを前記予期される応答データと、及び(ii)前記実際の挙動パターンデータを前記予期される挙動パターンデータとの少なくとも1つを比較して、異常な活動が検出されたかどうか決定するステップと、
前記異常な活動を検出した結果として、前記異常な活動に対処するための1つ又は複数の動作を実行するステップと
を含む、コンピュータ実装方法。
【請求項2】
前記深層学習プロセッサが、調整済み機械学習モデルを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記シミュレートされた応答データが、前記コントローラエミュレータに提供される制御値を含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記1つ又は複数の動作が、前記異常な活動の結果として危険にさらされている1つ又は複数の工場プロセス、機器、及び制御(P/E/C)システムをシャットダウンすることを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記1つ又は複数の動作は、通知を生成することを含み、前記通知は、前記異常な活動を指定し、前記通知は、前記異常な活動を精査するためにオペレータに提供される、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記異常な活動が、偏差を示す前記予期される応答データに対する前記シミュレートされた応答データの比較の結果として検出される、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記異常な活動が、前記実際の挙動パターンデータと偏差を示す前記予期される挙動パターンデータとの比較の結果として検出される、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記1つ又は複数の動作は、前記異常な活動が前記インターフェースから前記コントローラエミュレータによって受信されたマルウェア攻撃であるかどうかを決定することを含み、前記異常な活動が前記マルウェア攻撃であるという決定は、前記マルウェア攻撃の検出に対応する信頼性レベル閾値を満たす前記異常な活動の信頼性レベルスコアの結果として生成される、請求項1に記載のコンピュータ実装方法。
【請求項9】
システムであって、
1つ又は複数のプロセッサと、
前記1つ又は複数のプロセッサによって実行された結果として、前記システムに、
インターフェースに結合されたコントローラエミュレータから、1つ又は複数の制御信号を受信
させることであって、前記インターフェースは、前記コントローラエミュレータを外部ソースからの入力に公開し、
前記1つ又は複数の制御信号の受信に応答して、制御値を含む応答データをシミュレート
させ、
前記1つ又は複数の制御信号のための予期される応答データ及び予期される挙動パターンデータを生成
させ、
シミュレートされた前記応答データを使用して実際の挙動パターンデータを生
成させ、
(i)前記シミュレートされた応答データを前記予期される応答データと、及び(ii)前記実際の挙動パターンデータを前記予期される挙動パターンデータとの少なくとも1つを比較
させて、異常な活動が検出されたかどうか決定
させ、
前記異常な活動を検出した結果として、前記異常な活動に対処するための1つ又は複数の動作を実行させる
命令をそれに記憶するメモリと
を含む、システム。
【請求項10】
前記1つ又は複数のプロセッサが、調整済み機械学習モデルを含む、請求項9に記載のシステム。
【請求項11】
前記1つ又は複数の動作は、アラートプロトコルを通信して、前記異常な活動の結果として危険にさらされている1つ又は複数の工場プロセス、機器、及び制御(P/E/C)システムを前記コントローラエミュレータにシャットダウンさせることを含む、請求項9に記載のシステム。
【請求項12】
前記1つ又は複数のプロセッサに、前記異常な活動に対処するための前記1つ又は複数の動作を実行させる前記命令がさらに、前記システムに、
検出された前記異常な活動に基づいて、前記異常な活動に関連付けられた信頼性レベルを決定し、
前記信頼性レベルに基づいて、前記1つ又は複数の動作を識別させる
ようにする、請求項9に記載のシステム。
【請求項13】
前記1つ又は複数の動作は、前記異常な活動が前記インターフェースから前記コントローラエミュレータによって受信されたマルウェア攻撃であるかどうかを決定することを含み、前記異常な活動が前記マルウェア攻撃であるという決定は、前記マルウェア攻撃の検出に対応する信頼性レベル閾値を満たす前記信頼性レベルの結果として生成される、請求項12に記載のシステム。
【請求項14】
前記1つ又は複数の動作は、通知を生成することを含み、前記通知は、前記異常な活動を指定し、前記通知は、前記異常な活動を精査するためにオペレータに提供される、請求項9に記載のシステム。
【請求項15】
前記異常な活動が、偏差を示す前記予期される応答データに対して示す前記シミュレートされた応答データの比較の結果として検出される、請求項9に記載のシステム。
【請求項16】
前記異常な活動が、前記実際の挙動パターンデータと偏差を示す前記予期される挙動パターンデータとの比較の結果として検出される、請求項9に記載のシステム。
【請求項17】
コンピュータシステムによって実行された結果として、前記コンピュータシステムに、
インターフェースに結合されたコントローラエミュレータから、1つ又は複数の制御信号を受信
させることであって、前記インターフェースは、前記コントローラエミュレータを外部ソースからの入力に公開し、
前記1つ又は複数の制御信号の受信に応答して、制御値を含む応答データをシミュレート
させ、
前記1つ又は複数の制御信号のための予期される応答データ及び予期される挙動パターンデータを生成
させ、
シミュレートされた前記応答データを使用して実際の挙動パターンデータを生成
させ、
(i)前記シミュレートされた応答データを前記予期される応答データと、及び(ii)前記実際の挙動パターンデータを前記予期される挙動パターンデータとの少なくとも1つを比較
させて、異常な活動が検出されたかどうか決定
させ、
前記異常な活動を検出した結果として、前記異常な活動に対処するための1つ又は複数の動作を実行させる
実行可能命令をそれに記憶する、非一時的コンピュータ可読記憶媒体。
【請求項18】
前記1つ又は複数の動作が、
検出された前記異常な活動のタイプを識別するステップと、
検出された前記異常な活動の前記タイプを補償するために一連のアクションを実行するステップと
を含む、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記1つ又は複数の動作は、
前記異常な活動が、前記インターフェースから前記コントローラエミュレータによって受信されたマルウェア攻撃であるかどうかを決定するステップと、
前記異常な活動が前記マルウェア攻撃であるという決定の結果として、前記コントローラエミュレータに、前記マルウェア攻撃の結果として危険にさらされている1つ又は複数の工場プロセス、機器、及び制御(P/E/C)システムをシャットダウンさせるためのアラートプロトコルを通信するステップと
を含む、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記1つ又は複数の動作は、通知を生成することを含み、前記通知は、前記異常な活動を指定し、前記通知は、前記異常な活動を精査するためにオペレータに提供される、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
相互参照
本出願は、2020年2月28日に出願された「工場制御システムをインテリジェントにエミュレートし、応答データをシミュレートするための方法、システム、及び装置」という名称の米国特許仮出願第62/983510号明細書の利益を主張し、その全体が参照により本明細書に組み込まれる。本出願は、2019年10月24日に出願された「製造プロセスのための予測プロセス制御」と題する、米国特許出願第16/663245号明細書に関連し、その全体が参照により本明細書に組み込まれる。さらに、本出願は、2020年2月4日に出願された「工場プロセス、機器、及び自動システムの動的監視及び保護」と題する米国特許出願第16/781193号明細書に関連し、その全体が参照により本明細書に組み込まれる。加えて、本出願は、2020年2月28日に出願された「工場プロセス、機器、及び自動システムの動的監視及び保護」と題する米国特許出願第62/983487号明細書に関連し、その全体が参照により本明細書に組み込まれる。本出願はまた、2020年6月12日に出願された「工場制御システムをインテリジェントにエミュレートし、応答データをシミュレートするための方法、システム及び装置」と題する米国特許出願第16/900124号明細書の利益を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、工場を対象とするマルウェア攻撃を首尾よく誘引し、その挙動を分析するために、工場制御システムをインテリジェントにエミュレートし、応答データをシミュレートするためのシステム、装置及び方法に関する。
【背景技術】
【0003】
工場に対するマルウェア攻撃は急増しており、非常に精巧になっている。さらに、これらのマルウェア攻撃は、隔離され、閉じられたコンピュータネットワーク、並びに外部ネットワークに接続されたマシン(例えば、4G及び5Gネットワーク)に侵入することができることが多い。これらの攻撃の多くは、工場の物理的な機器及びプロセスの動作を制御する工場制御システムを対象にすることが多い。本明細書で使用されるマルウェアは、損傷、破壊、又は不正なアクセスもしくは操作、例えば、コンピュータ、サーバ、コントローラ、コンピュータネットワーク、コンピュータ制御機器、データ、又は最終出力の品質もしくは歩留まりを引き起こす任意のハードウェア又はソフトウェアを指す。マルウェアには、コンピュータウイルス、ワーム、トロイの木馬、スパイウェア、バックドア、又は一般にコンピュータシステムに有害であり得る任意のプログラム又はファイルが含まれ得る。マルウェアは、工場の制御システムを対象とし、従来の情報技術(IT)セキュリティソリューション又は従来のプロセス制御システムを回避することができることが多い工場の物理的な機器及びプロセスの動作に微妙な変化を引き起こすように設計することができる。
【0004】
工場の制御システムに対する脅威を識別するのを助けるために、工場の生産制御システムを対象にする可能性のある同じマルウェアを誘引するために、工場の制御システム、機器及びプロセッサを模倣するようにハニーポットとして知られるセキュリティ機構を設定することができる。そのような攻撃を探し出すためにハニーポットが存在することを認識しているマルウェア攻撃の設計者は、それに応じて、例えば、対象工場の制御システムに関連付けられた特定の識別子を検索し、これらのシステムの予期される応答を試験することによって、ハニーポットを検出するようにマルウェアを設計することによって、マルウェアの精巧さを増大した。識別子又は応答が本物と思われない場合には、マルウェアは、ハニーポットを検出したことを警告され、その存在を隠すことができ、ハニーポットの目的を無効にする。
【0005】
さらに、マルウェアは、限定されないが、コンピュータ、コンピュータネットワーク、プロセスコントローラ、プログラマブルロジックコントローラ(PLC)、分散制御システム(DCS)、監視制御及びデータ収集システム(SCADA)、並びに工場で展開される他のデジタル装置を含む、多くの異なる箇所の工場の制御システムにわたって導入され得る。したがって、工場の制御システム全体を模倣し、精巧なマルウェア攻撃を欺くことができる現実的なハニーポットを設計することは非常に困難である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
したがって、そのようなシステムを対象とするマルウェア攻撃を首尾よく誘引し、それらの挙動を分析するために、工場の生産制御システムをインテリジェントにエミュレートするため、並びに生産中に工場のプロセス、機器、及び制御システムによって生成された応答データに類似する応答データをシミュレートするための新しい機構を提供することが望ましい。
【課題を解決するための手段】
【0007】
一例では、コンピュータ実装方法は、インターフェースに結合されたコントローラエミュレータによって、プロセスシミュレータ及び深層学習プロセッサに1つ又は複数の制御信号を提供するステップであって、インターフェースは、コントローラエミュレータを外部ソースからの入力に公開する、ステップと、1つ又は複数の制御信号の受信に応答して、プロセスシミュレータによって、深層学習プロセッサに提供される応答データをシミュレートするステップと、深層学習プロセッサによって、1つ又は複数の制御信号の予期される応答データ及び予期される挙動パターンデータを生成するステップと、深層学習プロセッサによって、シミュレートされた応答データの実際の挙動パターンデータを生成するステップと、(i)シミュレートされた応答データを予期される応答データと、及び(ii)実際の挙動パターンデータを予期される挙動パターンデータとの少なくとも1つを比較して、異常な活動が検出されたかどうか決定するステップと、異常な活動を検出した結果として、異常な活動に対処するための1つ又は複数の動作を実行するステップとを含む。
【0008】
いくつかの例では、深層学習プロセッサは、調整済み機械学習モデル(conditioned machine learning model)を含む。
【0009】
いくつかの例では、シミュレートされた応答データは、コントローラエミュレータに提供される制御値を含む。
【0010】
いくつかの例では、1つ又は複数の動作は、異常な活動の結果として危険にさらされている1つ又は複数の工場プロセス、機器、及び制御(P/E/C)システムをシャットダウンすることを含む。
【0011】
いくつかの例では、1つ又は複数の動作は通知を生成することを含み、通知は異常な活動を指定し、通知は異常な活動を精査するためにオペレータに提供される。
【0012】
いくつかの例では、異常な活動は、偏差を示す予期される応答データに対するシミュレートされた応答データの比較の結果として検出される。
【0013】
いくつかの例では、実際の挙動パターンデータと偏差を示す予期される挙動パターンデータとの比較の結果として、異常な活動が検出される。
【0014】
いくつかの例では、1つ又は複数の動作は、異常な活動がインターフェースからコントローラエミュレータによって受信されたマルウェア攻撃であるかどうかを決定することを含み、異常な活動がマルウェア攻撃であるという決定は、マルウェア攻撃の検出に対応する信頼性レベル閾値を満たす異常な活動の信頼性レベルスコアの結果として生成される。
【0015】
一例では、システムは、1つ又は複数のプロセッサと、1つ又は複数のプロセッサによって実行された結果として、システムに、インターフェースに結合されたコントローラエミュレータから、1つ又は複数の制御信号を受信することであって、インターフェースは、コントローラエミュレータを外部ソースからの入力に公開し、1つ又は複数の制御信号の受信に応答して、制御値を含む応答データをシミュレートし、1つ又は複数の制御信号のための予期される応答データ及び予期される挙動パターンデータを生成し、挙動パターンデータを生成するものであって、挙動パターンデータは、シミュレートされた応答データを使用して生成され、(i)シミュレートされた応答データを予期される応答データと、及び(ii)実際の挙動パターンデータを予期される挙動パターンデータとの少なくとも1つを比較して、異常な活動が検出されたかどうか決定し、並びに異常な活動を検出した結果として、異常な活動に対処するための1つ又は複数の動作を実行させる命令をそれに記憶するメモリとを含む。
【0016】
いくつかの例では、1つ又は複数のプロセッサは、調整済み機械学習モデルを含む。
【0017】
いくつかの例では、1つ又は複数の動作は、アラートプロトコルを通信して、異常な活動の結果として危険にさらされている1つ又は複数の工場プロセス、機器、及び制御(P/E/C)システムをコントローラエミュレータにシャットダウンさせることを含む。
【0018】
いくつかの例では、1つ又は複数のプロセッサに、異常な活動に対処するための1つ又は複数の動作を実行させる命令はさらに、システムに、検出された異常な活動に基づいて、異常な活動に関連付けられた信頼性レベルを決定し、信頼性レベルに基づいて、1つ又は複数の動作を識別させるようにする。
【0019】
一例では、コンピュータシステムによって実行された結果として、コンピュータシステムに、インターフェースに結合されたコントローラエミュレータから、1つ又は複数の制御信号を受信することであって、インターフェースは、コントローラエミュレータを外部ソースからの入力に公開し、1つ又は複数の制御信号の受信に応答して、制御値を含む応答データをシミュレートし、1つ又は複数の制御信号のための予期される応答データ及び予期される挙動パターンデータを生成し、挙動パターンデータを生成するものであって、挙動パターンデータは、シミュレートされた応答データを使用して生成され、(i)シミュレートされた応答データを予期される応答データと、及び(ii)実際の挙動パターンデータを予期される挙動パターンデータとの少なくとも1つを比較して、異常な活動が検出されたかどうか決定し、並びに異常な活動を検出した結果として、異常な活動に対処するための1つ又は複数の動作を実行させる実行可能命令をそれに記憶する非一時的コンピュータ可読記憶媒体。
【0020】
いくつかの例では、1つ又は複数の動作は、異常な活動が、インターフェースからコントローラエミュレータによって受信されたマルウェア攻撃であるかどうかを決定すること、並びに異常な活動がマルウェア攻撃であるという決定の結果として、コントローラエミュレータに、マルウェア攻撃の結果として危険にさらされている1つ又は複数の工場プロセス、機器、及び制御(P/E/C)システムをシャットダウンさせるためのアラートプロトコルを通信することを含む。
【0021】
本開示の上記及び他の利点及び特徴を得ることができる方法を説明するために、上記で簡単に説明した原理のより詳細な説明は、添付の図面に示されているその特定の実施形態を参照することによって提供される。これらの図は、本開示の例示的な実施形態のみを示しており、したがってその範囲を限定するものと見なされるべきではないことを理解して、本明細書の原理は、添付の図面を使用して追加の具体性及び詳細を伴って記述及び説明される。
【図面の簡単な説明】
【0022】
【
図1】工場プロセスの動作及び制御中に深層学習プロセッサに入力を提供する一例示的な方法を示す図である。
【0023】
【
図2】深層学習プロセッサ及びプロセスシミュレータを訓練するための一例示的な方法を示す図である。
【0024】
【
図2B】工場のP/E/Cシステムによって生成された応答データのサブセットの一例示的な挙動パターンを示す図である。
【0025】
【
図3】いくつかの実施形態による、一例示的なインテリジェントハニーポットを示す図である。
【0026】
【
図4】様々な実施形態による、マルウェア攻撃を誘引するためにシミュレートされたプロセスを実行するための一例示的な方法を示す図である。
【0027】
【
図5】データをロギングするための一例示的な方法を示す図である。
【0028】
【
図6】様々な実施形態による接続を使用して、互いに電気的に通信する様々な構成要素を含むコンピューティングシステムアーキテクチャの一例示的な例を示す図である。
【発明を実施するための形態】
【0029】
開示された主題のいくつかの実施形態によれば、工場を対象とするマルウェア攻撃を首尾よく誘引し、それらの挙動を分析するために、工場制御システムをインテリジェントにエミュレートし、工場の生産プロセス、機器、及び制御システムによって生成された応答データに類似する応答データをシミュレートするための機構(システム、方法、デバイス、装置などを含むことができる)が開示される。
【0030】
以下に記載される詳細な説明は、主題技術の様々な構成の説明として意図され、主題技術を実施することができる唯一の構成を表すことを意図するものではない。添付の図面は、本明細書に組み込まれ、詳細な説明の一部を構成する。詳細な説明は、主題技術のより徹底的な理解を提供する目的のための特定の詳細を含む。しかしながら、主題技術は、本明細書に記載の特定の詳細に限定されず、これらの詳細なしで実施され得ることは明らかであり、明らかであろう。いくつかの例では、本技術の概念を不明瞭にすることを避けるために、構造及び構成要素がブロック図形式で示されている。
【0031】
工場の製造プロセスは複雑であり、最終製品(本明細書では「最終出力」と呼ばれる)が生成されるまで、異なるプロセスステーション(又は「ステーション」)によって処理される原材料を含む。最終プロセスステーションを除いて、各プロセスステーションは、処理のための入力を受け取り、追加の処理のために後続のプロセスステーションに渡される中間出力を出力する。最終プロセスステーションは、処理のための入力を受け取り、最終出力を出力する。
【0032】
工場は、自動的に制御される物理機器を含む多くのプロセスステーションに依存している。これらの自動制御プロセスステーションは、マルウェアからの攻撃に対して脆弱であり、早期に検出されないと、機器及び製品の歩留まりに干渉又は修理不可能な損傷を引き起こす可能性がある。本開示のインテリジェントハニーポット機構は、制御システムをエミュレートし、工場環境における機器及びプロセスをシミュレートすることを指すが、インテリジェントハニーポット機構は、発電所、送電網、ユーティリティ、電気通信、金融、健康、輸送施設などの産業制御システムを展開する任意の産業又は重要なインフラストラクチャ施設に適用することもできる。インテリジェントハニーポット機構は、個別のモノのインターネット(IoT)デバイスの制御システムにも適用することができる。工場のプロセス、機器、制御システムを含む工場環境のさらなる詳細は、「工場プロセス、機器、及び自動システムの動的監視及び保護」と題する米国特許出願第16/781193号明細書に記載されており、その全体が参照により本明細書に組み込まれる。
【0033】
各プロセスステーションの動作は、1つ又は複数のプロセスコントローラによって制御することができる。いくつかの実装形態では、各プロセスステーションは、プロセスステーションの動作を制御するようにプログラムされた(本明細書では「制御アルゴリズム」と呼ばれるプログラミングアルゴリズム)1つ又は複数のプロセスコントローラ(本明細書では「ステーションコントローラ」又は「プロセスコントローラ」と呼ばれる)を有する。しかしながら、いくつかの態様では、単一のプロセスコントローラは、2つ以上のプロセスステーションの動作を制御するように構成されてもよい。プロセスコントローラの一例はプログラマブルロジックコントローラ(PLC)である。PLCは、工場のプロセス及びシステムを動作させるようにプログラムすることができる。PLC又は他のプロセスコントローラは、接続されたセンサ又は入力デバイスから情報を受信し、データを処理し、予めプログラムされたパラメータ及び命令に基づいて出力(例えば、関連するプロセスステーションを制御するための制御信号)を生成することができる。プロセスコントローラの他の例には、分散制御システム(DCS)及び監視制御及びデータ収集システム(SCADA)が含まれる。
【0034】
オペレータ又は制御アルゴリズムは、各制御値に対する所望の単一の値又は値の範囲を表すプロセスコントローラ設定点(又は「設定点」又は「コントローラ設定点」又はCSP)をプロセスコントローラに提供することができる。ステーションの機器又はプロセスの動作中に測定することができる値は、制御値又はステーション値として分類することができる。プロセスコントローラによって制御される値は、本明細書では制御値として分類され、他の測定値は、本明細書ではステーション値として分類される。制御値及び/又はステーション値の例には、速度、温度、圧力、真空、回転が含まれるが、これらに限定されない。
【0035】
制御アルゴリズムはまた、制御値を監視し、制御値を対応する設定点と比較し、制御値が対応するプロセスコントローラ設定点に等しくない(又は、制御値が対応するプロセスコントローラ設定点の定義された範囲内にない)ときに取るべきアクションを決定するための命令を含むことができる。例えば、ステーションの温度の測定された現在値が設定点を下回る場合には、ステーションの現在値温度が設定点に等しくなるまで、ステーションの熱源の温度を上昇させる信号がプロセスコントローラによって送信されてもよい。製造プロセスにおいてステーションを制御するために使用される従来のプロセスコントローラは、制御値が設定点から逸脱したときにどのようなアクションを取るべきかを規定するための静的アルゴリズム(例えば、オン/オフ制御、PI制御、PID制御、進み/遅れ制御)に従うため、制限されている。
【0036】
1つ又は複数のセンサを各プロセスステーション内に含めるか、又は各プロセスステーションに結合することができる。これらは、深層学習プロセッサ118の動作とは無関係の工場プロセスに(
図1に示すように)存在する物理又は仮想センサ、アナログ又はデジタル、並びに深層学習プロセッサ118によって必要とされる任意の追加の測定を実行するために追加することができる任意の新しいセンサとすることができる。センサを使用して、ステーション値、制御値、中間出力値及び最終出力値などの工場プロセスによって生成された値を測定することができる。例示的なセンサは、限定されないが、位置及び速度を検出するためのロータリエンコーダ、近接度、圧力、温度、レベル、流量、電流及び電圧を検出するためのセンサ、存在限界又は移動の終了限界などの状態を検出するための限界スイッチを含むことができる。本明細書で使用されるセンサは、検出デバイスと信号調整の両方を含む。例えば、検出デバイスは、ステーション又は制御値に反応し、信号コンディショナは、その反応を、深層学習プロセッサ又はステーションコントローラによって使用及び解釈され得る信号に変換する。温度に反応するセンサの例は、RTD、熱電対及び白金抵抗プローブである。ひずみゲージセンサは、とりわけ圧力、真空、重量、距離の変化に反応する。近接センサは、物体が互いに一定の距離又は指定されたタルト内にあるときに物体に反応する。これらの例のすべてにおいて、反応は、ステーションコントローラ又は深層学習プロセッサによって使用され得る信号に変換されなければならない。多くの場合、センサの信号調整機能は、ステーションコントローラによって解釈されるデジタル信号を生成する。信号コンディショナは、とりわけアナログ信号又はTTL信号を生成することもできる。ソフトセンサ、スマートセンサ又は推定器としても知られる仮想センサは、物理センサからデータを受信及び処理することができるシステムモデルを含む。
【0037】
本明細書で使用されるプロセス値は、工場プロセスの一部である一連のステーション(又はステーションのサブセット)全体にわたって集約又は平均化されたステーション値又は制御値を指す。プロセス値は、例えば、総スループット時間、使用される総リソース、平均温度、平均速度を含むことができる。
【0038】
ステーション及びプロセス値に加えて、プロセスステーションの製品出力(すなわち、中間出力又は最終出力)の様々な特性、例えば、温度、重量、製品寸法、機械的、化学的、光学的及び/又は電気的特性、設計欠陥の数、欠陥タイプの有無を測定することができる。測定可能な各種特性は、一般的に「中間出力値」又は「最終出力値」と呼ばれる。中間/最終出力値は、所定の式に従って測定及び重み付けされた中間/最終出力に関連付けられた特性の指定されたセットに基づいて、中間/最終出力の単一の測定された特性又は全体スコアを反映することができる。
【0039】
マルウェアは、いくつかの方法で工場のプロセス、機器及び制御(「P/E/C」)システムの適切な機能を混乱させるように設計され得る。例えば、コンピューティングデバイス上で実行されるマルウェアは、プロセスコントローラに、その関連するプロセスステーション(複数可)に、機器自体又はその出力に有害となるレベルで動作する制御信号を送信させる可能性がある。加えて、このマルウェアは、有害な速度又は有害な増分で制御値の変動を引き起こす可能性がある。さらに、マルウェア又は他の悪意のあるアプリケーションを実行するコンピューティングデバイスは、プロセスコントローラに誤ったフィードバックを提供する可能性があり、その結果、コントローラは関連するプロセスステーションで有害な状態を認識せず、したがって必要な調整を行わない可能性がある。マルウェアは、1つ又は複数のセンサを対象として、工場のP/E/Cシステムによって生成された測定値を操作又は破壊するように設計することもできる。マルウェアはまた、工場のP/E/Cシステムによって生成されたデータ、又はステーションプロセッサ、コントローラ、データ処理サーバ、センサなどの工場のP/E/Cシステムの構成要素間で通信されたデータを傍受又は監視するように設計することができる。工場の機器及びプロセスは制御システム(例えば、PLC、DCS、SCADA)によって制御されるため、マルウェアは通常、工場のプロセス及び機器に影響を与えるために工場の制御システムを対象とする。
【0040】
マルウェアを誘引するためのいずれかの工場デコイ(例えば、ハニーポット)セットアップによる検出を回避するために、マルウェアは、対象工場の制御システムに関連付けられた特定の識別子を検索し、これらのシステムの予期される応答を試験する。マルウェアは、本物の工場生産コントローラを識別したことが満たされた場合にのみ、その攻撃を解放する。
【0041】
したがって、そのようなシステムを対象とするマルウェア攻撃を首尾よく誘引し、それらの挙動を分析するために、工場の生産制御システムをインテリジェントにエミュレートするため、並びに生産中に工場のプロセス、機器、及び制御システムによって生成された応答データに類似する応答データをシミュレートするための新しい機構(本明細書では「インテリジェントハニーポット」と呼ばれる)を提供することが望ましい。本明細書で使用される場合、エミュレータは、別のシステムの正確な挙動を模倣し、エミュレートされたシステムのパラメータ及び規則に厳密に従うハードウェア又はソフトウェアを指し、シミュレータは、特定の態様において別のシステムの動作を模倣することができ、他のシステムの規則及びパラメータに緩く従うことができるコンピュータプログラムを指す。インテリジェントハニーポットは、工場のP/E/Cシステムからの広範なデータについて訓練された調整済み深層学習プロセッサ118を含むことができる。さらなる実施形態では、深層学習プロセッサは、他の工場のP/E/Cシステムからのデータ及び合成データについても訓練することができる。インテリジェントハニーポットは、外部入力を受信し、インテリジェントハニーポットをマルウェア攻撃に公開するために、インターフェースに結合することができる。インテリジェントハニーポットは、コマンドを実行し、データを記憶し、実際のプロセスに関連付けられたすべての信号を入出力することができる任意のデバイスとすることができ、とりわけ、コンピュータ、シングルボードコンピュータ、マイクロプロセッサ、マイクロコンピュータ及びマイクロコンピュータチップ設計を含む。
【0042】
機械学習(ML)又は人工知能(AI)モデルに基づく深層学習プロセッサを使用して、制御値、ステーション値、プロセス値、データ出力、並びに/又は中間及び最終出力値(まとめて「応答データ」)を、関連するステーションコントローラ設定点、機能的事前情報(functional priors)、経験的事前情報(experiential priors)、及び/又は汎用入力と共に評価し、機械学習モデルを訓練して、典型的な工場制御及び動作からのあらゆる変動を識別することができる。当業者によって理解されるように、機械学習ベースの技術は、開示された技術から逸脱することなく、所望の実装形態に応じて変化し得る。例えば、機械学習技術は、以下のうちの1つ又は複数を単独で又は組み合わせて利用することができる、すなわち、隠れマルコフモデル、リカレントニューラルネットワーク、畳み込みニューラルネットワーク(CNN)、深層学習、ベイズ記号法、強化学習、一般敵対ネットワーク(GAN)、サポートベクターマシン、画像位置合わせ方法、長期短期記憶(LSTM)などである。
【0043】
機械学習モデルはまた、クラスタリングアルゴリズム(例えば、ミニバッチK平均クラスタリングアルゴリズム)、推奨アルゴリズム(例えば、ミニワイズハッシングアルゴリズム、又はユークリッドローカル性高感度ハッシング(LSH)アルゴリズム)、及び/又はローカル外れ値係数などの異常検出アルゴリズムに基づくことができる。機械学習モデルは、教師付き及び/又は教師なしの方法に基づくことができる。
【0044】
図1は、製造プロセスにおける任意の数の(本明細書では「N」によって参照される)処理ステーションの動作及び制御を動的に監視するように構成することができる一例示的な深層学習プロセッサ118を示す。
図1では、製造プロセスのN個の処理ステーションは、プロセスステーション122及び142によって表されている。プロセスステーションは、直列又は並列で動作することができる。
【0045】
設定値、アルゴリズム、初期入力及び動作命令、システム及びプロセス更新、並びにステーションコントローラ120及び140への他の制御入力(それぞれステップ820及び840)は、ローカル又は中央データ処理サーバ800によって提供することができる。いくつかの実施形態では、データ処理サーバ800は、ネットワーク上の1つ又は複数のコンピュータとすることができる。いくつかの実施形態では、ステップ820及び840は、オペレータによって手動で実行することができる。データ処理サーバ800はまた、いくつかの実施形態では、ステーションコントローラ120及び140によって生成されたデータ出力、並びにプロセスステーション122もしくは142に結合されたセンサ、又は122もしくは142プロセスステーション内のセンサ、又は独立したセンサ127及び137から生成されたデータを受信することができる。データ出力には、(i)製造プロセス中に生成されたデータ(例えば、物理センサ、プロセスステーション構成要素、又はステーションコントローラ構成要素に結合されたデータログ)、(ii)各プロセスステーション又はステーションコントローラによって受信又は送信されるデータ、及び(iii)個々の又は任意の数のプロセスステーション又はステーションコントローラ(例えば、データ量が多い、データ量が少ない、データ量が不規則である、異常なデータ通信、又はデータの時刻、発信元もしくは宛先に基づくデータ生成)のデータ通信及びデータ生成パターンが含まれるが、これらに限定されない。さらなる実施形態では、データ処理サーバ800は、
図2に関連して定義したように、すべての応答データを受信することができる。いくつかの実施形態では、データ出力は、深層学習プロセッサ118に提供することができる(ステップ830)。他の実施形態では、深層学習プロセッサ118を分離するために、データ処理サーバは、深層学習プロセッサ118にいかなる入力も提供しない。いくつかの実施形態では、データ処理サーバ800はまた、遠隔地理的位置で発生する関連する製造プロセスからデータを受信し、そのようなデータを深層学習プロセッサ118に提供することができる。さらなる実施形態では、工場が分析を実行するために収集するデータ、並びに制御室などの分析データは、データ処理サーバ800によって収集することができる。データ処理サーバ800へのすべてのデータ入力が
図1に示されているわけではない。
【0046】
ユニバーサル入力136、経験的事前情報139、機能的事前情報138、及びN個のステーション(例えば、122及び142)の各々からの値は、深層学習プロセッサ118に提供することができる。他の実施形態では、任意の数の追加の深層学習プロセッサを使用し、深層学習プロセッサ118及びプロセスシミュレータを訓練するように構成することができる。いくつかの実施形態では、ユニバーサル入力136、経験的事前情報139、機能的事前情報138は、工場のP/E/Cシステムのプロセスコントローラ及び他の構成要素の空間スキャンを含むことができる。空間スキャンは、回路基板上に見られる製品識別番号及び他の情報のソースを提供することができ、基板ログ(bios)からの情報と組み合わせたり相互参照したりすることができる。
【0047】
機能的事前情報は、本明細書で使用される場合、製造プロセスにおける個々に及び集合的に、各プロセスステーションの機能及び既知の制限に関する情報を指す。プロセスステーションで使用される機器の仕様、並びにすべての製品モデル及び識別情報は、すべて機能的事前情報と見なされる。例示的な機能的事前情報としては、限定されないが、スクリューが回転できる最小速度及び最大速度を有するスクリュー駆動押出機、その加熱及び冷却能力に基づいて達成可能な最高温度及び最低温度を有する温度制御システム、爆発する前に収容する最大圧力を有する圧力容器、燃焼前に到達することができる最高温度を有する可燃性液体を含めることができる。機能的事前情報はまた、製造プロセスの一部である個々のステーションがそれらの機能を実行する順序を含むことができる。さらに、機能的事前情報は、通常のプロセス変動及び通常のプロセスノイズを含むことができる。通常のプロセス変動は、機械公差(例えば、温度制御変動+/-1℃、コンベヤ速度変動+/-0.1m/分、圧力変動+/-3KPa)を含むことができ、原材料の変動、冷却水温の変動、オペレータのエラー及び通常のプロセスノイズによる変動は、例えば、電気信号のジッタ及びデータ収集及び記録における丸めエラーを含み得る。
【0048】
本明細書で使用される経験的事前情報とは、例えば、同じ又は類似の製造プロセスを実行すること、同じ又は類似のステーションを動作させること、同じ又は類似の中間/最終出力を生成すること、製造プロセス及びソリューションの最終出力における欠陥又は故障の根本原因分析に関して以前の経験によって得られた情報を指す。経験的事前情報はまた、工場のすべてのP/E/Cシステムからのログデータ、並びにデータ処理サーバ800によって収集されたデータを含むことができる。
【0049】
本明細書で使用されるユニバーサル入力とは、特定のプロセスステーションに固有のものではなく、製造プロセス全体の態様、例えば、日付、時刻、周囲温度、湿度又は製造プロセスに影響を及ぼし得る他の環境条件、オペレータ、オペレータの熟練度及びエラーの可能性、プロセスで使用される原材料、原材料に固有の他の特性の中でも、色、粘度、粒径などの原材料仕様、原材料の特定のロット番号及びコスト、ステーションごとの機器/ツールの保有、製造作業順序番号、バッチ番号、ロット番号、最終製品番号及び最終製品シリアル番号などの識別情報を指す。
【0050】
機能的事前情報、経験的事前情報及びユニバーサル入力の各々について提供される例は、これらの例を分類する1つの方法を表し、他の適切な分類を使用することができることに留意されたい。例えば、深層学習プロセッサ118に提供される入力を分類する別の方法は、プリプロセス入力(例えば、経験的事前情報、機能的事前情報、材料特性、スケジューリング要件)、インプロセス入力(例えば、ユニバーサル入力、制御値、ステーション値、中間値、最終出力値、プロセス値)、ポストプロセス入力(例えば、製造性能測定メトリック及び他の分析)である。さらに、機能的及び経験的事前情報は、製造プロセス全体にわたって動的に更新することができる。
【0051】
各プロセスステーションは、1つ又は複数の関連するステーションコントローラによって制御することができる(例えば、ステーションコントローラ120はプロセスステーション122を制御し、ステーションコントローラ140はプロセスステーション142を制御する)。一実施形態では、単一のステーションコントローラは、複数のプロセスステーションを制御するか、又は単一のプロセスステーションに関連付けられた複数の制御値を制御することができる。いくつかの実施形態では、深層学習プロセッサ118は、予測プロセス制御又は予めプログラムされたアルゴリズムに基づく制御入力(126及び146で表される)を各プロセスステーションコントローラに提供することができる。予測プロセス制御は、「製造プロセスのための予測プロセス制御」と題する米国特許出願第16/663245号明細書に記載されており、その全体が参照により本明細書に組み込まれる。他の実施形態では、深層学習プロセッサは、ステーションコントローラに入力を提供しない。
【0052】
信号コンディショナ190、191、192及び193、例えば、信号スプリッタ、増幅器、デジタル-アナログ変換器、アナログ-デジタル変換器、TTLは、制御信号(例えば、121は121aと121bに分割され、141は141aと141bに分割される)及び制御値(例えば、125は125aと125bに分割され、145は145aと145bに分割される)を分割するために含まれることができ、その結果、制御信号及び制御値は、深層学習プロセッサ118及び関連するステーションコントローラ(例えば、120又は140)の両方に送信される。制御値は、アナログ信号又はデジタル信号とすることができる。さらに、いくつかの実施形態によれば、信号コンディショナを深層学習プロセッサ内に含めることができ、すべてのアナログ値をデジタル値に変換するか、又は他の調整を実行することができる。各ステーションコントローラは、ステーションの制御値(例えば、制御値125及び145)を調整するためのコマンドを提供する1つ又は複数の制御信号(例えば、121及び141)を提供することができる。各ステーションは、中間出力値(それぞれ134a及び144a)を有する中間出力(例えば、124及び144)を出力する。処理ステーションからのすべての中間出力値及び最終出力値(例えば、144、プロセスステーション142がプロセスの最後のプロセスステーションである場合)は、深層学習プロセッサ118に提供される。各ステーションはまた、深層学習プロセッサ118に提供することができるステーション値(例えば、128及び148)を出力する。
図1はまた、中間出力124が、単一のステーション又は任意の数の複数のステーションを表すことができる、1つ又は複数の後続のステーションに送信される(ステップ150)ことを示す。ステーション142は、
図1に示すように、任意の数の先行ステーションから中間入力を受信することができる(ステップ160)。いくつかの実施形態では、ステーションコントローラ(例えば、コントローラ120及び140)によって使用される設定点値は、深層学習コントローラ118に送信することができる。さらに、製造プロセスに関する値は、独立したセンサ(例えば、独立したセンサ127及び137)によって測定され、深層学習コントローラ118に提供することができる。
【0053】
深層学習プロセッサ118、ステーションコントローラ、プロセスステーション、及びデータ処理サーバ800の間の通信は、1つ又は複数の他のデバイスと通信する能力、及び/又はコンピュータネットワークとデータを処理する能力を提供する任意の適切な通信技術を使用することができることが理解される。例として、実装される通信技術は、アナログ技術(例えば、リレーロジック)、デジタル技術(例えば、RS232、イーサネット、又は無線)、ネットワーク技術、例えばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、ブルートゥース技術、近距離通信技術、セキュアRF技術、及び/又は任意の他の適切な通信技術を含むことができるが、これらに限定されない。いくつかの実施形態では、深層学習プロセッサ118を任意のマルウェアによる感染から隔離するために、深層学習プロセッサ118は、任意のプロセスコントローラ、データ処理サーバ800、又はネットワークに接続された任意のコンピュータからいかなる入力も受信しなくてもよい。いくつかの実施形態では、プロセスコントローラ又はデータ処理サーバ800からの入力は、深層学習プロセッサ118に手動で入力するか、又はメモリデバイスを任意のマルウェアについてスクラブした後にメモリデバイス(例えば、サムドライブ)を介して入力することができる。
【0054】
いくつかの実施形態では、オペレータ入力は、任意の適切な入力デバイス(例えば、キーボード、マウス、ジョイスティック、タッチ、タッチスクリーンなど)を使用して、深層学習プロセッサ118、及び/又はステーションコントローラもしくはプロセスステーションに通信することができる。
【0055】
図2は、開示された主題のいくつかの実施形態によれば、機械学習モデルを調整(訓練)し、インテリジェントハニーポットに組み込まれるプロセス刺激装置を作成するための方法200を提供する。方法200は、深層学習プロセッサ118を実装するように構成されたハードウェア及び/又はソフトウェアを提供することができる制御システム又は他のコンピューティングシステムによって実行することができる。
図2は、工場のP/E/Cシステムを説明する。いくつかの実施形態では、工場における特定の機械又はプロセスに同様の方法を使用することができる。
【0056】
ステップ205では、製造プロセスにおける各ステーションコントローラの設定点、アルゴリズム及び他の制御入力は、従来の制御方法を使用して初期化することができる。さらに、制御アルゴリズム/オペレータは、初期制御値又はステーション値を提供することができる。制御アルゴリズム、初期設定点値、及び初期制御値又はステーション値は、深層学習プロセッサ118に提供することができる(ステップ215)。他の実施形態では、製造プロセスにおける各ステーションコントローラの設定点、アルゴリズム及び他の制御入力は、米国特許出願第16/663245号明細書「製造プロセスのための予測プロセス制御」に記載されているように、予測プロセス制御を使用してステーションコントローラに提供することができる(ステップ245)。ステーションコントローラに提供される制御値、制御アルゴリズム、設定点、及び任意の他の情報(例えば、プロセスタイミング、機器命令、警報アラート、緊急停止)は、まとめて「ステーションコントローラ入力」又は「制御入力」と呼ばれる場合があることに留意されたい。さらに、機能的事前情報138、経験的事前情報139、及びユニバーサル入力136のような他の入力を、深層学習プロセッサ118に提供することができる。
【0057】
ステップ210では、製造プロセスは、従来の又は予測プロセス制御方法を使用して、所定の期間にわたって、及び又は別の適切な条件(例えば、ロバストなデータセットの作成)に基づいて、すべてのプロセスステーションを通して反復する。本明細書で説明するプロセスステーションは、直列又は並列に動作することができる。さらに、単一のステーションは、製造プロセスの単一の反復に対して、単一のプロセスステップを複数回(順次又は非順次)、又は異なるプロセスステップを(順次又は非順次)実行することができる。プロセスステーションは、中間出力、又は最終ステーションである場合は最終出力を生成する。中間出力は、最終出力が生成されるまで、製造プロセスの後続の(下流の)ステーションに送信される。さらなる実施形態では、最終出力のための構成要素の製造は、非同期で地理的に分散することができる。言い換えれば、最終出力のための構成要素は、必ずしも構成要素を最終出力に組み立てるのに近い時間又は場所ではなく、任意の時間又は任意の場所で製造することができる。例えば、自動車のヘッドライトは、ヘッドライトを伴う自動車が組み立てられる数か月前に製造することができる。
【0058】
プロセスが各ステーションを通して反復すると、個々のステーション(例えば、制御値)、個々のステーション(例えば、ステーション値、中間/最終出力値、データ出力)又は複数のステーション(例えば、プロセス値)の出力に関連付けられたすべての値が測定又は計算され、深層学習プロセッサ118(ステップ226、227、228、229)に提供されて、その機械学習モデルを調整する。いくつかの実施形態では、従来の制御下での製造プロセスの製造性能測定メトリック(例えば、指定された期間の生産量、指定された期間の生産ダウンタイム、指定された期間又は指定された数の最終出力に使用されるリソース、指定された期間の仕様にない製品の割合、特定のオペレータの生産量、指定された数の最終出力に関連付けられた材料コスト)を計算し、深層学習プロセッサ118に提供することができる(ステップ229)。
【0059】
図示されていないが、プロセスステーションから受信した制御値又は他の制御入力に応答してステーションコントローラによって行われる任意のアクション(又は生成された制御信号)は、深層学習プロセッサ118に提供することができる。そのようなアクションは、温度、速度などを調整することを含むことができる。
【0060】
深層学習プロセッサ118へのすべての入力は、電子的に又はオペレータによって手動手段を介して入力することができることに留意されたい。さらに、入力は、データが深層学習プロセッサに提供される前に、メモリデバイスを任意のマルウェアについてスクラブすることができるように、直接又はメモリデバイスを介して間接的に提供することができる。
【0061】
深層学習プロセッサ118の機械学習モデルの調整(ステップ236~238)は、教師なし学習方法によって達成することができる。機能的事前情報138、経験的事前情報139、深層学習プロセッサ118に入力されるユニバーサル入力136以外に、深層学習プロセッサ118は、製造プロセスの反復中に収集する受信データを単に分析することによって推論を引き出す(例えば、ステップ226、227、228及び229)。他の実施形態では、機械学習モデルの調整(ステップ236~238)は、教師あり学習方法、又は教師あり方法と教師なし方法の組み合わせ、又は同様の機械学習方法を介して調整することができる。さらに、機械学習モデルの調整は、(深層学習プロセッサ118にシミュレートされたデータ又は同様の製造プロセスからのデータを提供することによって強化することができる。一実施形態では、機械学習モデルは、深層学習プロセッサ118を同様の製造プロセスに実装し、対象製造プロセスでの実装中に深層学習プロセッサを微調整することによって調整することができる。すなわち、深層学習プロセッサ118の訓練は、深層学習プロセッサ118が対象製造環境に展開される前に実行される訓練プロセスを使用して実行することができる。
【0062】
図2に示すように、深層学習プロセッサ118は、機械学習(ML)モデルを採用する(ステップ235)。これらの機械学習モデルは、工場動作及び制御データを分析すること(ステップ236)、製造プロセスがプロセスステーションを通して反復するときに生成される応答データのための挙動パターンデータを生成すること(ステップ237)、並びに正常プロセス変動データ及びノイズデータを決定すること(ステップ238)によって調整することができる。
【0063】
工場動作及び制御データ(ステップ236)は、以下を含むことができる、すなわち、(i)設定点に対応する特定の制御値、(ii)識別されたプロセスステーションによって生成された他の制御値(及びそれらの対応する設定点)、(iii)識別された処理ステーションによって生成されたステーション値、(iv)識別された処理ステーションによって生成された中間出力値、(v)他のプロセスステーションによって生成された制御値(及びそれらの対応する設定点)、ステーション値、中間出力及び最終出力、(vi)ユニバーサル入力、機能的事前情報、経験的事前情報、(vii)各処理ステーションに提供される制御信号及び他の命令、(viii)各ステーションコントローラに提供される制御入力、(ix)データ出力、(x)独立したセンサから受信された工場の制御及び動作に関する測定値である。独立したセンサは、通常の製造プロセスに含まれるセンサ以外の測定値を提供するセンサを指すことができる。独立したセンサは通常の製造プロセスの一部ではないため、マルウェアの侵入から保護されることが多い。いくつかの実施形態では、これらの独立したセンサは、単一の機械又はプロセスステップに直接結び付けられず、任意の機械又はプロセスステップからの値(例えば、製造プロセス中にランダムに測定を行うハンドヘルドデバイス)を測定するために流体的に使用することができる。いくつかの実施形態では、独立したセンサは、深層学習プロセッサ118に加えて、又はその代わりに、その出力値を結合モニタに提供することができる。モニタにのみ提供される値は、いくつかの実施形態によれば、深層学習プロセッサ118に手動で入力することができる。
【0064】
単一のステーション及び複数のステーションにわたる、単一の時点又はある期間にわたる応答データのための挙動パターンを生成すること(ステップ237)は、正の相関、負の相関、周波数、振幅、上下の傾向、各制御値又はステーション値の変化率、識別された応答データについて、識別された応答データが変化した場合に影響を受けるか又は影響を受けない他の応答データを特定することを含むことができる。応答データ225は、識別されたプロセスステーションの特定の設定点に関連付けられた制御値だけでなく、以下のデータタイプの1つ又は複数を含む、すなわち、(i)識別されたプロセスステーションの他の設定点に関連付けられた制御値、(ii)識別されたプロセスステーションに関連付けられたステーション値、(iii)識別されたプロセスステーションに関連付けられた中間出力値、(iv)他のプロセスステーションに関連付けられた制御値、(v)他のプロセスステーションに関連付けられたステーション値、(vi)他のプロセスステーションに関連付けられた中間出力値、(vii)最終出力値、(viii)データ出力、(ix)独立したセンサから受信された工場の制御及び動作に関する測定値である。
【0065】
データは、通常、所定の速度でセンサから収集されることに留意されたい。周波数分析は、この速度を考慮に入れ、それに応じてその出力値を調整することができ、その結果、出力値は真の周波数速度を反映し、センサからデータを収集するのにかかる時間を含む速度を反映しない。いくつかの実施形態では、周波数分析はまた、上昇又は下降及び短時間の安定化期間後の制御値の急速な変化を示すことができる。安定化期間は非常に短く、ほとんど検出できない。これは攻撃の一例であり得る。高い点又は低い点で安定化する制御値の代わりに、制御値を許容可能な高い点又は低い点を超えて増加又は減少させ続けるために悪意のある信号が提供され得る。安定化直後に増加又は減少することにより、攻撃は正常に見え、制御値の以前の増加又は減少と一致する。
【0066】
工場動作及び制御データ(ステップ235)、生成された挙動パターンデータ(ステップ236)、及び深層学習プロセッサへの他の入力の分析に基づいて、深層学習プロセッサ118は、その機械学習モデルをさらに調整するために、通常のプロセス変動及び通常のプロセスノイズを決定することができる。通常のプロセス変動は、機械公差(例えば、温度制御変動+/-1℃、コンベヤ速度変動+/-0.1m/分、圧力変動+/-3KPa)を含むことができ、原材料の変動、冷却水温の変動、オペレータのエラー及び通常のプロセスノイズによる変動は、例えば、電気信号のジッタ及びデータ収集及び記録における丸めエラーを含み得る。
【0067】
機械学習モデルの調整のためのロバストなデータセットを作成するために、各プロセスステーションの各制御値に対応する設定点(又は他の制御入力)は、仕様内の最終出力をもたらすすべての値(又は値のサブセット)に対して、体系的に(例えば、最小値から最大値まで)調整することができる。さらなる実施形態では、各プロセスステーションの各制御値に対応する設定点(又は他の制御入力)は、プロセスステーションが動作することができるすべての値(又は値のサブセット)に対して、体系的に(例えば、最小値から最大値まで)調整することができる(すなわち、仕様内の最終出力をもたらすものだけに限定されず、プロセスステーションが動作することができる値の全範囲)。さらに、設定点の任意の数及び任意の組み合わせを訓練目的のために調整することができる(ステップ205)。設定点(又は他の制御入力)は、手動で、予めプログラムされたアルゴリズムによって、又は予測プロセス制御によって調整することができる。
【0068】
いくつかの実施形態では、1つ又は複数の設定点(又は他の制御入力)は、たとえそれらの値が仕様内ではない最終出力をもたらす場合であっても、マルウェア攻撃とは無関係に、既知の工場破壊(例えば、機械の摩耗及び断裂、誤った構成要素の挿入)中に生じる値に調整することができる。
【0069】
いくつかの実施形態では、深層学習プロセッサ118は、工場プロセスの動作及び制御に関連付けられた従来の標準プロセス制御システムと共に実装することができる。工場プロセスの動作及び制御に関連付けられたすべてのデータを使用する代わりに、深層学習プロセッサ118は、工場プロセスの動作及び制御に使用される任意の標準的なプロセス制御システムに提供される同じデータを使用して機械学習アルゴリズムを訓練することができる。
【0070】
各設定点調整又は設定点調整のセット(ステップ205)について、製造プロセスは、プロセスステーション(ステップ210)を通して所定の時間、所定の設定点調整のセットについて、及び/又は定義されたイベントが発生したとき(例えば、所定量の応答データが収集される)反復し、設定点(ステップ215)及び生成された応答データ225(例えば、ステーション及び制御値(ステップ228)、中間及び最終出力値(ステップ227)、データ出力(ステップ226)、プロセス値及び製造性能測定メトリック(ステップ229)を深層学習プロセッサ118に提供することができる。深層学習プロセッサ118は、製造プロセスがプロセスステーションを通して反復するときに受信された異なる入力を使用して、その機械学習モデルを調整する(ステップ236~238)。
【0071】
方法200がプロセスステーション(例えば、所定の期間の後、所定の設定点調整のセットの後、及び/又は定義されたイベントが発生したとき(例えば、ロバストなデータセットが生成される))を介して反復することを終了した後には、機械学習モデルの調整(ステップ236~238)を完了したと見なすことができ、工場の生産P/E/Cシステムからの応答データを正確に反映する応答データをシミュレートすることができるプロセスシミュレータを作成する(ステップ239)ことができる。生産応答データを動的にシミュレートすることができるプロセスシミュレータを作成するために機械学習モデルを使用することは、インテリジェントハニーポットが工場生産システムでありデコイではないという精巧なマルウェア攻撃を欺く可能性がより高い。
【0072】
その調整済み機械学習モデル及びプロセスシミュレータを伴う深層学習プロセッサ118は、インテリジェントハニーポットに展開することができる(ステップ241)。一例示的なインテリジェントハニーポットを
図3に示す。いくつかの実施形態によれば、深層学習プロセッサ118は、任意の生産システムから切り離され、任意のマルウェアをスクラブし、インテリジェントハニーポットに組み込むことができる。他の実施形態では、インテリジェントハニーポットは、それ自体の深層学習プロセッサを有し、調整済み機械学習モデル及び任意のマルウェアでスクラブされた作成されたプロセスシミュレータのみが、インテリジェントハニーポットに含まれる深層学習プロセッサにアップロードされる。
【0073】
図2Bは、応答データのサブセットの一例示的な挙動パターンを示す。応答データは、
図2に関連して説明したように、プロセスステーションに関連付けられた設定点を実際に調整することによって経験的に導出することができる。x軸はステーションXの設定点値を表し、y軸は応答データ値を表す。グラフ302に示される異なる線は、ステーションXに関連付けられた値に対する応答データの通常の挙動パターン、並びに別のステーション、ステーションYに関連付けられた値に対する応答データの挙動パターンを表す。この例では、x軸に沿って増加している設定点は速度を表す。グラフ302に示される応答データは、ステーションXについて、増加する設定点に関連付けられた制御値325(すなわち、速度を表す)、例えば、パワーを表すことができる、独立制御値323、粘度を表すことができるステーション値328、及び直径を表すことができる、中間出力値334を含む。グラフ302に示すステーションYの応答データは、温度を表すことができる、ステーション値348、及び重量を表すことができる、最終出力値344を含む。
図2は、各応答の振幅を示す。これはまた、速度の設定点が増加すると応答データがどのように挙動するかを示す、すなわち、ステーションでのパワー(323で表される)が増加し、直径(334で表される)が増加し、粘度(328で表される)が減少する。ステーションXの設定点の変化はまた、ステーションYに影響を与え、例えば、(348で表されるように)ステーションYの温度が上昇し、(344で表されるように)重量が増加する。挙動パターンは非常に複雑である可能性があり、異なるステーションにわたって何千ものデータ点を含み、人間の計算では異常な挙動パターンを識別することはできない。したがって、機械学習分析は、応答データの挙動パターンを生成又は学習し、異常な活動についてそれらの挙動パターンを分析するために必要である。
【0074】
図3は、いくつかの実施形態による、一例示的なインテリジェントハニーポット300を示す。インテリジェントハニーポットは、
図2に関連して説明したように、所定の期間にわたって、又は別の適切な基準に基づいて訓練された調整済み深層学習プロセッサ318を含む。インテリジェントハニーポットは、工場の生産P/E/Cシステムに接続されていない。いくつかの実施形態では、深層学習プロセッサは、工場の生産P/E/Cシステムから更新されたデータを定期的に受信することができる。工場の生産P/E/Cシステムからインテリジェントハニーポットへ、又はインテリジェントハニーポットから工場の生産P/E/Cシステムへのいずれかから、更新されたデータと共にマルウェアが導入されないことを保証するために、更新は、工場の生産P/E/Cシステムから直接インテリジェントハニーポットに直接行われない。代わりに、データを最初にメモリデバイス(例えば、サムドライブ)にアップロードし、すべてのマルウェアをスクラブし、次いで深層学習プロセッサ318に提供することができる。
【0075】
深層学習プロセッサ318は、プロセスコントローラ又はエミュレータから制御信号を受信し、同様の制御信号に応答して、工場のP/E/Cシステムの動作及び制御中に生産において生成される可能性のある応答データに類似するシミュレートされた応答データを生成するように構成することができる、(
図2に関連して説明したように)訓練されたプロセスシミュレータを包含する。
【0076】
深層学習プロセッサ318の訓練されたモデル及びプロセスシミュレータは、互いに連続的に双方向通信することができる。また、インテリジェントハニーポットの一部は、工場のP/E/Cシステムの動作中にプロセスコントローラによって生成される制御信号と同様の制御信号を生成するようにプログラムすることができる1つ又は複数のプロセスコントローラである。プロセスコントローラは、工場の生産P/E/Cシステムで使用される同じタイプのPLC又は他のプロセスコントローラであってもよく、エミュレートされたプロセスコントローラ(まとめて「コントローラエミュレータ」)であってもよい。実際の又はエミュレートされたプロセスコントローラは、(310で表されるように)深層学習プロセッサ318に結合されて、プロセスシミュレータに制御信号を提供し、プロセスシミュレータから制御値を受信することができる。エミュレータは、エミュレートしているシステムの正確な挙動を模倣し、エミュレートされたシステムのパラメータ及び規則を厳密に遵守するハードウェア又はソフトウェアを指す。エミュレータは、エミュレートされているシステムに関連するログ(bios)シリアル番号、モデル番号、製造日などからのすべての識別情報を含む。
【0077】
さらに、インテリジェントハニーポット300は、入力を受信するために、インテリジェントハニーポットが(プロセスコントローラ又はコントローラエミュレータを介して)ネットワーク技術、例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、ブルートゥース技術、近距離通信技術、セキュアRF技術、及び/もしくは任意の他の適切な通信技術、又はデータデバイス(例えば、サムドライブ、フラッシュドライブ、USBドライブ)と接続することを可能にするインターフェースに結合される。インターフェースは、インテリジェントハニーポットをマルウェア攻撃に公開することができる。
【0078】
図4は、(
図3で説明したように)インテリジェントハニーポットを実装するための一例示的な方法400を示す。
【0079】
ステップ1では、コントローラエミュレータは、ネットワーク技術又は他のデータデバイスに結合されたインターフェースから外部入力を受信することができる。いくつかの実施形態では、外部入力を介してインテリジェントハニーポットにマルウェア攻撃を導入することができる。
【0080】
ステップ2では、シミュレートされたプロセスが起動される。プロセスシミュレータは、所定の時間又は所定のイベントの発生時に実行することができる。
【0081】
ステップ3では、コントローラエミュレータは、1つ又は複数の制御信号をプロセスシミュレータ及び深層学習プロセッサに出力する。
【0082】
ステップ4では、プロセスシミュレータは、1つ又は複数の制御信号を受信し、制御値を含む、応答データをシミュレートする。プロセスシミュレータは、コントローラエミュレータに制御値を出力し、深層学習プロセッサにシミュレートされた応答データを出力する。
【0083】
ステップ5では、深層学習プロセッサは、その調整済み機械学習モデルを採用し、コントローラエミュレータから受信した制御信号を分析して、予期される応答データ及び挙動パターンデータを予測して生成する。工場動作及び制御データ、並びに特定の制御信号に対するそのようなデータの相関関係の理解に基づいて、深層学習プロセッサは、受信した制御信号について、予期される応答データ及び対応する挙動パターンを予測することができる。
【0084】
ステップ6では、深層学習プロセッサは、受信したシミュレートされたデータから実際の挙動パターンデータを生成し、シミュレートされた応答データを予期される応答データと比較し、及び/又は実際の挙動パターンデータを予期される挙動パターンデータと比較する。実際の挙動パターンデータは、受信したシミュレートされた応答データに対して生成され、予測応答データに基づく、予期される挙動パターンデータとは区別される挙動パターンデータを指す。
【0085】
図2に関連して説明したように、(1)生産中に工場のP/E/Cシステムにわたって広範かつ多様なデータを捕捉すること、及び(2)工場の動作中に工場のP/E/Cシステムにおける変化及び通常のプロセス変動及びノイズデータ、並びにP/E/Cシステムの構成要素がそれらの変化及び変動にどのように応答するかを分析することを含む、調整済み機械学習モデルを深層学習プロセッサ318に組み込むことによって、深層学習プロセッサ318は、工場のP/E/Cシステムの単一の構成要素又は多くの構成要素にわたる予期される応答データ及び挙動パターンからの、わずかな偏差であっても、シミュレートされた応答データ及び実際の挙動パターンデータの何らかの偏差を認識するように学習することができる。深層学習プロセッサ318は、異常な活動及びマルウェア攻撃を識別し、信頼性レベルを生成することができる(ステップ7)。いくつかの態様では、信頼性レベルは、予測の精度の数値確率として表現されてもよく、他の態様では、信頼性レベルは、間隔又は確率範囲として表現されてもよい。
【0086】
オペレータ又はアルゴリズムは、異常な活動に関連付けられた信頼性レベルに閾値を割り当てることができ、生成された信頼性レベルに基づいて異常な活動のタイプを決定することもできる。異常な活動のタイプに基づいて、異常な活動に対処するために1つ又は複数の動作(本明細書では「アラートプロトコル」と呼ばれる)が実行される(ステップ8)。例えば、高い信頼性レベルスコアを受信する異常な活動の場合、アラートプロトコルを深層学習プロセッサ318によって開始し、開始されたアラートプロトコルを実行するためにコントローラエミュレータに通信することができるが、低い信頼性レベルスコアを受信する異常な活動の場合、アラートプロトコルが開始される前にオペレータに異常な活動を精査するように促すことができる。一実施形態では、信頼性レベルは、高、中、及び低の3つの間隔に分割することができ、各間隔に閾値を割り当てることができる。さらに、実行されるアクションは、各間隔に割り当てることができる。例えば、高信頼間隔に入る信頼度レベルについては、アラートプロトコルを開始することができ、中信頼間隔に入る信頼度レベルについては、オペレータに異常な活動を精査するように促すことができ、低信頼度間隔に入る信頼度レベルについては、異常な活動にフラグを立て、散発的にチェックすることができる。閾値及び間隔範囲は、偽陽性又は偽陰性を最小限に抑えるように精査し、調整することができる。他の実施形態では、信頼性レベルを2つ以上の間隔に分割することができる。
【0087】
いくつかの実施形態では、異なるアラートプロトコルを異なる間隔に割り当てることができる。例えば、異常な活動が高い間隔に対応する信頼性レベルを有する場合、アラートプロトコルは、危険にさらされている可能性がある関連する工場のP/E/Cシステムをシャットダウンするか、場合によってはインテリジェントハニーポットをシャットダウンするなどの強力なアクションをトリガすることができる。一方、異常な活動がより低い間隔に対応する信頼性レベルを有する場合、アラートプロトコルは、レポート、電子メール、又は他の通知を生成するなどのより穏やかなアクションをトリガすることができる。さらなる実施形態では、異なるアラートプロトコルを、所定の信頼性レベル閾値を満たす検出された異なるタイプの異常に割り当てることができる。開始されるアラートプロトコルは、検出された異常な活動のタイプを補償又は補正するように設計された一連のアクションであり得る。
【0088】
アラートプロトコルは、機械的(例えば、サイレン、点滅する光又は他のインジケータによってアラートを通知する)、デジタル(例えば、レポートの印刷、管理者への電子メールの送信、制御パネルへの通知)、機能的(例えば、プロセス類似又はコントローラエミュレータのいずれか又はすべてを停止し、プロセスシミュレータ又はコントローラエミュレータの設定を調整する)、又は上記の任意の組み合わせとすることができる。アラートプロトコルは、深層学習プロセッサ318によって開始され、アラートプロトコルを実行するコントローラエミュレータに通信することができる。機能プロトコルは、コントローラエミュレータとの通信によって実施することができる(例えば、プロセスシミュレータに制御信号を送信する)。プロトコルは、TTLロジック、ラダーロジック、又はステーションコントローラ、PLCなどの外部デバイスに通信される他のプログラマブルコマンドによって制御される、個々のリレーのデジタル起動とすることができる。プロトコル及びコマンド構造は、深層学習プロセッサ318に組み込まれる。深層学習プロセッサ318は、これらのいずれかを可能にするプログラミングを含むことができる。いくつかの実施形態では、深層学習プロセッサ318への入力は、キーボード入力による手動入力を介して実行することができる。これは、深層学習プロセッサ318の完全性を維持するのを助ける。さらなる実施形態では、サムドライブ又はネットワーク接続などによるデジタル入力も可能にすることができる。
【0089】
さらに、深層学習プロセッサ318は、異常な活動がマルウェア攻撃であるかどうか、及びその識別のための信頼性レベルを識別することができる。例えば、挙動パターンデータが、予期される挙動データとは異なる応答データの有意な、突然の、急速な、又は予期外の変化を示す場合である。一実施形態では、深層学習プロセッサ318は、挙動パターンデータが、マルウェア攻撃ではない既知の破壊的活動の挙動パターンデータと一致するかどうかを分析することができる。いくつかの実施形態では、深層学習プロセッサ318は、製造プロセス中に生成されたデータ出力及び/又はデータロギングモジュールからのデータを使用して、異常な活動が攻撃又は他の何らかの障害(例えば、使用された材料が不良であり、不良の構成要素が設置された)によって引き起こされたかどうかを決定する。
【0090】
オペレータ又はアルゴリズムは、マルウェア攻撃であると識別されたアクティビティに関連付けられた信頼性レベルに閾値を割り当てることができ、閾値が満たされたときに開始されるアクション(本明細書では「アラートプロトコル」と呼ばれる)を事前定義することができる。例えば、高い信頼性レベルスコアを受信する検出されたマルウェア攻撃の場合、アラートプロトコルを深層学習プロセッサ318によって開始し、アラートプロトコルを実行するためにコントローラエミュレータに通信することができるが、より低い信頼性レベルスコアを受信する検出されたマルウェア攻撃では、アラートプロトコルが開始される前に、検出されたマルウェア攻撃を精査するようにオペレータに促すことができる。一実施形態では、信頼性レベルは、高、中、及び低の3つの間隔に分割することができ、各間隔に閾値を割り当てることができる。他の実施形態では、信頼性レベルを2つ以上の間隔に分割することができる。さらに、実行されるアクションは、各間隔に割り当てることができる。例えば、高信頼間隔に入る信頼度レベルについては、アラートプロトコルを開始することができ、中信頼間隔に入る信頼度レベルについては、オペレータに検出されたマルウェア攻撃を精査するように促すことができ、低信頼度間隔に入る信頼度レベルについては、検出されたマルウェア攻撃にフラグを立て、散発的にチェックすることができる。閾値及び間隔範囲は、偽陽性又は偽陰性を最小限に抑えるように精査し、調整することができる。
【0091】
いくつかの実施形態では、異なるアラートプロトコルを異なる間隔に割り当てることができる。例えば、検出されたマルウェア攻撃が高い間隔に対応する信頼性レベルを有する場合、アラートプロトコルは、危険にさらされている可能性がある関連する工場のP/E/Cシステムをシャットダウンするか、場合によってはインテリジェントハニーポット自体をシャットダウンするなどの強力なアクションをトリガすることができる。一方、検出されたマルウェア攻撃がより低い間隔に対応する信頼性レベルを有する場合、アラートプロトコルは、レポート、電子メール、又はマルウェア攻撃を識別し、攻撃に対処するための即時の是正アクションを提案することができる他の通知を生成するなど、より緩やかなアクションをトリガすることができる。さらなる実施形態では、異なるアラートプロトコルを、所定の信頼性レベル閾値を満たす検出された異なるタイプのマルウェア攻撃に割り当てることができ、適切なアラートプロトコルは、所定の信頼性レベルを超えたときに、検出された攻撃に対して深層学習プロセッサ318によって開始される。アラートプロトコルは、検出されたマルウェア攻撃のタイプを補償又は補正するように設計された一連のアクションとすることができる。
【0092】
いくつかの実施形態では、信頼性レベルがマルウェア攻撃を示す所定の制限を超えると、深層学習プロセッサ1318は、攻撃を確認又は拒否するために、まとめて確認試験と呼ばれる、敵対的生成ネットワーク又は第2の人工知能モデルを自動的に実行することができる。確認試験が確認された場合、マルウェア攻撃レベルを最高のアラートに上げることができる。確認試験が否定された場合、元のモデルの信頼性レベルを仮定することができ、第2の最高のアラートレベルに戻る。前述のように、各警告レベルに対して別々のアラートプロトコルを指定することができる。
【0093】
いくつかの実施形態では、深層学習プロセッサ318は、既存のITセキュリティシステムと通信して、異常な活動をシステムに通知するように構成することができる。さらなる実施形態では、深層学習プロセッサ318は、データロギングモジュールと通信するように構成することができる。この通信は、マルウェア攻撃の正確なソースを指定する警告を提供することができ、工場のプロセス及び機器をよりよく防御するためにファイアウォール及び他のITインフラストラクチャを再構成するためにも使用することができる。いくつかの実施形態では、深層学習プロセッサ318は、工場の生産P/E/Cシステムのコンピュータシステムと通信してアラートプロトコルを実行し、脆弱性又は異常を補正するように構成することができ、識別されたマルウェア攻撃をそらす、もしくは阻止するため、及び/又は工場の生産P/E/Cシステムの1つ又は複数をシャットダウンするためである。
【0094】
深層学習プロセッサ318の機械学習モデルは、インテリジェントハニーポット300の動作によって調整し続けることができる。
【0095】
図5は、深層学習プロセッサ318及びデータ処理サーバ800からデータを受信してデータを分析し、レポート、電子メール、アラート、ログファイル又は他のデータ編集を生成するように構成することができる一例示的なデータロギング及び出力モジュール510を示す(ステップ515)。例えば、データロギングモジュール510は、受信したデータを所定のトリガイベントについて検索し、それらのトリガイベントに関連付けられた関連データを示すレポート、電子メール、アラート、ログファイル、監視ダッシュボードへの更新、又は他のデータ編集を生成するようにプログラムすることができる(ステップ515)。例えば、異常な活動の識別をトリガイベントとして定義することができ、以下のデータを報告することができる、すなわち、予期される挙動パターンと比較した応答データの挙動パターン、異常な活動の影響を受けたステーション、コントローラ又はセンサ、トリガイベントを生成したセンサ、予期しない特定の応答データの識別、異常な活動が発生した日時、トリガイベントに関連付けられた信頼性レベル、他のステーションへの異常な活動の影響、及び中間又は最終出力である。他の適切なトリガを定義することができ、他の適切なデータを報告することができる。いくつかの実施形態では、データロギングモジュール510は、深層学習プロセッサ118内に含まれ得る。いくつかの実施形態では、データロギングモジュールからのデータは、
図2及び
図4に関連して説明したように、又はアラートプロトコルを開始するために、応答データの一部として深層学習プロセッサ118に提供することができる。
【0096】
深層学習プロセッサ118は、
図6に示すように、処理ユニット(例えば、CPU及び/又はプロセッサ)610、並びに読取り専用メモリ(ROM)620及びランダムアクセスメモリ(RAM)625などのシステムメモリ615を含む様々なシステム構成要素を処理ユニット610に結合するバス605を含むことができる。処理ユニット610は、モトローラのマイクロプロセッサファミリ又はMIPSのマイクロプロセッサファミリのプロセッサなどの1つ又は複数のプロセッサを含むことができる。代替の実施形態では、処理ユニット610は、深層学習プロセッサ118の動作を制御し、予測プロセス制御を実行するための特別に設計されたハードウェアとすることができる。適切なソフトウェア又はファームウェアの制御下で動作する場合、処理モジュール610は、本明細書に記載の様々な機械学習アルゴリズム及び計算を実行することができる。
【0097】
メモリ615は、異なる性能を伴う様々なメモリタイプを含むことができる。特性、例えばメモリキャッシュ612など。プロセッサ610は、記憶デバイス630に結合することができ、記憶デバイスは、1つ又は複数の機能モジュール及び/又はデータベースシステムを実装するために必要なソフトウェア及び命令を記憶するように構成することができる。これらのモジュール及び/又はデータベースシステムの各々は、プロセッサ610並びにソフトウェア命令が実際のプロセッサ設計に組み込まれる専用プロセッサを制御するように構成することができる。
【0098】
深層学習プロセッサとのオペレータ対話を可能にするために、入力デバイス645は、音声用のマイクロフォン、ジェスチャ又はグラフィック入力用のタッチ感知スクリーン、キーボード、マウス、動き入力などの任意の数の入力機構を表すことができる。出力デバイス635はまた、当業者に知られているいくつかの出力機構(例えば、プリンタ、モニタ)の1つ又は複数であってもよい。場合によっては、マルチモーダルシステムは、オペレータが深層学習プロセッサと通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース640は、一般に、オペレータ入力及びシステム出力のほか、ステーションコントローラ、プロセスステーション、データロギングモジュール、並びにすべての関連するセンサ及び画像捕捉デバイスなどの製造プロセスの一部である他の構成要素から受信及び送信されるすべての電子入力も制御及び管理することができる。特定のハードウェア構成上で動作することに制限はなく、したがって、ここでの基本的な特徴は、それらが開発されるときに改善されたハードウェア又はファームウェア構成の代わりに容易に置き換えることができる。深層学習プロセッサから出力されたデータは、視覚的に表示、印刷、又はファイル形式で生成され、記憶デバイス630に記憶されるか、もしくはさらなる処理のために他の構成要素に送信され得る。
【0099】
通信インターフェース640は、インターフェースカード(「ラインカード」と呼ばれることもある)として提供することができる。一般に、それらは、ネットワークを介したデータパケットの送受信を制御し、時にはルータと共に使用される他の周辺機器をサポートする。提供され得るインターフェースの中には、イーサネットインターフェース、フレームリレーインターフェース、ケーブルインターフェース、DSLインターフェース、トークンリングインターフェースなどがある。加えて、高速トークンリングインターフェース、無線インターフェース、イーサネットインターフェース、ギガビットイーサネットインターフェース、ATMインターフェース、HSSIインターフェース、POSインターフェース、FDDIインターフェースなどの様々な超高速インターフェースを提供することができる。一般に、これらのインターフェースは、適切な媒体との通信に適切なポートを含むことができる。場合によっては、それらは独立したプロセッサ、及び場合によっては揮発性RAMも含むことができる。独立したプロセッサは、パケット交換、メディア制御、及び管理などの通信集約タスクを制御することができる。通信集約タスクのために別個のプロセッサを提供することによって、これらのインターフェースは、処理ユニット610が機械学習及び予測プロセス制御を実施するのに必要な他の計算を効率的に実行することを可能にする。通信インターフェース640は、ステーションコントローラ、プロセスステーション、データロギングモジュール、並びにすべての関連するセンサ及び画像捕捉デバイスなどの製造プロセスの一部である他の構成要素と通信するように構成することができる。
【0100】
いくつかの実施形態では、深層学習プロセッサは、1つ又は複数の処理ステーションに結合され、中間出力及び最終出力の画像を監視及び捕捉することができるビデオカメラなどの様々な画像捕捉デバイスによって受信された画像を処理する撮像処理デバイス670を含むことができる。これらの画像は、通信インターフェース640を介して深層学習プロセッサに送信され、画像処理デバイス670によって処理され得る。画像は、中間出力値及び最終出力値を計算するために深層学習プロセッサによって使用され得る、欠陥の数及びタイプ、出力寸法、スループットなどのデータを提供するために処理され得る。いくつかの実施形態では、画像処理デバイスは、深層学習プロセッサの外部にあり、通信インターフェース640を介して深層学習プロセッサに情報を提供することができる。
【0101】
記憶デバイス630は、非一時的メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)625、読み出し専用メモリ(ROM)620、及びそれらのハイブリッドなど、コンピュータによってアクセス可能なデータを記憶することができるハードディスク又は他のタイプのコンピュータ可読媒体とすることができる。
【0102】
実際には、記憶デバイス630は、深層学習プロセッサとの間で入力データ、例えば機能的事前情報、経験的事前情報、ユニバーサル入力、プリプロセス入力、インプロセス入力及びポストプロセス入力を受信し、記憶し、更新し、データを出力するように構成することができる。
【0103】
いくつかの実施形態では、深層学習プロセッサ318は、通信インターフェースが、入力を受信するために、インテリジェントハニーポットが(プロセスコントローラ又はコントローラエミュレータを介して)ネットワーク技術、例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、ブルートゥース技術、近距離通信技術、セキュアRF技術、及び/もしくは任意の他の適切な通信技術、又はデータデバイス(例えば、サムドライブ、フラッシュドライブ、USBドライブ)と接続することを可能にするインターフェースに結合されることを除いて、深層学習プロセッサ118について
図6に示す同じ構成要素を含むことができる。インターフェースは、インテリジェントハニーポットをマルウェア攻撃に公開することができる。さらに、通信インターフェースは、生産製造プロセス構成要素のいずれにも結合されない。
【0104】
いくつかの実施形態では、本明細書に記載の機能及び/又はプロセスを実行するための命令を記憶するために、任意の適切なコンピュータ可読媒体を使用することができる。例えば、いくつかの実施形態では、コンピュータ可読媒体は、一時的又は非一時的であり得る。例えば、非一時的なコンピュータ可読媒体は、非一時的な磁気媒体(例えば、ハードディスク、フロッピーディスクなど)、非一時的な光学媒体(例えば、コンパクトディスク、デジタルビデオディスク、ブルーレイディスクなど)、非一時的な半導体媒体(例えば、フラッシュメモリ、電気的にプログラム可能な読み出し専用メモリ(EPROM)、電気的に消去可能なプログラム可能な読み出し専用メモリ(EEPROM)など)、一時的でないか、もしくは伝送中の永続性のいかなる様相も欠いていない任意の適切な媒体、及び/又は任意の適切な有形の媒体などの媒体を含むことができる。別の例として、一時的なコンピュータ可読媒体は、ネットワーク上の信号を、配線、導体、光ファイバ、回路、及び一時的であり、伝送中の永続性の様相をまったく欠いている任意の適切な媒体、並びに/又は任意の適切な無形媒体に含むことができる。
【0105】
本明細書に記載の様々なシステム、方法、及びコンピュータ可読媒体は、クラウドネットワーク環境の一部として実装することができる。本明細書で使用される場合、クラウドベースのコンピューティングシステムは、仮想化されたコンピューティングリソース、ソフトウェア、及び/又は情報をクライアントデバイスに提供するシステムである。コンピューティングリソース、ソフトウェア、及び/又は情報は、エッジデバイスがネットワークなどの通信インターフェースを介してアクセスすることができる集中サービス及びリソースを維持することによって仮想化することができる。クラウドは、サービスとしてのソフトウェア(SaaS)(例えば、協調サービス、電子メールサービス、企業リソース計画サービス、コンテンツサービス、通信サービスなど)、サービスとしてのインフラストラクチャ(IaaS)(例えば、セキュリティサービス、ネットワークサービス、システム管理サービスなど)、サービスとしてのプラットフォーム(PaaS)(例えば、ウェブサービス、ストリーミングサービス、アプリケーション開発サービスなど)、及びサービスとしてのデスクトップ(DaaS)、サービスとしての情報技術管理(ITaaS)、サービスとしての管理されたソフトウェア(MSaaS)、サービスとしてのモバイルバックエンド(MBaaS)などの他のタイプのサービスなどのクラウド要素を介して様々なクラウドコンピューティングサービスを提供することができる。
【0106】
本明細書に記載の例(同様に、「など(such as)」、「例えば(e.g.)」、「含む(including)」などと表現される節)の提供は、特許請求される主題を特定の例に限定するものとして解釈されるべきではなく、むしろ、実施例は、多くの可能な態様の一部のみを例示することを意図している。当業者は、機構という用語がハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の適切な組み合わせを包含し得ることを理解するであろう。
【0107】
上記の説明から明らかなように特に明記しない限り、説明全体を通して、「決定する」、「提供する」、「識別する」、「比較する」などの用語を利用する説明は、コンピュータシステムのメモリもしくはレジスタ又は他のそのような情報記憶デバイス、伝送デバイスもしくは表示デバイス内の物理(電子)量として表されるデータを操作及び変換する、コンピュータシステム、又は同様の電子コンピューティングデバイスのアクション及びプロセスを指すことが理解される。本開示の特定の態様は、アルゴリズムの形態で本明細書に記載されるプロセスステップ及び命令を含む。本開示のプロセスステップ及び命令は、ソフトウェア、ファームウェア、又はハードウェアで具現化することができ、ソフトウェアで具現化される場合、リアルタイムネットワークオペレーティングシステムによって使用される異なるプラットフォームに存在し、そこから動作するようにダウンロードすることができることに留意されたい。
【0108】
本開示はまた、本明細書の動作を実行するための装置に関する。この装置は、必要な目的のために特別に構成されてもよく、又はコンピュータによってアクセスされ得るコンピュータ可読媒体に記憶されたコンピュータプログラムによって選択的に起動又は再構成される汎用コンピュータを備えてもよい。そのようなコンピュータプログラムは、限定されないが、フロッピーディスク、光ディスク、CD-ROM、光磁気ディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カード、特定用途向け集積回路(ASIC)、又は電子命令を記憶するのに適した任意のタイプの非一時的なコンピュータ可読記憶媒体を含む任意のタイプのディスクなどのコンピュータ可読記憶媒体に記憶することができる。さらに、本明細書で言及されるコンピュータは、単一のプロセッサを含んでもよく、又は計算能力を高めるために複数のプロセッサ設計を採用するアーキテクチャであってもよい。
【0109】
本明細書に提示されるアルゴリズム及び動作は、いかなる特定のコンピュータ又は他の装置にも本質的に関連しない。様々な汎用システムもまた、本明細書の教示によりプログラムと共に使用されてもよく、又は必要な方法ステップ及びシステム関連アクションを実行するためのより特殊化された装置を構築することが好都合であることが判明してもよい。様々なこれらのシステムに必要な構造は、同等の変形例と共に、当業者には明らかであろう。加えて、本開示は、いかなる特定のプログラミング言語も参照して説明されない。本明細書に記載の本開示の教示を実施するために様々なプログラミング言語を使用することができ、本開示の有効化及び最良のモードの開示のために特定の言語に対する任意の参照が提供されることが理解される。
【0110】
様々な実施形態の論理演算は、(1)汎用コンピュータ内のプログラム可能回路上で実行される一連のコンピュータ実施ステップ、動作、又は手順、(2)専用プログラム可能回路上で実行される一連のコンピュータ実施ステップ、動作、又は手順、及び/又は(3)プログラム可能回路内の相互接続された機械モジュール又はプログラムエンジンとして実施される。システムは、列挙された方法のすべてもしくは一部を実施することができ、列挙されたシステムの一部とすることができ、及び/又は列挙された非一時的コンピュータ可読記憶媒体の命令により動作することができる。そのような論理演算は、モジュールのプログラミングにより特定の関数を実行するようにプロセッサを制御するように構成されたモジュールとして実装することができる。
【0111】
開示されたプロセスにおけるステップの任意の特定の順序又は階層は、例示的な手法の一例示であることが理解される。設計上の選好に基づいて、プロセスにおけるステップの特定の順序又は階層は再配置されてもよく、又は図示されたステップの一部のみが実行されてもよいことが理解される。ステップのいくつかは、同時に実行されてもよい。例えば、特定の状況では、マルチタスク処理及び並列処理が有利であり得る。さらに、上記の実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきではなく、記載されたプログラム構成要素及びシステムは、一般に、単一のソフトウェア製品に一緒に統合されるか、又は複数のソフトウェア製品にパッケージ化され得ることを理解されたい。工場制御システムをインテリジェントにエミュレートし、応答データをシミュレートするための装置、方法、及びシステムは、これらの図示された実施形態を特に参照して詳細に説明されている。しかしながら、前述の明細書に記載された本開示の趣旨及び範囲内で様々な修正及び変更を行うことができ、そのような修正及び変更は、本開示の均等物及び一部と見なされるべきであることは明らかであろう。