• Каталог продукции
  • О компании
  • Поддержка
  • OwenCloud
  • Учебный центр
  • Форум
  • Профиль
  • Средства обеспечения информационной безопасности в контроллерах ОВЕН. Часть 2

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

    Криптографическая защита и сертификаты

    С помощью меню Вид – Безопасность пользователь может настроить:

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

    Все эти средства позволяют обеспечить конфиденциальность и проверку подлинности файлов (например, если злоумышленник подменит приложение в контроллере, то оно не будет запущено из-за отсутствия цифровой подписи).

    Сертификаты можно сгенерировать для следующих сервисов:

    • web-визуализации («Web Server»);
    • сервера OPC UA («OPC UA Server»);
    • сервиса связи с контроллером («Encrypted Communication»);
    • сервиса создания загрузочного приложения («Encrypted Application»).

    На примере OPC UA использование сертификатов выглядит следующим образом:

    • когда OPC UA клиент (например, SCADA-система) подключается к контроллеру, то он отправляет ему свой сертификат;
    • этот сертификат будет отображаться на вкладке Devices в папке Quarantined Certificates;
    • пользователь должен перенести его в папку Trusted Certificates, чтобы разрешить подключение к серверу OPC UA со стороны клиента. Таким образом, несанкционированный доступ будет невозможен.

    Так как генерация сертификата является достаточно ресурсоемкой операцией, то она может занимать до нескольких десятков минут (в отдельных случаях – до часа).

    Настройка сервера web-визуализации выполняется в web-конфигураторе контроллера на вкладке ПЛК – Настройки. Здесь можно:

    • установить тип подключения (например, если требуется обеспечить доступ только по защищенному протоколу HTTPS – то нужно выбрать тип HTTPS; по умолчанию используется тип HTTP и HTTPS, который допускает как защищенное, так и незащищенное подключение);
    • выбрать номер порта web-сервера;
    • сгенерировать сертификат (аналог соответствующей команды из меню Вид – Безопасность – Devices в среде CODESYS);
    • импортировать заранее созданный сертификат.

    Защита проекта

    Файл проекта CODESYS может являться интеллектуальной собственностью компании, конкретного разработчика или заказчика. Для его защиты используется меню Вид – Безопасность – Проект – Технология, в котором есть режим Шифрование. Доступно 3 способа шифрования:

    • пароль – для открытия файла проекта потребуется ввести пароль;
    • электронный ключ – для открытия файла проекта потребуется подключить к ПК специальный USB-ключ (в настоящий момент CODESYS считает этот способ защиты устаревшим и рекомендует использовать сертификаты);
    • сертификаты – для открытия файла проекта на ПК должен быть установлен соответствующий сертификат, предоставляемый разработчиком проекта.

    По умолчанию шифрование отключено; используется режим Проверка целостности. В этом режиме при открытии CODESYS проверяет корректность файла проекта. Если она нарушена (например, если в процессе работы над проектом пропало питание ПК), то проект будет считаться поврежденным и CODESYS не будет пытаться восстановить его. 

    При этом в режиме Без шифрования CODESYS предложит попробовать восстановить проект, и в ряде случаев эта процедура пройдёт успешно – так что рекомендуется использовать именно этот режим.

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

    Защита доступа к контроллеру

    Получение доступа к контроллеру позволяет загрузить (и выгрузить) приложение CODESYS, остановить его выполнение, получить доступ к логам и т. д. – так что это обычно является одной из основных целей злоумышленника.
    Для защиты от несанкционированного доступа в CODESYS на вкладке Device – Пользователи и группы можно создать пользователей, задав им логины и пароли, а на вкладке Device – Права доступа указать операции, разрешенные для пользователей конкретных групп.
    Если пользователь был создан по ошибке и его необходимо удалить – то подключитесь к контроллеру (для этого, соответственно, потребуется ввести логин и пароль), нажмите правой кнопкой мыши на узел Device и используйте команду Сброс заводской устройства [Device].

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

    Безопасность обмена по протоколу OPC UA

    Протокол OPC UA поддерживает два средства обеспечения безопасности – использование сертификатов (о которых мы упоминали в начале статьи) и логинов/паролей. При этом для использования логинов/паролей обязательно требуется наличие сертификата. См. пример настройки безопасного подключения по OPC UA в данном видео и уточнения по его поводу.

    В качестве логинов/паролей используются логины/пароли пользователей контроллера, созданные на вкладке Device – Пользователи и группы (см. предыдущий пункт). Если требуется при наличии в контроллере пользователей обеспечить возможность подключения по OPC UA без логина/пароля, то необходимо в CODESYS в узле Device на вкладке Установки соединения выполнить команду: Устройство – Изменить политику соединения – установить галочку Анонимный логин.

    Ограничение прав пользователей визуализации

    Визуализация CODESYS позволяет оператору влиять на протекание технологического процесса – вводить уставки, изменять режим работы оборудования, включать и отключать исполнительные механизмы и т. д. При этом у разных пользователей визуализации обычно должны быть разные права – например, оператору обычно не требуется возможность изменений сетевых настроек контроллера. Для предотвращения несанкционированного доступа визуализация CODESYS позволяет создавать группы пользователей с различными правами. Настройка пользователей выполняется в Менеджере визуализации на вкладке Управление пользователями. Для каждого элемента визуализации настраивается уровень доступа для каждой группы. Существует 3 уровня доступа:

    • элемент не отображается для пользователей данной группы;
    • элемент отображается, но не является активным;
    • элемент отображается и является активным.

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

    Защита проекта от тиражирования

    Один из вопросов, который регулярно возникает у клиентов: «Как я могу защитить мой загруженный в контроллер проект от выгрузки, чтобы его не смогли тиражировать?»

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

    Чтобы защитить скомпилированное приложение от выгрузки, достаточно:

    • изменить пароль на конфигуратор (см. детали в первой части статьи). Это не позволит постороннему лицу выгрузить приложение путем создания резервной копии через конфигуратор или через SSH-подключение;
    • запретить подключение к контроллеру (см. выше в разделе Защита доступа к контроллеру). Это не позволит постороннему лицу подключиться к контроллеру из CODESYS и выгрузить приложение с помощью вкладки Device – Файлы или Device – Резервное копирование и восстановление.

    Кроме того, вы можете в коде программы считать серийный номер контроллера и обработать его в её логике – например, не выполнять никаких операций, если серийный номер не соответствует ожидаемому (то есть если приложение всё же каким-то образом скопировали с «вашего» контроллера).

    Для считывания серийного номера достаточно привязать переменную типа STRING к каналу SERIAL узла таргет-файла Info.

    Дополнительные материалы

    Если вы хотите больше узнать о вопросах безопасности систем автоматизации, то мы рекомендуем ознакомиться со следующими материалами:

    Поделиться
    Используем куки и рекомендательные технологии
    Это чтобы сайт работал лучше. Оставаясь с нами, вы соглашаетесь на использование файлов куки.
    OK
    Товар добавлен!
    Модификация:
    Цена:  ₽ ( ₽ за . Кратность отгрузки:  .)
    Продолжить выбор
    Перейти к оформлению