Требования к XCCDF-файлу
XCCDF-файл должен содержать один корневой элемент Benchmark. В элементе нем должны быть описаны:
- идентификатор бенчмарка в атрибуте
Benchmark/@id, например:id="xccdf_custom_benchmark_windows"; - язык содержимого в атрибуте
Benchmark/@xml:lang, например:xml:lang="en-US"; - статус бенчмарка в элементе
Benchmark/status, например:<status>accepted</status>; - название бенчмарка в элементе
Benchmark/title, например:<title xml:lang="ru-RU">Проверки конфигурации ОС Windows на соответствие требованиям нормативных, методических и организационных документов</title>; - описание бенчмарка в элементе
Benchmark/description, например:<description xml:lang="ru-RU">Бенчмарк содержит набор профилей для оценки соответствия конфигурации ОС Windows требованиям нормативных, методических и организационных документов...</description>; - версия бенчмарка в элементе
Benchmark/version, например:<version>1.0</version>; - один или несколько профилей соответствия в элементах
Benchmark/Profile, например:<Profile id="xccdf_custom_profile_standard">; - правила в элементах
Benchmark/Rule, например:<Rule id="xccdf_custom_rule_1" selected="false">; - ссылки из правил на OVAL-проверки через элементы
Rule/check и Rule/check/check-content-ref, например:<check-content-ref href="checks-oval.xml" name="oval:custom:def:20000001"/>.
Один бенчмарк может содержать несколько профилей соответствия. Каждый профиль соответствия должен явно указывать состав входящих в него правил через элементы select.
Идентификаторы элементов должны быть уникальными и стабильными в рамках импортируемого комплекта файлов. Допускается использование собственной схемы именования идентификаторов, если между элементами сохранены корректные связи:
Profile/select/@idrefдолжен ссылаться на существующийRule/@id;Rule/check/check-content-ref/@hrefдолжен указывать на OVAL-файл, находящийся в корне ZIP-архива;Rule/check/check-content-ref/@nameдолжен указывать на существующийdefinition/@idвнутри указанного OVAL-файла.
Рекомендуем использовать единообразную и понятную схему именования идентификаторов.
Пример содержимого XCCDF-файла
<Benchmark id="xccdf_custom_benchmark_ubuntu" ...>
<status>accepted</status>
<title>Проверки конфигурации ОС Ubuntu</title>
<description>Описание бенчмарка</description>
<version>1.0</version>
<Profile id="xccdf_custom_profile_id">
<title>Профиль ФСТЭК России №21 для ОС Ubuntu</title>
<description>Описание профиля</description>
<select idref="xccdf_custom_rule_1" selected="true"/>
<select idref="xccdf_custom_rule_2" selected="true"/>
</Profile>
<Rule id="xccdf_custom_rule_1" selected="false">
<title>Название правила</title>
<description>Описание правила</description>
<check system="http://oval.mitre.org/XMLSchema/oval-definitions-5">
<check-content-ref href="checks-oval.xml" name="oval:custom:def:1"/>
</check>
</Rule>
</Benchmark>
В примере имена идентификаторов приведены условно. Вы можете использовать другую схему именования, если идентификаторы уникальны и корректно связаны между собой.
Требования к профилям
Каждый профиль должен быть описан элементом Profile.
Профиль должен содержать:
- уникальный идентификатор в атрибуте
Profile/@id, например:id="xccdf_custom_profile_standard"; - название профиля в элементе
Profile/title, например:<title xml:lang="ru-RU">Профиль ФСТЭК России №21 для ОС Windows</title>; - описание профиля в элементе
Profile/description, например:<description xml:lang="ru-RU">Профиль включает в себя проверки конфигурационных параметров ОС Windows...</description>; - ссылку на документ-основание в элементе
Profile/reference, если она используется, например:<reference>https://fstec.ru/...</reference>; - список выбранных правил в элементах
Profile/select, например:<select idref="xccdf_custom_rule_1" selected="true"/>; - ссылку на правило в атрибуте
Profile/select/@idref, например:idref="xccdf_custom_rule_1"; - признак включения правила в профиль в атрибуте
Profile/select/@selected, например:selected="true".
Элемент select должен ссылаться на существующее правило по его идентификатору Rule/@id.
Пример:
<Profile id="xccdf_example_profile">
<title>Профиль проверки конфигурации</title>
<description>Описание профиля</description>
<select idref="xccdf_example_rule_1" selected="true"/>
</Profile>
Требования к правилам
Каждое правило должно быть описано элементом Rule.
Правило должно содержать:
- уникальный идентификатор в атрибуте
Rule/@id, например:id="xccdf_custom_rule_1"; - признак выбора правила по умолчанию в атрибуте
Rule/@selected, например:selected="false"; - название правила в элементе
Rule/title, например:<title xml:lang="ru-RU">Принудительное использование истории паролей</title>; - описание правила в элементе
Rule/description, например:<description xml:lang="ru-RU">Необходимо убедиться, что система хранит историю ранее использованных паролей...</description>; - идентификаторы требований в элементах
Rule/ident, например:<ident system="xccdf_custom_profile_standard">ИАФ.4</ident>; - систему идентификаторов требований в атрибуте
Rule/ident/@system, например:system="xccdf_custom_profile_standard"; - ссылку на OVAL-файл в атрибуте
Rule/check/check-content-ref/@href, например:href="checks-oval.xml"; - ссылку на OVAL definition в атрибуте
Rule/check/check-content-ref/@name, например:name="oval:custom:def:20000001".
Пример:
<Rule id="xccdf_example_rule_1" selected="false">
<title>Название правила</title>
<description>Описание правила</description>
<ident system="custom_requirements">REQ.1</ident>
<check system="http://oval.mitre.org/XMLSchema/oval-definitions-5">
<check-content-ref href="checks-oval.xml" name="oval:example:def:1"/>
</check>
</Rule>
Значение href должно указывать на OVAL-файл, который находится в том же ZIP-архиве в корне архива.
Значение name должно указывать на существующий OVAL definition/@id внутри указанного OVAL-файла.