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 のスクリプト
  • RPM
    SCAP コンテンツを他のマシンに配信する場合はカスタムの RPM を使用する方法を推奨します。 RPM パッケージはその完全性を保証するために署名を行い、 検証させることができます。 RPM のインストール、 削除、 検証はユーザーインターフェースで管理することができます。

6.2.2. 監査スキャンを行う

Red Hat Network Satellite サーバーでの OpenSCAP の統合により、 クライアントシステム上で監査スキャンを行うことができるようになります。 このセクションでは 2 種類の方法について説明しています。

手順6.1 Web インターフェースを使ったスキャン

Satellite Web インターフェースを使ってスキャンを行う場合
  1. Satellite Web インターフェースにログインします。
  2. システム目的のシステム の順でクリックします。
  3. 監査スケジュール の順でクリックします。
  4. 新規の 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」コマンドが受け取るのは限られたパラメータセットのみになります。
  5. rhn_check を実行して、 クライアントシステムで動作が正しく拾われるか確認します。
    rhn_check -vv
    

    注記

    代わりに、 rhnsdosad がクライアントシステムで実行している場合には、動作はこれらのサービスによって拾われます。 これらのサービスが実行しているか確認します。
    service rhnsd start
    
    または
    service osad start
    
スキャンの結果を表示させる方法については 「SCAP の結果を表示させる方法」 を参照してください。
Web UI を使ってスキャンをスケジュールする

図6.1 Web UI を使ってスキャンをスケジュールする

手順6.2 API を使ったスキャン

API を使った監査スキャンを実行する場合
  1. 既存するスクリプトを選択するか、 フロントエンドの 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 を使用しています。
  2. いずれかのシステムのコマンドラインインターフェースでスクリプトを実行します。 このシステムには適切な python ライブラリと xmlrpc ライブラリをインストールしておく必要があります。
  3. rhn_check を実行して、 クライアントシステムで動作が正しく拾われるか確認します。
    rhn_check -vv
    

    注記

    代わりに、 rhnsdosad がクライアントシステムで実行している場合には、動作はこれらのサービスによって拾われます。 これらのサービスが実行しているか確認します。
    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 つのスキャンのメタデータの他、 結果の一覧を表示します。
監査 ⇒ XCCDF 差分

図6.3 監査 ⇒ XCCDF 差分

スキャンの一覧 ページでアイコンをクリックすると同じようなスキャンの 差分 に直接アクセスできます。 また、 ID を指定して任意のスキャンの 差分 を取得することもできます。
比較スキャンのいずれか一つにしか表示されないアイテムは「変動」しているとみなされます。 変動アイテムは常にベージュ色で強調表示されます。 比較モードは 3 種類あります。 完全比較 は全スキャンアイテムを表示します。 変更された項目のみ は変更があったアイテムを表示します。 変更がない項目のみ は変更がないまたは同じアイテムを表示します。
監査高度な検索
以下のように、 検索ページでは指定した基準に沿ってスキャンの検索を行うことができます。
  • ルールの結果
  • 対象マシン
  • スキャンの時間枠
検索で返されるのは結果内に含まれるスキャン一覧または結果一覧のいずれかです。

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 修正済み
合計 チェック合計数
各行の先頭には、 前回行った同様のスキャンと比較した結果を示すアイコンが表示されています。 アイコンで示す最新スキャンの結果は以下のいずれかになります。
  • "RHN 一覧のチェック済み" アイコン — 前回のスキャンと比較して違いなし
  • "RHN 一覧の警告" アイコン — 偶然による違い
  • "RHN 一覧のエラー" アイコン — 深刻な違い、 前回のスキャンに比べ不合格が増加しているまたは合格が少ない
  • "RHN 一覧のチェックイン" アイコン — 比較できるスキャンが見つからなかったため、 比較は行われなかった
システムシステムの詳細監査スキャンの詳細
このページには単一スキャンの結果が表示され、 2 セクションに別れています。
  • XCCDF スキャンの詳細
    次のような項目が表示されます。
    • ファイルパスの全般情報
    • 使用されたコマンドラインの引数
    • スケジュールを行ったユーザー
    • ベンチマークの識別子とバージョン
    • プロファイルの識別子
    • プロファイルのタイトル
    • 開始と完了の時間
    • エラー出力
  • XCCDF ルールの結果
    ルールの結果では、 XCCDF ルール識別子の全一覧が表示され、 各ルール結果のタグと結果を確認することができます。 この一覧は特定の結果でフィルターをかけることができます。
システムシステムの詳細監査スケジュール
このサブタブで新規のスキャンをスケジュールすることができます。 スキャンを行うシステム上の XCCDF ドキュメントへのパスと共に追加のコマンドライン引数を与えることができます。 「これ以降にスケジュールする」のパラメータに応じて、 次にスケジュールされている Satellite サーバーとのチェックインでスキャンが行われます。 Satellite web インターフェースを使ってスケジュールを行う方法については、 本章の 手順6.1「Web インターフェースを使ったスキャン」 のセクションを参照してください。