Настраиваемое содержимое, связанное с соответствием нормативным требованиям, позволяет определить собственные стандарты безопасности, которые дополнят библиотеку сравнительных тестов и проверок безопасности, встроенную в SaltStack SecOps Compliance. Это настраиваемое содержимое можно использовать для адаптации политик SaltStack SecOps Compliance с учетом внутренних требований.

Проверка представляет собой стандарт обеспечения безопасности, который система SaltStack SecOps Compliance оценивает на предмет соответствия требованиям. Сравнительные тесты относятся к проверкам системы безопасности.

SaltStack SecOps Compliance содержит пакет Custom Content SDK, который можно использовать для создания, тестирования и формирования собственного настраиваемого содержимого системы безопасности. Настраиваемое содержимое системы безопасности можно импортировать для использования со встроенной библиотекой безопасности SaltStack SecOps Compliance при выполнении оценки и внесении исправлений. Благодаря возможности импорта настраиваемого содержимого также можно присваивать содержимому версию с помощью отдельной системы управления версиями.

Чтобы использовать настраиваемые проверки, сначала запустите пакет Custom Content SDK для SaltStack SecOps Compliance. SDK содержит примеры файлов, которые можно изменять для создания собственных настраиваемых проверок, а также сравнительные тесты. SDK также содержит среду тестирования на основе Docker, в которой можно тестировать новое содержимое.

После создания и тестирования настраиваемого содержимого можно сформировать файл содержимого и импортировать его в SaltStack SecOps Compliance, чтобы начать процесс оценки и исправления. Для настраиваемых проверок отображается значок пользователя custom-checks-user-icon, а для проверок SaltStack — значок built-in-checks-shield-icon. SaltStack SecOps Compliance отслеживает зависимости между политиками и настраиваемым содержимым и предоставляет список зависимостей, которые могут быть нарушены в случае удаления содержимого.

Необходимые условия

Инициализация пакета SDK

  1. Находясь в командной строке, перейдите в каталог, где находится файл, и выполните следующие действия в соответствии с используемой ОС.
    • Mac OS или Linux
      ./secops_sdk init
    • Windows
      secops_sdk.exe init

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

    • benchmarks
    • salt/locke/custom
    • sample_tests
    • README.md

    Дополнительные сведения об этих папках и файлах см. в Папки и файлы.

  2. (Необязательно.) Зафиксируйте изменения в репозитории с контролем версий.

Создание настраиваемых проверок

Примечание:

Для создания настраиваемого содержимого одним из предварительных условий является инициализация пакета SDK. См. раздел Инициализация пакета SDK.

  1. В пакете Custom Content SDK перейдите в каталог salt/locke/custom. Этот каталог содержит различные подкаталоги с примерами файлов состояния (.sls) и файлов метаданных (.meta).
    Примечание: Все настраиваемые проверки должны быть указаны в файле состояния ( .sls) и соответствующем файле метаданных ( .meta).
  2. Создайте копии примера файла состояния (.sls) и соответствующего файла метаданных (.meta) и переименуйте их, используя описательное имя для настраиваемой проверки.

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

    • my_first_check.meta
    • my_first_check.sls

    Эти файлы можно сохранить вместе в любом подкаталоге в salt/locke/custom.

  3. Отредактируйте содержимое файла метаданных для настройки проверки с учетом текущих потребностей. Файл создан на языке YAML. Список различных параметров, используемых в файле, см. в разделе Папки и файлы.
    Примечание: Убедитесь, что файлы метаданных содержат ссылки на разные сравнительные тесты. При создании настраиваемого содержимого не забудьте включить все связанные сравнительные тесты в файл метаданных настраиваемой проверки.
  4. Отредактируйте содержимое файла состояния. Дополнительные сведения см. в разделе Папки и файлы.
  5. Убедитесь, что оба файла сохранены в одном каталоге.

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

Создание настраиваемых сравнительных тестов

Примечание: Для создания настраиваемого содержимого одним из предварительных условий является инициализация пакета SDK. См. раздел Инициализация пакета SDK.
  1. В пакете Custom Content SDK перейдите в каталог benchmarks. Он содержит пример файла метаданных сравнительного теста (.meta).
  2. Создайте копию файла Sample_Benchmark.meta и переименуйте ее, используя описательное имя для сравнительного теста.
  3. Отредактируйте содержимое файла метаданных для настройки сравнительного теста с учетом текущих потребностей. Файл создан на языке YAML. Описание различных параметров, используемых в файле, см. в разделе Папки и файлы.

Тестирование настраиваемого содержимого

Примечание: Установка Docker является предварительным условием для последующих действий. Дополнительные сведения о загрузке и установке Docker см. в документации по установке Docker.
  1. После создания настраиваемого содержимого откройте командную строку и перейдите в каталог sample_tests пакета Custom Content SDK.
  2. Соберите образ docker для CentOS7 с системой Salt для тестирования.
    ./build.sh
  3. Запустите тестовый контейнер.
    ./up.sh
  4. Запустите стандартные тесты для проверок, созданных в каталоге salt/locke/custom. С настраиваемыми проверками можно работать так же, как с обычными состояниями Salt, например:
    ./test.sh salt-call --local state.apply locke.custom.mounts.my_first_check test=True

    Дополнительные примеры тестирования см. в разделе Test Custom Content в файле README пакета SDK. Дополнительные сведения о состояниях Salt см. в разделе Документация по Salt. Как использовать состояния Salt?.

  5. По окончании тестирования завершите работу тестового контейнера.
    ./down.sh

Сборка библиотеки настраиваемого содержимого

  1. После создания настраиваемого содержимого откройте командную строку и перейдите в корневой каталог пакета Custom Content SDK.
  2. Соберите библиотеку настраиваемого содержимого.
    ./secops_sdk build -a

    Теперь корневой каталог SDK содержит подкаталог _dist. Он содержит два файла tar.gz, которые можно использовать для импорта содержимого с помощью пользовательского интерфейса SaltStack Config или API-интерфейса (RaaS). Описание всех файлов, находящихся в каталоге, см. в разделе Папки и файлы.

Импорт настраиваемого содержимого

  1. Выберите Администрирование > SecOps в боковом меню.
  2. Выберите Содержимое для соответствия требованиям — SaltStack, щелкните Проверить наличие обновлений.
    Примечание: Если вы уже загрузили содержимое SaltStack SecOps Compliance во время текущего сеанса, этот шаг можно пропустить.
  3. Щелкните Загрузить пакет и выберите файл .tar.gz в проводнике.
    Примечание: Для упрощения перехода между настраиваемыми проверками используйте файл, в имени которого содержится метка времени. Дополнительные сведения о файлах см. в разделе Папки и файлы.

    Теперь настраиваемое содержимое доступно в SaltStack SecOps Compliance для создания политик, выполнения оценок и исправления систем. Для настраиваемых проверок отображается значок пользователя custom-checks-user-icon, а для проверок SaltStack — значок built-in-checks-shield-icon.

    Примечание:

    Импортировать содержимое можно также с помощью API-интерфейса (RaaS) или командной строки во время установки. См. раздел «API-интерфейс Sec» или руководство по установке версии Enterprise.

Удаление настраиваемых проверок

  1. В пользовательском интерфейсе выберите SecOps > Проверки.
  2. Щелкните меню menu-icon-light рядом с проверкой, которую необходимо удалить, и нажмите Удалить.
    Примечание: Можно удалить только настраиваемое содержимое. Для настраиваемого содержимого отображается значок пользователя custom-checks-user-icon, а для содержимого SaltStack — значок built-in-checks-shield-icon.
  3. В диалоговом окне «Удаление проверки» в разделе «Используются» просмотрите список политик и сравнительных тестов, которые содержат проверку. Это полезно для поиска зависимостей в среде, которые могут быть нарушены в случае удаления проверки.

    После рассмотрения используемых зависимостей нажмите Далее.

  4. Выберите Удаление проверки > Предупреждение и нажмите Удалить. В диалоговом окне отображается подтверждение удаления проверки.
  5. Нажмите кнопку Готово, чтобы закрыть диалоговое окно.

Удаление настраиваемых сравнительных тестов

  1. В пользовательском интерфейсе выберите SecOps > Сравнительные тесты.
  2. Щелкните меню menu-icon-light рядом с проверкой, которую необходимо удалить, и нажмите Удалить.
    Примечание:

    Можно удалить только настраиваемое содержимое. Для настраиваемого содержимого отображается значок пользователя custom-checks-user-icon, а для содержимого SaltStack — значок built-in-checks-shield-icon.

  3. В диалоговом окне «Удаление сравнительного теста» в разделе «Используются» просмотрите список политик и проверок, связанных со сравнительным тестом. Это полезно для поиска зависимостей в среде, которые могут быть нарушены в случае удаления сравнительного теста.

    После рассмотрения используемых зависимостей нажмите Далее.

  4. Выберите Удаление сравнительного теста > Предупреждение и нажмите Удалить. В диалоговом окне отображается подтверждение удаления сравнительного теста.
  5. Нажмите кнопку Готово, чтобы закрыть диалоговое окно.

Папки и файлы

После инициализации пакета SDK каталог будет содержать следующие папки и файлы.

  • benchmarks — содержит файлы метаданных настраиваемых сравнительных тестов (.meta)
  • salt/locke/custom — содержит файлы состояния настраиваемой проверки (.sls) и файлы метаданных (.meta)
  • sample_tests — содержит образцы файлов для тестирования с помощью Docker
  • README.md — содержит более подробные сведения о пакете SDK

Ниже приведено описание важных файлов.

Файлы настраиваемых сравнительных тестов

Сравнительные тесты относятся к проверкам системы безопасности. Встроенные сравнительные тесты SaltStack SecOps Compliance разрабатываются признанными экспертами. Однако настраиваемые сравнительные тесты можно определить на основе стандартов конкретной организации. Каждый сравнительный тест содержит список рекомендаций, называемых проверками, а в каталоге benchmarks для каждого теста имеется соответствующий файл .meta. Дополнительные сведения о сравнительных тестах в SaltStack SecOps Compliance см. в разделе Сравнительные тесты.

Для создания категории проверок необходимо создать файл метаданных сравнительного теста. Затем можно добавить проверки к сравнительному тесту путем присвоения ему имени в файле метаданных проверки в поле benchmark_id. См. раздел Папки и файлы.

Файл метаданных написан на языке YAML и содержит следующие параметры, которые можно настраивать для содержимого.

name

Имя сравнительного теста

display_name

Имя сравнительного теста, отображаемое в списке сравнительных тестов в SaltStack SecOps Compliance

desc

Описание сравнительного теста

Примечание:

В дополнение к вышеупомянутым параметрам файл метаданных также содержит различные зарезервированные элементы, например version, authority и ids. Не изменяйте эти зарезервированные элементы, пока не получите инструкции от своего администратора.

Настраиваемые файлы проверки

Проверка представляет собой стандарт обеспечения безопасности, который система SaltStack SecOps Compliance оценивает на предмет соответствия требованиям. Это рекомендация, связанная со сравнительным тестом. Рекомендация содержит описание, обоснование, сведения об аудите и исправлении. Каждая проверка определяется по крайней мере двумя файлами: файлом состояния (.sls) и соответствующим файлом метаданных (.meta).

Примечание:

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

  • my_first_check.meta
  • my_first_check.sls

Эти файлы можно сохранить вместе в любом подкаталоге в salt/locke/custom.

Ниже приведено подробное описание файла каждого типа.

Файлы метаданных проверок

Убедитесь, что файлы метаданных содержат описание проверки, а также дополнительные сведения, связанные с ней, например ее версию, применимые операционные системы и прочее. Файлы метаданных написаны на языке YAML и имеют расширение .meta.

Файлы метаданных настраиваемых проверок содержат следующие параметры.

version

Версия содержимого проверки. В настоящее время поддерживается только значение 1.

display_name

Имя проверки, которое будет отображаться в списке проверок в пользовательском интерфейсе SaltStack Config.

global_description

Подробное описание проверки. Здесь можно ввести дополнительные сведения, помимо имен проверки и сравнительного теста.

osfinger

Список операционных систем, в которых можно выполнять эту проверку. Если узел не содержит значение osfinger, совпадающее со значением в этом списке, то будет возвращен результат оценки проверки notapplicable.

refs

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

benchmark_id

Список всех сравнительных тестов, к которым относится проверка.

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

type

Тип сравнительного теста. Введите custom при определении настраиваемой проверки, которая не предоставлена определенной организацией.

desc

Название рекомендации по обеспечению безопасности, отображаемое в списке проверок в пользовательском интерфейсе SaltStack Config.

control_id

Номер рекомендации, например из соответствующего документа CIS.

scored

Это поле создается на основе рекомендаций CIS и может содержать значение «с балльной оценкой» или «без балльной оценки». Рекомендации CIS, отмеченные как «без балльной оценки», не учитываются в составе балльной оценки или относительно нее.true означает «с балльной оценкой», а false — «без балльной оценки». В зависимости от текущих потребностей можно применять или не применять балльную оценку при проверке.

profile

CIS и другие сравнительные тесты разделяются на профили. Например, сравнительный тест CIS CentOS Linux 7 содержит четыре профиля, представляемых следующим образом.

profile:
  server:level1
  workstation:level1
  server:level2
  workstation:level3
information

Описание проверки. Это поле может быть похоже на поле проверки global_description.

rationale

Текстовое обоснование для создания проверки.

remediation

Инструкции по исправлению системы, не соответствующей требованиям.

Файлы состояния проверки

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

Результат оценки представляет собой результат выполнения файла состояния в режиме test=True. Если результат показывает, что применение состояния вызовет изменение, узел будет считаться не соответствующим требованиям. Если применение состояния не приведет к изменению, узел будет считаться соответствующим требованиям.

Дополнительные сведения о состояниях Salt см. в разделе Документация по Salt. Как использовать состояния Salt?.

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

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

  • digest.json — содержит хэши и прочие сведения о содержимом.
  • secops_custom.tar.gz — tar-файл gzip, готовый к приему. Он может быть отправлен через пользовательский интерфейс SaltStack Config. Дополнительные сведения о приеме содержимого см. в документе Руководство по установке версии Enterprise.
  • secops_custom.txt — версия файла secops_custom.tar.gz на основе стандарта кодирования base64. Может использоваться при отправке вызовов API-интерфейса.
  • secops_custom_YYYY-MM-DDTHH:MM:SS.SSSSSS...tar.gz — идентичная копия файла secops_custom.tar.gz, которую рекомендуется отправлять через пользовательский интерфейс SaltStack Config из-за описательного имени файла, содержащего дату создания и идентификатор UUID tar-архива.