RU2637435C1 - Method for detecting anomaly of execution system of programmable logic controller - Google Patents

Method for detecting anomaly of execution system of programmable logic controller Download PDF

Info

Publication number
RU2637435C1
RU2637435C1 RU2017104133A RU2017104133A RU2637435C1 RU 2637435 C1 RU2637435 C1 RU 2637435C1 RU 2017104133 A RU2017104133 A RU 2017104133A RU 2017104133 A RU2017104133 A RU 2017104133A RU 2637435 C1 RU2637435 C1 RU 2637435C1
Authority
RU
Russia
Prior art keywords
execution system
module
plc
data
interaction
Prior art date
Application number
RU2017104133A
Other languages
Russian (ru)
Inventor
Павел Владимирович Дякин
Дмитрий Александрович Кулагин
Original Assignee
Акционерное общество "Лаборатория Касперского"
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 Акционерное общество "Лаборатория Касперского" filed Critical Акционерное общество "Лаборатория Касперского"
Priority to RU2017104133A priority Critical patent/RU2637435C1/en
Application granted granted Critical
Publication of RU2637435C1 publication Critical patent/RU2637435C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/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
    • G05B19/058Safety, monitoring
    • 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

Abstract

FIELD: physics.
SUBSTANCE: method is carried out through the detection of the interaction mismatch by the security module, monitoring of which is set, to the rule for this interaction, while monitoring of the interaction is carried out by separating the execution systems of the programmable logic controllers to modules and modifications of the data exchange interface of the modules among themselves and to the resources of the operating system in such a way as to steer through the security module, which monitors the interaction and discovers the anomalies.
EFFECT: providing the anomaly detection performed by the execution system of the programmable logic controllers.
14 cl, 13 dwg

Description

Область техникиTechnical field

Изобретение относится к способам обнаружения аномалий функционирования программируемых логических контроллеров и связанных с ним периферийных устройств, предназначенных для контроля и управления машинами и производственными процессами.The invention relates to methods for detecting anomalies in the operation of programmable logic controllers and related peripheral devices for monitoring and controlling machines and production processes.

Уровень техникиState of the art

Атаки на автоматизированные системы управления (сокр. АСУ) уже давно не редкость. Атакам подвергаются почти все элементы АСУ, не являются исключением и программируемые логические контроллеры (ГОСТ Р МЭК 61131-1-2016. Национальный стандарт Российской Федерации. Контроллеры программируемые. Часть 1. Общая информация (утв. и введен в действие Приказом Росстандарта от 13.05.2016 N314-ст)) (сокр. ПЛК, англ. PLC). ПЛК содержат множество уязвимостей (http://www.alphaguardian.net/category/plc-cyber-vulnerabilities/), которые могут быть использованы для атаки на АСУ. Одной из таких уязвимостей является использование систем исполнения ПЛК (напр., CodeSYS RTE), представляющих из себя монолитную или многокомпонентную программу, исполняющуюся в одном виртуальном адресном пространстве на операционной системе, под управлением которой работает ПЛК. Таким образом если будет скомпрометирован хотя бы один функциональный компонент (ГОСТ Р МЭК 61131-1-2016. - С. 2), поддерживаемый системой исполнения ПЛК, например осуществляющий взаимодействие с устройствами ввода, скомпрометирована будет вся система исполнения ПЛК.Attacks on automated control systems (abbr. ACS) have long been not uncommon. Almost all ACS elements are attacked, and programmable logic controllers are not an exception (GOST R IEC 61131-1-2016. The national standard of the Russian Federation. Programmable controllers. Part 1. General information (approved and put into effect by the Order of Rosstandart from 05.13.2016 N314-st)) (abbr. PLC, English PLC). PLCs contain many vulnerabilities (http://www.alphaguardian.net/category/plc-cyber-vulnerabilities/) that can be used to attack ICS. One of these vulnerabilities is the use of PLC execution systems (e.g. CodeSYS RTE), which are a monolithic or multicomponent program that runs in the same virtual address space on the operating system that the PLC runs under. Thus, if at least one functional component is compromised (GOST R IEC 61131-1-2016. - P. 2), supported by the PLC execution system, for example, interacting with input devices, the entire PLC execution system will be compromised.

Техническая проблема заключается в невозможности обнаружить аномалию внутри системы исполнения ПЛК в виду ее монолитности.The technical problem is the inability to detect an anomaly inside the PLC execution system due to its monolithicity.

В уровне технике отсутствуют решения, позволяющие решить указанную проблему кардинально. Используются различные сканеры уязвимостей и фильтры. Примером подобного решения приведен в статье "Protecting Industrial Control Systems with Cisco IPS Industrial Signatures" (http://www.cisco.com/c/en/us/about/security-center/protecting-industrial-control-systems-networks-ips.html) Ho если фильтр пропустил какое-то взаимодействие и передал его системе исполнения ПЛК, то выявить аномалию становится практически невозможно ввиду закрытости самой системы исполнения, фактически для систем безопасности система исполнения ПЛК представляет из себя "черный ящик".In the prior art there are no solutions that can solve this problem radically. Various vulnerability scanners and filters are used. An example of such a solution is given in the article "Protecting Industrial Control Systems with Cisco IPS Industrial Signatures" (http://www.cisco.com/c/en/us/about/security-center/protecting-industrial-control-systems-networks- ips.html) Ho, if the filter missed some interaction and passed it to the PLC execution system, then it becomes almost impossible to identify the anomaly due to the closedness of the execution system itself; in fact, for security systems, the PLC execution system is a "black box".

Также в настоящее время возможны два полюсных варианта решения указанной проблемы, в первом случае дизайн ПЛК разрабатывается таким образом, чтобы выполнять строго детерминированную задачу, что в принципе исключает какую-либо гибкость (способность переходить с одного вида продукции на другой с минимальными затратами времени и труда) и в использовании систем исполнения в их классическом понимании, нет необходимости. Либо используются ПЛК совместно с системами исполнения, что придает ПЛК максимальную гибкость, но при этом полностью игнорируется вопрос информационной безопасности (англ. information security), хотя выполнению требований по функциональной безопасности (англ. functional safety) уделяется очень пристальное внимание ввиду их нормативной регламентации (Стандарт IEC 61508 - Функциональная безопасность электрических, электронных, программируемых электронных систем, связанных с безопасностью).Two pole options for solving this problem are currently possible, in the first case, the PLC design is developed in such a way as to fulfill a strictly deterministic task, which in principle eliminates any flexibility (the ability to switch from one type of product to another with minimal time and labor) ) and in the use of execution systems in their classical sense, there is no need. Either PLCs are used together with execution systems, which gives PLCs maximum flexibility, but the issue of information security is completely ignored, although very close attention is paid to the implementation of functional safety requirements due to their regulatory regulation ( IEC 61508 - Functional safety of electrical, electronic, programmable electronic safety related systems).

Раскрытие изобретенияDisclosure of invention

Настоящее изобретение предназначено для обнаружения аномалии в исполнении системы исполнения ПЛК на программируемом логическом контроллере.The present invention is intended to detect anomalies in the execution of a PLC execution system on a programmable logic controller.

Технический результат настоящего изобретения заключается в обеспечении обнаружения аномалий в исполнении системы исполнения ПЛК на программируемом логическом контроллере. Технический результат достигается за счет обнаружения модулем безопасности несоответствия взаимодействия, мониторинг которого осуществляется, установленному для данного взаимодействия правилу, при этом мониторинг взаимодействия осуществляется путем разделения системы исполнения ПЛК на модули и модификации интерфейса обмена данными модулей между собой и с ресурсами операционной системы таким образом, чтобы направить взаимодействие через модуль безопасности, который и осуществляет мониторинг взаимодействия и обнаружение аномалии.The technical result of the present invention is to provide anomaly detection in the execution of a PLC execution system on a programmable logic controller. The technical result is achieved by detecting by the security module the interaction mismatch being monitored for the rule established for this interaction, while monitoring the interaction is carried out by dividing the PLC execution system into modules and modifying the module data exchange interface with each other and with the operating system resources so that direct interaction through a security module that monitors the interaction and detection of anomalies .

Способ контроля исполнения системы исполнения ПЛК, в котором разделяют код и данные системы исполнения ПЛК или ее части на отдельные программные модули, при этом на программные модули разделяют на основании:A method for controlling the execution of a PLC execution system, in which the code and data of the PLC execution system or its parts are divided into separate software modules, while the software modules are divided based on:

- функциональной структуры системы исполнения ПЛК, где выделяют в по меньшей мере один модуль функционально законченный фрагмент кода и данных системы исполнения ПЛК, остальной код и данные системы исполнения ПЛК выделяют в другой модуль; или- the functional structure of the PLC execution system, where a functionally complete fragment of code and data of the PLC execution system is allocated to at least one module, the rest of the code and data of the PLC execution system is allocated to another module; or

- угроз безопасности для системы исполнения ПЛК, где выделяют в по меньшей мере один модуль фрагмент кода и данных системы исполнения, содержащий уязвимость, используемую для реализации угроз, остальная часть кода и данных системы исполнения выделяют в другой модуль; или- security threats for the PLC execution system, where a fragment of code and data of the execution system containing the vulnerability used to implement threats is allocated to at least one module, the rest of the code and data of the execution system is allocated to another module; or

- критичности кода и данных системы исполнения, где выделяют в по меньшей мере один модуль фрагмент кода и данных системы исполнения ПЛК, который управляет критическим объектом, остальной код и данные системы исполнения ПЛК выделяют в другой модуль.- the criticality of the code and data of the execution system, where a fragment of code and data of the PLC execution system that controls the critical object is allocated to at least one module, the rest of the code and data of the PLC execution system is allocated to another module.

Устанавливают на ПЛК модуль безопасности и модифицируют интерфейс обмена данными модулей, предназначенный для взаимодействия модулей между собой и с ресурсами операционной системы таким образом, чтобы указанное взаимодействие осуществлялось только через установленный модуль безопасности, а формат данных, которыми обмениваются, соответствовал формату, определенному модулем безопасности. Далее осуществляют мониторинг взаимодействия модулей системы исполнения ПЛК между собой и с ресурсами операционной системы путем проверки модулем безопасности по меньшей мере одного взаимодействия на соответствие правилам, установленным для данного взаимодействия. В процессе обнаруживают аномалии в исполнении системы исполнения ПЛК на основании обнаруженного модулем безопасности несоответствия взаимодействия, мониторинг которого осуществляется, установленному для данного взаимодействия правилу. Модули могут исполняться в отдельных процессах.Install a security module on the PLC and modify the module data exchange interface, designed for the modules to interact with each other and with the resources of the operating system so that the specified interaction is carried out only through the installed security module, and the format of the data exchanged corresponds to the format defined by the security module. Next, they monitor the interaction of the modules of the PLC execution system with each other and with the resources of the operating system by checking the security module for at least one interaction for compliance with the rules established for this interaction. In the process, anomalies are detected in the execution of the PLC execution system based on the interaction mismatch detected by the security module, the monitoring of which is carried out, the rule established for this interaction. Modules can be executed in separate processes.

В частном случае дополнительно изолируют по меньшей мере один полученный модуль от других модулей и от ресурсов операционной системы в которой исполняется система исполнения ПЛК, исключая возможность непосредственного обмена данными с другими модулями и с ресурсами ОС ПЛК. В одном случае изолируют модуль путем контейнеризации, а модуль безопасности устанавливается на операционную систему под управление которой исполняется система исполнения ПЛК. Для изоляции возможно использовать технологию контейнеризации Linux.In the particular case, at least one received module is further isolated from other modules and from the resources of the operating system in which the PLC execution system is executed, excluding the possibility of direct data exchange with other modules and with PLC OS resources. In one case, the module is isolated by containerization, and the security module is installed on the operating system under the control of which the PLC execution system is executed. For isolation, it is possible to use Linux containerization technology.

В частном случае модуль безопасности исполняется под управлением операционной системы, под управлением которой исполняется система исполнения ПЛК.In a particular case, the security module is executed under the control of the operating system, under the control of which the PLC execution system is executed.

В другом частном случае изолируют модули путем виртуализации, а модуль безопасности устанавливается на гипервизор. В частном случае для виртуализации используют технологию PikeOS.In another particular case, the modules are isolated by virtualization, and the security module is installed on the hypervisor. In a particular case, PikeOS technology is used for virtualization.

При модификации интерфейса обмена данными меняют порядок и протокол обмена данными. При этом модифицируют интерфейс обмена данными для осуществления этого обмена через модуль безопасности не для любого взаимодействия модулей между собой и ОС, а только для критического, где критичность определяется на основании существующих и потенциальных угроз для системы исполнения ПЛК. В частном случае модуль безопасности осуществляет контроль на основании правил, формат которых совпадает с форматом данных, которыми модули обмениваются с собой и с операционной системой и взаимодействие проверяется модулем безопасности на соответствие по меньшей мере одному правилу.When modifying the data exchange interface, the order and protocol of data exchange are changed. At the same time, the data exchange interface is modified for this exchange through the security module, not for any interaction between the modules and the OS, but only for critical, where the criticality is determined on the basis of existing and potential threats to the PLC execution system. In a particular case, the security module monitors based on the rules, the format of which coincides with the data format that the modules exchange with themselves and the operating system, and the interaction is checked by the security module for compliance with at least one rule.

Краткое описание чертежейBrief Description of the Drawings

Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:Additional objectives, features and advantages of the present invention will be apparent from reading the following description of an embodiment of the invention with reference to the accompanying drawings, in which:

Фиг. 1 изображает примеры систем исполнения ПЛК и систем программирования и отладки;FIG. 1 shows examples of PLC execution systems and programming and debugging systems;

Фиг. 2 изображает осуществление настоящего изобретения;FIG. 2 depicts an embodiment of the present invention;

Фиг. 3 изображает варианты разделения системы исполнения ПЛК на модули;FIG. 3 depicts options for dividing a PLC execution system into modules;

Фиг. 4 изображает варианты изоляции модулей системы исполнения ПЛК;FIG. 4 shows insulation options for the modules of the PLC execution system;

Фиг. 5 изображает варианты установки модуля безопасности на ПЛК;FIG. 5 depicts installation options for a security module on a PLC;

Фиг. 6 изображает пример компьютерной системы общего назначения, с помощью которой может быть реализовано настоящее изобретение.FIG. 6 depicts an example of a general purpose computer system with which the present invention can be implemented.

Осуществление изобретенияThe implementation of the invention

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Приведенное описание предназначено для помощи специалисту в области техники для исчерпывающего понимания изобретения, которое определяется только в объеме приложенной формулы.The objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, it can be embodied in various forms. The above description is intended to help a person skilled in the art for a comprehensive understanding of the invention, which is defined only in the scope of the attached claims.

Программируемый логический контроллер - электронная составляющая промышленного контроллера, специализированного (компьютеризированного) устройства, используемого для автоматизации технологических процессов. Система исполнения (англ. execution runtime, runtime environment) - программное и/или аппаратное окружение необходимое для выполнения компьютерной программы и доступное во время выполнения компьютерной программы. Известна также как система выполнения, среда выполнения, среда исполнения, исполнительная система.A programmable logic controller is an electronic component of an industrial controller, a specialized (computerized) device used to automate technological processes. Execution system (English execution runtime, runtime environment) - software and / or hardware environment necessary for the execution of a computer program and available during the execution of a computer program. Also known as a runtime system, runtime environment, runtime environment, executive system.

Система исполнения программируемого логического контроллера (Петров И.В. «Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования» - М.: Солон-Пресс, 2010 - С. 48) (англ. control runtime system) - программное окружение, установленное на ПЛК, необходимое для выполнения управляющей (прикладной) программы и доступное во время выполнения управляющей программе. Обеспечивает загрузку, исполнение прикладной программы ПЛК и функции отладки. Устанавливается в контроллер в процессе его изготовления. Является монолитной программой (однокомпонентной) или программный комплекс (состоит из нескольких компонентов). В случае монолитной программы все функционально законченные фрагменты кода (под кодом здесь и далее понимается программный код в различных его формах: объектного кода, байт кода (промежуточный код), исполняемого кода, машинного кода) и данных программы, отвечающие за сетевой обмен, доступ к устройствам ввода вывода и иные функции размещены в рамках одного компонента, в другом случае разносятся по нескольким компонентам (напр., библиотекам). Примеры указанных систем: исполнительная система MasterPLC (http://www.insat.ru/products/?category=395), система исполнения CodeSys Runtime (https://www.codesys.com/products/codesys-runtime.html). На Фиг. 1 изображен вариант организации системы исполнения ПЛК. Функционально законченные фрагменты кода и данных, реализующие функции сетевого обмена, доступа к устройствам ввода вывода и иные функции, размещенные в рамках одной программы далее будут обозначаться абстрактно Функции А, Функции В, Функции С, где, например, под «Функцией А» понимается функционально законченный фрагменты кода и данных, отвечающие за реализацию «Функции А». Функциональный компонент следует отличать от программного компонента. Функциональный компонент является элементом функциональной структуры, а программный компонент элемент программного комплекса.The execution system of a programmable logic controller (Petrov IV "Programmable controllers. Standard languages and techniques of applied design" - M .: Solon-Press, 2010 - P. 48) (English control runtime system) - software environment installed on the PLC necessary for executing the control (application) program and available during execution of the control program. Provides loading, execution of the PLC application and debugging functions. It is installed in the controller during its manufacturing. It is a monolithic program (single-component) or a software package (consists of several components). In the case of a monolithic program, all functionally complete fragments of code (hereinafter, code refers to program code in its various forms: object code, code byte (intermediate code), executable code, machine code) and program data responsible for network exchange, access to output input devices and other functions are located within one component, in another case they are distributed among several components (e.g. libraries). Examples of these systems: MasterPLC executive system (http://www.insat.ru/products/?category=395), CodeSys Runtime execution system (https://www.codesys.com/products/codesys-runtime.html). In FIG. 1 shows a variant of organization of a PLC execution system. Functionally completed pieces of code and data that implement the functions of network exchange, access to input / output devices, and other functions located within the framework of one program will be further denoted abstractly Functions A, Functions B, Functions C, where, for example, “Function A” is understood as functionally complete code and data fragments responsible for the implementation of “Function A”. A functional component should be distinguished from a software component. The functional component is an element of the functional structure, and the software component is an element of the software complex.

Компонент системы исполнения - набор функционально законченных фрагментов кода и данных, объединенных в программу (приложение, библиотеку), функцию, функциональный блок из которых иерархически строится система исполнения. Компоненты взаимодействуют между собой посредством интерфейса. В рамках данной заявки модуль системы исполнения - частный случай компонента, который исполняется отдельно от других компонентов системы исполнения ПЛК (напр., в другом адресном пространстве).A component of the execution system is a set of functionally complete fragments of code and data combined into a program (application, library), a function, a functional block from which the execution system is hierarchically built. The components interact with each other through an interface. In the framework of this application, the execution system module is a special case of a component that is executed separately from other components of the PLC execution system (eg, in a different address space).

Совокупность взаимосвязанных компонентов (модулей), из которых иерархически строится система исполнения, реализует функциональную структуру ("ГОСТ Р МЭК 61131-1-2016. Национальный стандарт Российской Федерации. Контроллеры программируемые. Часть 1. Общая информация" (утв. и введен в действие Приказом Росстандарта от 13.05.2016 N 314-ст), - С. 3) (функции, выполняемые системой исполнения). Порядок и формат взаимодействия взаимосвязанных компонентов определяются функциональной логикой. В частном случае, реализованная функциональная структура и функциональная логика (способ взаимодействия элементов функциональной структуры), являются реализованной в коде среды выполнения бизнес-логикой. Способ взаимодействия в частном случае определяет порядок и формат взаимодействия элементов.The set of interconnected components (modules), from which the execution system is hierarchically built, implements the functional structure ("GOST R IEC 61131-1-2016. The national standard of the Russian Federation. Programmable controllers. Part 1. General information" (approved and put into effect by the Order Rosstandart dated 05.13.2016 N 314-st), - S. 3) (functions performed by the execution system). The order and format of interaction of interconnected components are determined by functional logic. In the particular case, the implemented functional structure and functional logic (a way of interacting with the elements of the functional structure) are business logic implemented in the runtime code. The method of interaction in a particular case determines the order and format of interaction of elements.

Бизнес-логика системы исполнения - реализованная в коде классов, методов, процедур, функций среды выполнения совокупность правил, принципов, зависимостей поведения объектов в предметной области. Элемент бизнес-логики среды выполнения функционально законченный набор инструкций, классов, методов, процедур, функций. Совокупность элементов образуют функциональную структуру системы исполнения или ее часть.The business logic of the runtime system - implemented in the code of classes, methods, procedures, functions of the runtime environment, is a set of rules, principles, dependencies of the behavior of objects in the subject area. An element of the business logic of the runtime is a functionally complete set of instructions, classes, methods, procedures, functions. The combination of elements form the functional structure of the execution system or its part.

Бизнес-логика системы исполнения ПЛК - реализованная в коде классов, методов, процедур, функций среды выполнения совокупность правил, принципов, зависимостей поведения объектов в автоматизируемом технологическом процессе. Например, порядок сетевого обмена, доступ к устройствам ввода вывода, взаимодействие с ОС ПЛК.The business logic of the PLC execution system is implemented in the code of classes, methods, procedures, functions of the runtime environment, a set of rules, principles, dependencies of the behavior of objects in an automated technological process. For example, the order of network exchange, access to input / output devices, interaction with the PLC OS.

Система программирования и отладки программ ("ГОСТ Р МЭК 61131-1-2016. Национальный стандарт Российской Федерации. Контроллеры программируемые. Часть 1. Общая информация" (утв. и введен в действие Приказом Росстандарта от 13.05.2016 N 314-ст), - С. 2) (сокр. СПиО) связана с системой исполнения ПЛК. Именно посредством данной системы прикладная программа загружается в память ПЛК и передается под управление системе исполнения ПЛК. Пример СПиО изображен на Фиг. 1. В частном случае данная система может использоваться для управления системой исполнения ПЛК изменения ее конфигурации и установки дополнительных модулей на ПЛК.System for programming and debugging programs ("GOST R IEC 61131-1-2016. National standard of the Russian Federation. Programmable controllers. Part 1. General information" (approved and put into effect by the Order of Rosstandart dated 13.05.2016 N 314-st), - P. 2) (abbr. SP&O) is associated with the PLC execution system. It is through this system that the application program is loaded into the PLC memory and transferred to the control of the PLC execution system. An example of a DSS is depicted in FIG. 1. In the particular case, this system can be used to control the PLC execution system, change its configuration and install additional modules on the PLC.

Как отмечалось в разделе «Уровень техники» системы исполнения ПЛК имеют проблемы с безопасностью, по причине того, что система исполнения ПЛК представляет из себя монолитную программу или состоит из компонентов, которые исполняются в одном процессе. Настоящее изобретение позволяет разделить систему исполнения на модули, что позволит контролировать взаимодействие любых элементов функциональной структуры системы исполнения ПЛК или любых фрагментов кода системы исполнения между собой и с ресурсами операционной системы. Настоящее изобретение при использовании с другими системами исполнения, монолитными программами или многокомпонентными программами, исполняющимися в одном процессе, также позволяет:As noted in the “Prior art” section, PLC execution systems have security problems because the PLC execution system is a monolithic program or consists of components that are executed in one process. The present invention allows to divide the execution system into modules, which will allow you to control the interaction of any elements of the functional structure of the PLC execution system or any fragments of the execution system code with each other and with the resources of the operating system. The present invention, when used with other execution systems, monolithic programs, or multicomponent programs running in one process, also allows:

повысить безопасность компьютерных систем, на которых перечисленные объекты функционируют (исполняются); иincrease the security of computer systems on which the listed objects operate (are executed); and

обеспечить контроль взаимодействия элементов этих объектов.provide control over the interaction of elements of these objects.

Данное изобретение применимо не только к программам или системам исполнениям целиком, но и к любым монолитным частям и компонентам программ и программных комплексов контроль над исполнением которых необходимо обеспечить, а также повысить безопасность компьютерных систем, на которых упомянутые части или компоненты исполняются. Поэтому следует отметить, что все указанное для системы исполнения ПЛК справедливо в равной мере, если явно не указано иное или иное не следует из сущности системы исполнения ПЛК, вытекающей из особенностей ПЛК, для:This invention is applicable not only to entire programs or systems, but also to any monolithic parts and components of programs and software systems, the execution of which must be controlled, as well as to increase the security of computer systems on which said parts or components are executed. Therefore, it should be noted that everything indicated for the PLC execution system is equally true, unless explicitly stated otherwise or otherwise follows from the essence of the PLC execution system arising from the features of the PLC for:

- других систем исполнения, их частей и отдельных компонентов (модулей);- other execution systems, their parts and individual components (modules);

- монолитных программ и их частей;- monolithic programs and their parts;

- многокомпонентных программ, исполняющихся в одном адресном пространстве и отдельных компонентов (модулей) этих программ.- multicomponent programs executing in one address space and separate components (modules) of these programs.

Осуществление данного изобретения изображено на Фиг. 2. На первом этапе 200 реализации способа получают систему исполнения ПЛК. Система исполнения ПЛК либо извлекается из ПЛК, либо систему исполнения ПЛК получают перед установкой на ПЛК. В другом частном случае способ реализуют с первого этапа непосредственно на ПЛК.An embodiment of the present invention is depicted in FIG. 2. At the first stage 200 of the implementation of the method, a PLC execution system is obtained. The PLC execution system is either removed from the PLC or the PLC execution system is obtained before being installed on the PLC. In another particular case, the method is implemented from the first stage directly on the PLC.

Далее на этапе 210 разделяют код и данные системы исполнения ПЛК на отдельные модули код и данные разделяются на основании функциональной структуры (ГОСТ МЭК 61131-1) системы исполнения ПЛК. При таком разделении выделяют в по меньшей мере один модуль функционально законченный фрагмент кода и данных системы исполнения ПЛК, остальной код и данные системы исполнения ПЛК выделяют в другой модуль. На Фиг. 3а изображен пример такого разделения, где фрагмент кода и данных, предназначенный для выполнения «функций А», выделяется в «модуль 1», фрагмент кода и данных, предназначенный для выполнения «функций В», выделяется в «модуль 2», фрагмент кода и данных, предназначенный для выполнения «других функций», оставшихся, выделяется в «модуль 3».Next, at step 210, the code and data of the PLC execution system are divided into separate modules; the code and data are divided based on the functional structure (GOST IEC 61131-1) of the PLC execution system. With this separation, a functionally complete fragment of code and data of the PLC execution system is allocated to at least one module, the rest of the code and data of the PLC execution system is allocated to another module. In FIG. 3a, an example of such a separation is shown, where a code and data fragment intended to perform “functions A” is allocated to “module 1”, a code and data fragment intended to perform “functions A” is allocated to “module 2”, a code fragment and data intended to perform the “other functions” remaining is highlighted in “module 3”.

Также код и данные системы ПЛК разделяют на основании угроз безопасности (ГОСТ Р 56546-2015) для системы исполнения ПЛК. При таком разделении выделяют в по меньшей мере один модуль фрагмент кода и данных системы исполнения, содержащий уязвимость (ГОСТ Р 56546-2015) (или уязвимый фрагмент кода, например, фрагмент, отвечающий за сетевое взаимодействие, именно он, как правило, подвергается атаке в первую очередь), используемую для реализации угроз, остальную часть кода и данных системы исполнения выделяют в другой модуль. На Фиг. 3б показано такое разделения, например фрагменты кода и данных, предназначенные для выполнения функций А, В, С, содержат уязвимости, фрагмент кода и данных, предназначенный для выполнения «функций А», выделяется в «модуль 1», фрагменты кода и данных, предназначенные для выполнения «функций В» и «функций С», выделяются в «модуль 2», фрагменты кода и данных, предназначенные для выполнения «других функций», оставшихся, и не содержащие уязвимости, выделяются в «модуль 3».Also, the code and data of the PLC system are divided based on security threats (GOST R 56546-2015) for the PLC execution system. With this separation, a fragment of code and data of the execution system containing a vulnerability (GOST R 56546-2015) (or a vulnerable fragment of code, for example, a fragment responsible for network interaction) is isolated into at least one module, and it is he who, as a rule, is attacked in first of all), used to implement threats, the rest of the code and data of the execution system is allocated to another module. In FIG. 3b shows such a separation, for example, fragments of code and data intended to perform functions A, B, C, contain vulnerabilities, a fragment of code and data intended to perform "functions A" is highlighted in "module 1", fragments of code and data intended to perform “functions B” and “functions C”, are allocated to “module 2”, fragments of code and data intended to perform “other functions” remaining and not containing vulnerabilities are allocated to “module 3”.

Разделение может осуществляться и на основании критичности фрагментов кода и данных системы исполнения, где выделяют в по меньшей мере один модуль фрагмент кода и данных системы исполнения ПЛК, который управляет критическим объектом (ГОСТ Р 53114-2008. Национальный стандарт Российской Федерации. Защита информации. Обеспечение информационной безопасности в организации. Основные термины и определения" (утв. и введен в действие Приказом Ростехрегулирования от 18.12.2008 N 532-ст), с. 6) (критический фрагмент кода и данных), остальной код и данные системы исполнения ПЛК выделяют в другой модуль. На Фиг. 3в изображен пример такого разделения, где фрагмент кода и данных, предназначенный для выполнения «функций А», является критическим кодом и содержит критические данные, данный фрагмент выделяется в модуль 1, фрагменты кода и данных, предназначенные для выполнения «функций В», «функций С», «других функций», оставшихся, выделяются в «модуль 2».Separation can also be carried out on the basis of the criticality of code fragments and data of the execution system, where a fragment of code and data of the PLC execution system is allocated into at least one module, which controls a critical object (GOST R 53114-2008. National Standard of the Russian Federation. Information Protection. Securing information security in the organization. Basic terms and definitions "(approved and enforced by the Order of the Russian Technical Regulation of 12/18/2008 N 532-st), p. 6) (a critical fragment of code and data), the rest of the code and system data PLC executions are allocated to another module, Fig. 3c shows an example of such separation, where a code and data fragment intended to perform “functions A” is critical code and contains critical data, this fragment is allocated to module 1, code and data fragments, designed to perform “functions B”, “functions C”, “other functions” remaining, are allocated to “module 2”.

Эти критерии при разделении могут использоваться как отдельно, так и совместно, в примере, изображенном на Фиг. 3б, используется разделение не только по наличию уязвимостей, но и на основании функциональной структуры системы исполнения ПЛК, а в примере, изображенном на Фиг. 3в, используется разделение не только по критичности кода/данных, но и на основании функциональной структуры системы исполнения ПЛК.These criteria for separation can be used both separately and jointly, in the example depicted in FIG. 3b, the separation is used not only by the presence of vulnerabilities, but also based on the functional structure of the PLC execution system, and in the example depicted in FIG. 3c, separation is used not only for the criticality of the code / data, but also based on the functional structure of the PLC execution system.

На Фиг. 3б и Фиг. 3в показаны примеры, где в модули выделяются функционально законченные фрагменты кода и данных, содержащие уязвимости или используемые для управление критическими объектами, в общем случае при разделении на основании критичности и угроз безопасности в модуль выделять функционально законченные фрагменты необязательно, выделятся могут любые критические фрагменты, или фрагменты содержащие уязвимости, примеры представлен для простоты восприятия.In FIG. 3b and FIG. Figure 3c shows examples where functionally complete code and data fragments are allocated to modules that contain vulnerabilities or are used to manage critical objects; in general, when separating based on criticality and security threats, functionally complete fragments are not required to be allocated to the module, any critical fragments can be highlighted, or fragments containing vulnerabilities, examples are presented for ease of perception.

При выделении фрагментов кода в модули организуется способ взаимодействия (порядок обмена данными и формат данных) между модулями, эквивалентный способу взаимодействия этих фрагментов в системе исполнения ПЛК до разделения. Иначе говоря, какой фрагмент кода с каким фрагментом в каком порядке взаимодействовал, в таком порядке будут взаимодействовать модули, содержащие указанные фрагменты кода, после разделения системы исполнения ПЛК.When extracting code fragments into modules, a way of interaction (data exchange order and data format) between the modules is organized, which is equivalent to the way these fragments interact in the PLC execution system before separation. In other words, which code fragment interacted with which fragment in which order, the modules containing the indicated code fragments will interact in this order, after the PLC execution system is divided.

На этапе 220 изолируют созданные ранее модули друг от друга, от операционной системы и оборудования. Для изоляции используют технологии виртуализации с применением контейнеров или виртуальных машин (ГОСТ Р 56938-2016 Защита информации. Защита информации при использовании технологий виртуализации. Общие положения). При использовании контейнеров (см. Фиг. 4а), модуль помещают в контейнер, а в операционную систему устанавливается управляющая служба, через которую модули взаимодействуют между собой и с операционной системой, примерами таких служб являются службы Docker (англ. Docker engine). При использовании виртуальных машин, модули помещаются в виртуальные машины с различными вариантами мониторов виртуальных машин, которыми являются:At step 220, previously created modules are isolated from each other, from the operating system and equipment. For isolation, virtualization technologies using containers or virtual machines are used (GOST R 56938-2016 Information protection. Information protection when using virtualization technologies. General provisions). When using containers (see Fig. 4a), the module is placed in a container, and a control service is installed into the operating system, through which the modules interact with each other and with the operating system, examples of such services are the Docker services. When using virtual machines, the modules are placed in virtual machines with different types of virtual machine monitors, which are:

- гипервизоры I типа (см. Фиг. 4б), например VMware ESX;- Type I hypervisors (see Fig. 4b), for example VMware ESX;

- гипервизоры II типа (см. Фиг. 4в), Microsoft Virtual PC, VM Workstation, QEMU, Parallels, VirtualBox;- Type II hypervisors (see Fig. 4c), Microsoft Virtual PC, VM Workstation, QEMU, Parallels, VirtualBox;

- гибридные гипервизоры (см. Фиг. 4г), Xen, Citrix XenServer, Microsoft Hyper-V.- hybrid hypervisors (see Fig. 4d), Xen, Citrix XenServer, Microsoft Hyper-V.

Отдельно стоит отметить, что для изоляции в частном случае могут использоваться: партиции (англ. partition) PikeOS (PikeOS - микроядерная операционная система реального времени, которая производится компанией SYSGO AG). Она ориентирована на безопасности критически важных встраиваемых систем. Она обеспечивает разделенную среду для нескольких операционных систем с различными целями проектирования и требованиями безопасности (оф. сайт https://www.sysgo.com/products/pikeos-hypervisor/)) контейнеризация средствами Linux (англ. Linux Containers, сокр. LXC). В частном случае не все модули могут изолироваться, и их взаимодействие с операционной системой и другими модулями остается неизменным, данный факт отображен на примере модуля N на фигурах, для которого изоляция опциональна.Separately, it is worth noting that for isolation in a particular case, the following can be used: partition (English partition) PikeOS (PikeOS is a real-time microkernel operating system manufactured by SYSGO AG). It focuses on the security of critical embedded systems. It provides a shared environment for several operating systems with different design goals and security requirements (of the site https://www.sysgo.com/products/pikeos-hypervisor/)) Linux containerization (Linux Containers, abbreviated LXC) . In the particular case, not all modules can be isolated, and their interaction with the operating system and other modules remains unchanged, this fact is shown on the example of module N in the figures, for which isolation is optional.

На этапе 230 устанавливают на ПЛК модуль безопасности, в частном случае модуль содержит функционально законченные наборы фрагментов кода и данных, отвечающие за реализацию функций безопасности (о том, как эти функции осуществляются будет описано ниже). Уровень архитектуры ПЛК на котором будет функционировать модуль безопасности будет определяться технологией, которая использовалась для изоляции модулей системы исполнения ПЛК. Например, если для изоляции использовались контейнеры (Фиг. 4а) и в ОС ПЛК установлена управляющая служба (напр., Docker), то модуль безопасности располагается на том же уровне, что и контейнеры (см. Фиг. 5а). Если для изоляции используются виртуальные машины (см. Фиг. 4б, Фиг. 4в, Фиг. 4г), то модуль безопасности устанавливается на уровне монитора виртуальных машин (гипервизора) или встраивается в него (см. Фиг. 5б, Фиг. 5в). На том же этапе модифицируют интерфейс обмена данными изолированных модулей, предназначенный для взаимодействия с другими модулями и с ресурсами операционной системы в условиях изоляции таким образом, чтобы указанное взаимодействие в условиях изоляции модулей осуществлялся только через установленный модуль безопасности, а формат данных, которыми обмениваются, соответствовал формату, определенному модулем безопасности.At step 230, a security module is installed on the PLC; in the particular case, the module contains functionally complete sets of code and data fragments responsible for implementing security functions (how these functions will be described below). The PLC architecture level at which the safety module will operate will be determined by the technology that was used to isolate the modules of the PLC execution system. For example, if containers were used for isolation (Fig. 4a) and a control service was installed in the PLC OS (eg, Docker), then the security module is located at the same level as the containers (see Fig. 5a). If virtual machines are used for isolation (see Fig. 4b, Fig. 4c, Fig. 4d), then the security module is installed at or integrated into the virtual machine monitor (hypervisor) (see Fig. 5b, Fig. 5c). At the same stage, the data exchange interface of isolated modules is modified, designed to interact with other modules and with the operating system resources in isolation conditions so that the specified interaction in isolation conditions of the modules is carried out only through the installed security module, and the format of the data exchanged matches format defined by the security module.

В результате модуль безопасности способен выполнять функции безопасности, а именно осуществлять контроль исполнения системы исполнения, который предполагает: мониторинг взаимодействия изолированных модулей между собой, с ресурсами операционной системы ПЛК или оборудованием; корректировку указанного взаимодействия, остановку взаимодействия. Модуль безопасности осуществляет контроль на основании правил, формат которых совпадает с форматом данных которыми модули обмениваются с собой и с операционной системой. Взаимодействие проверяется модулем безопасности на соответствие логическому правилу, которое хранится у модуля безопасности, правило содержит описание допустимого взаимодействия.As a result, the security module is able to perform security functions, namely, to monitor the execution of the execution system, which involves: monitoring the interaction of isolated modules with each other, with the resources of the PLC operating system or equipment; adjustment of the specified interaction, stopping the interaction. The security module monitors based on the rules, the format of which coincides with the data format which the modules exchange with themselves and with the operating system. The interaction is checked by the security module for compliance with the logical rule that is stored in the security module, the rule contains a description of the valid interaction.

Модуль безопасности осуществляет мониторинг взаимодействия, где взаимодействие проверяется на соответствие правилу, если взаимодействие соответствует правилу, то взаимодействие пропускается и данные отправляются приемнику, если взаимодействие не соответствует правилу осуществляется корректировка взаимодействия (в данные, которыми обменивается приемник и источник, через модуль безопасности вносятся изменения) или взаимодействие не допускается (взаимодействие останавливается). Что должен сделать модуль безопасности при несоответствии взаимодействия правилу, описывающему подобное взаимодействие, определяется либо самим правилом, либо субсидиарным правилом, если правилом для осуществляемого взаимодействия модуль не располагает (диспозитивное регулирование). Например, допустимое взаимодействие (см. Фиг. 5б) «модуля 1» с «модулем 2», где «модуль 1» является источником, а «модуль 2» приемником, описывается основным «правилом А» и факультативным «правилом Б», также модуль безопасности содержит субсидиарное «правило X», которое необходимо применить в случае, когда ни одно другое правило никаких предписаний на возникшее взаимодействие не содержит. При контроле указанного взаимодействия модуль безопасности обнаружил, что взаимодействие «модуля 1» с «модулем 2» не соответствует «правилу А». «Правило А» на данный случай предписывает проверить взаимодействие на соответствие «правилу Б». Модуль безопасности поэтому проверяет взаимодействие на соответствие «правилу Б», модуль обнаруживает, что взаимодействие не соответствует и «правилу Б», но на этот случай «правило Б» ничего не предписывает, поэтому модуль безопасности применяет некоторое «правило X», которое, например, предписывает остановить взаимодействие.The security module monitors the interaction, where the interaction is checked for compliance with the rule, if the interaction matches the rule, then the interaction is skipped and data is sent to the receiver, if the interaction does not match the rule, the interaction is adjusted (changes are made to the data exchanged between the receiver and the source through the security module) or interaction is not allowed (interaction stops). What a security module should do if the interaction does not match the rule that describes such interaction is determined either by the rule itself or by a subsidiary rule if the module does not have a rule for the interaction (dispositive regulation). For example, the permissible interaction (see Fig. 5b) of “module 1” with “module 2”, where “module 1” is the source and “module 2” is the receiver, is described by the basic “rule A” and optional “rule B”, also the security module contains a subsidiary “rule X”, which must be applied when no other rule contains any requirements for the interaction that has arisen. When monitoring this interaction, the security module found that the interaction of "module 1" with "module 2" does not correspond to "rule A". “Rule A” in this case requires that the interaction be checked for compliance with “Rule B”. Therefore, the security module checks the interaction for compliance with “rule B”, the module detects that the interaction does not correspond to “rule B”, but in this case, “rule B” does not prescribe anything, therefore the security module applies some “rule X”, which, for example , instructs to stop the interaction.

Настоящее изобретение в частном случае осуществляется посредством СПиО, элементы которой могут быть исполнены на процессоре компьютера общего назначения (например, который изображен на Фиг. 6).The present invention in a particular case is carried out by means of SP&O, the elements of which can be executed on the processor of a general-purpose computer (for example, which is shown in Fig. 6).

Данное изобретение можно также использовать для обнаружения аномалий при исполнении системы исполнения ПЛК. При обнаружении аномалий изолировать модули необязательно, и изоляция может использоваться в частном случае способами, описанными выше. После разделения на модули устанавливают на ПЛК модуль безопасности и модифицируют интерфейс обмена данными модулей, предназначенный для взаимодействия модулей между собой и с ресурсами операционной системы таким образом, чтобы указанное взаимодействие осуществлялось только через установленный модуль безопасности, а формат данных, которыми обмениваются, соответствовал формату, определенному модулем безопасности. Таким образом структура сообщений которыми обмениваются полностью или частично известна модулю безопасности, данная структура (формат данных, иногда также называется интерфейсом) описывается, например, с помощью Intreface Definition Language (IDL) и модуль безопасности в результате способен проверять, что передаваемое сообщение соответствует этому описанию, а также может использовать отдельные поля этого сообщения для целей контроля допустимости.This invention can also be used to detect anomalies in the execution of a PLC execution system. If anomalies are detected, it is not necessary to isolate the modules, and isolation can be used in the particular case by the methods described above. After dividing into modules, the security module is installed on the PLC and the module data exchange interface is modified, intended for the modules to interact with each other and with the operating system resources so that the specified interaction is carried out only through the installed security module, and the format of the data exchanged corresponds to the format defined by the security module. Thus, the structure of messages exchanged in whole or in part is known to the security module, this structure (data format, sometimes also called an interface) is described, for example, using the Intreface Definition Language (IDL), and as a result, the security module is able to verify that the transmitted message matches this description , and can also use separate fields of this message for validation purposes.

Далее осуществляют мониторинг взаимодействия модулей системы исполнения ПЛК между собой и с ресурсами операционной системы путем проверки модулем безопасности по меньшей мере одного взаимодействия на соответствие правилам, установленным для данного взаимодействия. Проверяются сообщения, которыми обмениваются модули между собой и системой модулем безопасности, это возможно, как указывалось выше, за счет того, что структура сообщений, которыми осуществляется обмен и на которых в частном случае строится взаимодействие, известна модулю безопасности.Next, they monitor the interaction of the modules of the PLC execution system with each other and with the resources of the operating system by checking the security module for at least one interaction for compliance with the rules established for this interaction. Messages that are exchanged between the modules and the system by the security module are checked, this is possible, as mentioned above, due to the fact that the structure of the messages exchanged and on which the interaction is based in a particular case is known to the security module.

В процессе мониторинга обнаруживают аномалии в исполнении системы исполнения ПЛК на основании обнаруженного модулем безопасности несоответствия взаимодействия, мониторинг которого осуществляется, установленному для данного взаимодействия правилу. В другом случае аномалии в исполнении системы исполнения ПЛК на основании обнаруженного модулем безопасности соответствия взаимодействия, мониторинг которого осуществляется, установленному для данного взаимодействия правилу, где правило описывает аномальный вариант данного взаимодействия.During monitoring, anomalies are detected in the execution of the PLC execution system based on the interaction inconsistency detected by the security module, which is monitored according to the rule established for this interaction. In another case, the anomalies in the execution of the PLC execution system based on the interaction detected by the security module that is being monitored are monitored according to the rule established for this interaction, where the rule describes the anomalous version of this interaction.

Фиг. 6 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.FIG. 6 is an example of a general purpose computer system, a personal computer or server 20 comprising a central processor 21, a system memory 22, and a system bus 23 that contains various system components, including memory associated with the central processor 21. The system bus 23 is implemented as any prior art bus structure comprising, in turn, a bus memory or a bus memory controller, a peripheral bus and a local bus that is capable of interacting with any other bus architecture. The system memory contains read-only memory (ROM) 24, random access memory (RAM) 25. The main input / output system (BIOS) 26, contains basic procedures that ensure the transfer of information between the elements of the personal computer 20, for example, at the time of loading the operating ROM systems 24.

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.The personal computer 20 in turn contains a hard disk 27 for reading and writing data, a magnetic disk drive 28 for reading and writing to removable magnetic disks 29, and an optical drive 30 for reading and writing to removable optical disks 31, such as a CD-ROM, DVD -ROM and other optical information carriers. The hard disk 27, the magnetic disk drive 28, the optical drive 30 are connected to the system bus 23 through the interface of the hard disk 32, the interface of the magnetic disks 33 and the interface of the optical drive 34, respectively. Drives and associated computer storage media are non-volatile means of storing computer instructions, data structures, software modules and other data of a personal computer 20.

Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The present description discloses an implementation of a system that uses a hard disk 27, a removable magnetic disk 29, and a removable optical disk 31, but it should be understood that other types of computer storage media 56 that can store data in a form readable by a computer (solid state drives, flash memory cards, digital disks, random access memory (RAM), etc.) that are connected to the system bus 23 through the controller 55.

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.Computer 20 has a file system 36 where the recorded operating system 35 is stored, as well as additional software applications 37, other program modules 38, and program data 39. The user is able to enter commands and information into personal computer 20 via input devices (keyboard 40, keypad “ the mouse "42). Other input devices (not displayed) can be used: microphone, joystick, game console, scanner, etc. Such input devices are, as usual, connected to the computer system 20 via a serial port 46, which in turn is connected to the system bus, but can be connected in another way, for example, using a parallel port, a game port, or a universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface such as a video adapter 48. In addition to the monitor 47, the personal computer may be equipped with other peripheral output devices (not displayed), such as speakers, a printer, and the like.

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 6. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.The personal computer 20 is capable of operating in a networked environment, using a network connection with another or more remote computers 49. The remote computer (or computers) 49 are the same personal computers or servers that have most or all of the elements mentioned earlier in the description of the creature the personal computer 20 of FIG. 6. Other devices, for example, routers, network stations, peer-to-peer devices or other network nodes, may also be present on the computer network.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.Network connections can form a local area network (LAN) 50 and a wide area network (WAN). Such networks are used in corporate computer networks, internal networks of companies and, as a rule, have access to the Internet. In LAN or WAN networks, the personal computer 20 is connected to the local area network 50 via a network adapter or network interface 51. When using the networks, the personal computer 20 may use a modem 54 or other means of providing communication with a global computer network such as the Internet. The modem 54, which is an internal or external device, is connected to the system bus 23 via the serial port 46. It should be clarified that the network connections are only exemplary and are not required to display the exact network configuration, i.e. in reality, there are other ways to establish a technical connection between one computer and another.

В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.In conclusion, it should be noted that the information provided in the description are examples that do not limit the scope of the present invention defined by the claims. One skilled in the art will recognize that there may be other embodiments of the present invention consistent with the spirit and scope of the present invention.

Claims (22)

1. Способ обнаружения аномалии в исполнении системы исполнения ПЛК, в котором:1. A method for detecting anomalies in the execution of a PLC execution system, in which: а) разделяют код и данные системы исполнения ПЛК или часть системы на отдельные программные модули, при этом на программные модули разделяют на основании:a) share the code and data of the PLC execution system or part of the system into separate software modules, while the software modules are divided on the basis of: - функциональной структуры системы исполнения ПЛК, где выделяют в по меньшей мере один модуль функционально законченный фрагмент кода и данных системы исполнения ПЛК, оставшийся код и данные системы исполнения ПЛК выделяют в другой модуль; или- the functional structure of the PLC execution system, where a functionally complete fragment of code and data of the PLC execution system is allocated to at least one module, the remaining code and data of the PLC execution system is allocated to another module; or - угроз безопасности для системы исполнения ПЛК, где выделяют в по меньшей мере один модуль фрагмент кода и данных системы исполнения, содержащий уязвимость, используемую для реализации угроз, оставшуюся часть кода и данных системы исполнения выделяют в другой модуль; или- security threats for the PLC execution system, where a fragment of code and data of the execution system containing the vulnerability used to implement threats is allocated to at least one module, the remaining part of the code and data of the execution system is allocated to another module; or - критичности кода и данных системы исполнения, где выделяют в по меньшей мере один модуль фрагмент кода и данных системы исполнения ПЛК, который управляет критическим объектом, оставшийся код и данные системы исполнения ПЛК выделяют в другой модуль;- the criticality of the code and data of the execution system, where a fragment of code and data of the PLC execution system that controls the critical object is allocated to at least one module, the remaining code and data of the PLC execution system are allocated to another module; б) устанавливают на ПЛК модуль безопасности;b) install a safety module on the PLC; в) модифицируют интерфейс обмена данными модулей, предназначенный для взаимодействия модулей между собой и с ресурсами операционной системы таким образом, чтобы указанное взаимодействие осуществлялось только через установленный модуль безопасности, а формат данных, которыми обмениваются, соответствовал формату, определенному модулем безопасности;c) modify the module data exchange interface, designed for the modules to interact with each other and with the resources of the operating system so that the specified interaction is carried out only through the installed security module, and the format of the data exchanged corresponds to the format defined by the security module; г) осуществляют мониторинг взаимодействия модулей системы исполнения ПЛК между собой и с ресурсами операционной системы путем проверки модулем безопасности по меньшей мере одного взаимодействия на соответствие правилам, установленным для данного взаимодействия;d) monitor the interaction of the modules of the PLC execution system with each other and with the resources of the operating system by checking the security module for at least one interaction for compliance with the rules established for this interaction; д) обнаруживают аномалии в исполнении системы исполнения ПЛК на основании обнаруженного модулем безопасности несоответствия взаимодействия, мониторинг которого осуществляется, установленному для данного взаимодействия правилу.e) detect anomalies in the execution of the PLC execution system on the basis of an interaction mismatch detected by the security module, the monitoring of which is carried out, the rule established for this interaction. 2. Способ по п. 1, в котором изолируют по меньшей мере один полученный модуль от других модулей и от ресурсов операционной системы, в которой исполняется система исполнения ПЛК, исключая возможность непосредственного обмена данными с другими модулями и с ресурсами ОС ПЛК.2. The method according to p. 1, in which at least one received module is isolated from other modules and from the resources of the operating system in which the PLC execution system is executed, excluding the possibility of direct data exchange with other modules and with PLC OS resources. 3. Способ по п. 2, в котором изолируют модуль путем контейнеризации.3. The method of claim 2, wherein the module is isolated by containerization. 4. Способ по п. 3, в котором модуль безопасности устанавливается на операционную систему, под управлением которой исполняется система исполнения ПЛК.4. The method according to claim 3, in which the security module is installed on the operating system, under the control of which the PLC execution system is executed. 5. Способ по п. 3, в котором для изоляции используют технологию контейнеризации Linux.5. The method according to claim 3, in which Linux is used for isolation technology containerization. 6. Способ по п. 1, в котором модуль безопасности исполняется под управлением операционной системы, под управлением которой исполняется система исполнения ПЛК.6. The method according to p. 1, in which the security module is executed under the control of the operating system, under the control of which the PLC execution system is executed. 7. Способ по п. 2, в котором изолируют модули путем виртуализации.7. The method of claim 2, wherein the modules are isolated by virtualization. 8. Способ по п. 7, в котором для изоляции используют технологию виртуализации PikeOS.8. The method of claim 7, wherein PikeOS virtualization technology is used for isolation. 9. Способ по п. 7, в котором модуль безопасности устанавливается на гипервизор.9. The method of claim 7, wherein the security module is installed on the hypervisor. 10. Способ по п. 1, где при модификации интерфейса обмена данными меняется порядок и протокол обмена данными.10. The method according to p. 1, where when modifying the data exchange interface, the order and protocol of data exchange are changed. 11. Способ по п. 1, в котором модифицируют интерфейс обмена данными для осуществления этого обмена через модуль безопасности не для любого взаимодействия модулей между собой и ОС, а только для критического, где критичность определяется на основании существующих и потенциальных угроз для системы исполнения ПЛК.11. The method according to claim 1, wherein modifying the data exchange interface for performing this exchange through the security module is not for any interaction between the modules and the OS, but only critical, where the criticality is determined based on existing and potential threats to the PLC execution system. 12. Способ по п. 1, в котором модуль безопасности осуществляет мониторинг на основании правил, формат которых совпадает с форматом данных, которыми модули обмениваются с собой и с операционной системой.12. The method according to p. 1, in which the security module monitors based on the rules, the format of which coincides with the data format that the modules exchange with themselves and with the operating system. 13. Способ по п. 12, в котором взаимодействие проверяется модулем безопасности на соответствие по меньшей мере одному правилу.13. The method according to p. 12, in which the interaction is checked by the security module for compliance with at least one rule. 14. Способ по п. 1, в котором модуль исполняется в отдельном процессе.14. The method of claim 1, wherein the module is executed in a separate process.
RU2017104133A 2017-02-08 2017-02-08 Method for detecting anomaly of execution system of programmable logic controller RU2637435C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2017104133A RU2637435C1 (en) 2017-02-08 2017-02-08 Method for detecting anomaly of execution system of programmable logic controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2017104133A RU2637435C1 (en) 2017-02-08 2017-02-08 Method for detecting anomaly of execution system of programmable logic controller

Publications (1)

Publication Number Publication Date
RU2637435C1 true RU2637435C1 (en) 2017-12-04

Family

ID=60581180

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017104133A RU2637435C1 (en) 2017-02-08 2017-02-08 Method for detecting anomaly of execution system of programmable logic controller

Country Status (1)

Country Link
RU (1) RU2637435C1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140289852A1 (en) * 2013-03-21 2014-09-25 General Electric Company Systems and methods for remote monitoring, security, diagnostics, and prognostics
EP2866407A1 (en) * 2013-10-27 2015-04-29 Konstantin Saprygin Protection of automated control systems
WO2016018622A1 (en) * 2014-07-28 2016-02-04 Ge Intelligent Platforms, Inc. Apparatus and method for security of industrial control networks
US20160124413A1 (en) * 2014-10-30 2016-05-05 Lsis Co., Ltd. Plc system and operating method thereof
RU2602336C2 (en) * 2013-10-21 2016-11-20 Интел Корпорейшн Establishing physical locality between secure execution environments

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140289852A1 (en) * 2013-03-21 2014-09-25 General Electric Company Systems and methods for remote monitoring, security, diagnostics, and prognostics
RU2602336C2 (en) * 2013-10-21 2016-11-20 Интел Корпорейшн Establishing physical locality between secure execution environments
EP2866407A1 (en) * 2013-10-27 2015-04-29 Konstantin Saprygin Protection of automated control systems
WO2016018622A1 (en) * 2014-07-28 2016-02-04 Ge Intelligent Platforms, Inc. Apparatus and method for security of industrial control networks
US20160124413A1 (en) * 2014-10-30 2016-05-05 Lsis Co., Ltd. Plc system and operating method thereof

Similar Documents

Publication Publication Date Title
JP6745921B2 (en) Automatic distribution of PLC virtual patches and security contexts
US20180124064A1 (en) Separated application security management
EP2979211B1 (en) Protecting software application
US20170090929A1 (en) Hardware-assisted software verification and secure execution
US20130246685A1 (en) System and method for passive threat detection using virtual memory inspection
Rice Container security: Fundamental technology concepts that protect containerized applications
CN105389197A (en) Operation capture method and apparatus for container based virtualized system
US9122633B2 (en) Case secure computer architecture
US11029662B2 (en) System and method for enabling data to be transmitted between program modules based on compliance with rules
RU2637435C1 (en) Method for detecting anomaly of execution system of programmable logic controller
EP3361332B1 (en) System and method of monitoring of the execution system of a programmable logic controller
US11841698B2 (en) Arrangement and method for secure execution of an automation program in a cloud computing environment
WO2018004523A1 (en) Plc virtual patching and automated distribution of security context
Zahedi Virtualization security threat forensic and environment safeguarding
Riegler et al. Mode Switching for Secure Edge Devices
Cheruvu et al. IoT Software Security Building Blocks
Bytes et al. Post-exploitation and persistence techniques against programmable logic controller
Compastié Software-defined Security for Distributed Clouds
Saxena Container Image Security with Trivy and Istio Inter-Service Secure Communication in Kubernetes
Syed Modeling and Security in Cloud and Related Ecosystems
CN116360924A (en) Method and device for safely executing container
Bischoff Design and implementation of a framework for validating kubernetes policies through automatic test generation
Chowdhary Secure Mobile SDN
dos Santos Ramos Security challenges with virtualization
Utin Malicious hypervisor threat: Phase two: How to catch the hypervisor