2015年6月22日

Red Hat Enterprise Linuxのセキュリティ対応に OpenSCAPを活用しよう

https://oss.sios.com/redhat-ch/blog/openscap_intro に投稿したものの再掲です。
「システムに既知の脆弱性や問題のある設定がないかチェックをしよう」というとき、あなたならどうしますか? 本稿ではセキュリティ対応の自動化のためRHELに最近導入されたOpenSCAPおよびSCAP Security Guideを紹介します。

セキュリティ対応、どうしてますか?

「システムに既知の脆弱性や問題のある設定がないかチェックをしよう」というとき、あなたならどうしますか? 緊急の対策については、文書をもとに手作業で確認するケースも多いかと思います。しかし組織内での恒常的なセキュリティ対応のためには、自動化が必要になります。
本稿ではセキュリティ対応の自動化のためRHELに導入されたソフトウェアを紹介します。

SCAP(Security Content Automation Protocol)

アメリカ政府ではあらゆるシステムにセキュリティ対応(発見・対策)をおこなう必要があり、これを自動化・定型化するための仕組みが作られてきました。SCAPはNIST(National Institute of Standards and Technology)により開発された、情報セキュリティ対策の自動化と標準化のための規格です。前提となる各種のID策定、セキュリティ上の問題の検出と対策などを記述するフォーマットなどを規定しています。
SCAPの一環として、製品についてのID(CPE)、 脆弱性についてのID(CVE)、設定についてのID(CCE), 脆弱性の深刻さのスコアづけ(CVSS)、自動チェックのための言語(OVAL)、チェックリストのフォーマット(XCCDF)などが標準化されています。脆弱性情報などでCVEやCVSSの名前を見たことがある方も多いのではないかと思います。
OVAL規格では各種のOSやアプリケーションに対応しており、テスト項目を「ファイルや設定、パッケージなどの検査項目」と「どういう状態になっているか」の組み合わせで記載して専用の処理系によって自動的に検査することができるようになっています。
SCAPについて詳しくはIPAのSCAP概説ページをごらんください。関連する規格についても紹介がされています。Red Hat製品についても従来からアップデート情報をOVALフォーマットで提供しています
この記事では、このSCAPに関連した以下の3つのソフトウェアを紹介します。
  • XCCDFまたはOVAL形式のファイルを処理するOpenSCAP
  • XCCDFフォーマットで作成された包括的なチェックリストであるSCAP Security Guide
  • XCCDFフォーマットのチェックリストを必要にあわせてカスタマイズするSCAP Workbench

OpenSCAP

OpenSCAPは、SCAPを実装しているオープンソースのプロジェクトで、OpenSCAP 1.0.8 でSCAP 1.2の認証をNISTから受けています。OpenSCAPはOVALまたはXCCDFで記述されたチェックリストと組織にあわせたカスタマイズにしたがって、実際のシステムを検証してレポートを作成します。一部の項目については自動的な対策も可能です。
OpenSCAPの利用方法のイメージはドキュメントに、DISAが公開しているガイドを利用してチェックを行う例などがあります。OpenSCAPはRed Hat Enterprise Linux の5.7および6.0から同梱されています。

report_sample.png
OpenSCAPで出力されるレポート例

SCAP Security Guide

SCAP Security Guide は、Fedora, Java, Red Hat Enterprise Linux 5, 6, 7, OpenStack, JBoss Enterprise Application Server 5, JBossFuse6 のセキュリティについてついてのガイドと関連する検証メカニズムをXCCDF形式で提供しているプロジェクトです。

SCAP Security Guide内には「/var/logを別のパーティションにする」といった多数のチェック項目と説明、関連するIDや規格文書などへのリファレンス、自動でチェックや修正が可能なものについてはその手順が含まれます。これらの項目から組織のポリシーにあわせて選択してカスタマイズしたチェックリストを作ります。OpenSCAPはこのチェックリストを自動でチェックしてレポートを生成します。オプションによっては自動的な修正もおこないます。
openscap.png

このプロジェクトは2011年にRHEL6についての高品質なセキュリティガイドを作成するためのNSAとRed Hatの共同作業からはじまり、その後カバーする範囲や参加者を増やしつつ成長しています。RHEL 7.1からSCAP Security Guideが同梱されるようになりましたので「SCAP Security GuideをSCAP WorkbenchでカスタマイズしたチェックリストをOpenSCAPで自動的に確認し、レポートを作成する」プロセスの全体をRed Hatがサポートできるようになりました。

SCAP Workbench

SCAP WorkbenchはXCCDF内でのチェック項目を組織にあわせて選択・調整したプロファイルを作り、ローカルまたはリモートの環境をチェックする作業を簡単にするためのGUIツールです。RHEL 7.1からはサポート対象として同梱されています。

Screenshot_rhel7.1_2015-06-15_21:39:31.png
Screenshot_rhel7.1_2015-06-15_21:41:19.png

Red Hat Satelliteからの管理

Red Hat Satelliteから管理対象になっている複数台のRHELに対してOpenSCAPを実行してレポートを蓄積します。監査結果の概要や履歴を確認したり、同一のスキャンを行って前回との差分を確認するなどの機能が提供されます。以下はRed Hat Satellite 5.7でのスキャン結果概要画面の例です。

Red_Hat_Satellite_-_システム_-_システム_-_監査_-_スキャンの一覧_-_2015-06-15_22.01.17.png

関連資料


RHEL 7.0時点のもので現在とは多少見た目がちがいますが紹介ビデオがあります

Red Hat Software Collections 2.0 とは

RHEL上で新しいソフトウェアを利用したい!

Red Hat Enterprise Linux は初期バージョンでリリースしたソフトウェアについて10年間基本的に同じバージョンを維持します。
これは多くの場合に企業ユーザにとってうれしいポリシーですが、新しいソフトウェアを利用したい時もあります。

特にupstreamの開発が早いソフトウェアは3年もすると時代遅れになり、5年も前のバージョンだとあれもこれも使えないという状態になってしまいます。

開発ツールについても新しい言語仕様への対応、新CPUの命令セットへ対応、最適化の強化などで新しいバージョンを利用したいという声がありました。

Red Hat Software Collections の登場

これらの問題に対する解として、Red HatではRed Hat Software Collections を提供しています。
これは今までのadd-on製品などと異なり、以下のような特徴があります。

    Red Hat Enterprise Linux のライフサイクルと独立して、新しいソフトウェアコンポーネントを追加・リタイアさせます。
        具体的にはRHEL の10年間のサポートライフサイクルに対してSoftware Collectionsは一部の例外を除いて3年間のライフサイクルとなります。
    Red Hat Enterprise Linux に同梱されているソフトウェアと競合しないよう工夫されています。
        たとえば Pythonのバージョン3.3 をRHEL 6に導入しようとすると、多数の競合が発生してしまいます。
        Software Collectionsでは、通常とは異なるディレクトリにインストールする仕組みを標準化することで、競合を防ぎつつ便利に利用できるようにしています。

Red Hat Software Collections 2.0

Red Hat Software Collections 2.0 (以下RHSCL 2.0)は 2015年6月に出荷されました。
Red Hat Enterprise Linux 6 および 7 で利用できるソフトウェアを提供しています。
UpstreamにあたるSoftware Collectionsプロジェクト https://www.softwarecollections.org/en/ では、FedoraやCentOSなどで利用できるリポジトリが公開されています。自作のコレクションを追加することもできます。

RHSCL 2.0に含まれる主要なソフトウェアを紹介します。

言語処理系:

    gcc, gdbなどCやfortranの開発環境を含むRed Hat Developer Toolset
    Perl 5.16.3, 5.20.1
    PHP 5.4.40, 5.5.21, 5.6.5
    Python 2.7.8, 3.3.2, 3.4.2
    Ruby 1.9.3, 2.0.0, 2.2.2
    V8 3.14.5.10

Webサーバ:

    nginx 1.6.2
    Apache httpd 2.4.12
    Ruby on Rails 4.0.2, 4.1.5
    Node.js 0.10
    Passenger 4.0.50

データベース:

    MariaDB 5.5.37, 10.0.17
    MongoDB 2.4.9, 2.6.9
    MySQL 5.5.37, 5.6.24
    PostgreSQL 9.2.8, 9.4.1

その他にもGitなどの開発者むけツールが含まれています。

Red Hat Software Collections を使ってみよう

利用の前提

RHSCLは特に追加の費用はかかりません。通常のRed Hat Enterprise Linux 6 または7 を導入されていると、RHSCLを入手することができます。レッドハットによる直接のサポートを受けている場合はサポート対象でもあります。OEM版をご利用の場合は、OEM各社によりサポートポリシーがかわりますのでご注意ください。

購入時期によって、利用できるよう設定されていない場合があります。 詳細についてはこちらをご確認ください。

リポジトリの登録と導入


Software CollectionsはRed HatのカスタマーポータルにRHELを直接接続するか、Red Hat Satellite経由で接続することで利用できます。カスタマーポータルから個別のパッケージをダウンロードすることはできませんのでご注意ください。

リポジトリを登録します。RHSCLの1.xと2.0は同じリポジトリを利用しますので、1.xを利用していた方は登録しなおす必要はありません。

# subscription-manager repos --enable rhel-server-rhscl-7-rpms 
# yum install python33


RHSCLを導入すると、sclコマンドにより環境を切りかえられるようになります。

$ scl enable python33 bash $ python Python 3.3.2 (default, Mar 20 2014, 18:55:17) [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

Red Hat Software Collections のサポート


RHSCLのサポート期間はRHELのサポート期間と独立しています。RHEL 6やRHEL 7のサポートが続いていても RHSCLのサポートは独立して切れてしまう点に注意が必要です。

RHSCL 2.0 には同じソフトウェアの複数バージョンが含まれています。この中には RHSCL 1.xからひきつづいて提供しされているものが存在しています。

登場時期によりサポート終了期間がことなります。基本的にはRHSCL 1.xで登場したものは2016年10月まで、RHSCL 2.0で登場したものは 2018年4月までというように各コンポーネントごとにリリースから3年間(Developer Toolsetは2年間)のサポート期間が設定されています。そしてRHSCLの1.xと2.xでリポジトリは同一です。

各コンポーネントについてサポート期間一覧が案内されています。