4 XCCDFプロファイルのコンプライアンスの確認

oscapコマンドを使用して、システムがセキュリティ・コンプライアンス・チェックリストにどのように準拠しているかを確認します。OSCAPは、特定のセキュリティ要件、推奨事項またはガイドラインを満たすためにシステムを強化するのに役立つXCCDFプロファイルを使用して、システムに関するレポートを生成し、情報を表示できます。XCCDFプロファイルは、XCCDFファイルまたはSCAPデータ・ストリーム・ファイル内に含めることができます。

XCCDFファイルまたはデータ・ストリーム・ファイルの検証

oscap XCCDF validateを使用して終了コードを確認し、そのスキーマに対してXCCDFファイルを検証します。これにより、ファイルが適切に構造化されていることが確認されます。

たとえば、XCCDFファイルを検証するには、次のコマンドを実行します。

oscap xccdf validate /path/to/xccdf-file.xml \
  && echo "ok" || echo "exit code = $? not ok"

ファイルが有効な場合、コマンド例では次が返されます。

ok

XCCDFファイルは、scap-security-guideパッケージの一部として、他のいくつかのSCAP Security Guideファイルとともに出荷されます。

同様に、oscap ds sds-validateを使用して終了コードを確認し、ソース・データ・ストリーム・ファイルをそのスキーマに対して検証します。XCCDFコンテンツは、単一のソース・データ・ストリーム・ファイルにバンドルして含めることができ、多くの場合、scap-security-guideパッケージの一部として含まれ、多数のSCAP関連アーティファクトを出荷する場合に適しています。

ソース・データ・ストリーム・ファイルを検証するには、次を実行します。

oscap ds sds-validate /path/to/ds-file.xml \
  && echo "ok" || echo "exit code = $? not ok"

ファイルが有効な場合、コマンド例では次が返されます。

ok

使用可能なプロファイルの表示

oscap infoを使用して、SCAP Security GuideのXCCDFファイルやXCCDFコンテンツを含むSCAPデータ・ストリームなどのチェックリスト・ファイルでサポートされているプロファイルを表示します。

プロファイルには、すべてのOracle Linuxインストールに適用される汎用セキュリティ推奨事項およびシステムの意図した使用方法に固有の追加セキュリティ推奨事項が含まれています。リストされているプロファイルは、必ずしもシステムに適していない可能性があります。ただし、それらのプロファイルを使用して、サイトのセキュリティ・ポリシーのコンプライアンスをテストする新しいプロファイルを作成できます。

使用可能なプロファイルの確認

oscap info <path>/<file>.xml

たとえば:

oscap info /usr/share/xml/scap/ssg/content/ssg-ol8-ds.xml

サンプル出力:

Document type: Source Data Stream
Imported: 2022-07-05T20:10:04

Stream: scap_org.open-scap_datastream_from_xccdf_ssg-ol8-xccdf-1.2.xml
Generated: (null)
Version: 1.3
Checklists:
	Ref-Id: scap_org.open-scap_cref_ssg-ol8-xccdf-1.2.xml
WARNING: Datastream component 'scap_org.open-scap_cref_security-oval-com.oracle.elsa-all.xml.bz2' points out 
 to the remote 'https://linux.oracle.com/security/oval/com.oracle.elsa-all.xml.bz2'.
 Use '--fetch-remote-resources' option to download it.
WARNING: Skipping 'https://linux.oracle.com/security/oval/com.oracle.elsa-all.xml.bz2' file which is referenced 
 from datastream
		Status: draft
		Generated: 2022-07-05
		Resolved: true
		Profiles:
			Title: ANSSI-BP-028 (enhanced)
				Id: xccdf_org.ssgproject.content_profile_anssi_bp28_enhanced
			Title: ANSSI-BP-028 (high)
				Id: xccdf_org.ssgproject.content_profile_anssi_bp28_high
			...
			Title: Standard System Security Profile for Oracle Linux 8
				Id: xccdf_org.ssgproject.content_profile_standard
			Title: DISA STIG for Oracle Linux 8
				Id: xccdf_org.ssgproject.content_profile_stig
			Title: DISA STIG with GUI for Oracle Linux 8
				Id: xccdf_org.ssgproject.content_profile_stig_gui
		Referenced check files:
			ssg-ol8-oval.xml
				system: http://oval.mitre.org/XMLSchema/oval-definitions-5
			ssg-ol8-ocil.xml
				system: http://scap.nist.gov/schema/ocil/2
			security-oval-com.oracle.elsa-all.xml.bz2
				system: http://oval.mitre.org/XMLSchema/oval-definitions-5
Checks:
  Ref-Id: scap_org.open-scap_cref_ssg-ol8-oval.xml
  Ref-Id: scap_org.open-scap_cref_ssg-ol8-ocil.xml
  Ref-Id: scap_org.open-scap_cref_--builddir--build--BUILD--scap-security-guide-0.1.60--build--ssg-ol8-cpe-oval.xml
  Ref-Id: scap_org.open-scap_cref_security-oval-com.oracle.elsa-all.xml.bz2
Dictionaries:
  Ref-Id: scap_org.open-scap_cref_--builddir--build--BUILD--scap-security-guide-0.1.60--build--ssg-ol8-cpe-dictionary.xml

ノート:

XCCDFプロファイルに関する情報を表示するときに、リモート・データ・ストリーム・コンポーネントに関する警告を無視できますが、評価を実行する場合は、--fetch-remote-resourcesオプションを使用してOSCAPが自動的にこれらのリソースをダウンロードできるようにするか、事前に手動でリソースをダウンロードし、--local-filesオプションを使用してこれらのコンポーネントに使用するパスを指定する必要があります。ssg- ol8-ds.xmlデータ・ストリーム・ファイルには、評価が最新バージョンのこれらの定義に対して監査できるように、OVAL定義をダウンロードする場所に関する情報が含まれています。

プロファイルに関する情報の表示

--profileオプションを指定します。

oscap info --profile <profile_id> <path>/<file>.xml

たとえば:

oscap info --profile xccdf_org.ssgproject.content_profile_standard /usr/share/xml/scap/ssg/content/ssg-ol8-ds.xml

サンプル出力:

Document type: Source Data Stream
Imported: 2022-07-05T20:10:04

Stream: scap_org.open-scap_datastream_from_xccdf_ssg-ol8-xccdf-1.2.xml
Generated: (null)
Version: 1.3
Profile
	Title: Standard System Security Profile for Oracle Linux 8
	Id: xccdf_org.ssgproject.content_profile_standard

	Description: This profile contains rules to ensure standard security baseline of 
       Oracle Linux 8 system. Regardless of your system's workload all of these checks 
       should pass.

この例では、完全なプロファイルIDが使用されていますが、OSCAPでは短いプロファイルIDも認識しており、これらは一般的に使用されています。

XCCDFプロファイルに対するスキャンの実行

oscap XCCDF evalコマンドを使用して、XCCDFプロファイルに対してシステムをスキャンし、コンプライアンス評価レポートを生成します。

  1. 使用するプロファイルを決定します。「使用可能なプロファイルの表示」を参照してください。

  2. 特定のプロファイルを指定してスキャンを実行します。

    sudo oscap xccdf eval --profile <profile-name> \
      --fetch-remote-resources \
      --results <path>/<results-name>.xml \
      --report <path>/<report-name>.html \
           /usr/share/xml/scap/ssg/content/<file>.xml

    たとえば:

    sudo oscap xccdf eval  --profile standard \
      --fetch-remote-resources \
      --results /var/www/html/ssg-results.xml \
      --report /var/www/html/ssg-results.html \
        /usr/share/xml/scap/ssg/content/ssg-ol8-ds.xml
    --fetch-remote-resourcesオプションを使用すると、OSCAPはインターネットに接続して、XCCDFプロファイルの評価に必要なリモート・リソースをダウンロードできます。システムが切断された環境にある場合は、--local-filesオプションを使用して、OSCAPが指定されたパスで事前にダウンロードされたリソースを使用するようにできます。ssg-ol8-ds.xmlデータ・ストリーム・ファイルには、リモートでホストされるOVAL定義への参照が含まれています。この定義は、システムに正しくパッチが適用されているかどうかを評価するときに使用する必要があります。

    推奨データ・ストリームではなくXCCDFファイルを使用する場合は、--CPEオプションを使用してCPEディクショナリの場所を指定する必要があります。次に例を示します。

    sudo oscap xccdf eval  --profile standard \
      --fetch-remote-resources \
      --results /var/www/html/ssg-results.xml \
      --report /var/www/html/ssg-results.html \
      --cpe /usr/share/xml/scap/ssg/content/ssg-ol8-cpe-dictionary.xml \
        /usr/share/xml/scap/ssg/content/ssg-ol8-xccdf.xml

    サンプル出力:

    ...
    --- Starting Evaluation ---
    
    Title   Verify File Hashes with RPM
    Rule    xccdf_org.ssgproject.content_rule_rpm_verify_hashes
    Result  pass
    
    Title   Verify and Correct File Permissions with RPM
    Rule    xccdf_org.ssgproject.content_rule_rpm_verify_permissions
    Result  pass
    
    ...
    
    Title   Disable At Service (atd)
    Rule    xccdf_org.ssgproject.content_rule_service_atd_disabled
    Result  fail
    failになるプロファイルのルールでは、システムを再構成する必要がある場合があります。
  3. 次の図に示すように、ブラウザでHTMLレポートを表示します。


    図は、oscapによって生成されたスキャン・レポートのHTMLバージョンの一部を示しています。レポートの上部には、タイトルとレポートの説明が含まれています。評価特性、コンプライアンスに関する全体的なスコア、および報告された失敗フラグの重大度に基づいて、サマリー情報が提供されます。レポートの残りの部分には、各スキャン・アクションに関する詳細情報が含まれています。
  4. 結果のXMLファイルをレビューします。

    結果のXMLファイルを使用して、必要に応じて修正スクリプトおよびその他の情報を取得できます。結果ファイルを確認するには、次を実行します。

    oscap info ssg-results.xml

    「テスト結果」セクションには、結果が適用されるソース・プロファイルが含まれていることに注意してください。この値は、後で使用するために修正スクリプトを取得するときに使用できます。修正の詳細は、「セキュリティ・プロファイルのコンプライアンスのためのシステムの修正」を参照してください。

完全セキュリティ・ガイドの生成

oscap xccdf generate guideコマンドを使用して、システムのセキュリティ関連の構成設定のカタログを提供する完全なセキュリティ・ガイドを作成します。セキュリティ・ガイドには、多くの場合、システムに対して実行して問題を自動的に解決するのに役立つbash修正スクリプトおよびAnsibleスニペットの例が含まれています。スクリプトによって実行されるアクションが企業にとって望ましくない場合があるため、テスト環境内のシステムで修正スクリプトをテストする必要があります。

完全なセキュリティ・ガイドを作成するには:

  1. XCCDFプロファイルに基づいてシステムの完全セキュリティ・ガイドを作成します。次に例を示します。

    sudo oscap xccdf generate guide --profile <profile-name> \
    /usr/share/xml/scap/ssg/content/<file>.xml > <path>/<security-guide-name>.html

    たとえば:

    sudo oscap xccdf generate guide --profile standard \
    /usr/share/xml/scap/ssg/content/ssg-ol8-ds.xml > /var/www/html/security_guide.html
  2. 次の図に示すように、ブラウザでセキュリティ・ガイドを表示します。

    図4-1サンプル・セキュリティ・ガイド


    図は、oscapコマンドによって生成されたセキュリティ・ガイドのHTMLバージョンの一部を示しています。レポートの上部には、ガイドのタイトルと説明が含まれています。目次と、ガイドの生成に使用されるチェックリストがリストされます。

セキュリティ・プロファイルのコンプライアンスのためのシステムの修正

XCCDFプロファイルから生成されるセキュリティ・ガイドおよび評価レポートには、潜在的なコンプライアンス問題の解決に役立つ修正情報が含まれている場合があります。修正情報は、通常、レポートまたはガイドが生成されたシステムで実行できるbashスクリプトまたはAnsibleプレイブックの形式で提供されます。

OSCAPには、システムがXCCDFプロファイルに準拠していない場合に、修正ステップを自動的に適用できるコマンドもあります。通常、修正ステップは新規インストールに対して実行され、ベースラインXCCDFプロファイルに準拠した初期構成を提供します。

警告:

修正ステップでは、アクセスの制限やシステムの機能の変更の可能性のあるシステムに変更を加えることができます。修正の適用後に、修正を自動的に元に戻す方法はありません。修正ステップも、オペレーティング・システムの基本インストールに対して実行するように設計されています。システム構成を変更した場合、修正ステップはXCCDFプロファイルのコンプライアンスを保証しません。本番システムには、最初にテストせずに修正ステップを適用しないでください。

ノート:

Ansibleプレイブックの修正は、提供されているOracle Linux SCAPコンテンツの大部分で利用できますが、これらは現在、bashスクリプトの修正よりも完全ではないと考えられています。

即時修正

XCCDFプロファイルに対するスキャン中にOSCAPが修正ステップを自動的に即時に適用できるようにするには、--remediateオプションを含めます。次に例を示します。

sudo oscap xccdf eval --profile standard \
  --remediate /usr/share/xml/scap/ssg/content/ssg-ol8-ds.xml     

変更は、システムの評価時に自動的に適用されます。

コマンドの実行が終了したら、システムを再起動します。システムを再度スキャンして、変更を検証できます。

このプロセスは、通常、システムのインストール時にセキュリティ・プロファイルが選択されなかったインストールの後にお薦めします。

後で使用するための修正スクリプトの生成

修正スクリプトは後で使用するために生成できるため、修正アクションを確認して修正してからシステムに変更を適用できます。

システムに固有の修正を提供する修正スクリプトを生成するには、XCCDFプロファイルに対してスキャンを実行し、--resultsオプションを使用してXMLファイルを出力します。「XCCDFプロファイルに対するスキャンの実行」を参照してください。

XML結果ファイルを使用して、oscap xccdf generate fixコマンドを実行し、使用できるbashスクリプトを生成します。次に例を示します。
oscap xccdf generate fix --profile standard --fix-type bash --output remediations.sh ssg-results.xml
--fix-typeオプションの値をansibleに変更して、YAML形式のAnsible互換修正スクリプトを生成できます。

プロファイルに存在するすべての修正を提供するスクリプトを生成するには、データ・ストリームまたはXCCDFファイルに対して同じコマンドを実行します。次に例を示します。

oscap xccdf generate fix --profile standard --fix-type bash \
 --output all-remediations.sh /usr/share/xml/scap/ssg/content/ssg-ol8-ds.xml