JP2021511590A - Protect your system from harmful communications - Google Patents
Protect your system from harmful communications Download PDFInfo
- Publication number
- JP2021511590A JP2021511590A JP2020539790A JP2020539790A JP2021511590A JP 2021511590 A JP2021511590 A JP 2021511590A JP 2020539790 A JP2020539790 A JP 2020539790A JP 2020539790 A JP2020539790 A JP 2020539790A JP 2021511590 A JP2021511590 A JP 2021511590A
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- computing device
- value
- data representation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims description 40
- 230000009931 harmful effect Effects 0.000 title description 8
- 230000002159 abnormal effect Effects 0.000 claims abstract description 39
- 230000009471 action Effects 0.000 claims abstract description 13
- 238000000034 method Methods 0.000 claims description 83
- 125000004122 cyclic group Chemical group 0.000 claims description 29
- 238000010801 machine learning Methods 0.000 claims description 29
- 238000012549 training Methods 0.000 claims description 17
- 230000002547 anomalous effect Effects 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000008569 process Effects 0.000 description 71
- 230000007704 transition Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000003909 pattern recognition Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000007257 malfunction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- -1 Ethernet Substances 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001687 destabilization Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1483—Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
幾つかの例において、コンピュータシステムは、少なくとも1つのコンピューティング装置によって制御された機器を含む制御システムからパケットデータを受信しうる。コンピュータシステムは、パケットデータに基づいてデータ表現を生成しうる。例えば、データ表現は、機器の状態又は設定の少なくとも一方を表しうる。コンピュータシステムは、データ表現に認識を実行して、パケット情報が正常状態を示すか異常状態を示すかを決定しうる。受信パケット情報が異常状態を示すという決定に基づいて、コンピュータシステムは、少なくとも1つのアクションを実行しうる。In some examples, a computer system may receive packet data from a control system that includes equipment controlled by at least one computing device. Computer systems can generate data representations based on packet data. For example, the data representation can represent at least one of the device states or settings. The computer system can perform recognition on the data representation to determine whether the packet information indicates a normal state or an abnormal state. Based on the determination that the received packet information indicates an abnormal condition, the computer system may perform at least one action.
Description
本開示は、コンピュータシステムセキュリティの技術分野に関する。 The present disclosure relates to the technical field of computer system security.
製造施設、工場、複合設備、発電所、交通システム、精製所、工業制御システム及び様々な他のオペレーショナルテクノロジ(OT)システムは、機器を望ましい方法で動作させるために依存されるコンピュータシステムによって制御されうる。OTシステムのセキュリティは、伝統的にスタンドアロン式のOT実装に依存してきた。しかしながら、最近では、OTシステムは、他のコンピュータシステム及びインターネットにリンクされるようになり、これによりセキュアなOTシステムの必要性が高まった。例えば、OTシステムは、有害、破壊的、あるいは機器の異常動作を引き起こしうる電子通信によってもたらされる攻撃又は他の不安定化にさらされうる。例えば、幾つかの例では、人や悪意あるコードなどの悪意ある行為者が、電子通信を使用して機器を誤動作させるか異常動作させうる。他の例では、機器の制御設定が、電子通信によって非意図的又は間違いで変更されることがあり、これも機器の望ましくない異常動作を引き起こしうる。 Manufacturing facilities, factories, complex facilities, power plants, transportation systems, refineries, industrial control systems and various other operational technology (OT) systems are controlled by computer systems that are relied on to operate the equipment in the desired way. sell. The security of OT systems has traditionally relied on stand-alone OT implementations. However, recently, OT systems have been linked to other computer systems and the Internet, which has increased the need for secure OT systems. For example, OT systems can be exposed to attacks or other destabilizations brought about by electronic communications that can cause harmful, destructive, or abnormal device operation. For example, in some examples, a person or a malicious actor, such as a malicious code, can use electronic communication to malfunction or malfunction the device. In another example, the control settings of the device may be changed unintentionally or by mistake by electronic communication, which can also cause undesired abnormal operation of the device.
本明細書の実施態様は、有害通信から制御システムを守るための機構及び技術を含む。幾つかの例において、コンピュータシステムは、制御システムから通信のパケットデータを受信しうる。制御システムは、少なくとも1つのコンピューティング装置によって制御された機器を含みうる。コンピュータシステムは、パケットデータに基づいてデータ表現を生成しうる。例えば、データ表現は、機器の状態又は設定の少なくとも1つを表しうる。コンピュータシステムは、データ表現に認識を実行して、パケット情報が正常状態を示すか異常状態を示すかを決定しうる。受信したパケット情報が異常状態を示すという決定に基づいて、コンピュータシステムは、少なくとも1つのアクションを実行しうる。 Embodiments herein include mechanisms and techniques for protecting control systems from harmful communications. In some examples, the computer system may receive packet data of communication from the control system. The control system may include equipment controlled by at least one computing device. Computer systems can generate data representations based on packet data. For example, the data representation may represent at least one of the device states or settings. The computer system can perform recognition on the data representation to determine whether the packet information indicates a normal state or an abnormal state. Based on the determination that the received packet information indicates an abnormal condition, the computer system may perform at least one action.
詳細な説明は、添付図面に関して説明される。図において、参照番号の左端の数字は、参照番号が最初に現われた図を示す。様々な図内の同じ参照番号の使用は、類似又は同一の項目又は特徴を示す。 A detailed description will be given with respect to the accompanying drawings. In the figure, the number at the left end of the reference number indicates the figure in which the reference number first appears. The use of the same reference number in various figures indicates similar or identical items or features.
本明細書の幾つかの実施態様は、機器、機械、工業制御ネットワーク又は他のオペレーショナルテクノロジ(OT)システムが、被制御システムの異常動作を引き起こしうる通信を受けるときに決定するシステムのための技術及び機構を対象とする。一例として、サービスコンピューティング装置は、ネットワークで送信されたパケットを検査することによって通信データのパターンを認識しうる。サービスコンピューティング装置は、通信データの認識結果に基づいてパケット(又は、その結果生じる機器の動作)が正常であるか異常であるかを決定しうる。例えば、サービスコンピューティング装置は、非標準プロトコルにより記述されOTシステムの制御ネットワークで送信されたパケットを分析することによって、通信データを正常か異常として分類できる。したがって、被制御システムによって使用されるプロトコルが未知の場合でも、本明細書の実施態様は、正常通信を、被制御システムを異常動作させうる有害通信と区別できる。 Some embodiments herein are techniques for systems that determine when an instrument, machine, industrial control network or other operational technology (OT) system receives communications that can cause anomalous operation of the controlled system. And the mechanism. As an example, a service computing device can recognize patterns of communication data by inspecting packets transmitted over a network. The service computing device can determine whether the packet (or the resulting operation of the device) is normal or abnormal based on the recognition result of the communication data. For example, a service computing device can classify communication data as normal or abnormal by analyzing packets described by non-standard protocols and transmitted over the control network of an OT system. Therefore, even if the protocol used by the controlled system is unknown, embodiments herein can distinguish normal communication from harmful communication that can cause the controlled system to malfunction.
幾つかの例は、サービスコンピューティング装置がパケットデータを受信し検査することによって通信データのパターンを認識するパターン認識システム及びプロセスを含む。一例として、パケットデータは、制御システムの制御ネットワーク内で送信されたパケットをミラーリングすることによって取得されうる。場合によっては、制御ネットワークは、ヒューマン・マシン・インタフェース(HMI)コンピューティング装置と、制御ネットワークを介して制御システム内の機器を制御する一次及び二次制御コンピューティング装置との間の一次及び二次回線を含みうる。 Some examples include pattern recognition systems and processes in which a service computing device recognizes patterns of communication data by receiving and inspecting packet data. As an example, packet data can be obtained by mirroring packets transmitted within the control network of the control system. In some cases, the control network is a primary and secondary control computing device between a human-machine interface (HMI) computing device and a primary and secondary control computing device that controls equipment in the control system via the control network. Can include lines.
サービスコンピューティング装置は、パケットデータからデータ表現を生成するように構成されうる。場合によって、データ表現は、時系列データをイメージ又はマトリクスフォーマットで表す時系列データブロックを含みうる。サービスコンピューティング装置は、機械制御のための機器設定値又は状態値の少なくとも1つを含むサイクリックパケットを監視するためにデータ表現を生成しうる。サービスコンピューティング装置は、更に、設定値を更新しうるテンポラリシーケンシャルパケットを監視するために、データ表現を生成するように構成されうる。サービスコンピューティング装置は、更に、パケットのペイロードデータから設定値、状態値又は動作値を抽出し、対応する機器の設定値、状態値及び/又は動作値の履歴値を含む対応する時系列データブロックを生成するように構成されうる。サービスコンピューティング装置は、更に、パターン認識プロセスを実行して、時系列データブロックを使用して通信データの1つ以上のパターンを認識するように構成されうる。サービスコンピューティング装置は、更に、認識結果を統計的に集約し、認識結果に基づいて認識パターンが正常か異常かに関する指示と共に認識パターンを表示しうるダッシュボードグラフィックユーザインタフェース(GUI)を描写し提示するように構成されうる。 A service computing device can be configured to generate a data representation from packet data. In some cases, the data representation may include time series data blocks that represent time series data in image or matrix format. The service computing device may generate a data representation to monitor cyclic packets containing at least one of a device set value or state value for machine control. The service computing device can also be configured to generate a data representation to monitor temporary sequential packets whose settings can be updated. The service computing device further extracts a set value, a state value, or an operation value from the payload data of the packet, and a corresponding time series data block including a set value, a state value, and / or a history value of the operation value of the corresponding device. Can be configured to generate. The service computing device can also be configured to perform a pattern recognition process and use time series data blocks to recognize one or more patterns of communication data. The service computing device also statistically aggregates the recognition results and renders and presents a dashboard graphic user interface (GUI) that can display the recognition patterns along with instructions on whether the recognition patterns are normal or abnormal based on the recognition results. Can be configured to.
本明細書の幾つかの実施態様は、被制御システムの制御ネットワーク内で送信されたパケットを分析することによって通信データの状態を監視するセキュリティシステム及び技術を提供する。例えば、本明細書のシステムは、OT制御システムに使用されうるプリミティブ及び/又は非標準化プロトコルによって記述されたパケットを分析できる。一例として、本明細書のシステムは、制御システムの制御コマンドを偽装する攻撃を検出できる。例えば、悪意ある行為者が、動作機器の制御値を変更する場合、従来のセキュリティ技術は、そのような変更を検出できないことがある。他方、本明細書のセキュリティシステム及び方法は、制御通信におけるパケットを分析し、パケットが被制御機器の望ましくない有害な又は異常な動作の原因になりうるかを決定できる。 Some embodiments of the present specification provide security systems and techniques for monitoring the state of communication data by analyzing packets transmitted within the control network of a controlled system. For example, the systems herein can analyze packets described by primitives and / or non-standardized protocols that can be used in OT control systems. As an example, the systems herein can detect attacks that spoof control commands in a control system. For example, if a malicious actor changes the control value of an operating device, conventional security techniques may not be able to detect such change. On the other hand, the security systems and methods herein can analyze packets in control communications to determine if the packets can cause unwanted harmful or anomalous behavior of the controlled device.
本明細書における幾つかの例では、コンピュータシステムは、人間機械インタフェースと機械制御コンピュータとを接続するネットターク内で送信されたパケットを分析することによって、通信データのパターンを認識しうる。コンピュータシステムは、機械制御コンピュータの状態値と設定値を監視するサイクリックパケットと、設定値を操作するシーケンシャルパケットとを監視しうる。コンピュータシステムは、パケットデータに基づいて機械制御コンピュータの状態値と設定値を表す履歴データからなる時系列データブロックなどの受信パケットデータのデータ表現を生成しうる。更に、コンピュータシステムは、各時系列データブロックのパターンを認識でき、時系列データを正常又は異常として分類しうる。更に、本明細書のコンピュータシステムは、時系列データブロックを対応パターンのパターン番号と共に記憶するトレーニングデータを含みうる。トレーニングデータは、時系列データブロックをパターンの番号と共に使用してディープラーニングを実行する機械学習モデルをトレーニングするために使用される。 In some examples herein, a computer system may recognize patterns of communication data by analyzing packets transmitted within a netturk that connects a human-machine interface to a machine-controlled computer. The computer system can monitor cyclic packets that monitor the state values and set values of the machine control computer and sequential packets that manipulate the set values. The computer system can generate a data representation of received packet data, such as a time-series data block, consisting of historical data representing the state and set values of a machine-controlled computer based on the packet data. Further, the computer system can recognize the pattern of each time series data block and can classify the time series data as normal or abnormal. Further, the computer system herein may include training data that stores time series data blocks along with the pattern numbers of the corresponding patterns. Training data is used to train machine learning models that perform deep learning using time series data blocks with pattern numbers.
幾つかの例では、時系列データブロックは、機械コントローラの履歴状態と設定値及び/又はシーケンシャルパケットの履歴到着をピクセルバンドとして表すイメージデータとして生成されうる。幾つかの例では、履歴データのピクセルバンドとは別に状態値と設定値の初期値と最終値を含む時系列データブロックが生成されうる。幾つかの例では、各種類の状態値と設定値を様々なチャネルを使用するデータブロックとして表す時系列データブロックが生成されうる。更に、幾つかの例では、状態値と設定値のそれぞれをイメージデータ内の様々な色を使用するピクセルとして表す時系列データブロックが生成されうる。場合によって、時系列データブロックを生成するとき、8ビットを超える状態値と設定値は、上位ビットの値と下位ビットの値に分割されてもよく、上位ビットを強調するために定数値を掛けた上位ビットの値を表す時系列データブロックが生成されうる。 In some examples, the time series data block can be generated as image data representing the historical state and set values of the machine controller and / or the historical arrival of sequential packets as pixel bands. In some examples, a time series data block containing initial and final values of state and set values may be generated separately from the pixel band of historical data. In some examples, time series data blocks can be generated that represent each type of state and set value as a data block that uses different channels. Further, in some examples, time series data blocks can be generated that represent each of the state and set values as pixels using different colors in the image data. In some cases, when generating a time series data block, state values and set values that exceed 8 bits may be divided into high-order bit values and low-order bit values, and multiplied by a constant value to emphasize the high-order bits. A time series data block representing the value of the high-order bit can be generated.
検討のため、幾つかの例示的な実施態様は、通信が被制御機器に適用されるべきでないパケットを含むかどうかを決定するコンピュータシステムの環境で示される。しかしながら、本明細書の実施態様は、本明細書の開示を鑑みて当業者に明らかなように、提供された特定の例に限定されず、他のタイプの機器及びシステム、他の使用環境、他のシステムアーキテクチャ、他のアプリケーションなどに拡張されうる。 For consideration, some exemplary embodiments are presented in the environment of a computer system that determines whether the communication contains packets that should not be applied to the controlled device. However, embodiments herein are not limited to the particular examples provided, as will be apparent to those skilled in the art in light of the disclosure herein, other types of equipment and systems, other operating environments, and the like. It can be extended to other system architectures, other applications, etc.
図1は、幾つかの実施態様による、異常動作を引き起こしうる通信を検出し管理できるコンピュータシステム100の例示的アーキテクチャを示す。システム100は、機器がコンピュータによって制御されるOT制御システム又は他の制御システムなど、機器制御システム104と通信できる少なくとも1つのサービスコンピューティング装置102を含む。例えば、サービスコンピューティング装置102は、1つ以上のネットワーク106によって接続されてもよく、ネットワーク106は、回線Aや回線Bなどの冗長通信回線を含みうる。幾つかの例では、1つ以上のネットワーク106は、ローカルエリアネットワーク(LAN)を含むことができ、他の例では、1つ以上のネットワーク106は、インターネットなどの広域ネットワーク(WAN)を含みうる。したがって、1つ以上のネットワーク106は、光ファイバ、イーサネット、ファイバチャネルを含む有線ネットワーク、セルラネットワークなどの無線ネットワーク、Wi−Fiなどのローカル無線ネットワーク、BLUETOOTH(登録商標)などの短距離無線通信、直接有線接続、又はこれらの任意の組み合わせを含みうる。したがって、1つ以上のネットワーク106は、有線及び/又は無線両方の通信技術を含みうる。そのような通信に使用される構成要素は、ネットワークの種類、選択された環境又はこれらの両方の少なくとも一部分に依存できる。
FIG. 1 illustrates an exemplary architecture of a
制御システム104は、更に、少なくとも1つの一次制御コンピューティング装置108と、場合によっては少なくとも1つの二次制御コンピューティング装置110を含む。示された例では、制御システム104は、複数対の一次コンピューティング装置108と二次コンピューティング装置、即ち、第1の一次制御コンピューティング装置108(1)と第1の二次制御コンピューティング装置110(1)を含む第1対から、第Nの一次制御コンピューティング装置108(N)と第Nの二次制御コンピューティング装置110(N)を含む第N対までを含み、これらの対はそれぞれ、制御アプリケーション112を実行できる。各対の一次コンピューティング装置108は、本明細書の他の場所で列挙されたようなOTシステム内の機器又は他の被制御機器などの1つ以上の機器114を制御する制御アプリケーション112を実行できる。更に、各対の二次制御コンピューティング装置110は、一次制御コンピューティング装置108に故障があった場合に冗長フォールバックシステムとして働く制御アプリケーション112を実行しうる。
The
示された例では、第1対の制御コンピューティング装置108(1)及び110(1)は、制御アプリケーション112を実行して、3つの機器、即ち機器A114(a)、機器B114(b)、機器C114(c)を制御する。更に、第N対の制御コンピューティング装置108(N)及び110(N)は、制御アプリケーション112を実行して、3つの機器(即ち、機器D114(d)、機器E114(e)、機器F114(f))を制御する。この例では、各機器114は、プロセスマネージャ116と、第1の機械118や第2の機械120などの1つ以上の機械を含む。したがって、機器A114(a)は、プロセスマネージャ116(a)、第1の機械118(a)及び第2の機械120(a)を含むことがあり、機器B114(b)は、プロセスマネージャ116(b)、第1の機械118(b)及び第2の機械120(b)を含むことがあり、機器C114(c)は、プロセスマネージャ116(c)、第1の機械118(c)及び第2の機械120(c)を含むことがあり、機器D114(d)は、プロセスマネージャ116(d)、第1の機械118(d)及び第2の機械120(d)を含むことがあり、機器E114(e)は、プロセスマネージャ116(e)、第1の機械118(e)及び第2の機械120(e)を含むことがあり、機器F114(f)は、プロセスマネージャ116(f)、第1の機械118(f)及び第2の機械120(f)を含むことがある。プロセスマネージャ116は、制御アプリケーション112から命令を受けてそれぞれの機器114の機械を制御するコンピューティング装置(組み込みプロセッサ、論理回路、他の処理装置など)でよい。あるいは、他の例では、プロセスマネージャ116が含まれなくてもよく、制御アプリケーション112は、制御信号を直接送信することなどによってそれぞれの機械118,120と直接通信しうる。
In the example shown, the first pair of control computing devices 108 (1) and 110 (1) execute the
更に、制御システム104は、アドミニストレータ、システムマネージャ、他のユーザなどの人によって使用されうる1つ以上の人間機械インタフェース(HMI)コンピューティング装置124を含みうる。HMIコンピューティング装置124は、制御システム104と関連機器114を監視しかつ/又は管理するための管理アプリケーション(管理プログラム126など)を実行しうる。したがって、HMIコンピューティング装置124、一次制御コンピューティング装置108、二次制御コンピューティング装置110、及び幾つかの例ではサービスコンピューティング装置102は、有線接続、無線接続又はこれらの組み合わせを使用して1つ以上のネットワーク106を介して通信できる。更に、幾つかの例では、一次制御コンピューティング装置108と二次制御コンピューティング装置110は、1つ以上のネットワーク106を介して、あるいは1つ以上の他のネットワーク、別個のLAN、直接接続などを介して機器114と通信しうる。更に、制御システム104の一例が図1の例に示されるが、本明細書の開示の恩恵を受ける当業者には多数の代替構成及び変形が明らかになる。したがって、本明細書の実施態様は、制御システム104の如何なる特定の構成にも限定されない。
Further, the
幾つかの実施態様では、サービスコンピューティング装置102は、任意の数の方法で実施されうる1つ以上のサーバ、パーソナルコンピュータ、又は他のタイプのコンピューティング装置を含みうる。例えば、サーバの場合、プログラム、他の機能要素、及びデータ記憶機構の少なくとも一部分が、スタンドアロンサーバ、サーバのクラスタ、サーバファーム又はデータセンタ、クラウドホストコンピュータサービスなど、少なくとも1つのサーバ上に実現されうるが、追加又は代替として他のコンピューターアーキテクチャも使用されうる。
In some embodiments, the
示された例では、サービスコンピューティング装置102は、1つ以上のプロセッサ130、1つ以上の通信インタフェース132、及び1つ以上のコンピュータ可読媒体134を含むかあるいはそれらと関連付けられうる。各プロセッサ130は、単一の処理ユニット又は幾つかの処理ユニットでよく、単一又は複数のコンピューティングユニット、或いは複数の処理コアを含みうる。プロセッサ130は、1つ以上の中央処理装置、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、状態機械、論理回路、及び/又は操作命令に基づいて信号を処理する任意の装置として実現されうる。例えば、プロセッサ130は、本明細書に記載されたアルゴリズムとプロセスを実行するように特にプログラム又は構成された任意の適切なタイプのうちの1つ以上のハードウェアプロセッサ及び/又は論理回路でよい。プロセッサ130は、コンピュータ可読媒体134に記憶されたコンピュータ可読命令をフェッチし実行するように構成されてもよく、この命令は、本明細書に記載された機能を実行するようにプロセッサ130をプログラムできる。
In the example shown, the
コンピュータ可読媒体134は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータなどの情報を記憶するための任意のタイプの技術で実現された揮発性及び不揮発性メモリ及び/又は取り外し可能及び取り外し不能媒体を含みうる。例えば、コンピュータ可読媒体134は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、光ストレージ、ソリッドステートストレージ、磁気テープ、磁気ディスクストレージ、RAIDストレージシステム、オブジェクトストレージシステム、ストレージアレイ、ネットワーク接続ストレージ、ストレージエリアネットワーク、クラウドストレージ、又は所望の情報を記憶するために使用できコンピューティング装置によってアクセスされうる他の媒体を含みうるがこれらに限定されない。サービスコンピューティング装置102の構成により、コンピュータ可読媒体134は、言及されるとき、非一時的コンピュータ可読媒体がエネルギー、キャリア信号、電磁波及び/又は信号自体などの媒体を除外するという点で、有形的な非一時的媒体でもよい。場合によって、コンピュータ可読媒体134が、サービスコンピューティング装置102と同じ位置でよいが、他の例では、コンピュータ可読媒体134は、サービスコンピューティング装置102から部分的に離れてもよい。
The computer-readable medium 134 is a volatile and non-volatile memory and / or removable and non-removable realized by any type of technology for storing information such as computer-readable instructions, data structures, program modules or other data. Can include media. For example, the computer readable medium 134 includes RAM, ROM, EEPROM, flash memory or other memory technology, optical storage, solid state storage, magnetic tape, magnetic disk storage, RAID storage system, object storage system, storage array, network connection storage. , Storage area networks, cloud storage, or other media that can be used to store desired information and can be accessed by computing devices, including but not limited to. Due to the configuration of the
コンピュータ可読媒体134は、プロセッサ130によって実行可能な任意数の機能要素を記憶するために使用されうる。多くの実施態様では、これらの機能要素は、プロセッサ130によって実行可能であり、実行されたとき、特に本明細書でサービスコンピューティング装置102によるアクションを実行するようにプロセッサ130をプログラムする実行命令及び/又はプログラムを含む。コンピュータ可読媒体134に記憶された機能要素は、セキュリティプログラム136を含みうる。セキュリティプログラム136は、本明細書に記載されたような様々なタスクをプロセッサ130に実行させるために実行可能な1つ以上のコンピュータプログラム、コンピュータ可読命令、実行可能コード又はその一部分を含みうる。示された例では、セキュリティプログラム136は、トレーニングデータ142を使用して1つ以上の機械学習モデル140を生成しトレーニングするために呼び出されうるモデル構築プログラム138を含むか、そのモデル構築プログラム138にアクセスできる。加えて、セキュリティプログラム136は、更に、後で更に考察されるように、シミュレータGUI146及び/又は時系列データデータ構造(DS)148を生成するように実行されうる。
The computer-readable medium 134 can be used to store any number of functional elements that can be executed by the processor 130. In many embodiments, these functional elements are executable by the processor 130, and when executed, an execution instruction and an execution instruction that programs the processor 130 to perform an action by the
モデル構築プログラム138は、セキュリティプログラム136の実行可能モジュール又はその一部分でよい。あるいは、他の例では、モデル構築プログラム138は、セキュリティプログラム136によって呼び出されうる個別に実行可能なスタンドアロンコンピュータプログラムでよい。モデル構築プログラム138は、機械118,120又はプロセスマネージャ116などの機器114の異常動作を引き起こしうるパケットの認識に使用される少なくとも1つの機械学習モデル140を構築しトレーニングするように1つ以上のプロセッサ130を構成しうる。次に、セキュリティプログラム136は、トレーニングされた機械学習モデル140を新しく受信したパケットに適用して、そのパケットが正常な動作条件又は異常な動作条件に対応するかを決定できる。
The model building program 138 may be an executable module of the security program 136 or a part thereof. Alternatively, in another example, the model building program 138 may be a separately executable stand-alone computer program that can be called by the security program 136. The model building program 138 is one or more processors to build and train at least one machine learning model 140 used to recognize packets that can cause anomalous operation of
更に、コンピュータ可読媒体134内の機能要素は、サービスコンピューティング装置102の各種機能を制御し管理しうるオペレーティングシステム(図1に示されない)を含みうる。場合によっては、機能要素は、コンピュータ可読媒体134の記憶部分に記憶され、コンピュータ可読媒体134のローカルメモリ部分にロードされ、1つ以上のプロセッサ130によって実行されうる。多数の他のソフトウェア及び/又はハードウェア構成は、本明細書の開示の恩恵を受ける当業者に明らかであろう。
Further, the functional elements in the computer-readable medium 134 may include an operating system (not shown in FIG. 1) capable of controlling and managing various functions of the
更に、コンピュータ可読媒体134は、本明細書に記載された機能とサービスを実行するために使用されるデータとデータ構造を記憶しうる。例えば、コンピュータ可読媒体134は、1つ以上の機械学習モデル140を記憶でき、また機械学習モデル140をトレーニングするために使用されるトレーニングデータ142を記憶できる。後で更に考察されるように、コンピュータ可読媒体134に記憶されうる追加のデータ及びデータ構造は、時系列データDS148、認識結果DS150、パターンDS152、及び変数フィールドDS154を含む。更に、コンピュータ可読媒体134は、機器114に関連した状態遷移情報を状態遷移情報DS158に記憶できる。状態遷移情報は、機器114に関連したドメイン情報と、認識結果150が正常状態に対応するか異常状態に対応するかを決定するために使用されうる機器114が動作する環境とを含みうる。
In addition, the computer-readable medium 134 may store data and data structures used to perform the functions and services described herein. For example, the computer-readable medium 134 can store one or more machine learning models 140 and can also store training data 142 used to train the machine learning model 140. As will be further discussed later, additional data and data structures that can be stored on the computer-readable medium 134 include time series data DS148, recognition result DS150, pattern DS152, and variable field DS154. Further, the computer-readable medium 134 can store the state transition information related to the
機械学習モデル140は、1つ以上の受信パケットが機器114の異常動作を引き起こす可能性があるかどうかを決定するためにセキュリティプログラム136によって使用されうる。機械学習モデル140の例には、ランダムフォレスト、サポートベクトルマシン、又は畳み込みニューラルネットワークなどの深層学習ネットワークなどの分類モデルが含まれうる。機械学習モデル140の追加の例には、予測モデル、決定樹、線形回帰モデルなどの回帰モデル、マルコフモデルや隠れマルコフモデルなどの確率的モデル、再帰型ニューラルネットワークなどの人工ニューラルネットワークなどが含まれうる。したがって、本明細書の実施態様は、特定のタイプの機械学習モデルに限定されない。
The machine learning model 140 can be used by the security program 136 to determine if one or more received packets can cause anomalous operation of the
サービスコンピューティング装置102は、更に、1つ以上の表示装置160を含むかその表示装置160と関連付けられうる。例えば、セキュリティプログラム136は、パターン情報を提示するためのシミュレータGUI146を表示装置160上に生成しうる。更に、セキュリティプログラム136は、認識結果及び任意の識別された異常パケットに関連した情報を提示するためのダッシュボードGUI162を表示装置160上に生成しうる。サービスコンピューティング装置102は、また、プログラム、ドライバなどを含みうる他の機能要素及びデータ、並びに機能要素によって使用又は生成されるデータを含むか維持しうる。更に、サービスコンピューティング装置102は、多くの他の論理要素、プログラム要素、及び物理構成要素を含むことができ、これらはそれぞれ、単に本明細書の考察に関連した例である。
The
通信インタフェース132は、1つ以上のネットワーク106などを介して様々な他の装置との通信を可能にするための1つ以上のインタフェース及びハードウェア構成要素を含みうる。したがって、通信インタフェース132は、ネットワーク106への接続を提供する1つ以上のポートを含んでもよく、それらのポートに結合されてもよい。例えば、通信インタフェース132は、LAN(ローカルエリアネットワーク)、WAN(広域ネットワーク)、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク(例えば、Wi−Fi)及び有線ネットワーク(例えば、光ファイバ、イーサネット、ファイバチャネル)のうちの1つ以上、直接接続、並びに後で更に列挙されるような、BLUETOOTH(登録商標)などの短距離無線通信による通信を可能にできる。
The communication interface 132 may include one or more interfaces and hardware components to allow communication with various other devices via one or
更に、HMIコンピューティング装置124、一次制御コンピューティング装置108、二次制御コンピューティング装置110、及び場合によってはプロセスマネージャ116が、前述されたものと類似の構成とハードウェアを含みうるが、管理プログラム126、制御アプリケーション112及び様々なデータなどの様々な機能要素はない。例えば、場合によって、HMIコンピューティング装置124は、サーバコンピューティング装置、デスクトップコンピューティング装置、ラップトップコンピューティング装置、タブレットコンピューティング装置、スマートフォンコンピューティング装置、ウェアラブルコンピューティング装置などを含む、ネットワークを介して通信できる任意のタイプのコンピューティング装置でよい。
Further, the HMI computing device 124, the primary
幾つかの例では、HMIコンピューティング装置124上で実行する管理プログラム126は、制御コンピューティング装置108,110によって制御された機器114の動作状態を監視しうる。例えば、制御アプリケーション112は、例えば機器114の設定値と状態値を含むサイクリング監視パケット(サイクリックパケット)170を、制御コンピューティング装置108及び110からそれぞれ回線A及び回線Bを介して、例えば、制御コンピューティング装置108及び110からそれぞれHMIコンピューティング装置124に周期的に送信するように構成されうる。幾つかの例では、サイクリックパケット170は、一定間隔で周期的に送信されうる。したがって、HMIコンピューティング装置124上の管理プログラム126は、サイクリックパケット170を受信し、サイクリックパケット170からの情報を表示装置(図1に示されない)上に提示して、HMIコンピューティング装置124を使用して機器114及び制御コンピューティング装置108及び/又は110の状態を監視できる。
In some examples, the management program 126 running on the HMI computing device 124 may monitor the operating state of the
幾つかの例では、一次制御コンピューティング装置108と二次制御コンピューティング装置110がそれぞれ、HMIコンピューティング装置124との通信に使用するそれ自体のIPアドレスを有しうる。一次制御コンピューティング装置108が正常に動作しているときは、二次制御コンピューティング装置110からHMIコンピューティング装置124によって受信されたサイクリックパケット170が廃棄されうる。他方、一次制御コンピューティング装置108が誤動作又は他のタイプの障害を起こしている場合、HMIコンピューティング装置124は、二次制御コンピューティング装置110のIPアドレスを通信に使用するように切り換えることなどによって、二次制御コンピューティング装置110からサイクリックパケット170を受信するように切り換わる。更に、そのような状況では、二次制御コンピューティング装置110は、一次制御コンピューティング装置108が制御していた機器114の制御を引き継いでもよく、サイクリックパケット170をそれぞれのHMIコンピューティング装置124に周期的に送信し続けてもよい。
In some examples, the primary
更に、管理プログラム126は、オペレータが命令をシーケンシャル動作パケット(シーケンシャルパケット)172によって一次制御コンピューティング装置108(又は、一次制御コンピューティング装置108が遮断されている場合は二次制御コンピューティング装置110)に送信することを可能にすることなどによって、機器114を手動で制御するために使用されうる。例えば、シーケンシャルパケット172は、機械118,120の一方など、1つ以上のターゲット機器114の動作値を設定又は変更するための命令を含みうる。制御コンピューティング装置108又は110は、シーケンシャルパケット172を受信し読み取り、次に対応する制御信号をターゲット機器114に送信してターゲット機器114の動作を変化させうる。
Further, in the management program 126, the operator issues an instruction to the primary control computing device 108 (or the secondary
サービスコンピューティング装置102上で実行するセキュリティプログラム136は、回線Aと回線Bの両方からの通信データをミラーリングするか種々の他の技術などによって、回線Aと回線Bからパケットデータ176を受信しうる。場合によって、受信パケットデータ176は、サイクリックパケット170とシーケンシャルパケット172の両方を含みうる。前述したように、制御コンピューティング装置108,110によって制御される機器114の設定値と状態値を監視するために使用されるサイクリックパケット170は、回線Aと回線Bを介して、例えば一定間隔で周期的に送信されうる。一例として、セキュリティプログラム136は、回線A又は回線Bのどちらかから最初に到着するパケットを受信し、回線A又は回線Bの他方から後に到着するパケットを廃棄できる。更に、ターゲット機器114の設定値の設定を指示するシーケンシャルパケット172は、回線A又は回線Bのどちらかを介して送信されうる。したがって、セキュリティプログラム136は、回線Aと回線Bの両方によって到着する全てのシーケンシャルパケット172を受信し検査しうる。
The security program 136 executed on the
前述されたように、セキュリティプログラム136がパケットデータ176を受信するとき、セキュリティプログラム136は、パケットデータ176からデータ表現を生成し、機械学習モデル140を使用してパケットのどれかが機器114の異常動作に対応する可能性があるかどうかを決定できる。セキュリティプログラム136によって実行されるプロセスの詳細は、例えば図2に関して更に後述される。制御システム104の異常動作に対応するパケットパターンに関する情報は、シミュレータGUI146によって指示及び/又は更新されうる。更に、セキュリティプログラム136によって決定された結果は、表示装置160上にダッシュボードGUI162で示されうる。
As mentioned above, when the security program 136 receives the packet data 176, the security program 136 generates a data representation from the packet data 176 and uses the machine learning model 140 to make one of the packets anomalous the
更に、幾つかの例において、セキュリティプログラム136は、パケットデータ176の分析結果に基づいて、1つ以上の動作又は他のアクションを実行しうる。幾つかの例では、パケットが機器114の異常動作を引き起こす可能性があることをセキュリティプログラム136が決定した場合、セキュリティプログラム136は、情報をHMIコンピューティング装置124に通信で送信して、管理プログラム126に、修正命令を追加のシーケンシャルパケット172として、影響を受けた制御コンピューティング装置108,110に送信させうる。別の例として、パケットが機器114の異常動作を引き起こす可能性があることをセキュリティプログラム136が決定した場合、セキュリティプログラム136は、制御コンピューティング装置108,110と直接通信して、制御コンピューティング装置に機器の1つ以上の動作パラメータを変更させて異常動作を修正させうる。更に、この例では、サービスコンピューティング装置102が、HMIコンピューティング装置124とは別個のコンピューティング装置であるように示されているが、他の例では、サービスコンピューティング装置102は、HMIコンピューティング装置124と同じコンピューティング装置でもよく、したがって、本明細書に記載されたセキュリティ機能は、HMIコンピューティング装置124によって実行されうる。
Further, in some examples, the security program 136 may perform one or more actions or other actions based on the analysis result of the packet data 176. In some examples, if the security program 136 determines that a packet can cause anomalous operation of the
図2、図5及び図12は、幾つかの実施態様による例示的プロセスを示す流れ図を含む。プロセスは、一連の動作を表すブロックの集合として論理流れ図で示され、その動作の幾つか又は全ては、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されうる。ソフトウェアの分脈で、ブロックは、1つ以上のプロセッサによって実行されたとき、列挙された動作を実行するようにプロセッサをプログラムする1つ以上のコンピュータ可読媒体に記憶されたコンピュータ実行命令を表しうる。一般に、コンピュータ実行命令は、特定の機能を実行するか特定のデータ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。ブロックが示された順序は、限定として解釈されるべきでない。任意の数の示されたブロックが、任意の順序に組み合わされかつ/又はプロセス若しくは代替プロセスの実施と並列に組み合わされてもよく、必ずしも全てのブロックが実行されなくてもよい。検討のため、プロセスは、本明細書の例で示された環境、フレームワーク及びシステムに関して言及されるが、プロセスは、種々様々な他の環境、フレームワーク及びシステムで実行されうる。 FIGS. 2, 5 and 12 include flow diagrams illustrating exemplary processes according to some embodiments. A process is shown in a logical flow diagram as a set of blocks representing a series of operations, some or all of which can be implemented in hardware, software, or a combination thereof. In a software shunt, a block may represent a computer execution instruction stored on one or more computer-readable media that, when executed by one or more processors, programs the processor to perform the listed operations. In general, computer execution instructions include routines, programs, objects, components, data structures, etc. that perform a particular function or implement a particular data type. The order in which the blocks are shown should not be construed as a limitation. Any number of indicated blocks may be combined in any order and / or in parallel with the execution of the process or alternative process, and not all blocks may necessarily be executed. For consideration, the process is referred to with respect to the environments, frameworks and systems set forth in the examples herein, but the process can be performed in a wide variety of other environments, frameworks and systems.
図2は、幾つかの実施態様による、機器の異常動作に対応するパケットを検出するための例示的プロセス200を示す流れ図である。プロセス200は、少なくとも部分的に、サービスコンピューティング装置102又は他の適切なコンピューティング装置上で実行するセキュリティプログラム136によって実行されうる。
FIG. 2 is a flow chart illustrating an
202で、セキュリティプログラムは、制御システム104からパケットデータ176を受信する。前述したように、パケットデータ176は、制御システム104からサービスコンピューティング装置102にミラーリングされうる。セキュリティプログラム136が制御システム104から受信するサイクリックパケットとシーケンシャルパケットのフォーマットは、図3に関して更に後述される。前述したように、セキュリティプログラムは、一次制御コンピューティング装置が正常に作動しているときは二次制御コンピューティング装置から受信したサイクリックパケットを廃棄しうる。
At 202, the security program receives packet data 176 from the
204で、セキュリティプログラムは、受信したパケットデータから、受信パケットデータのデータ表現として時系列データブロックを生成できる。時系列データブロックを生成するプロセスは更に後述される。幾つかの例では、セキュリティプログラム136は、更に後述されるように、時系列データブロックを生成するときに変数フィールドデータ構造154にアクセスしてピクセルなどの配置を決定できる。
At 204, the security program can generate a time series data block from the received packet data as a data representation of the received packet data. The process of generating time series data blocks will be further described later. In some examples, the security program 136 can access the variable
206で、セキュリティプログラムは、時系列データブロックを時系列データDS148に記憶し、時系列データブロックを認識のために提供しうる。 At 206, the security program may store the time series data blocks in the time series data DS148 and provide the time series data blocks for recognition.
208で、セキュリティプログラムは、機械学習モデル140を使用して、受信した時系列データブロック内のパターンを認識しうる。例えば、セキュリティプログラム136は、時系列データブロックのパターンを制御システムの正常又は異常動作を示すパターンに対応するように分類することによって、通信データのパターンをディープラーニングで認識するための機械学習モデル140を使用できる。場合によって、認識は、時系列データブロックを、パターンDS152に含まれる複数のパターンからの特定パターン番号と関連付けることを含みうる。 At 208, the security program can use the machine learning model 140 to recognize patterns in the received time series data blocks. For example, the security program 136 classifies the pattern of the time series data block so as to correspond to the pattern indicating the normal or abnormal operation of the control system, so that the machine learning model 140 for recognizing the pattern of the communication data by deep learning. Can be used. In some cases, recognition may include associating a time series data block with a particular pattern number from a plurality of patterns included in pattern DS152.
210で、セキュリティプログラムは、パターン認識の時系列結果を使用することによってパターン認識の結果を修正しうる。例えば、パターンが、現場の経験に従ってAからBに変更されBからCに変更されなければならないとき、認識パターンがAからDに変更されDからCに変更された場合は、DのパターンがCに修正される。 At 210, the security program can modify the pattern recognition results by using the pattern recognition time series results. For example, if the pattern has to be changed from A to B and from B to C according to field experience, and the recognition pattern is changed from A to D and from D to C, then the pattern of D is C. Is modified to.
212で、セキュリティプログラムは、時系列データブロックを関連パターン番号及び結果(又は、修正結果)と共にトレーニングデータ142に記憶しうる。この情報をトレーニングデータ142に追加することによって、トレーニングデータは常に更新されて、機械学習モデル140を周期的にリトレーニングし更新できる。 At 212, the security program may store time series data blocks in training data 142 along with related pattern numbers and results (or modification results). By adding this information to the training data 142, the training data is constantly updated and the machine learning model 140 can be periodically retrained and updated.
214で、セキュリティプログラムは、認識結果を認識結果データ構造150に記憶しうる。 At 214, the security program may store the recognition result in the recognition result data structure 150.
216で、セキュリティプログラムは、受信パケットデータ176に対応する動作が有害かあるいは機器の異常動作をもたらしうるかを決定しうる。例えば、セキュリティプログラム136は、認識結果を状態遷移情報DS158内の状態遷移情報と比較し、動作が悪意があるか、有害かあるいは異常かどうかを決定するための1組の論理規則を適用しうる。例えば、状態遷移情報は、機器の知識及び機器が動作する環境に基づいており、認識パターンの状態遷移情報を含みうる。 At 216, the security program may determine whether the operation corresponding to the received packet data 176 is harmful or can result in anomalous operation of the device. For example, the security program 136 may apply a set of logical rules for comparing the recognition result with the state transition information in the state transition information DS158 and determining whether the operation is malicious, harmful, or abnormal. .. For example, the state transition information is based on the knowledge of the device and the environment in which the device operates, and may include the state transition information of the recognition pattern.
218で、セキュリティプログラムは、ダッシュボードGUI162を、認識結果から、動作が有害であるかあるいは異常であるかに関する決定から、及びパターンデータ構造152から得られたパターン情報から生成及び提示できる。
At 218, the security program can generate and present the
220で、場合によって、セキュリティプログラムは、ダッシュボードGUI162を介して1つ以上の変更を受信できる。例えば、ユーザは、異常と分類された結果が実際には正常であるか又はその逆であることを決定しうる。したがって、ユーザは、ダッシュボード内の正常又は異常記号を変更し、セキュリティプログラム136は、それに応じてパターンDS152を更新しうる。
At 220, the security program may optionally receive one or more changes via the
222で、セキュリティプログラムは、ユーザ命令などに応じて、シミュレータGUI148を生成しうる。更に後述されるように、シミュレータGUI148は、パターンデータ構造152からのパターンデータを含みうる。224に示されたように、ユーザは、パターンをパターンDSに追加することなどによってパターンデータを変更しうる。
At 222, the security program can generate the simulator GUI 148 in response to a user instruction or the like. As will be further described later, the simulator GUI 148 may include pattern data from the
224で、セキュリティプログラムは、シミュレータGUI148を介して受信した追加パターンを受信し、追加パターンをパターンDSに記憶しうる。 At 224, the security program may receive the additional pattern received via the simulator GUI 148 and store the additional pattern in the pattern DS.
226で、セキュリティプログラムは、パターンDS152内のパターンを使用してシミュレートされた時系列データブロックを生成しうる。例えば、新しく受信したパターンを使用して、受信パケットデータ176に基づいて生成されたものに類似の時系列データブロックを生成できる。セキュリティプログラム136は、シミュレートされた時系列データブロックを構成するときに変数フィールドDS154にアクセスして、ピクセル位置などを決定できる。パターンDS152からのシミュレートされた時系列データブロック及び関連パターン番号が、トレーニングデータ142に追加されうる。 At 226, the security program may generate simulated time series data blocks using the patterns in pattern DS152. For example, the newly received pattern can be used to generate a time series data block similar to the one generated based on the received packet data 176. The security program 136 can access the variable field DS154 when constructing the simulated time series data block to determine the pixel position and the like. Simulated time series data blocks and related pattern numbers from pattern DS152 can be added to training data 142.
228で、幾つかの例では、イメージを分類するクラスタ化及び微分抽出などの従来の認識技術の認識結果に基づいて、セキュリティプログラムは、時系列データDS148内の時系列データブロックにパターン番号を付加して、パターン番号を有する時系列データブロックを生成しうる。パターン番号を有する時系列データブロックは、後で機械学習モデル140を更新するトレーニングデータ142の一部として使用されるトレーニングデータ142に追加されうる。 At 228, in some examples, based on the recognition results of conventional recognition techniques such as clustering and differential extraction to classify images, the security program adds pattern numbers to the time series data blocks in the time series data DS148. Then, a time series data block having a pattern number can be generated. The time series data block with the pattern number can be added to the training data 142 which will be used later as part of the training data 142 which updates the machine learning model 140.
230で、セキュリティプログラム136は、モデル構築プログラムを周期的に呼び出して機械学習モデル140をトレーニングしかつ/又は更新しうる。例えば、新しいトレーニングデータ142が蓄積されたとき、モデル構築プログラムは、機械学習モデル140をより最近のトレーニングデータ142でリトレーニングするために周期的に使用されうる。 At 230, the security program 136 may periodically call the model building program to train and / or update the machine learning model 140. For example, when new training data 142 is accumulated, the model building program can be used cyclically to retrain the machine learning model 140 with more recent training data 142.
図3Aは、幾つかの実施態様によるサイクリックパケット170の例示的なフォーマット300を示す。前述したように、サイクリックパケット170は、機械の状態値と設定値、及び制御コンピューティング装置によって制御されたプロセスマネージャの信号を監視するために使用されうる。サイクリックパケット170は、送信元IPアドレス(例えば、それぞれの制御コンピューティング装置のIPアドレス)を表すSIP302、宛先IPアドレス(例えば、HMIコンピューティング装置のIPアドレス)を表すDIP304、送信元ポート番号を表すSport306、宛先ポート番号を表すDport308、及びコマンド名309を含む。
FIG. 3A shows an
更に、サイクリックパケット170は、第1の機械310、第2の機械312,…,第Mの機械314、及び第1のプロセスマネージャ316,…,第Lのプロセスマネージャ318など、1つ以上の機械と1つ以上のプロセスマネージャの制御情報を含む。機械ごとに提供される情報は、状態値320、第1の設定値322、第2の設定値324及び第3の設定値326を含みうる。更に、プロセスマネージャごとに提供される情報は、第1の信号330、第2の信号332及び第3の信号334を含みうる。更に、図3Aに関して例示的なパケットフォーマット及び情報が示されるが、本明細書の開示の恩恵を受ける当業者には多数の他の変形が明らかであろう。
Further, the cyclic packet 170 may be one or more such as a first machine 310, a second machine 312 ..., a third machine 314, and a first process manager 316, ..., a third process manager 318. Contains control information for the machine and one or more process managers. The information provided for each machine may include a state value 320, a
図3Bは、幾つかの実施態様によるシーケンシャルパケット172の例示的フォーマット350を示す。前述したように、シーケンシャルパケット172は、機器内の機械の値を設定するために使用されうる。シーケンシャルパケット172は、この例では、例えば、機械設定及び/又はプロセスマネージャ信号設定の値を設定するために、機器を制御する制御コンピューティング装置のうちの1つに送信されうる制御情報を含む。シーケンシャルパケット172は、送信元IPアドレス(例えば、HMIコンピューティング装置のIPアドレス)を表すSIP302、宛先IPアドレス(例えば、それぞれの制御コンピューティング装置のIPアドレス)を表すDIP304、送信元ポート番号を表すSport306、宛先ポート番号を表すDport308、及びコマンド名305を含む。
FIG. 3B shows an
更に、シーケンシャルパケット172は、行われる書き込み又は読み取りを指示する書き込み/読み取り命令352を含みうる。更に、シーケンシャルパケット172は、機器のどの機械に対して値を書き込むか読み取るべきかを指示する機械インジケータ354、設定値番号を表す設定値番号356、及び新しい値を示す設定値358を含みうる。更に、シーケンシャルパケット172は、機器のどのプロセスマネージャに対して信号値を書き込むか読み取るべきかを示すプロセスマネージャインジケータ360、信号番号(例えば、幾つかの例では、1、2、又は3)を表す信号番号362、及びプロセスマネージャに適用される信号値を表す信号値364を含みうる。
Further, the
図4は、幾つかの実施態様によるデータ表現として例示的な時系列データブロック400を示す。幾つかの例では、時系列データブロック400は、図1と図2に関して前述されたように、セキュリティプログラムが制御システム104から受信するパケットデータを使用してセキュリティプログラム136(図4に示されない)によって生成されたデータ表現である。例えば、セキュリティプログラムは、サイクリックパケット170から抽出された設定値、状態値及び動作データを使用して時系列データブロック400を作成でき、これは、それぞれの制御コンピューティング装置によってそれぞれの機器114(図4に示されない)に適用される状態値と設定値を示しうる。更に、セキュリティプログラムは、シーケンシャルパケット172を使用して時系列データブロック400を作成でき、この時系列データブロック400は、制御コンピューティング装置によってそれぞれの機器内の機械又はプロセスマネージャに適用される値を示しうる。幾つかの例では、セキュリティプログラムは、図1と図2に関して前述され、図9に関して更に後述される変数フィールドデータ構造154に示された配置情報に従って時系列データブロック400を生成しうる。
FIG. 4 shows an exemplary time series data block 400 as a data representation according to some embodiments. In some examples, the time series data block 400 uses packet data received by the security program from the
示された例では、セキュリティプログラムは、受信パケット情報から時系列データブロック400を、複数のピクセルからなるイメージデータ402として生成する。したがって、この例では、時系列データブロック400は、受信パケット情報を表すイメージである。このイメージは、図1と図2に関して前述された認識プロセスで使用されうる。代替例では、受信パケットデータは、更に後述されるように、時系列データブロック400としてマトリクスとして表されうる。例えば、イメージは、高さが第1次元であり、幅が第2次元であり、RGB色が第3次元のマトリクスとして表され、サイズは3に制限される。場合によって、マトリクスは、第3次元で無制限のサイズを有しうる。他の変形は、本明細書の開示の恩恵を受ける当業者に明らかになる。
In the example shown, the security program generates a time series data block 400 from the received packet information as
図4の時系列データブロック400において、イメージデータ402は、時系列データブロック400の下404の方ほど古いデータを示し、時系列データブロック400の上406の方ほど新しいデータを示す。この順序は、他の例では逆にされもよく、又は別の代替案として、情報は、垂直方向ではなく水平方向に時間経過順に表されうる。更に、408で示されたように、時系列データブロック400は、各1ピクセルに対応する複数の時間間隔に垂直方向に分割され、1ピクセルの垂直間隔は1サイクルを表す。
In the time-series data block 400 of FIG. 4, the
時系列データブロック400は、例えば図3に関して前述された状態値320に対応する状態値の時系列データを表す第1のピクセルバンド410を含む。更に、第2のピクセルバンド412は、図3の設定値1 322の時系列データを表し、第3のピクセルバンド414は、図3の設定値2 324の時系列データを表しうる。更に、ピクセル420とピクセル422は、設定値2を操作するシーケンシャルパケットの到着を表し、ピクセル424とピクセル426は、設定値1を操作するシーケンシャルパケットの到着を表す。到着ピクセルごとに、対応するピクセルバンド上に遷移430が表されうる。状態値及び設定値1と2の時系列データを表すピクセルバンド410、412及び414はそれぞれ、1ピクセル以上の幅を有することができ、幾つかの例では、色付けされてもよく、パケットから抽出された値に対応する他のグラフィカル効果又はパターンを有してもよい。一例として、ピクセルバンド410、412及び414の幅はそれぞれ、状態値及び設定値1及び2のビット幅に対応しうる。この例では、図3の設定値3 326及び/又は信号1〜3 330〜334のピクセルバンドは、時系列データブロック400に含まれないが、他の例では、そのようなパラメータを含むパケットが受信される場合には含まれる。
The time-series data block 400 includes, for example, a
前述されたように、例えば、図2に関して、セキュリティプログラムは、パターン番号を時系列データブロック400に付加し、付加されたパターン番号を有する時系列データブロック400を、機械学習モデルをトレーニングするためにモデル構築プログラムによって使用されるトレーニングデータの一部として記憶しうる。セキュリティプログラムは、時系列データブロック400を機械学習モデルへの入力として使用して、時系列データブロック400内のパターンを認識しうる。一例として、機械学習モデルは、上に列挙されるように、他のタイプの機械学習モデルが使用されてもよいが、CNN(畳み込みニューラルネットワーク)などのディープラーニングアルゴリズムに基づいてもよい。 As mentioned above, for example, with respect to FIG. 2, the security program attaches a pattern number to the time series data block 400, and the time series data block 400 having the added pattern number is used to train the machine learning model. Can be stored as part of the training data used by the model building program. The security program can use the time series data block 400 as an input to the machine learning model to recognize the patterns in the time series data block 400. As an example, the machine learning model may be based on other types of machine learning models, as listed above, but may also be based on deep learning algorithms such as CNN (Convolutional Neural Network).
機械学習モデルを使用して時系列データブロック400内のパターンを認識することによって、セキュリティプログラムは、制御システム104内で送信された非標準化プロトコルのパケットを分析することによって通信データのパターンを認識できる。幾つかの例では、セキュリティプログラムは、パターンを認識するための時間を、それぞれの時系列データブロック400がシーケンシャルパケット172の到着を表すピクセルを含む時間に制限しうる。更に、セキュリティプログラムは、認識結果をパターンデータ構造152内の定義された正常又は異常動作の情報と突き合わせることによって通信データを機器の正常又は異常動作に対応するように分類する機械学習モデルの出力に基づいて、ダッシュボードGUIを分類情報と共に提示できる。
By recognizing patterns within the time series data block 400 using machine learning models, security programs can recognize patterns of communication data by analyzing packets of non-standardized protocols transmitted within
図5は、幾つかの実施態様により時系列データブロックを生成するための例示的プロセス500を示す流れ図である。幾つかの例において、プロセス500は、プロセス500に示された動作の少なくとも幾つかを行うためのセキュリティプログラム136を実行することによって、サービスコンピューティング装置102又は他の適切なコンピューティング装置の1つ以上のプロセッサによって実行されうる。
FIG. 5 is a flow diagram illustrating an
502で、セキュリティプログラムは、例えば図1と図2に関して前述されたように制御システム104からパケットを受信しうる。
At 502, the security program may receive packets from the
504で、セキュリティプログラムは、受信パケットがサイクリックパケットかシーケンシャルパケットかどうかを決定しうる。パケットがサイクリックパケットである場合、プロセスは506に進み、そうでない場合プロセスは514に進む。 At 504, the security program can determine whether the received packet is a cyclic packet or a sequential packet. If the packet is a cyclic packet, the process goes to 506, otherwise the process goes to 514.
506で、セキュリティプログラムは、サイクリックパケットが新しいサイクリックパケットかどうかを決定しうる。例えば、パケットがサイクリックパケットであるとき、パケットは、複数のパケットで構成されうる。したがって、セキュリティプログラムは、特定のサイクルのパケットが新しいかどうかを決定しうる。新しい場合、プロセスは508に進み、そうでない場合、プロセスは508を省略する。 At 506, the security program may determine if the cyclic packet is a new cyclic packet. For example, when a packet is a cyclic packet, the packet can consist of multiple packets. Therefore, the security program can determine if a packet of a particular cycle is new. If new, the process proceeds to 508, otherwise the process omits 508.
508で、セキュリティプログラムは、1つの行(1サイクル、即ち時間間隔に対応する)を時系列データブロックの一番下に追加しうる。 At 508, the security program may add one row (corresponding to one cycle, i.e., time interval) to the bottom of the time series data block.
510で、セキュリティプログラムは、パケットのペイロードから変数フィールドを抽出しうる。 At 510, the security program can extract variable fields from the payload of the packet.
512で、セキュリティプログラムは、抽出した値を、変数フィールドDS154を参照しながら、時系列データブロックの最上行内のプリセットフィールド(例えば、図9に関して後述される変数フィールドDS154内の列910に指定されたように)に追加しうる。例えば、変数フィールドDS154は、設定値又は状態値として抽出されなければならないパケットフィールドの場所を示しうる。
At 512, the security program specified the extracted values in a preset field in the top row of the time-series data block (eg,
514で、パケットが504のシーケンシャルパケットであると決定された場合、セキュリティプログラムは、パケットのペイロードから動作ターゲットのフィールドを抽出しうる。例えば、これは、図3Bに関して前述されたような宛先IPアドレス(DIP304)に基づいて決定されうる。 If 514 determines that the packet is a sequential packet of 504, the security program can extract the field of action target from the payload of the packet. For example, this can be determined based on the destination IP address (DIP304) as described above with respect to FIG. 3B.
516で、セキュリティプログラムが、到着通知を時系列データ構造の最上行内のプリセットフィールドに追加でき、同時に、変数フィールドデータ構造を参照して、設定値又は状態値として抽出すべきパケットフィールドの位置を決定できる。 At 516, the security program can add the arrival notification to the preset field in the top row of the time series data structure, and at the same time, refer to the variable field data structure to determine the position of the packet field to be extracted as a set value or state value. it can.
518で、時系列データブロック内の行数がしきい値を超えた場合、時系列データは、時系列データDS148に記憶され、時系列データの最下行が削除される。ステップ1104で1行を時系列データブロック401に追加するとき、時系列データブロックジェネレータ101が、時系列データブロック401の現在の最上行を新しい最上行として複製しうる。時系列データブロックジェネレータ101がパケットを受信しない場合、以前の行のデータが新しい行のデータとして使用される。
At 518, when the number of rows in the time series data block exceeds the threshold value, the time series data is stored in the time series data DS148, and the bottom row of the time series data is deleted. When adding one row to the time series data block 401 in
図6Aは、幾つかの実施態様による例示的な時系列データ600を示す。図6Aの例は、図4のピクセルバンド410〜414上の1つの垂直間隔(即ち、1サイクル)を生成する例を示す図であり、ピクセルバンド410〜414はそれぞれ、図4の時系列データブロック400内の状態値320、設定値1 322及び設定値2 324の時系列データを表す。例えば、フルカラーイメージデータの1ピクセルは、典型的には、合計24ビットのカラーデータの場合、赤、緑及び青の各色に8ビットのデータを有する。更に、グレースケールイメージデータの1ピクセルは、典型的には、輝度を表す8ビットのデータを有しうる。時系列データブロック400は、状態値320、設定値1及び設定値2の1つの垂直間隔をそれぞれ8ビットを超える幅を有するように表すために、複数ピクセルの図4のピクセルバンド410〜414の1つの垂直間隔を含みうる。
FIG. 6A shows exemplary
図6Aは、8ビットを超える状態値と設定値を上位ビットと下位ビットの値に分割し、定数値を掛けた上位ビットの値を表す時系列データブロックを生成することによって、状態値320、設定値1 322及び設定値2 324を幅8ビットを超える幅を有するように表す技術の一例を示す。この例では、パケットから抽出された初期値が、上位ビット602と下位8ビット604を含む2つの値に分割される。上位ビット602の値は、定数値(例えば、この例では8)を掛けて乗算上位ビット606の値を生成することによって強調されうる。乗算上位ビット606は、下位ビット604の値と組み合わされて複数ピクセル608を生成する。
FIG. 6A shows the state value 320, by dividing the state value and the set value exceeding 8 bits into the value of the upper bit and the value of the lower bit and generating a time series data block representing the value of the upper bit multiplied by the constant value. An example of a technique for expressing the
図6Bは、幾つかの実施態様による時系列データを生成する例620を示す。図6Aの例において、示された技術は、値が下位ビットの値から上位ビットの値に桁上げするときに下位ビットと上位ビット両方の値が小さい値になりうるので、特徴を表すのに十分でないことがある。したがって、特徴をはっきりと表すために、本明細書の幾つかの例は、上位ビットの値と下位ビットの値の桁上げ又は大小関係を表すピクセルを追加するプロセスを含みうる。図6Bのプロセスは、最初に、8ビットを超える状態値320並びに設定値322及び324を下位8ビット622の値と上位ビット624の別の値に分割することを含む。次に、下位8ビット622の値を表すピクセル626が直接生成されうる。更に、上位ビット624の値がゼロより大きいときに最大値(0xFF)になることによって桁上げを表すピクセル628が生成されてもよく、上位ビットの値が定数値より大きいときに上位ビットの値に定数値(即ち、この例では32)を掛けることによって大小関係を表すピクセル630、632及び634が生成されてもよい。最後に、このプロセスは、これらのピクセルを複数のピクセルデータ640に組み合わせる。次に、セキュリティプログラムは、複数のピクセルの幅として表されるピクセルバンド410、412及び414を生成しうる。したがって、セキュリティプログラムは、パターン認識の精度を高めるために上記プロセスを使用して生成された時系列データブロック400の特徴を強調しうる。
FIG. 6B shows Example 620 generating time series data according to some embodiments. In the example of FIG. 6A, the technique shown is to characterize because the values of both the low-order bit and the high-order bit can be small when the value is carried from the value of the low-order bit to the value of the high-order bit. It may not be enough. Therefore, to articulate the features, some examples herein may include the process of adding pixels that represent the carry or magnitude relationship between the value of the high-order bits and the value of the low-order bits. The process of FIG. 6B first involves splitting the state values 320 over 8 bits and the set values 322 and 324 into different values for the lower 8
図7Aは、幾つかの実施態様による例示的な時系列データブロック700を示す。図7Aの例は、時系列データブロック700内の特徴を強調する代替プロセスを含む。この例は、状態値320並びに/又は設定値322及び324の初期値と最終値を強調できる。この例では、時系列データブロック700は、時系列設定値1を表すピクセルバンド702と、時系列設定値2を表すピクセルバンド704とを含む。この場合、時系列データブロック700は、設定値1の初期値を表すピクセル706と、設定値2の初期値を表すピクセル708を含む。更に、時系列データブロック700は、設定値1の最終値を表すピクセル710と、設定値2の最終値を表すピクセル712とを含む。したがって、時系列データブロック700は、状態値320並びに/又は設定値322及び324の初期値と最終値を強調する。
FIG. 7A shows an exemplary time series data block 700 according to some embodiments. The example of FIG. 7A includes an alternative process that emphasizes features within the time series data block 700. This example can emphasize the initial and final values of the state values 320 and / or the set values 322 and 324. In this example, the time series data block 700 includes a
図7Bは、幾つかの実施態様による例示的なデータブロック720を示す。図7Bの例は、状態値並びに設定値1及び2それぞれのRGBのカラーデータのような異なるチャネルデータを使用して特徴を強調する代替プロセスを含む。この例では、時系列データブロック720は、個々のピクセルのデータの3つのチャネルとしてRGB(赤、緑、青)のような3種類のデータを有する。時系列データブロック720は、様々な種類のデータに様々なチャネルの組み合わせを使用してピクセルバンドを表す。例えば、時系列データブロック720は、時系列状態値を表すピクセルバンド722と、時系列設定値1を表すピクセルバンド724と、時系列設定値2を表すピクセルバンド726を含む。この場合、時系列状態値を表すピクセルバンド722が、カラーチャネル1(例えば、赤)を使用し、時系列設定値1を表すピクセルバンド724が、カラーチャネル2及び3(例えば、緑、青)を使用し、時系列設定値2を表すピクセルバンド726が、カラーチャネル2(例えば、緑)を使用しうる。したがって、時系列データブロック720は、各種類のデータ値によって特徴を強調し、これにより本明細書のパターン認識の精度が改善される。
FIG. 7B shows an exemplary data block 720 according to some embodiments. The example of FIG. 7B includes an alternative process of highlighting features using different channel data such as state values and RGB color data for each of the set values 1 and 2. In this example, the time series data block 720 has three types of data, such as RGB (red, green, blue), as the three channels of data for each pixel. The time series data block 720 uses different combinations of channels for different types of data to represent pixel bands. For example, the time-series data block 720 includes a
図8は、幾つかの実施態様による時系列データの例800を示す。この例では、セキュリティプログラムは、時系列データブロック内の状態値320並びに設定値322及び324の時系列データを表すピクセルバンドの1つの垂直(周期的)間隔を生成しうる。例えば、時系列データブロック410などの時系列データブロックは、値ごとに1バイトのデータに基づいて、状態値320及び/又は設定値322,324の1つの垂直(周期的)間隔を表す。例えば、状態値320並びに設定値322及び324がそれぞれ、4ビット(例えば、0xC)の値として表され、図8に示されたように、サイクリックパケット300のペイロード内で、0xCC 802や0xC0 804などの左揃え値として記述されたとき、左揃え値は、上位4ビット806、中位4ビット808及び下位4ビット810の3つの値に分割されうる。これらの3つの値はそれぞれ、定数値(この例では8など)が掛けられ、それぞれ0xC0 812、814及び816などの1バイトの3つの独立値として表されうる。セキュリティプログラムは、8ビット未満の各値を1バイトの独立値として表し、したがって、前述のプロセスを使用して時系列データブロックの特徴を強調でき、これにより、本明細書のパターン認識の精度が改善される。
FIG. 8 shows Example 800 of time series data according to some embodiments. In this example, the security program can generate one vertical (periodic) interval of pixel bands representing the time series data of the state values 320 and the set values 322 and 324 in the time series data block. For example, a time series data block, such as a time series data block 410, represents one vertical (periodic) interval of state values 320 and / or set values 322,324 based on 1 byte of data for each value. For example, the state value 320 and the set values 322 and 324 are represented as 4-bit (eg, 0xC) values, respectively, and as shown in FIG. 8,
図9は、幾つかの実施態様による例示的な変数フィールドデータ構造154を示す。変数フィールドデータ構造154は、機器の変数フィールドを指定するために使用され、イメージデータ又はマトリクスデータを表しうる。変数フィールドデータ構造154は、機器の識別子902と、それぞれの機器に含まれる機械904と、それぞれの機器に含まれるプロセスマネージャ906と、それぞれの機械とプロセスマネージャの値の型908と、それぞれの時系列データブロック内の左側からのピクセル(又は列)の位置910と、各値によるパケットペイロード内の左側からのバイト(又はパケット)の位置912とを含む。例えば、機器A114(a)は、機械118(a)、機械120(a)及びプロセスマネージャ116(a)を含み制御する。各機械118(a),120(a)は、状態値、設定値1〜4、設定値1〜2の動作値、及び別の動作値を含む。更に、プロセスマネージャ116(a)は、信号1〜3を含む。同様に、機器B114(b)は、機械118(b)、機械120(b)及びプロセスマネージャ116(b)を含み制御する。各機械118(b)及び120(b)は、状態値、設定値1〜4、設定値1〜2の動作値、及び別の動作値を含む。更に、プロセスマネージャ116(b)は、信号1〜3を含む。同様に、機器C114(c)は、機械118(c)、機械120(c)及びプロセスマネージャ116(c)を含み制御する。各機械118(c),120(c)は、状態値、設定値1〜4、設定値1〜2の動作値、及び別の動作値を含む。更に、プロセスマネージャ116(c)は、信号1〜3を含む。
FIG. 9 shows an exemplary variable
前述したように、変数フィールドデータ構造154の列910は、各時系列データブロックの最上行内のプリセットフィールド(ピクセル又は列)を示す。変数フィールドを指定する変数フィールドデータ構造154の情報は、図1と図2に関して前述されたシミュレータGUIによって変更可能でよい。変数フィールドデータ構造154に含まれる情報によって、セキュリティプログラムは、図9に示されたように、それぞれのパケット内の教示値の位置を決定し、変数フィールドを指定する情報を使用して時系列データブロックを生成できる。
As mentioned above,
図10は、幾つかの実施態様による例示的なパターンデータ構造(DS)152を示す。図10の例は、パターンDS152の例示的フォーマットを示し、このフォーマットは、パターン番号1002によるパターンのリストと、1004で示されたように、リストされたパターンごとの正常又は異常の情報を含む。更に、パターンDS152は、リストされた各パターンに示されたように、機械118,120又はプロセスマネージャ116に応じてリストされた各機器114による状態値、設定値1〜4、設定値1〜2の動作値、他の動作値及び/又は信号1〜3のアクション1006を含む。
FIG. 10 shows an exemplary pattern data structure (DS) 152 according to some embodiments. The example of FIG. 10 shows an exemplary format of pattern DS152, which contains a list of patterns by
アクション1006の情報1008は、指定値が増大するか減少するか、初期値、最終値、変更の初期及び最終サイクル、及び/又は値がどのように変化したかを含みうる。パターンDS152の情報は、図1と図2に関して前述したシミュレータGUI146に表示されうる。更に、パターンDS152の情報は、シミュレータGUIを介してユーザによって手動で変更又は追加されてもよく、かつ/又は実時系列データブロックに基づいて自動的に作成されてもよい。したがって、セキュリティプログラムは、ユーザが、シミュレータGUIを介してパターンテーブル又はファイル117の情報を手動で変更することによって、パターン1002ごとに「正常」又は「異常」1004の指定を変更することを可能にできる。セキュリティプログラムは、パターンDS152に記録されたパターンの情報によって指定されたように時系列データブロックを生成しうる。更に、モデル構築プログラムは、機械学習モデル140を、ランニングシミュレーションから得られたトレーニングデータの組み合わせ、パターンデータ構造152内のパターン、及び実際の動作環境から得られた情報に基づいて作成できる。
図11は、幾つかの実施態様による例示的なダッシュボードGUI162を示す。図11の例では、ダッシュボードGUI162は、現在認識されているパターン1104を表示する第1の表1102と、以前に認識されていた統計パターン1108を表示する第2の表1106とを含む。
FIG. 11 shows an
現在認識されているパターン1104を表示する第1の表1102は、現在認識されているパターンのパターン番号1110と、各機器A〜Cにより並びに対応する機械118,120及びプロセスマネージャ116ごとに、パターンが正常か異常かの指示1112とを表示する。以前に認識されていた統計パターン1108を表示する第2の表1106は、各パターンによって、パターン番号1120、動作パターン及び値1122、正常又は異常の指示1124、実現数1126、頻度1128、最近の時間1130、及び実際に検出されたパターン1108を含みうる。ユーザは、各パターンによる正常又は異常の表示を示す列1124によって特定のパターンの正常又は異常の指示を更新し、更新された情報は、パターンデータ構造に反映される。したがって、ダッシュボードGUI162は、ユーザが、実行後に正常又は異常の情報を手動で変更し、実現値などの統計情報を表示することを可能にする。
The first table 1102, which displays the currently recognized
図12は、幾つかの実施態様によるセキュリティプログラム136によって実行されうる例示的なプロセス1200を示す流れ図である。前述の例では、パケットデータを入力データとして使ってパターンを認識するシステムが開示される。図12の例によって示されたように、本明細書のシステム及びプロセスは、幾つかの例では、パケットデータ以外のデータを使用しうる。図12は、センサ、カメラ、マイクロフォン、記憶装置、情報技術装置、気象観測装置、医療記録などのデータ発生源1204から受信された時系列データ1202を使用してパターンを認識する流れを示す。この例では、ブロック202は、1206に概して示されたようにパケットデータの受信からデータの受信に変更される。他の状況では、異常データを認識する図12のプロセスは、一般に、図2に関して前述されたものと同じである。
FIG. 12 is a flow diagram illustrating an
本明細書に記載された例示的なプロセスは、検討のために提供されたプロセスの例に過ぎない。本明細書の開示を鑑みて多くの他の変形が当業者に明らかになる。更に、本明細書の開示は、プロセスを実行するのに適したシステム、アーキテクチャ及び環境の幾つかの例を示すが、本明細書の実施態様は、図示され検討された特定の例に限定されない。更に、この開示は、記述され図面に示されたような種々の例示的実施態様を提供する。しかしながら、この開示は、本明細書に記述され図示された実施態様に限定されず、当業者に知られるか知られることになるように、他の実施態様に拡張されうる。 The exemplary processes described herein are merely examples of the processes provided for review. Many other modifications will be apparent to those skilled in the art in light of the disclosure herein. Further, the disclosure herein provides some examples of systems, architectures and environments suitable for carrying out the process, but embodiments herein are not limited to the particular examples illustrated and discussed. .. In addition, this disclosure provides various exemplary embodiments as described and shown in the drawings. However, this disclosure is not limited to the embodiments described and illustrated herein, but may be extended to other embodiments as known or known to those of skill in the art.
本明細書に記述された種々の命令、プロセス及び技術は、本明細書においてコンピュータ可読媒体に記憶されプロセッサによって実行されるプログラムなどのコンピュータ実行命令の一般的状況で検討されうる。一般に、プログラムは、特定のタスクを実行するか特定の抽象データ型を実現するためのルーチン、モジュール、オブジェクト、コンポーネント、データ構造、実行可能コードなどを含む。これらのプログラムなどは、ネイティブコードとして実行されてもよく、仮想機械又は他のジャスト・イン・タイムコンパイル実行環境などでダウンロードされ実行されうる。典型的には、プログラムの機能は、種々の実施態様で必要に応じて組み合わされるか分散されうる。これらのプログラム及び技術の実現は、コンピュータ記憶媒体に記憶されてもよく、何らかの形態の通信媒体により伝送されてもよい。 The various instructions, processes and techniques described herein can be considered in the general context of computer-executed instructions, such as programs stored on computer-readable media and executed by a processor herein. In general, a program includes routines, modules, objects, components, data structures, executable code, etc. for performing a particular task or achieving a particular abstract data type. These programs and the like may be executed as native code, and may be downloaded and executed in a virtual machine or other just-in-time compilation execution environment. Typically, the functionality of the program can be combined or distributed as needed in various embodiments. The realization of these programs and techniques may be stored in a computer storage medium or transmitted by some form of communication medium.
内容を構造的特徴及び/又は方法論的行為に固有の言語で述べたが、添付の特許請求の範囲に定義された内容が、必ずしも述べた特定の特徴又は行為に限定されないことを理解されたい。より正確に言うと、特定の特徴及び行為は、特許請求の範囲を実現する例示的な形態として開示される。 Although the content has been described in a language specific to structural features and / or methodological acts, it should be understood that the content defined in the appended claims is not necessarily limited to the particular features or acts mentioned. More precisely, certain features and actions are disclosed as exemplary forms that realize the claims.
100 システム
102 サービスコンピューティング装置
106 回線
108 一次制御コンピューティング装置
110 二次制御コンピューティング装置
112 制御アプリケーション
114 機器
116 プロセスマネージャ
124 HMIコンピューティング装置
126 管理プログラム
130 プロセッサ
132 通信インタフェース
134 コンピュータ可読媒体
136 セキュリティプログラム
138 モデル構築プログラム
140 機械学習モデル
142 トレーニングデータ
146 シミュレータGUI
148 時系列データDS
150 認識結果DS
152 パターンDS
154 変数フィールドDS
158 状態遷移情報DS
160 表示装置
162 ダッシュボードGUI
170 サイクリックパケット
172 シーケンシャルパケット
176 パケットデータ
100
148 Time Series Data DS
150 Recognition result DS
152 pattern DS
154 Variable field DS
158 State transition information DS
170
Claims (15)
1つ以上のプロセッサと、
実行命令を維持する1つ以上の非一時的コンピュータ可読媒体とを備え、前記実行命令が、前記1つ以上のプロセッサによって実行されたとき、
少なくとも1つのコンピューティング装置によって制御された機器を含む制御システムからパケットデータを受信する操作と、
前記パケットデータに基づいて、前記機器の状態又は設定の少なくとも一方を表すデータ表現を生成する操作と、
前記データ表現の認識を実行して、前記パケット情報が正常状態を示すか異常状態を示すかを決定する操作と、
前記受信パケット情報が前記異常状態を示すという決定に基づいて、少なくとも1つのアクションを実行する操作と、含む操作を実行するように前記1つ以上のプロセッサを構成するシステム。 It ’s a system,
With one or more processors
When the execution instruction is executed by the one or more processors, the execution instruction is provided with one or more non-transitory computer-readable media for maintaining the execution instruction.
The operation of receiving packet data from a control system that includes equipment controlled by at least one computing device,
An operation of generating a data representation representing at least one of the state or settings of the device based on the packet data.
An operation of executing the recognition of the data representation to determine whether the packet information indicates a normal state or an abnormal state, and
A system that configures the one or more processors to perform an operation that executes at least one action and an operation that includes the operation based on the determination that the received packet information indicates the abnormal state.
前記パケットデータから抽出された機器設定値、又は、
前記パケットデータから抽出された機器状態値の少なくとも一方に基づいて定義される、請求項1に記載のシステム。 The operation further comprises an operation of generating the data representation as an image containing a plurality of pixels, wherein the plurality of pixels.
Device setting values extracted from the packet data, or
The system according to claim 1, which is defined based on at least one of the device state values extracted from the packet data.
前記以前に受信したデータパケットの複数のデータ表現に少なくとも部分的に基づいて機械学習モデルをトレーニングする操作を含み、前記複数のデータ表現が、前記正常状態又は前記異常状態の一方と関連付けられ、
前記データ表現に前記認識を実行する操作が、前記機械学習モデルを使用して前記データ表現のパターンが前記正常状態を示すか前記異常状態を示すかを決定する、請求項1に記載のシステム。 The above operation further
Including the operation of training a machine learning model based on a plurality of data representations of previously received data packets, the plurality of data representations are associated with either the normal state or the abnormal state.
The system according to claim 1, wherein the operation of performing the recognition on the data representation uses the machine learning model to determine whether the pattern of the data representation indicates the normal state or the abnormal state.
グラフィックユーザインタフェースを介して受信されたパターンに基づいて複数のシミュレートされたデータ表現を生成する操作と、
前記シミュレートされたデータ表現を、前記機械学習モデルをトレーニングするために使用される前記複数のデータ表現と共に含む操作とを含む、請求項5に記載のシステム。 The above operation further
Operations that generate multiple simulated data representations based on patterns received through the graphic user interface, and
The system of claim 5, wherein the simulated data representation comprises an operation that includes the simulated data representation along with the plurality of data representations used to train the machine learning model.
前記データ表現及び識別されたパターンの前記指示を記憶する操作と、
次に前記機械学習モデルをトレーニングするときに前記記憶されたデータ表現を前記複数のデータ表現と共に含む操作とを含む、請求項1に記載のシステム。 The above operation further
The operation of memorizing the data representation and the instruction of the identified pattern, and
The system according to claim 1, further comprising an operation that includes the stored data representation together with the plurality of data representations when training the machine learning model.
前記受信パケットデータが1つ以上の機器制御コンピューティング装置から周期的に受信されたサイクリックパケットに対応することを決定する操作と、
前記受信パケットデータが前記サイクリックパケットに対応するという決定に基づいて、前記パケットデータから抽出された値を前記データ表現の最後に追加し、以前に受信したパケットデータから抽出された値を前記データ表現の別の最後から除去する操作とを含む、請求項1に記載のシステム。 The above operation further
An operation that determines that the received packet data corresponds to a cyclic packet periodically received from one or more device control computing devices.
Based on the determination that the received packet data corresponds to the cyclic packet, the value extracted from the packet data is added to the end of the data representation, and the value extracted from the previously received packet data is added to the data. The system of claim 1, comprising an operation of removing from another end of the expression.
前記受信パケットデータが前記制御システム内の監視コンピューティング装置から受信されたシーケンシャルパケットに対応することを決定する操作と、
前記シーケンシャルパケットの到着通知を前記データ表現に追加する操作とを含む、請求項1に記載のシステム。 The above operation further
An operation that determines that the received packet data corresponds to a sequential packet received from a surveillance computing device in the control system.
The system according to claim 1, comprising an operation of adding an arrival notification of the sequential packet to the data representation.
前記機器の前記状態又は前記設定の一方に対応する、8ビットを超える値を抽出する操作と、
前記抽出された値を上位ビットの第1の値と下位ビットの第2の値に分割する操作と、
前記第1の値に定数を乗算する操作と、
前記乗算された第1の値と前記第2の値を有する前記データ表現を生成する操作とを含む、請求項1に記載のシステム。 The operation of generating a data representation representing at least one of the state or settings of the device based on the packet data further
An operation of extracting a value exceeding 8 bits corresponding to either the state of the device or the setting.
The operation of dividing the extracted value into the first value of the high-order bit and the second value of the low-order bit,
The operation of multiplying the first value by a constant and
The system of claim 1, comprising the operation of generating the data representation having the multiplied first value and the second value.
前記データ表現の認識パターンを、前記機器の前記状態又は前記機器の前記設定の少なくとも一方と関連付けられた正常又は異常の指示と共に表示するグラフィカルユーザインタフェースを提示する操作と、
前記グラフィカルユーザインタフェースを介して入力を受け取って、前記正常の指示を異常に変更するか前記異常の指示を正常に変更する操作と、
前記変更をパターンデータ構造内の前記認識パターンと関連付ける操作とを含む、請求項1に記載のシステム。 The above operation further
An operation of presenting a graphical user interface that displays a recognition pattern of the data representation with a normal or abnormal indication associated with the state of the device or at least one of the settings of the device.
An operation of receiving input via the graphical user interface and abnormally changing the normal instruction or normally changing the abnormal instruction.
The system of claim 1, comprising an operation of associating the change with the recognition pattern in the pattern data structure.
前記制御システムの動作を監視するコンピューティング装置に、前記検出された異常状態の指示を含む通信を送信する操作と、
制御コンピューティング装置に前記機器の設定を変更させる制御通信を前記制御コンピューティング装置に送信する操作との少なくとも一方を含む、請求項1に記載のシステム。 The operation that executes at least one of the actions is
An operation of transmitting a communication including an instruction of the detected abnormal state to a computing device that monitors the operation of the control system, and
The system according to claim 1, further comprising at least one of an operation of transmitting a control communication for causing the control computing device to change the setting of the device to the control computing device.
前記パケットデータに基づいて、前記機器の状態又は設定の少なくとも一方を表すデータ表現を生成するステップと、
前記データ表現に認識を実行して、前記パケット情報が正常状態を示すか異常状態を示すかを決定するステップと、
前記受信パケット情報が前記異常状態を示すという決定に基づいて、少なくとも1つのアクションを実行するステップとを含む方法。 A step of receiving packet data from a control system, including equipment controlled by at least one computing device, by one or more processors.
A step of generating a data representation that represents at least one of the device states or settings based on the packet data.
A step of performing recognition on the data representation to determine whether the packet information indicates a normal state or an abnormal state.
A method comprising the step of performing at least one action based on the determination that the received packet information indicates the abnormal condition.
少なくとも1つのコンピューティング装置によって制御された機器を含む制御システムからパケットデータを受信し、
前記パケットデータに基づいて、前記機器の状態又は設定の少なくとも一方を表すデータ表現を生成し、
前記データ表現に認識を実行して、前記パケット情報が正常状態を示すか異常状態を示すかを決定し、
前記受信パケット情報が前記異常状態を示すという決定に基づいて、少なくとも1つのアクションを実行するように、システムの前記1つ以上のプロセッサをプログラムする、1つ以上の非一時的コンピュータ可読媒体。 When an instruction is stored on one or more non-transitory computer-readable media and the instruction is executed by one or more processors.
Receive packet data from a control system that includes equipment controlled by at least one computing device.
Based on the packet data, a data representation representing at least one of the state or settings of the device is generated.
Recognition is performed on the data representation to determine whether the packet information indicates a normal state or an abnormal state.
One or more non-transitory computer-readable media that program the one or more processors in the system to perform at least one action based on the determination that the received packet information indicates the anomalous condition.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2018/014614 WO2019143365A1 (en) | 2018-01-22 | 2018-01-22 | Securing systems from harmful communications |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021511590A true JP2021511590A (en) | 2021-05-06 |
JP2021511590A5 JP2021511590A5 (en) | 2021-06-17 |
JP6996002B2 JP6996002B2 (en) | 2022-01-17 |
Family
ID=67302401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020539790A Active JP6996002B2 (en) | 2018-01-22 | 2018-01-22 | Protecting your system from harmful communications |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6996002B2 (en) |
WO (1) | WO2019143365A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781457A (en) * | 1994-03-08 | 1998-07-14 | Exponential Technology, Inc. | Merge/mask, rotate/shift, and boolean operations from two instruction sets executed in a vectored mux on a dual-ALU |
US6775804B1 (en) * | 2000-11-28 | 2004-08-10 | Nortel Networks Limited | Determining integrity of a packet |
US20160155098A1 (en) * | 2014-12-01 | 2016-06-02 | Uptake, LLC | Historical Health Metrics |
US20170193400A1 (en) * | 2015-12-31 | 2017-07-06 | Kla-Tencor Corporation | Accelerated training of a machine learning based model for semiconductor applications |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE518408C2 (en) * | 1996-04-19 | 2002-10-08 | Kvaser Consultant Ab | Method and apparatus for developing system protocols for control and / or control equipment |
US6437691B1 (en) * | 1999-01-09 | 2002-08-20 | Heat-Timer Corporation | Electronic message delivery system utilizable in the monitoring of remote equipment and method of same |
US8484250B2 (en) * | 2005-09-30 | 2013-07-09 | Rockwell Automation Technologies, Inc. | Data federation with industrial control systems |
US8949668B2 (en) * | 2011-05-23 | 2015-02-03 | The Boeing Company | Methods and systems for use in identifying abnormal behavior in a control system including independent comparisons to user policies and an event correlation model |
-
2018
- 2018-01-22 WO PCT/US2018/014614 patent/WO2019143365A1/en active Application Filing
- 2018-01-22 JP JP2020539790A patent/JP6996002B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781457A (en) * | 1994-03-08 | 1998-07-14 | Exponential Technology, Inc. | Merge/mask, rotate/shift, and boolean operations from two instruction sets executed in a vectored mux on a dual-ALU |
US6775804B1 (en) * | 2000-11-28 | 2004-08-10 | Nortel Networks Limited | Determining integrity of a packet |
US20160155098A1 (en) * | 2014-12-01 | 2016-06-02 | Uptake, LLC | Historical Health Metrics |
US20170193400A1 (en) * | 2015-12-31 | 2017-07-06 | Kla-Tencor Corporation | Accelerated training of a machine learning based model for semiconductor applications |
Also Published As
Publication number | Publication date |
---|---|
WO2019143365A1 (en) | 2019-07-25 |
JP6996002B2 (en) | 2022-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11570070B2 (en) | Network device classification apparatus and process | |
US10043110B2 (en) | Scene understanding using a neurosynaptic system | |
US11013978B2 (en) | In-game strategic insight with real-time heat map generation and historical heat maps | |
US11270218B2 (en) | Mapper component for a neuro-linguistic behavior recognition system | |
US20170168885A1 (en) | System and Method for Testing Internet of Things Network | |
US20230206420A1 (en) | Method for detecting defect and method for training model | |
US20230048386A1 (en) | Method for detecting defect and method for training model | |
KR102087959B1 (en) | Artificial intelligence operations system of telecommunication network, and operating method thereof | |
CN112749685B (en) | Video classification method, apparatus and medium | |
US11501200B2 (en) | Generate alerts while monitoring a machine learning model in real time | |
JP7569736B2 (en) | Computing system with discriminant classifier for determining similarity of monitored gas distribution processes - Patents.com | |
CN107301353A (en) | A kind of streaming Method on Dense Type of Data Using desensitization method and its data desensitization equipment | |
JP2021012686A (en) | Granular binarization for extended reality | |
KR102393285B1 (en) | System and method for remote collaboration based on realistic content between field boundaries and command control in edge cloud | |
CN114615088A (en) | Terminal service flow abnormity detection model establishing method and abnormity detection method | |
JP6996002B2 (en) | Protecting your system from harmful communications | |
CN118106965A (en) | Safety detection method and device for industrial robot, terminal equipment and storage medium | |
JPWO2016203757A1 (en) | Control apparatus, information processing apparatus using the same, control method, and computer program | |
CN112769620A (en) | Network deployment method, equipment and computer readable storage medium | |
WO2020231334A1 (en) | Modelling and black-box security testing of cyber-physical systems | |
CN111967003A (en) | Automatic wind control rule generation system and method based on black box model and decision tree | |
US11361245B2 (en) | Intelligent IOT data split management | |
CN113835973A (en) | Model training method and related device | |
JP7136329B2 (en) | Abnormality detection device, control method, and program | |
EP3640862A1 (en) | Neural network evaluation tool and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200717 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200717 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210622 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210806 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210907 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211025 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20211124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211215 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6996002 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |