Перейти к основному содержанию
`Ctrl`+`K`

# Реализованные меры обеспечения информационной безопасности

## Общие положения

### Назначение документа

Документ описывает реализованные в Global System меры обеспечения информационной безопасности, включая как встроенные в архитектуру и функциональность системы механизмы (security by design), так и возможности интеграции со сторонними средствами и сервисами безопасности для усиления защиты в процессе эксплуатации.

### Область применения

Распространяется на все компоненты Global System, включая платформу, серверные и клиентские модули, прикладные решения и интерфейсы интеграции.

### Подходы к обеспечению безопасности

В Global System используются два взаимодополняющих подхода:

- Security by design — базовые меры информационной безопасности встроены в архитектуру и функциональность системы и обеспечиваются на уровне платформы.

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

### Термины и сокращения

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

- CEF (Common Event Format) — стандартный формат представления событий безопасности.

- DRP (Disaster Recovery Plan) — план восстановления после сбоев и аварий.

- IDM (Identity Management) — системы управления учетными записями, ролями и жизненным циклом идентичностей.

- MDM (Mobile Device Management) — класс систем для управления и контроля мобильных устройств.

- MFA (Multi-Factor Authentication) — многофакторная аутентификация, использующая два и более независимых факторов подтверждения личности.

- NTP (Network Time Protocol) — протокол синхронизации времени в сетях.

- ORM (Object-Relational Mapping) — технологии сопоставления объектов приложения с записями в базе данных.

- Security by design — подход к разработке, при котором меры информационной безопасности изначально закладываются в архитектуру и функциональность системы.

- SIEM (Security Information and Event Management) — системы сбора, корреляции и анализа событий информационной безопасности.

- SOAP (Simple Object Access Protocol) — протокол обмена структурированными сообщениями между приложениями.

- SQL Injection — уязвимость, связанная с внедрением SQL-кода через пользовательский ввод.

- SSO (Single Sign-On) — единая аутентификация пользователя для доступа к нескольким системам без повторного ввода учетных данных.

- SSRF (Server-Side Request Forgery) — уязвимость, позволяющая инициировать запросы от имени сервера к внутренним или внешним ресурсам.

- SYSLOG — протокол передачи сообщений журналирования.

- XSS (Cross-Site Scripting) — уязвимость, связанная с выполнением внедренного сценарного кода в интерфейсе пользователя.

- XXE (XML External Entity) — уязвимость, связанная с обработкой внешних XML-сущностей.

- Информационная безопасность (ИБ) — состояние защищенности информации и информационных систем от несанкционированного доступа, искажения, утраты и иных угроз.

- Контроль целостности — проверка неизменности компонентов системы и данных.

- Расширяемая модель безопасности — модель, предусматривающая интеграцию системы со сторонними средствами и сервисами безопасности.

- Ролевая модель доступа — модель разграничения доступа на основе ролей, назначаемых пользователям.

- Сетевая безопасность — совокупность мер по защите сетевых взаимодействий и ограничению сетевого доступа.

## Реализованные меры

### Идентификация и аутентификация

В системе реализованы механизмы идентификации и аутентификации пользователей и устройств. Поддерживается:

- интеграция с системами единой аутентификации (SSO) во внутреннем контуре;

- многофакторная аутентификация (MFA), включая одноразовые пароли и приложения-аутентификаторы, во внешнем контуре;

- использование служб каталогов заказчика, включая Active Directory и ALDPro в качестве источников учетных данных.

### Парольная политика

Реализована гибкая парольная политика, включающая:

- требования к минимальной длине пароля;

- требования к составу пароля (использование различных типов символов);

- контроль истории паролей и запрет повторного использования;

- проверку паролей по словарям;

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

Подробнее см. в разделе Политика паролей.

### Защита учетных записей

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

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

### Ролевая модель

В Global System реализована ролевая модель доступа с разграничением полномочий на уровне платформы и прикладных компонентов. Поддерживается:

- запрет совмещения конфликтующих ролей;

- интеграция с внешними IDM-системами.

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

### Контроль привилегий

Проверка прав пользователя выполняется при обращении к системным и сервисным API, включая критичные REST-интерфейсы.

### Безопасная работа с шаблонами

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

- Шедуллер запускается под разными пользователями; настройка разграничения пользователей для шедуллера не применяется.

- Вызов JEXL-выражений через SSH-консоль выполняется с использованием безопасного диалекта.

- Разграничение прав на REST-сервис сессий внедрено.

- Разграничение прав на выполнение JEXL-скриптов через веб-сокеты реализовано.

### Защита от изменения логики SQL-запросов (SQL Injection)

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

Реализованные меры | Описание реализации
--- | ---
Экранирование пользовательского ввода | Реализована функция `sqlEscape` для экранирования пользовательских данных. Использование функции обязательно при формировании SQL-запросов путём конкатенации строк и закреплено организационно в требованиях к разработке.
Безопасное построение динамических SQL-запросов | Реализован компонент `SqlBuilder` для формирования динамических SQL-запросов. Компонент автоматически выполняет экранирование пользовательских данных, если явно не указано иное.
Ограничение доступа к SQL-логике через JEXL | Реализован доступ к пакетам базы данных через JEXL с возможностью ограничения доступа ко всему пакету или к отдельным методам. Пакеты не отображаются в списке объектов администратора.
Разграничение доступа в REST-пакетах | Реализована возможность разграничения доступа в REST-пакетах на уровне URL входящих запросов, что ограничивает выполнение операций, связанных с формированием SQL-запросов.

Указанные меры применяются во всех компонентах системы, где пользовательские данные участвуют в формировании SQL-запросов, включая REST-интерфейсы и серверную логику, доступную через JEXL.

Пример запроса:

    GET /GLOBAL-QAS/gtk-ru.bitec.app.btk.utils.Btk_UrlObjectFinder%23UrlFinder/?ex;sTableName_dz=btk_user;SELECT+version()::int%3d1;+--+-&ex;susername=UIB_SCAN2 HTTP/1.1
    Host: global-qas.sgc.oil.gas
    Cookie: access_token=<JWT>

В результате обработки запроса SQL-инъекция была нейтрализована за счёт экранирования пользовательского ввода и безопасного формирования SQL-запроса. Выполнение внедрённого SQL-кода не произошло.

Пример ответа:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json; charset=UTF-8

    {
      "error": "Invalid request parameters"
    }

Информация о версии базы данных и иных характеристиках СУБД в ответе отсутствует. Реализованные меры исключают возможность изменения логики SQL-запросов и утечки технических сведений о базе данных.

### Защита сеансов

Система обеспечивает автоматический разрыв сеанса при отсутствии активности пользователя.

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

### Безопасность интерфейса доступа

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

### Логирование событий безопасности

Реализованы механизмы сбора и накопления журналов доступа и событий безопасности.
Журналы могут передаваться во внешние системы мониторинга и SIEM в структурированном виде (JSON, CEF, SYSLOG).

### Защита журналов

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

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

### Аудит пользовательской активности

Система обеспечивает аудит действий пользователей, включая:

- доступ к данным;

- вызовы сервисных интерфейсов;

- действия в рамках пользовательских сеансов.

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

### Сетевая безопасность

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

### Сокрытие информации о веб-сервере

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

Во всех HTTP-ответах исключена передача стандартных и расширенных заголовков, содержащих информацию о серверном программном обеспечении, включая Server, X-Powered-By, а также аналогичные заголовки сторонних компонентов и middleware.

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

Пример HTTP-запроса:

    GET / HTTP/1.1 Host: global-qas.sgc.oil.gas

Пример HTTP-ответа:

    HTTP/1.1 303 See Other
    location: https://global-qas.oil.gas/login/login.html?return-uri-Lw==
    content-length: 0

### Совместимость с защищенной инфраструктурой

Система совместима с:

- решениями по защите виртуальных машин и контейнеров;

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

- операционными системами российской разработки.

### Безопасная разработка

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

### Учет и устранение уязвимостей

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

В рамках данного процесса:

- все выявленные уязвимости классифицируются по уровню риска (высокий, средний, низкий, информационный);

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

- формируются и реализуются технические меры по устранению либо снижению риска;

- результаты устранения подлежат повторной проверке.

Примеры устраняемых уязвимостей приведены в таблице:

Класс уязвимости | Уровень риска | Выявленные сценарии | Реализованные меры
--- | --- | --- | ---
Внедрение SQL-кода (SQL Injection) | Высокий | Возможность влияния пользовательского ввода на формируемые SQL-запросы и получение данных из БД | Параметризация запросов, централизованная валидация и экранирование пользовательских данных, аудит ORM-механизмов
Недостаточная авторизация | Высокий | Выполнение пользователем действий, не соответствующих его привилегиям (доступ к служебным отчетам, договорам, идентификаторам) | Строгая серверная проверка прав доступа, централизованная ролевая модель, контроль доступа к REST- и SOAP-интерфейсам
Внедрение внешних сущностей XML (XXE) | Высокий / Средний | Обработка XML-данных с поддержкой внешних сущностей и DTD | Отключение обработки DTD и внешних сущностей, ограничение используемых форматов данных
Раскрытие информации в сообщениях об ошибках | Средний | Раскрытие установочных путей и внутренней структуры приложения | Централизованная обработка ошибок, вывод минимальной информации пользователю, регистрация подробностей только во внутренних журналах
Подделка запроса со стороны сервера (SSRF) | Средний | Возможность выполнения HTTP-запросов к внутренним сервисам | Ограничение допустимых схем и адресов, фильтрация целевых ресурсов, контроль сетевых взаимодействий
Использование ПО с известными уязвимостями | Средний | Использование уязвимых версий сторонних компонентов | Регулярный аудит зависимостей, контроль версий, регламент обновления программного обеспечения
Подбор учетных данных | Средний | Многократные попытки аутентификации через точки входа системы | Ограничение количества попыток входа, отказ от небезопасных схем аутентификации, применение защищенных механизмов входа
Межсайтовое выполнение сценариев (XSS) | Средний | Отображение неэкранированных пользовательских данных в интерфейсе | Обязательное экранирование пользовательского ввода перед отображением

#### Контроль выполнения мер

- Устранение уязвимостей выполняется совместно с разработчиками и ответственными за эксплуатацию.

- Критические уязвимости устраняются в приоритетном порядке.

- После внесения изменений проводится повторная проверка безопасности.

- Результаты проверок документируются и используются для совершенствования архитектуры security by design и интеграционных защитных механизмов.

### Контроль целостности

Реализованы механизмы проверки подписей и контроля целостности компонентов системы. Процедуры описаны в эксплуатационной документации.

### Защита данных

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

### Резервное копирование и восстановление

Поддерживаются приложений-ориентированные резервные копии, ежедневное инкрементальное резервирование и восстановление инфраструктуры.

Разработаны инструкции DRP, процедуры отката изменений и восстановления из резервных копий.

### Обновления и сопровождение

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

- функциональное и нагрузочное тестирование;

- автотестирование;

- установку без простоев при кластеризации;

- автоматические и ручные сценарии обновления.

## Управление инцидентами и развитие безопасности

При выявлении инцидентов ИБ проводится анализ причин, разрабатываются корректирующие меры и при необходимости выпускаются обновления системы.

Подготовлены эксплуатационные материалы, инструкции и базы знаний по развертыванию, эксплуатации и устранению нештатных ситуаций в составе документации на систему.

### Учет и устранение выявленных уязвимостей

В Global System реализованы следующие меры по учету и устранению уязвимостей:

- выявление уязвимостей на этапах проектирования и разработки (security by design);

- учет результатов внутренних и внешних проверок безопасности;

- классификация уязвимостей по уровню риска (высокий, средний, низкий);

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

- защита от внедрения SQL-кода за счет проверки, фильтрации и экранирования пользовательских данных;

- контроль и корректная проверка прав доступа при обращении к REST- и SOAP-сервисам;

- защита от межсайтового выполнения сценариев (XSS) путем обязательного экранирования пользовательского ввода;

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

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