Источник

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

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

Набор анализируемых методов базируется на требованиях МЭК 61508 «Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью» (IEC 61508 Functional safety of electrical/electronic/programmable electronic safety-related systems). В части специфики обеспечения информационной безопасности АСУ ТП за основу взят NIST SP 800-82 «Guide to Industrial Control Systems (ICS) Security», рассмотренный в одной из предыдущих статей.

МЭК 61508: Методы и средства обеспечения функциональной безопасности


При выполнении сертификации на соответствие требованиям МЭК 61508 к тому или иному уровню SIL (Safety Integrity Level), важно продемонстрировать, что, во-первых, в продукт заложен необходимый и достаточный механизм обеспечения функциональной безопасности (ФБ), а, во-вторых, что необходимый и достаточный набор методов обеспечения ФБ применялся в процессе разработки. Исходя из этого, условно разделим методы обеспечения ФБ на технические и организационные.

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

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

Описание методов обеспечения ФБ содержится в МЭК 61508-7 «Методы и средства». Однако, чтобы разобраться в требованиях к применению того или иного метода, одной только части 7 недостаточно.
В части 2 МЭК 61508, которая посвящена обеспечению ФБ систем и аппаратных средств, и в части 3, содержащей требования к ПО, есть три существенных приложения, которые определяют методы и средства по защите от случайных и систематических отказов. Структура МЭК 61508 такова, что детально методы и средства описаны в части 7. Таким образом, требования к защите от отказов из частей 2 и 3 МЭК 61508 трассируются в описания методов и средств по обеспечению ФБ в части 7. Эта взаимосвязь представлена на Рисунке 1.



Рисунок 1. Структура методов обеспечения безопасности согласно МЭК 61508

Приложение А части 2 МЭК 61508 рассматривает контроль отказов аппаратных средств в ходе эксплуатации, причем подразумевается, что это могут быть как случайные, так и систематические отказы. Детальное описание методов защиты от случайных отказов содержится в Приложении А части 7 МЭК 61508. Методы защиты от случайных отказов разделены на категории, в зависимости от типа рассматриваемых аппаратных средств, например, электрические компоненты, электронные компоненты, процессорные модули, память и т.д.

Приложение В части 2 МЭК 61508 рассматривает методы защиты от систематических отказов аппаратных средств на протяжении жизненного цикла. Следует отметить, что МЭК 61508 рассматривает в качестве источников систематических отказов аппаратных средств ошибки проектирования, ошибки эксплуатации и внешние экстремальные воздействия (климатические, механические, радиационные и другие). Детальное описание соответствующих методов содержится в Приложении В части 7 МЭК 61508. Структура изложения методов защиты от систематических отказов аппаратных средств имеет свои особенности, например, в категорию B.1 General measures and techniques входят такие разные методы, как Project Management, Documentation, Separation, Diversity. Далее методы распределены по этапам жизненного цикла.

Приложение А части 3 МЭК 61508 содержит руководство по выбору методов разработки и тестирования программного обеспечения с целью достижения полноты безопасности. Детальное описание соответствующих методов содержится в приложении С части 7 МЭК 61508. Здесь в категории С.1 General вообще не описываются никакие методы. Далее методы распределены по категориям: требования и детальный дизайн, архитектурный дизайн, инструментальные средства и языки программирования, верификация и модификация, оценивание ФБ.

Чтобы проиллюстрировать изложение вышесказанного в МЭК 61508, рассмотрим простейшую таблицу, которая определяет методы, применяемые для обеспечения функциональной безопасности программного обеспечения на этапе разработки спецификации требований (см. Рисунок 2).



Рисунок 2. МЭК 61508-7, Table A.1 – Software safety requirements specification

Допустим, нас интересует уровень полноты безопасности SIL3. Те методы, которые в графе «SIL3» обозначены, как HR (Highly Recommended), должны обязательно применяться. Во всяком случае, сертифицирующему органу будет практически невозможно объяснить, почему не использовался тот или иной обязательно рекомендованный метод. Методы, обозначенные, как R (Recommended), могут применяться, однако, от них также можно обоснованно отказаться. С Таблицей А1 (SIL3) здесь все достаточно просто. Рекомендуется применение формальных методов, однако, приоритет применения полуформальных методов выше (Highly Recommended). Поэтому, если применяются полуформальные методы, то от формальных можно отказаться. Применение прямой и обратной трассировки также является обязательным (про трассировку требований уже было сказано в предыдущих публикациях). Применение программного обеспечения для поддержки трассировки и разработки спецификации является очевидным.

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

Организационные методы обеспечения информационной и функциональной безопасности


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

Управление проектами


Применение методов управления проектами позволяет обеспечить требуемый уровень безопасности, то есть удержаться в так называемом «треугольнике качества». «Свод знаний по управлению проектами» или PMBOK содержит рекомендации по внедрению процессов на всех этапах жизненного цикла проекта.

Документирование


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

Жизнненный цикл ИБ и ФБ


Реализация жизненного цикла ИБ и ФБ является требованием, которое уже подробно рассматривалось в предыдущих публикациях. В МЭК 61508 особый акцент делается на такие аспекты, как:

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

Использование лучших практик и стандартов кодирования


МЭК 61508 требует внедрять безопасное использование языков программирования, которое заключается в применении языков со строгой типизацией и поддержкой структурного программирования, при этом рекомендуется использовать ограниченное множество конструкций языка. Например, для микроконтроллеров систем безопасности предпочтение отдается языку С, а не С++. Для определения правил кодирования и запрещенных конструкций используются соответствующие стандарты, например MISRA.

Стандарты кодирования и лучшие практики определяют ряд соглашений (coding conventions), которые используются при разработке ПО в качестве требований к коду. Такие соглашения включают в себя правила наименования и комментирования, правила отступов и оформления кода, ограничения по сложности и т.д.

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

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


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

Контроль качества при производстве аппаратных средств


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

— разработка и верификация проекта аппаратных средств;
— управление качеством закупаемых материалов и компонентов;
— управление производством;
— инспекция качества на производственном участке;
— тестирование выпущенных аппаратных средств.

Использование формальных и полуформальных нотаций


Еще одним организационным методом, требуемым МЭК 61508, является применение формальные и полуформальных нотаций для разработки спецификации требований и проектов систем, а также программных и аппаратных компонентов. В настоящее время наиболее распространенными полуформальными нотациями для проектирования программируемых систем являются IDEF и UML.
Для программируемых логических контроллеров разработаны и описаны в стандарте МЭК 61131-3 типовые языки программирования, поддерживаемые большинством сред разработки. Наиболее распространенным является графический язык FBD (Function Block Diagram), который фактически является формальной нотацией для проектирования программного обеспечения.

Технические методы обеспечения ФБ


Начнем с рассмотрения архитектуры АСУ ТП (см. Рисунок 3). В состав системы входят:

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



Рисунок 3. Типовая архитектура АСУ ТП (источник: ISA/IEC 62443)

Резервирование


Теперь рассмотрим, каким образом для АСУ ТП может быть реализовано резервирование (redundancy).
Резервирование может реализовываться как для отдельных компонентов или их групп, так и для системы в целом. Именно такой случай предлагается вашему вниманию (см. Рисунок 4).



Рисунок 4. Дублирование компонентов АСУ ТП

Начнем с электропитания. В идеале, максимальная независимость обеспечивается при электропитании независимых каналов системы от независимых источников. На схеме показано, что первый канал питается от источника переменного тока, а второй канал – от постоянного тока. Тогда, при проблемах с питанием в одной из систем энергоснабжения будет обесточиваться только один из каналов. Обеспечение непрерывности и качества электропитания даже в экстремальных условиях является жизненно важным аспектом обеспечения безопасности систем управления.

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

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

Разнообразие (диверсность) при резервировании


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

Обычное резервирование не защищает от систематических отказов, вызванных ошибками проектирования. Поэтому, если версии системы спроектированы по-разному, то количество общих систематических отказов каналов (так называемых отказов по общей причине) снизится (во всяком случае, теоретически снизится). Это учитывается при помощи так называемого ?-фактора, который показывает отношение количества отказов (или интенсивности отказов) по общей причине к общему количеству отказов (или интенсивности отказов). $\beta$-фактор зависит от применяемой стратегии диверсности. Чем больше различие между каналами, тем ниже значение $\beta$-фактора (см. Рисунок 5).



Рисунок 5. Снижение количества отказов по общей причине при использовании различных (диверсных) дублированных каналов (источник: МЭК 61508)

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

Независимость и разделение компонентов


Еще одним методом, дополняющим резервирование, является принцип независимости и разделения (independency and separation) компонентов, направленный на предотвращение распространения отказов между системами и их компонентами. Разделение может быть физическим, когда, например, каналы системы физически находятся в разных помещениях или на значительном расстоянии друг от друга (см. Рисунок 6). Применяется также электрическое разделение, включающее, например, гальваническую изоляцию, а также функциональная независимость и независимость коммуникаций, например, экранирование кабелей и разделение электрических и сигнальных кабелей.




Рисунок 6. Физическая и электрическая независимость каналов (источник: МЭК 60709)

Самодиагностика


Самодиагностику цифровых устройств упрощенно можно описать следующим образом (см. Рисунок 7).



Рисунок 7. Реализация диагностики в системах управления

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

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

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

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

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

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

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

Большое внимание в системах управления уделяется передаче пакетов данных, как по коммуникационным каналам, так и при обработке, распределенной между компонентами программного и аппаратного обеспечение. Здесь для диагностирования применяются такие методы, как подтверждение передачи, контроль таймаутов, контроль целостности и последовательности передачи пакетов данных, циклические коды (CRC). Для защиты информации при передаче данных могут применяться алгоритмы шифрования.

Защита от воздействий окружающей среды


Еще одна группа методов обеспечения безопасности направлена на защиту от неблагоприятных воздействий. Метод независимости и разделения уже был нами рассмотрен.

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

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

Специальные стандарты АТЕХ применяются для конструирования взрывобезопасных систем. Стандарты IP применяются для конструирования систем, защищенных от воздействия пыли и влаги.

Защита от ошибок персонала


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

Особенности обеспечения информационной безопасности
АСУ ТП


При рассмотрении методов, направленных на обеспечение ФБ, важно также обеспечить ИБ. В МЭК 61508 на этот счет содержится лишь несколько общих слов. Мы остановимся на нескольких особенностях АСУ ТП, которые определяют подход к обеспечению ИБ таких объектов. На Рисунке 8 рассмотрены потенциальные уязвимости, исходя из которых формируются векторы атак.



Рисунок 8. Уязвимости в АСУ ТП (источник: Byres Research Inc.)

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

Сегментирование сети


Основой обеспечения ИБ для АСУ ТП является сегментирование сети и зонирование размещения оборудования (эта тема обсуждалась здесь).

Рекомендуется реализовывать в АСУ ТП, как минимум, одну демилитаризованную зону (DMZ), разделяющую корпоративную и управляющую локальные сети.



Рисунок 9. Структура сети АСУ ТП с DMZ (источник: NIST 800-82)

Контроль доступа


Еще одной особенностью обеспечения ИБ АСУ ТП является активное использование контроля доступа, который может быть реализован несколькими способами.

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

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

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

Для изменения настроек ПО и самого ПО, а также для изменения конфигурации аппаратных средств должна выполняться специальная авторизация.

Выводы


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

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

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

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

P.S. Данная статья завершает цикл публикаций на тему функциональной безопасности, над которой я работал несколько месяцев. Спасибо всем читателям, особенно тем, кто своими неравнодушными комментариями помогал доработать материал. Параллельно публикациям был подготовлен и записан видеокурс по функциональной безопасности (аналогов в мире не имеет). Основные положения публикаций и видеокурса посвящены подходам к сертификации систем управления на соответствие требованиям МЭК 61508. Тема же безопасности остается неисчерпаемой, а, значит, будут и новые публикации.

А вот и полный перечень статей:

Введение в тематику функциональной безопасности;
Стандарт МЭК 61508: терминология;
Стандарт МЭК 61508: структура требований;
Взаимосвязь между информационной и функциональной безопасностью АСУ ТП;
Процессы управления и оценивания функциональной безопасности;
Жизненный цикл информационной и функциональной безопасности;
Теория надежности и функциональная безопасность: основные термины и показатели;
Методы обеспечения функциональной безопасности.
Поделиться с друзьями
-->

Комментарии (0)