Введение

Обеспечение информационной безопасности (ИБ) объектов критической информационной инфраструктуры (КИИ) Российской Федерации (РФ) является важной составляющей государственного суверенитета. На объектах электроэнергетики, относящихся к значимым объектам КИИ (ЗОКИИ), должны применяться полностью отечественные, доверенные программно-аппаратные комплексы и сертифицированные ФСТЭК России средства защиты информации (СЗИ), в том числе СЗИ от несанкционированного доступа (СЗИ НСД), часто в составе операционных систем (ОС) [1, 2].

Требования ИБ, предъявляемые к СЗИ, можно условно разбить на функциональные и требования доверия. Функциональные требования непосредственно помогают реализовать меры защиты, определяемые перечнем актуальных угроз объекта, возможными тактиками и техниками актуальных злоумышленников, которые потенциально могут использоваться для реализации угроз. Как правило, они описаны в формулярах СЗИ, а также технических условиях (ТУ), заданиях по безопасности (ЗБ) и профилях защиты (ПЗ). Требования доверия включают требования к разработке и производству, документации, испытаниям и поддержке СЗИ и являются итогом комплексного подхода. Кроме того, вводятся подходы к организации жизненного цикла разработки безопасного программного обеспечения (РБПО), призванные повысить качество кода не только СЗИ, но и прикладного программного обеспечения (ППО), для чего вводится процедура оценки соответствия самого процесса разработки.

К наиболее известным отечественным ОС, реализующим функции защиты, которые отвечают требованиям ИБ, актуальным для большинства энергообъектов (исходя из моделей угроз и требований нормативно-правовых актов) относятся:

  • Astra Linux;
  • ALT Linux;
  • РЕД ОС;
  • АльтерОС.

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

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

Особенностью разработки ПО для десктопных приложений является выбор библиотек и фреймворков (наборов инструментов) для отрисовки графического интерфейса пользователя (ГИП, или GUI/UI) с учётом ответственности применения ПО на ЗОКИИ.

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

Программное обеспечение для отечественных ОС

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

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

Приказ ФСТЭК России от 25.12.2017 N 239 «Об утверждении Требований по обеспечению безопасности значимых объектов критической информационной инфраструктуры Российской Федерации» позволяет провести оценку соответствия требованиям доверия собственными силами в форме приемки, но требования доверия подразумевают проведение проверок, в том числе, сложных, комплексных, требующих наличия компетенций в области статического и динамического анализа, а также подразумевают наличие доступа к исходному коду оцениваемого ПО. Данные обстоятельства делают самостоятельную оценку соответствия практически невыполнимой для большинства субъектов КИИ, в особенности обладающих ЗОКИИ 1 и 2 категорий значимости.

Даже учитывая тот факт, что обязательных требований к наличию сертификата ФСТЭК России к ППО и его библиотекам не предъявляется, библиотеки, имеющие свободные лицензии и открытый исходный код не являются безопасными, поскольку:

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

В качестве примера, при котором вероятно появление указанных проблем, можно привести установку ППО, использующего библиотеки Microsoft в отечественных ОС на основе ядра Linux. ППО, установленное внутри сертифицированной по ряду требований ИБ ОС, попадает в зависимость от программных компонентов и политики разработчиков ПО одной из недружественных стран. Также в этом случае сертифицированная отечественная ОС на базе ядра Linux теряет свои основные преимущества перед Windows. Другим примером является применение в ОС Linux слоёв совместимости типа Wine для запуска программ, разработанных под ОС Windows. Нормативно-правовые акты [3] требуют отказаться от данной зависимости для обеспечения повышенного уровня безопасности.

Особенности разработки безопасного ПО под Linux для десктопных приложений

 В качестве примера рассмотрим два подхода к разработке ПО на распространенных языках программирования C++ и C#.

C/C++ является компилируемым языком программирования. Суть компиляции сводится к преобразованию исходного кода в машинный. Запуск программы осуществляется на платформе ОС, под которую она была скомпилирована.

C# является компилируемым языком программирования под виртуальную машину. Исходный код программы на С# компилируется, но не в машинный код, а в так называемый байт-код. Для запуска такой программы требуется другая программа, называемая «виртуальной машиной», которая переводит байт-код в машинный. Такой подход позволяет, при наличии в ОС разных виртуальных машин, запускать одну и ту же программу на разных платформах без перекомпиляции. Данный механизм повышает требования к аппаратному обеспечению, так как ОС необходимо обслуживать виртуальную машину. ОС на базе ядра Linux могут включать в составе несертифицированной части своего репозитория программные пакеты .NET от компании Microsoft для запуска консольных и десктопных приложений на языке С#.

Технологии для запуска в ОС Linux ПО использующего библиотеки Microsoft

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

  • слой совместимости Wine;
  • платформа .NET;
  • UI-фреймворк Avalonia;
  • различные библиотеки Microsoft.

Wine – это слой совместимости, который позволяет запускать Windows-приложения в ОС Linux. Он транслирует Windows API в системные вызовы Linux. Соответственно, уязвимости в этих API могут быть использованы для атак на систему через Wine. Несмотря на то, что Wine входит в состав ОС Astra Linux, его возможности ограничены и, как правило, для запуска Windows-ПО необходима доустановка дополнительных внешних библиотек Microsoft и других разработчиков, что представляется небезопасным, рискованным и нежелательным для использования данного ПО на ЗОКИИ.

.NET представляет собой бесплатную кроссплатформенную высокопроизводительную платформу для разработки приложений с открытым кодом, поддерживаемую корпорацией Microsoft. Язык программирования C# (этой же компании Microsoft) является самым распространённым языком для платформы .NET. Сама по себе платформа .NET включает поддержку моделей консольных приложений и веб-приложений, но не содержит десктопный графический интерфейс пользователя (UI). Таким образом, несмотря на поддержку языка C# в отечественных и безопасных ОС (табл. 1), для разработки и запуска GUI-программ необходима установка дополнительных программных пакетов [4].

Библиотеки платформы .NET в ОС Astra Linux устанавливаются из расширенного репозитория, ПО в котором является сторонним по отношению к ОС Astra Linux и не дорабатывается с точки зрения выполнения требований по безопасности информации, а также не проверяется при сертификации [5].

Таблица 1 – Основные пакеты для разработки на .Net 8.0 из репозиториев Astra Linux

Пакет

Репозиторий

Описание

dotnet8

extended

Инструменты .NET CLI и среда выполнения

dotnet-sdk-8.0

extended

Комплект разработки ПО на .NET 8.0

dotnet-runtime-8.0

extended

Среда выполнения .NET (исключая веб-приложения)

aspnetcore-runtime-8.0

extended

Среда выполнения ASP.NET Core (веб-приложения)

Таблица 2 – Основные пакеты для разработки ПО на С#

Пакет

Репозиторий

Описание

dotnet-sdk

extended

Комплект разработки ПО на .NET

Avalonia

microsoft

Основной пакет Avalonia UI

Avalonia.Desktop

microsoft

Пакет для создания приложений для рабочего стола (десктопных)

Avalonia является открытым кроссплатформенным UI-фреймворком, который позволяет создавать десктопные приложения на языке C# с использованием .NET для ряда ОС, включая основанные на ядре Linux.

Рассматривая отечественный дистрибутив ОС Linux на примере Astra Linux, можно определить, какие зависимости требует внести в состав этой ОС ПО, разработанное на C#. Как указано в документации ОС Astra Linux [6] (табл. 2), хранилище пакетов Avalonia для разработки GUI-приложений принадлежит компании Microsoft. 

  • Установка пакетов .NET (условной версии Х), модифицирующих ОС типа Astra Linux, выглядит следующим образом:при наличии подключения к интернету:

sudo apt install ca-certificates apt-transport-https

wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null

sudo wget https://packages.microsoft.com/config/debian/10/prod.list -O/etc/apt/sources.list.d/microsoft-prod.list

sudo apt update

sudo apt-get install dotnet-runtime-Х.Х

  • при локальной установке (при отсутствии интернета):

sudo dpkg -i dotnet-host_Х.Х_amd64

sudo dpkg -i dotnet-hostfxr-Х.Х_Х_amd64

sudo dpkg -i dotnet-runtime-deps-Х.Х_Х_amd64

sudo dpkg -i dotnet-runtime-Х.Х_Х_amd64

Таким образом, установка дополнительных пакетов в ОС AstraLinux производится из репозиториев с сайта, расположенного в домене microsoft.com. Добавление репозитория «microsoft» (табл. 2) в качестве «доверенного» (условно, т.к. для безопасности системы он не может считаться доверенным) приводит к возможности устанавливать из него произвольные пакеты, имеющие компоненты с произвольными версиями.

Для сравнения, разработка GUI с применением языка программирования С++ и UI-фреймворка GTK (который является частью всех отечественных ОС на базе ядра Linux) не требует установки пакетов Microsoft и использует только свободные библиотеки основного (сертифицированного) репозитория ОС Linux. Примеры структуры ППО на основе технологий .NET с Avalonia и с использованием только компонентов ОС Linux приведены на рис. 1.

а) ППО на базе С#, .NET и Avalonia

б) ППО на базе С++ и библиотеки GTK

Рис. 1 – Примеры реализации десктопного ПО

Можно обобщить следующие риски при внедрении ПО использующего указанные технологии программирования:

  • Зависимости от Microsoft. Использование .NET и библиотек Microsoft создает зависимость от этой компании. В случае введения дополнительных санкций или изменения политики компании по лицензированию, последствия таких действий могут иметь критичное значение для энергетической безопасности.
  • Проблемы с конфиденциальностью. Библиотеки Microsoft могут содержать компоненты телеметрии, которые собирают данные об использовании и отправляют их в Microsoft. Есть вероятность утечки критически важной информации. Например, в исходных кодах Avalonia присутствует переменная среды DOTNET_CLI_TELEMETRY_OPTOUT, которая определяет отправку данных телеметрии в Microsoft [7].
  • Проблемы с надежностью. Поддержка данных библиотек не является приоритетной для компании Microsoft и стабильность работы не гарантируется компанией.
  • Проблемы с ИБ. Библиотеки могут содержать уязвимости и закладки, различный недекларируемый функционал.
  • ПО недружественных стран. .NET является технологией, разработанной Microsoft, Avalonia использует .NET и не имеет сертификации в системе ФСТЭК России.

Резюме. Использование сторонних библиотек в сертифицированной ОС угрожает безопасности всей системы в целом. Поэтому, более безопасным и надежным является использование компонентов только самой сертифицированной ОС и/или компонентов, сертифицированных отдельно в системе ФСТЭК России.

Подходы к разработке безопасного ПО для применения на объектах КИИ

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

  1. Кроссплатформенное ПО должно работать на сертифицированных отечественных ОС, не нарушая их надежность и безопасность.
  2. Реализация кроссплатформенного решения должна строиться на стандартных компонентах самой ОС. Использование нестандартных несертифицированных библиотек и фреймворков повышают риски, связанные с возможными ограничениями в работе из-за дополнительных санкций. Если патенты «свободной» лицензии Microsoft перейдут в собственность другой компании, то возникнут проблемы с использованием данной технологии.
  3. Отказ от использования системных библиотек без сертификации и, соответственно, гарантии безопасности от злонамеренных внедрений в ОС. Переход на безопасное ПО, только с прошедшими оценку соответствия (отдельно или в составе ОС) библиотеками с использованием для разработки языка программирования С++.
  4. Не должны использоваться библиотеки от Microsoft, применяющиеся в ОС Windows, использование которой запрещено на объектах КИИ.
  5. В дальнейшем (при их появлении) использование для создания машинного кода сертифицированных компиляторов.
  6. Внедрение практик РБПО в процесс разработки.

Опыт разработки безопасного кроссплатформенного ПО для испытаний РЗА на объектах КИИ

На основе рассмотренных принципов была выполнена разработка кроссплатформенного ПО для проверки устройств релейной защиты и автоматики «ПроВерь РЗА», в соответствии с ГОСТ [8]:

  • разработанное кроссплатформенное ПО «ПроВерь РЗА»
    не использует проприетарные технологии .NET, Avalonia, Wine и другие библиотеки Microsoft;
  • отказ от использования сторонних библиотек, которые могут попасть под санкционные ограничения, либо содержат в составе ОС код, не прошедший оценку соответствия в системе ФСТЭК России;
  • использовались средства разработки со свободной лицензией для независимости от внешней конъюнктуры;
  • использовались подходы РБПО.

ПО «ПроВерь РЗА» может функционировать под всеми видами отечественных ОС на базе ядра Linux и поддерживает преемственность и совместимость с предыдущими разработками ООО «НПП «Динамика» [9, 10] по внешнему виду (рис. 2), функциональности (табл. 3) и архивам. Разработанные ранее шаблоны сценариев и архивы используются в кроссплатформенном ПО, что обеспечивает бесшовный переход на новую версию продукта. Благодаря кроссплатформенности, для пользователей энергообъектов которые не относятся к объектам КИИ, предлагается специальная сборка для работы под ОС Windows.

а) главное окно

б) ручное управление

в) генератор автоматических проверок

 Рис. 2 – Внешний вид кроссплатформенного ПО «ПроВерь РЗА»

 При создании кроссплатформенного ПО «ПроВерь РЗА» использовался предыдущий опыт разработки ручного, полуавтоматического, автоматического и специализированного ПО [11]. Внедрены интеллектуальные конструкции, благодаря которым созданный ранее инструментарий для визуальной разработки шаблонов и сценариев, получил существенное развитие.

 

Таблица 3 – Основные возможности кроссплатформенного ПО «ПроВерь РЗА»

1

Стандартный пакет программ ручных и автоматических проверок РЗА

2

Поддержка синхронного управления приборами серии РЕТОМ

3

Гибкая настройка аппаратных средств

4

Поддержка модуля объекта испытания и подстройка под проверяемый объект

5

Визуальное создание модулей проверок шкафов и сложных защит

6

Поддержка сценариев для повторного использования наработанных шаблонов проверки шкафов

7

Поддержка МЭК 61850, MMS, GPS/ГЛОНАСС

8

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

9

Режимы работы: независимое управление, короткое замыкание, симметричные составляющие, реле сопротивления и реле мощности

10

Автоматическая подстройка конфигурации под выбранные аппаратные средства

11

Работа с виртуальными каналами аппаратных средств

12

Работа с клеммником объекта испытания

13

Динамическое добавление произвольного количества измерительных органов (ступеней) РЗА

14

Настраиваемая привязка любого параметра к выбираемому пользователем произвольного поля

15

Выбор и настройка алгоритмов испытаний

16

Отображение процесса испытаний

17

Формирование единого протокола испытаний

Для более полной диагностики рабочей конфигурации оборудования РЗА используется сервис MMS при совместной проверке функций релейной защиты и функций АСУТП. Проверка без перепрограммирования и минимальное количество переключений во время испытаний в значительной степени сокращают время испытаний и облегчают их проведение. При таком подходе уменьшается влияние человеческого фактора, повышается достоверность результатов, качество и надежность последующей эксплуатации оборудования на объектах КИИ.


Выводы

  1. Разработка безопасного и надежного ПО для применения на объектах КИИ должна выполняться с использованием исключительно компонентов ОС сертифицированной в системе ФСТЭК России или других уполномоченных органов РФ.
  2. Использование несертифицированных библиотек, которые могут иметь потенциальную возможность доступа к системным функциям и взаимодействовать с оборудованием в сертифицированной ОС, снижает безопасность всей системы в целом.
  3. Необходимо отказаться от технологий недружественных стран, таких как .NET, Avalonia, Wine и библиотек Microsoft, для минимизации рисков, связанных с зависимостью от потенциальных уязвимостей и обеспечения независимости от санкционных ограничений.
  4. Требование использования принципов РБПО, средств разработки со свободной лицензией и сертифицированных компиляторов является необходимым условием создания безопасного ПО.

Литература

  1. О безопасности критической информационной инфраструктуры Российской Федерации: федеральный закон Российской Федерации от 27 Июля 2017 г. № 187-ФЗ // Собрание законодательства РФ. 2017. № 31.
  2. Приказ ФСТЭК России «Об утверждении Требований по обеспечению безопасности значимых объектов критической информационной инфраструктуры Российской Федерации» от 25 декабря 2017 г. № 239 // Редакция приказов ФСТЭК России № 35.
  3. О порядке перехода субъектов критической информационной инфраструктуры Российской Федерации на преимущественное применение доверенных программно-аппаратных комплексов на принадлежащих им значимых объектах критической информационной инфраструктуры Российской Федерации: постановление Правительства Российской Федерации от 14.11.2023 № 1912 (ред. от 26.12.2024) // Собрание законодательства РФ. 2023. № 47.
  4. Разработка десктопных приложений на C# // АСТРА. Портал для разработчиков. URL: https://docs.astralinux.ru/latest/desktop/csharp/#desktop-csharp (дата обращения 27.05.2025)
  5. Расширенный репозиторий Astra Linux Special Edition x.7/x.8 // Справочный центр Astra Linux. URL: https://wiki.astralinux.ru/pages/viewpage.action?pageId=158606265 (дата обращения 27.05.2025)
  6. Avalonia // АСТРА. Портал для разработчиков. URL: https://docs.astralinux.ru/latest/desktop/csharp/avalonia/ (дата обращения 27.05.2025)
  7. AvaloniaUI // GitHub. URL: https://github.com/AvaloniaUI/Avalonia/blob/master/build.sh (дата обращения 27.05.2025)
  8. ГОСТ Р 56939-2024. Защита информации. РАЗРАБОТКА БЕЗОПАСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ. Общие требования. Дата введения 2024-12-20.
  9. БРГА.441323.031 РЭ Руководство по эксплуатации. Комплекс программно-технический измерительный РЕТОМ-51. – Чебоксары, 2021. – 25 с.
  10. БРГА.441323.028 РЭ Руководство по эксплуатации. Комплекс программно-технический измерительный РЕТОМ-61. – Чебоксары, 2021. – 41 с.
  11. Шнеерсон,Э.М. Цифровая релейная защита / Э.М. Шнеерсон – М., Энергоатомиздат. – 2007. – 549 с.

Жуковский А.В.,
Катайкин А.А.,
Рыжов Э.П.,
Смирнов Ю.Л.,
к.т.н. Шалимов А.С.


ООО «НПП «Динамика»,

Иванов А.Ю.

ООО «СИГМА»

г. Чебоксары
июнь 2025

  • Поделитесь:
  •  
  •  
вверх

Вход в личный кабинет

Восстановление доступа

Заказать звонок

Новое сообщение

ООО «НПП «Динамика» использует файлы cookie. Продолжая пользоваться настоящим сайтом вы соглашаетесь на обработку ваших персональных данных в соответствии с Политикой конфиденциальности . Вы можете запретить сохранение cookie в настройках вашего браузера.