Перейти к содержанию

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

Контроль целостности (КЦ) платформы Sharx Base функционирует на двух уровнях:

  1. На уровне программного обеспечения (ПО) узлов.
  2. На уровне виртуальной инфраструктуры.

Контроль целостности Sharx Base

КЦ на уровне ПО узлов

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

С его помощью обеспечивается:

  • аутентификация программных модулей: исполняемых файлов и библиотек, входящих в состав платформы виртуализации Sharx Base;
  • контроль целостности программных модулей при их загрузке и в процессе функционирования;
  • запрет запуска программных модулей, не прошедших аутентификацию или целостность которых нарушена.

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

КЦ на уровне виртуальной инфраструктуры

Контроль целостности на уровне виртуальной инфраструктуры настраивается Администратором ВЦОД для каждого ВЦОД по отдельности. Для его работы используется специальный плагин Sharx Base sdc-plgn-signer.

Он позволяет обеспечить контроль целостности:

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

Полный перечень типов объектов виртуальной инфраструктуры (в терминологии Платформы — «моделей»), в отношении которых осуществляется контроль, можно получить при помощи команды

signer sign model list

Контроль целостности на уровне виртуальной инфраструктуры основан на применении цифровой подписи – при постановке на контроль объекта виртуальной инфраструктуры осуществляется его подпись, а при обращении к нему – проверка подписи (валидация).

Примечание

Ключи цифровой подписи объектов ВЦОД Платформа создает автоматически при включении механизма валидации ВЦОД

Контроль целостности на уровне виртуальной инфраструктуры может функционировать в уведомительном режиме (WARN) и режиме предотвращения (ERROR).

В режиме WARN при нарушении целостности контролируемого объекта осуществляется регистрация события, но работа с объектом продолжается.

В режиме ERROR при нарушении целостности контролируемого объекта осуществляется регистрация события и доступ к объекту блокируется.

Важно

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

  1. Настройте контроль целостности виртуальной инфраструктуры в уведомительном режиме (WARN).
  2. Проверьте, что в консоли и журнале событий отсутствуют ошибки контроля целостности при обращении к контролируемым объектам.
  3. В случае отсутствия ошибок переведите контроль целостности в режим предотвращения (ERROR)

Настройка КЦ на уровне виртуальной инфраструктуры

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

  1. Задайте параметры для настройки валидации ВЦОД

    signer param add [--sign_enable <SIGN_ENABLE>]
                     [--validation_action <VALIDATION_ACTION>]
                     [--sign_models <SIGN_MODELS>]
                     [--sign_objects <SIGN_OBJECTS>]
                     [--sign_objects_exclude <SIGN_OBJECTS_EXCLUDE>]
    
    где

    • sign_enable — включение или выключение механизма валидации для объектов в рамках ВЦОД при обращении к ним. По умолчанию — no. Возможные значения:

      • yes — механизм валидации включен,
      • no — механизм валидации выключен;
    • validation_action — тип действия при обнаружении невалидного объекта. По умолчанию — ERROR. Возможные значения:

      • ERROR — запрет на совершение операции и вывод сообщения об ошибке,
      • WARN — отправка уведомления с возможностью дальнейшей работы;
    • sign_models — набор моделей, с которыми будет работать плагин sdc-plgn-signer;

    • sign_objects — набор объектов, которые существуют в рамках ВЦОД и валидацию которых нужно осуществлять;

    • sign_objects_exclude — набор объектов, которые нужно исключить из подписываемой модели и валидацию которых осуществлять не нужно.

    Примечание

    Если ввести команду без дополнительных аргументов — signer param add, будут созданы пустые параметры со значениями аргументов по умолчанию

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

     signer param update --sign_enable yes
    
    где sign_enable — включение или выключение механизма валидации для объектов в рамках ВЦОД при обращении к ним. По умолчанию — no. Возможные значения:

    • yes — механизм валидации включен,
    • no — механизм валидации выключен.

    Важно

    В случае необходимости изменения параметров валидации вы можете это сделать с помощью команды signer param update, указав изменяемые параметры. Эти параметры такие же, как и для команды signer param add.

    Например, для выключения валидации, в том числе уже подписанных объектов, необходимо ввести команду

    signer param update --sign_enable no
    

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

  3. Добавьте модели в список отслеживаемых

    1. Посмотрите список доступных моделей

      signer sign model list
      

    2. Добавьте модели в список отслеживаемых

      signer sign model add --models <MODELS>
                           [--force_sign <FORCE_SIGN>]
      

      где

      • models — список моделей, которые будут отслеживаться. Обязательный аргумент. При models, равном *, все модели автоматически будут добавлены в отслеживаемые;
      • force_sign — принудительная валидация уже существующих и создаваемых позже объектов. По умолчанию — no. Возможные значения:

        • yes — принудительная валидация включена,
        • no — принудительная валидация выключена.

      Важно

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

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

    3. Чтобы удалить модели из отслеживаемых, введите команду

      signer sign model del --models <MODELS>
      
      где models — список моделей, которые больше не будут отслеживаться. Обязательный аргумент. При models, равном *, все модели автоматически не будут отслеживаться.

  4. Добавьте объекты внутри моделей в список отслеживаемых.
    Плагин позволяет добавлять в список не только модели целиком, но и их отдельные части — объекты.

    1. Посмотрите список всех доступных объектов внутри модели

      signer sign entity list --model <MODEL>
      
      где model — имя модели. Обязательный аргумент.

    2. Добавьте объекты в список отслеживаемых

      signer sign entity enable --pk <PK> --force_sign yes
      

      где

      • pk — информация об объекте в формате JSON. Обязательный аргумент;
      • force_sign — принудительная валидация уже существующих и создаваемых позже объектов. По умолчанию — no. Возможные значения:

        • yes — принудительная валидация включена,
        • no — принудительная валидация выключена.

      Пример команды для добавления тома Libvirt в список отслеживаемых

      signer sign entity enable --pk '{"classpath": "storage_libvirt_vols","pk": {"ctx_cluster": "sdcci6569","ctx_ns": "vdc1","ctx_path": "/","name": "2.qcow2","pool": "test","uuid": "7206ed44-3d52-4b30-9224-cee888e8a719"}' --force_sign yes
      
    3. Чтобы удалить объект из списка отслеживаемых, введите

      signer sign entity del --pk <PK>
      
      где pk — информация об объекте в формате JSON. Обязательный аргумент.

  5. Добавьте объекты в список исключений.
    Плагин позволяет внести объект в список исключений для подписи.
    Это означает, что все объекты модели при ее добавлении будут подписаны, а указанные в исключении объекты подписаны не будут и не будут отслеживаться.

    1. Чтобы добавить объект в список исключений, введите команду

      signer sign entity disable --pk <PK>
      
      где pk — информация об объекте в формате JSON. Обязательный аргумент.

    2. Чтобы удалить объект из списка исключений, введите команду

      signer sign entity del --pk <PK>
      
      где pk — информация об объекте в формате JSON. Обязательный аргумент.

  6. Информирование о нарушении валидации.
    При нарушении валидации отслеживаемого объекта автоматически в журнал безопасности будет занесено соответствующее событие.

    Пример
         {
         "ctx_cluster": "sdcci6569",
         "ctx_ns": "vdc1",
         "data": "{\"pk\": {\"classpath\": \"scheduler_request\", \"pk\": {\"ctx_cluster\": \"sdcci6569\", \"ctx_ns\": \"vdc1", \"ctx_path\": \"/\", \"vcluster\": \"vcl1\", \"kind\": \"vm\", \"name\": \"test1\", \"uuid\": \"db8ef9f0-035c-4162-8aba-79026618a0fe\"}}}",
         "error": "Object was illegally modified. Signature is not valid",
         "event_time": "2024-09-09T08:52:04.050000+00:00",
         "group": "default",
         "level": "INFO",
         "login": null,
         "operation": "Object was illegally modified. Signature is not valid",
         "prop": null,
         "result": null,
         "session": null,
         "uuid": "9063f5ff-1194-4f26-8f40-3f222d70e48a"
    },
    

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

  7. Чтобы удалить параметры валидации ВЦОД, введите команду

    signer param del
    

    Важно

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

Оповещение пользователя о событиях КЦ

Платформа позволяет настроить оповещение Администратора ВЦОД о регистрации заданных типов событий, в том числе о событиях нарушения контроля целостности. Оповещение осуществляется по электронной почте, подробнее настройка оповещений описана в разделе Уведомления Руководства пользователя Sharx Base.

Рекомендации по действиям Администратора ВЦОД при нарушении контроля целостности

При получении сообщения о нарушении целостности объекта виртуальной инфраструктуры Администратору ВЦОД рекомендуется:

  1. Перевести контроль целостности на уровне виртуальной инфраструктуры в уведомительный режим (WARN).
  2. Удалить объект из перечня отслеживаемых.
  3. Провести анализ причин срабатывания контроля целостности на нарушение целостности объекта.
  4. В случае необходимости — пересоздать объект. Рекомендуется восстановить объект из резервной копии, если имеется актуальная резервная копия объекта.

Важно

Восстановить виртуальную машину из резервной копии пользователь Sharx Base c соответствующими правами может по инструкции в разделе Восстановить виртуальную машину Руководства пользователя.
Другие объекты можно восстановить из резервных копий, обратившись в Техническую поддержку ООО «Шаркс ДЦ»


Термины и определения содержатся в статьях: