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プロファイルに対してシステムをスキャンし、コンプライアンス評価レポートを生成します。
-
使用するプロファイルを決定します。「使用可能なプロファイルの表示」を参照してください。
-
特定のプロファイルを指定してスキャンを実行します。
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
になるプロファイルのルールでは、システムを再構成する必要がある場合があります。 -
次の図に示すように、ブラウザでHTMLレポートを表示します。
-
結果のXMLファイルをレビューします。
結果のXMLファイルを使用して、必要に応じて修正スクリプトおよびその他の情報を取得できます。結果ファイルを確認するには、次を実行します。
oscap info ssg-results.xml
「テスト結果」セクションには、結果が適用されるソース・プロファイルが含まれていることに注意してください。この値は、後で使用するために修正スクリプトを取得するときに使用できます。修正の詳細は、「セキュリティ・プロファイルのコンプライアンスのためのシステムの修正」を参照してください。
完全セキュリティ・ガイドの生成
oscap xccdf generate guide
コマンドを使用して、システムのセキュリティ関連の構成設定のカタログを提供する完全なセキュリティ・ガイドを作成します。セキュリティ・ガイドには、多くの場合、システムに対して実行して問題を自動的に解決するのに役立つbash修正スクリプトおよびAnsibleスニペットの例が含まれています。スクリプトによって実行されるアクションが企業にとって望ましくない場合があるため、テスト環境内のシステムで修正スクリプトをテストする必要があります。
完全なセキュリティ・ガイドを作成するには:
-
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
-
次の図に示すように、ブラウザでセキュリティ・ガイドを表示します。
図4-1サンプル・セキュリティ・ガイド
セキュリティ・プロファイルのコンプライアンスのためのシステムの修正
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プロファイルに対するスキャンの実行」を参照してください。
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