Введение в XCCDF

XCCDF (The Extensible Configuration Checklist Description Format, Расширяемый формат описания контрольных листов настроек) - это спецификационный язык на основе XML для описания контрольных листов настроек безопасности (security configuration checklists) и других подобных документов.

Автор: эксперт исследовательского центра Positive Research Александр Леонов


XCCDF (The Extensible Configuration Checklist Description Format, Расширяемый формат описания контрольных листов настроек) - это спецификационный язык на основе XML для описания контрольных листов настроек безопасности (security configuration checklists) и других подобных документов. XCCDF является одним из языков Протокола автоматизации контента безопасности (Security Content Automation Protocol, SCAP). XCCDF — важный инструмент для специалистов, связанных с автоматизацией процессов информационной безопасности. На этом языке описаны, к примеру, обязательные требования по настройке рабочих станций федеральных агентств США и их контрагентов (программа FDCC/USGCB).

В этой статье мы рассмотрим, каким образом описываются контрольные листы настроек безопасности на языке XCCDF — на примере USGCB-контента для RedHat Enterprise Linux.

Документ XCCDF состоит из одного или несколько правил XCCDF. Правило — это высокоуровневое представление технической проверки системы. Например: «Минимальная длина пароля пользователя поля должна составлять 12 символов».

Рассмотрим это правило на языке XCCDF:

prohibitChanges="false" abstract="false" hidden="false" role="full" severity="unknown">
accepted

CCE-4154-1:Set password minimum length
The password minimum length should be set
appropriately

CCE-4154-1

export-name="oval:gov.nist.usgcb.rhel:var:20071"/>
name="oval:gov.nist.usgcb.rhel:def:20071"/>

Правило XCCDF непосредственно не описывает, как именно должна проводиться проверка. Вместо этого в нем содержится ссылка на другие XML-документы (например, определения OVAL), которые, в свою очередь, содержат актуальные инструкции по выполнению этой проверки. Подробнее о языке OVAL мы рассказывали в статье «OVAL®, или «миф об идеальном сканере»».

В рассматриваемом примере правило XCCDF ссылается на определение OVAL c идентификатором oval:gov.nist.usgcb.rhel:def:20071. Передача требуемого значения проверяемого параметра осуществляется через переменные. Значение переменной XCCDF usgcb-rhel5desktop-var-2.3.1.7.a передается во внешнюю переменную OVAL oval:gov.nist.usgcb.rhel:var:20071 (передаваемое значение равно 12). Ниже мы покажем, каким образом происходит инициализация этой переменной XCCDF.

В заголовке правила XCCDF присутствует подстрока ССЕ-4154-1 — номер проверки в рамках Единой нумерации конфигураций (Common Configuration Enumeration, CCE). Эта нумерация позволяет вести единый реестр вопросов, связанных с конфигурированием систем.

Параметр weight (весовой коэффициент) характеризует важность правила XCCDF- по умолчанию его значение равно 1. Весовые коэффициенты используются при расчете итоговой метрики, определяющей соответствие состояния системы требованиям стандарта.

Стоит обратить внимание на способ нумерации правил ХCCDF (в нашем случае это номер 2.3.1.7.a). Нумерация правил XCCDF повторяет нумерацию пунктов «бумажного» стандарта. Кроме того, соответствие между стандартом на бумаге и его представлением в виде XCCDF достигается путем группировки правил XCCDF. Группы XCCDF могут содержать в себе одно или несколько правил или групп.

Группа, в которую входит правило usgcb-rhel5desktop-var-2.3.1.7.a будет иметь вид:

В этом примере следует обратить внимание на то, как группируются правила XCCDF, и на то, как инициализируются значения переменных XCCDF. В группу usgcb-rhel5desktop-group-2.3.1.7 помимо уже рассмотренного правила usgcb-rhel5desktop-rule-2.3.1.7.a входят также правила usgcb-rhel5desktop-rule-2.3.1.7.b, usgcb-rhel5desktop-rule-2.3.1.7.c, usgcb-rhel5desktop-rule-2.3.1.7.d. Конкретное значение переменной выбирается в зависимости от значения селектора, ассоциированного с переменной.

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

Профиль для правила usgcb-rhel5desktop-var-2.3.1.7.a будет иметь вид:

prohibitChanges="false">
United States Government Configuration<br />Baseline 1.0.5.0
This profile represents guidance
outlined in United States Government Configuration Baseline for desktop
systems with Redhat Enterprise Linux 5 installed.