機械翻訳について

第5章 OpenSCAPを使用した脆弱性のスキャン

この章では、OpenSCAPを使用してセキュリティ脆弱性のためにOracle Linuxシステムをスキャンする方法について説明します。

5.1 SCAPについて

Security Content Automation Protocol (SCAP)は、システム脆弱性の測定および管理と連邦情報セキュリティ・マネジメント法(FISMA)などのセキュリティ標準に対するポリシー・コンプライアンスの評価を含むシステム・セキュリティを管理するための自動化および標準化された方法を提供します。 SCAP標準の米国政府のコンテンツ・リポジトリは、アメリカ国立標準技術研究所(NIST)によって管理される脆弱性情報データベース(NVD)です。

Oracle Linuxでは、Oracle Linux 7用の次のSCAPパッケージを提供します。

openscap-utils

openscap-utilsパッケージには、OpenSCAPライブラリを使用するコマンドライン・ツールが含まれます。 このパッケージには以前にoscapコマンドライン構成および脆弱性スキャナが含まれましたが、openscap-scannerパッケージで個別に使用できるようになりました。 openscap-utilsパッケージをインストールすると、依存関係としてopenscap-scannerパッケージがインストールされます。

openscap-scanner

SCAP Security Guideを含むSCAPコンテンツに対するコンプライアンス・チェックを実行できるoscapコマンドライン構成および脆弱性スキャナを提供します。 これはopenscap-utilsパッケージの依存関係です。 このパッケージには、chroot環境内のオフライン・ファイル・システムをスキャンできるoscap-chrootユーティリティも含まれています。

openscap-containers

openscap-containersパッケージには、コンテナおよびコンテナ・イメージのスキャンに使用できるoscap-dockerユーティリティが含まれています。 このパッケージの依存関係の一部がol7_addons yumリポジトリに含まれていることに注意してください。

openscap

SCAPコンプライアンス・ドキュメントを生成するためのOpenSCAPオープンソース・ライブラリを提供します。 OpenSCAPは2014年4月にNISTからSCAP 1.2認証を受け取りました。

scap-security-guide

政府要件へのリンクを含むSCAP形式のシステム強化ガイダンスを提供します。 ガイドでは、サイトに確立したセキュリティ・ポリシーに準拠するために変更できるセキュリティ・プロファイルを提供します。 バージョン v0.1.46-11.0.2.el7以降では、https://public.cyber.mil/stigs/で公開されているOracle Linux 7 V1R1用DISA STIGに合わせてこのパッケージにstigプロファイルが含まれています。 第5.6項「使用可能なプロファイルの表示」を参照してください。

5.2 SCAPパッケージのインストール

yumコマンドを使用して、ULNにあるol7_<arch>_latestチャネル、またはOracle Linux yumサーバーにあるol7_latestリポジトリからSCAPパッケージをインストールします。

# yum install scap-security-guide

なお、コンテナおよびコンテナ・イメージをスキャンするためにopenscap-containersパッケージをインストールする場合は、ULNにあるol7_<arch>_addonsチャネル、またはOracle Linux yumサーバーにあるol7_addonsリポジトリも有効にする必要があります。

5.3 oscapコマンドについて

oscapコマンドの一般的な構文は次のようになります。

# oscap [options] module operation [operation_options_and_arguments]

oscapは次のモジュール・タイプをサポートします。

cpe

共通プラットフォーム一覧(CPE)ファイルを使用して、操作を実行します。

cve

共通脆弱性識別子(CVE)ファイルを使用して、操作を実行します。

cvss

共通脆弱性評価システム(CVSS)ファイルを使用して、操作を実行します。

ds

SCAPデータ・ストリーム(DS)を使用して、操作を実行します。

info

ファイルのタイプを決定し、ファイルの情報を出力します。

oval

Open Vulnerability and Assessment Language (OVAL)ファイルを使用して、操作を実行します。

xccdf

セキュリティ設定チェックリスト記述形式(XCCDF)のファイルを使用して、操作を実行します。

infoovalおよびxccdfモジュールは、Oracle Linuxシステムをスキャンするために最も一般的に役立ちます。

oscapが実行できる操作はモジュール・タイプに依存します。 次の操作は、Oracle Linuxシステムのovalおよびxccdfモジュールで最も一般的に役立ちます。

eval

OVALファイルの場合、oscapはシステムを精査し、ファイルの各定義を評価し、結果を標準出力に出力します。

XCCDFファイルの指定されたプロファイルの場合、oscapはファイルの各ルールに対してシステムをテストし、結果を標準出力に出力します。

generate

OVAL XML結果ファイルの場合、generate reportは指定されたファイルをHTMLレポートに変換します。

XCCDFファイルの場合、generate guideは指定されたプロファイルの完全セキュリティ・ガイドを出力します。

validate

エラーを確認するためにXMLスキーマに対してOVALまたはXCCDFファイルを検証します。

詳細は、oscap(8)マニュアル・ページを参照してください。

5.4 使用可能なSCAP情報の表示

サポートされているSCAP仕様、ロードされたプラグイン機能、スキーマの場所、共通プラットフォーム一覧(CPE)、プローブ・ファイル、組込みCPE名、サポートされているOpen Vulnerability and Assessment Language (OVAL)オブジェクトと関連付けられたSCAPプローブを表示するには、次のようなoscap -Vコマンドを使用します。

# oscap -V
OpenSCAP command line tool (oscap) 1.2.10
Copyright 2009--2016 Red Hat Inc., Durham, North Carolina.

==== Supported specifications ====
XCCDF Version: 1.2
OVAL Version: 5.11.1
CPE Version: 2.3
CVSS Version: 2.0
CVE Version: 2.0
Asset Identification Version: 1.1
Asset Reporting Format Version: 1.1

==== Capabilities added by auto-loaded plugins ====
No plugins have been auto-loaded...

==== Paths ====
Schema files: /usr/share/openscap/schemas
Default CPE files: /usr/share/openscap/cpe
Probes: /usr/libexec/openscap

==== Inbuilt CPE names ====
Red Hat Enterprise Linux - cpe:/o:redhat:enterprise_linux
Red Hat Enterprise Linux 5 - cpe:/o:redhat:enterprise_linux:5
Red Hat Enterprise Linux 6 - cpe:/o:redhat:enterprise_linux:6
Red Hat Enterprise Linux 7 - cpe:/o:redhat:enterprise_linux:7
Community Enterprise Operating System 5 - cpe:/o:centos:centos:5
Community Enterprise Operating System 6 - cpe:/o:centos:centos:6
Community Enterprise Operating System 7 - cpe:/o:centos:centos:7
Scientific Linux 5 - cpe:/o:scientificlinux:scientificlinux:5
Scientific Linux 6 - cpe:/o:scientificlinux:scientificlinux:6
Scientific Linux 7 - cpe:/o:scientificlinux:scientificlinux:7
Fedora 16 - cpe:/o:fedoraproject:fedora:16
Fedora 17 - cpe:/o:fedoraproject:fedora:17
Fedora 18 - cpe:/o:fedoraproject:fedora:18
Fedora 19 - cpe:/o:fedoraproject:fedora:19
Fedora 20 - cpe:/o:fedoraproject:fedora:20
Fedora 21 - cpe:/o:fedoraproject:fedora:21
Fedora 22 - cpe:/o:fedoraproject:fedora:22
Fedora 23 - cpe:/o:fedoraproject:fedora:23
Fedora 24 - cpe:/o:fedoraproject:fedora:24
Fedora 25 - cpe:/o:fedoraproject:fedora:25
SUSE Linux Enterprise all versions - cpe:/o:suse:sle
SUSE Linux Enterprise Server 10 - cpe:/o:suse:sles:10
SUSE Linux Enterprise Desktop 10 - cpe:/o:suse:sled:10
SUSE Linux Enterprise Server 11 - cpe:/o:suse:sles:11
SUSE Linux Enterprise Desktop 11 - cpe:/o:suse:sled:11
SUSE Linux Enterprise Server 12 - cpe:/o:suse:sles:12
SUSE Linux Enterprise Desktop 12 - cpe:/o:suse:sled:12
openSUSE 11.4 - cpe:/o:opensuse:opensuse:11.4
openSUSE 13.1 - cpe:/o:opensuse:opensuse:13.1
openSUSE 13.2 - cpe:/o:opensuse:opensuse:13.2
openSUSE 42.1 - cpe:/o:novell:leap:42.1
openSUSE All Versions - cpe:/o:opensuse:opensuse
Red Hat Enterprise Linux Optional Productivity Applications - cpe:/a:redhat:rhel_productivity
Red Hat Enterprise Linux Optional Productivity Applications 5 - cpe:/a:redhat:rhel_productivity:5
Oracle Linux 5 - cpe:/o:oracle:linux:5
Oracle Linux 6 - cpe:/o:oracle:linux:6
Oracle Linux 7 - cpe:/o:oracle:linux:7

==== Supported OVAL objects and associated OpenSCAP probes ====
system_info                  probe_system_info           
family                       probe_family                
filehash                     probe_filehash              
environmentvariable          probe_environmentvariable   
textfilecontent54            probe_textfilecontent54     
textfilecontent              probe_textfilecontent       
variable                     probe_variable              
xmlfilecontent               probe_xmlfilecontent        
environmentvariable58        probe_environmentvariable58 
filehash58                   probe_filehash58            
inetlisteningservers         probe_inetlisteningservers  
rpminfo                      probe_rpminfo               
partition                    probe_partition             
iflisteners                  probe_iflisteners           
rpmverify                    probe_rpmverify             
rpmverifyfile                probe_rpmverifyfile         
rpmverifypackage             probe_rpmverifypackage      
selinuxboolean               probe_selinuxboolean        
selinuxsecuritycontext       probe_selinuxsecuritycontext
systemdunitproperty          probe_systemdunitproperty   
systemdunitdependency        probe_systemdunitdependency 
file                         probe_file                  
interface                    probe_interface             
password                     probe_password              
process                      probe_process               
runlevel                     probe_runlevel              
shadow                       probe_shadow                
uname                        probe_uname                 
xinetd                       probe_xinetd                
sysctl                       probe_sysctl                
process58                    probe_process58             
fileextendedattribute        probe_fileextendedattribute 
routingtable                 probe_routingtable          
symlink                      probe_symlink  

5.5 SCAPファイルの情報の表示

SCAPファイルの情報を表示するには、次のようなoscap infoコマンドを使用します。

# oscap info com.oracle.elsa-2017.xml
Document type: OVAL Definitions
OVAL version: 5.3
Generated: 2017-06-01T00:00:00
Imported: 2017-06-13T23:12:06

この出力は、ファイルcom.oracle.elsa-2017.xmlがOVAL定義ファイルであることを示します。

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

次のようにoscap infoコマンドを使用して、SCAP Security Guideなどのチェックリスト・ファイルでサポートされているプロファイルを表示できます。

# oscap info "/usr/share/xml/scap/ssg/content/ssg-ol7-xccdf.xml" 
Document type: XCCDF Checklist
Checklist version: 1.1
Imported: 2020-04-21T19:46:55
Status: draft
Generated: 2020-04-21
Resolved: true
Profiles:
	Title: DISA STIG for Oracle Linux 7
		Id: stig
Referenced check files:
	ssg-ol7-oval.xml
		system: http://oval.mitre.org/XMLSchema/oval-definitions-5
	ssg-ol7-ocil.xml
		system: http://scap.nist.gov/schema/ocil/2
	https://linux.oracle.com/security/oval/com.oracle.elsa-all.xml.bz2
		system: http://oval.mitre.org/XMLSchema/oval-definitions-5
[vagrant@localhost ~]$ 
注意

その他のプロファイルも使用可能であり、それらはssg-rhel7-*ファイルなどの別のファイル・セットに含まれています。 たとえば、その他のプロファイルを表示するには、このコマンド内のssg-ol7-xccdf.xmlssg-rhel7-xccdf.xmlに置き換えます。

この出力は、ssg-ol7-xccdf.xmlでOracle Linux 7用DISA STIG (stig)が提供されることを示しています。 プロファイルには、すべてのOracle Linuxインストールに適用される一般的なセキュリティ推奨事項と、意図されているシステム使用方法に固有のその他のセキュリティ推奨事項が含まれています。

特定のプロファイルに関する情報を取得するには、--profileオプションを指定します。

# oscap info --profile stig /usr/share/xml/scap/ssg/content/ssg-ol7-xccdf.xml
Document type: XCCDF Checklist
Profile
        Title: DISA STIG for Oracle Linux 7
        Id: stig

        Description: This profile contains configuration checks that align to
the DISA STIG for Oracle Linux V1R1.

このDISA STIGプロファイルは、公開されている、国防情報システム局(DISA)のOracle Linux向けセキュリティ技術導入ガイド(STIG)への準拠を確認するために使用できます。 詳細は、https://public.cyber.mil/stigs/を参照してください。

注意

バージョンv0.1.46-11.0.2.el7以降、DISA STIGプロファイルおよびそのチェックリスト定義は、ssg-rhel7-xccdf.xmlファイルとssg-rhel7-ds.xmlファイルでは非推奨になりました。 scap-security-guideパッケージでは、Oracle Linux V1R1用DISA STIGに合わせたプロファイルが提供されるようになりました。このプロファイルは、ssg-ol7-xccdf.xmlファイルとssg-ol7-ds.xmlファイルにあります。

Oracle Linux 7で提供されるプロファイルすべてがご使用のシステムに適しているとはかぎらないということを覚えておいてください。 ただし、それらのプロファイルを使用して、サイトのセキュリティ・ポリシーのコンプライアンスをテストする新しいプロファイルを作成できます。

5.7 OVALおよびXCCDFファイルの検証

スキーマに対してOVALまたはXCCDFファイルを検証するには、次のようにoscap validateコマンドを使用して終了コードを調査します。

# oscap oval validate com.oracle.elsa-2017.xml \
  && echo "ok" || echo "exit code = $? not ok"
ok
# oscap xccdf validate /usr/share/xml/scap/ssg/content/ssg-ol7-xccdf.xml \
  && echo "ok" || echo "exit code = $? not ok"
ok

終了コード0はファイルが有効であることを示し、1はエラーが検証を妨げていることを示し、2はファイルが無効であることを示します。 エラー・メッセージは、標準エラー出力に書き込まれます。

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

XCCDFプロファイルに対してシステムをスキャンするには、次のようにoscap xccdf evalコマンドを使用します。

# oscap xccdf eval --profile stig \
  --results /tmp/`hostname`-ssg-results.xml \
  --report /var/www/html/`hostname`-ssg-results.html \
  --cpe /usr/share/xml/scap/ssg/content/ssg-ol7-cpe-dictionary.xml \
       /usr/share/xml/scap/ssg/content/ssg-ol7-xccdf.xml
WARNING: This content points out to the remote resources. 
   Use `--fetch-remote-resources' option to download them.
WARNING: Skipping https://linux.oracle.com/security/oval/com.oracle.elsa-all.xml.bz2 file 
   which is referenced from XCCDF content
Title   Remove User Host-Based Authentication Files
Rule    no_user_host_based_files
Result  pass

Title   Remove Host-Based Authentication Files
Rule    no_host_based_files
Result  pass

Title   Uninstall rsh-server Package
Rule    package_rsh-server_removed
Result  pass

Title   Uninstall telnet-server Package
Rule    package_telnet-server_removed
Result  pass

...

この例では、ssg-ol7-cpe-dictionary.xml CPEディクショナリを使用してssg-ol7-xccdf.xmlチェックリストのstigプロファイルに対してスキャンを実行し、XML結果およびHTMLレポート・ファイルを/tmpおよび/var/www/htmlにそれぞれ出力します。 failになるプロファイルのルールでは、システムを再構成する必要がある場合があります。

図5.1に示すように、ブラウザでHTMLレポートを表示できます。

図5.1 スキャン・レポートの例

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

XCCDFプロファイルに基づいてシステムの完全セキュリティ・ガイドを作成するには、次のようにoscap xccdf generate guideコマンドを使用します。

# oscap xccdf generate guide --profile stig \
  --cpe /usr/share/xml/scap/ssg/content/ssg-ol7-cpe-dictionary.xml \
        /usr/share/xml/scap/ssg/content/ssg-ol7-xccdf.xml > /var/www/html/security_guide.html

図5.2に示すように、ブラウザでセキュリティ・ガイドを表示できます。

図5.2 サンプル・セキュリティ・ガイド

5.10 OVAL監査スキャンの実行

ULNのすべての更新情報のOVAL定義が提供されます。 これらの定義を使用して、すべての適用される更新情報がOracle Linuxシステムにインストールされていることを確認できます。 たとえば、Spacewalkにより、通常の監査スキャンをスケジュールできます。

次のOVAL定義ファイルを使用できます。

com.oracle.elsa-cve.xml

単一のELSAセキュリティ・パッチのOVAL定義ファイル。 たとえば、com.oracle.elsa-20150377.xmlはELSA-2015-0377に関連します。

com.oracle.elsa-year.xml.bz2

特定のyearにリリースされたすべてのELSAパッチのOVAL定義ファイルの圧縮されたアーカイブ。

com.oracle.else-all.xml.bz2

すべての使用可能なELSAパッチのすべての適用されるOVAL定義ファイルの圧縮されたアーカイブ。

OVAL定義ファイルをダウンロードしてシステムの監査を実行するには:

  1. 次のようにwgetまたは類似したコマンドを使用して、https://linux.oracle.com/securityから定義ファイルをダウンロードします。

    # wget https://linux.oracle.com/security/oval/com.oracle.elsa-2017.xml.bz2
  2. 圧縮されたbz2アーカイブの定義ファイルで、bzip2を使用してOVAL定義ファイルを抽出します。

    # bzip2 -d com.oracle.elsa-2017.xml.bz2
  3. 次のようにoscap oval evalを使用し、OVAL定義ファイルを使用してシステムを監査します。

    # oscap oval eval --results /tmp/elsa-results-oval.xml \
      --report /var/www/html/elsa-report-oval.html \
      /tmp/com.oracle.elsa-2017.xml 
    Definition oval:com.oracle.elsa:def:20173580: false
    Definition oval:com.oracle.elsa:def:20173579: true
    Definition oval:com.oracle.elsa:def:20173576: false
    Definition oval:com.oracle.elsa:def:20173575: false
    Definition oval:com.oracle.elsa:def:20173574: true
    Definition oval:com.oracle.elsa:def:20173567: false
    Definition oval:com.oracle.elsa:def:20173566: false
    Definition oval:com.oracle.elsa:def:20173565: true
    Definition oval:com.oracle.elsa:def:20173539: true
    Definition oval:com.oracle.elsa:def:20173538: false
    Definition oval:com.oracle.elsa:def:20173537: false
    ...
    Evaluation done.

    この例のスキャンでは、com.oracle.elsa-2017.xmlのOVAL定義を使用し、XML結果およびHTMLレポート・ファイルを/tmpおよび/var/www/htmlにそれぞれ出力します。 パッチに対してtrueの結果はシステムに適用されていないことを意味します。falseの結果は適用されていることを意味します。

    XML結果ファイルを生成し、HTMLレポートを生成しない場合、次のようにoscap oval generate reportを使用して、結果ファイルをHTMLレポートに変換できます。

    # oscap oval generate report /tmp/elsa-results-oval.xml \ 
      > /var/www/html/elsa-report-oval.html

図5.3に示すように、ブラウザでHTMLレポートを表示できます。

図5.3 OVALレポートの例

5.11 コンテナ、コンテナ・イメージおよびオフライン・ファイル・システムのスキャン

OpenSCAPには、oscap-dockerコマンドの使用によりDockerコンテナまたはコンテナ・イメージをスキャンできるユーティリティ、またはoscap-chrootコマンドの使用によりオペレーティング・システムをホストするオフライン・ファイル・システムをスキャンできるユーティリティが含まれています。 なお、これらのスキャンの実行に使用されるメカニズムが原因で、これらのツールが対応しているのは、Oracle Linux 7ベースのシステムに対するスキャンの場合のみとなります。

コンテナ・イメージおよびコンテナのスキャン

oscap-dockerコマンドを使用して、Dockerコンテナまたはコンテナ・イメージをスキャンします。 このツールでは、oscapコマンドと同様に、コンテナまたはイメージの脆弱性が評価され、セキュリティ・ポリシーへの準拠が確認されます。 このツールでは、オフライン・スキャンにより、コンテナまたはイメージ・ファイル・システムの一時的な読取り専用マウントを実行することですべての評価およびチェックが実行されます。 コンテナまたはイメージに変更が加えられることはなく、コンテナ内またはイメージ内にその他のツールが必要になることはありません。

イメージの脆弱性を、そのイメージ・バリアントに適したCVEストリームを使用してスキャンし、この情報をHTML形式で出力するには、次を実行します。

$ oscap-docker --disable-atomic image-cve ol7-image --report report.html

このコマンドを実行するときは--disable-atomicオプションを使用する必要があることを覚えておいてください。 アトミック・コンテナはOracle Linuxではサポートされていません。

XCCDFチェックリストで指定されているセキュリティ・ポリシーにイメージが準拠しているかどうかをスキャンし、結果をHTML形式で出力するには、次を実行します。

$ oscap-docker --disable-atomic image ol7-image xccdf eval \
  --fetch-remote-resources \
  --profile <profile> \
  --results results.xml \
  --report report.html \
  --cpe /usr/share/xml/scap/ssg/content/ssg-ol7-cpe-dictionary.xml \
  /usr/share/xml/scap/ssg/content/ssg-ol7-xccdf.xml

特定のコンテナをスキャンするには、サブコマンドをimageまたはimage-cveからcontainerまたはcontainer-cveに変更します。 このコマンドを実行するときは--disable-atomicオプションを使用する必要があることを覚えておいてください。 アトミック・コンテナはOracle Linuxではサポートされていません。

詳細は、oscap-docker(8)マニュアル・ページを参照してください。

オフライン・ファイル・システムのスキャン

oscap-chrootコマンドを使用して、指定したパスにマウントされているファイル・システムのオフライン・スキャンを実行します。 このツールは、Dockerとは異なる式を使用するコンテナや、仮想マシン・ディスク・ファイルなど、oscap-dockerでサポートされていないカスタム・オブジェクトのスキャンに使用できます。 このツールのオプションは、oscapコマンドに似ています。

たとえば、/mntにマウントされたファイル・システムを、OVAL定義ファイルを使用して監査するには、次を実行します。

$ oscap-chroot /mnt oval eval --results /tmp/elsa-results-oval.xml \
  --report elsa-report-oval.html \
  /tmp/com.oracle.elsa-2021.xml

詳細は、oscap-chroot(8)マニュアル・ページを参照してください。