Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6903544B2 - プログラマブル論理コントローラ実行システムの監視のためのシステム、方法、及び非一時的なコンピュータ可読媒体 - Google Patents
[go: Go Back, main page]

JP6903544B2 - プログラマブル論理コントローラ実行システムの監視のためのシステム、方法、及び非一時的なコンピュータ可読媒体 - Google Patents

プログラマブル論理コントローラ実行システムの監視のためのシステム、方法、及び非一時的なコンピュータ可読媒体 Download PDF

Info

Publication number
JP6903544B2
JP6903544B2 JP2017198987A JP2017198987A JP6903544B2 JP 6903544 B2 JP6903544 B2 JP 6903544B2 JP 2017198987 A JP2017198987 A JP 2017198987A JP 2017198987 A JP2017198987 A JP 2017198987A JP 6903544 B2 JP6903544 B2 JP 6903544B2
Authority
JP
Japan
Prior art keywords
execution system
data
code
plc
security module
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
JP2017198987A
Other languages
English (en)
Other versions
JP2018139098A (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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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 Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of JP2018139098A publication Critical patent/JP2018139098A/ja
Application granted granted Critical
Publication of JP6903544B2 publication Critical patent/JP6903544B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • G06F21/126Interacting with the operating system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program 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
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form characterised by monitoring or safety
    • G05B19/4063Monitoring general control system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program 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
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13142Debugging, tracing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15115Pc serves as plc, programming panel, monitoring panel

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Programmable Controllers (AREA)

Description

本開示は、概して、サイバーセキュリティの分野に関し、より具体的には、プログラマブル論理コントローラの実行システムを監視するためのシステム及び方法に関するものである。
自動制御システム(ACS)に関するサイバー攻撃は非常に一般的になっている。ほぼ全てのACS要素が攻撃の対象となり、プログラマブル論理コントローラ(PLC)も例外ではない。PLCには、ACSへの攻撃に利用され得る幾つかの脆弱性がある。このような脆弱性の1つは、PLCの実行システム(CodeSYS RTE等)の使用であり、それはPLCの稼働を制御するようなオペレーティングシステム上の仮想アドレス空間において実行されるモノリシック又はマルチコンポーネントプログラムで構成される。従って、入力装置との相互作用を実現するような、PLC実行システムによってサポートされる機能の構成要素が1つでも危険に晒されると、PLC実行システム全体が危険に晒されてしまう。
技術的な問題は、機能の構成要素が脆弱性を持つPLC実行システムを含むACSの安全な実行を提供することの難しさにある。
現在、ACSのセキュリティを確保するための二つの異なるアプローチがある:第一の場合では、PLC設計は厳密に決定論的な問題を実行するために開発されており、理論上は、あらゆる柔軟性(例えば、最小限の時間と労力で1つの製品から別のものに移行可能である「柔軟性」)は排除され、実行システムを古典的な理解のもとに使う必要はない。第二の場合では、PLCは、実行システムと共に使用され、PLCに最大限の柔軟性を提供するが、規範的規制の観点から機能安全の要件に細心の注意が払われているにも関わらず、情報セキュリティの問題は完全に無視される。
プログラミング論理コントローラ(PLC)の実行システムを監視するためのシステム及び方法が開示される。開示された解決策の1つの技術的結果は、セキュリティモジュールを介して、PLC実行システムを相互に又はオペレーティングシステムとの相互作用を監視することによって達成され、これはPLC実行システムをモジュールに分割し、互いのモジュールとオペレーティングシステムのリソースとの間で相互作用がセキュリティモジュールを介してルーティングされるようにする。開示された解決策の別の技術的な結果は、実行システムをモジュールに分割し、それらを隔離することによってACSの機能安全性を改善するとともに、重要なオブジェクトを制御するコードとデータのセグメントが1つのモジュールに分離され、脆弱性を含むコードのセグメントが別のモジュールに分類されることにある。すなわち、あるモジュールで脆弱性が認識されても別のモジュールを侵害することはない。なぜなら、モジュールは分離または隔離されており、それらの間の相互作用が監視されているからである。
本発明によれば、プログラミング論理コントローラ(PLC)の実行システムを監視するための方法であって、接続ステップと、分割ステップと、修正ステップと、監視ステップとを備え、前記接続ステップでは、プロセッサで実行可能なセキュリティモジュールにより、前記PLC実行システムにアクセスし、前記分割ステップでは、前記PLC実行システムの機能構造と、前記PLC実行システムのセキュリティに対する脅威と、PLC実行システムのコード及びデータの重要性とのうち少なくとも1つに基づいて、前記セキュリティモジュールにより前記PLC実行システムのコードとデータを複数のプログラムモジュールへと分割し、前記修正ステップでは、前記セキュリティモジュールにより、プログラムモジュールのデータ交換インターフェイスを修正し、前記交換インターフェイスは、前記プログラムモジュールとオペレーティングシステムのリソースとの間の相互作用に使用され、前記相互作用が前記セキュリティモジュールを介して行われるもので、交換されるデータは前記セキュリティモジュールにより指定された形式に準拠し、前記監視ステップでは、前記セキュリティモジュールにより、PLC実行システムの実行を監視し、更にPLC実行システムのプログラムモジュール同士の相互作用及びオペレーティングシステムのリソースとの相互作用を監視する、方法が提供される。
好ましくは、前記プログラムモジュールは、互いに、及び前記PLC実行システムのオペレーティングシステムのリソースから隔離される。
好ましくは、前記セキュリティモジュールにより、前記相互作用が前記セキュリティモジュールを介して発生するように、前記プログラムモジュールと前記オペレーティングシステムの前記リソースとの間の相互作用に使用される前記プログラムモジュールのデータ交換インターフェイスを修正し、ここで交換されるデータは、セキュリティモジュールにより指定された形式に準拠する。
好ましくは、前記分割ステップでは、各機能的に完全な、前記PLC実行システムのコード及びデータのセグメントを1つ以上のモジュールに分離し、PLC実行システムの残りのコードとデータを別のモジュールに分離することを含む。
好ましくは、前記分割ステップでは、脆弱性を含む前記実行システムのコード及びデータのセグメントを1つ以上のモジュールに分離し、残りのコードとPLC実行システムのデータを別のモジュールに分離することを含む。
好ましくは、前記分割ステップでは、重要なオブジェクトを制御するような前記PLC実行システムのコードとデータの各部分を1つ以上のモジュールに分離し、残りのコードとPLC実行システムのデータを別のモジュールに分離することを含む。
好ましくは、前記監視ステップでは、相互作用を修正及び停止することを更に含む。
好ましくは、プログラムモジュールは、コンテナ化を使用して分離される。
好ましくは、前記プログラムモジュールは仮想化を用いて分離され、前記セキュリティモジュールはハイパーバイザ上にインストールされる。
好ましくは、前記データ交換インターフェイスの修正は、前記データ交換のシーケンス及びプロトコルを変更することを含む。
好ましくは、前記監視ステップでは、前記セキュリティモジュールによって、(1)正常な、又は許可された相互作用を指定する規則の違反に基づく相互作用の不一致、又は(2)相互作用の、異常な、又は禁止された相互作用を指定する規則との対応に基づき、監視された相互作用において異常を検出することを更に含む。
本発明によれば、プログラミング論理コントローラ(PLC)の実行システムを監視するためのシステムであって、セキュリティモジュールを実行するハードウェアプロセッサを備え、前記ハードウェアプロセッサは、接続ステップと、分割ステップと、修正ステップと、監視ステップとを実行するように構成され、前記接続ステップでは、プロセッサで実行可能なセキュリティモジュールにより、前記PLC実行システムにアクセスし、前記分割ステップでは、前記PLC実行システムの機能構造と、前記PLC実行システムのセキュリティに対する脅威と、PLC実行システムのコード及びデータの重要性とのうち少なくとも1つに基づいて、前記セキュリティモジュールにより前記PLC実行システムのコードとデータを複数のプログラムモジュールへと分割し、前記修正ステップでは、前記セキュリティモジュールにより、プログラムモジュールのデータ交換インターフェイスを修正し、前記交換インターフェイスは、前記プログラムモジュールとオペレーティングシステムのリソースとの間の相互作用に使用され、前記相互作用が前記セキュリティモジュールを介して行われるもので、交換されるデータは前記セキュリティモジュールにより指定された形式に準拠し、前記監視ステップでは、前記セキュリティモジュールにより、PLC実行システムの実行を監視し、更にPLC実行システムのプログラムモジュール同士の相互作用及びオペレーティングシステムのリソースとの相互作用を監視する、システムが提供される。
本発明によれば、プログラミング論理コントローラ(PLC)の実行システムを監視するためのコンピュータ実行可能な命令を格納する非一時的なコンピュータ可読媒体であって、前記命令は、接続ステップと、分割ステップと、修正ステップと、監視ステップとを実行させる命令であって、前記接続ステップでは、プロセッサで実行可能なセキュリティモジュールにより、前記PLC実行システムにアクセスし、前記分割ステップでは、前記PLC実行システムの機能構造と、前記PLC実行システムのセキュリティに対する脅威と、PLC実行システムのコード及びデータの重要性とのうち少なくとも1つに基づいて、前記セキュリティモジュールにより前記PLC実行システムのコードとデータを複数のプログラムモジュールへと分割し、前記修正ステップでは、前記セキュリティモジュールにより、プログラムモジュールのデータ交換インターフェイスを修正し、前記交換インターフェイスは、前記プログラムモジュールとオペレーティングシステムのリソースとの間の相互作用に使用され、前記相互作用が前記セキュリティモジュールを介して行われるもので、交換されるデータは前記セキュリティモジュールにより指定された形式に準拠し、前記監視ステップでは、前記セキュリティモジュールにより、PLC実行システムの実行を監視し、更にPLC実行システムのプログラムモジュール同士の相互作用及びオペレーティングシステムのリソースとの相互作用を監視する、システムが提供される。
本発明の例示的な態様に係る上述の簡略化した概要は、本発明の基本的な理解を提供するように機能するものである。この概要は、全ての企図された態様の広範な概要ではなく、全ての態様の重要な又は重要な要素を特定することも本発明の任意の又は全ての態様の範囲を描写することも意図されていない。唯一の目的は、以下の本発明のより詳細な説明の前置きとして、1つ又は複数の態様を簡略化した形で提示することである。前述の目的を達成するために、本発明の1つ又は複数の態様が記載され、これは特に特許請求の範囲において主張される特徴を含むものである。
添付の図面は、本明細書に組み込まれ本明細書の一部を構成し、本開示の1つ以上の例示的な態様を示し、詳細な説明と共にそれらの原理及び実施形態を説明する役割を果たす。
PLC実行システム及びプログラミング並びにプログラムデバッグシステム(PPDS)のアーキテクチャの一例を示す。 PLC実行システムを監視するための例示的なシステム及び方法を示す。 PLC実行システムをモジュールに分割した例を示す。 PLC実行システムのモジュールの分離の例を示す。 セキュリティモジュールのPLCへのインストール例を示す。 本明細書に開示されたシステム及び方法を実装することができる汎用コンピュータシステムの例を示す。
例示的な態様は、本明細書において、プログラマブル論理コントローラの実行システムを監視するためのシステム、方法、及びコンピュータプログラム製品に関連して説明される。当業者であれば、以下の説明は例示的なものにすぎず、決して限定することを意図するものではないことを理解するであろう。 他の態様は、本開示の恩恵を受ける当業者には容易に示唆されるであろう。 添付の図面に例示されている例示的な態様の実装を詳細に参照する。 同じ符号は、図面全体にわたって可能な限り使用され、以下の記載は、同じ又は同様の対象を参照する。
図1は、プログラマブル論理コントローラ(PLC)及びそのプログラミング並びにプログラムデバッグシステム(PPDS)の実行システムのアーキテクチャの一例を示す。
プログラマブル論理コントローラ(PLC)は工業用コントローラの電子コンポーネントであり、工業プロセスの自動化に使用される特殊な(コンピュータ化された)デバイスである。実行システム(実行ランタイム、ランタイム環境)は、コンピュータプログラムを実行するために必要なソフトウェア及び/又はハードウェア環境であり、コンピュータプログラムの実行中にアクセス可能である。これは、実装システム、実装環境、実行環境、或いは実行システムとも呼ばれる。
プログラマブル論理コントローラ(制御ランタイムシステム)の実行システムは、制御(アプリケーション)プログラムを実行するために必要であり、実行中に制御プログラムにアクセス可能であるような、PLCにインストールされたプログラム環境である。それはPLCのアプリケーションプログラムのロードと実行及びデバッグ機能を有効にする。それはコントローラの製造過程においてコントローラにインストールされる。それはモノリシック(単一コンポーネント)プログラム又はプログラムの複合体(複数のコンポーネントで構成される)である。モノリシックプログラムの場合、ネットワーク交換、I/Oデバイスへのアクセス、及び他の機能を担うような全ての機能的に完全なコード(即ち、自身と異なる形式によるプログラムコード:オブジェクトコード、バイトコード(中間コード)、実行可能コード、マシンコード)とプログラムデータセグメントが、1つのコンポーネント内に収容される;そうでない場合、それらは幾つかのコンポーネント(ライブラリ等)に分割されている。これらのシステムの例は、MasterPLC実行システムとCodeSys Runtime実行システムである。
単一のプログラム内に収容された、ネットワーク交換、I/Oデバイスへのアクセス、及び他の機能を実現するような機能的に完全なコードセグメント及びデータセグメントを、以下、A機能、B機能及びC機能と呼び、例えば「A機能」は、「A関数」の実現を担うコードとデータの機能的に完全なセグメントを意味する。機能コンポーネントは、プログラムコンポーネントと区別する必要がある。機能コンポーネントは機能構造の要素であり、プログラムコンポーネントはプログラム複合体の要素である。
実行システムの構成要素は、プログラム(例えば、アプリケーション、ライブラリ)、機能、機能ブロックに結合された、機能的に完全なコード及びデータセグメントのセットであり、実行システムはそこから階層的に構築されている。これらのコンポーネントは、インターフェイスを介して互いに相互作用する。本開示の文脈において、実行システムのモジュールは、他のPLC実行システムのコンポーネントとは別に(例えば、異なるアドレス空間内で)実行されるコンポーネントの特別な場合である。
実行システムが階層的に構築されるような相互に関連するコンポーネント(モジュール)全体が、機能構造(実行システムによって実行される機能)を実現する。相互に関係する構成要素の相互作用の順序及び形式は、機能論理により決定される。特定の場合では、実現された機能構造及び機能論理(機能構造の要素の相互作用方法)は、ビジネス論理実行環境のコード内で実現される。特定の場合の相互作用方法は、要素間の相互作用の順序及び形式を決定する。
実行システムのビジネス論理は、実行環境のクラス、方法、一連の手順及び関数のコードにおいて実現される、対象領域内のオブジェクトの動作の規則、原理、及び関係のセットである。実行環境のビジネス論理の要素は、命令、クラス、方法、一連の手順及び関数の機能的に完全なセットである。要素のセットは、実行システム又はその一部の機能構造を形成する。
PLC実行システムのビジネス論理は、実行環境のクラス、方法、一連の手順及び関数のコードにおいて実現される、自動化される技術プロセスにおけるオブジェクトの動作の規則、原理、及び関係のセットである。例えば、ネットワーク交換のシーケンス、I/Oデバイスへのアクセス、PLC OSとの相互作用等である。
例示的な一態様では、プログラミング並びにプログラムデバッグシステム(PPDS)をPLC実行システムに接続できる。PPDSは、アプリケーションプログラムをPLCのメモリにロードし、PLC実行システムの制御下で転送することを可能にする。PPDSの例を図1に示す。例示的な一態様では、PPDSを使用してPLC実行システムを制御し、その構成を変更し、追加のモジュールをPLCにインストールすることができる。例示的な一態様では、PPDSは汎用コンピュータ(図6に示すもの等)のプロセッサ上に実装することができる。
発明の背景の章で述べたように、PLC実行システムはモノリシックプログラムを構成するか、又は同じプロセスで実行されるコンポーネントで構成されているため、セキュリティに問題がある。本発明は、実行システムを複数のモジュールに分割し、PLC実行システムの機能構造のあらゆる所定要素、又は実行システムの所与のコードセグメントに対し、両者間の相互作用及び各々のオペレーティングシステムのリソースとの相互作用を監視することを可能にする。本発明は、他の実行システムと共に使用され、モノリシックプログラム又はマルチコンポーネントプログラムが同じプロセスで実行される場合、以下のことが可能である:それらのオブジェクトが機能している(実行されている)コンピュータシステムのセキュリティを高めること;これらのオブジェクトの要素の相互作用の監視を提供すること。
本発明は、実行プログラム又はシステム全体のみならず、実行を監視する必要があるプログラム及びプログラム複合体のモノリシックな部品及びコンポーネントに適用することができ、加えて、それらの部品又はコンポーネントが実行中であるようなコンピュータシステムのセキュリティを高める。従って、明示的に記載されていない限り、或いは、部品と個々のコンポーネント(モジュール)、モノリシックプログラムとその部分、及びプログラムの同一のアドレス空間及び個々のコンポーネント(モジュール)で実行されるようなマルチコンポーネントプログラムに対するPLCの特性から現れる、PLC実行システムの性質によって指示されない限り、PLC実行システムについて言及されていることは等しく真実であることに留意されたい。
図2は、PLC実行システムを監視するための例示的なシステム及び方法を示す。 ステップ200において、PLC実行システムはセキュリティモジュールによってアクセスされ、例示的な一態様では、それはPLCにインストールされたセキュリティアプリケーションとして実装され得る。一般に、セキュリティモジュールは、PLC実行システムの実行の監視を提供する。セキュリティモジュールの動作のより詳細な説明を以下に記述する。PLC実行システムは、PLCから抽出されるか、又はPLCにインストールされる前に取得される。或いはその代わりに、この方法はPLC上で直接実行されてもよい。
次に、ステップ210において、PLC実行システムのコード及びデータは、セキュリティモジュールによって、例えば、PLC実行システムの機能構造に基づく個々のプログラムモジュールに分割される。この分割プロセスの間に、PLC実行システムの機能的に完全なコード及びデータセグメントが1つ以上のプログラムモジュールに分離され、PLC実行システムの残りのコード及びデータは別のモジュールに分離される。図3aはそのような分割の例を示しており、「A関数」の実行を意図したコード及びデータセグメントは「モジュール1」に分離され、「B関数」の実行を意図したコード及びデータセグメントは「モジュール2」に分離され、残りの「他の機能」の実行を意図したコード及びデータセグメントは「モジュール3」に分離される。
別の例示的な態様では、PLCシステムのコード及びデータは、PLC実行システムに対するセキュリティ脅威に基づいて分割されてもよい。このような分割プロセスでは、脅威の実行に利用され得る脆弱性を含む実行システムの1つのコード及びデータセグメント(又はネットワーク相互作用を担うセグメント等の、攻撃の最初のターゲットであるような脆弱なコードセグメント)は1つ以上のモジュールに分離され、残りのコードと実行システムのデータは別のモジュールに分離される。図3bはそのような分割を示しており、例えば、A、B、C機能の実行を意図したコードセグメント及びデータセグメントは脆弱性を含んでおり、「A関数」の実行を意図したコード及びデータセグメントは「モジュール1」に分離され、「B関数」と「C関数」の実行を意図したコードセグメントとデータセグメントは「モジュール2」に分離され、残りの「その他の機能」の実行を意図し、且つ脆弱性を含まないコード及びデータセグメントは「モジュール3」に分離されている。
更に別の例示的な態様では、分割プロセスは、実行システムのコード及びデータセグメントの重要性に基づくこともでき、その場合、重要なオブジェクト(重要なコード及びデータセグメント)を制御するPLC実行システムのコード及びデータセグメントが1つ以上のモジュールに分離され、PLC実行システムの残りのコード及びデータが別のモジュールに分離される。一般に、重要なオブジェクトは、実行中の中断により、実行中のシステム又は他のシステム又はオブジェクトに対し、システムクラッシュ等の重大な損害を引き起こす可能性のあるオブジェクトである。図3cはそのような分割の例を示しており、ここでは「A関数」の実行を意図したコード及びデータセグメントが重要なコードであり且つ重要なデータを含んでおり、そのセグメントはモジュール1に分離されている。一方、残りの「B関数」、「C関数」及び「その他の関数」の実行を意図したコード及びデータセグメントは「モジュール2」に分離されている。
様々な態様では、これらの分割基準は、別々に又は共同して使用することができ、図3bに示す例では、脆弱性の存在のみならずPLC実行システムの機能構造に基づく分割も使用される一方、図3cに示す例では、コード/データの重要性のみならずPLC実行システムの機能構造に基づく分割も使用される。
図3b及び図3cは、脆弱性を含むか、又は重要なオブジェクトの制御に使用されるような、機能的に完全なコード及びデータセグメントがモジュールに分離される例を示す:一般に、重要性とセキュリティの脅威に基づく分割の場合、機能的に完全なセグメントをモジュールに分離する必要はない。一方、任意の特定の重要なセグメント、又は脆弱性を含むセグメントは分離され得る。理解を容易にするための例を示す。
コードセグメントをモジュールに分離する場合、モジュール間の相互作用の方法(データ交換の順序及び形式)は、分割前のPLC実行システムにおけるこれらのセグメントの相互作用の方法と同等に構成されている。換言すれば、特定のセグメントが所与のセグメントとどのように、又はどのような順序で相互作用しても、それらのコードセグメントを含むモジュールは、PLC実行システムの分割後にそのセグメントと同様に相互作用する。
ステップ220において、以前に作成されたプログラムモジュールらは、互いに、オペレーティングシステムから、及び、例えばコンテナ又は仮想マシンを用いた仮想化技術を使用するセキュリティモジュールにより装置から、隔離されてもよい。 コンテナを使用する場合(図4を参照)、モジュールはコンテナ内に配置され、モジュールが互いに及びオペレーティングシステムと相互作用するような制御サービスがオペレーティングシステム上にインストールされる;そのようなサービスの例は、Dockerサービス(Dockerエンジン)である。バーチャルマシンを使用する場合、モジュールは、モニタの種類が様々であるようなバーチャルマシンに配置され、それらは次のようなものである:VMware ESX等のタイプIのハイパーバイザ(図4bを参照);Microsoft Virtual PC、VM Workstation、QEMU、Parallels、VirtualBox等のII型のハイパーバイザ(図4c参照);Xen、Citrix XenServer、Microsoft Hyper−V等のハイブリッドハイパーバイザ(図4d参照)。
更に、特定の瞬間において、隔離に際して以下のものを使用できることにも言及する必要がある:PikeOS(又は他のタイプのセキュアOS)の分割;Linuxによるコンテナ化(Linux Containers、LXC)。例示的な一態様では、全てのモジュールが分離されるわけではなく、オペレーティングシステム及び他のモジュールとのそれらの相互作用は変更されないままである。これは、図中のモジュールNの例に示されており、この場合は分離は任意である。
セキュリティモジュールはPLC上にインストールされ得ることに留意されたい。 例示的な一態様では、セキュリティモジュールは、セキュリティ機能の実現を担う機能的に完全なコード及びデータセグメントのセットを含むことができる(これらの機能がどのように実現されるかについては後述する)。セキュリティモジュールが機能するPLCアーキテクチャのレベルは、PLC実行システムのモジュールの分離に使用される技術によって決まる。例えば、コンテナが分離に使用され(図4a)、PLC OSにコントロールサービス(Docker等)がインストールされている場合、セキュリティモジュールはコンテナと同じレベルに配置される(図5a参照)。仮想マシンが分離に使用されている場合(図4b、図4c、図4d参照)、セキュリティモジュールは仮想マシン(ハイパーバイザ)のモニタのレベルにインストールされるか、又はそこに埋め込まれる(図5b、図5c参照)。同ステップでは、特定の分離条件の下で、他のモジュールとの相互作用及びオペレーティングシステムのリソースとの相互作用に使用された、分離済モジュールのデータ交換のインターフェイスが、この相互作用がセキュリティモジュールのみを介した分離条件の下で行われるように修正される一方、交換されたデータの形式はセキュリティモジュールにより指示された形式に準拠する。
その結果、セキュリティモジュールは、セキュリティ機能、即ち、実行システムの実行の監視を提供することができる。これは、次のようなものである:分離されたモジュール間の相互作用と、PLCオペレーティングシステム又は装置のリソースとの相互作用の監視;この相互作用の補正と、相互作用の停止。セキュリティモジュールは、その形式がモジュール同士及びモジュールとオペレーティングシステムとの間で交換されるデータの形式と一致するような規則に基づき、監視を提供する。相互作用は、セキュリティモジュールによって、セキュリティモジュールに記憶された論理規則に準拠することが検証され、規則には、許容される相互作用の記述が含まれる。
セキュリティモジュールは相互作用の監視を提供し、相互作用が規則に則しているかどうかが検証される。相互作用が規則に準拠する場合、相互作用は許可され、データは受信者にディスパッチされる。一方、相互作用が規則に準拠しない場合、相互作用の修正が実行され(セキュリティモジュールを介して受信者とソースによって交換されるデータに変更が加えられる)、相互作用は許可されない(相互作用は停止される)。相互作用とその相互作用を記述する規則との間に違反があった場合にセキュリティモジュールが行うべきことは、もしそのモジュール自身が発生した相互作用に対する規則を有していなければ(使い捨て規制)、規則自体又は補助規則により決定される。例えば、「モジュール1」の「モジュール2」との許容される相互作用(図5b参照)は、「モジュール1」がソースで「モジュール2」が受信者である場合、主要な「規則A」及びオプションの 「規則B」により記述される;セキュリティモジュールには補助的な「規則X」も含まれており、他の規則には発生した相互作用に対する如何なる指示も含まれていないような事象に対し使用されるべきである。前記相互作用の監視中、セキュリティモジュールは、「モジュール1」と「モジュール2」との相互作用が「規則A」に従わないことを発見した。そのような場合、「規則A」は、相互作用が「規則B」に準拠するかを検証することを規定している。従ってセキュリティモジュールは相互作用が「規則B」に準拠するかどうかを検証し、相互作用は「規則B」にも準拠していないことを検出するが、この例では「規則B」は何も規定しないので、セキュリティモジュールは、例えば、相互作用の停止を要求する特定の「規則X」を適用する。
モジュール間の相互作用の検証のためのより詳細な規則の例が以下に提供される:例えば、PLCは、通信モジュールとコアモジュールとを備える。通信モジュールは、ヒューマンマシンインタフェース(HMI)との相互作用を担うことができる。コアモジュールは、PLCプログラムの実行及び実際の機器へのコマンド送信を担うことができる。通信モジュールとコアモジュールとの間には、「PLCプログラム更新」、「監査ログの読み取り」、「ファイルのダウンロード」、「PLCプログラムの停止」等のコマンドセットをサポートするインターフェイスがある。セキュリティモジュールは、通信モジュールからからコアモジュールへと送られる全てのコマンドを制御することができる。例えば、セキュリティモジュールは、以下の規則を実装することができる:(a)「動作モード」のセット(例えば、「通常動作」、「メンテナンス」、「監査」)がある。(b)全てのモードは許可されたコマンドのリストに関連付けられる。例えば、「通常動作」は 「PLCステータス読み出し」コマンドを有するが、 「PLCプログラム更新」コマンドはない。(c)ある瞬間には1つのモードのみがアクティブである。(d)従って、あるコマンドは、現在のモードにこのコマンドがある場合にのみ規則により許可される。
本発明は、PLC実行システムの実行における異常を検出するためにも使用することができる。異常が検出された場合、モジュールを分離する必要はなく、特定の場合には上記の方法で分離を使用することができる。モジュールの分割が実行された後、セキュリティモジュールがPLCにインストールされ、モジュールのデータ交換インターフェイスが、指定された相互作用がインストールされたセキュリティモジュールを介してのみ実行され、交換されるデータの形式がセキュリティモジュールによって定義される形式に対応するような、モジュール同士及びモジュールとオペレーティングシステムのリソースとのインターフェイスへと修正される。従って、全体又は一部が交換されるメッセージの構造はセキュリティモジュールに知られており、この構造(データ形式、或いはインターフェイスとも呼ばれる)は、例えば、インターフェイス定義言語(IDL)を使用して記述され、セキュリティモジュールは、その結果、送信されたメッセージがこの記述に対応することを検証でき、アクセシビリティ制御の目的でこのメッセージの個々のフィールドを使用することもできる。
次に、PLC実行システムのモジュールに対し、モジュール同士の相互作用及びモジュールとオペレーティングシステムのリソースとの相互作用が、1つ以上の相互作用がこの相互作用のために確立された規則に準拠するかどうかをセキュリティモジュールがチェックすることにより監視される。モジュールとシステムとの間で交換されるメッセージはセキュリティモジュールによりチェックされる。というのも、上述したように、交換されたメッセージの構造、特にその相互作用が何に基づいて構築されたかがセキュリティモジュールに知られているためである。
監視プロセスでは、通常又は許可された相互作用バリエーションを指定する規則に違反するかを確認することでセキュリティモジュールにより検出された相互作用の不一致に基づいて、PLC実行システムの実行により異常が検出される。他の場合には、PLC実行システムの実行において、セキュリティモジュールによって検出された相互作用と、相互作用の異常又は禁止された相互作用バリエーションを指定する規則との対応に基づき、異常が検出される。
具体的には、図6は、例示的な態様に従って、開示されたシステム及び方法が実装され得る汎用コンピュータシステム(パーソナルコンピュータ又はサーバであり得る)の例を示す。図示のように、コンピュータシステム20は、中央処理装置21、システムメモリ22、及び中央処理装置21に関連するメモリを含む様々なシステム構成要素を接続するシステムバス23を含む。システムバス23は、他のバスアーキテクチャと相互作用することができるバスメモリ又はバスメモリコントローラ、周辺バス及びローカルバスを含む、従来技術から公知の任意のバス構造のように実現される。システムメモリは、読み出し専用メモリ(ROM)24及びランダムアクセスメモリ(RAM)25を含む。基本入出力システム(BIOS)26は、パーソナルコンピュータ20の要素間の情報の転送を保証する基本的な手順、例えばROM24の使用によりオペレーティングシステムをロードするときのものなどを含む。
パーソナルコンピュータ20は、データを読み書きするためのハードディスク27と、リムーバブル磁気ディスク29に読み書きするための磁気ディスクドライブ28と、リムーバブル光ディスク31に読み書きするための光学ドライブ30とを含む。 CD−ROM、DVD−ROM、及び他の光情報媒体として使用することができる。ハードディスク27、磁気ディスクドライブ28、及び光ドライブ30は、それぞれハードディスクインターフェース32、磁気ディスクインターフェース33及び光ドライブインターフェース34を介してシステムバス23に接続されている。 ドライブ及び対応するコンピュータ情報媒体は、パーソナルコンピュータ20のコンピュータ命令、データ構造、プログラムモジュール及び他のデータを格納するための電力に依存しないモジュールである。
本開示は、ハードディスク27、リムーバブル磁気ディスク29及びリムーバブル光ディスク31を使用するシステムの実装を提供するが、他のタイプのコンピュータ情報媒体56を使用することも可能であることを理解されたい。 コントローラ55を介してシステムバス23に接続されたコンピュータ(ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ(RAM)など)によって読み取り可能な形式でデータを格納する。
コンピュータ20は、記録されたオペレーティングシステム35が保持されるファイルシステム36と、追加のプログラムアプリケーション37と、他のプログラムモジュール38と、プログラムデータ39とを有する。ユーザは、入力装置(キーボード40、マウス42)を使用して、パーソナルコンピュータ20にコマンド及び情報を入力することができる。マイクロホン、ジョイスティック、ゲームコントローラ、スキャナなどの他の入力装置(図示せず)を使用することができる。このような入力装置は、通常、シリアルポート46を介してコンピュータシステム20に接続され、シリアルポート46は、システムバスに接続されるが、例えば、パラレルポート、ゲームポート又は ユニバーサルシリアルバス(USB)。モニタ47又は他のタイプの表示装置もまた、ビデオアダプタ48などのインターフェイスを介してシステムバス23に接続される。モニタ47に加えて、パーソナルコンピュータは、スピーカ、プリンタなどの他の周辺出力装置(図示せず)を備えることができる。
パーソナルコンピュータ20は、1つ又は複数のリモートコンピュータ49へのネットワーク接続を使用して、ネットワーク環境内で動作することができる。リモートコンピュータ(又は複数のコンピュータ)49はまた、パーソナルコンピュータ20の性質を説明する上で、前述の要素の大部分又はすべてを有するパーソナルコンピュータ又はサーバである。ルータ、ネットワークステーション、ピアデバイス又は他のネットワークノードなど、他のデバイスもコンピュータネットワークに存在することができる。
ネットワーク接続は、有線及び/又は無線ネットワーク、広域コンピュータネットワーク(WAN)などのローカルエリアコンピュータネットワーク(LAN)50を形成することができる。このようなネットワークは、企業のコンピュータネットワーク及び社内ネットワークで使用され、一般にインターネットにアクセスします。LAN又はWANネットワークでは、パーソナルコンピュータ20は、ネットワークアダプタ又はネットワークインタフェース51を介してローカルエリアネットワーク50に接続される。ネットワークが使用される場合、パーソナルコンピュータ20は、インターネットなどの広域コンピュータネットワークとの通信を提供するために、モデム54又は他のモジュールを使用することができる。モデム54は、内部又は外部の装置であり、シリアルポート46によってシステムバス23に接続されている。ネットワーク接続は単なる例であり、ネットワークの正確な構成を示す必要はない、すなわち、実際には、ブルートゥースのような技術通信モジュールによって1つのコンピュータと他のコンピュータとの接続を確立する他の方法がある。
様々な態様において、本明細書に記載のシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実施されてもよい。 ソフトウェアで実施される場合、方法は、非一時的なコンピュータ可読媒体上に1つ以上の命令又はコードとして格納されてもよい。 コンピュータ可読媒体は、データ記憶装置を含む。 限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、フラッシュメモリ、又は他のタイプの電気、磁気、又は光学記憶媒体、又は 所望のプログラムコードを命令又はデータ構造の形で運び、格納又は格納することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
様々な実施形態で、本発明のシステム及び方法が、モジュールとして実装され得る。ここで用語「モジュール」は、実世界の機器、コンポーネント、又はハードウェアを用いて実装されたコンポーネント配置であり、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)等の、又は例えばモジュールの機能を実行するマイクロプロセッサシステムや指示セットによる等、ハードウェアとソフトウェアの組み合わせとして実装され得る。これらは、実行中にマイクロプロセッサシステムを特定の機器に変換する。モジュールは、ハードウェア単体により促進される一定の機能とハードウェア及びソフトウェアの組み合わせによって促進される他の機能という2つの組み合わせとして実施されてもよい。モジュールの少なくとも一部又は全部は、汎用コンピュータのプロセッサにおいて実行できる(図3において詳述したもの等)。したがって、各モジュールは様々な適当な構成で実現することができて、ここに例示した特定の実装に限られるものではない。
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。本明細書で開示された様々な側面は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、側面及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。

Claims (23)

  1. プログラミング論理コントローラ(PLC)の実行システムを監視するための方法であって、
    接続ステップと、分割ステップと、修正ステップと、監視ステップとを備え、
    前記接続ステップでは、プロセッサで実行可能なセキュリティモジュールにより、前記PLC実行システムにアクセスし、
    前記PLC実行システムは、コードを含み、
    前記コードは、同じプロセスで実行するためのモノリシックなものであり、
    前記分割ステップでは、PLC実行システムの機能構造と、PLC実行システムのセキュリティに対する脅威と、PLC実行システムのコード及びデータの重要性とのうち少なくとも1つについての、データ記憶装置に予め記憶されている特定の分割基準に基づいて、前記セキュリティモジュールにより前記PLC実行システムのコードとデータを複数のプログラムモジュールへと分割し、
    前記機能構造に基づきコードとデータを分割するステップは、各機能的に完全な、前記PLC実行システムのコード及びデータのセグメントを、それぞれのモジュールに分離するステップを含み、
    前記修正ステップでは、前記セキュリティモジュールにより、プログラムモジュールのデータ交換インターフェイスを修正し、
    前記交換インターフェイスは、
    前記プログラムモジュールとオペレーティングシステムのリソースとの間の相互作用に使用され、
    前記相互作用が前記セキュリティモジュールを介して行われるもので、
    修正されたデータ交換インターフェイスを用いて交換されるデータは前記セキュリティモジュールにより指定された形式に準拠し、
    前記監視ステップでは、前記セキュリティモジュールにより、PLC実行システムの実行を監視し、更にPLC実行システムのプログラムモジュール同士の相互作用及びオペレーティングシステムのリソースとの相互作用を監視する、
    方法。
  2. 請求項1に記載の方法において、
    前記プログラムモジュールは、互いに、及び前記PLC実行システムのオペレーティングシステムのリソースから隔離される、
    方法。
  3. 請求項2に記載の方法において、
    前記セキュリティモジュールにより、前記相互作用が前記セキュリティモジュールを介して発生するように、前記プログラムモジュールと前記オペレーティングシステムの前記リソースとの間の相互作用に使用される前記プログラムモジュールのデータ交換インターフェイスを修正し、ここで交換されるデータは、セキュリティモジュールにより指定された形式に準拠する、
    方法。
  4. 請求項1に記載の方法において、
    前記分割ステップでは、各機能的に完全な、前記PLC実行システムのコード及びデータのセグメントを1つ以上のモジュールに分離し、PLC実行システムの残りのコードとデータを別のモジュールに分離することを含む、
    方法。
  5. 請求項1に記載の方法において、
    前記分割ステップでは、脆弱性を含む前記実行システムのコード及びデータのセグメントを1つ以上のモジュールに分離し、残りのコードとPLC実行システムのデータを別のモジュールに分離することを含む、
    方法。
  6. 請求項1に記載の方法において、
    前記分割ステップでは、重要なオブジェクトを制御するような前記PLC実行システムのコードとデータの各部分を1つ以上のモジュールに分離し、残りのコードとPLC実行システムのデータを別のモジュールに分離することを含む、
    方法。
  7. 請求項1に記載の方法において、
    前記監視ステップでは、相互作用を修正及び停止することを更に含む、
    方法。
  8. 請求項2に記載の方法において、
    プログラムモジュールは、コンテナ化を使用して分離される、
    方法。
  9. 請求項2に記載の方法において、
    前記プログラムモジュールは仮想化を用いて分離され、前記セキュリティモジュールはハイパーバイザ上にインストールされる、
    方法。
  10. 請求項1に記載の方法において、
    前記データ交換インターフェイスの修正は、データ交換のシーケンス及びデータの形式を変更することを含む、
    方法。
  11. 請求項1に記載の方法において、
    前記監視ステップでは、前記セキュリティモジュールによって、
    (1)正常な、又は許可された相互作用を指定する規則の違反に基づく相互作用の不一致、又は
    (2)相互作用の、異常な、又は禁止された相互作用を指定する規則との対応
    に基づき、監視された相互作用において異常を検出することを更に含む、
    方法。
  12. プログラミング論理コントローラ(PLC)の実行システムを監視するためのシステムであって、セキュリティモジュールを実行するハードウェアプロセッサを備え、
    前記ハードウェアプロセッサは、接続ステップと、分割ステップと、修正ステップと、監視ステップとを実行するように構成され、
    前記接続ステップでは、プロセッサで実行可能なセキュリティモジュールにより、前記PLC実行システムにアクセスし、
    前記PLC実行システムは、コードを含み、
    前記コードは、同じプロセスで実行するためのモノリシックなものであり、
    前記分割ステップでは、PLC実行システムの機能構造と、PLC実行システムのセキュリティに対する脅威と、PLC実行システムのコード及びデータの重要性とのうち少なくとも1つについての、データ記憶装置に予め記憶されている特定の分割基準に基づいて、前記セキュリティモジュールにより前記PLC実行システムのコードとデータを複数のプログラムモジュールへと分割し、
    前記機能構造に基づきコードとデータを分割するステップは、各機能的に完全な、前記PLC実行システムのコード及びデータのセグメントを、それぞれのモジュールに分離するステップを含み、
    前記修正ステップでは、前記セキュリティモジュールにより、プログラムモジュールのデータ交換インターフェイスを修正し、
    前記交換インターフェイスは、
    前記プログラムモジュールとオペレーティングシステムのリソースとの間の相互作用に使用され、
    前記相互作用が前記セキュリティモジュールを介して行われるもので、
    修正されたデータ交換インターフェイスを用いて交換されるデータは前記セキュリティモジュールにより指定された形式に準拠し、
    前記監視ステップでは、前記セキュリティモジュールにより、PLC実行システムの実行を監視し、更にPLC実行システムのプログラムモジュール同士の相互作用及びオペレーティングシステムのリソースとの相互作用を監視する、
    システム。
  13. 請求項12に記載のシステムにおいて、
    前記プログラムモジュールは、互いに、及び前記PLC実行システムのオペレーティングシステムのリソースから隔離される、
    システム。
  14. 請求項13に記載のシステムにおいて、
    前記セキュリティモジュールにより、前記相互作用が前記セキュリティモジュールを介して発生するように、前記プログラムモジュールと前記オペレーティングシステムの前記リソースとの間の相互作用に使用される前記プログラムモジュールの前記データ交換インターフェイスを修正し、ここで交換されるデータは、セキュリティモジュールにより指定された形式に準拠する、
    システム。
  15. 請求項12に記載のシステムにおいて、
    前記分割ステップでは、各機能的に完全な、前記PLC実行システムのコード及びデータのセグメントを1つ以上のモジュールに分離し、PLC実行システムの残りのコードとデータを別のモジュールに分離することを含む、
    システム。
  16. 請求項12に記載のシステムにおいて、
    前記分割ステップでは、脆弱性を含む前記実行システムのコード及びデータのセグメントを1つ以上のモジュールに分離し、残りのコードとPLC実行システムのデータを別のモジュールに分離することを含む、
    システム。
  17. 請求項12に記載のシステムにおいて、
    前記分割ステップでは、重要なオブジェクトを制御するような前記PLC実行システムのコードとデータの各部分を1つ以上のモジュールに分離し、残りのコードとPLC実行システムのデータを別のモジュールに分離することを含む、
    システム。
  18. 請求項12に記載のシステムにおいて、
    前記監視ステップでは、相互作用を修正及び停止することを更に含む、
    システム。
  19. 請求項13に記載のシステムにおいて、
    プログラムモジュールは、コンテナ化を使用して分離される、
    システム。
  20. 請求項13に記載のシステムにおいて、
    前記プログラムモジュールは仮想化を用いて分離され、前記セキュリティモジュールはハイパーバイザ上にインストールされる、
    システム。
  21. 請求項12に記載のシステムにおいて、
    前記データ交換インターフェイスの修正は、データ交換のシーケンス及びデータの形式を変更することを含む、
    システム。
  22. 請求項12に記載のシステムにおいて、
    前記監視ステップでは、前記セキュリティモジュールによって、
    (1)正常な、又は許可された相互作用を指定する規則の違反に基づく相互作用の不一致、又は
    (2)相互作用の、異常な、又は禁止された相互作用を指定する規則との対応
    に基づき、監視された相互作用において異常を検出することを更に含む、
    システム。
  23. プログラミング論理コントローラ(PLC)の実行システムを監視するためのコンピュータ実行可能な命令を格納する非一時的なコンピュータ可読媒体であって、
    前記命令は、接続ステップと、分割ステップと、修正ステップと、監視ステップとを実行させる命令であって、
    前記接続ステップでは、プロセッサで実行可能なセキュリティモジュールにより、前記PLC実行システムにアクセスし、
    前記PLC実行システムは、コードを含み、
    前記コードは、同じプロセスで実行するためのモノリシックなものであり、
    前記分割ステップでは、PLC実行システムの機能構造と、PLC実行システムのセキュリティに対する脅威と、PLC実行システムのコード及びデータの重要性とのうち少なくとも1つについての、データ記憶装置に予め記憶されている特定の分割基準に基づいて、前記セキュリティモジュールにより前記PLC実行システムのコードとデータを複数のプログラムモジュールへと分割し、
    前記機能構造に基づきコードとデータを分割するステップは、各機能的に完全な、前記PLC実行システムのコード及びデータのセグメントを、それぞれのモジュールに分離するステップを含み、
    前記修正ステップでは、前記セキュリティモジュールにより、プログラムモジュールのデータ交換インターフェイスを修正し、
    前記交換インターフェイスは、
    前記プログラムモジュールとオペレーティングシステムのリソースとの間の相互作用に使用され、
    前記相互作用が前記セキュリティモジュールを介して行われるもので、
    修正されたデータ交換インターフェイスを用いて交換されるデータは前記セキュリティモジュールにより指定された形式に準拠し、
    前記監視ステップでは、前記セキュリティモジュールにより、PLC実行システムの実行を監視し、更にPLC実行システムのプログラムモジュール同士の相互作用及びオペレーティングシステムのリソースとの相互作用を監視する、
    非一時的なコンピュータ可読媒体。
JP2017198987A 2017-02-08 2017-10-13 プログラマブル論理コントローラ実行システムの監視のためのシステム、方法、及び非一時的なコンピュータ可読媒体 Active JP6903544B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2017104131A RU2638000C1 (ru) 2017-02-08 2017-02-08 Способ контроля системы исполнения программируемого логического контроллера
RU2017104131 2017-02-08
US15/715,258 US10599120B2 (en) 2017-02-08 2017-09-26 System and method of monitoring of the execution system of a programmable logic controller
US15/715,258 2017-09-26

Publications (2)

Publication Number Publication Date
JP2018139098A JP2018139098A (ja) 2018-09-06
JP6903544B2 true JP6903544B2 (ja) 2021-07-14

Family

ID=60581489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017198987A Active JP6903544B2 (ja) 2017-02-08 2017-10-13 プログラマブル論理コントローラ実行システムの監視のためのシステム、方法、及び非一時的なコンピュータ可読媒体

Country Status (4)

Country Link
US (2) US10599120B2 (ja)
JP (1) JP6903544B2 (ja)
CN (1) CN108399330B (ja)
RU (1) RU2638000C1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019217624A1 (de) * 2019-11-15 2021-05-20 Robert Bosch Gmbh Industrielles Steuerungssystem in der Automatisierungstechnik mit unabhängig voneinander agierenden Modulen
RU2750626C2 (ru) * 2019-11-27 2021-06-30 Акционерное общество "Лаборатория Касперского" Система и способ управления доступом в электронных блоках управления транспортными средствами
US12566589B2 (en) 2023-09-11 2026-03-03 Bank Of America Corporation System and method for determining data feed sources for interactive automated code generation and modification
US12578933B2 (en) * 2023-09-11 2026-03-17 Bank Of America Corporation System and method for interactive automated code generation and modification for data processing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321829A (en) * 1990-07-20 1994-06-14 Icom, Inc. Graphical interfaces for monitoring ladder logic programs
US7730318B2 (en) * 2003-10-24 2010-06-01 Microsoft Corporation Integration of high-assurance features into an application through application factoring
JP4664055B2 (ja) 2004-12-10 2011-04-06 株式会社エヌ・ティ・ティ・ドコモ プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
DE102005007477B4 (de) * 2005-02-17 2015-06-11 Bosch Rexroth Aktiengesellschaft Programmierbare Steuerung zur Maschinen-und/oder Anlagenautomatisierung mit Standard-Steuerungs- und Sicherheitsfunktionen und Kommunikation mit einer Sicherheits-EA sowie Verfahren zum Betrieb der programmierbaren Steuerung
US8584109B2 (en) * 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
US8745361B2 (en) 2008-12-02 2014-06-03 Microsoft Corporation Sandboxed execution of plug-ins
JP5990927B2 (ja) * 2012-02-17 2016-09-14 富士電機株式会社 制御システム、制御装置及びプログラム実行制御方法
US8667589B1 (en) 2013-10-27 2014-03-04 Konstantin Saprygin Protection against unauthorized access to automated system for control of technological processes
EP3161613A4 (en) * 2014-06-30 2018-04-11 Firmitas Cyber Solutions (Israel) Ltd. System and method of generating a secured communication layer
US20160028693A1 (en) * 2014-07-28 2016-01-28 Ge Intelligent Platforms, Inc. Apparatus and method for security of industrial control networks
CN104597833B (zh) * 2015-01-14 2017-03-22 上海海得控制系统股份有限公司 一种plc保护系统及保护方法
US10365626B2 (en) 2015-02-12 2019-07-30 Siemens Aktiengesellschaft Extending the functionality of a programmable logic controller (PLC) with apps without changing the PLC programming
US10944764B2 (en) * 2015-02-13 2021-03-09 Fisher-Rosemount Systems, Inc. Security event detection through virtual machine introspection
WO2016172514A1 (en) 2015-04-24 2016-10-27 Siemens Aktiengesellschaft Improving control system resilience by highly coupling security functions with control
US10375106B1 (en) * 2016-01-13 2019-08-06 National Technology & Engineering Solutions Of Sandia, Llc Backplane filtering and firewalls

Also Published As

Publication number Publication date
RU2638000C1 (ru) 2017-12-08
JP2018139098A (ja) 2018-09-06
US11029662B2 (en) 2021-06-08
US10599120B2 (en) 2020-03-24
CN108399330B (zh) 2022-01-04
US20180224823A1 (en) 2018-08-09
US20200192321A1 (en) 2020-06-18
CN108399330A (zh) 2018-08-14

Similar Documents

Publication Publication Date Title
CN113139176B (zh) 恶意文件的检测方法、装置、设备及存储介质
US10902112B2 (en) System including a hypervisor
EP2979211B1 (en) Protecting software application
US9372984B2 (en) Authenticated launch of virtual machines and nested virtual machine managers
KR102206115B1 (ko) 인터프리터 가상 머신을 이용한 행동 멀웨어 탐지
JP6588945B2 (ja) 仮想マシンにおける悪意のあるファイルを分析するシステム及び方法
JP6903544B2 (ja) プログラマブル論理コントローラ実行システムの監視のためのシステム、方法、及び非一時的なコンピュータ可読媒体
JP6282305B2 (ja) ハイパーバイザモードにおけるコードの安全な実行システムおよび方法
US20160371105A1 (en) Deployment and installation of updates in a virtual environment
US12277213B2 (en) Method and device for securely starting up a container instance
JP2019066995A (ja) セキュアモードとノンセキュアモードとを選択的に切り替え可能なシステム
CN105389197A (zh) 用于基于容器的虚拟化系统的操作捕获方法和装置
JP7294441B2 (ja) 評価装置、評価システム、評価方法及びプログラム
CN108388793B (zh) 一种基于主动防御的虚拟机逃逸防护方法
US9652223B2 (en) Method and apparatus for executing integrated application program
US10235161B2 (en) Techniques of adding security patches to embedded systems
US20240241779A1 (en) Signaling host kernel crashes to dpu
KR20130101648A (ko) 가상화를 위한 보안 제공 장치 및 방법
Saxena Container image security with trivy and istio inter-service secure communication in kubernetes
US20240241728A1 (en) Host and dpu coordination for dpu maintenance events
EP3361332B1 (en) System and method of monitoring of the execution system of a programmable logic controller
JP7419278B2 (ja) 仮想マシン管理装置、仮想マシン管理方法及び仮想マシン管理プログラム
RU2637435C1 (ru) Способ обнаружения аномального исполнения системы исполнения программируемого логического контроллера
Patel A Security Benchmarking Framework for Empirical Evaluation of Container Confinement
Lagar-Cavilla et al. Managing and Securing Google’s Fleet of Multi-Node Servers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190604

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200603

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210326

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210326

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210405

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210406

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210623

R150 Certificate of patent or registration of utility model

Ref document number: 6903544

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250