3.4. Red Hat Quay の Clair
Clair v4 (Clair) は、静的コード分析を活用してイメージコンテンツを解析し、コンテンツに影響を与える脆弱性を報告するオープンソースアプリケーションです。Clair は Red Hat Quay にパッケージ化されており、スタンドアロンと Operator デプロイメントの両方で使用できます。エンタープライズ環境に合わせてコンポーネントを個別にスケーリングできる、非常にスケーラブルな設定で実行できます。
3.4.1. スタンドアロンの Red Hat Quay デプロイメントでの Clair のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
スタンドアロンの Red Hat Quay デプロイメントの場合、Clair を手動でセットアップできます。
手順
Red Hat Quay インストールディレクトリーに、Clair データベースデータ用の新しいディレクトリーを作成します。
mkdir /home/<user-name>/quay-poc/postgres-clairv4
$ mkdir /home/<user-name>/quay-poc/postgres-clairv4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
postgres-clairv4
ファイルに適切な権限を設定します。setfacl -m u:26:-wx /home/<user-name>/quay-poc/postgres-clairv4
$ setfacl -m u:26:-wx /home/<user-name>/quay-poc/postgres-clairv4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、Clair Postgres データベースをデプロイします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Clair デプロイメント用に Postgres
uuid-ossp
モジュールをインストールします。podman exec -it postgresql-clairv4 /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\"" | psql -d clair -U postgres'
$ podman exec -it postgresql-clairv4 /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\"" | psql -d clair -U postgres'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
CREATE EXTENSION
CREATE EXTENSION
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Clair では、
uuid-ossp
拡張機能を Postgres データベースに追加する必要があります。適切な権限を持つユーザーの場合は、拡張機能を作成すると、Clair によって自動的に追加されます。ユーザーが適切な権限を持っていない場合は、Clair を開始する前に拡張機能を追加する必要があります。拡張機能が存在しない場合は、Clair が起動しようとすると、
ERROR: Please load the "uuid-ossp" extension.(SQLSTATE 42501)
エラーが発生します。実行中の場合は、
Quay
コンテナーを停止し、設定モードで再始動して、既存の設定をボリュームとしてロードします。sudo podman run --rm -it --name quay_config \ -p 80:8080 -p 443:8443 \ -v $QUAY/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:{productminv} config secret
$ sudo podman run --rm -it --name quay_config \ -p 80:8080 -p 443:8443 \ -v $QUAY/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:{productminv} config secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 設定ツールにログインし、UI の Security Scanner セクションで Enable Security Scanning をクリックします。
-
quay-server
システムでまだ使用されていないポート (8081
など) を使用して、Clair の HTTP エンドポイントを設定します。 Generate PSK ボタンを使用して、事前共有キー (PSK) を作成します。
セキュリティースキャナー UI
-
Red Hat Quay の
config.yaml
ファイルを検証してダウンロードし、設定エディターを実行しているQuay
コンテナーを停止します。 新しい設定バンドルを Red Hat Quay インストールディレクトリーに展開します。次に例を示します。
tar xvf quay-config.tar.gz -d /home/<user-name>/quay-poc/
$ tar xvf quay-config.tar.gz -d /home/<user-name>/quay-poc/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Clair 設定ファイル用のフォルダーを作成します。次に例を示します。
mkdir /etc/opt/clairv4/config/
$ mkdir /etc/opt/clairv4/config/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Clair 設定フォルダーに移動します。
cd /etc/opt/clairv4/config/
$ cd /etc/opt/clairv4/config/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のように、Clair 設定ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Clair の設定形式の詳細は、Clair 設定リファレンス を参照してください。
コンテナーイメージを使用して Clair を起動し、作成したファイルから設定にマウントします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記複数の Clair コンテナーを実行することもできます。ただし、単一のコンテナーを超えるデプロイシナリオでは、Kubernetes や OpenShift Container Platform などのコンテナーオーケストレーターを使用することを強く推奨します。
3.4.2. Clair のテスト リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、スタンドアロンの Red Hat Quay デプロイメントまたは OpenShift Container Platform Operator ベースのデプロイメントで Clair をテストします。
前提条件
- Clair コンテナーイメージをデプロイしている。
手順
次のコマンドを入力して、サンプルイメージをプルします。
podman pull ubuntu:20.04
$ podman pull ubuntu:20.04
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、レジストリーにイメージをタグ付けします。
sudo podman tag docker.io/library/ubuntu:20.04 <quay-server.example.com>/<user-name>/ubuntu:20.04
$ sudo podman tag docker.io/library/ubuntu:20.04 <quay-server.example.com>/<user-name>/ubuntu:20.04
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力して、イメージを Red Hat Quay レジストリーにプッシュします。
sudo podman push --tls-verify=false quay-server.example.com/quayadmin/ubuntu:20.04
$ sudo podman push --tls-verify=false quay-server.example.com/quayadmin/ubuntu:20.04
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - UI から Red Hat Quay デプロイメントにログインします。
- リポジトリー名 (quayadmin/ubuntu など) をクリックします。
ナビゲーションウィンドウで、Tags をクリックします。
レポートの概要
イメージレポート (例: 45 medium) をクリックして、より詳細なレポートを表示します。
レポートの詳細
注記場合によっては、Clair はイメージに関する重複レポートを表示します (例:
ubi8/nodejs-12
またはubi8/nodejs-16
)。これは、同じ名前の脆弱性が異なるパッケージに存在するために発生します。この動作は Clair 脆弱性レポートで予期されており、バグとしては扱われません。
3.4.3. 脆弱性情報データベース (National Vulnerability Database) の CVE 評価 リンクのコピーリンクがクリップボードにコピーされました!
Clair v4.2 の時点で、Common Vulnerability Scoring System (CVSS) 強化データが Red Hat Quay UI で表示できるようになりました。さらに、Clair v4.2 は、検出された脆弱性について National Vulnerability Database から CVSS スコアを追加します。
今回の変更により、脆弱性の CVSS スコアがディストリビューションスコアの 2 レベル以内である場合、Red Hat Quay UI はデフォルトでディストリビューションのスコアを提示します。以下に例を示します。
これは以前のインターフェイスとは異なり、以下の情報のみを表示します。