Vulnerability Advisorでのイメージ・セキュリティーの管理
Vulnerability Advisorは、 IBM Cloud® Container Registry の一部として提供されます。 Vulnerability Advisorは、IBM やサード・パーティーによって提供されるか、組織のレジストリー名前空間に追加された、コンテナー・イメージのセキュリティー状況を検査します。
Vulnerability Advisorは IBM Cloud Container Registry のセキュリティ管理を提供します。 Vulnerability Advisorは、推奨される修正とベストプラクティスを含むセキュリティステータスレポートを生成します。
イメージを名前空間に追加すると、Vulnerability Advisorによってイメージが自動的にスキャンされ、セキュリティー問題や潜在的な脆弱性が検出されます。 セキュリティー問題が検出されると、報告された脆弱性の解決に役立つ指示が提供されます。
Vulnerability Advisorによって問題が検出されれば、このイメージのデプロイの非推奨を指示する判断になります。 このイメージのデプロイを選択した場合、このイメージからデプロイされたコンテナーには、コンテナーの攻撃や侵害に使用される可能性のある既知の問題が含まれます。 判断は、指定した適用除外項目に基づいて調整されます。
Vulnerability Advisor、報告されたセキュリティ問題を修正することで、 IBM Cloud インフラの安全性を確保することができます。
Portierisを使用して、 Vulnerability Advisor が発見した問題を含むイメージの展開をブロックすることは非推奨です。
Vulnerability Advisor について
Vulnerability Advisorはイメージをセキュアにするための機能を提供します。
バージョン4では以下の機能が利用できる:
- イメージをスキャンして問題がないか調べる。
- IBM Cloud Kubernetes Service に特化したセキュリティ対策に基づく評価レポートを作成する。
- 報告された 脆弱性のあるパッケージ の修正方法に関する指示を、その報告書で提供する。
- フラグが立てられた問題がユース・ケースに適用されない場合、マークするアカウント・レベル、名前空間 レベル、リポジトリー レベル、または タグ レベルのレポートに免除ポリシーを適用します。
Container Registry ダッシュボードの 画像 タブの セキュリティー状況 列には、各イメージに関する問題の数が表示されます。 問題の詳細を確認するには、 セキュリティ・ステータス欄のリンクをクリックしてください。
Vulnerability Advisorのダッシュボードには、イメージのセキュリティーの概要と評価が示されます。 Vulnerability Advisorのダッシュボードについて詳しくは、脆弱性レポートの検討を参照してください。
暗号化された画像は Vulnerability Advisor でスキャンされない。
データ保護
アカウント内のイメージとコンテナーをスキャンしてセキュリティー問題を探すために、Vulnerability Advisorは以下の情報を収集、保管、および処理します。
- ID、説明、およびイメージ名 (レジストリー、名前空間、リポジトリー名、およびイメージ・タグ) が含まれたフリー・フォームのフィールド
- 構成ファイルのファイル・モードと作成タイム・スタンプに関するメタデータ
- イメージおよびコンテナー内のシステムとアプリケーションの構成ファイルの内容
- インストールされているパッケージとライブラリー (バージョンを含む)
上記のリストに示された、Vulnerability Advisorが処理するフィールドや場所に個人情報を入れないでください。
データ・センター・レベルで集約されたスキャン結果は処理され、サービスを運用および改善するための匿名メトリックが生成されます。
バージョン4では、画像が最初に Container Registry レジストリにプッシュされたときにインデックスが作成され、そのインデックスレポートがデータベースに保存されます。 Vulnerability Advisorが照会されると、画像インデックスレポートが取得され、脆弱性評価が作成される。 このアクションは、 Vulnerability Advisorがクエリされるたびに動的に発生します。 そのため、削除が必要なスキャン結果が事前に生成されることはない。 ただし、画像インデックス・レポートは、レジストリから画像が削除されてから30日以内に削除される。
脆弱性のタイプ
脆弱なパッケージ
Vulnerability Advisorは、サポートするオペレーティング・システムを使用しているイメージ内の脆弱なパッケージを検査し、その脆弱性に関連したセキュリティー上の注意事項へのリンクを提供します。
スキャン結果に、既知の脆弱性問題が含まれているパッケージが表示されます。 次の表にリストされた Docker イメージ・タイプに対して公開されるセキュリティー上の注意事項を使用して、潜在的な脆弱性は毎日更新されます。 脆弱パッケージがスキャンに合格するようにするには通常、脆弱性の修正が反映された新しいバージョンのパッケージが必要です。 同じパッケージに複数の脆弱性がリストされることがあり、その場合は、1 回のパッケージの更新で複数の脆弱性を修正できます。
Vulnerability Advisorは、ディストリビュータによってパッケージの修正プログラムが公開された場合にのみ、脆弱性を返します。 まだ修正されていない、または修正される予定がない宣言された脆弱性は、 Vulnerability Advisorでは報告されません。 したがって、 Vulnerability Advisorが脆弱性を報告しなくても、画像にはまだリスクがあるかもしれません。
バージョン4では、画像が最初にプッシュされたときにインデックスが作成されます。 その後、 Vulnerability Advisorがその画像について問い合わせを受けるたびに、脆弱性評価が計算されます。 画像はタグがある場合のみスキャンされる。
以下の表は、 Vulnerability Advisor が脆弱性のあるパッケージをチェックする Docker ベースイメージの対応状況を示しています。
Vulnerability Advisorは、プラットフォームのベンダーにより現在サポートされているプラットフォームのリリースのみをサポートしています。
Docker 基本イメージ | サポートされるバージョン | セキュリティー上の注意事項のソース |
---|---|---|
Alpine | ベンダーのセキュリティサポートがあるすべての安定版。 エッジもサポートしている。 | Alpineの SecDB データベース。 |
Debian | ベンダーのセキュリティサポートがあるすべての安定版。
|
Debian セキュリティバグトラッカー。 |
GoogleContainerTools ディストロ・レス | ベンダーのセキュリティサポートがあるすべての安定版。 | GoogleContainerTools ディストロ・レス |
Red Hat® Enterprise Linux® (RHEL) | RHEL/UBI 7、RHEL/UBI 8、RHEL/UBI 9 | Red Hat セキュリティデータAPI。 |
Ubuntu | ベンダーのセキュリティサポートがあるすべての安定版。 | Ubuntu CVE Tracker。 |
もし、上記の表にあるオペレーティングシステムディストリビューションをベースにしたイメージを使用している場合で、ベンダーがサポートしていないバージョンであり、セキュリティフィードデータが利用できない場合、例えば、 Debian 10以前の場合、 Vulnerability Advisor はお客様のイメージに対して No issues
と報告する可能性があります。
構成の問題
設定の問題は、 Vulnerability Advisor バージョン 4 ではサポートされていません。
Vulnerability Advisorのバージョン設定
バージョン4の結果を取得するには、次の ibmcloud cr va-version-set
コマンドを実行する。 有効な値は v4
だけです。
ibmcloud cr va-version-set v4
あるいは、環境変数 va_version
を設定し、使用する Vulnerability Advisorのバージョンを指定することもできる。 有効な値は v4
だけです。
無効なバージョンの Vulnerability Advisor Vulnerability Advisorを設定しようとすると、エラーが表示されます。
脆弱性レポートの検討
イメージをデプロイする前に、そのイメージのVulnerability Advisor・レポートを検討して、脆弱性の影響を受けるパッケージ、コンテナーやアプリケーションの非セキュアな設定の詳細を知ることができます。
また、イメージが組織のポリシーに準拠しているかどうかを確認することもできます。
発見された問題に対処しなければ、その問題はそのイメージを使用しているコンテナのセキュリティに影響を与える可能性がある。 コンテナランタイム環境でエンフォースメントを使用している場合、ポリシーによってすべての問題が除外されない限り、そのイメージのデプロイが妨げられる可能性があります。
イメージが組織のポリシーによって設定されている要件を満たしていない場合は、イメージをデプロイする前に、その要件を満たすようにイメージを構成する必要があります。 組織のポリシーを表示および変更する方法について詳しくは、組織の適用除外項目ポリシーの設定を参照してください。
コンソールを使用した脆弱性レポートの確認
IBM Cloud コンソールを使用して、 Container Registry のネームスペースに保存されている Docker 画像のセキュリティを確認できます。
-
IBM Cloud にログインします。
-
「ナビゲーション・メニュー」 アイコンをクリックして、 「コンテナー・レジストリー」 をクリックします。
-
「イメージ」 をクリックします。 画像の一覧と各画像のセキュリティステータスは、 [画像] テーブルに表示されます。
-
latest
タグが付いたイメージのレポートを表示するには、そのイメージの行をクリックします。 そのイメージのデータが表示された 「イメージの詳細 (Image Details)」 タブが開きます。 リポジトリー内にlatest
タグが存在しない場合、最新のイメージが使用されます。 -
セキュリティー状況 列に問題が表示されている場合、その問題について調べるには、 タイプ別の問題 タブをクリックします。 脆弱性テーブルが表示されます。
-
脆弱性の表。 この表は、各問題の脆弱性ID、その問題のポリシーステータス、影響を受けるパッケージ、問題の解決方法を示しています。 その問題の詳細を表示するには、行を展開します。 その問題のベンダーによるセキュリティー上の注意事項へのリンクを含む、その問題の要約が表示されます。 既知の脆弱性問題が含まれているパッケージをリストします。
脆弱性のタイプにリストされた Docker イメージ・タイプに対して公開されるセキュリティー上の注意事項を使用して、リストは毎日更新されます。 脆弱パッケージがスキャンに合格するようにするには通常、脆弱性の修正が反映された新しいバージョンのパッケージが必要です。 同じパッケージに複数の脆弱性が含まれていることがあり、この場合、1つのパッケージのアップデートで複数の問題を修正することができる。 セキュリティー上の注意事項のコードをクリックして、パッケージに関する詳細情報と、パッケージを更新するための手順を表示してください。
-
-
レポートに示された各問題の修正処置を実行し、イメージを再ビルドします。
CLI の使用による、脆弱性レポートの検討
CLI を使用して、IBM Cloud Container Registry で名前空間に保管された Docker イメージのセキュリティーを検討できます。
-
IBM Cloud アカウント内のイメージをリストします。 保管されている名前空間に関係なくすべてのイメージのリストが返されます。
ibmcloud cr image-list
-
SECURITY STATUS 列で状況を確認します。
No Issues
: セキュリティー問題は見つかりませんでした。<X> Issues
<X>
は問題の数である。Scanning
: イメージはスキャン中で、最終的な脆弱性の状況は決定されていません。Unsupported OS
スキャンの結果、サポートされているオペレーティングシステム(OS)ディストリビューションは見つからなかった。
-
ステータスの詳細を見るには、以下のコマンドを実行して Vulnerability Advisor レポートを確認する。 ここで、
REGION
はリージョン、MY_NAMESPACE
は名前空間、MY_IMAGE
はイメージ、TAG
はタグです。ibmcloud cr va REGION.icr.io/MY_NAMESPACE/MY_IMAGE:TAG
組織の適用除外項目ポリシーの設定
IBM Cloud 組織のセキュリティーを管理する場合は、ポリシー設定を使用して、問題を適用除外するかどうかを決定できます。
セキュリティ・ステータスに関係なく、どのイメージからでもコンテナをデプロイできる。
免除の操作に必要な権限の詳細については、 IBM Cloud Container Registry を構成するためのアクセス ロール」を 参照してください。
Portierisを使用して、 Vulnerability Advisor が発見した問題を含むイメージの展開をブロックすることは非推奨です。
コンソールを使用した免除ポリシーの設定
IBM Cloud コンソールを使用している場合は、免除ポリシーの有効範囲として 名前空間、リポジトリー、または タグ を設定できます。 ダイジェスト をスコープとして使用する場合は、CLI を使用する必要があります。CLI を使用した組織の免除ポリシーの設定 を参照してください。
IBM Cloud コンソールを使用してポリシーの適用除外を設定する場合は、次の手順を実行します:
-
IBM Cloud にログインします。 IBM Cloud コンソールにVulnerability Advisorを表示するには、ログインした状態である必要があります。
-
「ナビゲーション・メニュー」 アイコンをクリックして、 「コンテナー・レジストリー」 をクリックします。
-
「設定」 をクリックします。
-
「セキュリティー・ポリシー除外項目 (Security policy exemptions)」 セクションで、 「作成 (Create)」 をクリックします。
-
発行タイプを選択します。
-
発行 ID を入力します。
この情報は、脆弱性レポートにあります。 脆弱性ID 列には、CVEまたはセキュリティ通知問題に使用するIDが含まれる。
-
適用除外項目を適用するレジストリー名前空間、リポジトリー、イメージ、およびタグを選択します。
-
「作成」 をクリックします。
また、該当する行にカーソルを合わせ、 オプションのリストを開閉するアイコンをクリックすることで、免除を編集・削除することができる。
CLI を使用した免除ポリシーの設定
CLI を使用している場合、名前空間、リポジトリー、ダイジェスト、または タグ を免除ポリシーの有効範囲として設定できます。
CLIを使用してポリシーの適用除外を設定したい場合は、以下のコマンドを実行できます:
- セキュリティー問題の適用除外項目を作成するには、
ibmcloud cr exemption-add
コマンドを実行します。 - セキュリティー問題の適用除外項目をリストするには、
ibmcloud cr exemption-list
コマンドを実行します。 - 適用除外できるセキュリティー問題のタイプをリストするには、
ibmcloud cr exemption-types
コマンドを実行します。 - セキュリティー問題の適用除外項目を削除するには、
ibmcloud cr exemption-rm
コマンドを実行します。
コマンドを実行するときに --help
オプションを使用すると、コマンドの詳細情報を表示できます。