脆弱性のためのイメージのスキャン
Container Registryを使用してリポジトリ内のイメージをスキャンし、セキュリティの脆弱性を検出する方法をご確認ください。
イメージに含まれるオペレーティング・システム・パッケージに脆弱性があることは珍しくありません。これらの脆弱性を管理することで、システムのセキュリティ体制を強化し、新しい脆弱性が発見されたときに迅速に対応することができます。
Oracle Cloud Infrastructure Registry (コンテナ・レジストリとも呼ばれる)を設定して、リポジトリ内のイメージをスキャンし、公開されている共通脆弱性(CVE)データベースに公開されているセキュリティ脆弱性を検出できます。
イメージ・スキャナをリポジトリに追加して、イメージ・スキャンを有効にします。その後、リポジトリにプッシュされたイメージは、イメージ・スキャナによって脆弱性がスキャンされます。リポジトリにすでにイメージが含まれている場合、最近プッシュされた4つのイメージがすぐに脆弱性がスキャンされます。
新しい脆弱性がCVEデータベースに追加されると、コンテナ・レジストリは、スキャンが有効になっているリポジトリ内のイメージを自動的に再スキャンします。
スキャンしたイメージごとに、次のものを表示できます。
- 過去13か月間のイメージの各スキャンのサマリー。各スキャンで見つかった脆弱性の数、および各スキャンの全体的なリスク・レベルが1つ表示されます。イメージ・スキャン結果は、一定期間スキャン結果を比較できるように13か月間保持されます。
- 各イメージ・スキャンの詳細な結果。各脆弱性の説明とそのリスク・レベル、および(使用可能な場合は)詳細についてはCVEデータベースへのリンクが表示されます。
イメージ・スキャナを削除することで、特定のリポジトリでイメージ・スキャンを無効にできます。
イメージ・スキャンを実行するために、Container RegistryはOracle Cloud Infrastructure脆弱性スキャン・サービスおよび脆弱性スキャンREST APIを使用します。脆弱性スキャン・サービスの詳細は、スキャンの概要およびコンテナ・イメージ・ターゲットを参照してください。
イメージ・スキャンを既存のソフトウェア開発およびデプロイメント・ライフサイクルに統合できます。イメージを構築したら、CI/CDツールで通常のdocker push
コマンドを使用して、イメージ・スキャンが有効になっているコンテナ・レジストリのリポジトリにイメージをプッシュできます。CI/CDツールは脆弱性スキャンREST APIを使用して、イメージ・スキャンの結果を取得できます。CI/CDツールは、イメージ・スキャンの結果に基づいて、イメージをライフサイクルの次のステージに移動するかどうかを決定できます。
脆弱性のためにイメージをスキャンするために必要なIAMポリシー
イメージ・スキャンに対してリポジトリを有効にする場合は、コンテナ・レジストリからイメージをプルするための脆弱性スキャン・サービス権限を付与する必要があります。
allow service vulnerability-scanning-service to read repos in tenancy
allow service vulnerability-scanning-service to read compartments in tenancy
allow service vulnerability-scanning-service to read repos in compartment <compartment-name>
allow service vulnerability-scanning-service to read compartments in compartment <compartment-name>
コンソールを使用したイメージ・スキャンの有効化および無効化
新しいリポジトリを作成すると、デフォルトでイメージ・スキャンが無効になります。コンソールを使用して、新しいイメージ・スキャナを作成することでリポジトリのイメージ・スキャンを有効にできます。イメージ・スキャンがすでに有効になっている場合は、コンソールを使用して無効にできます。
リポジトリのイメージ・スキャンを有効にするには:
-
「コンテナ・レジストリ」リスト・ページで、作業するリポジトリを「リポジトリおよびイメージ」リストから選択します。リスト・ページまたはリポジトリの検索に関するヘルプが必要な場合は、リポジトリのリストを参照してください。
リポジトリの詳細セクションが開きます。
-
「スキャナの追加」を選択し、デフォルト設定(通常は十分)を受け入れるか、次を指定します:
-
ターゲット名: オプションで、新しいイメージ・スキャナの名前。
-
コンパートメントに作成: イメージ・スキャナを作成するコンパートメント。リポジトリが属するコンパートメントがデフォルトで選択されますが、代替コンパートメントを選択できます。
-
説明: オプションで、スキャナの説明。
-
-
使用するスキャン構成を選択します。
スキャン構成では、イメージが属するコンパートメントを指定して、スキャンするイメージを識別します。通常は、既存のスキャン構成を選択するか、リポジトリ自体が属するコンパートメントを指定する新しいスキャン構成を作成します。
-
新規スキャン構成の作成: 新しいスキャン構成を作成して、リポジトリ自体が属するコンパートメントに属するイメージをスキャンします。デフォルト設定(通常は十分)を受け入れるか、オプションで新しいスキャン構成の名前を入力し、新しいスキャン構成を作成するコンパートメントを選択します。リポジトリ内のすべてのイメージがスキャンされます。
-
既存のスキャン構成の選択: 既存のスキャン構成で指定されたコンパートメントに属するイメージをスキャンします。デフォルトでは、リポジトリと同じコンパートメントに属するスキャン構成を表示および選択できます。
「コンパートメントの変更」を選択して、他のコンパートメントに属するスキャン構成を表示および選択します。リポジトリが、選択した既存のスキャン構成内の指定されたコンパートメントのいずれかに属していれば、リポジトリ内のすべてのイメージがスキャンされます。
-
-
「作成」を選択して、指定したスキャン構成で新しいイメージ・スキャナを作成します。
これ以降、リポジトリにプッシュされたイメージは、イメージ・スキャナによって脆弱性がスキャンされます。リポジトリにすでにイメージが含まれている場合、最近プッシュされた4つのイメージがすぐに脆弱性がスキャンされます。
リポジトリのイメージ・スキャンを無効にするには:
-
「コンテナ・レジストリ」リスト・ページで、作業するリポジトリを「リポジトリおよびイメージ」リストから選択します。リスト・ページまたはリポジトリの検索に関するヘルプが必要な場合は、リポジトリのリストを参照してください。
リポジトリの詳細セクションが開きます。
-
「スキャナの削除」を選択します。
コンソールを使用したイメージ・スキャンの結果の表示
イメージ・スキャンの結果を表示するには:
-
「コンテナ・レジストリ」リスト・ページで、作業するリポジトリを「リポジトリおよびイメージ」リストから選択します。リスト・ページまたはリポジトリの検索に関するヘルプが必要な場合は、リポジトリのリストを参照してください。
リポジトリの詳細セクションが開きます。
-
リポジトリ内の特定のイメージで検出された脆弱性を確認するには:
- 「リポジトリおよびイメージ」リストでリポジトリをもう一度選択します。
リポジトリ内のイメージ(バージョン識別子を含む)は、「リポジトリおよびイメージ」リストのリポジトリの下にリストされます。
-
リストからイメージを選択してください。
- 「リポジトリおよびイメージ」リストでリポジトリをもう一度選択します。
-
「スキャン結果」タブを選択して、過去13か月間のイメージの各スキャンのサマリーを表示します。次が表示されます:
-
リスク・レベル: イメージによって発生するリスク・レベル。スキャンで見つかった個々の脆弱性のリスク・レベルを単一の全体的なリスク・レベルに集計することによって導出されます。
-
検出された問題: スキャンで見つかった脆弱性の数。
-
スキャン開始: およびスキャン終了: スキャンの実行日時。
-
-
(オプション)特定のスキャンで見つかった脆弱性の詳細を表示するには、「スキャン結果」タブのスキャンの横にある「アクション」メニューから「詳細の表示」を選択して、次を示す「スキャンの詳細」ダイアログを開きます:
-
問題: CVEデータベースの脆弱性に指定された名前。リンクを選択して、その詳細を確認します。
-
リスク・レベル: 脆弱性の重大度レベル。「クリティカル」は、最上位レベルです(解決する優先度が最も高い最も深刻な問題の場合)、次に「高」、「中」、「低」、最後に「マイナー」が続きます(解決する必要がある最も深刻な問題を示しますが、最も低い優先度になる可能性があります)。
-
Description: 脆弱性の説明。
-
-
「閉じる」を選択します。
CLIの使用
脆弱性スキャンCLIコマンドを使用して、イメージで脆弱性をスキャンします(コンテナ・イメージ・ターゲットを参照)。
CLIコマンドのフラグおよび変数オプションの完全なリストは、コマンドライン・リファレンスを参照してください。
APIの使用
APIの使用およびリクエストの署名の詳細は、REST APIのドキュメントおよびセキュリティ資格証明を参照してください。SDKの詳細は、SDKおよびCLIを参照してください。
脆弱性スキャンAPIを使用して、イメージで脆弱性をスキャンします(コンテナ・イメージ・ターゲットを参照)。