Red Hat Training

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

7.6. atomic scan コマンドを使用した OpenSCAP の使用

atomic scan コマンドを使用すると、OpenSCAP スキャン機能を使用して、システムで Docker フォーマットのコンテナーイメージおよびコンテナーをスキャンできます。既知の CVE 脆弱性、または設定コンプライアンスに対してスキャンすることができます。さらに、指定したポリシーに、Docker フォーマットのコンテナーイメージを修正します。

atomic scan および OpenSCAP スキャナーイメージ

コンテナー管理に atomic ツールをインストールするには、以下のコマンドを実行します。
# yum install atomic
atomic インストールの詳細は、『Prerequisites in the Atomic CLI Reference』 を参照してください。
atomic ツールをインストールしたあと、イメージをスキャンするために atomic scan コマンドがバックエンドとして使用するスキャナーが必要になります。Red Hat は、registry.access.redhat.com イメージレジストリーで rhel7/openscap コンテナーイメージにバンドルされている OpenSCAP スキャナーを選択することが推奨されます。
# atomic install registry.access.redhat.com/rhel7/openscap
registry.access.redhat.com/rhel7/openscap コンテナーイメージは、atomic scan コマンドにデフォルトスキャナーとして使用されます。現在は、Red Hat Enterprise Linux システムを対象にするスキャンタイプを 2つサポートします。サポートされているスキャンタイプを一覧表示するには、以下のコマンドを使用します。
# atomic scan --scanner openscap --list

7.6.1. 脆弱性について、atomic scan を使用した Docker 形式のイメージおよびコンテナーのスキャン

コンテナーおよびコンテナーイメージをスキャンするには、以下のような atomic scan コマンドを実行します。
# atomic scan [OPTIONS] [ID]
ID は、コンテナーイメージまたはコンテナーの ID となります。コンテナーイメージまたはコンテナーをスキャンするには、--images ディレクティブまたは --containers ディレクティブをそれぞれ使用します。両方のタイプをスキャンするには、--all ディレクティブを使用します。利用可能なコマンドラインオプションの一覧は、atomic scan --help コマンドを使用して取得できます。

注記

atomic コマンドの使用法およびコンテナーの詳細は、Red Hat Enterprise Linux Atomic Host の製品ドキュメント を参照してください。その他にも、Red Hat Customer Portal では、Atomic コマンドラインインターフェース (CLI) のガイド を提供しています。
atomic scan コマンドのデフォルトのスキャンタイプは、CVE スキャン です。これを使用して、Red Hat が公開している CVE OVAL 定義 で定義している既知のセキュリティー脆弱性の対象を確認するために使用します。

警告

ビルドプロセス時に、CVE スキャン が使用する OVAL 定義がコンテナーイメージにバンドルされます。Red Hat は、コンテナーイメージの週次アップデートを提供します。常に、最新の OpenSCAP コンテナーイメージを使用して、定義が最新であることを確認します。インストールした OpenSCAP コンテナーイメージのバージョンを確認するには、以下のコマンドを実行します。
# atomic help registry.access.redhat.com/rhel7/openscap | grep version

例7.13 既知のセキュリティー脆弱性について Red Hat Enterprise Linux 7 コンテナーイメージのスキャン

以下のコマンドは、既知のセキュリティー脆弱性に対して Red Hat Enterprise Linux 7 コンテナーイメージをスキャンします。--verbose ディレクティブを使用すると、詳細な内容が表示されます。
# atomic scan --verbose registry.access.redhat.com/rhel7:latest
docker run -t --rm -v /etc/localtime:/etc/localtime -v /run/atomic/2017-11-01-14-55-37-758180:/scanin -v /var/lib/atomic/openscap/2017-11-01-14-55-37-758180:/scanout:rw,Z -v /etc/oscapd:/etc/oscapd:ro registry.access.redhat.com/rhel7/openscap oscapd-evaluate scan --no-standard-compliance --targets chroots-in-dir:///scanin --output /scanout
WARNING:Can't import the 'docker' package. Container scanning functionality will be disabled.
INFO:Creating tasks directory at '/var/lib/oscapd/tasks' because it didn't exist.
INFO:Creating results directory at '/var/lib/oscapd/results' because it didn't exist.
INFO:Creating results work in progress directory at '/var/lib/oscapd/work_in_progress' because it didn't exist.
INFO:Evaluated EvaluationSpec, exit_code=0.
INFO:Evaluated EvaluationSpec, exit_code=0.
INFO:[100.00%] Scanned target 'chroot:///scanin/db7a70a0414e589d7c8c162712b329d4fc670fa47ddde721250fb9fcdbed9cc2'

registry.access.redhat.com/rhel7:latest (db7a70a0414e589)

registry.access.redhat.com/rhel7:latest passed the scan

Files associated with this scan are in /var/lib/atomic/openscap/2017-11-01-14-55-37-758180.
以下のコマンドは、既知のセキュリティー脆弱性を持つ Red Enterprise Linux 7.2 コンテナーイメージをスキャンします。
#atomic scan registry.access.redhat.com/rhel7:7.2
docker run -t --rm -v /etc/localtime:/etc/localtime -v /run/atomic/2017-11-01-14-49-36-614281:/scanin -v /var/lib/atomic/openscap/2017-11-01-14-49-36-614281:/scanout:rw,Z -v /etc/oscapd:/etc/oscapd:ro registry.access.redhat.com/rhel7/openscap oscapd-evaluate scan --no-standard-compliance --targets chroots-in-dir:///scanin --output /scanout

registry.access.redhat.com/rhel7:7.2 (98a88a8b722a718)

The following issues were found:

     RHSA-2017:2832: nss security update (Important)
     Severity: Important
       RHSA URL: https://access.redhat.com/errata/RHSA-2017:2832
       RHSA ID: RHSA-2017:2832-01
       Associated CVEs:
           CVE ID: CVE-2017-7805
           CVE URL: https://access.redhat.com/security/cve/CVE-2017-7805

     RHSA-2017:2016: curl security, bug fix, and enhancement update (Moderate)
     Severity: Moderate
       RHSA URL: https://access.redhat.com/errata/RHSA-2017:2016
       RHSA ID: RHSA-2017:2016-01
       Associated CVEs:
           CVE ID: CVE-2016-7167
           CVE URL: https://access.redhat.com/security/cve/CVE-2016-7167

     RHSA-2017:1931: bash security and bug fix update (Moderate)
     Severity: Moderate
       RHSA URL: https://access.redhat.com/errata/RHSA-2017:1931
       RHSA ID: RHSA-2017:1931-01
       Associated CVEs:
           CVE ID: CVE-2016-0634
           CVE URL: https://access.redhat.com/security/cve/CVE-2016-0634
           CVE ID: CVE-2016-7543
           CVE URL: https://access.redhat.com/security/cve/CVE-2016-7543
           CVE ID: CVE-2016-9401
           CVE URL: https://access.redhat.com/security/cve/CVE-2016-9401

............

Files associated with this scan are in /var/lib/atomic/openscap/2017-11-01-14-49-36-614281.

7.6.2. atomic scan を使用する Docker フォーマットのイメージおよびコンテナーの設定コンプライアンスのスキャンおよび修復

atomic scan を使用する Docker フォーマットのイメージおよびコンテナーの設定コンプライアンスのスキャン

atomic scan コマンドは、configuration_compliance スキャンもサポートします。このスキャンを使用して、OpenSCAP コンテナーイメージにバウンドされている SCAP Security Guide (SSG) により提供されている SCAP コンテンツが含まれる Red Hat Enterprise Linux ベースのコンテナーイメージおよびコンテナーを評価します。これにより、SCAP Security Guide が提供するプロファイルに対してスキャンが有効になります。
configuration_compliance スキャンの OpenSCAP イメージが提供する SCAP コンテントの一覧を表示するには、以下のコマンドを実行します。
# atomic help registry.access.redhat.com/rhel7/openscap
DISA STIG (Defense Information Systems Agency Security Technical Implementation Guide) ポリシーを使用して、最新の Red Hat Enterprise Linux 7 コンテナーイメージのコンプライアンスを確認するには、スキャンから HTML レポートを生成します。
#atomic scan --scan_type configuration_compliance --scanner_args xccdf-id=scap_org.open-scap_cref_ssg-rhel7-xccdf-1.2.xml,profile=xccdf_org.ssgproject.content_profile_stig-rhel7-disa,report registry.access.redhat.com/rhel7:latest
前述のコマンドの出力には、最後のスキャンに関連付けられている情報が含まれます。
............

Files associated with this scan are in /var/lib/atomic/openscap/2017-11-03-13-35-34-296606.

# tree /var/lib/atomic/openscap/2017-11-03-13-35-34-296606
/var/lib/atomic/openscap/2017-11-03-13-35-34-296606
├── db7a70a0414e589d7c8c162712b329d4fc670fa47ddde721250fb9fcdbed9cc2
│   ├── arf.xml
│   ├── fix.sh
│   ├── json
│   └── report.html
└── environment.json

1 directory, 5 files
atomic scan は、/var/lib/atomic/openscap/ ディレクトリーのスキャンの結果とレポートをすべて使用してサブディレクトリーを生成します。設定コンプライアンスに対するすべてのスキャンで、結果が含まれる arf.xml ファイルが作成されます。人間が判読可能な HTML レポートファイルを生成するには、report サブオプションを --scanner_args オプションに追加します。
DISA STIG Viewer が読み込み可能な XCCDF 結果を生成するには、stig-viewer サブオプションを --scanner_args オプションを追加します。この結果は、stig.xml に配置されます。DISA STIG Viewer の詳細は DISA STIG Viewer への XCCDF 結果のエクスポート」 を参照してください。
--scanner_args サブオプションはコンマで分割されます。xccdf-id サブオプションおよび profile サブオプションに対する特定値 (指定したデータストリームファイルの XCCDF コンポーネントおよびプロファイルを選択) は、OpenSCAP イメージでバンドルされた SCAP コンテンツから取得します。データストリームのファイルは、対象となるコンテナーイメージまたはコンテナーに基づいてスキャン時に OpenSCAP イメージから自動的に選択されます。

注記

--scanner_args オプションの xccdf-id サブオプションを省略すると、スキャナーは、選択したデータストリームファイルの最初の XCCDF コンポーネントでプロファイルを検索します。データストリームファイルの詳細は、「データストリームの形式」 を参照してください。

atomic scan を使用する Docker フォーマットイメージおよびコンテナーの設定コンプライアンスの修復

Docker フォーマットのコンテナーイメージを指定したポリシーに修復するには、設定コンプライアンスをスキャンする際に、--remediate オプションを atomic scan コマンドに追加します。以下のコマンドは、Red Hat Enterprise Linux 7 コンテナーイメージから DISA STIG ポリシーと互換性のある、新たに修復されたコンテナーイメージを構築します。
# atomic scan --remediate --scan_type configuration_compliance --scanner_args profile=xccdf_org.ssgproject.content_profile_stig-rhel7-disa,report registry.access.redhat.com/rhel7:latest

registry.access.redhat.com/rhel7:latest (db7a70a0414e589)

The following issues were found:
............
     Configure Time Service Maxpoll Interval
     Severity: Low
       XCCDF result: fail

     Configure LDAP Client to Use TLS For All Transactions
     Severity: Moderate
       XCCDF result: fail
............
Remediating rule 43/44: 'xccdf_org.ssgproject.content_rule_chronyd_or_ntpd_set_maxpoll'
Remediating rule 44/44: 'xccdf_org.ssgproject.content_rule_ldap_client_start_tls'

Successfully built 9bbc7083760e
Successfully built remediated image 9bbc7083760e from db7a70a0414e589d7c8c162712b329d4fc670fa47ddde721250fb9fcdbed9cc2.


Files associated with this scan are in /var/lib/atomic/openscap/2017-11-06-13-01-42-785000.
設定コンプライアンススキャンは、オリジナルのコンテナーイメージに対して実行して、DISA STIG ポリシーとの互換性を確認します。スキャンの結果に基づいて、失敗したスキャン結果に対する Bash 修復を含む修正スクリプトが生成されます。修正スクリプトは、その後、オリジナルのコンテナーイメージに提供されます。これが修復です。修復結果により、警告を受けた設定を持つコンテナーイメージとなり、オリジナルのコンテナーイメージに新しいレイヤーとして追加されます。atomic scan コマンドの出力結果は、修復されたイメージ ID を報告します。イメージを判別しやすいように、以下のような名前でタグ付けします。
#docker tag 9bbc7083760e rhel7_disa_stig

重要

オリジナルのコンテナーイメージが変更せず、その上に新しいレイヤーが作成されるという点に注意してください。修復プロセスは、設定改善をすべて含むコンテナーイメージを新たに構築します。このレイヤーのコンテンツは、スキャンのセキュリティーポリシーにより定義します (前述の例では DISA STIG ポリシーとなります)。また、これは、修復されたコンテナーイメージが Red Hat により署名されなくなることを意味しておりますが、これは予想されます。修復されたレイヤーを含むオリジナルのコンテナーイメージとは異なるためです。