
Работу станков, линий и технологических комплексов определяют проекты ПЛК, и любое несанкционированное изменение в их коде может привести не только к аварии и простоям, но и к угрозе безопасности людей. При этом на многих предприятиях до сих пор отсутствует системный контроль версий: рабочие проекты хранятся на отдельных компьютерах или даже на флешках.
Автор: Владислав Ганжа, руководитель производственного направления лаборатории кибербезопасности UDV Group
Контроль версий в промышленности — это не просто инструмент удобства инженеров, а фундаментальный элемент кибербезопасности. Однако есть сложности в использовании на предприятиях традиционных систем контроля версий, ведь среды разработки проектов ПЛК в АСУ ТП имеют свою специфику. Рассмотрим этот вопрос подробнее.
Несовместимость с ИТ-практиками
Такие известные решения для контроля версий, как Git, к работе с АСУ ТП практически не применимы. Причина простая: каждая среда разработки предполагает свои подходы к хранению и обработке кода. Проект может храниться, например, в виде набора файлов, либо одного большого бинарного файла, который умеет читать только проприетарная среда разработки. В промышленности почти все проекты ПЛК — это бинарные или полубинарные форматы, завязанные на проприетарные среды, такие как TIA Portal от Siemens, Unity Pro от Schneider Electric, CODESYS и др. Тогда как Git изначально был ориентирован на работу с исходными кодами ядра Linux, то есть с множеством небольших текстовых файлов.
Форматами, завязанными на проприетарные среды, продолжают пользоваться многие российские предприятия, где старые производственные линии остаются на зарубежных решениях. Однако надо отметить, что в свете тренда на импортозамещение успешно развиваются и российские среды разработки. Неплохие результаты, например, у компаний "Прософт-Системы", ТРЭИ и некоторых других. Новые производственные линии сейчас изначально строятся на российских продуктах.
Но мало просто импортозаместить среду разработки АСУ ТП — нужно обеспечить ее корректную работу с ПЛК и настроить так, чтобы она поддерживала параметры, критичные для технологического процесса. Это трудоемкая и дорогостоящая задача: любая ошибка в конфигурации может привести к сбою и потребовать повторной настройки, а это отнимет часы или даже дни. Именно поэтому сейчас в приоритете не расширенные функций, а повышение надежности базового функционала, включая возможность версионирования проектов ПЛК. Система, которая позволяет быстро откатиться к стабильной версии и восстановить работу за несколько минут, становится не просто удобством, а инструментом экономии ресурсов и снижения рисков простоя.
Работа в условиях реальности цеха
В отличие от классической ИТ-разработки, изменения в логике ПЛК в АСУ ТП могут вноситься прямо на производстве и в срочном порядке — в соответствии с текущими задачами, часто без полноценного документирования и тестирования. Горячие правки особенно характерны для металлургии и пищевой промышленности.
С тестированием в АСУ ТП ситуация принципиально сложнее: невозможно воссоздать все сценарии технологического процесса в эмуляторах, а имеющиеся тестовые стенды редко покрывают полный набор производственных условий. Поэтому надежность и предсказуемость изменений обеспечиваются не столько за счет предварительных проверок, сколько за счет опыта инженеров и строгих процедур восстановления.
При этом риски ошибок в АСУ ТП выше, чем в классическом ИТ. Стоит допустить неточность в работе с контроллером, как соответствующий техпроцесс начинает идти по неверному сценарию. А это — производственный брак, простой линии, выход из строя оборудования и пр.
Отсутствие централизованного подхода
Вендоры начинают встраивать элементы контроля версий в свои IDE — это позитивный тренд, поскольку централизованного управления изменениями в АСУ ТП до сих пор почти нет. На практике часто используется простая схема: на инженерной станции установлена среда разработки проектов ПЛК, доступ к ней осуществляется через локальную учетную запись с минимальными требованиями к безопасности — без сложных паролей, журналирования и разграничения прав. Любой инженер из службы АСУ ТП может внести изменения в код на свое усмотрение, не сохранив резервную копию в доверенном хранилище. В результате при сбое или конфликте версий невозможно точно определить, кто какие правки внес и где находится актуальная копия проекта.
В редких случаях условно централизованный внутренний процесс можно обнаружить на базе кастомизаций. Например, есть общий сетевой ресурс, куда по внутренним инструкциям инженеры отправляют проекты. Обычно такие механизмы разрабатывают предприятия с высоким уровнем цифровой зрелости. На это тратится много ресурсов, однако у регуляторов могут возникнуть вопросы относительно сертификации и обеспечения безопасности, особенно если критичный процесс реализован на зарубежных ОС.
Технические особенности решений для ПЛК в АСУ ТП
Эти особенности обусловлены сложностью систем АСУ ТП, многие их них относятся к объектам критической информационной инфраструктуры.
Внедрение систем контроля версий проектов ПЛК может значительно повысить информационную безопасность предприятия.
Практическая ценность управления версиями
Управление версиями ПЛК дает предприятиям ряд преимуществ как в части соблюдения требований регуляторов, так и внутренней дисциплины.
Заказчики все чаще требуют от интеграторов демонстрацию сквозного процесса управления изменениями, а не коробочных неадаптированных решений. Они хотят инвестировать в бизнес-процессы, которые удобны и понятны, приносят ощутимую пользу сотрудникам и не вызывают саботажа.
Можно выделить типичные негативные последствия, которые повторяются на предприятиях, где не ведется контроль версий ПЛК.
Вывод
Вывод простой: контроль версий ПЛК — обязательный элемент для предприятий, не желающих рисковать стабильностью работы АСУ ТП
Практика показывает, что довольно большое число инцидентов в АСУ ТП связано с изменениями в коде ПЛК без фиксации и контроля. Там, где проекты до сих пор хранятся на флешках или на рабочих столах инженеров, риск потери данных или подмены логики — вопрос времени.
Система контроля версий позволяет быстро вернуть проверенную конфигурацию после сбоя, показать полную историю изменений за минуты и зафиксировать, кто именно внес изменения в код контроллера. Это не дополнительная опция, а инструмент, который снижает среднее время реагирования закрывает все более строгие требования ФСТЭК России и способствует защите производства от простоев и аварий.