CentOS Stream 8
Sponsored Link

OpenSCAP : インストール2022/07/01

 
SCAP (Security Content Automation Protocol) 標準に基づいたシステムのセキュリティ監査や脆弱性スキャンが可能な OpenSCAP のインストールです。
SCAP の概要は以下を参照ください。
⇒ https://www.ipa.go.jp/security/vuln/SCAP.html
OVAL  (Open Vulnerability and Assessment Language)
       ⇒ 脆弱性を評価するための標準化された仕様

XCCDF (Extensible Configuration Checklist Description Format)
       ⇒ XML フォーマットのセキュリティ設定チェックリスト

OCIL  (Open Checklist Interactive Language)
       ⇒ ユーザーとの質疑応答を解釈するフレームワーク

CPE   (Common Platform Enumeration)
       ⇒ ハードやソフト等を識別するための命名基準

CCE   (Common Configuration Enumeration)
       ⇒ 各セキュリティ項目にユニーク ID を割り当てる仕様

CVE   (Common Vulnerabilities and Exposures)
       ⇒ 個別製品の脆弱性に割り当てられた一意の識別番号

CVSS  (Common Vulnerability Scoring System)
       ⇒ 脆弱性を評価してスコアでランク付けするメトリクスシステム

[1] OpenSCAP コマンドラインツール および Linux 向けのセキュリティポリシーが定義された SCAP Security Guide をインストールします。
[root@dlp ~]#
dnf -y install openscap-scanner scap-security-guide
[2] SCAP Security Guide は [/usr/share/xml/scap/ssg/content] 配下にインストールされます。
[root@dlp ~]#
ll /usr/share/xml/scap/ssg/content/

total 300008
-rw-r--r--. 1 root root 20969763 Jun  9 18:10 ssg-centos7-ds-1.2.xml
-rw-r--r--. 1 root root 20970105 Jun  9 18:10 ssg-centos7-ds.xml
-rw-r--r--. 1 root root 13787923 Jun  9 18:09 ssg-centos7-xccdf.xml
-rw-r--r--. 1 root root 22289156 Jun  9 18:10 ssg-centos8-ds-1.2.xml
-rw-r--r--. 1 root root 22289498 Jun  9 18:10 ssg-centos8-ds.xml
-rw-r--r--. 1 root root 14480558 Jun  9 18:10 ssg-centos8-xccdf.xml
-rw-r--r--. 1 root root      591 Jun  9 18:08 ssg-firefox-cpe-dictionary.xml
-rw-r--r--. 1 root root     3885 Jun  9 18:08 ssg-firefox-cpe-oval.xml
-rw-r--r--. 1 root root   277332 Jun  9 18:08 ssg-firefox-ds-1.2.xml
-rw-r--r--. 1 root root   277332 Jun  9 18:08 ssg-firefox-ds.xml
-rw-r--r--. 1 root root    47457 Jun  9 18:08 ssg-firefox-ocil.xml
-rw-r--r--. 1 root root    65954 Jun  9 18:08 ssg-firefox-oval.xml
-rw-r--r--. 1 root root   144854 Jun  9 18:08 ssg-firefox-xccdf.xml
-rw-r--r--. 1 root root     1231 Jun  9 18:08 ssg-jre-cpe-dictionary.xml
-rw-r--r--. 1 root root     6349 Jun  9 18:08 ssg-jre-cpe-oval.xml
-rw-r--r--. 1 root root   219353 Jun  9 18:08 ssg-jre-ds-1.2.xml
-rw-r--r--. 1 root root   219353 Jun  9 18:08 ssg-jre-ds.xml
-rw-r--r--. 1 root root    34672 Jun  9 18:08 ssg-jre-ocil.xml
-rw-r--r--. 1 root root    44155 Jun  9 18:08 ssg-jre-oval.xml
-rw-r--r--. 1 root root   121469 Jun  9 18:08 ssg-jre-xccdf.xml
-rw-r--r--. 1 root root     6768 Jun  9 18:10 ssg-rhel6-cpe-dictionary.xml
-rw-r--r--. 1 root root    93922 Jun  9 18:10 ssg-rhel6-cpe-oval.xml
-rw-r--r--. 1 root root 22934702 Jun  9 18:10 ssg-rhel6-ds-1.2.xml
-rw-r--r--. 1 root root 22935173 Jun  9 18:10 ssg-rhel6-ds.xml
-rw-r--r--. 1 root root   733916 Jun  9 18:10 ssg-rhel6-ocil.xml
-rw-r--r--. 1 root root  2335663 Jun  9 18:10 ssg-rhel6-oval.xml
-rw-r--r--. 1 root root  7439626 Jun  9 18:10 ssg-rhel6-xccdf.xml
-rw-r--r--. 1 root root    10135 Jun  9 18:09 ssg-rhel7-cpe-dictionary.xml
-rw-r--r--. 1 root root   124400 Jun  9 18:09 ssg-rhel7-cpe-oval.xml
-rw-r--r--. 1 root root 22186207 Jun  9 18:09 ssg-rhel7-ds-1.2.xml
-rw-r--r--. 1 root root 22186549 Jun  9 18:09 ssg-rhel7-ds.xml
-rw-r--r--. 1 root root  1629296 Jun  9 18:09 ssg-rhel7-ocil.xml
-rw-r--r--. 1 root root  4763301 Jun  9 18:09 ssg-rhel7-oval.xml
-rw-r--r--. 1 root root 14595795 Jun  9 18:09 ssg-rhel7-xccdf.xml
-rw-r--r--. 1 root root    13099 Jun  9 18:09 ssg-rhel8-cpe-dictionary.xml
-rw-r--r--. 1 root root   124400 Jun  9 18:09 ssg-rhel8-cpe-oval.xml
-rw-r--r--. 1 root root 23307942 Jun  9 18:10 ssg-rhel8-ds-1.2.xml
-rw-r--r--. 1 root root 23308284 Jun  9 18:10 ssg-rhel8-ds.xml
-rw-r--r--. 1 root root  1785009 Jun  9 18:09 ssg-rhel8-ocil.xml
-rw-r--r--. 1 root root  5204724 Jun  9 18:09 ssg-rhel8-oval.xml
-rw-r--r--. 1 root root 15155753 Jun  9 18:09 ssg-rhel8-xccdf.xml

# 各コンテンツの概要を表示するには以下

[root@dlp ~]#
oscap info /usr/share/xml/scap/ssg/content/ssg-centos8-ds-1.2.xml


Document type: Source Data Streamre/xml/scap/ssg/content/ssg-centos8-ds-1.2.xml
Imported: 2022-06-09T18:10:12

Stream: scap_org.open-scap_datastream_from_xccdf_ssg-rhel8-xccdf-1.2.xml
Generated: (null)
Version: 1.2
Checklists:
        Ref-Id: scap_org.open-scap_cref_ssg-rhel8-xccdf-1.2.xml
                Status: draft
                Generated: 2022-06-09
                Resolved: true
                Profiles:
                        Title: PCI-DSS v3.2.1 Control Baseline for Red Hat Enterprise Linux 8
                                Id: xccdf_org.ssgproject.content_profile_pci-dss
                Referenced check files:
                        ssg-rhel8-oval.xml
                                system: http://oval.mitre.org/XMLSchema/oval-definitions-5
                        ssg-rhel8-ocil.xml
                                system: http://scap.nist.gov/schema/ocil/2
                        https://access.redhat.com/security/data/oval/com.redhat.rhsa-RHEL8.xml.bz2
                                system: http://oval.mitre.org/XMLSchema/oval-definitions-5
Checks:
        Ref-Id: scap_org.open-scap_cref_ssg-rhel8-oval.xml
        Ref-Id: scap_org.open-scap_cref_ssg-rhel8-ocil.xml
        Ref-Id: scap_org.open-scap_cref_ssg-rhel8-cpe-oval.xml
Dictionaries:
        Ref-Id: scap_org.open-scap_cref_ssg-rhel8-cpe-dictionary.xml
[3] [oscap] コマンドでシステムをスキャンします。
結果は HTML 形式のレポートで出力可能なため、任意のコンピューターで内容を確認し、可能な限り [pass] できるよう対応するとよいでしょう。
# xccdf : [xccdf] モジュールを指定
# ⇒ 指定可能なモジュール : info, xccdf, oval, ds, cpe, cvss, cve, cvrf
# [--profile] : プロファイルを指定
# ⇒ 指定可能なプロファイルは [2] で確認した [Profiles] リスト
# [--results] : 結果ファイルの出力先
# [--report] : HTML レポートの出力先
# [--fetch-remote-resources] : 最新データをダウンロード
[root@dlp ~]#
oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_pci-dss \
--results ssg-centos8-ds-1.2.xml \
--report ssg-centos8-ds-1.2.html \
--fetch-remote-resources \
/usr/share/xml/scap/ssg/content/ssg-centos8-ds-1.2.xml


Downloading: https://access.redhat.com/security/data/oval/com.redhat.rhsa-RHEL8.xml.bz2 ... ok
--- 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   Install AIDE
Rule    xccdf_org.ssgproject.content_rule_package_aide_installed
Result  fail

Title   Build and Test AIDE Database
Rule    xccdf_org.ssgproject.content_rule_aide_build_database
Result  fail

Title   Configure Periodic Execution of AIDE
Rule    xccdf_org.ssgproject.content_rule_aide_periodic_cron_checking
Result  fail

Title   Configure BIND to use System Crypto Policy
Rule    xccdf_org.ssgproject.content_rule_configure_bind_crypto_policy
Result  pass

Title   Configure System Cryptography Policy
Rule    xccdf_org.ssgproject.content_rule_configure_crypto_policy
Result  pass

Title   Configure Kerberos to use System Crypto Policy
Rule    xccdf_org.ssgproject.content_rule_configure_kerberos_crypto_policy
Result  pass

Title   Configure Libreswan to use System Crypto Policy
Rule    xccdf_org.ssgproject.content_rule_configure_libreswan_crypto_policy
Result  pass

Title   Configure OpenSSL library to use System Crypto Policy
Rule    xccdf_org.ssgproject.content_rule_configure_openssl_crypto_policy
Result  pass

Title   Configure SSH to use System Crypto Policy
Rule    xccdf_org.ssgproject.content_rule_configure_ssh_crypto_policy
Result  pass

Title   Install Intrusion Detection Software
Rule    xccdf_org.ssgproject.content_rule_install_hids
Result  pass

Title   Make sure that the dconf databases are up-to-date with regards to respective keyfiles
Rule    xccdf_org.ssgproject.content_rule_dconf_db_up_to_date
Result  notapplicable

.....
.....
[4]
スキャンした結果を元に、[fail] と判定された項目について修正スクリプトを生成することもできます。
基本的には、ほぼ全ての [fail] 項目に対しての修正ロジックが生成されます。
ただし、[/home] や [/var] などのパーティションは分ける、などといった項目は、ディスク容量との兼ね合いがあるため、自動修正はされません。
さらに、[/tmp] や [/var] などの各マウントポイントに [noexec] や [nosuid] などのオプションを付加せよという項目等は、パーティションを分けていることが前提となるため、分けていない場合は修正スクリプトを実行しても修正はされません。
また、システムの設定を変更し、セキュリティ設定が厳しくなるため、運用中のサーバーに対して実行する場合は重々注意しましょう。
# [3] で出力した結果の [Result ID] を確認

[root@dlp ~]#
oscap info ssg-centos8-ds-1.2.xml | grep "Result ID"

        Result ID: xccdf_org.open-scap_testresult_xccdf_org.ssgproject.content_profile_pci-dss

# 修正スクリプト生成
# [--fix-type] : 修正スクリプトのタイプを指定 : デフォルトは Bash
# ⇒ 指定可能なタイプ ⇒ bash, ansible, puppet, anaconda, ignition, kubernetes, blueprint
# [--output] : ファイルの出力先
# [--result-id] : 確認した [Result ID]
[root@dlp ~]#
oscap xccdf generate fix \
--fix-type bash \
--output ssg-centos8-ds-1.2-remediation.sh \
--result-id xccdf_org.open-scap_testresult_xccdf_org.ssgproject.content_profile_pci-dss \
ssg-centos8-ds-1.2.xml
[root@dlp ~]#
total 19160
-rw-------. 1 root root     1349 Feb 18  2021 anaconda-ks.cfg
-rw-r--r--. 1 root root  4093426 Jul 29 11:03 ssg-centos8-ds-1.2.html
-rwx------. 1 root root   805485 Jul 29 11:04 ssg-centos8-ds-1.2-remediation.sh
-rw-r--r--. 1 root root 14709313 Jul 29 11:02 ssg-centos8-ds-1.2.xml

# 修正スクリプト実行

[root@dlp ~]#
./ssg-centos8-ds-1.2-remediation.sh

.....
.....
Remediating rule 75/77: 'xccdf_org.ssgproject.content_rule_chronyd_or_ntpd_specify_multiple_servers'
Remediating rule 76/77: 'xccdf_org.ssgproject.content_rule_sshd_set_keepalive_0'
Remediating rule 77/77: 'xccdf_org.ssgproject.content_rule_sshd_set_idle_timeout'

# 再度チェック実行

[root@dlp ~]#
oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_pci-dss \
--results ssg-centos8-ds-1.2_after-remediation.xml \
--report ssg-centos8-ds-1.2_after-remediation.html \
--fetch-remote-resources \
/usr/share/xml/scap/ssg/content/ssg-centos8-ds-1.2.xml

  修正スクリプト実行後、多くの [fail] 項目が改善されたことが分かります。
関連コンテンツ