セキュリティ

XCCDFとは?SCAP・OVALとの違いとファイル構造・使い方を解説

XCCDF(Extensible Configuration Checklist Description Format)は、サーバーやOSの「あるべきセキュリティ設定」を機械可読なチェックリストとして記述するための標準フォーマットです。米国のセキュリティ自動化規格SCAPを構成する言語の一つで、CIS BenchmarkやDISA STIGといった設定基準を、人手ではなくツールで一括点検できる形に落とし込みます。本記事では、XCCDFの定義、SCAP・OVALとの役割分担、ファイルの構造、そしてOpenSCAPで実際に監査を走らせる手順までを整理します。

まとめ:XCCDFの要点

  • 正体:セキュリティ設定チェックリスト(ベンチマーク)を記述するXMLベースの標準フォーマット。NISTがNISTIR 7275として仕様を管理する。
  • 役割:「何をどう点検し、どう採点・報告するか」という高レベルのチェック定義を担う。実際の状態検査(低レベル)はOVALが担当する。
  • 位置づけ:SCAP(セキュリティ設定共通化手順)の構成要素。OVAL・CPE・CVE・CVSSなどと組み合わせて使う。
  • 現行版:XCCDF 1.2(2011年公開)。2005年頃にNSAとNISTが主導して1.0が登場して以降、長く安定した規格。
  • 使い方:単体で手書きするより、OpenSCAP(oscap)とSCAP Security Guideの既存プロファイルを使って自動監査するのが実務の基本。

XCCDFとは:セキュリティ設定チェックリストの標準記述形式

XCCDFは、システムに求めるセキュリティ設定の規則群を構造化して表現する仕様言語です。「パスワードの最小長は14文字以上」「不要なサービスは停止する」といった要件を、担当者の頭の中や表計算のメモではなく、XMLの一貫した書式で定義します。これにより、同じチェックリストを異なる組織・異なるツールで再利用でき、点検結果の粒度も揃います。

仕様はNISTがNISTIR 7275として公開しており、2005年頃にNSAとNISTの主導でバージョン1.0が登場、2011年に現行の1.2へ更新されました。以降メジャー版は変わっておらず、設定監査の分野で長く使われている安定した規格です。XCCDFが定めるのはあくまで「チェックリストの書き方」であり、脆弱性そのものの識別子(CVE)や深刻度スコア(CVSSv3)とは役割が異なります。

XCCDFとSCAP・OVALの関係

XCCDFは単独で完結せず、SCAPという枠組みの中で他の規格と分担して動きます。混同されやすいSCAP・OVALとの違いを整理します。

SCAPの中でのXCCDFの位置づけ

SCAP(Security Content Automation Protocol)は、脆弱性・設定管理を自動化するためにNISTがまとめた規格の集合です。XCCDF(チェックリスト)、OVAL(状態検査)、CPE(製品の識別)、CVE(脆弱性の識別)、CVSS(深刻度評価)などを一つの手順として束ねています。XCCDFはこの中で「点検項目の定義と採点・報告」を受け持つ層にあたります。SCAP全体の位置づけはSCAPとは何かを解説した記事で詳しく扱っています。

XCCDFとOVALの役割分担

XCCDFとOVALはよくセットで語られますが、抽象度が違います。XCCDFは「何を確認すべきか」という高レベルのポリシーとチェック項目を定義し、各ルールから実際の検査手段を参照します。対してOVALは「システムの状態をどう調べるか」という低レベルの検査ロジック(レジストリ値やファイル権限の実際の読み取り方)を記述します。

観点 XCCDF OVAL
担当 定義・採点・報告 システム状態の実検査
抽象度 高レベル(ポリシー寄り) 低レベル(実装寄り)
主な要素 Benchmark / Profile / Rule Definition / Test / Object / State
単体で判定 できない(OVAL等を参照) できる

つまりXCCDFのルールが「空パスワードのアカウントを禁止する」と宣言し、そのルールが参照するOVAL定義が「実際に該当アカウントが存在するか」を調べる、という連携になります。OVAL側の仕組みはOVALとは何かを解説した記事で掘り下げています。

XCCDFファイルの構造と主要コンポーネント

XCCDF文書はXMLで書かれ、ルート要素のBenchmarkを頂点に階層構造を持ちます。主要な要素は次の通りです。

  • Benchmark:文書全体のルート。1つのチェックリスト(ベンチマーク)を表す。
  • Profile:ルールの選択セット。「CIS Level 1」「STIG」など用途別に、有効化するルールや設定値を切り替える。
  • Group:ルールを分類する入れ物(アカウント、ネットワークなど)。
  • Rule:個々の点検項目。重み(weight)を持ち、check要素からOVAL定義などを参照する。
  • Value:ルールが参照する可変パラメータ(例:パスワード最小長)。Profileで上書きできる。

実際の骨格は次のようになります(要素は抜粋)。

<Benchmark id="xccdf_com.example_benchmark_server">
  <Profile id="xccdf_com.example_profile_cis_l1">
    <select idref="xccdf_com.example_rule_no_empty_passwords" selected="true"/>
  </Profile>
  <Group id="xccdf_com.example_group_accounts">
    <Rule id="xccdf_com.example_rule_no_empty_passwords" weight="10.0">
      <title>空パスワードのアカウントを禁止する</title>
      <check system="http://oval.mitre.org/XMLSchema/oval-definitions-5">
        <check-content-ref href="ssg-oval.xml" name="oval:com.example:def:100"/>
      </check>
    </Rule>
  </Group>
</Benchmark>

評価を実行すると、各ルールの合否と重みから点数が計算され、結果はTestResult要素やARF(Asset Reporting Format)として出力されます。この採点・報告の枠組みまで規格に含むのがXCCDFの特徴で、単なるチェック項目の羅列に留まりません。

OpenSCAPによるXCCDF実行と設定監査の自動化

多くの現場では、XCCDFファイルをゼロから手書きする場面はまれで、既製のコンテンツと実行ツールを組み合わせて使います。代表的なのがオープンソースのOpenSCAPoscapコマンド)で、NISTのSCAP 1.2認証を受けた検査ツールです。

チェック内容はSCAP Security Guide(SSG)が提供します。SSGにはCIS Benchmark、DISA STIG、PCI DSS(およびUSGCB等の政府基準)といった権威ある基準がプロファイルとして収録されており、XCCDF・OVAL・CPEを1ファイルにまとめたデータストリーム(SDS)として配布されます。実行手順は次のように、プロファイルを指定して評価するだけです。

# データストリームに含まれるプロファイルを一覧表示
oscap info scap-ds.xml

# CISプロファイルで評価し、HTMLレポートを出力
oscap xccdf eval \
  --profile xccdf_org.ssgproject.content_profile_cis \
  --results-arf arf.xml \
  --report report.html \
  scap-ds.xml

実行後、report.htmlに各ルールのpass/fail、arf.xmlに機械可読な詳細結果が残ります。まず狙うべきは自作ではなくSSGの流用です。自組織の要件がCISやSTIGと大きく異ならない限り、既存プロファイルを当ててから差分だけをカスタマイズする方が、網羅性も保守性も上回ります。XCCDFを自前で書き起こすのは、独自の内部基準を全社の監査対象へ機械適用したい、といった明確な理由がある場合に限るのが現実的です。

よくある質問

XCCDFとOVALの違いは何ですか?

XCCDFは「何を点検し、どう採点・報告するか」という高レベルのチェック定義を担い、OVALは「システムの状態を実際にどう調べるか」という低レベルの検査を担います。XCCDFのルールがOVAL定義を参照して連携します。

XCCDFとSCAPはどう違いますか?

SCAPは脆弱性・設定管理を自動化する規格の総称で、XCCDFはその構成要素の一つです。SCAPがXCCDF・OVAL・CPE・CVE・CVSSなどを束ね、XCCDFはその中でチェックリストの記述を受け持ちます。

XCCDFの最新バージョンは?

現行はXCCDF 1.2(2011年公開)です。仕様はNISTがNISTIR 7275として管理しており、以降メジャー版の更新はありません。

XCCDFファイルはどう実行しますか?

OpenSCAPのoscap xccdf evalコマンドにプロファイルとデータストリームを渡して評価します。多くの場合、SCAP Security Guideが配布するファイルをそのまま利用します。

CIS BenchmarkやSTIGとの関係は?

CIS BenchmarkやDISA STIGといった設定基準は、XCCDF形式のプロファイルとしてSCAP Security Guideに収録されています。XCCDFはこれらの基準を機械可読にする「入れ物」の役割を果たします。

関連記事

資料請求

RELATED POSTS 関連記事