Red Hat Training
A Red Hat training course is available for Red Hat Satellite
6.2. Red Hat Network Satellite 内の OpenSCAP
6.2.1. 前提条件
パッケージに関する要件
SCAP には次のようなパッケージが必要です。
- サーバー用: Red Hat Network Satellite 5.5
- クライアント用: spacewalk-oscap パッケージ (RHN Tools 子チャンネルから取得可)
エンタイトルメントに関する要件
スキャンのスケジュールに Management エンタイトルメントが必要です。
その他の要件
クライアント用: XCCDF コンテンツのクライアントマシン群への配信
クライアントのマシンへの XCCDF コンテンツの配信は次の方法で行うことができます。
- 従来の方法 (CD、 USB、 nfs、 scp、 ftp)
- Satellite のスクリプト
- RPMSCAP コンテンツを他のマシンに配信する場合はカスタムの RPM を使用する方法を推奨します。 RPM パッケージはその完全性を保証するために署名を行い、 検証させることができます。 RPM のインストール、 削除、 検証はユーザーインターフェースで管理することができます。
6.2.2. 監査スキャンを行う
Red Hat Network Satellite サーバーでの OpenSCAP の統合により、 クライアントシステム上で監査スキャンを行うことができるようになります。 このセクションでは 2 種類の方法について説明しています。
手順6.1 Web インターフェースを使ったスキャン
Satellite Web インターフェースを使ってスキャンを行う場合
- Satellite Web インターフェースにログインします。
- システム → 目的のシステム の順でクリックします。
- 監査 → スケジュール の順でクリックします。
新規の XCCDF スキャンをスケジュール
のフォームを入力します。- コマンドラインの引数: このフィールドには oscap ツール用に引数を追加することができます。 使用できる引数は以下の 2 種類のみです。
--profile PROFILE
— XCCDF ドキュメントから特定のプロファイルを選択します。 プロファイルは XCCDF の xml ファイルで確定され、Profile id
タグを使ってチェックできます。 例を示します。Profile id="RHEL6-Default"
注記
OpenSCAP には --profile コマンドライン引数を付けないとスキャンが失敗してしまうバージョンがあります。--skip-valid
— 入力や出力のファイルの検証を行いません。 XCCDF コンテンツが適切な形式で構成されていない場合はこの引数を選ぶとファイル検証のプロセスを回避することができます。コマンドライン引数を何も渡さないとデフォルトのプロファイルが使用されます。 - XCCDF ドキュメントへのパス: 必須フィールドになります。
path
パラメータでクライアントシステム上のコンテンツの場所をポイントします。 たとえば、/usr/local/scap/dist_rhel6_scap-rhel6-oval.xml
などです。警告
xccdf コンテンツは検証が行われたあと、 リモートシステムで実行されます。 無効な引数を指定すると spacewalk-oscap による検証や実行が失敗する可能性があります。 セキュリティ対策上、 「osccap xccdf eval」コマンドが受け取るのは限られたパラメータセットのみになります。
rhn_check
を実行して、 クライアントシステムで動作が正しく拾われるか確認します。rhn_check -vv
注記
代わりに、rhnsd
やosad
がクライアントシステムで実行している場合には、動作はこれらのサービスによって拾われます。 これらのサービスが実行しているか確認します。service rhnsd start
またはservice osad start
スキャンの結果を表示させる方法については 「SCAP の結果を表示させる方法」 を参照してください。
図6.1 Web UI を使ってスキャンをスケジュールする
手順6.2 API を使ったスキャン
API を使った監査スキャンを実行する場合
- 既存するスクリプトを選択するか、 フロントエンドの API
system.scap.scheduleXccdfScan
を使ってシステムスキャンのスケジュールを行うスクリプトを作成します。スクリプトの例#!/usr/bin/python client = xmlrpclib.Server('https://spacewalk.example.com/rpc/api') key = client.auth.login('username', 'password') client.system.scap.scheduleXccdfScan(key, 1000010001, '/usr/local/share/scap/usgcb-rhel5desktop-xccdf.xml', '--profile united_states_government_configuration_baseline')
場所:- 1000010001 は
system ID (sid)
です。 /usr/local/share/scap/usgcb-rhel5desktop-xccdf.xml
はパスのパラメータです。 クライアントシステム上のコンテンツの場所をポイントします。 この場合、/usr/local/share/scap
ディレクトリ内の USGSB コンテンツと仮定しています。--profile united_states_government_configuration_baseline
は oscap ツールの追加引数を表します。 この場合、 USCFGB を使用しています。
- いずれかのシステムのコマンドラインインターフェースでスクリプトを実行します。 このシステムには適切な python ライブラリと xmlrpc ライブラリをインストールしておく必要があります。
rhn_check
を実行して、 クライアントシステムで動作が正しく拾われるか確認します。rhn_check -vv
注記
代わりに、rhnsd
やosad
がクライアントシステムで実行している場合には、動作はこれらのサービスによって拾われます。 これらのサービスが実行しているか確認します。service rhnsd start
またはservice osad start
6.2.3. SCAP の結果を表示させる方法
終了したスキャンの結果を表示させる方法は 3 通りあります。
- Web インタフェースを使う方法、 スキャンを実行するとその結果はシステムの 監査 タブに表示されるはずです。 このページについては 「OpenSCAP Satellite のページ」 で説明しています。
- ハンドラーの
system.scap
で API 関数を使う方法 - Satellite の
spacewalk-reports
ツールを使う方法、 次のコマンドを実行します。# /usr/bin/spacewalk-reports system-history-scap # /usr/bin/spacewalk-reports scap-scan # /usr/bin/spacewalk-reports scap-scan-results
6.2.4. OpenSCAP Satellite のページ
次のセクションでは、 OpenSCAP を含む Red Hat Network Satellite Web UI 内のタブについて説明していきます。
6.2.4.1. 監査
上部ナビゲーションバーの 監査 タブは Red Hat Network Satellite Server 5.5 の OpenSCAP 機能に関する包括的なページになります。 このタブをクリックすると、 完了した OpenSCAP のスキャンの表示、 検索、 そして比較などを行うことができます。
- 監査 → 全スキャン
- 全スキャン は、 監査 タブを選択すると表示されるデフォルトのページです。 このページでは、 操作しているユーザーが表示できるパーミッションを有している OpenSCAP スキャンで完了したスキャンをすべて表示します。 スキャンのパーミッションはシステムのパーミッションからきています。
図6.2 監査 ⇒ 全スキャン
各スキャンに対して次の情報が表示されます。- システム
- スキャンの対象システム
- XCCDF プロファイル
- 評価を行ったプロファイル
- 完了
- 完了した時間
- 合格
- 合格したルール数 (評価の結果が合格または修正済みになる場合そのルールは合格とみなされます)
- 不合格
- 不合格になったルール数 ( 評価の結果が失敗になる場合そのルールは不合格とみなされます)
- 不明
- 評価に失敗したルール数 (評価の結果がエラー、 または不明、 チェックされていませんなどになる場合そのルールは不明とみなされます)
また、 XCCDF ルールの評価では 情報、 適用できません、 選択されていません のような状態も返します。 このような場合、 ルールはこのページの統計には含まれません。 詳細については システムの詳細 → 監査 をご覧ください。 - 監査 → XCCDF 差分
- XCCDF 差分は、 2 つの XCCDF スキャンの比較を視覚化するアプリケーションです。 2 つのスキャンのメタデータの他、 結果の一覧を表示します。
図6.3 監査 ⇒ XCCDF 差分
スキャンの一覧 ページでアイコンをクリックすると同じようなスキャンの差分
に直接アクセスできます。 また、 ID を指定して任意のスキャンの差分
を取得することもできます。比較スキャンのいずれか一つにしか表示されないアイテムは「変動」しているとみなされます。 変動アイテムは常にベージュ色で強調表示されます。 比較モードは 3 種類あります。 完全比較 は全スキャンアイテムを表示します。 変更された項目のみ は変更があったアイテムを表示します。 変更がない項目のみ は変更がないまたは同じアイテムを表示します。 - 監査 → 高度な検索
- 以下のように、 検索ページでは指定した基準に沿ってスキャンの検索を行うことができます。
- ルールの結果
- 対象マシン
- スキャンの時間枠
図6.4 監査 ⇒ 高度な検索
検索で返されるのは結果内に含まれるスキャン一覧または結果一覧のいずれかです。
6.2.4.2. システム → システムの詳細 → Audit
このタブとサブタブでは、 システムのコンプライアンススキャンをスケジュールしたり表示させたりすることができます。 スキャンは NIST 標準の SCAP (Security Content Automation Protocol) を実装する SCAP ツールで行います。 システムのスキャンを行う場合は、 SCAP コンテンツの準備が整い、 「前提条件」 に記載されている要件がすべて満たされていることを確認してください。
- システム → システムの詳細 → 監査 → スキャンの一覧
図6.5 システム ⇒ システムの詳細 ⇒ 監査 ⇒ スキャンの一覧のスキャン結果
このサブタブにはシステム上で完了した全スキャンの要約が表示されます。 コラムの詳細は以下の通りです。表6.1 OpenSCAP スキャンのラベル
コラムのラベル 定義 Xccdf のテスト結果 スキャンの結果詳細へのリンクになっているスキャンテストの結果の名前 完了 スキャンが終了した正確な時間 コンプライアンス 標準的な使用に基づくコンプライアンスの加重のない合格/不合格の配分 P 合格のチェック数 F 不合格のチェック数 E スキャン中に発生したエラー数 U 不明 N このマシンには適用不可 K チェックされていない S 選択されていない I 情報 X 修正済み 合計 チェック合計数 各行の先頭には、 前回行った同様のスキャンと比較した結果を示すアイコンが表示されています。 アイコンで示す最新スキャンの結果は以下のいずれかになります。- — 前回のスキャンと比較して違いなし
- — 偶然による違い
- — 深刻な違い、 前回のスキャンに比べ不合格が増加しているまたは合格が少ない
- — 比較できるスキャンが見つからなかったため、 比較は行われなかった
- システム → システムの詳細 → 監査 → スキャンの詳細
- このページには単一スキャンの結果が表示され、 2 セクションに別れています。
- XCCDF スキャンの詳細次のような項目が表示されます。
- ファイルパスの全般情報
- 使用されたコマンドラインの引数
- スケジュールを行ったユーザー
- ベンチマークの識別子とバージョン
- プロファイルの識別子
- プロファイルのタイトル
- 開始と完了の時間
- エラー出力
- XCCDF ルールの結果ルールの結果では、 XCCDF ルール識別子の全一覧が表示され、 各ルール結果のタグと結果を確認することができます。 この一覧は特定の結果でフィルターをかけることができます。
- システム → システムの詳細 → 監査 → スケジュール
- このサブタブで新規のスキャンをスケジュールすることができます。 スキャンを行うシステム上の XCCDF ドキュメントへのパスと共に追加のコマンドライン引数を与えることができます。 「
これ以降にスケジュールする
」のパラメータに応じて、 次にスケジュールされている Satellite サーバーとのチェックインでスキャンが行われます。 Satellite web インターフェースを使ってスケジュールを行う方法については、 本章の 手順6.1「Web インターフェースを使ったスキャン」 のセクションを参照してください。