Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.2. コンプライアンスポリシーの定義

セキュリティーまたはコンプライアンスポリシーは、ゼロからほとんど記述されません。ISO 27000 の標準シリーズ、派生作業、およびその他のソースは、セキュリティーポリシーテンプレートと、で始まることが便利なプラクティスの推奨事項を提供します。ただし、組織は情報セキュリティープログラムを構築するため、ニーズに合わせてポリシーテンプレートを変更する必要があります。ポリシーテンプレートは、会社環境との関連性に基づいて選択し、テンプレートを調整する必要があります。テンプレートには、組織に適用できないビルドイン想定が含まれるか、またはテンプレートが明示的に特定の決定を行う必要があるためです。
Red Hat Enterprise Linux の監査機能は、SCAP(Security Content Automation Protocol)標準規格に基づいています。SCAP は相互運用可能な仕様の合成で、形式を標準化し、ソフトウェアの不具合とセキュリティー設定情報がマシンも通信します。SCAP は、自動化された設定、脆弱性およびパッチの確認、技術的な制御コンプライアンスアクティビティー、およびセキュリティーの測定に対応している多目的な仕様のフレームワークです。
つまり、SCAP はセキュリティーポリシーを表現するベンダーに依存しない方法です。したがって、最新の企業で広く使用されています。SCAP の仕様は、セキュリティーコンテンツの形式により、既知で標準化されたエコシステムが作られますが、一方で、スキャナーやポリシーエディターの導入は義務化されていません。このような状態では、企業がいくつものセキュリティーベンダーを用いていても、組織がセキュリティーポリシー (SCAP コンテンツ) を構築するのは一度で済みます。
最新バージョンの SCAP には、基礎となるいくつかの標準が含まれています。これらのコンポーネントは、以下のように SCAP 内の機能に従ってグループに分けられます。

SCAP コンポーネント

  • 言語 - このグループは、コンプライアンスポリシーを表現するための標準的なボキャブラリーと規則を定義する SCAP 言語で構成されます。
    • eXtensible Configuration Checklist Description Format(XCCDF) - セキュリティーガイダンスを表現、整理、および管理するために設計された言語。
    • Open Vulnerability and Assessment Language(OVAL) - スキャンされたシステムの状態に関する論理アサーションを実行するために開発された言語。
    • Open Checklist Interactive Language(OCIL) - ユーザーをクエリーし、指定の質問へのユーザー応答を解釈する標準的な方法を提供するために設計された言語。
    • アセット識別(AI): セキュリティーアセットを特定するためのデータモデル、メソッド、およびガイダンスを提供するために開発された言語。
    • アセットレポート形式(ARF)- 収集されたセキュリティーアセットおよびアセット とセキュリティーレポート間の関係に関する情報のトランスポート形式を表現するために設計された言語。
  • 重要 - このグループには、命名形式と、関係する特定のセキュリティー関連の領域のアイテムの公式リストまたはディクショナリーを定義する SCAP 標準が含まれています。
    • Common Configuration Enumtion(CCE): アプリケーションおよびオペレーティングシステムのセキュリティー関連の設定要素。
    • Common Platform Enumtion(CPE): 情報テクノロジー(IT)システム、プラットフォーム、およびソフトウェアパッケージの特定に使用される構造化命名スキーム。
    • Common Vulnerabilities and Exposures(CVE) - 公開されているソフトウェアの脆弱性と脆弱性のコレクションへの参照。
  • メトリクス: このグループは、セキュリティーリスクを特定し、評価するためのフレームワークで構成されます。
    • Common Configuration Scoring System(CCSS): セキュリティー関連の設定要素を評価し、ユーザーが適切な応答ステップに優先順位を設定するのに役立つスコアを割り当てるメトリックシステムです。
    • Common Vulnerability Scoring System(CVB) - ソフトウェア脆弱性を評価し、ユーザーがセキュリティーリスクを優先させるのに役立つスコアを割り当てるためのメトリックシステムです。
  • インテグリティー - SCAP コンテンツおよびスキャン結果の整合性を維持する SCAP 仕様。
    • TMSAD(Security Automation Data)- 署名、ハッシュ、鍵情報、およびアイデンティティー情報をセキュリティー自動化ドメイン内の XML ファイルのコンテキストで表するため の既存の仕様の使用を説明する推奨事項。
各 SCAP コンポーネントには、独自の XML ベースのドキュメント形式と、その XML ネームスペースがあります。SCAP で表現されるコンプライアンスポリシーは、単一の OVAL 定義 XML ファイル、データストリームファイル、単一 zip アーカイブ、またはポリシーチェックリストを表す XCCDF ファイルを含む個別の XML ファイルのいずれかの形式を取ることができます。

8.2.1. XCCDF ファイル形式

XCCDF 言語は、情報交換、ドキュメント生成、組織および状況に合わせて調整、自動化コンプライアンステスト、コンプライアンススコアリングをサポートするように設計されています。言語には主に説明があり、セキュリティースキャンを実行するコマンドは含まれていません。ただし、XCCDF ドキュメントは他の SCAP コンポーネントを参照できるため、関連する評価ドキュメント(OVAL、OCIL)を除き、すべてのターゲットプラットフォームで移植可能なコンプライアンスポリシーを作成できます。
コンプライアンスポリシーを表す一般的な方法は、XML ファイルの 1 つが XCCDF チェックリストです。この XCCDF ファイルは、通常、複数の OVAL、OCIL、および Script Check Engine(SCE)ファイルを指します。さらに、ファイルセットには、CPE ディクショナリーファイルと、このディクショナリーのオブジェクトを定義する OVAL ファイルが含まれます。
XCCDF は XML ベースの言語であるため、XML 要素および属性を大幅に定義および使用します。以下のリストは、主な XCCDF 要素を簡単に紹介します。XCCDF の詳細は、NIST Interagency Report 7275 Revision 4 を参照してください。

XCCDF ドキュメントの主な XML 要素

  • <xccdf:Benchmark>: これは、XCCDF ドキュメント全体を囲むルート要素です。また、タイトル、説明、作成者の一覧、最新の変更日、チェックリスト受け入れステータスなどのチェックリストメタデータが含まれる場合もあります。
  • <xccdf:Rule>: これはチェックリストの要件を表し、その説明を保持する主要な要素です。指定のルールとのコンプライアンスを検証または強制するアクションを定義する子要素が含まれる場合や、ルール自体を変更する場合があります。
  • <xccdf:Value>: このキー要素は、ベンチマーク内の他の XCCDF 要素の属性を表現するために使用されます。
  • <xccdf:Group>: この要素は、<xccdf: Rule>、<xccdf: Value>、および <xccdf:Group> 要素を収集し、同じコンテキストまたは要件ドメインで構造を構成するために XCCDF ドキュメントを構成するために使用されます。
  • <xccdf:Profile>: この要素は、XCCDF ベンチマークの名前付きの調整に使用します。ベンチマークが複数の異なる調整を保持できるようにします。<xccdf:Profile> は、<xccdf:select><xccdf:refine-rule> などの複数のセレクター要素を使用して、どの要素が有効であるかを判断します。
  • <xccdf:Tailoring> - この要素は、コンプライアンスポリシーの手動による調整 が望ましい場合もあります。
  • <xccdf:TestResult>: この要素は、ターゲットシステム上の所定のベンチマークのスキャン結果を保持します。<xccdf:TestResult> は、特定のスキャンのコンプライアンスポリシーを定義するために使用したプロファイルを参照し、スキャンに関連するターゲットシステムに関する重要な情報も含まれるはずです。
  • <xccdf:rule-result> - これは、ベンチマークからターゲットシステムに特定のルールを適用する結果を保持するために使用される <xccdf:TestResult> の子要素です。
  • <xccdf:fix> - これは <xccdf:Rule> の子要素で、指定のルールに準拠しないターゲットシステムの修復に適しています。システムにルールを準拠させるために、ターゲットシステムで実行するコマンドまたはスクリプトを含めることができます。
  • <xccdf:check>: これは、指定のルールを評価する方法を定義する外部ソースを参照する <xccdf:Rule> の子要素です。
  • <xccdf:select>: これは、選択したルールまたはルールのグループをポリシーから除外するために使用されるセレクター要素です。
  • <xccdf:set-value>: これは、他のプロパティーを変更せずに指定された <xccdf:Value> 要素の現在の値を上書きするために使用されるセレクター要素です。
  • <xccdf:refine-value>: ポリシーのテーラリング中に特定の <xccdf:Value> 要素の制約を指定するために使用されるセレクター要素です。
  • <xccdf:refine-rule>: 選択したルールのプロパティーを上書きすることができるこのセレクター要素です。

例8.1 XCCDF ドキュメントの例

        
<?xml version="1.0" encoding="UTF-8"?>
<Benchmark xmlns="http://checklists.nist.gov/xccdf/1.2"
    id="xccdf_com.example.www_benchmark_test">
  <status>incomplete</status>
  <version>0.1</version>
  <Profile id="xccdf_com.example.www_profile_1">
    <title>Profile title is compulsory</title>
    <select idref="xccdf_com.example.www_group_1" 
        selected="true"/>
    <select idref="xccdf_com.example.www_rule_1" 
        selected="true"/>
    <refine-value idref="xccdf_com.example.www_value_1"
        selector="telnet service"/>
  </Profile>
  <Group id="xccdf_com.example.www_group_1">
    <Value id="xccdf_com.example.www_value_1">
      <value selector="telnet_service">telnet-server</value>
      <value selector="dhcp_servide">dhcpd</value>
      <value selector="ftp_service">tftpd</value>
    </Value>
    <Rule id="xccdf_com.example.www_rule_1">
      <title>The telnet-server Package Shall Not Be Installed </title>
      <rationale>
        Removing the telnet-server package decreases the risk
        of the telnet service’s accidental (or intentional) activation
      </rationale>
      <fix platform="cpe:/o:redhat:enterprise_linux:6" 
          reboot="false" 
          disruption="low" 
          system="urn:xccdf:fix:script:sh">
        yum -y remove 
        <sub idref="xccdf_com.example.www_value_1"/>
      </fix>
      <check system="http://oval.mitre.org/XMLSchema/oval-definitions-5">
        <check-export value-id="xccdf_com.example.www_value_1" 
            export-name="oval:com.example.www:var:1"/>
        <check-content-ref href="examplary.oval.xml" 
            name="oval:com.example.www:def:1"/>
      </check>
      <check system="http://open-scap.org/page/SCE">
        <check-import import-name="stdout"/>
        <check-content-ref href="telnet_server.sh"/>
      </check>
    </Rule>
  </Group>
</Benchmark>