JP7258258B1 - プログラマブルコントローラ、プログラマブルコントローラシステム、アクセス情報共有方法及びプログラム - Google Patents

プログラマブルコントローラ、プログラマブルコントローラシステム、アクセス情報共有方法及びプログラム Download PDF

Info

Publication number
JP7258258B1
JP7258258B1 JP2022577413A JP2022577413A JP7258258B1 JP 7258258 B1 JP7258258 B1 JP 7258258B1 JP 2022577413 A JP2022577413 A JP 2022577413A JP 2022577413 A JP2022577413 A JP 2022577413A JP 7258258 B1 JP7258258 B1 JP 7258258B1
Authority
JP
Japan
Prior art keywords
access
access information
programmable controller
plc
information
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.)
Active
Application number
JP2022577413A
Other languages
English (en)
Other versions
JPWO2024033971A5 (ja
JPWO2024033971A1 (ja
Inventor
正隆 橋下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP7258258B1 publication Critical patent/JP7258258B1/ja
Publication of JPWO2024033971A1 publication Critical patent/JPWO2024033971A1/ja
Publication of JPWO2024033971A5 publication Critical patent/JPWO2024033971A5/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PLC(101)は、PLC(102)と接続される。PLC(101)は、ネットワーク(NW)を介して外部からアクセスを受け付けて通信する通信部(11)と、アクセスに関するアクセス情報を記憶する記憶部(13)と、アクセス情報をPLC(102)に提供し、ネットワーク(NW)を介するPLC(102)へのアクセスに関するアクセス情報をPLC(102)から取得することで、アクセス情報を分散型台帳の形式でPLC(102)と共有する共有部(14)と、アクセス情報により示されるアクセスのうちの、他のアクセスより頻度が低い例外アクセスが通信部(11)によって新たに受け付けられた場合に、例外アクセスについて他のアクセスとは異なる処理を実行する処理部(18)と、を備える。

Description

本開示は、プログラマブルコントローラ、プログラマブルコントローラシステム、アクセス情報共有方法及びプログラムに関する。
近年、特定の管理主体が存在しないネットワークにおいて信頼性の高いデータを共有するための分散型台帳技術が注目されている。この分散型台帳技術を、複数の装置がネットワークで接続されたFA(Factory Automation)システムに適用することが提案されている(例えば、特許文献1を参照)。
特許文献1には、分散型台帳技術を利用して制御プログラムの実行可否を決定する制御システムについて記載されている。この制御システムでは、制御装置が、当該制御装置を構成するデバイスの構成を示す固有情報を生成し、生成した固有情報を他の制御装置との間で分散型台帳の形式で保持する。制御装置は、制御プログラムの実行開始要求に応答して、当該制御装置が生成した固有情報を、他の制御装置によって保持される固有情報と照合し、照合の結果に応じて制御プログラムの実行を許可し又は禁止する。このような制御装置を有する制御システムによれば、本来の環境とは異なる環境下での制御プログラムの起動を防ぐことができる。
特開2021-005231号公報
特許文献1の技術では、制御プログラムの不正な実行が要求された場合に、制御プログラムの実行は禁止される。しかしながら、不正な要求が繰り返されると、要求のたびに固有情報を照合する必要があり、制御システム全体において照合のための処理負荷が大きくなる。このため、制御システムの処理性能が低下し、その機能が停止してしまうおそれもある。すなわち、制御システムがその機能を十分に発揮することができる稼働状態を継続するという可用性が、不正なアクセスにより低下するおそれがある。したがって、FAシステムにおいて不正なアクセスが発生した場合の可用性を向上させる余地がある。
本開示は、上述の事情の下になされたもので、FAシステムにおいて不正なアクセスが発生した場合の可用性を向上させることを目的とする。
上記目的を達成するため、本開示のプログラマブルコントローラは、他のプログラマブルコントローラと接続されるプログラマブルコントローラであって、ネットワークを介して外部から第1アクセスを受け付けて通信する通信手段と、第1アクセスに関する第1アクセス情報を記憶する記憶手段と、記憶手段に記憶される第1アクセス情報を他のプログラマブルコントローラに提供し、ネットワークを介する他のプログラマブルコントローラへの第2アクセスに関する第2アクセス情報を他のプログラマブルコントローラから取得することで、第1アクセス情報及び第2アクセス情報を分散型台帳の形式で他のプログラマブルコントローラと共有する共有手段と、第1アクセス情報により示される第1アクセス及び第2アクセス情報により示される第2アクセスのうちの、他のアクセスより頻度が低い例外アクセスが通信手段によって新たに受け付けられた場合に、例外アクセスについて他のアクセスとは異なる処理を実行する処理手段と、を備える。
本開示によれば、例外アクセスが新たに受け付けられた場合に、処理手段が、例外アクセスについて他のアクセスとは異なる処理を実行する。このため、例外的に発生する不正なアクセスについては、通常とは異なる処理をすることにより対処することができる。したがって、FAシステムにおいて不正なアクセスが発生した場合の可用性を向上させることができる。
実施の形態1に係るPLCシステムの構成を示す図 実施の形態1に係るFA装置のハードウェア構成を示す図 実施の形態1に係る記憶部に記憶される情報の一例を示す図 実施の形態1に係る共有部によって共有されるブロックを示す図 実施の形態1に係るブロックの構成を示す第2の図 実施の形態1に係る学習部による学習について説明するための図 実施の形態1に係るPLC処理を示すフローチャート 実施の形態1に係るアクセス情報記録処理を示すフローチャート 実施の形態1に係る共有処理を示すフローチャート 実施の形態1に係るノード間の通信を示す図 実施の形態1に係る仮トランザクション生成処理を示すフローチャート 実施の形態1に係る依頼ノード処理を示すフローチャート 実施の形態1に係る受信ノード処理を示すフローチャート 実施の形態1に係る管理ノード処理を示すフローチャート 実施の形態1に係る学習処理を示すフローチャート 実施の形態1に係る検知処理を示すフローチャート 実施の形態2に係るアクセス情報を示す図 実施の形態3に係るアクセス情報を示す図
以下、本開示の実施の形態に係るデータ収集システムについて、図面を参照しつつ詳細に説明する。
実施の形態1.
本実施の形態に係るPLC(Programmable Logic Controller)システム1000は、工場においてネットワークを介して機器を制御する制御システムとして構築される。PLCシステム1000は、例えば、製造ライン、加工ライン、検査ライン、その他の処理工程を実施するためのFAシステムである。PLCシステム1000では、各装置が、外部からのアクセスを記録して分散型台帳の形式で共有し、例外的なアクセスを判別するためのモデルを、共有した記録に基づいて学習する。そして、学習されたモデルを用いて例外的なアクセスが検知されると、当該アクセスに対する処理が実行される。
PLCシステム1000は、図1に示されるように、ネットワークNWを介して互いに接続されるPLC101,102,103と、PLC101のユーザインタフェース端末として機能する支援装置20と、を有する。ネットワークNWは、産業用ネットワークであってもよいし、情報ネットワークであってもよい。ネットワークNWでは、例えば、TCP(Transmission Control Protocol)/IP(Internet Protocol)に従ってパケットが伝送される。支援装置20及びPLC101は、USB(Universal Serial Bus)ケーブルのような通信線、又はLAN(Local Area Network)のようなネットワークを介して接続される。PLCシステム1000は、プログラマブルコントローラシステムの一例に相当する。
PLC101,102,103はそれぞれ、同等の構成要素を有し、同等の機能を発揮する。図1では、PLC101の構成が詳細に示されており、PLC102,103の構成は簡略化されている。以下では、PLC101,102,103を区別することなくPLC100と表記することがある。
PLC100は、ラダープログラムに代表される制御プログラムを実行することにより不図示の機器を制御する制御装置である。PLC100は、他のPLC100と協調して機器を制御してもよい。例えば、PLC101が、センサによるセンシング結果を取得して、このPLC101又はPLC102が、センシング結果に基づく動作指令をアクチュエータに出力することで、ベルトコンベア上のワークが搬送される。PLC100は、プログラマブルコントローラの一例に相当する。
支援装置20は、産業用PC(Personal Computer)であって、PLC100に実行させる制御プログラムを作成及び編集してPLC100に書き込むためのエンジニアリングツールと呼ばれるアプリケーションソフトウェアを有する。
PLC100及び支援装置20はそれぞれ、コンピュータとして機能するためのハードウェア要素によって構成される。詳細には、図2に示されるように、PLC100及び支援装置20のそれぞれに相当するFA装置30は、プロセッサ31と、主記憶部32と、補助記憶部33と、入力部34と、出力部35と、通信部36と、を有する。主記憶部32、補助記憶部33、入力部34、出力部35及び通信部36はいずれも、内部バス37を介してプロセッサ31に接続される。
プロセッサ31は、処理回路としてのCPU(Central Processing Unit)を含む。プロセッサ31は、補助記憶部33に記憶されるプログラムP1を実行することにより、種々の機能を実現して、後述の処理を実行する。なお、支援装置20のプログラムP1は、上述のエンジニアリングツールに相当する。また、PLC100のプロセッサ31は、プログラムP1に加えて、上述の制御プログラムを実行する。
主記憶部32は、RAMを含む。主記憶部32には、補助記憶部33からプログラムP1がロードされる。そして、主記憶部32は、プロセッサ31の作業領域として用いられる。
補助記憶部33は、EEPROM(Electrically Erasable Programmable Read-Only Memory)及びHDD(Hard Disk Drive)に代表される不揮発性メモリを含む。補助記憶部33は、プログラムP1の他に、プロセッサ31の処理に用いられる種々のデータを記憶する。補助記憶部33は、プロセッサ31の指示に従って、プロセッサ31によって利用されるデータをプロセッサ31に供給する。また、補助記憶部33は、プロセッサ31から供給されたデータを記憶する。
入力部34は、ハードウェアスイッチ、入力キー、キーボード及びポインティングデバイスに代表される入力デバイスを含む。入力部34は、FA装置30のユーザによって入力された情報を取得して、取得した情報をプロセッサ31に通知する。
出力部35は、LED(Light Emitting Diode)、LCD(Liquid Crystal Display)及びスピーカに代表される出力デバイスを含む。出力部35は、プロセッサ31の指示に従って種々の情報をユーザに提示する。
通信部36は、外部の装置と通信するための通信インタフェース回路を含む。通信部36は、外部から信号を受信して、この信号により示されるデータをプロセッサ31へ出力する。また、通信部36は、プロセッサ31から出力されたデータを示す信号を外部の装置へ送信する。なお、図2では1つの通信部36が代表的に示されているが、FA装置30は、複数の通信部36を有してもよい。例えば、PLC101であるFA装置30は、支援装置20と通信するための通信部36と、ネットワークNWを介して通信するための通信部36と、を別個に有してもよい。
上述のハードウェア構成が協働することにより、PLC100及び支援装置20は、種々の機能を発揮する。詳細には、PLC101は、図1に示されるように、その機能として、ネットワークNWを介して外部からのアクセスを受け付けて通信する通信部11と、通信部11によって受信されたパケットを加工してアクセスに関するアクセス情報を生成する加工部12と、アクセス情報を蓄積して記憶する記憶部13と、アクセス情報をPLC102,103と共有する共有部14と、アクセス情報に基づいて例外的なアクセスを判別するためのモデルを学習する学習部15と、学習されたモデルに基づいて例外的なアクセスを検知する検知部16と、例外的なアクセスをユーザに報知する報知部17と、例外的なアクセスを処理する処理部18と、を有する。
通信部11は、主としてPLC101のプロセッサ31及び通信部36の協働により実現される。通信部11によるアクセスの受け付けは、ネットワークNWを介してPLC101自体が宛先として指定されたパケットを受信することを意味する。図1において、通信部11にアクセスする装置としてPLC102,103が示されているが、不図示の装置がネットワークNWを介して通信部11にアクセスし得る。また、通信部11は、必要に応じてパケットをネットワークNWへ送信する。通信部11は、PLC100において、ネットワークを介して外部から第1アクセスを受け付ける通信手段の一例に相当する。
加工部12は、主としてPLC101のプロセッサ31によって実現される。加工部12は、通信部11からパケットの提供を受けて、当該パケットを加工して、通信部11へのアクセスに関するアクセス情報を生成する。
アクセス情報は、アクセスをした通信装置をネットワークNW上で識別するための識別情報と、アクセスがなされた時刻及び当該時刻を含む予め定められた時間区分の少なくとも一方と、を含む。例えば、アクセス情報は、図3に示される送信アクセス情報131を構成する1つの行に相当するレコードであって、アクセスの時刻としてのパケット受理日時と、識別情報としての送信元IPアドレスと、パケットで指定されるポート番号と、受理日時を含む秒単位の時間区分と、アクセスの頻度に相当する速度と、を関連付けて示す。
時間区分の長さは、図3の例では1秒間であるが、これには限定されず、任意に変更してもよい。なお、図3中の「20220118-131310」は、2020年1月18日の13時13分10秒から11秒までの1秒間の区間を表す。速度は、時間区分において発生したアクセスで受信されたパケットのサイズをbps(bit per second)単位で示す。時間区分の長さが1秒間であるため、速度は、図3ではパケットのサイズに等しい。ここで、1つの時間区分において受信されたパケットのサイズは、パケットを構成する各ビット値の通信部11によって受信された合計に等しい。すなわち、速度は、1つの時間区分において各ビット値のアクセスが発生した頻度に相当するといえる。なお、1つのパケットの受信が1つの時間区分内で完了しない場合も有り得るが、当該パケットを構成するすべてのビット値が、当該パケットの受理日時において受信されたものとして扱ってもよい。
記憶部13は、主としてPLC101の主記憶部32及び補助記憶部33の少なくとも一方によって実現される。記憶部13は、図3に示されるように、加工部12によって生成されたアクセス情報の集合である送信アクセス情報131と、PLC102,103によって生成されてPLC102,103から受信される受信アクセス情報132と、をアクセスの履歴として記憶する。
送信アクセス情報131は、PLC100間で共有するために、PLC101からPLC102,103に対して送信される。受信アクセス情報132は、PLC101以外のPLC102,103へのアクセスを示す情報であって、PLC100間で共有するために、PLC101によってPLC102,103から受信される。送信アクセス情報131及び受信アクセス情報132においては、図3に示されるようにアクセス情報に番号が付与されてもよい。
記憶部13は、記憶手段の一例に相当する。送信アクセス情報131は、第1アクセスに関する第1アクセス情報の一例に相当し、受信アクセス情報132は、第2アクセスに関する第2アクセス情報の一例に相当する。受信アクセス情報132により示されるアクセスは、ネットワークNWを介する他のプログラマブルコントローラへの第2アクセスの一例に相当する。
図1に戻り、共有部14は、主としてPLC101のプロセッサ31及び通信部36の協働により実現される。共有部14は、記憶部13に記憶される送信アクセス情報131及び受信アクセス情報132を、PLC102,103と分散型台帳の形式で共有する。詳細には、共有部14は、図4に示されるように、ブロックヘッダ41及びトランザクション部42を含むブロック40が、1つ前のブロック40と連結して順次生成される形式で、情報を共有する。
ブロックヘッダ41は、図5に示されるように、前回生成されたブロック40のブロックヘッダ41のヘッダハッシュ値412に等しい前回ヘッダハッシュ値411と、ブロックヘッダ41自体に含めるデータのハッシュ値であるヘッダハッシュ値412と、ブロック40が生成された日時を示す生成日時情報413と、を有する。また、トランザクション部42は、前回のブロック40のトランザクション部42の出力アクセス情報422を含む入力アクセス情報421と、ブロック40において追加されるアクセス情報が格納される出力アクセス情報422と、入力アクセス情報421及び出力アクセス情報422の署名423と、を含む。
共有すべきアクセス情報を出力アクセス情報422として含む新たに連結すべきブロック40の追加がPLC100間で共有されることで、アクセス情報が共有される。詳細には、PLC101から提供される送信アクセス情報131を含むブロック40が追加されることで、PLC101の送信アクセス情報131をPLC102,103が取得し、当該送信アクセス情報131がPLC102,103に対して共有される。また、PLC102又はPLC103から提供されるアクセス情報を含むブロックが追加されることで、PLC102又はPLC103において記録されたアクセス情報をPLC101が取得し、当該アクセス情報が受信アクセス情報132としてPLC101によって共有される。
なお、入力アクセス情報421は、前回のブロック40の出力アクセス情報422を加工した情報を含んでもよい。また、入力アクセス情報421は、前回のブロック40のトランザクション部42のID(Identifier)及びそのトランザクション部42に含まれる出力アクセス情報422を加工した情報であってもよい。
共有部14は、PLC101の主記憶部32及び補助記憶部33の少なくとも一方により、記憶部13とは異なる記憶装置として機能してもよい。すなわち、共有部14は、順次連結されるブロック40を記憶し、このブロック40のうちの出力アクセス情報422を記憶部13と同期してもよい。
分散型台帳のブロックを連結する方式としては、プライベートチェーン、コンソーシアムチェーン、及びパブリックチェーンの3種類が知られている。ここで、アクセス情報を外部の第三者に公開したくないユーザがPLC100を使用する場面においては多数であり、分散型台帳に参加するPLC100を個別に設定可能であるため、プライベートチェーン又はコンソーシアムチェーンを採用することが好ましい。共有部14は、PLC100において、送信アクセス情報131及び受信アクセス情報132を分散型台帳の形式で他のプログラマブルコントローラと共有する共有手段の一例に相当する。
図1に戻り、学習部15は、主としてPLC101のプロセッサ31によって実現される。学習部15は、記憶部13に記憶されるアクセス情報から、他のアクセスより頻度が低い例外アクセスを判別するためのモデルを学習する。例えば、学習部15は、個々のアクセス情報から特徴量を抽出して、特徴量の分布を正規分布でフィッティングする。図6には、正規分布のフィッティングによるモデルの学習が模式的に示されている。
図6の例では、個々のアクセス情報から抽出される第1特徴量及び第2特徴量によって規定されるサンプリング点が塗りつぶされた丸印及び白抜きの丸印で示されている。第1特徴量及び第2特徴量は、例えば、アクセス情報によって示される送信元IPアドレス又は当該IPアドレスのグループ、並びに、ポート番号又は当該ポート番号のグループであってもよいし、アクセス情報から算出される他の任意の特徴量であってもよい。また、これらのサンプリング点をフィッティングした正規分布の3σが領域50として示されている。通常、多く観測されるアクセスは、領域50内の塗りつぶされた丸印で示されるサンプリング点51に対応し、例外的なアクセスは、領域50外の白抜きの丸印で示されるサンプリング点52に対応する。ここで、領域50に含まれるか否かにより例外アクセスを判別することとすれば、領域50が、例外アクセスを判別するためのモデルに相当する。図6の例では、例外アクセスは、他のアクセスよりも低い頻度で抽出される特徴量を有するアクセスであって、他のアクセスから高い頻度で抽出される特徴量の範囲外の特徴量を有するアクセスといえる。
なお、学習部15による学習の手法を任意に変更してもよい。ただし、学習の手法の分類として知られている、教師なし学習、教師あり学習、及び強化学習の3種類のうちの、個々のアクセスが例外アクセスに相当するか否かを知ることができない状況下においても、パラメータのチューニングにより例外アクセスを判別することが可能な教師なし学習を採用することが望ましい。また、通常、ネットワークNWを介するアクセスは正常であるものが多く不正アクセスの件数は正常なアクセスと比べて極端に少ないという点でも、教師なし学習が好ましい。例外アクセスか否かの正しいラベルを予め個々のアクセス情報に付与する教師が存在する場合には、教師あり学習が採用されてもよい。また、モデルを適用して例外アクセスを検知した結果としての報酬を設計することができる場合には、強化学習が採用されてもよい。
また、学習部15は、時間区分ごとに異なるモデルを学習してもよい。例えば、1日間又は1月間のような比較的長い時間区分において生じた複数のアクセスに基づいて、学習部15が当該時間区分において用いられるモデルを学習し、将来における同一の日付又は暦上の同一の月において当該モデルを用いて例外アクセスが検知されてもよい。また、1分間又は1時間のような比較的短い時間区分において生じるアクセスを1日又は複数日で収集してから学習部15がモデルを学習した後に、新たなアクセスが生じた時間区分に対応する学習済みモデルを用いて、当該新たなアクセスが例外アクセスであるか否かが判定されてもよい。学習部15は、PLC100において、例外アクセスを判別するためのモデルを学習する学習手段の一例に相当する。
図1に戻り、検知部16は、主としてPLC101のプロセッサ31によって実現される。検知部16は、学習部15によって学習されたモデルを用いて、記憶部13に記憶されるアクセス情報により示されるアクセスから、例外アクセスを検知する。
例えば、図6に示される領域50によって例外アクセスを判別する場合には、過去において生じたアクセスに対応するサンプリング点52が領域50外に位置するため、検知部16は、当該アクセスを例外アクセスとして検知する。また、サンプリング点52と同様のアクセス又はサンプリング点52に類似するアクセスが将来において生じたときに、検知部16は、当該アクセスを例外アクセスとして検知する。ここで、過去は、モデルの学習前を意味し、将来は、モデルの学習後を意味する。サンプリング点52に類似するアクセスは、図6においては、サンプリング点52の近傍に位置する不図示の新たな点に対応する。さらに、検知部16は、過去において生じたいずれのアクセスとも類似しないサンプリング点53についても、領域50を用いて例外アクセスとして検知する。このように、モデルは、未知のアクセスについても例外アクセスであるか否かを判別可能であることが好ましい。
なお、アクセスに対応するサンプリング点の分布に基づいて、他のアクセスより頻度が少ない例外アクセスを判別するためのモデルを例示したが、これには限定されない。例えば、図3に示される速度に対応する重みをサンプリング点に乗じてもよい。また、速度としての頻度を特徴量として、当該特徴量が閾値より小さいアクセスを例外アクセスとして判別してもよい。特徴量の種類は、1つであってもよいし、3つより多くてもよい。検知部16は、PLC100において、通信手段によって受け付けられた第1アクセスから例外アクセスを検知する検知手段の一例に相当する。
図1に戻り、報知部17は、主としてPLC101のプロセッサ31及び出力部35の協働により実現される。報知部17は、検知部16による検知の結果をユーザインタフェースに対して報知することにより、当該ユーザインタフェースを介してユーザに報知してもよい。ここで、ユーザインタフェースは、出力部35を構成する出力デバイスであってもよいし、ユーザインタフェース端末としての支援装置20であってもよい。報知部17は、PLC100において、ユーザインタフェースを介して情報を報知する報知手段の一例に相当する。
処理部18は、主としてPLC101のプロセッサ31によって実現される。処理部18は、検知部16による検知の結果に応じて、通信部36によって受信されたパケットを処理する。詳細には、処理部18は、例外アクセスでないアクセスを透過して、当該アクセスに基づく処理を開始する。例えば、処理部18は、PLC101に保存されているデータの読み出しを要求するアクセスに基づいて、当該データを読み出して通信部11に応答させる。また、処理部18は、PLC101へのデータの書き込みを要求するアクセスに基づいて、当該データを書き込んで、書き込み完了の旨を通信部11に応答させる。
一方、処理部18は、例外アクセスを遮断する。詳細には、処理部18は、データの読み出しを要求する例外アクセスに対して、データを読み出し及び応答の双方をすることなく、パケットを破棄する。また、データの書き込みを要求する例外アクセスに対して、データを書き込むことなく、パケットを破棄する。さらに、処理部18は、例外アクセスがあったことを記録してもよいし、報知部17に報知させてもよい。処理部18は、PLC100において、例外アクセスが通信手段によって新たに受け付けられた場合に、例外アクセスについて他のアクセスとは異なる処理を実行する処理手段の一例に相当する。
支援装置20は、PLC101の学習部15による学習のパラメータを設定するための設定部21と、共有部14によって共有されている情報をユーザに対して表示する表示部22と、を有する。
設定部21は、主として支援装置20のプロセッサ31及び通信部36によって実現される。設定部21は、学習速度及び例外アクセスの判別精度に関するパラメータをユーザから受け付けて学習部15に設定する。表示部22は、主として支援装置20の出力部35によって実現される。
続いて、上述の機能を有するPLC100によって実行されるPLC処理について、図7~16を用いて説明する。
図7に示されるPLC処理は、PLC100の電源が投入されることで開始する。なお、PLC処理に含まれる各ステップの関係を明確にするために、ステップが順に実行されるものとして図示しているが、これには限定されず、各ステップが並列に実行されてもよい。
PLC処理では、PLC100が、学習部15に対するパラメータを支援装置20から受け付けて(ステップS1)、学習部15に設定する。パラメータは、定量的な値であってもよいし、学習速度についての「速く」又は「緩やか」という分類、若しくは判別精度についての「緩く」又は「厳しく」という分類のような定性的な値であってもよい。そして、PLC100の外部からのアクセスに基づいてアクセス情報を記録するアクセス情報記録処理と(ステップS2)、アクセス情報を共有する共有処理と(ステップS3)、アクセス情報に基づいてモデルを学習する学習処理と(ステップS4)、モデルを用いて例外アクセスを検知する検知処理と(ステップS5)、を繰り返し実行する。以下、これらステップS2~S5の処理の詳細について順に説明する。
ステップS2のアクセス情報記録処理では、図8に示されるように、PLC100が保持している記録トリガがON状態であるか否かをプロセッサ31が判定する(ステップS21)。記録トリガは、ON状態又はOFF状態の値を有するフラグであって、ユーザにより又は外部のアプリケーションソフトウェアにより値が設定される。記録トリガがON状態でないと判定された場合(ステップS21;No)、PLC100による処理は、図8のアクセス情報記録処理から図7のPLC処理に戻る。
一方、記録トリガがON状態であると判定された場合(ステップS21;Yes)、加工部12は、通信部11によって通信データとして受信されたパケットの受理日時から当該受理日時を含む時間区分を演算する(ステップS22)。図3に示されたように時間区分の長さが1秒間である場合には、加工部12は、受理日時の秒数の小数点以下を切り捨てればよい。また、受理日時の単位と時間区分の単位が異なる場合には、加工部12は、単位の換算も実行する。
次に、加工部12は、アクセス速度を演算する(ステップS23)。図3の例では、加工部12は、パケットのサイズを速度として求める。そして、加工部12は、ステップS22で算出された時間区分とステップS23で算出されたアクセス速度に、通信相手の識別情報及びポート番号を追加することでアクセス情報を生成する(ステップS24)。具体的には、加工部12は、時間区分及びアクセス速度に、パケットの送信元を示すIPアドレスとパケットで指定されるポート番号を関連付けたアクセス情報を作成する。
次に、加工部12は、ステップS24で生成したアクセス情報を記録する(ステップS25)。具体的には、加工部12は、生成したアクセス情報を記憶部13の送信アクセス情報131の新たな行データとして追加する。その後、PLC100による処理は、図8のアクセス情報記録処理から図7に示されるPLC処理に戻る。
ステップS3の共有処理では、図9に示されるように、PLC100が保持している共有トリガがON状態であるか否かを、共有部14が判定する(ステップS31)。共有トリガは、ON状態又はOFF状態の値を有するフラグであって、ユーザにより又は外部のアプリケーションソフトウェアにより値が設定される。共有トリガがON状態でないと判定された場合(ステップS31;No)、PLC100による処理は、図9の共有処理から図7のPLC処理に戻る。
一方、共有トリガがON状態であると判定された場合(ステップS31;Yes)、共有部14は、他のPLC100に提供すべきアクセス情報を含む一時的な仮トランザクションを生成する仮トランザクション生成処理と(ステップS32)、仮トランザクションを含むブロックをコミットすることの合意形成を依頼するノードとしての依頼ノード処理と(ステップS33)、合意形成の依頼を受信するノードとしての受信ノード処理と(ステップS34)、合意形成を管理するノードとしての管理ノード処理と(ステップS35)、を実行する。これらの処理は、例えばPBFT(Practical Byzantine Fault Tolerance)と呼ばれるアルゴリズムに従う。なお、仮トランザクション生成処理及び依頼ノード処理と、受信ノード処理と、管理ノード処理と、を並列に実行してもよい。ここで、依頼ノード、受信ノード及び管理ノードの関係について、図10のシーケンス図を参照して説明する。
図10において、依頼ノード61、管理ノード62及び受信ノード63はそれぞれ、ネットワークNWに接続されるPLC100に相当する。複数のPLC100のうちの1台のPLC100が、新たに分散型台帳にコミットすべきデータが発生したと判断したタイミングで、依頼ノード61として仮トランザクション生成処理及び依頼ノード処理を実行する。依頼ノード61以外のPLC100のうちの、特定の1台のPLC100が、管理ノード62として管理ノード処理を実行する。依頼ノード61及び管理ノード62以外のPLC100は、受信ノード63として受信ノード処理を実行する。このため、PLC100はそれぞれ、タイミングによって依頼ノード及び受信ノードのいずれにも該当し得る。
管理ノード62は、特定のPLC100が担うものとして予め定められてもよい。例えば、PLC101を管理ノード62として予め決定しておき、PLC101が依頼ノード61となる場合にはPLC102が管理ノード62を担うことが予め定められてもよい。また、予め定められたルールに従って依頼ノード61以外のいずれか1台のPLC100が管理ノード62として都度選択されてもよい。例えば、依頼ノード61は、ネットワークNWを介して通信可能なPLC100のうちの、最小の値のIPアドレスを有するPLC100を管理ノード62として、当該管理ノード62に合意形成を依頼してもよい。
図10に示されるように、依頼ノード61は、仮トランザクション生成処理を実行して(ステップS32)、生成した仮トランザクションを管理ノード62に送信する(ステップS301)。管理ノード62は、依頼ノード61から受信した仮トランザクションを受信ノード63に配布する(ステップS302)。
次に、管理ノード62及び受信ノード63はそれぞれ、仮トランザクションに含まれる署名を検証する(ステップS303)。署名が正しいと判断すると、管理ノード62及び受信ノード63はそれぞれ、署名検証結果を依頼ノード61以外のノードに配布して(ステップS304)、他のノードから配布された署名検証結果を受信する(ステップS305)。管理ノード62及び受信ノード63がそれぞれ、正しい署名検証結果を送信したノード数が閾値以上であることを確認することにより、管理ノード62及び受信ノード63は互いに、管理ノード62によって仮トランザクションが変更されていないことを検証する。
次に、管理ノード62及び受信ノード63はそれぞれ、仮トランザクションを依頼ノード61以外のノードに配布して(ステップS306)、他のノードから配布された仮トランザクションを配布トランザクションとして受信する(ステップS307)。そして、管理ノード62及び受信ノード63はそれぞれ、ステップS302で受信した仮トランザクションと一致する配布トランザクションの数が閾値以上であることを確認する(ステップS308)。これにより、管理ノード62及び受信ノード63は互いに、受信した仮トランザクションが一致することを確認する。
次に、管理ノード62は、仮トランザクションを含むブロックを生成し、管理ノード62の共有部14が有する分散型台帳にコミットして(ステップS309)、コミット結果を依頼ノード61に通知する(ステップS310)。同様に、受信ノード63はそれぞれ、仮トランザクションを含むブロックを生成し、当該受信ノード63の共有部14が有する分散型台帳にコミットして(ステップS309)、コミット結果を依頼ノード61に通知する(ステップS310)。
依頼ノード61は、コミット結果を通知したノード数が閾値以上であれば、管理ノード62及び受信ノード63によってブロックをコミットすることの合意が形成されたと判断し、仮トランザクションを含むブロックを生成して、依頼ノード61の共有部14が有する分散型台帳にコミットする(ステップS311)。これにより、依頼ノード61、管理ノード62及び受信ノード63が互いに、ブロックをコミットしてよいか否かを検証した上で、分散型台帳にブロックがコミットされる。
続いて、図9に示される仮トランザクション生成処理(ステップS32)、依頼ノード処理(ステップS33)、受信ノード処理(ステップS34)、及び管理ノード処理(ステップS35)それぞれの詳細について順に説明する。
図11に示される仮トランザクション生成処理(ステップS32)は、主として依頼ノード61の共有部14によって実行される。仮トランザクション生成処理では、共有部14が、他のノードに送信することにより共有すべきアクセス情報を決定する(ステップS321)。具体的には、共有部14は、送信アクセス情報131に追加されたアクセス情報のうち、未だ分散型台帳にコミットされていないアクセス情報が一定数以上となったときに、当該アクセス情報を共有すべきアクセス情報として決定する。なお、共有すべきアクセス情報を決定する手法を任意に変更してもよい。例えば、共有部14は、パケット受理日時を降順にして先頭に格納されている最新の日時のアクセス情報から処理してもよいし、送信アクセス情報131においてアクセス情報に付与された番号で昇順または降順にソートし先頭に格納されているアクセス情報から処理してもよい。共有部14は、送信アクセス情報131のうちの予め定められた条件を満たすアクセス情報については、共有すべきアクセス情報から除外してもよい。また、通信部11への1回のアクセスに基づいてアクセス情報が生成されるたびに、共有部14は、当該アクセス情報を共有すべきアクセス情報として決定してもよい。
次に、共有部14は、生成すべき仮トランザクションの入力アクセス情報421として、分散型台帳に記録されている最新のブロック40の出力アクセス情報422を挿入する(ステップS322)。そして、共有部14は、ステップS321で共有すべきことが決定されたアクセス情報を、仮トランザクションの出力アクセス情報422として挿入する(ステップS323)。その後、共有部14は、ステップS322で挿入した入力アクセス情報421及びステップS323で挿入した出力アクセス情報422についての署名を作成して挿入する(ステップS324)。署名は、入力アクセス情報421及び出力アクセス情報422を文字列として連結したものにハッシュ関数を適用して得るハッシュ値であるが、他の手法により得る情報を署名として採用してもよい。これにより、共有部14は、ステップS322の入力アクセス情報421、ステップS323の出力アクセス情報422、及びステップS324の署名を含む仮トランザクションを生成する(ステップS325)。
図12に示される依頼ノード処理(ステップS33)は、主として依頼ノード61の共有部14によって実行される。依頼ノード処理では、共有部14が、合意形成を依頼すべき仮トランザクションがあるか否かを判定する(ステップS331)。仮トランザクションがないと判定された場合(ステップS331;No)、依頼ノード処理は終了し、PLC100による処理は、図9の共有処理に戻る。
一方、仮トランザクションがあると判定した場合(ステップS331;Yes)、共有部14は、管理ノード62へ仮トランザクションを送信する(ステップS332)。このステップS332は、図10のステップS301に対応する。
次に、共有部14は、ステップS332で送信した仮トランザクションが承認されたか否かを判定する(ステップS333)。具体的には、共有部14は、仮トランザクションをコミットすることを承認したノード数が閾値以上であるか否かを判定する。このステップS333は、図10のステップS310に対応する。
次に、共有部14は、仮トランザクションに付与すべきブロックヘッダ41を生成して(ステップS334)、生成したブロックヘッダ41と、トランザクション部42としての仮トランザクションと、を含むブロック40を生成する(ステップS335)。そして、共有部14は、生成したブロック40を分散型台帳にコミットする(ステップS336)。ステップS334~S336は、図10のステップS311に対応する。
図13に示される受信ノード処理(ステップS34)は、主として受信ノード63の共有部14によって実行される。受信ノード処理では、共有部14が、仮トランザクションを受信したか否かを判定する(ステップS341)。図10のステップS302が実行されて管理ノード62から仮トランザクションが配布された場合に、このステップS341の判定が肯定される。
仮トランザクションを受信したと判定した場合(ステップS341;Yes)、共有部14は、受信した仮トランザクションの署名が正しいか否かを判定する(ステップS342)。具体的には、共有部14は、仮トランザクションに含まれている署名と、仮トランザクションに含まれている入力アクセス情報421及び出力アクセス情報422から生成した署名と、が一致するか否かを判定し、一致する場合には当該署名が正しいことを確認した旨を依頼ノード61以外に通知する。そして、共有部14は、署名が正しいことを通知した他のノード数が閾値以上であるか否かを判定する。ステップS342は、図10のステップS303~S305に対応する。
仮トランザクションの署名が正しいと判定した場合(ステップS342;Yes)、共有部14は、仮トランザクションを依頼ノード61以外のノードに配布する(ステップS343)。このステップS343は、図10のステップS306に対応する。
次に、共有部14は、仮トランザクションの配布先によってステップS343と同様のステップが実行された結果として、当該配布先から配布された仮トランザクションを配布トランザクションとして受信する(ステップS344)。このステップS344は、図10のステップS307に対応する。
次に、共有部14は、ステップS341で受信した仮トランザクションと、ステップS344で受信した配布トランザクションと、が一致するか否かを判定する(ステップS345)。具体的には、共有部14は、ステップS344で複数の配布先から受信した配布トランザクションそれぞれと、仮トランザクションとを比較して、仮トランザクションと一致する配布トランザクションの数が閾値を超えるか否かを判定する。このステップS345は、図10のステップS308に対応する。
仮トランザクションと配布トランザクションとが一致すると判定した場合(ステップS345;Yes)、共有部14は、ブロックヘッダ41を生成して仮トランザクションと合わせてブロック40を生成する(ステップS346)。そして、共有部14は、生成したブロック40を、当該共有部14の分散型台帳にコミットする(ステップS347)。これらのステップS346,S347は、図10のステップS309に対応する。
次に、共有部14は、依頼ノード61にコミット内容を送信する(ステップS348)。コミット内容の送信は、ステップS347でコミットしたブロック40の送信であってもよいし、仮トランザクションを承認した旨の通知であってもよい。このステップS348は、図10のステップS310に対応する。その後、PLC100による処理は、図9に示される共有処理に戻る。ステップS341,S342,S345の判定が否定された場合(ステップS341;No,ステップS342;No,ステップS345;No)、共有部14が仮トランザクションを承認することなく、PLC100による処理は、図9に示される共有処理に戻る。
図14に示される管理ノード処理(ステップS35)は、主として管理ノード62の共有部14によって実行される。管理ノード処理では、共有部14が、当該共有部14を有するPLC100が管理ノードであるか否かを判定する(ステップS351)。管理ノードであると判定した場合(ステップS351;Yes) 、共有部14は、仮トランザクションを受信したか否かを判定する(ステップS352)。図10のステップS301が実行された場合には、ステップS352の判定が肯定される。
仮トランザクションを受信したと判定した場合(ステップS352;Yes)、共有部14は、仮トランザクションを受信ノード63に配布する(ステップS353)。このステップS353は、図10のステップS302に対応する。
ステップS353以降、共有部14は、受信ノード処理におけるステップS342~S348と同様のステップS354~S3510を実行する。なお、ステップS351,S352の判定が否定された場合(ステップS351;No,S352;No)、共有部14が仮トランザクションを承認することなく、PLC100による処理は、図9に示される共有処理に戻る。
図9に示されるように、管理ノード処理が終了すると、PLC100による処理は、図7のPLC処理に戻り、続いて学習処理(ステップS4)が実行される。
ステップS4の学習処理では、図15に示されるように、PLC100が保持している学習トリガがON状態であるか否かを、学習部15が判定する(ステップS41)。学習トリガは、ON状態又はOFF状態の値を有するフラグであって、ユーザにより又は外部のアプリケーションソフトウェアにより値が設定される。学習トリガがON状態でないと判定された場合(ステップS41;No)、PLC100による処理は、図15の学習処理から図7のPLC処理に戻る。
一方、学習トリガがON状態であると判定した場合(ステップS41;Yes)、学習部15は、未学習のアクセス情報を記憶部13から読み出す(ステップS42)。具体的には、学習部15は、過去に学習の対象とされていないアクセス情報を送信アクセス情報131及び受信アクセス情報132から抽出する。
次に、学習部15は、アクセス情報を学習に適した形式に変換する変換処理を実行する(ステップS43)。変換処理は、図6に示される特徴量の抽出であってもよい。また、アクセス情報に含まれる各要素について、その要素の値の範囲が異なるため、各要素の正規化又は標準化を変換処理として実行してもよい。例えば、IPアドレスの値の範囲と、速度として有り得る値の範囲と、の双方を正規化してゼロから1までの範囲に変換してもよい。また,学習データが増加すると学習モデル更新の際の演算量が指数的に増えることがあるため、学習モデル更新時の演算量を抑えるための変換を施してもよい。
次に、学習部15は、ステップS43で形式が変換されたアクセス情報に基づいてモデルを更新する(ステップS44)。その後、PLC100による処理は、図15の学習処理から図7のPLC処理に戻る。
ステップS5の検知処理では、図16に示されるように、PLC100が保持している検知トリガがON状態であるか否かを、検知部16が判定する(ステップS51)。検知トリガは、ON状態又はOFF状態の値を有するフラグであって、ユーザにより又は外部のアプリケーションソフトウェアにより値が設定される。検知トリガがON状態でないと判定された場合(ステップS51;No)、PLC100による処理は、図16の検知処理から図7のPLC処理に戻る。
一方、検知トリガがON状態であると判定された場合(ステップS51;Yes)、加工部12は、通信部11によって新たに受信された通信データとしてのパケットをアクセス情報に加工して(ステップS52)、記憶部13に格納する。
そして、検知部16は、ステップS52で生成されたアクセス情報に対して、図15のステップS43と同様の変換処理を施した上で(ステップS53)、学習部15によって学習されたモデルを適用することにより(ステップS54)、当該アクセス情報により示されるアクセスが例外アクセスであるか否かを判定する(ステップS55)。
例外アクセスでないと判定された場合(ステップS55;No)、処理部18は、当該アクセスについて正常アクセス処理を実行する(ステップS56)。例えば、処理部18は、当該アクセスにより要求されているデータの読み出し又は書き込みを実行する。その後、PLC100による処理は、図16の検知処理から、図7のPLC処理に戻る。
一方、例外アクセスであると判定された場合(ステップS55;Yes)、処理部18が、この例外アクセスを遮断して(ステップS57)、報知部17に、例外アクセスがあった旨をユーザインタフェースに報知させる(ステップS58)。その後、PLC100による処理は、図16の検知処理から、図7のPLC処理に戻る。
以上、説明したように、例外アクセスが新たに受け付けられた場合には、処理部18が、例外アクセスについて通常のアクセスとは異なる処理として、例外アクセスの遮断及びユーザインタフェースへの報知を実行する。このため、例外的に発生する不正なアクセスについては、通常とは異なる処理をすることにより小さな処理負荷で対処することができる。したがって、PLCシステム1000において不正なアクセスが発生した場合の可用性を向上させることができる。
例えば、ネットワークNW上の信頼される装置を予めホワイトリストに登録し、当該装置からのアクセスは正当なものとして扱うIPフィルタリングのような既存の手法が知られている。しかしながら、そのような装置が乗っ取られた又は踏み台とされた場合、若しくはIPのなりすましによるアクセスには、上述のような既存の手法ではPLC100を十分に保護することが難しい。これに対して、アクセスの頻度に着目して例外アクセスに対処すれば、不正なアクセスからPLC100を保護することができる。
また、上述のような既存の手法では、当初設定した内容に従ってアクセスをフィルタリングすることとなる。これに対して、本実施の形態に係るPLC100によれば、学習部15によるモデルの学習が繰り返されるため、ネットワークNWで発生するアクセスに適応して例外アクセスを検知することができる。
また、PLC間の合意形成がPBFTと呼ばれるアルゴリズムに従ってなされる例を説明した。PBFTに従えば、分散型台帳は、分散型台帳に参加するノードに障害が発生して当該ノードが分散型台帳を更新することができないという障害、及び、外部の攻撃者によってトランザクションが書き換えられるという障害に対する耐性を有する。また、障害許容ノード数を予め設定し、このノード数から逆算して分散型台帳に参加するノード数を設定してもよい。障害許容ノード数をfとすると、分散形台帳に参加するノードの数は3f+1となる必要がある。例えば、fが1であれば、図10に示されるように4つのノードが参加する必要がある。
なお、アクセス情報が格納される記憶部13がPLC100を構成する例について説明したが、アクセス情報は、NAS(Network Attached Storage)及びPLC100に挿抜可能なメモリカードのような、PLC100の外部の記憶装置に格納されてもよい。
また、学習部15による学習の手法として、上述した手法とは異なる手法を採用してもよい。例えば、比較的演算量が少なく異常の検知が可能なOne Class SVM(Support Vector Machine)を採用してもよい。将来的に演算リソースの制約がなくなったときにはk近傍法又はk平均法のような手法を採用してもよい。また、ディープニューラルネットワーク、畳み込みニューラルネットワーク、又はリカレントニューラルネットワークを学習手法として採用してもよい。
実施の形態2.
続いて、実施の形態2について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。本実施の形態は、検知部16による検知の結果が共有部14によって共有される点で、実施の形態1と異なる。
本実施の形態に係るアクセス情報は、図17に示されるように、当該アクセス情報を共有するためのブロック40のヘッダハッシュ値412と、当該アクセス情報により示されるアクセスが検知部16によって例外アクセスとして検知されたか否かを示すフラグと、を含む。図17において、「0」のフラグは通常のアクセスであることを示し、「1」のフラグは例外アクセスであることを示す。そして、PLC100は、他のPLC100において例外アクセスと判定されたアクセスがあったことを、ユーザインタフェースを介して報知する。詳細には、報知部17が、受信アクセス情報132において「1」のフラグを有するアクセス情報がある場合に、当該アクセス情報により示される例外アクセスを報知する。
以上、説明したように、他のPLC100における例外アクセスの検知結果を報知すれば、当該他のPLC100に障害が発生した場合であっても、ユーザは、例外アクセスの検知結果を参照することができる。
実施の形態3.
続いて、実施の形態3について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。本実施の形態は、図18に示されるように、アクセス情報が、デバイスデータに関する情報を含む点で、上記実施の形態1と異なる。
PLC100は、通常、デバイスデータと呼ばれるデータを他の装置と共有し、デバイスデータを操作することで機器の制御を実現している。例えば、センサ機器がセンシング結果を示すデバイスデータをPLC100と共有することで、センシング結果がPLC100に通知され、PLC100が、動作指令を示すデバイスデータをアクチュエータと共有することで、当該アクチュエータに動作指令が与えられる。
PLC100の加工部12は、図18に示されるように、通信部11へのアクセスが、デバイスデータの読み出し又は書き込みを要求する場合に、当該要求が読み出しであるか書き込みであるか、当該デバイスデータのアドレス、当該デバイスデータのデータ型、及び、始点と点数を関連付けて示す。図18において「R」の要求は読み出し要求であることを示し、「W」の要求は書き込み要求であることを示す。
共有部14は、他のPLC100に対するアクセスについても、このようなデバイスデータに関する情報を含むアクセス情報を共有する。そして、学習部15は、このアクセス情報に基づいてモデルを更新する。
以上、説明したように、デバイスデータに関する情報に基づいてモデルを学習すれば、さらに正確に例外アクセスを判別することが期待される。
以上、本開示の実施の形態について説明したが、本開示は上記実施の形態によって限定されるものではない。
例えば、PLCシステム1000を構成するPLC100の数を任意に変更してもよい。
また、合意形成アルゴリズムとして、パブリックチェーンを採用する場合には、分散型台帳に参加したノードの一覧をハッシュ化した値であるマークルルート、マイニングの難易度、及びマイニング成功時のナンスを、ブロックヘッダ41に含めてもよい。
また、上記実施の形態2,3を組み合わせてもよい。さらに、上記実施の形態2,3では、上記実施の形態1に係るアクセス情報に対して要素を追加したが、追加される要素は、上記実施の形態2,3に説明されたものに限定されない。例えば、ネットワークNWを介して通信相手から送信されたファイル、遠隔からPLC100を起動するリモートRUN及び遠隔からPLC100を停止するリモートSTOPのような遠隔操作情報、IPアドレスのようなネットワークに関する設定の変更を示す情報、及び、時計データの変更を示す情報のうちの1つ又は複数をアクセス情報に含めてもよい。
また、アクセス情報が、アクセスがなされた時刻及び当該時刻を含む時間区分の双方を示す例について説明したが、アクセス情報は、当該時刻と時間区分とのいずれか一方を示してもよい。
上述の実施の形態に係るPLC100の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
例えば、プログラムP1を、フレキシブルディスク、CD-ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto-Optical disk)に代表されるコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムP1をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。
また、プログラムP1をインターネットに代表される通信ネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロードするようにしてもよい。
また、インターネットに代表されるネットワークを介してプログラムP1を転送しながら起動実行することによっても、上述の処理を達成することができる。
さらに、プログラムP1の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラムP1を実行することによっても、上述の処理を達成することができる。
なお、上述の機能を、OS(Operating System)が分担して実現する場合又はOSとアプリケーションとの協働により実現する場合には、OS以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロードしてもよい。
また、PLC100の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を専用のハードウェア又は回路によって実現してもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。つまり、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。
本開示は、FAの現場で運用されるシステムのセキュリティ性能の向上に適している。
11 通信部、 12 加工部、 13 記憶部、 14 共有部、 15 学習部、 16 検知部、 17 報知部、 18 処理部、 20 支援装置、 21 設定部、 22 表示部、 30 FA装置、 31 プロセッサ、 32 主記憶部、 33 補助記憶部、 34 入力部、 35 出力部、 36 通信部、 37 内部バス、 40 ブロック、 41 ブロックヘッダ、 42 トランザクション部、 50 領域、 51~53 サンプリング点、 61 依頼ノード、 62 管理ノード、 63 受信ノード、 100~103 PLC、 131 送信アクセス情報、 132 受信アクセス情報、 411 前回ヘッダハッシュ値、 412 ヘッダハッシュ値、 413 生成日時情報、 421 入力アクセス情報、 422 出力アクセス情報、 423 署名 1000 PLCシステム、 NW ネットワーク、 P1 プログラム。

Claims (8)

  1. 他のプログラマブルコントローラと接続されるプログラマブルコントローラであって、
    ネットワークを介して外部から第1アクセスを受け付けて通信する通信手段と、
    前記第1アクセスに関する第1アクセス情報を記憶する記憶手段と、
    前記記憶手段に記憶される前記第1アクセス情報を前記他のプログラマブルコントローラに提供し、前記ネットワークを介する前記他のプログラマブルコントローラへの第2アクセスに関する第2アクセス情報を前記他のプログラマブルコントローラから取得することで、前記第1アクセス情報及び前記第2アクセス情報を分散型台帳の形式で前記他のプログラマブルコントローラと共有する共有手段と、
    前記第1アクセス情報により示される前記第1アクセス及び前記第2アクセス情報により示される前記第2アクセスのうちの、他のアクセスより頻度が低い例外アクセスが前記通信手段によって新たに受け付けられた場合に、前記例外アクセスについて前記他のアクセスとは異なる処理を実行する処理手段と、
    を備えるプログラマブルコントローラ。
  2. 前記第1アクセス情報は、前記第1アクセスをした通信装置を前記ネットワーク上で識別するための情報を含む、
    請求項1に記載のプログラマブルコントローラ。
  3. 前記第1アクセス情報は、前記第1アクセスがなされた時刻及び該時刻を含む予め定められた時間区分の少なくとも一方を示す、
    請求項1に記載のプログラマブルコントローラ。
  4. 前記通信手段によって受け付けられた前記第1アクセスから前記例外アクセスを検知する検知手段と、
    ユーザインタフェースを介して情報を報知する報知手段と、をさらに備え、
    前記第1アクセス情報は、前記検知手段による検知の結果を示し、
    前記第2アクセス情報は、前記第2アクセスからの前記他のプログラマブルコントローラによる前記例外アクセスの検知の結果を示し、
    前記報知手段は、前記第2アクセス情報によって示される前記例外アクセスの検知の結果を報知する、
    請求項1から3のいずれか一項に記載のプログラマブルコントローラ。
  5. 前記第1アクセス情報により示される前記第1アクセス及び前記第2アクセス情報により示される前記第2アクセスから、前記例外アクセスを判別するためのモデルを学習する学習手段と、
    前記学習手段によって学習された前記モデルを用いて、前記通信手段によって受け付けられる前記第1アクセスから前記例外アクセスを検知する検知手段と、をさらに備え、
    前記処理手段は、前記検知手段によって検知された前記例外アクセスを遮断する、
    請求項1から3のいずれか一項に記載のプログラマブルコントローラ。
  6. 互いに接続された複数のプログラマブルコントローラを含むプログラマブルコントローラシステムであって、
    前記プログラマブルコントローラはそれぞれ、
    ネットワークを介して外部から第1アクセスを受け付けて通信する通信手段と、
    前記第1アクセスに関する第1アクセス情報を記憶する記憶手段と、
    前記記憶手段に記憶される前記第1アクセス情報を他のプログラマブルコントローラに提供し、前記ネットワークを介する前記他のプログラマブルコントローラへの第2アクセスに関する第2アクセス情報を前記他のプログラマブルコントローラから取得することで、前記第1アクセス情報及び前記第2アクセス情報を分散型台帳の形式で前記他のプログラマブルコントローラと共有する共有手段と、
    前記第1アクセス情報により示される前記第1アクセス及び前記第2アクセス情報により示される前記第2アクセスのうちの、他のアクセスより頻度が低い例外アクセスが前記通信手段によって新たに受け付けられた場合に、前記例外アクセスについて前記他のアクセスとは異なる処理を実行する処理手段と、
    を備える、プログラマブルコントローラシステム。
  7. 他のプログラマブルコントローラと接続されるプログラマブルコントローラによって実行されるアクセス情報共有方法であって、
    通信手段が、ネットワークを介して外部から第1アクセスを受け付け、
    共有手段が、前記第1アクセスに関する第1アクセス情報を前記他のプログラマブルコントローラに提供し、前記ネットワークを介する前記他のプログラマブルコントローラへの第2アクセスに関する第2アクセス情報を前記他のプログラマブルコントローラから取得することで、前記第1アクセス情報及び前記第2アクセス情報を分散型台帳の形式で前記他のプログラマブルコントローラと共有し、
    処理手段が、前記第1アクセス情報により示される前記第1アクセス及び前記第2アクセス情報により示される前記第2アクセスのうちの、他のアクセスより頻度が低い例外アクセスが前記通信手段によって新たに受け付けられた場合に、前記例外アクセスについて前記他のアクセスとは異なる処理を実行する、
    ことを含むアクセス情報共有方法。
  8. 他のプログラマブルコントローラと接続されるプログラマブルコントローラを、
    ネットワークを介して外部から第1アクセスを受け付けて通信する通信手段、
    前記第1アクセスに関する第1アクセス情報を記憶する記憶手段、
    前記記憶手段に記憶される前記第1アクセス情報を前記他のプログラマブルコントローラに提供し、前記ネットワークを介する前記他のプログラマブルコントローラへの第2アクセスに関する第2アクセス情報を前記他のプログラマブルコントローラから取得することで、前記第1アクセス情報及び前記第2アクセス情報を分散型台帳の形式で前記他のプログラマブルコントローラと共有する共有手段、
    前記第1アクセス情報により示される前記第1アクセス及び前記第2アクセス情報により示される前記第2アクセスのうちの、他のアクセスより頻度が低い例外アクセスが前記通信手段によって新たに受け付けられた場合に、前記例外アクセスについて前記他のアクセスとは異なる処理を実行する処理手段、
    として機能させるためのプログラム。
JP2022577413A 2022-08-08 2022-08-08 プログラマブルコントローラ、プログラマブルコントローラシステム、アクセス情報共有方法及びプログラム Active JP7258258B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/030278 WO2024033971A1 (ja) 2022-08-08 2022-08-08 プログラマブルコントローラ、プログラマブルコントローラシステム、アクセス情報共有方法及びプログラム

Publications (3)

Publication Number Publication Date
JP7258258B1 true JP7258258B1 (ja) 2023-04-14
JPWO2024033971A1 JPWO2024033971A1 (ja) 2024-02-15
JPWO2024033971A5 JPWO2024033971A5 (ja) 2024-07-17

Family

ID=85980426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022577413A Active JP7258258B1 (ja) 2022-08-08 2022-08-08 プログラマブルコントローラ、プログラマブルコントローラシステム、アクセス情報共有方法及びプログラム

Country Status (2)

Country Link
JP (1) JP7258258B1 (ja)
WO (1) WO2024033971A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019240019A1 (ja) * 2018-06-11 2019-12-19 パナソニックIpマネジメント株式会社 異常解析装置、製造システム、異常解析方法及びプログラム
US20200142365A1 (en) * 2018-11-05 2020-05-07 Johnson Controls Technology Company Building management system with device twinning, natural language processing (nlp), and block chain
JP2020123307A (ja) * 2019-01-29 2020-08-13 オムロン株式会社 セキュリティ装置、攻撃特定方法、及びプログラム
JP2020135100A (ja) * 2019-02-14 2020-08-31 オムロン株式会社 制御システム
WO2020213516A1 (ja) * 2019-04-18 2020-10-22 三菱電機株式会社 入退管理システム、入退管理システムの認証装置、入退管理システムの管理装置、入退管理システムの携帯端末、入退管理システムの移動体、入退管理データのデータ構造、入退管理プログラム、および入退管理システムの構築方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019240019A1 (ja) * 2018-06-11 2019-12-19 パナソニックIpマネジメント株式会社 異常解析装置、製造システム、異常解析方法及びプログラム
US20200142365A1 (en) * 2018-11-05 2020-05-07 Johnson Controls Technology Company Building management system with device twinning, natural language processing (nlp), and block chain
JP2020123307A (ja) * 2019-01-29 2020-08-13 オムロン株式会社 セキュリティ装置、攻撃特定方法、及びプログラム
JP2020135100A (ja) * 2019-02-14 2020-08-31 オムロン株式会社 制御システム
WO2020213516A1 (ja) * 2019-04-18 2020-10-22 三菱電機株式会社 入退管理システム、入退管理システムの認証装置、入退管理システムの管理装置、入退管理システムの携帯端末、入退管理システムの移動体、入退管理データのデータ構造、入退管理プログラム、および入退管理システムの構築方法

Also Published As

Publication number Publication date
WO2024033971A1 (ja) 2024-02-15
JPWO2024033971A1 (ja) 2024-02-15

Similar Documents

Publication Publication Date Title
EP4035050B1 (en) Consensus protocol for blockchain dag structure
CN110597925B (zh) 一种基于区块链的跨链数据处理方法及装置
JP7199775B2 (ja) スマートコントラクトに基づくデータ処理方法、データ処理装置、ノード機器、及びコンピュータプログラム
CN111801927B (zh) 与工业数据验证相关联的方法和促进工业数据验证的系统
AU2020414467B2 (en) Partially-ordered blockchain
US20180294956A1 (en) Systems and Methods for Data Backup and Authentication Using Blockchain
CN109542888B (zh) 区块链的数据修改和同步方法、装置、设备及存储介质
JP7065956B2 (ja) 機器を制御および/またはモニターするための方法および制御システム
CN111985003A (zh) 数据库恶意对等体识别
CN114128214B (zh) 用于配置区块链的安全层
TWI839323B (zh) 分佈式運算系統、寫入器裝置及用於產生一事件串流之方法
CN110944046B (zh) 一种共识机制的控制方法及相关设备
CN112527912A (zh) 基于区块链网络的数据处理方法、装置及计算机设备
CN113490937A (zh) 用于识别对计算机系统或计算机网络的攻击的区块链系统和以计算机实现的方法
CN111869165B (zh) 用于控制和/或监控装置的方法和控制系统
JP7258258B1 (ja) プログラマブルコントローラ、プログラマブルコントローラシステム、アクセス情報共有方法及びプログラム
JP7258257B1 (ja) プログラマブルコントローラ、例外アクセス学習方法及びプログラム
JP2023520634A (ja) 文脈完全性の維持
KR20210077133A (ko) 블록 체인 네트워크 동작 프로그램
JP2021039588A (ja) 制御システム及び制御情報配信方法
CN112425121A (zh) 关于分布式数据库的使用控制数据网络
KR20200141760A (ko) 블록체인을 활용한 매출 정보관리시스템 및 블록체인을 활용한 매출 정보관리방법
US11811896B1 (en) Pre-fetch engine with security access controls for mesh data network
US20240296146A1 (en) Pre-fetch engine with data expiration functionality for mesh data network
US20240296224A1 (en) Pre-fetch engine with outside source security for mesh data network

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221215

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20221215

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: 20230307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230404

R150 Certificate of patent or registration of utility model

Ref document number: 7258258

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150