Требования к OVAL-файлам

15 октября 2026

ID 335289

OVAL-файл должен быть корректным XML-документом с корневым элементом oval_definitions.

В OVAL-файле могут быть описаны:

  • сведения о генераторе в элементе oval_definitions/generator, например: <generator>...</generator>;
  • название продукта в элементе generator/oval:product_name, например: <oval:product_name>Название</oval:product_name>;
  • версия OVAL-схемы в элементе generator/oval:schema_version, например: <oval:schema_version>5.11.2</oval:schema_version>;
  • время формирования файла в элементе generator/oval:timestamp, например: <oval:timestamp>2026-01-01T00:00:00Z</oval:timestamp>;
  • версия продукта в элементе generator/oval:product_version, например: <oval:product_version>1.1</oval:product_version>;
  • список OVAL-проверок в элементе oval_definitions/definitions, например: <definitions>...</definitions>;
  • конкретная OVAL-проверка в блоке definitions/definition, например: <definition id="oval:custom:def:1" version="1" class="compliance">. В блоке definition могут быть описаны:
    • уникальный идентификатор в атрибуте definition/@id, например: id="oval:custom:def:1";
    • версия в атрибуте definition/@version, например: version="1";
    • класс проверки в атрибуте definition/@class, например: class="compliance";
    • метаданные проверки в блоке definition/metadata, например: <metadata>...</metadata>. В блоке metadata могут быть описаны:
      • название OVAL-проверки в элементе metadata/title, например: <title>Принудительное использование истории паролей</title>;
      • описание OVAL-проверки в элементе metadata/description, например: <description>Проверяется, что значение параметра password_hist_len больше или равно 24</description>;
      • применимая платформа в элементе metadata/affected, например: <affected family="windows">...</affected>;
      • семейство платформы в атрибуте metadata/affected/@family, например: family="windows";
      • конкретные платформы в элементах metadata/affected/platform, например: <platform>Windows 10</platform>.
    • критерии проверки в блоке definition/criteria, например: <criteria>...</criteria>. В блоке criteria могут быть описаны:
      • условия проверки в элементах definition/criteria/criterion, например: <criterion test_ref="oval:custom:tst:1" comment="Описание условия проверки"/>;
      • внешние ссылки на OVAL-определения внутри того же бенчмарка с помощью элементов definition/criteria/extend_definition, например: <extend_definition definition_ref="oval:custom:def:10" version="1" class="compliance" comment="Комментарий"/>.

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

  • используемые тесты в элементе oval_definitions/tests, например: <tests>...</tests>;
  • конкретный тест в элементе tests/windows:passwordpolicy_test, например: <windows:passwordpolicy_test id="oval:custom:tst:1" version="1" check="all">;
  • используемые объекты в элементе oval_definitions/objects, например: <objects>...</objects>;
  • конкретный объект в элементе objects/windows:passwordpolicy_object, например: <windows:passwordpolicy_object id="oval:custom:obj:1" version="1"/>;
  • используемые состояния в элементе oval_definitions/states, если они требуются проверками, например: <states>...</states>;
  • конкретное состояние в элементе states/windows:passwordpolicy_state, например: <windows:passwordpolicy_state id="oval:custom:ste:1" version="1">;
  • используемые переменные в элементе oval_definitions/variables, если они требуются проверками, например: <variables>...</variables>;
  • конкретная переменная в элементе variables/constant_variable, например: <constant_variable id="oval:custom:var:1" version="1" datatype="int">.

Пример блока definition

<definition id="oval:custom:def:1" version="1" class="compliance">

<metadata>

<title>Принудительное использование истории паролей</title>

<description>Проверяется, что значение параметра password_hist_len больше или равно 24.</description>

<affected family="windows">

<platform>Windows 10</platform>

<platform>Windows 11</platform>

<platform>Windows Server 2019</platform>

<platform>Windows Server 2022</platform>

</affected>

</metadata>

<criteria>

<criterion test_ref="oval:custom:tst:1" comment="Проверка значения password_hist_len"/>

</criteria>

</definition>

Требования к идентификаторам OVAL

Все элементы OVAL, на которые выполняются ссылки, должны иметь уникальные идентификаторы.

Идентификаторы OVAL должны использовать стандартный формат: oval:<namespace>:<type>:<number>

Где:

  • <namespace> – пространство имен поставщика или профиля;
  • <type> – тип OVAL-элемента;
  • <number> – числовой идентификатор элемента.

Допустимые значения <type>:

  • def – definition;
  • tst – test;
  • obj – object;
  • ste – state;
  • var – variable.

Примеры идентификаторов:

oval:custom:def:1

oval:custom:tst:1

oval:custom:obj:1

oval:custom:ste:1

oval:custom:var:1

Допускается использовать собственное пространство имен, например:

oval:example.company.security:def:10000001

oval:example.company.security:tst:10000001

oval:example.company.security:obj:10000001

oval:example.company.security:ste:10000001

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

Поддерживаемые типы OVAL-тестов

В пользовательских OVAL-файлах допускается использование следующих типов тестов:

  • Проверки Linux:

    ind:textfilecontent54_test

    ind:variable_test

    linux:inetlisteningservers_test

    linux:partition_test

    linux:systemdunitproperty_test

    unix:file_test

    unix:password_test

    unix:sysctl_test

  • Проверки DEB-пакетов (для Debian, Ubuntu, Astra Linux и других DEB-based систем):

    linux:dpkginfo_test

  • Проверки RPM-пакетов (для ALT Linux, RedOS и других RPM-based систем):

    linux:rpminfo_test

  • Проверки Windows:

    windows:auditeventpolicysubcategories_test

    windows:lockoutpolicy_test

    windows:passwordpolicy_test

    windows:registry_test

    windows:sid_sid_test

    windows:user_sid55_test

    windows:userright_test

    windows:wmi57_test

Использование других типов OVAL-тестов не поддерживается.

Требования к tests, objects и states

Каждый OVAL-тест должен ссылаться на существующий объект через элемент object_ref.

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

Типы test, object и state должны соответствовать друг другу.

Пример:

<tests>

<ind:textfilecontent54_test id="oval:custom:tst:1" version="1" check="all">

<ind:object object_ref="oval:custom:obj:1"/>

<ind:state state_ref="oval:custom:ste:1"/>

</ind:textfilecontent54_test>

</tests>

<objects>

<ind:textfilecontent54_object id="oval:custom:obj:1" version="1">

...

</ind:textfilecontent54_object>

</objects>

<states>

<ind:textfilecontent54_state id="oval:custom:ste:1" version="1">

...

</ind:textfilecontent54_state>

</states>

Примеры соответствия типов:

ind:textfilecontent54_test ind:textfilecontent54_object ind:textfilecontent54_state

linux:dpkginfo_test linux:dpkginfo_object

linux:rpminfo_test linux:rpminfo_object

unix:file_test unix:file_object unix:file_state

unix:sysctl_test unix:sysctl_object unix:sysctl_state

windows:registry_test windows:registry_object windows:registry_state

windows:passwordpolicy_test windows:passwordpolicy_object windows:passwordpolicy_state

windows:lockoutpolicy_test windows:lockoutpolicy_object windows:lockoutpolicy_state

windows:userright_test windows:userright_object windows:userright_state

windows:auditeventpolicysubcategories_test windows:auditeventpolicysubcategories_object windows:auditeventpolicysubcategories_state

windows:wmi57_test windows:wmi57_object windows:wmi57_state

Требования к variables

Если проверка использует переменные, они должны быть описаны в секции variables.

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

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

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!