パッケージ スキャンの概要

パッケージ スキャンでは、Artifact Registry リポジトリ内の言語ベースのパッケージのオープンソース依存関係にある既存の脆弱性と新しい脆弱性を特定します。

パッケージのスキャンに関連する費用の詳細については、料金をご覧ください。

この概要では、Artifact Registry で Docker リポジトリを使用することに精通していることを前提としています。

概要

Artifact Analysis は、パッケージが Artifact Registry に push されるときに、パッケージ内のファイルをスキャンします。最初のスキャンの後、Artifact Registry は、スキャンされたパッケージのメタデータに新たな脆弱性がないか継続的にモニタリングを行います。

リスクの可能性のある領域を評価するために、Artifact Registry はパッケージ構成ファイルの依存関係を既知の脆弱性と照合します。パッケージの潜在的な脆弱性は、Artifact Analysis で確認できます。

パッケージの脆弱性をスキャンする

Artifact Analysis は、Artifact Registry リポジトリ内のパッケージをスキャンして脆弱性を特定します。また、依存関係とライセンスを特定して、パッケージ構成を把握できるようにします。

Artifact Analysis は、Artifact Registry に push された新しいパッケージをスキャンします。このプロセスは「自動スキャン」と呼ばれます。このスキャンにより、パッケージ内のファイルに関する情報が抽出されます。パッケージをスキャンすると、Artifact Analysis はそのパッケージの脆弱性オカレンスを示す脆弱性レポートを生成します。脆弱性は、セキュリティ脆弱性に関して公開で監視されているパッケージでのみ検出されます。

継続的な分析

パッケージがスキャンされた後、Artifact Analysis は、Artifact Registry 内でスキャンされたパッケージのメタデータに新たな脆弱性がないか継続的にモニタリングを行います。

Artifact Analysis は、脆弱性ソースから新しい脆弱性情報と更新された脆弱性情報を 1 日に複数回受け取ります。新しい脆弱性データが届くと、Artifact Analysis は既存の脆弱性オカレンスを更新し、新しいメモの新しい脆弱性オカレンスを作成し、有効でなくなった脆弱性オカレンスを削除します。

Artifact Analysis は、過去 30 日以内に pull されたイメージとパッケージを継続的にスキャンします。30 日を過ぎると、スキャンされたイメージとパッケージのメタデータは更新されなくなり、結果は古くなります。

Artifact Analysis は、90 日以上前のメタデータをアーカイブします。このアーカイブされたメタデータは、API を使用してのみ評価できます。古いメタデータまたはアーカイブされたメタデータを含むイメージを再スキャンするには、そのイメージを pull します。メタデータの更新には、最長で 24 時間ほどかかることがあります。メタデータが古いかアーカイブされているパッケージは再スキャンできません。

サポートされているパッケージ タイプ

Artifact Registry にパッケージを push すると、Artifact Analysis で脆弱性をスキャンできます。

次の表に、Artifact Analysis でスキャンできるパッケージのタイプを示します。

Artifact Registry による自動スキャン オンデマンド スキャン
Java パッケージ
Python パッケージ
Node.js パッケージ

Artifact Analysis のインターフェース

Google Cloud コンソールで、Artifact Registry のパッケージの脆弱性とメタデータを表示できます。

gcloud CLI を使用して、脆弱性とメタデータを表示できます。

また、Artifact Analysis REST API を使用して、こうしたアクションを実行することもできます。他の Cloud Platform API と同様、OAuth2 を使用してアクセスを認証する必要があります。

Artifact Analysis API は、gRPC と REST/JSON の両方をサポートしています。API の呼び出しは、クライアント ライブラリまたは REST/JSON の curl を使用して行うことができます。

脆弱性のあるソース

次のセクションでは、Artifact Analysis が CVE データの取得に使用する脆弱性ソースを一覧表示します。

言語パッケージのスキャン

Artifact Analysis は、パッケージ内のファイルの脆弱性スキャンをサポートしています。脆弱性データは、GitHub Advisory Database から取得されます。

ほとんどの場合、各脆弱性には CVE ID が割り当てられ、この ID がその脆弱性のメインの識別子になります。脆弱性に CVE ID が割り当てられていない場合は、代わりに GHSA ID が識別子として割り当てられます。後でその脆弱性に CVE ID が割り当てられると、脆弱性 ID は CVE と一致するように更新されます。詳細については、プロジェクト内の特定の脆弱性を確認するをご覧ください。

パッケージ マネージャーとセマンティック バージョニング

  • Java - Artifact Analysis は、Maven の命名規則に準拠した Maven パッケージをサポートしています。パッケージ バージョンにスペースが含まれている場合、スキャンされません。
  • Node.js - パッケージ バージョンの照合は、セマンティック バージョニング仕様に従います。
  • Python - Python バージョンの照合は PEP 440 のセマンティクスに従います。

制限事項

  • Artifact Analysis は、ファイル数が 100 個以下のパッケージのみをスキャンします。

  • 同じパッケージを複数のリポジトリに push すると、push ごとに課金されます。詳細については、Artifact Analysis の料金をご覧ください。

次のステップ