(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-16
(54)【発明の名称】工場制御システムを知的にエミュレートし、応答データをシミュレートするための方法、システム、および装置
(51)【国際特許分類】
G06F 21/55 20130101AFI20241008BHJP
G06F 11/34 20060101ALI20241008BHJP
【FI】
G06F21/55
G06F11/34 157
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024515117
(86)(22)【出願日】2022-08-31
(85)【翻訳文提出日】2024-04-05
(86)【国際出願番号】 US2022042223
(87)【国際公開番号】W WO2023043623
(87)【国際公開日】2023-03-23
(32)【優先日】2021-09-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】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)【発明者】
【氏名】プットマン,マシュー シー
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GB06
5B042JJ08
5B042JJ29
5B042KK01
5B042KK13
5B042KK20
5B042MA08
5B042MA14
5B042MC08
(57)【要約】
シミュレートされたプロセスが開始される。このシミュレートされたプロセスは、エミュレータによって、制御信号を、外部入力に基づいて生成することを含む。このシミュレートされたプロセスはさらに、シミュレータによって、制御信号を処理して、シミュレートされた応答データを生成することを含む。このシミュレートされたプロセスはさらに、深層学習プロセッサによって、予測行動パターンデータを、シミュレートされた応答データに基づいて生成することを含む。製造システム内のプロセスステーションに対する設定値を初期化することにより実プロセスが開始される。この実プロセスは、深層学習プロセッサによって、実行動パターンデータを、少なくとも1つのプロセスステーションからの実プロセスデータに基づいて生成することを含む。深層学習プロセッサは、予測行動パターンを実行動パターンと比較する。この比較に基づいて、深層学習プロセッサは、製造システム内に異常な活動が存在すると決定する。異常な活動が存在することに基づいて、深層学習プロセッサは、警告プロトコルを開始する。
【特許請求の範囲】
【請求項1】
シミュレートされたプロセスを開始することであり、前記シミュレートされたプロセスは、
エミュレータによって、制御信号を、外部入力に基づいて生成すること、
シミュレータによって、前記制御信号を処理して、シミュレートされた応答データを生成すること、および
深層学習プロセッサによって、予測行動パターンデータを、前記シミュレートされた応答データに基づいて生成すること
を含む、前記開始することと、
製造システム内の少なくとも1つのプロセスステーションに対する設定値を初期化することにより実プロセスを開始することであり、前記実プロセスは、
前記深層学習プロセッサによって、実行動パターンデータを、前記少なくとも1つのプロセスステーションからの実プロセスデータに基づいて生成すること
を含む、前記開始することと、
前記深層学習プロセッサによって、前記予測行動パターンデータを前記実行動パターンデータと比較することと、
前記比較に基づいて、前記深層学習プロセッサによって、前記製造システム内に異常な活動が存在すると決定することと、
前記異常な活動が存在することに基づいて、前記深層学習プロセッサによって、警告プロトコルを開始することと
を含む方法。
【請求項2】
前記警告プロトコルに基づいて、前記深層学習プロセッサによって、前記実プロセスの制御を引き受けること
をさらに含む、請求項1に記載の方法。
【請求項3】
前記警告プロトコルを開始することは、
前記異常な活動の結果として危険にさらされている1つまたは複数のプロセスステーションを停止すること
含む、請求項1に記載の方法。
【請求項4】
前記警告プロトコルを開始することは、
前記異常な活動を特定する通知を生成すること、および
前記異常な活動を確認するために前記通知をオペレータに提供すること
を含む、請求項1に記載の方法。
【請求項5】
前記深層学習プロセッサによって、前記製造システム内に異常な活動が存在すると決定することは、
前記予測行動パターンデータと前記実行動パターンデータとの間の偏差を識別すること
を含む、請求項1に記載の方法。
【請求項6】
前記深層学習プロセッサによって、前記製造システム内に前記異常な活動が存在すると決定することは、
前記異常な活動の信頼度スコアを生成すること
を含む、請求項1に記載の方法。
【請求項7】
前記信頼度スコアは、前記異常な活動が悪意のある活動とみなされるのかどうかを示す、請求項5に記載の方法。
【請求項8】
前記シミュレートされたプロセスを開始することは、
前記エミュレータを外部源にインターフェースすることを含み、前記エミュレータは、前記外部源から、前記シミュレートされたプロセスのための前記外部入力を受信する、
請求項1に記載の方法。
【請求項9】
エミュレータと、
シミュレータと、
深層学習プロセッサと、
データ処理サーバとを備えるシステムであって、前記エミュレータ、シミュレータ、深層学習プロセッサおよびデータ処理サーバは動作を実行するように構成されており、前記動作は、
シミュレートされたプロセスを開始することであり、前記シミュレートされたプロセスは、
エミュレータによって、制御信号を、外部入力に基づいて生成すること、
シミュレータによって、前記制御信号を処理して、シミュレートされた応答データを生成すること、および
深層学習プロセッサによって、予測行動パターンデータを、前記シミュレートされた応答データに基づいて生成すること
を含む、前記開始することと、
製造システム内の少なくとも1つのプロセスステーションに対する設定値を初期化することにより実プロセスを開始することであり、前記実プロセスは、
前記深層学習プロセッサによって、実行動パターンデータを、前記少なくとも1つのプロセスステーションからの実プロセスデータに基づいて生成すること
を含む、前記開始することと、
前記深層学習プロセッサによって、前記予測行動パターンデータを前記実行動パターンデータと比較することと、
前記比較に基づいて、前記深層学習プロセッサによって、前記製造システム内に異常な活動が存在すると決定することと、
前記異常な活動が存在することに基づいて、前記深層学習プロセッサによって、警告プロトコルを開始することと
を含む、システム。
【請求項10】
前記動作は、
前記警告プロトコルに基づいて、前記深層学習プロセッサによって、前記実プロセスの制御を引き受けること
をさらに含む、請求項9に記載のシステム。
【請求項11】
前記警告プロトコルを開始することは、
前記異常な活動の結果として危険にさらされている1つまたは複数のプロセスステーションを停止すること
含む、請求項9に記載のシステム。
【請求項12】
前記警告プロトコルを開始することは、
前記異常な活動を特定する通知を生成すること、および
前記異常な活動を確認するために前記通知をオペレータに提供すること
を含む、請求項9に記載のシステム。
【請求項13】
前記深層学習プロセッサによって、前記製造システム内に異常な活動が存在すると決定することは、
前記予測行動パターンデータと前記実行動パターンデータとの間の偏差を識別すること
を含む、請求項9に記載のシステム。
【請求項14】
前記深層学習プロセッサによって、前記製造システム内に前記異常な活動が存在すると決定することは、
前記異常な活動の信頼度スコアを生成すること
を含む、請求項9に記載のシステム。
【請求項15】
前記信頼度スコアは、前記異常な活動が悪意のある活動とみなされるのかどうかを示す、請求項14に記載のシステム。
【請求項16】
前記シミュレートされたプロセスを開始することは、
前記エミュレータを外部源にインターフェースすることを含み、前記エミュレータは、前記外部源から、前記シミュレートされたプロセスのための前記外部入力を受信する、
請求項9に記載のシステム。
【請求項17】
命令の1つまたは複数のシーケンスを含み、プロセッサによって実行されたときに、コンピューティングシステムに動作を実行させる非一時的なコンピュータ可読媒体であって、前記動作は、
シミュレートされたプロセスを開始することであり、前記シミュレートされたプロセスは、
エミュレータによって、制御信号を、外部入力に基づいて生成すること、
シミュレータによって、前記制御信号を処理して、シミュレートされた応答データを生成すること、および
深層学習プロセッサによって、予測行動パターンデータを、前記シミュレートされた応答データに基づいて生成すること
を含む、前記開始することと、
製造システム内の少なくとも1つのプロセスステーションに対する設定値を初期化することにより実プロセスを開始することであり、前記実プロセスは、
前記深層学習プロセッサによって、実行動パターンデータを、前記少なくとも1つのプロセスステーションからの実プロセスデータに基づいて生成すること
を含む、前記開始することと、
前記深層学習プロセッサによって、前記予測行動パターンデータを前記実行動パターンデータと比較することと、
前記比較に基づいて、前記深層学習プロセッサによって、前記製造システム内に異常な活動が存在すると決定することと、
前記異常な活動が存在することに基づいて、前記深層学習プロセッサによって、警告プロトコルを開始することと
を含む、非一時的なコンピュータ可読媒体。
【請求項18】
前記警告プロトコルに基づいて、前記深層学習プロセッサによって、前記実プロセスの制御を引き受けること
をさらに含む、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記コンピューティングシステムによって、前記警告プロトコルを開始することは、
前記異常な活動の結果として危険にさらされている1つまたは複数のプロセスステーションを停止すること
含む、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記コンピューティングシステムによって、前記警告プロトコルを開始することは、
前記異常な活動を特定する通知を生成すること、および
前記異常な活動を確認するために前記通知をオペレータに提供すること
を含む、請求項17に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年9月15日出願の米国特許出願第17/447,767号の優先権を主張し、この出願は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、工場を標的としたマルウェア攻撃をうまく誘い込むため、およびそれらのマルウェア攻撃の行動を分析するために、工場制御システムを知的にエミュレートし、応答データをシミュレートするためのシステム、装置、および方法に関する。
【背景技術】
【0003】
工場に対するマルウェア攻撃は急増し、非常に巧妙になってきている。さらに、これらのマルウェア攻撃は、孤立した閉じたコンピュータネットワークだけでなく、外部ネットワーク(例えば、4Gや5Gネットワーク)に接続された機械にも侵入できることが多い。これらの攻撃の多くは、工場の物理的機器およびプロセスの動作を制御する工場制御システムを標的としたものであることが多い。本明細書で使用されるマルウェアとは、例えば、コンピュータ、サーバ、コントローラ、コンピュータネットワーク、コンピュータ制御機器、データ、最終出力の品質や歩留まりに損害、混乱、または不正なアクセスもしくは操作などを引き起こす任意のハードウェアまたはソフトウェアのことである。マルウェアには、コンピュータウイルス、ワーム、トロイの木馬、スパイウェア、バックドアなど、一般にコンピュータシステムに害を及ぼす可能性のある任意のプログラムまたはファイルが含まれ得る。マルウェアは、工場の制御システムを標的とするように、ならびに工場の物理的機器およびプロセスの動作に微妙な変化をもたらすように設計されており、このような微妙な変化は、従来の情報技術(IT)セキュリティソリューションや従来のプロセス制御システムを回避できることが多い。
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書では、いくつかの実施形態において、方法が開示される。シミュレートされたプロセスが開始される。このシミュレートされたプロセスは、エミュレータによって、制御信号を、外部入力に基づいて生成することを含む。このシミュレートされたプロセスはさらに、シミュレータによって、制御信号を処理して、シミュレートされた応答データを生成することを含む。このシミュレートされたプロセスはさらに、深層学習プロセッサによって、予測行動パターンデータを、シミュレートされた応答データに基づいて生成することを含む。製造システム内のプロセスステーションに対する設定値を初期化することにより実プロセスが開始される。この実プロセスは、深層学習プロセッサによって、実行動パターンデータを、少なくとも1つのプロセスステーションからの実プロセスデータに基づいて生成することを含む。深層学習プロセッサは、予測行動パターンを実行動パターンと比較する。この比較に基づいて、深層学習プロセッサは、製造システム内に異常な活動が存在すると決定する。異常な活動が存在することに基づいて、深層学習プロセッサは、警告プロトコルを開始する。
【0005】
本明細書では、いくつかの実施形態において、システムが開示される。このシステムは、エミュレータ、シミュレータ、深層学習プロセッサ、およびデータ処理サーバを含む。このエミュレータ、シミュレータ、深層学習プロセッサ、およびデータ処理サーバは、動作を実行するように構成されている。この動作は、シミュレートされたプロセスを開始することを含む。このシミュレートされたプロセスは、エミュレータによって、制御信号を、外部入力に基づいて生成することを含む。このシミュレートされたプロセスはさらに、シミュレータによって、制御信号を処理して、シミュレートされた応答データを生成することを含む。このシミュレートされたプロセスはさらに、深層学習プロセッサによって、予測行動パターンデータを、シミュレートされた応答データに基づいて生成することを含む。この動作はさらに、製造システム内のプロセスステーションに対する設定値を初期化することにより実プロセスを開始することを含む。この実プロセスは、実行動パターンデータを、少なくとも1つのプロセスステーションからの実プロセスデータに基づいて生成することを含む。この動作はさらに、深層学習プロセッサによって、予測行動パターンを実行動パターンと比較することを含む。この動作はさらに、この比較に基づいて、深層学習プロセッサによって、製造システム内に異常な活動が存在すると決定することを含む。この動作はさらに、異常な活動が存在することに基づいて、深層学習プロセッサによって、警告プロトコルを開始することを含む。
【0006】
本明細書では、いくつかの実施形態において、非一時的なコンピュータ可読媒体が開示される。この非一時的なコンピュータ可読媒体は、命令の1つまたは複数のシーケンスを含み、プロセッサによって実行されたときに、コンピューティングシステムに動作を実行させる。この動作は、シミュレートされたプロセスを開始することを含む。このシミュレートされたプロセスは、エミュレータによって、制御信号を、外部入力に基づいて生成することを含む。このシミュレートされたプロセスはさらに、シミュレータによって、制御信号を処理して、シミュレートされた応答データを生成することを含む。このシミュレートされたプロセスはさらに、深層学習プロセッサによって、予測行動パターンデータを、シミュレートされた応答データに基づいて生成することを含む。この動作はさらに、製造システム内のプロセスステーションに対する設定値を初期化することにより実プロセスを開始することを含む。この実プロセスは、実行動パターンデータを、少なくとも1つのプロセスステーションからの実プロセスデータに基づいて生成することを含む。この動作はさらに、深層学習プロセッサによって、予測行動パターンを実行動パターンと比較することを含む。この動作はさらに、この比較に基づいて、深層学習プロセッサによって、製造システム内に異常な活動が存在すると決定することを含む。この動作はさらに、異常な活動が存在することに基づいて、深層学習プロセッサによって、警告プロトコルを開始することを含む。
【0007】
上に挙げた本開示の特徴を詳細に理解することができるようにするため、そのうちのいくつかが添付図面に示されている実施形態を参照することにより、上に概要を簡単に示した本開示のより詳細な説明を得ることができる。しかしながら、添付図面は本開示の典型的な実施形態だけを示しており、したがって、添付図面を本開示の範囲を限定するものとみなすべきではないことに留意すべきである。これは、本開示が、等しく有効な他の実施形態を受け入れる可能性があるためである。
【図面の簡単な説明】
【0008】
【
図1】実施形態の例による、製造システム100を示すブロック図である。
【0009】
【
図2】実施形態の例による、機械学習モデルを調整し、プロセスシミュレータを作成するための方法200を、開示された主題のいくつかの実施形態に従って示す図である。
【0010】
【
図3】実施形態の例による、マルウェア攻撃を検出する方法を示す流れ図である。
【0011】
【
図4】実施形態の例による、例示的なデータロギングおよび出力モジュールを示す図である。
【0012】
【
図5】実施形態の例による、冗長PLCアーキテクチャを示すブロック図である。
【0013】
【
図6】実施形態の例による、マルウェア攻撃を検出する方法を示す流れ図である。
【0014】
【
図7】実施形態の例による、コンピューティングシステムアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0015】
理解を容易にするため、可能な場合には、図に共通の同一の要素を示すのに同一の参照符号を使用した。特段の記載なしに、1つの実施形態に開示された要素を他の実施形態で有益に利用することができることが企図される。
【0016】
本明細書に記載された実施形態は一般に、工場を標的としたマルウェア攻撃をうまく誘い込むため、およびそれらのマルウェア攻撃の行動を分析するために、工場制御システムを知的にエミュレートし、応答データをシミュレートするためのシステムおよび方法を対象とする。このような手法は2つのサブプロセス、すなわちシミュレートされたプロセスおよび実プロセスを含む。シミュレートされたプロセスからの出力と実プロセスからの出力を比較して、異常な活動または悪意のある活動が存在するかどうかを決定することができる。
【0017】
図1は、実施形態の例による、製造システム100を示すブロック図である、示されているように、製造システム100は、ステーションコントローラ120、プロセスステーション122、ステーションコントローラ140、プロセスステーション142、深層学習プロセッサ118、データ処理サーバ800、およびプロセスシミュレータ850を含むことができる。2つのプロセスステーション122、142が示されているが、製造プロセスを実行するように構成された任意の数(例えば、N個)のプロセスステーションを使用することができることを当業者は理解する。一般に、プロセスステーション122、142は、直列または並列に動作させることができる。
【0018】
プロセスステーション122は、製造プロセスのステップを実行するように構成されたものとすることができる。プロセスステーション122は、ステーションコントローラ120に結合されたものとすることができる。ステーションコントローラ120は、プロセスステーション122に対する設定値、アルゴリズム、初期入力および動作命令、システムおよびプロセスの更新、ならびに他の制御入力を管理するように構成されたものとすることができる。
【0019】
プロセスステーション142は、製造プロセスのステップを実行するように構成されたものとすることができる。例えば、プロセスステーション142は、プロセスステーション122の下流のプロセスステップを実行するように構成されたものとすることができる。プロセスステーション142は、ステーションコントローラ140に結合されたものとすることができる。ステーションコントローラ140は、プロセスステーション142に対する設定値、アルゴリズム、初期入力および動作命令、システムおよびプロセスの更新、ならびに他の制御入力を管理するように構成されたものとすることができる。
【0020】
データ処理サーバ800は、ネットワーク上の1つまたは複数のコンピュータを表わしていてもよい。データ処理サーバ800は、ステーションコントローラ120および140によって出力されたデータ(例えば、821、841)、ならびにプロセスステーション122もしくは142に結合されたまたはその中のセンサによって、または独立したセンサ127および137から生成されたデータを受信するように構成されたものとすることができる。データ出力には、以下のものが含まれるが、これらに限定されない。(i)製造プロセス中に生成されたデータ(例えば、物理的センサ、プロセスステーション構成要素、またはステーションコントローラ構成要素に結合されたデータログ)、(ii)各プロセスステーションまたはステーションコントローラによって受信または送信されたデータ、および(iii)個別または任意の数のプロセスステーションまたはステーションコントローラのデータ通信とデータ生成パターン(例えば、高いデータ量、低いデータ量、不規則なデータ量、時間帯、データの起源または目的に基づいて異常なデータ通信またはデータ生成)である。さらなる実施形態では、データ処理サーバ800は、全ての応答データを受信することができる。
【0021】
示されているように、製造システム100は、データ処理サーバ800からの出力信号820を分割するように構成された分割器194を含むことができる。例えば、データ処理サーバ800は、(出力信号820として示されている)プロセスステーション120への設定値、アルゴリズム、初期入力および動作命令、システムおよびプロセスの更新、ならびに他の制御入力を提供するように構成されたものとすることができる。分割器194は、出力信号820がプロセスステーション122に到達する前に出力信号を受信することができる。分割器194は、出力信号820を、第1の部分820aおよび第2の部分820bに分割することができる。出力信号820の第1の部分820aはプロセスステーション122に提供することができる。出力信号820の第2の部分820bはシミュレータ850に提供することができる。
【0022】
製造システム100はさらに、データ処理サーバ800からの出力信号840を分割するように構成された分割器195を含むことができる。例えば、データ処理サーバ800は、(出力信号840として示されている)ステーションコントローラ140への設定値、アルゴリズム、初期入力および動作命令、システムおよびプロセスの更新、ならびに他の制御入力を提供するように構成されたものとすることができる。分割器195は、出力信号840がプロセスステーション142に到達する前に出力信号を受信することができる。分割器195は、出力信号840を、第1の部分840aおよび第2の部分840bに分割することができる。出力信号840の第1の部分840aはプロセスステーション142に提供することができる。出力信号840の第2の部分840bはシミュレータ850に提供することができる。
【0023】
いくつかの実施形態では、データ出力は、深層学習プロセッサ118に提供され得る。他の実施形態では、深層学習プロセッサ118を分離するために、データ処理サーバは、深層学習プロセッサ118にいかなる入力も与えないことがある。いくつかの実施形態では、データ処理サーバ800は、遠隔の地理的位置で発生する関連する製造プロセスからデータを受信し、そのようなデータを深層学習プロセッサ118に提供することも可能である。さらなる実施形態では、工場が分析を行うために収集するデータ、および制御室などの分析データは、データ処理サーバ800によって収集され得る。
図1には、データ処理サーバ800への全てのデータ入力が示されているわけではない。
【0024】
汎用入力136、経験的事前分布139、関数的事前分布138、およびN個のステーション(例えば、122および142)のそれぞれからの値は、深層学習プロセッサ118に提供され得る。いくつかの実施形態では、任意の数の追加の深層学習プロセッサを使用し、深層学習プロセッサ118およびプロセスシミュレータを訓練するように構成することができる。いくつかの実施形態では、汎用入力136、経験的事前分布139、関数的事前分布138は、工場のP/E/Cシステムのプロセスコントローラおよび他の構成要素の空間的走査を含み得る。空間的走査は、回路板上に出ている製品識別番号の源および他の情報を提供することができ、空間的走査を、ボードログ(bios)からの情報と組み合わせることまたは相互参照することができる。
【0025】
本明細書で使用する関数的事前分布とは、製造プロセスにおける各プロセスステーションの機能性および既知の制限に関連する情報を個別におよび集合的に指すことがある。プロセスステーションで使用される機器、ならびに全ての製品モデルおよび識別情報の仕様は、全て関数的事前分布とされる。例えば、関数的事前分布は、スクリューが回転できる最小速度と最大速度を有するスクリュー駆動押出機、その加熱および冷却能力に基づいて達成可能な最大温度と最小温度を有する温度制御システム、爆発する前に収容できる最大圧力を有する圧力容器、燃焼する前に到達できる最大温度を有する可燃性液体を含み得るが、これらに限定されるわけではない。関数的事前分布には、製造プロセスの一部である個々のステーションがその機能を発揮する順序も含まれ得る。さらに、関数的事前分布には、正規のプロセス変動と正規のプロセスノイズを含めることができる。通常のプロセスの変動には、機械公差(例えば、温度制御の変動+/-1degC、コンベア速度の変動+/-0.1m/min、圧力の変動+/-3kPa)、原材料の変動、冷却水の温度変動、オペレータのミスによる変動が含まれ得、通常のプロセスノイズには、例えば、電気信号のジッターやデータ収集および記録における丸め誤差が含まれ得る。
【0026】
本明細書で使用される経験的事前分布とは、例えば、同じまたは類似の製造プロセスの実行;同じまたは類似のステーションの動作;同じまたは類似の中間/最終出力の生成;製造プロセスおよび解決策に対する最終出力における欠陥または不具合の根本原因分析による事前経験によって得られる情報を指し得る。経験的事前分布はまた、工場のシステムの全てからのログデータ、およびデータ処理サーバ800によって収集されたデータを含み得る。
【0027】
本明細書で使用する汎用入力とは、特定のプロセスステーションに固有のものではなく、製造プロセス全体の側面を示す値を指すことがあり、例えば、日付、時間帯、周囲温度、湿度、その他製造プロセスに影響を与える可能性のある環境条件、オペレータ、オペレータのスキルレベル、および誤差の可能性、プロセスで使用する原材料、原材料に固有の特性のうち色、粘性、粒子サイズなどの原材料仕様、原材料の特定のロット番号やコスト、各ステーション用の機器/ツールの保有期間、製造作業指示書番号、バッチ番号、ロット番号、完成品番号、完成品シリアル番号などの識別情報などである。
【0028】
関数的事前分布、経験的事前分布および汎用入力の各々について提供された例は、これらの例を分類する1つの方法を表しており、他の適切な分類が使用され得ることに留意されたい。例えば、深層学習プロセッサ118に提供される入力を分類する別の方法は、前プロセス入力(例えば、経験的事前分布、関数的事前分布、材料特性、スケジュール要件)、プロセス内入力(例えば、汎用入力、制御値、ステーション値、中間値、最終出力値、プロセス値)、後プロセス入力(例えば、製造性能指標および他の分析)であり得る。さらに、機能的および経験的事前分布を、製造プロセスを通じて動的に更新することができる。
【0029】
各プロセスステーションは、1つまたは複数の関連するステーションコントローラによって制御され得る(例えば、ステーションコントローラ120は、プロセスステーション122を制御し、ステーションコントローラ140は、プロセスステーション142を制御する)。一実施形態では、1つのステーションコントローラが複数のプロセスステーションを制御したり、または、1つのプロセスステーションに関連する複数の制御値を制御することができる。いくつかの実施形態において、深層学習プロセッサ118は、予測プロセス制御または予めプログラムされたアルゴリズムに基づく制御入力(126および146によって表される)を各プロセスステーションコントローラに提供することができる。予測プロセス制御は、「Predictive Process Control for a Manufacturing Process」と題する米国特許出願第16/663,245号、および「Method,Systems and Apparatus For Intelligently Emulating Factory Control Systems and Simulating Response Data」と題する米国特許出願第16/900,124号に記載されており、これらは、その全体が参照により本明細書に組み込まれる。他の実施形態では、深層学習プロセッサは、ステーションコントローラに対していかなる入力も提供しない。
【0030】
信号調整器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)を提供することが可能である。各ステーションは、中間出力値(例えば、124と144)を出力し、その中間出力値(それぞれ134aと144a)を有する。処理ステーションからの全ての中間出力値および最終出力値(例えば、プロセスステーション142がプロセスの最終プロセスステーションである場合、144)は、深層学習プロセッサ118に提供される。各ステーションはまた、深層学習プロセッサ118に提供され得るステーション値(例えば、128および148)を出力する。
図1はまた、中間出力124が、単一のステーションまたは任意の数の複数のステーションを表すことができる1つまたは複数の後続のステーションに送られる(ステップ150)ことを示している。
図1に示すように、ステーション142は、任意の数の先行ステーションから中間入力を受信することができる(ステップ160)。いくつかの実施形態では、ステーションコントローラ(例えば、コントローラ120および140)によって使用される設定値は、深層学習プロセッサ118に送信され得る。さらに、製造プロセスに関連する値は、独立したセンサ(例えば、独立したセンサ127および137)によって測定され、深層学習プロセッサ118に提供されることが可能である。
【0031】
プロセスシミュレータ850は、シミュレートされたプロセスを開始するように構成されたものとすることができる。例えば、プロセスシミュレータ850は、制御信号820の第2の部分820bを、分割器194を介してデータ処理サーバ800から受信することができる。同様に、プロセスシミュレータ850は、制御信号840の第2の部分840bを、分割器195を介してデータ処理サーバ800から受信することができる。制御信号820の第2の部分820bおよび/または制御信号840の第2の部分840bに基づいて、プロセスシミュレータ850は、シミュレートされたプロセスを開始することができる。
【0032】
プロセスシミュレータ850は、エミュレータ850aおよびシミュレータ850bを含むことができる。エミュレータ850aは、動作中にプロセスコントローラ(例えば、プロセスコントローラ120、140)によって生成される制御信号と類似の制御信号を生成またはエミュレートするように構成されたものとすることができる。エミュレータ850aは、通信860を介してシミュレータ850bと通信することができる。通信860を介して、エミュレータ850aは、エミュレートされた制御信号をシミュレータ850bに提供することができる。一般に、プロセスコントローラ120、140に提供される任意の入力をプロセスシミュレータ850にも提供することができる。
【0033】
シミュレータ850bは、エミュレータ850aによって生成された制御信号に基づいて製造プロセスをシミュレートするように構成されたものとすることができる。例えば、シミュレータ850bは、エミュレートされた制御信号に基づいて、シミュレートされた応答データを生成することができる。いくつかの実施形態では、シミュレータ850bは、シミュレートされた応答データを、通信860を介してエミュレータ850aに提供して、エミュレータ850aが、シミュレートされた応答データに基づいて、更新されたエミュレートされた制御信号を生成することができるようにすることができる。いくつかの実施形態では、さらなる分析のために、シミュレータ850bは、シミュレートされた応答データ(例えば、出力135)を深層学習プロセッサ118に提供することができる。
【0034】
深層学習プロセッサ118、ステーションコントローラ120、140、プロセスステーション122、142、データ処理サーバ800、およびプロセスシミュレータ850の間の通信は、1つまたは複数の他のデバイスと通信する能力、および/またはコンピュータネットワークとデータを取引する能力を提供する任意の適切な通信技術を使用できることが理解される。例として、実装された通信技術には、アナログ技術(例えば、リレーロジック)、デジタル技術(例えば、RS232、イーサネット、または無線)、ネットワーク技術、例えば、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、Bluetooth技術、近距離通信技術、安全RF技術、および/または他の任意の適切な通信技術を含み得るが、それだけに限られるわけではない。いくつかの実施形態では、深層学習プロセッサ118が任意のマルウェアに感染することから隔離するために、深層学習プロセッサ118は、任意のプロセスコントローラ、データ処理サーバ800、またはネットワークに接続された任意のコンピュータから任意の入力を受信しないことができる。いくつかの実施形態では、プロセスコントローラまたはデータ処理サーバ800からの入力は、深層学習プロセッサ118に手動で入力すること、またはメモリデバイス(例えば、サムドライブ)を介して、メモリデバイスがあらゆるマルウェアについてスクラブされた後に入力することができる。
【0035】
いくつかの実施形態では、オペレータ入力は、任意の適切な入力デバイス(例えば、キーボード、マウス、ジョイスティック、タッチ、タッチスクリーンなど)を使用して、深層学習プロセッサ118、および/またはステーションコントローラもしくはプロセスステーションのいずれかに通信され得る。
【0036】
図2は、例示的な実施形態による、機械学習モデルを調整(訓練)し、プロセスシミュレータ850を作成するための方法200を、開示された主題のいくつかの実施形態に従って提供する。方法200は、深層学習プロセッサ118を実装するように構成されたハードウェアおよび/またはソフトウェアを提供し得る制御システムまたは他のコンピューティングシステムによって実行されてもよい。いくつかの実施形態では、工場内の特定の機械またはプロセスに対して類似の方法を使用することができる。
【0037】
ステップ205において、製造プロセスにおける各ステーションコントローラの設定値、アルゴリズム、および他の制御入力は、従来の制御方法を使用して初期化され得る。さらに、制御アルゴリズム/オペレータは、初期制御またはステーション値を提供し得る。制御アルゴリズム、初期設定値、および初期制御またはステーション値は、深層学習プロセッサ118に提供され得る(ステップ215)。他の実施形態では、製造プロセスにおける各ステーションコントローラの設定値、アルゴリズム、および他の制御入力は、米国特許出願第16/663,245号「Predictive Process Control for a Manufacturing Process」に記載されているように、予測プロセス制御(ステップ245)を使用してステーションコントローラに提供することが可能である。ステーションコントローラに提供される制御値、制御アルゴリズム、設定値、およびその他の情報(例えば、プロセスタイミング、機器命令、アラーム警告、緊急停止)は、「ステーションコントローラ入力」または「制御入力」と総称することができることに留意されたい。さらに、関数的事前分布138、経験的事前分布139、および汎用入力136のような他の入力を深層学習プロセッサ118に提供することができる。
【0038】
ステップ210において、製造プロセスは、従来のプロセス制御方法または予測プロセス制御方法を用いて、所定の時間、および/または別の適切な条件(例えば、強固なデータセットの作成)に基づいて、全てのプロセスステーションを反復する。本明細書で説明するプロセスステーションは、直列または並列で動作させることができる。さらに、1つのステーションで、1つのプロセスステップを複数回(順次または非順次)実行したり、製造プロセスの1回の反復で異なるプロセスステップ(順次または非順次)を実行することができる。プロセスステーションは中間出力を生成し、最終ステーションであれば最終出力を生成する。中間出力は、最終出力が生成されるまで、製造プロセスの後続(下流)ステーションに送信される。さらなる実施形態では、最終出力用の構成要素の製造は、非同期かつ地理的に分散させることができる。つまり、最終出力用の構成要素は、いつでもどこでも製造可能であり、必ずしも構成要素を最終出力に組み立てるのに近接した時間や場所で製造する必要はない。例えば、自動車のヘッドライトは、そのヘッドライトを搭載した自動車が組み立てられる数カ月前に製造され得る。
【0039】
プロセスが各ステーションを通して反復するとき、以下のものに関連する全ての値が、:個々のステーション(例えば、制御値);個々のステーションの出力(例えば、ステーション値、中間/最終出力値、データ出力)、または複数のステーション(例えば、プロセス値)が測定または計算されて、深層学習プロセッサ118の機械学習モデルを調整するために深層学習プロセッサ118に提供される(ステップ226、227、228、229)。いくつかの実施形態では、従来の制御下の製造プロセスに関する製造性能指標(例えば、指定された期間の生産量、指定された期間の生産ダウンタイム、指定された期間または指定された数の最終出力に使用されるリソース、指定された期間の仕様にない製品の割合、特定のオペレータの生産量、指定された数の最終出力に関連する材料コスト)が計算され、深層学習プロセッサ118に提供され得る(ステップ229)。
【0040】
図示されていないが、プロセスステーションからの受信制御値または他の制御入力に応答してステーションコントローラによって取られる任意のアクション(またはステーションコントローラによって生成される任意の制御信号)が、深層学習プロセッサ118に提供され得る。このようなアクションには、温度や速度などを調整することが含まれ得る。
【0041】
深層学習プロセッサ118への全ての入力は、電子的に、またはオペレータによる手動的手段を介して入力することができることに留意されたい。さらに、これらの入力は、直接、またはメモリデバイスを介して間接的に提供することができ、データが深層学習プロセッサに提供される前に、あらゆるマルウェアについてメモリデバイスをスクラブすることができる。
【0042】
深層学習プロセッサ118の機械学習モデルの調整(例えば、ステップ242)は、教師なし学習法により実現することができる。深層学習プロセッサ118に入力される関数的事前分布138、経験的事前分布139、汎用入力136以外に、深層学習プロセッサ118は、製造プロセスの反復中(例えば、ステップ226、227、228、229)に収集する受信データを分析するだけで推論を描く。他の実施形態では、機械学習モデルの調整(ステップ242)は、教師あり学習方法、もしくは教師ありおよび教師なし方法の組み合わせ、または類似の機械学習方法を介して調整することができる。さらに、機械学習モデルの調整は、以下によって増強することができる:深層学習プロセッサ118に、シミュレーションデータまたは類似の製造プロセスからのデータを提供すること。一実施形態では、機械学習モデルは、深層学習プロセッサ118を類似の製造プロセスに実装し、ターゲット製造プロセスへの実装中に深層学習プロセッサを微調整することによって、調整され得る。すなわち、深層学習プロセッサ118の訓練は、深層学習プロセッサ118がターゲット製造環境に配備される前に実行される訓練プロセスを用いて実行することができる。
【0043】
図2に示すように、深層学習プロセッサ118は、機械学習(ML)モデルを採用する(ステップ235)。これらの機械学習モデルは、工場の操業および管理データを分析し(ステップ242)、製造プロセスがプロセスステーションを反復する際に生成される応答データに対して行動パターンデータを生成する(ステップ243)ことで調整が可能である。
【0044】
工場の操業および管理データ(ステップ242)には、以下のものを含めることができる。(i)設定値に対応する特定の制御値、(ii)識別されたプロセスステーションによって生成された他の制御値(およびそれらに対応する設定値)、(iii)識別された処理ステーションによって生成されたステーション値、(iv)識別された処理ステーションによって生成された中間出力値、(v)他のプロセスステーションによって生成される制御値(およびそれらに対応する設定値)、ステーション値、中間出力および最終出力、(vi)汎用入力、関数的事前分布、経験的事前分布、(vii)各処理ステーションに与えられる制御信号および他の命令、(viii)各ステーションコントローラへ与えられる制御入力、(ix)データ出力、(x)独立センサから受け取った工場の管理および操業に関連する測定値である。独立したセンサとは、通常の製造プロセスに含まれるセンサを越えて、測定を行うセンサを指すことがある。独立したセンサは通常の製造プロセスの一部ではないため、マルウェアの侵入から保護されていることが多い。いくつかの実施形態では、これらの独立したセンサは、単一の機械またはプロセスステップに直接結びついておらず、任意の機械またはプロセスステップ(例えば、製造プロセス中にランダムに測定を行うハンドヘルドデバイス)からの値を測定するために流動的に使用することが可能である。いくつかの実施形態では、独立したセンサは、深層学習プロセッサ118に加えて、またはその代わりに、その出力された値を結合されたモニタに提供することができる。モニタに排他的に提供される値は、いくつかの実施形態によれば、深層学習プロセッサ118に手動で入力することができる。
【0045】
応答データについて、単一のステーションについて、および複数のステーションにわたって、単一の時点または一定期間にわたって、行動パターンを生成すること(ステップ243)は、正の相関関係、負の相関関係、周波数、振幅、上昇傾向または下降傾向、各制御値またはステーション値についての変化率、識別応答データについて、識別応答データが変化すると影響を受けるまたは受けない他の応答データを識別することを含むことができる。応答データ225は、識別されたプロセスステーションの特定の設定値に関連する制御値だけでなく、以下のデータ型のうちの1つまたは複数を含む。(i)識別されたプロセスステーションに対する他の設定点に関連する制御値、(ii)識別されたプロセスステーションに関連するステーション値、(iii)識別されたプロセスステーションに関連する中間出力値、(iv)他のプロセスステーションに関連する制御値、(v)他のプロセスステーションに関連するステーション値、(vi)他のプロセスステーションに関連する中間出力値、(vii)最終出力値、(viii)データ出力、(ix)独立センサから受け取った工場の管理および操業に関連する測定値である。
【0046】
データは通常、所定の割合でセンサから収集されることに留意されたい。周波数分析では、この割合を考慮して適切に出力値を調整することで、出力値は、真の周波数割合を反映し、センサのデータ収集にかかる時間を含む割合を反映しないことに留意されたい。いくつかの実施形態では、周波数分析は、上昇または下降と短い安定期間の後に制御値の急激な変化を示すこともできる。安定期は、ほとんど検出できないほど短い可能性がある。これは攻撃の一例となり得る。制御値が上限または下限で安定する代わりに、許容上限または下限を超えて制御値を増加または減少させ続ける悪意のある信号を提供することができる。安定した直後に増減させることで、攻撃は正常で、制御値の事前の増減と一致するように見え得る。
【0047】
工場操業および管理データ(ステップ242)、生成された行動パターンデータ(ステップ243)および深層学習プロセッサへの他の入力の分析に基づいて、深層学習プロセッサ118が、その機械学習モデルをさらに調整するために、通常のプロセス変動および通常のプロセスノイズを決定することができる。通常のプロセスの変動には、機械公差(例えば、温度制御の変動+/-1degC、コンベア速度の変動+/-0.1m/min、圧力の変動+/-3kPa)、原材料の変動、冷却水の温度変動、オペレータのミスによる変動が含まれ得、および通常のプロセスノイズには、例えば、電気信号のジッターやデータ収集および記録における丸め誤差が含まれ得る。
【0048】
機械学習モデルの調整のための強固なデータセットを作成するために、各プロセスステーションの各制御値に対応する設定値(または他の制御入力)は、仕様通りの最終出力をもたらす全ての値(または値のサブセット)に対して、系統的に(例えば、最小値から最大値へ)調整することが可能である。さらなる実施形態において、各プロセスステーションの各制御値に対応する設定値(または他の制御入力)は、プロセスステーションが動作可能である全ての値(または値のサブセット)に対して、系統的に(例えば、最小値から最大値まで)調整され得る(すなわち、仕様通りの最終出力をもたらすものだけに限定しない、プロセスステーションが動作可能な値の全範囲を含む)。さらに、訓練のために、任意の数および任意の組み合わせの設定値を調整することができる(ステップ205)。設定値(または他の制御入力)は、手動、事前にプログラムされたアルゴリズム、または予測プロセス制御によって調整することができる。
【0049】
いくつかの実施形態では、1つまたは複数の設定値(または他の制御入力)は、たとえそれらの値が仕様通りではない最終出力をもたらすとしても、マルウェア攻撃とは無関係の既知の工場の混乱(例えば、機械の摩耗や破損、間違った部品の挿入)の間に発生する値に調整することが可能である。
【0050】
いくつかの実施形態において、深層学習プロセッサ118は、工場プロセスの操業および管理に関連する従来の標準的なプロセス制御システムと共に実装することができる。深層学習プロセッサ118は、工場プロセスの操業および管理に関連する全てのデータを使用する代わりに、工場プロセスの操業および管理に使用される任意の標準的なプロセス制御システムに提供される同じデータを使用して、その機械学習アルゴリズムを訓練することができる。
【0051】
各設定値調整または設定値調整のセット(ステップ205)について、製造プロセスは、設定値調整の所定のセットについて所定の時間期間、および/または規定されたイベントが発生したとき(例えば、所定の量の応答データが収集される)、プロセスステーションを反復し(ステップ210)、設定値(ステップ215)ならびに生成された応答データ225(例えば、ステーションおよび制御値)(ステップ228)、中間および最終出力値(ステップ227)、データ出力(ステップ226)、プロセス値および製造性能指標(ステップ229)を深層学習プロセッサ118に提供する。深層学習プロセッサ118は、製造プロセスがプロセスステーションを反復する際に受け取った異なる入力を、その機械学習モデルを調整する。
【0052】
方法200は、プロセスステーションを通して反復することを終了した後(例えば、所定の時間期間の後、所定の設定値調整のセットの後、および/または規定されたイベントが発生したとき(例えば、強固なデータセットが生成された))、次に、機械学習モデルの調整は完了したと考えることができ、工場の生産P/E/Cシステムからの応答データを正確に反映した応答データをシミュレートすることができるプロセスシミュレータ(ステップ244)を作成することができる。機械学習モデルを使用して、生産応答データを動的にシミュレートすることができるプロセスシミュレータ(例えば、プロセスシミュレータ850)を作成すると、そのインテリジェントハニーポット(intelligent honeypot)は工場生産システムであり、おとりではないと、巧妙なマルウェア攻撃をだます可能性がより高くなる。
【0053】
深層学習プロセッサ118は、その調整された機械学習モデルおよびプロセスシミュレータを用いて、インテリジェントハニーポットに配備すること(ステップ241)が可能である。インテリジェントハニーポットの例が
図3に示されている。いくつかの実施形態によれば、深層学習プロセッサ118はどの生産システムからも分離されており、あらゆるマルウェアをスクラブすることができ、インテリジェントハニーポットに組み込むことができる。他の実施形態では、インテリジェントハニーポットは独自の深層学習プロセッサを有し、あらゆるマルウェアをスクラブした調整された機械学習モデルおよび作成されたプロセスシミュレータのみが、インテリジェントハニーポットに含まれる深層学習プロセッサにアップロードされる。
【0054】
図3は、実施形態の例による、マルウェア攻撃を検出する方法300を示す流れ図である。方法300はステップ302から開始することができる。
【0055】
ステップ302において、コントローラエミュレータ850aおよびデータ処理サーバ800をネットワークインターフェースに接続することができる。このような接続は、コントローラエミュレータ850aおよびデータ処理サーバ800が、ネットワーク技術または他のデータサービスから外部入力を受信することを可能にすることができる。
【0056】
ステップ304において、シミュレートされたプロセスを開始する。例えば、所定の時間の間またはイベントが発生したときに、プロセスシミュレータ850を実行することができる。
【0057】
ステップ306において、エミュレータ850bは、プロセスシミュレータ850aに対する1つまたは複数の制御信号を出力することができる。いくつかの実施形態では、この1つまたは複数の制御信号を、ネットワーク技術または他のデータサービスからの入力に基づいて生成することができる。
【0058】
ステップ308において、プロセスシミュレータ850aは、エミュレータ850bからこの1つまたは複数の制御信号を受信することができる。この1つまたは複数の制御信号を使用して、シミュレータ850aは、制御値を含む応答データをシミュレートすることができる。シミュレータ850aは、制御値をエミュレータ850bに提供することができる。プロセスシミュレータ850aは、シミュレートされた応答データを深層学習プロセッサ118に提供することができる。
【0059】
ステップ310において、深層学習プロセッサ118は、深層学習プロセッサ118の調節された機械学習モデルを使用して、プロセスシミュレータからのシミュレートされた応答データを分析することができる。
【0060】
ステップ312において、深層学習プロセッサ118は、この分析に基づいて、予測行動パターンデータを生成することができる。例えば、深層学習プロセッサ118による工場操業および管理データの理解、ならびにそのようなデータと特定の制御信号との相関に基づいて、深層学習プロセッサ118は、受信したシミュレートされた応答データについて、予測行動パターンを予測することができる。
【0061】
ステップ302~312と並列に、製造システム100はステップ314~318を実行することができる。
【0062】
ステップ314において、実プロセスを開始することができる。いくつかの実施形態では、実プロセスを開始することは、各プロセスステーション(例えばプロセスステーション122、142)に対する設定値を初期化すること、およびそれらの設定値を深層学習プロセッサ118に提供することを含むことができる。いくつかの実施形態では、製造プロセスがプロセスステーションを反復するとき、プロセスステーションに送信される任意の制御信号、ステーションコントローラに提供される任意の制御入力、任意の調整された設定値は、全て深層学習プロセッサ118に提供される。
【0063】
ステップ316において、深層学習プロセッサ118は、実プロセスデータを全て処理することができる。例えば、上述のとおり、深層学習プロセッサ118は、設定値、制御信号、制御入力、調整された設定値などのうちの1つまたは複数を処理することができる。
【0064】
ステップ318において、深層学習プロセッサ118は、実プロセスデータに基づいて実行動パターンデータを生成することができる。実行動パターンデータは、受信した応答データに対して生成された行動パターンデータを指すことがあり、シミュレートされた応答データに基づく予測行動パターンデータとは区別される。
【0065】
ステップ320において、深層学習プロセッサ118は、予測行動パターンデータを実行動パターンデータと比較することができる。このような比較を実行して、異常な活動およびマルウェア攻撃を識別することができる。いくつかの実施形態では、深層学習プロセッサ118は、異常な活動および/またはマルウェア攻撃の信頼度を生成することができる。いくつかの実施形態では、信頼度は、予測に対する正確さの数値的な確率として表現されてもよく、他の態様では、信頼度は、区間または確率範囲として表現されてもよい。
【0066】
ステップ322において、深層学習プロセッサ118は、警告プロトコルを開始することができる。例えば、深層学習プロセッサは、正確さの数値的な確率に基づいて警告プロトコルを開始してもよい。このような正確さの数値的な確率は、異常な活動がマルウェア攻撃であることを示し得る。
【0067】
いくつかの実施形態では、オペレータまたはアルゴリズムは、異常な活動に関連する信頼度に閾値を割り当てることができ、さらに、生成された信頼度に基づいて異常な活動のタイプを決定することができる。異常な活動に対処するために、異常な活動のタイプに基づいて、1つまたは複数の動作(本明細書では「警告プロトコル」と呼ぶ)が実行され得る。例えば、高い信頼度スコアを受ける異常な活動では、深層学習プロセッサ118によって警告プロトコルが開始され得るのに対し、低い信頼度スコアを受ける異常な活動では、警告プロトコルが開始される前に異常な活動を確認するようにオペレータが促されることが可能である。いくつかの実施形態では、警告プロトコルは、データ処理サーバ800、プロセスコントローラ120および/またはプロセスコントローラ140のうちの1つまたは複数に通信されてもよい。いくつかの実施形態では、信頼度を高、中、低の3つの区間に分け、各区間に閾値を割り当てることができる。さらに、各区間に実行すべきアクションを割り当てることができる。例えば、信頼度が高い信頼区間に該当する場合は、警告プロトコルを開始することができ、信頼度が中程度の信頼区間に該当する場合は、オペレータに異常な活動を確認するように促すことができ、信頼度が低い信頼度区間に該当する場合は、異常な活動にフラグを立てて散発的にチェックすることができる。閾値と区間の範囲を確認し、偽陽性や偽陰性を最小にするように調整することができる。他の実施形態では、信頼度は2つ以上の区間に分割することができる。
【0068】
いくつかの実施形態では、異なる警告プロトコルを異なる区間に割り当てることができる。例えば、異常な活動が高い区間に対応する信頼度を有する場合、警告プロトコルは、危険にさらされている可能性がある関連する工場のP/E/Cシステム、または場合によってはインテリジェントハニーポットをシャットダウンするような強力なアクションを引き起こすことができる。一方、異常な活動が低い区間に対応する信頼度を有する場合、警告プロトコルは、レポート、電子メール、またはその他の通知を生成するなど、より穏やかなアクションをトリガすることができる。さらなる実施形態において、異なる警告プロトコルは、所定の信頼度閾値を満たす検出された異常の異なるタイプに割り当てられることが可能である。開始される警告プロトコルは、検出された異常な活動のタイプを補償または修正するために設計された一連のアクションとすることができる。例えば、検出された異常を補償するために、深層学習プロセッサ118は、データ処理サーバ800および/またはプロセスコントローラ120および/またはプロセスコントローラ140に新たな制御命令を提供することができる。いくつかの実施形態では、プロセスは、厳密な停止プロセスなしに、停止することもまたはオフにすることもできないことがある。このことを考慮するため、いくつかの実施形態では、深層学習プロセッサ118は製造プロセスを制御することができる。
【0069】
警告プロトコルは、機械的(例えば、サイレン、点滅する光または他のインジケータによって警告を合図する)、デジタル(例えば、レポートを印刷する、監督者に電子メールを送る、制御パネルに通知を行う)、機能的(例えば、プロセスシミラーまたはコントローラエミュレータ850aのいずれかまたは全てを停止する、プロセスシミュレータ850bまたはコントローラエミュレータ850aの設定を調整する)、または上記の任意の組み合わせとすることが可能である。警告プロトコルは、深層学習プロセッサ118によって開始され、コントローラエミュレータ850aに通信され、警告プロトコルを実行することが可能である。機能プロトコルは、コントローラエミュレータ850aとの通信(例えば、プロセスシミュレータ850への制御信号の送信)により実装することができる。プロトコルは、ステーションコントローラ、PLCなどの外部デバイスに通信されるTTLロジック、ラダーロジック、その他のプログラム可能なコマンドによって制御される個々のリレーのデジタル作動とすることができる。プロトコルとコマンド構造は、深層学習プロセッサ118に組み込まれている。深層学習プロセッサ118は、これらのいずれかを可能にするためのプログラミングを含むことができる。深層学習プロセッサ118への入力は、いくつかの実施形態において、キーボード入力による手動入力を介して、実行され得る。これにより、深層学習プロセッサ118の整合性を保つことができる。さらなる実施形態では、サムドライブやネットワーク接続によるなどのデジタル入力も可能である。
【0070】
さらに、深層学習プロセッサ118は、異常な活動がマルウェア攻撃であるかどうか、およびその識別のための信頼度を識別することができる。例えば、行動パターンデータが、応答データにおいて、予測行動データとは異なる、著しい、突然の、急激な、または予測外の変化を示した場合である。一実施形態では、深層学習プロセッサ118は、行動パターンデータが、マルウェア攻撃ではない既知の破壊的活動の行動パターンデータと一致するかどうかを分析することができる。いくつかの実施形態では、深層学習プロセッサ118は、製造プロセス中に生成されたデータ出力および/またはデータロギングモジュールからのデータを使用して、異常な活動が攻撃によって引き起こされたか、または他の何らかの障害(例えば、使用された材料に欠陥があった、不良構成要素が設置された)によって引き起こされたかを決定する。
【0071】
オペレータまたはアルゴリズムは、マルウェア攻撃であると識別された活動に関連する信頼レベルに閾値を割り当て、閾値が満たされたときに開始されるアクション(ここでは「警告プロトコル」と呼ぶ)を事前に規定することが可能である。例えば、高い信頼度スコアを受ける検出されたマルウェア攻撃については、深層学習プロセッサ118によって警告プロトコルが開始され、コントローラエミュレータに通信されて警告プロトコルが実行され得るが、低い信頼度スコアを受ける検出されたマルウェア攻撃については、警告プロトコルが開始される前に、オペレータは、検出されたマルウェア攻撃を確認するように促され得る。一実施形態では、信頼度を高、中、低の3つの区間に分け、各区間に閾値を割り当てることができる。他の実施形態では、信頼度は2つ以上の区間に分割することができる。さらに、各区間に実行すべきアクションを割り当てることができる。例えば、信頼度が高い信頼区間に該当する場合は警告プロトコルを開始し、信頼度が中程度の信頼区間に該当する場合は検出されたマルウェア攻撃を確認するようオペレータに促し、信頼度が低い信頼度区間に該当する場合は検出されたマルウェア攻撃にフラグを立て、散発的にチェックすることができる。閾値と区間の範囲を確認し、偽陽性や偽陰性を最小にするように調整することができる。
【0072】
いくつかの実施形態では、異なる警告プロトコルを異なる区間に割り当てることができる。例えば、検出されたマルウェア攻撃が高い区間に対応する信頼度を有する場合、警告プロトコルは、危険にさらされている可能性がある関連する工場のP/E/Cシステム、または場合によってはインテリジェントハニーポット自体をシャットダウンするような強力なアクションを引き起こすことができる。一方、検出されたマルウェア攻撃の信頼度が低い区間に相当する場合、警告プロトコルは、マルウェア攻撃を識別し、攻撃に対抗するための即時の修正動作を提案できるレポート、電子メール、その他の通知の生成など、より穏当なアクションを引き起こすことができる。さらなる実施形態において、異なる警告プロトコルは、所定の信頼度閾値を満たす検出されたマルウェア攻撃のタイプの異なるタイプに割り当てられ得、適切な警告プロトコルは、所定の信頼度を超えたとき、検出された攻撃について深層学習プロセッサ118によって開始される。警告プロトコルは、検出されたマルウェア攻撃のタイプを補正または修正するように設計された一連のアクションとすることができる。
【0073】
いくつかの実施形態では、深層学習プロセッサ118は、既存のITセキュリティシステムと通信して、異常な活動をシステムに通知を行うように構成され得る。さらなる実施形態では、深層学習プロセッサ118は、データロギングモジュールと通信するように構成され得る。この通信は、マルウェアの正確な攻撃源を特定する警告を提供するほか、工場のプロセスや機器をより良く守るためにファイアウォールやその他のITインフラを再設定するために利用することができる。いくつかの実施形態において、深層学習プロセッサ118は、工場の生産P/E/Cシステム内のコンピュータシステムと通信して、警告プロトコルを実行し、脆弱性または異常を修正し、識別されたマルウェア攻撃をそらし、もしくは無効にし、かつ/または工場の生産P/E/Cシステムのうちの1つまたは複数を停止するように構成され得る。例えば、深層学習プロセッサ118は、マルウェア攻撃を補償するために、プロセスコントローラ120および/またはプロセスコントローラ140の様々な設定値を変更するように構成され得る。
【0074】
図4は、実施形態の例による、例示的なデータロギングおよび出力モジュール410を示す。データロギングおよび出力モジュール410は、深層学習プロセッサ118およびデータ処理サーバ800からデータを受信し、そのデータを分析し、レポート、電子メール、警告、ログファイルまたは他のデータ編集物を生成する(ステップ415)ように構成され得る。例えば、データロギングモジュール410は、受信したデータから所定のトリガイベントを検索し、レポート、電子メール、警告、ログファイル、監視ダッシュボードへの更新、またはそれらのトリガイベントに関連する関連データを示す他のデータ編集物を生成するようにプログラムすることができる(ステップ415)。例えば、異常な活動の識別は、トリガイベントとして規定され、以下のデータが報告されることができる:予測行動パターンと比較した応答データの行動パターン、異常な活動によって影響を受けたステーション、コントローラまたはセンサ、トリガイベントを生成したセンサ、予測外の特定の応答データの識別、異常な活動が起こった日付と時間、トリガイベントに関連する信頼度、他のステーションと中間または最終出力に対する異常な活動の影響である。他の適切なトリガを規定し、他の適切なデータを報告することができる。いくつかの実施形態では、データロギングモジュール410は、深層学習プロセッサ118内に含まれ得る。いくつかの実施形態では、データロギングモジュールからのデータは、応答データの一部として、または警告プロトコルを開始するために、深層学習プロセッサ118に提供され得る。
【0075】
図5は、実施形態の例による、冗長PLCアーキテクチャ500を示すブロック図である。示されているように、アーキテクチャ500は、一組のPLC504(すなわちPLC
1、PLC
2、...、PLC
n)と通信するネットワーク技術またはデバイスドライブとのインターフェース(参照符号502)を含むものとすることができる。各PLC504はプロセスシミュレータ850と通信することができる。
【0076】
図6は、実施形態の例による、マルウェア攻撃を検出する方法を示す流れ図である。方法600はステップ602から開始することができる。
【0077】
ステップ602において、データ処理サーバ800は、分解器(decomposer)に制御信号(f(t))を発行することができる。
【0078】
ステップ604において、分解器は、出力に対してノイズn(t)を加算および減算することによって、変換された一対の信号を作成することができる。数学的に、これは、f+(t)=f(t)+n(t)およびf-(t)=f(t)-n(t)と表すことができる。分解器は、一対のPLCに対してf+(t)およびf-(t)を提供することができる。いくつかの実施形態では、分解器は、深層学習プロセッサ118に元の制御信号(f(t))を提供することができる。いくつかの実施形態ではn(t)=0である。いくつかの実施形態ではn(t)>0である。いくつかの実施形態ではn(t)<0である。
【0079】
ステップ606において、PLC1は、f+(t)信号を受信し、f+(t)信号に対する演算を実行することができる。ステップ608において、信号分割器は、f+(t)信号を分割することができる。
【0080】
同様に、ステップ610において、PLC2は、f-(t)信号を受信し、f-(t)信号に対する演算を実行することができる。ステップ612において、第2の信号分割器は、f-(t)信号を分割することができる。
【0081】
ステップ614において、積分器は、変換された一対のPLC信号を取得し、各信号を元の信号に復元することができる。いくつかの実施形態では、積分器は、信号を平均し、それによってそれぞれのノイズ項を相殺することによって、元の信号を復元することができる。数学的には、f(t)=[f+(t)+f-(t)]/2である。いくつかの実施形態では、積分器は、さらに、深層学習プロセッサ118に対する出力として、Δ(t)=f+(t)-f-(t)を生成することができる。
【0082】
ステップ616において、プロセスコントローラは、元のf(t)信号を受信し、元のf(t)信号に対して演算を実行することができる。
【0083】
ステップ618において、深層学習プロセッサ118は、f(t)、f+(t)、f-(t)およびΔ(t)のうちの1つまたは複数上のオペレータを受信することができる。適切な場合、深層学習プロセッサ118は警報を出すことができる。
【0084】
図7は、実施形態の例による、コンピューティングシステムアーキテクチャ700を示すブロック図である。いくつかの実施形態では、コンピューティングシステムアーキテクチャ700は深層学習プロセッサ118を表わしていてもよい。
【0085】
示されているように、コンピューティングシステムアーキテクチャ700は、処理ユニット(例えば、CPU(複数可)および/またはプロセッサ(複数可))710と、読み取り専用メモリ(ROM)720およびランダムアクセスメモリ(RAM)725などのシステムメモリ715を含む様々なシステム構成要素を処理ユニット710に結合するバス705とを含み得る。処理ユニット710は、1つまたは複数のプロセッサを含むことができる。いくつかの実施形態において、処理ユニット710は、深層学習プロセッサ118の動作を制御し、予測プロセス制御を実行するための特別に設計されたハードウェアとすることができる。本明細書に記載された様々な機械学習アルゴリズムおよび計算のとき。
【0086】
メモリ715は、メモリキャッシュ712のような、異なる性能特性を有する様々なメモリタイプを含むことができる。プロセッサ710は、記憶デバイス730に結合することができ、記憶デバイスは、1つまたは複数の機能モジュールおよび/またはデータベースシステムを実装するために必要なソフトウェアおよび命令を記憶するように構成することができる。これらのモジュールおよび/またはデータベースシステムのそれぞれは、プロセッサ710だけでなく、ソフトウェア命令が実際のプロセッサ設計に組み込まれる特殊用途プロセッサを制御するように構成することも可能である。
【0087】
深層学習プロセッサとのオペレータ対話を可能にするために、入力デバイス745は、音声用のマイクロフォン、ジェスチャーまたはグラフィック入力用のタッチセンサ式スクリーン、キーボード、マウス、動作入力など、任意の数の入力機構を表すことが可能である。出力デバイス735は、当業者に知られている多数の出力機構(例えば、プリンタ、モニタ)のうちの1つまたは複数であることも可能である。いくつかの例において、マルチモーダルシステムは、オペレータが深層学習プロセッサと通信するために複数のタイプの入力を提供することを可能にし得る。通信インターフェース740は、一般に、オペレータ入力およびシステム出力、ならびにステーションコントローラ、プロセスステーション、データロギングモジュール、および全ての関連するセンサおよび画像捕捉デバイスなどの製造プロセスの一部である他の構成要素から受信および送信される全ての電子入力を支配および管理することが可能である。任意の特定のハードウェア配置上での動作を制限するものではないので、ここにある基本機能は開発時に改善されたハードウェアまたはファームウェアの配置に簡単に置き換えることができる。深層学習プロセッサから出力されたデータは、視覚的に表示されるか、印刷されるか、またはファイル形式で生成されて記憶デバイス730に記憶されるか、またはさらなる処理のために他の構成要素に送信されることができる。
【0088】
通信インターフェース740は、インターフェースカード(「ラインカード」と呼ばれることもある)として提供することができる。一般的には、それらは、ネットワーク上のデータパケットの送受信を制御し、時にはルーターで使用される他の周辺機器をサポートすることもある。提供可能なインターフェースは、イーサネットインターフェース、フレームリレーインターフェース、ケーブルインターフェース、DSLインターフェース、トークンリングインターフェース等である。また、高速トークンリングインターフェース、無線インターフェース、イーサネットインターフェース、ギガビットイーサネットインターフェース、ATMインターフェース、HSSIインターフェース、POSインターフェース、FDDIインターフェースなど、様々な超高速インターフェースを提供することが可能である。一般に、これらのインターフェースは、適切な媒体との通信に適したポートを含むことができる。また、場合によっては、それらは、独立したプロセッサや、場合によっては、揮発性のRAMを含むこともある。独立したプロセッサは、パケット交換、媒体制御、管理などの通信集中タスクの制御を行うことができる。通信集中タスクに別々のプロセッサを用意することで、これらのインターフェースにより、処理ユニット710は機械学習や予測プロセス制御を実装するために必要な他の計算を効率的に実行できる。通信インターフェース740は、ステーションコントローラ、プロセスステーション、データロギングモジュール、および全ての関連するセンサおよび画像捕捉デバイスなどの製造プロセスの一部である他の構成要素と通信するように構成され得る。
【0089】
いくつかの実施形態では、深層学習プロセッサは、1つまたは複数の処理ステーションに結合され、中間および最終出力の画像を監視および捕捉することができる、ビデオカメラなどの様々な画像捕捉デバイスによって受信された画像を処理する画像処理デバイス770を含むことができる。これらの画像は、通信インターフェース740を介して深層学習プロセッサに送信され、画像処理デバイス770で処理され得る。画像は、中間および最終出力値を計算するために深層学習プロセッサによって使用され得る、欠陥の数およびタイプ、出力寸法、スループットなどのデータを提供するように処理され得る。いくつかの実施形態において、画像処理デバイスは、深層学習プロセッサの外部であり、通信インターフェース740を介して深層学習プロセッサに情報を提供することができる。
【0090】
記憶デバイス730は、非一時的メモリであり、ハードディスクまたはコンピュータによってアクセス可能なデータを記憶できる他のタイプのコンピュータ可読媒体、例えば磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)725、読み取り専用メモリ(ROM)720、およびそれらのハイブリットであることが可能である。
【0091】
実際には、記憶デバイス730は、深層学習プロセッサ118への入力データおよび深層学習プロセッサからの出力データ、例えば関数的事前分布、経験的事前分布、汎用入力、前処理入力、プロセス内入力および後プロセス入力を受信、記憶および更新するように構成され得る。
【0092】
いくつかの実施形態では、インテリジェントハニーポットが、入力を受信するために、(プロセスコントローラまたはコントローラエミュレータを介して)、ネットワーク技術、例えば、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、Bluetooth技術、近距離通信技術、安全RF技術、および/もしくは他の任意の適切な通信技術、またはデータデバイス(例えば、サムドライブ、フラッシュドライブ、USBドライブ)に接続することを可能にするインターフェースに通信インターフェースが結合されていることを除いて、深層学習プロセッサ118は、深層学習プロセッサ118に関して
図7に示された同じ構成要素を含み得る。このインターフェースは、インテリジェントハニーポットをマルウェア攻撃にさらし得る。さらに、通信インターフェースは、生産製造プロセス構成要素のいずれにも結合されていない。
【0093】
いくつかの実施形態において、任意の適切なコンピュータ可読媒体は、本明細書に記載される機能および/またはプロセスを実行するための命令を記憶するために使用することができる。例えば、いくつかの実施形態では、コンピュータ可読媒体は、一時的または非一時的であり得る。例えば、非一時的なコンピュータ可読媒体には、非一時的な磁気媒体(ハードディスク、フロッピーディスクなど)、非一時的な光学媒体(コンパクトディスク、デジタルビデオディスク、ブルーレイディスクなど)、非一時的な半導体媒体(フラッシュメモリ、電気的にプログラム可能な読み取り専用メモリ(EPROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)など)、一瞬ではなく、または送信中の永続性の類似性を欠いていない任意の適した媒体、および/または任意の適した有形媒体などの媒体が含まれ得る。別の例として、一時的なコンピュータ可読媒体は、ネットワーク上の信号、ワイヤ、導体、光ファイバ、回路内の信号、および一瞬で、送信中の永続性の類似性を欠いた任意の適切な媒体、および/または任意の適切な無形媒体を含むことができる。
【0094】
本明細書で説明する様々なシステム、方法、およびコンピュータ可読媒体は、クラウドネットワーク環境の一部として実装することができる。本明細書では、クラウドコンピューティングシステムとは、仮想化されたコンピューティングリソース、ソフトウェアおよび/または情報をクライアントデバイスに提供するシステムである。コンピューティングリソース、ソフトウェア、および/または情報は、エッジデバイスがネットワークなどの通信インターフェースを介してアクセスできる集中型のサービスおよびリソースを維持することによって、仮想化することができる。クラウドは、サービスとしてのソフトウェア(SaaS)(例えば、コラボレーションサービス、電子メールサービス、エンタープライズリソースプランニングサービス、コンテンツサービス、通信サービスなど)、サービスとしてのインフラストラクチャ(IaaS)(例えば、セキュリティサービス、ネットワーキングサービス、システム管理サービスなど)、サービスとしてのプラットフォーム(PaaS)(例えば、Webサービス、ストリーミングサービス、アプリケーション開発サービスなど)、およびサービスとしてのデスクトップ(DaaS)、サービスとしての情報技術管理(ITaaS)、サービスとしての管理されたソフトウェア(MSaaS)、サービスとしてのモバイルバックエンド(MBaaS)などの他のタイプのサービスなどのクラウド要素を介して様々なクラウドコンピューティングサービスを提供できる。
【0095】
本明細書に記載された例の提供(ならびに、「など」、「例えば」、「含む」等と表現された句)は、請求された主題を特定の例に限定するものと解釈すべきではなく、むしろ、例は、多くの可能な態様の一部のみを例示することを意図するものである。当業者であれば、機構という用語は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の適切な組み合わせを包含することができることを理解する。
【0096】
上記の説明から明らかなように特に別段の記載がない限り、本明細書を通じて、「決定」、「提供」、「識別」、「比較」などの用語を利用する説明は、コンピュータシステムのメモリまたはレジスタまたは他のそのような情報ストレージ、送信または表示デバイス内で物理的(電子)量として表されるデータを操作し変換するコンピュータシステムまたは同様の電子計算デバイスの作用および処理を指すことが理解されるであろう。本開示の特定の態様は、アルゴリズムの形態で本明細書に記載されるプロセスステップおよび命令を含む。本開示のプロセスステップおよび命令は、ソフトウェア、ファームウェアまたはハードウェアで具現化され得、ソフトウェアで具現化される場合、リアルタイムネットワークオペレーティングシステムによって使用される異なるプラットフォーム上に常駐し、そこから動作されるためにダウンロードされ得ることに留意されたい。
【0097】
本開示は、本明細書における動作を実行するための装置にも関する。この装置は、必要な目的のために特別に構成されてもよいし、コンピュータがアクセス可能なコンピュータ可読媒体に記憶されたコンピュータプログラムによって選択的に起動または再設定される汎用のコンピュータを含んでもよい。このようなコンピュータプログラムは、フロッピーディスク、光ディスク、CD-ROM、光磁気ディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気または光カード、特定用途向け集積回路(ASIC)、または電子命令の記憶に適した任意のタイプの非一時的なコンピュータ可読記憶媒体など(これらに限らない)に記憶することができる。さらに、本明細書で言及するコンピュータは、単一のプロセッサを含んでいてもよいし、計算能力を高めるために複数のプロセッサ設計を採用したアーキテクチャであってもよい。
【0098】
本明細書に提示されたアルゴリズムおよび動作は、特定のコンピュータまたは他の装置と本質的に関連するものではない。また、様々な汎用システムを本教示に従ったプログラムと共に使用することもできるし、必要な方法ステップやシステム関連動作を実行するために、より特殊な装置を構築することが便利であることが判明することもある。様々なこれらのシステムの必要な構造は、同等のバリエーションと共に当業者には明らかであろう。さらに、本開示は、特定のプログラミング言語を参照して説明されない。本明細書に記載される本開示の教示を実装するために様々なプログラミング言語が使用され得ることが理解され、特定の言語へのあらゆる言及は、本開示の実現可能性および最良の態様の開示のために提供されている。
【0099】
様々な実施形態の論理演算は、以下のように実装される。(1)汎用コンピュータ内のプログラム可能な回路上で実行されるコンピュータ実装ステップ、動作、または手順のシーケンス、(2)特定用途のプログラム可能な回路上で実行されるコンピュータ実装ステップ、動作、または手順のシーケンス、および/または(3)プログラム可能な回路内の相互接続した機械モジュールまたはプログラムエンジンとして、実装される。システムは、引用された方法の全てまたは一部を実践することができ、引用されたシステムの一部であることができ、および/または引用された非一時的なコンピュータ可読記憶媒体の命令に従って動作することができる。このような論理演算は、モジュールのプログラミングに従って特定の機能を実行するようにプロセッサを制御するように構成されたモジュールとして実装することができる。
【0100】
開示されたプロセスにおけるステップのいかなる特定の順序または階層も、例示的なアプローチの例示であることが理解される。設計の好みに応じて、プロセスのステップの特定の順序や階層を並べ替えたり、図示したステップの一部のみを実行することも可能であることを理解されたい。一部のステップは同時に実行されてもよい。例えば、特定の状況下では、マルチタスクや並列処理が有利になる場合がある。さらに、上述した実施形態における様々なシステム構成要素の分離は、全ての実施形態においてそのような分離を必要とすると理解されるべきではなく、説明したプログラム構成要素およびシステムは、一般に単一のソフトウェア製品に一緒に統合でき、または複数のソフトウェア製品にパッケージングできることが理解されるべきである。工場制御システムを知的にエミュレートし、応答データをシミュレートするための装置、方法、およびシステムについて、これらの図示された実施形態を具体的に参照しながら詳細に説明した。しかしながら、前述の明細書に記載された本開示の趣旨および範囲内で様々な修正および変更を行うことができることは明らかであり、かかる修正および変更は、本開示の同等物および一部とみなされるものとする。
【国際調査報告】