日本情報通信の江口です。
本記事はNI+C TeamGCP Advent Calendar 2023 11日目の記事となります。
$ sudo apt install google-cloud-sdk-local-extract
$ sudo dnf install google-cloud-sdk-local-extract
まずはスキャンを実施します。# IMAGE_URIには資材ファイルを指定
## 例) alpine:3.14
$ gcloud artifacts docker images scan IMAGE_URI [--location=(us,europe,asia)] [--async]
資材が既にArtifact Registryなどに配置されており、CLI実行環境にない場合には、--remote` オプションが必要です
# IMAGE_URLには資材へのフルパスが必要
## 例) asia-northeast1-docker.pkg.dev/sample-project/sample-repository/alpine:3.14
$ gcloud artifacts docker images scan IMAGE_URI \
--remote [--location=(us,europe,asia)] [--async]
スキャンが成功すると、以下のように完了の旨が出力されます。✓ Scanning container image
response.scanが脆弱性スキャンの結果を保持していますので、この結果を以下のように出力します
✓ Locally extracting packages and versions from local container image
✓ Remotely initiating analysis of packages and versions
✓ Waiting for analysis operation to complete [projects/sample-project/locations/us/operations/87d2e137-1d1c-4790-8e5e-daf6c96ae7d7]
Done.
done: true
metadata:
'@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesMetadata
createTime: '2021-01-05T23:03:04.185261Z'
resourceUri: ubuntu:latest
name: projects/sample-project/locations/us/operations/87d2e137-1d1c-4790-8e5e-daf6c96ae7d7
response:
'@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesResponse
scan: projects/sample-project/locations/us/scans/2fe2bfb8-f0c5-4dd6-a8c8-38961869767a$ SCAN_NAME="projects/sample-project/locations/us/scans/2fe2bfb8-f0c5-4dd6-a8c8-38961869767a"
$ gcloud artifacts docker images list-vulnerabilities ${SCAN_NAME}
脆弱性が検知された場合には、以下のように出力されます。
createTime: '2021-01-05T23:05:42.956227Z'
kind: VULNERABILITY
name: projects/sample-project/locations/us/occurrences/f82a1efd-a261-4973-acbd-f9854d8b8135
noteName: projects/goog-vulnz/notes/CVE-2018-1000654
resourceUri: ubuntu:latest
updateTime: '2021-01-05T23:05:42.956227Z'
vulnerability:
cvssScore: 7.1
cvssv3:
attackComplexity: ATTACK_COMPLEXITY_LOW
attackVector: ATTACK_VECTOR_NETWORK
availabilityImpact: IMPACT_HIGH
baseScore: 7.2
confidentialityImpact: IMPACT_HIGH
exploitabilityScore: 1.2
impactScore: 5.9
integrityImpact: IMPACT_HIGH
privilegesRequired: PRIVILEGES_REQUIRED_HIGH
scope: SCOPE_UNCHANGED
userInteraction: USER_INTERACTION_NONE
effectiveSeverity: MEDIUM
自動スキャン、オンデマンドスキャンいずれでも、基本的な考え方は公式ドキュメントの通りです。
料金はスキャンするコンテナ イメージあたり $0.26
ただし、自動スキャンの場合、同一イメージ(同じダイジェストを持つイメージ)に対するスキャンは1回目のみ課金されます。
都度手動で脆弱性スキャンを行ってもよいですが、CICDパイプラインを回している環境であればそこに脆弱性スキャンも統合していくことをGoogle Cloudとしても推奨しています。
脆弱性への対応は、システム開発においていつまでも終わることのない課題です。それだけに、GoogleCloudとしても統合的なサービスを提供しています。ご自身の環境に合う部分をうまく取り入れてもらえればと思います。
- Scan images for OS vulnerabilities on demand | Google Cloud
- Artifact Analysisの料金 | Google Cloud
- Artifact Analysis と脆弱性スキャン | Google Cloud
Google Cloud、Google Workspaceに関する お問い合わせはこちら