Способ контроля системы исполнения программируемого логического контроллера

Изобретение относится к способам контроля исполнения системы исполнения программируемого логического контроллера (ПЛК). Технический результат заключается в обеспечении контроля над исполнением системы исполнения ПЛК. Способ контроля исполнения системы исполнения ПЛК включает: разделение системы исполнения на модули и их изоляцию, где фрагменты кода и данных, управляющие критическими объектами, выделяются в один модуль, а фрагменты кода, содержащие уязвимости, в другой; установку на ПЛК модуля безопасности; модификацию интерфейса обмена данными изолированных модулей так, чтобы взаимодействие осуществлялось только через модуль безопасности; контроль исполнения системы исполнения ПЛК посредством контроля взаимодействия изолированных модулей системы исполнения ПЛК между собой и с ресурсами операционной системой модулем безопасности. 13 з.п. ф-лы, 13 ил.

 

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

Настоящее изобретение относится к способам контроля функционирования программируемых логических контроллеров и связанных с ним периферийных устройств, предназначенных для контроля и управления машинами и производственными процессами.

Уровень техники

Атаки на автоматизированные системы управления (сокр. АСУ) уже давно не редкость. Атакам подвергаются почти все элементы АСУ, не являются исключением и программируемые логические контроллеры1 (1 ГОСТ Р МЭК 61131-1-2016. Национальный стандарт Российской Федерации. Контроллеры программируемые. Часть 1. Общая информация'' (утв. и введен в действие Приказом Росстандарта от 13.05.2016 N314-ст) (сокр. ПЛК, англ. PLC). ПЛК содержат множество уязвимостей2, (2 http://www.alphaguardian.net/category/plc-cyber-vulnerabilities/), которые могут быть использованы для атаки на АСУ. Одной из таких уязвимостей является использование систем исполнения ПЛК (напр. CodeSYS RTE), представляющих из себя монолитную или многокомпонентную программу, исполняющуюся в одном виртуальном адресном пространстве на операционной системе, под управлением которой работает ПЛК. Таким образом если будет скомпрометирован хотя бы один функциональный компонент3, (3 ГОСТ Р МЭК 61131-1-2016. - С. 2) поддерживаемый системой исполнения ПЛК, например, осуществляющий взаимодействие с устройствами ввода, скомпрометирована будет вся система исполнения ПЛК.

Техническая проблема заключается в невозможности обеспечить безопасное функционирование АСУ, содержащей систему исполнения ПЛК, функциональные компоненты которой содержат уязвимости4. (4 ГОСТ Р 56546-2015. Национальный стандарт Российской Федерации. Защита информации. Уязвимости информационных систем. Классификация уязвимостей информационных систем'' (утв. и введен в действие Приказом Росстандарта от 19.08.2015 N 1181-ст).

В уровне технике отсутствуют решения, позволяющие решить указанную проблему кардинально. Используются различные сканеры уязвимостей и фильтры. Примером подобного решения приведен в статье "Protecting Industrial Control Systems with Cisco IPS Industrial Signatures"5 (5 http://www.cisco.com/c/en/us/about/security-center/protecting-industrial-control-systems-networks-ips.html).

Также в настоящее время возможны два полюсных варианта, в первом случае дизайн ПЛК разрабатывается таким образом, чтобы выполнять строго детерминированную задачу, что в принципе исключает какую-либо гибкость6 (6 способность переходить с одного вида продукции на другой с минимальными затратами времени и труда) и в использовании систем исполнения в их классическом понимании, нет необходимости. Либо используются ПЛК совместно с системами исполнения, что придает ПЛК максимальную гибкость, но при этом полностью игнорируется вопрос информационной безопасности (англ. information security), хотя выполнению требований по функциональной безопасности (англ. functional safety) уделяется очень пристальное внимание ввиду их нормативной регламентации7. (7 Стандарт IEC 61508 - Функциональная безопасность электрических, электронных, программируемых электронных систем, связанных с безопасностью).

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

Настоящее изобретение предназначено для контроля исполнения системы исполнения ПЛК на программируемом логическом контроллере.

Технический результат настоящего изобретения заключается в обеспечении контроля над исполнением системы исполнения ПЛК на программируемом логическом контроллере. Технический результат достигается за счет контроля модулем безопасности взаимодействия модулей системы исполнения ПЛК между собой и операционной системой, который осуществляется путем разделения системы исполнения ПЛК на модули и модификации интерфейса обмена данными модулей между собой и с ресурсами операционной системы таким образом, чтобы направить взаимодействие через модуль безопасности, который и осуществляет контроль.

Другой технический результат настоящего изобретения заключается в повышении безопасности функционирования АСУ. Повышение безопасности АСУ достигается за счет разделения системы исполнения на модули и их изоляции, где фрагменты кода и данных, управляющие критическими объектами8 (8 ГОСТ Р 53114-2008. Национальный стандарт Российской Федерации. Защита информации. Обеспечение информационной безопасности в организации. Основные термины и определения'' (утв. и введен в действие Приказом Ростехрегулирования от 18.12.2008 N 532-ст), С. 6) выделяются в один модуль, а фрагменты кода, содержащие уязвимости, в другой. В результате реализации уязвимости в одном модуле злоумышленник не сможет скомпрометировать другой модуль, так как модули разделены и изолированы, а взаимодействие между ними контролируется.

Способ контроля исполнения системы исполнения ПЛК, в котором разделяют код и данные системы исполнения ПЛК или ее части на отдельные программные модули, при этом на программные модули разделяют на основании:

- функциональной структуры системы исполнения ПЛК, где выделяют в, по меньшей мере, один модуль функционально законченный фрагмент кода и данных системы исполнения ПЛК, остальной код и данные системы исполнения ПЛК выделяют в другой модуль; или

- угроз безопасности для системы исполнения ПЛК, где выделяют в, по меньшей мере, один модуль фрагмент кода и данных системы исполнения, содержащий уязвимость, используемую для реализации угроз, остальная часть кода и данных системы исполнения выделяют в другой модуль; или

- критичности кода и данных системы исполнения, где выделяют в, по меньшей мере, один модуль фрагмент кода и данных системы исполнения ПЛК, который управляет критическим объектом, остальной код и данные системы исполнения ПЛК выделяют в другой модуль.

По меньшей мере, один полученный модуль изолируют от других модулей и от ресурсов операционной системы, в которой исполняется система исполнения ПЛК, исключая возможность непосредственного обмена данными с другими модулями и с ресурсами ОС ПЛК. Устанавливают на ПЛК модуль безопасности. Модифицируют интерфейс обмена данными изолированных модулей, предназначенный для взаимодействия между собой, с другими модулями и с ресурсами операционной системы в условиях изоляции таким образом, чтобы указанное взаимодействие в условиях изоляции модулей осуществлялось только через установленный модуль безопасности, а формат данных, которыми обмениваются, соответствовал формату, определенному модулем безопасности. Контролируют исполнение системы исполнения ПЛК посредством контроля взаимодействия изолированных модулей системы исполнения ПЛК между собой и с ресурсами операционной системы модулем безопасности, при этом контроль в частном случае предполагает мониторинг взаимодействия, корректировку взаимодействия, остановку взаимодействия. Модули могут исполняться в отдельном процессе.

В частном случае изолируют модуль путем контейнеризации, а модуль безопасности устанавливается на операционную систему, под управление которой исполняется система исполнения ПЛК. Для изоляции возможно использовать технологию контейнеризации Linux или использовать технологию контейнеризации PikeOS.

В частном случае модуль безопасности исполняется под управлением операционной системы, под управлением которой исполняется система исполнения ПЛК.

В другом частном случае изолируют модули путем виртуализации, а модуль безопасности устанавливается на гипервизор.

При модификации интерфейса обмена данными меняют порядок и протокол обмена данными. При этом модифицируют интерфейс обмена данными для осуществления этого обмена через модуль безопасности не для любого взаимодействия модулей между собой и ОС, а только для критического, где критичность определяется на основании существующих и потенциальных угроз для системы исполнения ПЛК. В частном случае модуль безопасности осуществляет контроль на основании правил, формат которых совпадает с форматом данных, которыми модули обмениваются с собой и с операционной системой и взаимодействие проверяется модулем безопасности на соответствие, по меньшей мере одному, правилу.

Краткое описание чертежей

Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:

Фиг. 1 изображает примеры систем исполнения ПЛК и систем программирования и отладки;

Фиг. 2 изображает осуществление настоящего изобретения;

Фиг. 3 изображает варианты разделения системы исполнения ПЛК на модули;

Фиг. 4 изображает варианты изоляции модулей системы исполнения ПЛК;

Фиг. 5 изображает варианты установки модуля безопасности на ПЛК;

Фиг. 6 изображает пример компьютерной системы общего назначения, с помощью которой может быть реализовано настоящее изобретение.

Осуществление изобретения

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Приведенное описание предназначено для помощи специалисту в области техники для исчерпывающего понимания изобретения, которое определяется только в объеме приложенной формулы.

Программируемый логический контроллер - электронная составляющая промышленного контроллера, специализированного (компьютеризированного) устройства, используемого для автоматизации технологических процессов. Система исполнения (англ. execution runtime, runtime environment) - программное и/или аппаратное окружение необходимое для выполнения компьютерной программы и доступное во время выполнения компьютерной программы. Известна также как система выполнения, среда выполнения, среда исполнения, исполнительная система.

Система исполнения программируемого логического контроллера9 (9 Петров И.В. «Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования» - М.: Солон-Пресс, 2010 - С. 48) (англ. control runtime system) - программное окружение, установленное на ПЛК, необходимое для выполнения управляющей (прикладной) программы и доступное во время выполнения управляющей программе. Обеспечивает загрузку, исполнение прикладной программы ПЛК и функции отладки. Устанавливается в контроллер в процессе его изготовления. Является монолитной программой (однокомпонентной) или программный комплекс (состоит из несколких компонентов). В случае монолитной программы все функционально законченные фрагменты кода10 (10 Под кодом здесь и далее понимается программный код в различных его формах: объектного кода, байт кода (промежуточный код), исполняемого кода, машинного кода) и данных программы, отвечающие за сетевой обмен, доступ к устройствам ввода вывода и иные функции размещены в рамках одного компонента, в другом случае разносятся по нескольким компонентам (напр. библиотекам). Примеры указанных систем: исполнительная система MasterPLC11, (11 http://www.insat.ru/products/?category=395) система исполнения CodeSys Runtime12 (12 https://www.codesys.com/products/codesys-runtime.html). На Фиг. 1 изображен вариант организации системы исполнения ПЛК. Функционально законченные фрагменты кода и данных, реализующие функции сетевого обмена, доступа к устройствам ввода вывода и иные функции, размещенные в рамках одной программы, далее будут обозначаться абстрактно: Функции А, Функции В, Функции С, где, например, под «Функцией А» понимается функционально законченный фрагменты кода и данных, отвечающие за реализацию «Функции А». Функциональный компонент следует отличать от программного компонента. Функциональный компонент является элементом функциональной структуры, а программный компонент - элемент программного комплекса.

Компонент системы исполнения - набор функционально законченных фрагментов кода и данных, объединенных в программу (приложение, библиотеку), функцию, функциональный блок, из которых иерархически строится система исполнения. Компоненты взаимодействуют между собой посредством интерфейса. В рамках данной заявки модуль системы исполнения - частный случай компонента, который исполняется отдельно от других компонентов системы исполнения ПЛК (напр. в другом адресном пространстве).

Совокупность взаимосвязанных компонентов (модулей), из которых иерархически строится система исполнения, реализует функциональную структуру13 (13 ''ГОСТ Р МЭК 61131-1-2016. Национальный стандарт Российской Федерации. Контроллеры программируемые. Часть 1. Общая информация'' (утв. и введен в действие Приказом Росстандарта от 13.05.2016 N314-ст), - С. 3) (функции, выполняемые системой исполнения). Порядок и формат взаимодействия взаимосвязанных компонентов определяются функциональной логикой. В частном случае, реализованная функциональная структура и функциональная логика (способ взаимодействия элементов функциональной структуры) являются реализованной в коде среды выполнения бизнес-логикой. Способ взаимодействия в частном случае определяет порядок и формат взаимодействия элементов.

Бизнес-логика системы исполнения - реализованная в коде классов, методов, процедур, функций среды выполнения совокупность правил, принципов, зависимостей поведения объектов в предметной области. Элемент бизнес-логики среды выполнения функционально законченный набор инструкций, классов, методов, процедур, функций. Совокупность элементов образует функциональную структуру системы исполнения или ее часть.

Бизнес-логика системы исполнения ПЛК - реализованная в коде классов, методов, процедур, функций среды выполнения совокупность правил, принципов, зависимостей поведения объектов в автоматизируемом технологическом процессе. Например, порядок сетевого обмена, доступ к устройствам ввода вывода, взаимодействие с ОС ПЛК.

Система программирования и отладки программ14 (14 ''ГОСТ Р МЭК 61131-1-2016. Национальный стандарт Российской Федерации. Контроллеры программируемые. Часть 1. Общая информация'' (утв. и введен в действие Приказом Росстандарта от 13.05.2016 N314-ст), - С. 2) (сокр. СПиО) связана с системой исполнения ПЛК. Именно посредством данной системы прикладная программа загружается в память ПЛК и передается под управление системе исполнения ПЛК. Пример СПиО изображен на Фиг. 1. В частном случае данная система может использоваться для управления системой исполнения ПЛК изменения ее конфигурации и установки дополнительных модулей на ПЛК.

Как отмечалось в разделе «Уровень техники» системы исполнения ПЛК имеют проблемы с безопасностью, по причине того, что система исполнения ПЛК представляет из себя монолитную программу или состоит из компонентов, которые исполняются в одном процессе. Настоящее изобретение позволяет разделить систему исполнения на модули, что позволит контролировать взаимодействие любых элементов функциональной структуры системы исполнения ПЛК или любых фрагментов кода системы исполнения между собой и с ресурсами операционной системы. Настоящее изобретение при использовании с другими системами исполнения, монолитными программами или многокомпонентными программами, исполняющимися в одном процессе, также позволяет:

повысить безопасность компьютерных систем, на которых перечисленные объекты функционируют (исполняются); и обеспечить контроль взаимодействия элементов этих объектов.

Данное изобретение применимо не только к программам или системам исполнениям целиком, но и к любым монолитным частям и компонентам программ и программных комплексов контроль над исполнением которых необходимо обеспечить, а также повысить безопасность компьютерных систем, на которых упомянутые части или компоненты исполняются. Поэтому следует отметить, что все, указанное для системы исполнения ПЛК, справедливо в равной мере, если явно не указано иное, или иное не следует из сущности системы исполнения ПЛК, вытекающей из особенностей ПЛК, для:

- других систем исполнения, их частей и отдельных компонентов (модулей);

- монолитных программ и их частей;

- многокомпонентных программ, исполняющихся в одном адресном пространстве, и отдельных компонентов (модулей) этих программ.

Осуществление данного изобретения изображено на Фиг. 2. На первом этапе 200 реализации способа получают систему исполнения ПЛК. Система исполнения ПЛК либо извлекается из ПЛК, либо систему исполнения ПЛК получают перед установкой на ПЛК. В другом частном случае способ реализуют с первого этапа непосредственно на ПЛК.

Далее на этапе 210 разделяют код и данные системы исполнения ПЛК на отдельные модули код и данные разделяются на основании функциональной структуры15 (15 ГОСТ МЭК 61131-1) системы исполнения ПЛК. При таком разделении выделяют в, по меньшей мере, один модуль функционально законченный фрагмент кода и данных системы исполнения ПЛК, остальной код и данные системы исполнения ПЛК выделяют в другой модуль. На Фиг. 3а изображен пример такого разделения, где фрагмент кода и данных предназначенный для выполнения «функций А» выделяется в «модуль 1», фрагмент кода и данных, предназначенные для выполнения «функций В», выделяется в «модуль 2», фрагмент кода и данных предназначенные для выполнения «других функций», оставшихся, выделяется в «модуль 3».

Также код и данные системы ПЛК разделяют на основании угроз безопасности16 (16 ГОСТ Р 56546-2015) для системы исполнения ПЛК. При таком разделении выделяют в, по меньшей мере, один модуль фрагмент кода и данных системы исполнения, содержащий уязвимость17 (17 Там же) (или уязвимый фрагмент кода, например, фрагмент, отвечающий за сетевое взаимодействие, именно он, как правило, подвергается атаке в первую очередь), используемую для реализации угроз, остальную часть кода и данных системы исполнения выделяют в другой модуль. На Фиг. 3б показано такое разделения, например фрагменты кода и данных, предназначенные для выполнения функций А, В, С, содержат уязвимости, фрагмент кода и данных, предназначенный для выполнения «функций А», выделяется в «модуль 1», фрагменты кода и данных, предназначенные для выполнения «функций В» и «функций С», выделяются в «модуль 2», фрагменты кода и данных, предназначенные для выполнения «других функций», оставшихся, и не содержащие уязвимости, выделяются в «модуль 3».

Разделение может осуществляться и на основании критичности фрагментов кода и данных системы исполнения, где выделяют в, по меньшей мере, один модуль фрагмент кода и данных системы исполнения ПЛК, который управляет критическим объектом18 (18 ГОСТ Р 53114-2008. Национальный стандарт Российской Федерации. «Защита информации. Обеспечение информационной безопасности в организации. Основные термины и определения'' (утв. и введен в действие Приказом Ростехрегулирования от 18.12.2008 №532-ст), С. 6) (критический фрагмент кода и данных), остальной код и данные системы исполнения ПЛК выделяют в другой модуль. На Фиг. 3в изображен пример такого разделения, где фрагмент кода и данных, предназначенный для выполнения «функций А», является критическим кодом и содержит критические данные, данный фрагмент выделяется в модуль 1, фрагменты кода и данных, предназначенные для выполнения «функций В», «функций С», «других функций», оставшихся, выделяются в «модуль 2».

Эти критерии при разделении могут использоваться как отдельно, так и совместно, в примере, изображенном на Фиг. 3б, используется разделение не только по наличию уязвимостей, но и на основании функциональной структуры системы исполнения ПЛК, а в примере, изображенном на Фиг. 3в, используется разделение не только по критичности кода/данных, но и на основании функциональной структуры системы исполнения ПЛК.

На Фиг. 3б и Фиг. 3в показаны примеры, где в модули выделяются функционально законченные фрагменты кода и данных, содержащие уязвимости или используемые для управление критическими объектами, в общем случае при разделении на основании критичности и угроз безопасности в модуль выделять функционально законченные фрагменты необязательно, выделяться могут любые критические фрагменты, или фрагменты, содержащие уязвимости, примеры представлены для простоты восприятия.

При выделении фрагментов кода в модули организуется способ взаимодействия (порядок обмена данными и формат данных) между модулями, эквивалентный способу взаимодействия этих фрагментов в системе исполнения ПЛК до разделения. Иначе говоря, какой фрагмент кода с каким фрагментом в каком порядке взаимодействовал, в таком порядке будут взаимодействовать модули, содержащие указанные фрагменты кода, после разделения системы исполнения ПЛК.

На этапе 220 изолируют созданные ранее модули друг от друга, от операционной системы и оборудования. Для изоляции используют технологии виртуализации с применением контейнеров или виртуальных машин19 (19 ГОСТ Р 56938-2016, Защита информации. Защита информации при использовании технологий виртуализации. Общие положения). При использовании контейнеров (см. Фиг. 4а), модуль помещают в контейнер, а в операционную систему устанавливается управляющая служба, через которую модули взаимодействуют между собой и с операционной системой, примерами таких служб являются службы Docker (англ. Docker engine). При использовании виртуальных машин модули помещаются в виртуальные машины с различными вариантами мониторов виртуальных машин, которыми являются:

- гипервизоры I типа (см. Фиг. 4б), например, VMware ESX;

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

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

Отдельно стоит отметить, что для изоляции в частном случае могут использоваться: партиции (англ. partition) PikeOS;20 (20 PikeOS - микроядерная операционная система реального времени, которая производится компанией SYSGO AG. Она ориентирована на безопасности критически важных встраиваемых систем. Она обеспечивает разделенную среду для нескольких операционных систем с различными целями проектирования и требованиями безопасности (оф. сайт https://www.sysgo.com/products/pikeos-hypervisor/) контейнеризация средствами Linux (англ. Linux Containers, сокр. LXC). В частном случае не все модули могут изолироваться, и их взаимодействие с операционной системой и другими модулями остается неизменным, данный факт отображен на примере модуля N на фигурах, для которого изоляция опциональна.

На этапе 230 устанавливают на ПЛК модуль безопасности, в частном случае модуль содержит функционально законченные наборы фрагментов кода и данных, отвечающие за реализацию функций безопасности (о том, как эти функции осуществляются будет описано ниже). Уровень архитектуры ПЛК, на котором будет функционировать модуль безопасности, будет определяться технологией, которая использовалась для изоляции модулей системы исполнения ПЛК. Например, если для изоляции использовались контейнеры (Фиг. 4а), и в ОС ПЛК установлена управляющая служба (напр. Docker), то модуль безопасности располагается на том же уровне, что и контейнеры (см. Фиг. 5а). Если для изоляции используются виртуальные машины (см. Фиг. 4б, Фиг. 4в, Фиг. 4г), то модуль безопасности устанавливается на уровне монитора виртуальных машин (гипервизора) или встраивается в него (см. Фиг. 5б, Фиг. 5в). На том же этапе модифицируют интерфейс обмена данными изолированных модулей, предназначенный для взаимодействия с другими модулями и с ресурсами операционной системы в условиях изоляции таким образом, чтобы указанное взаимодействие в условиях изоляции модулей осуществлялся только через установленный модуль безопасности, а формат данных, которыми обмениваются, соответствовал формату, определенному модулем безопасности. Таким образом структура сообщений, которыми обмениваются полностью или частично, известна модулю безопасности, данная структура (формат данных, иногда также называется интерфейсом) описывается, например, с помощью Interface Definition Language (IDL) и модуль безопасности в результате способен проверять, что передаваемое сообщение соответствует этому описанию, а также может использовать отдельные поля этого сообщения для целей контроля допустимости.

В результате модуль безопасности способен выполнять функции безопасности, а именно осуществлять контроль исполнения системы исполнения, который предполагает: мониторинг взаимодействия изолированных модулей между собой, с ресурсами операционной системы ПЛК или оборудованием; корректировку указанного взаимодействия, остановку взаимодействия. Модуль безопасности осуществляет контроль на основании правил, формат которых совпадает с форматом данных которыми модули обмениваются с собой и с операционной системой. Взаимодействие проверяется модулем безопасности на соответствие логическому правилу, которое хранится у модуля безопасности, правило содержит описание допустимого взаимодействия.

Модуль безопасности осуществляет мониторинг взаимодействия, где взаимодействие проверяется на соответствие правилу, если взаимодействие соответствует правилу, то взаимодействие пропускается и данные отправляются приемнику, если взаимодействие не соответствует правилу осуществляется корректировка взаимодействия (в данные, которыми обменивается приемник и источник, через модуль безопасности вносятся изменения) или взаимодействие не допускается (взаимодействие останавливается). Что должен сделать модуль безопасности при несоответствии взаимодействия правилу, описывающему подобное взаимодействие, определяется либо самим правилом, либо субсидиарным правилом, если правилом для осуществляемого взаимодействия модуль не располагает (диспозитивное регулирование). Например, допустимое взаимодействие (см. Фиг. 5б) «модуля 1» с «модулем 2», где «модуль 1» является источником, а «модуль 2» приемником, описывается основным «правилом А» и факультативным «правилом Б», также модуль безопасности содержит субсидиарное «правило X», которое необходимо применить в случае, когда ни одно другое правило никаких предписаний на возникшее взаимодействие не содержит. При контроле указанного взаимодействия модуль безопасности обнаружил, что взаимодействие «модуля 1» с «модулем 2» не соответствует «правилу А». «Правило А» на данный случай предписывает проверить взаимодействие на соответствие «правилу Б». Модуль безопасности поэтому проверяет взаимодействие на соответствие «правилу Б», модуль обнаруживает что взаимодействие не соответствует и «правилу Б», но на этот случай «правило Б» ничего не предписывает, поэтому модуль безопасности применяет некоторое «правило X», которое, например, предписывает остановить взаимодействие.

Настоящее изобретение в частном случае осуществляется посредством СПиО, элементы которой могут быть исполнены на процессоре компьютера общего назначения (например, который изображен на Фиг. 6).

Фиг. 6 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.

Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 6. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.

В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.

1. Способ контроля исполнения системы исполнения программируемого логического контроллера (ПЛК), в котором:

а) разделяют код и данные системы исполнения ПЛК или ее части на отдельные программные модули, при этом на программные модули разделяют на основании:

- функциональной структуры системы исполнения ПЛК, где выделяют в, по меньшей мере, один модуль функционально законченный фрагмент кода и данных системы исполнения ПЛК, остальной код и данные системы исполнения ПЛК выделяют в другой модуль; или

- угроз безопасности для системы исполнения ПЛК, где выделяют в, по меньшей мере, один модуль фрагмент кода и данных системы исполнения, содержащий уязвимость, используемую для реализации угроз, остальная часть кода и данных системы исполнения выделяют в другой модуль; или

- критичности кода и данных системы исполнения, где выделяют в, по меньшей мере, один модуль фрагмент кода и данных системы исполнения ПЛК, который управляет критическим объектом, остальной код и данные системы исполнения ПЛК выделяют в другой модуль;

б) изолируют, по меньшей мере, один полученный модуль от других модулей и от ресурсов операционной системы, в которой исполняется система исполнения ПЛК, исключая возможность непосредственного обмена данными с другими модулями и с ресурсами ОС ПЛК;

в) устанавливают на ПЛК модуль безопасности;

г) модифицируют интерфейс обмена данными изолированных модулей, предназначенный для взаимодействия изолированных модулей между собой, с другими модулями и с ресурсами операционной системы в условиях изоляции таким образом, чтобы указанное взаимодействие в условиях изоляции модулей осуществлялось только через установленный модуль безопасности, а формат данных, которыми обмениваются, соответствовал формату, определенному модулем безопасности;

д) контролируют исполнение системы исполнения ПЛК посредством контроля взаимодействия изолированных модулей системы исполнения ПЛК между собой и с ресурсами операционной системы модулем безопасности.

2. Способ по п. 1, в котором изолируют модуль путем контейнеризации.

3. Способ по п. 2, в котором модуль безопасности устанавливается на операционную систему, под управлением которой исполняется система исполнения ПЛК.

4. Способ по п. 2, в котором для изоляции используют технологию контейнеризации Linux.

5. Способ по п. 2, в котором для изоляции используют технологию контейнеризации PikeOS.

6. Способ по п. 1, в котором модуль безопасности исполняется под управлением операционной системы, под управлением которой исполняется система исполнения ПЛК.

7. Способ по п. 1, в котором изолируют модули путем виртуализации.

8. Способ по п. 7, в котором модуль безопасности устанавливается на гипервизор.

9. Способ по п. 1, где при модификации интерфейса обмена данными меняется порядок и протокол обмена данными.

10. Способ по п. 1, в котором модифицируют интерфейс обмена данными для осуществления этого обмена через модуль безопасности не для любого взаимодействия модулей между собой и ОС, а только для критического, где критичность определяется на основании существующих и потенциальных угроз для системы исполнения ПЛК.

11. Способ по п. 1, в котором контроль предполагает мониторинг взаимодействия, корректировку взаимодействия, остановку взаимодействия.

12. Способ по п. 11, в котором модуль безопасности осуществляет контроль на основании правил, формат которых совпадает с форматом данных, которыми модули обмениваются с собой и с операционной системой.

13. Способ по п. 12, в котором взаимодействие проверяется модулем безопасности на соответствие, по меньшей мере одному, правилу.

14. Способ по п. 1, в котором модуль исполняется в отдельном процессе.



 

Похожие патенты:

Группа изобретений относится к технологиям создания профиля пользователя в различных вычислительных системах. Техническим результатом является расширение арсенала технических средств для создания профиля пользователя и аутентификации пользователя.

Изобретение относится к системам и способам обнаружения вредоносного кода в файле. Технический результат заключается в улучшении обнаружения вредоносного кода в файле в сравнении с существующими методами обнаружения вредоносного кода.

Изобретение относится к способам защиты данных с использованием сертификатов или электронных подписей. Технический результат заключается в повышении надежности.

Изобретение относится к вычислительной технике и может найти применение при организации санкционированного доступа к ресурсам вычислительной системы. Технический результат заключается в повышении надежности устройства и уменьшении его аппаратных ресурсов.

Изобретение относится к технологиям сетевой связи. Технический результат заключается в повышении безопасности передачи данных.

Изобретение относится к контролю целостности данных, обрабатываемых в автоматизированных системах. Технический результат – обеспечение необходимого уровня защиты записей данных в файле на основе задания соответствующих параметров метода «однократной записи»: степени вложенности в блок данных, количество используемых внешних ключей.

Изобретение относится к области обеспечения компьютерной безопасности. Технический результат заключается в повышении эффективности защиты от компьютерного пиратства.

Изобретение относится к области защиты информации в системах электронного документооборота. Технический результат заключается в обеспечении многоуровневого контроля целостности электронных документов.

Изобретение относится к средствам резервного копирования. Технический результат заключается в повышении надежности сохранения данных.

Изобретение относится к способам для обнаружения фишинговой веб-страницы. Техническим результатом является обнаружение фишинговых веб-страниц посредством создания правил обнаружения фишинговых веб-страниц с использованием по крайней мере одного уникального признака, идентифицирующего веб-страницу как фишинговую.

Группа изобретений относится к способам и устройствам, предназначенным для управления производственным процессом, а более конкретно к способу и устройству для определения взаимосвязей параметров производственного процесса.

Изобретение относится к области управления сложными стохастическими системами автоматического управления. Технический результат - повышение быстродействия поиска оптимальных параметров управления, в том числе, системами, в которых отсутствует монотонность критерия качества.

Изобретение относится к области дорожной выемки, горных работ и транспортировки в угольной шахте, в частности к централизованной системе управления челночной вагонетки с тягой на переменном токе в угольной шахте.

Изобретение относится к области электрометаллургии. .

Изобретение относится к способу и устройству для тестирования системы управления клапанами в топливной системе воздушного судна, имеющей множество регулирующих клапанов.

Изобретение относится к способу замены структурных компонентов системы автоматизации и может быть использовано для автоматизации производственных установок. .

Изобретение относится к системе управления и/или передачи данных. .

Изобретение относится к устройству для обнаружения несанкционированных манипуляций системным состоянием блока управления и регулирования, в частности программируемого логического контроллера ядерной установки. Технический результат заключается в повышении надежности контроля работы установки в соответствии с заданной программой. Для этого устройство обеспечивает возможность надежным образом обнаруживать несанкционированные манипуляции. Предусмотрен модуль мониторинга, который контролирует рабочее состояние, и/или состояние расширения аппаратных средств, и/или состояние программы блока управления и регулирования и при изменениях этого состояния формирует сообщение. 2 н. и 9 з.п. ф-лы, 4 ил.

Изобретение относится к способам контроля исполнения системы исполнения программируемого логического контроллера. Технический результат заключается в обеспечении контроля над исполнением системы исполнения ПЛК. Способ контроля исполнения системы исполнения ПЛК включает: разделение системы исполнения на модули и их изоляцию, где фрагменты кода и данных, управляющие критическими объектами, выделяются в один модуль, а фрагменты кода, содержащие уязвимости, в другой; установку на ПЛК модуля безопасности; модификацию интерфейса обмена данными изолированных модулей так, чтобы взаимодействие осуществлялось только через модуль безопасности; контроль исполнения системы исполнения ПЛК посредством контроля взаимодействия изолированных модулей системы исполнения ПЛК между собой и с ресурсами операционной системой модулем безопасности. 13 з.п. ф-лы, 13 ил.

Наверх