Saat Anda mendengar tentang kerentanan baru, Anda harus segera bertindak. Halaman ini menyediakan daftar panggilan dan filter API penting yang telah dibuat sebelumnya untuk Anda. Gunakan panggilan API ini untuk mengambil hasil pemindaian dari Analisis Artefak dan mengumpulkan informasi tentang status artefak Anda.
Konten ini dirancang untuk digunakan dengan metadata pemindaian otomatis. Jika image Anda telah melampaui periode analisis berkelanjutan selama 30 hari, Anda dapat menjalankan pemindaian baru dengan melakukan push ke Artifact Registry lagi.
Semua contoh di halaman ini mengakses API secara langsung, tetapi Anda juga dapat menggunakan library klien Analisis Penampung, atau perintah gcloud.
Izin yang diperlukan
Semua contoh ini menggunakan metode API ListOccurrences
. Untuk memanggil metode ini,
Anda memerlukan peran (roles/containeranalysis.occurrences.viewer)
Container Analysis Occurrences Viewer
untuk project yang sedang
Anda analisis.
Jika menganalisis project yang Anda miliki, Anda sudah memiliki izin yang diperlukan.
Jika Anda menganalisis project yang bukan milik Anda, gunakan petunjuk pengelolaan akses IAM untuk memberikan izin.
Untuk informasi selengkapnya tentang jenis akses untuk penyedia dan pelanggan yang menggunakan Analisis Artefak, lihat izin.
Melihat semua metadata kerentanan untuk image
Gunakan filter KIND="VULNERABILITY"
dengan project ID Anda dan URL resource lengkap untuk gambar Anda, termasuk https://
:
curl -G -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
--data-urlencode "filter=(kind=\"VULNERABILITY\" AND resourceUrl=\"RESOURCE_URL\")" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences
Ganti kode berikut:
- PROJECT_ID adalah ID project Google Cloud Anda. Untuk melihat
daftar project, Anda dapat menggunakan
gcloud projects list
. - RESOURCE_URL adalah URL lengkap gambar, dalam
format:
https://HOSTNAME/PROJECT_ID/IMAGE_ID@sha256:HASH
. Anda harus menggunakanhttps://
di awal URL. Jika perlu menemukan URL untuk gambar, Anda dapat menggunakan panggilan di "Saya ingin memahami semua metadata untuk project saya secara luas".
Output mencakup daftar kerentanan dengan detail seperti tingkat keparahan, opsi mitigasi jika tersedia, dan nama paket yang berisi kerentanan.
Memeriksa kerentanan tertentu dalam project
Pada umumnya, Analisis Artefak menggunakan ID CVE sebagai ID kerentanan. Namun, ada beberapa kerentanan yang tercantum dalam GitHub Advisory Database yang tidak memiliki ID CVE terkait. Dalam hal ini, Analisis Artefak menggunakan ID GHSA.
ID kerentanan disertakan sebagai bagian dari kolom noteName
. ID ini dimulai dengan
awalan CVE
untuk ID CVE, dan GHSA
untuk ID GHSA. Misalnya, jika
output berikut adalah hasil dari menjalankan perintah untuk
melihat semua kerentanan untuk image:
vulnerabilities:
HIGH:
- name: projects/my-project/occurrences/1234fh2c-699a-462f-b920-93a80f56f544
resourceUri: https://my_region-docker.pkg.dev/my-project/my-repo/my-image@sha256:8a1a79b587797c5164ec95977cf7aaaa828694a615947bdaed6a327d5b6a17bb
noteName: projects/goog-vulnz/notes/CVE-2021-32798
kind: VULNERABILITY
...
- name: projects/my-project/occurrences/OCCURRENCE_ID
resourceUri: https://my_region-docker.pkg.dev/my-project/my-repo/my-image@sha256:8a1a79b587797c5164ec95977cf7aaaa828694a615947bdaed6a327d5b6a17bb
noteName: projects/goog-vulnz/notes/GHSA-884p-74jh-xrg2
kind: VULNERABILITY
...
Kerentanan pertama memiliki ID CVE-2021-32798
, yang kedua memiliki ID
GHSA-884p-74jh-xrg2
.
Dapatkan ID untuk kerentanan.
Gunakan ID CVE atau ID GHSA dalam ekspresi filter berikut untuk mengambil daftar gambar yang terpengaruh:
curl -G -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
--data-urlencode "filter=(noteProjectId=\"goog-vulnz\" AND noteId=\"VULN_ID\")" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences
Ganti kode berikut:
- PROJECT_ID adalah ID project Google Cloud Anda. Untuk melihat
daftar project, Anda dapat menggunakan
gcloud projects list
. - VULN_ID adalah ID kerentanan. ID CVE atau
nomor ID GHSA, seperti
CVE-2021-32798
atauGHSA-884p-74jh-xrg2
.
Misalnya, panggilan berikut menunjukkan cara mengambil hasil pemindaian untuk
gambar dalam project Anda yang memiliki kemunculan CVE-2023-23915
:
curl -G -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
--data-urlencode "filter=(noteProjectId=\"goog-vulnz\" AND noteId=\"CVE-2023-23915\")" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences
Ganti kode berikut:
- PROJECT_ID adalah ID project Google Cloud Anda. Untuk melihat
daftar project, Anda dapat menggunakan
gcloud projects list
.
Menelusuri kerentanan di beberapa project
Gunakan globbing curl untuk membuat kueri di seluruh project.
Misalnya, cuplikan berikut menetapkan variabel untuk berisi dua project ID, lalu mengirim panggilan API untuk setiap project guna menelusuri kemunculan.
PROJECT_IDS="PROJECT_ID_1,PROJECT_ID_2"
curl -G -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://containeranalysis.googleapis.com/v1/projects/{$PROJECT_IDS}/occurrences"
Ganti kode berikut:
- PROJECT_ID_1 adalah project ID Google Cloud untuk project pertama yang ingin Anda periksa.
- PROJECT_ID_2 adalah project ID Google Cloud untuk project kedua yang ingin Anda periksa.
Jika perlu menemukan project ID, Anda dapat melihat daftar project menggunakan gcloud projects list
.
Tidak ada dukungan untuk satu panggilan API di beberapa project.
Mendapatkan pemahaman yang luas tentang semua metadata untuk sebuah project
Minta semua kejadian yang terkait dengan project ID Anda:
curl -X GET -H "Content-Type: application/json" -H \
"Authorization: Bearer $(gcloud auth print-access-token)" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences
Ganti kode berikut:
- PROJECT_ID adalah ID project Google Cloud Anda.
Output mencakup informasi kerentanan dan jenis metadata yang didukung lainnya yang terkait dengan project Anda. Misalnya, project Anda mungkin memiliki detail build atau pengesahan.
Membuat kueri untuk kejadian tertentu guna mendapatkan semua detail yang tersedia
Untuk mendapatkan detail selengkapnya tentang setiap kejadian, gunakan permintaan berikut.
Misalnya, jika Anda menggunakan Pub/Sub untuk mendapatkan notifikasi tentang kemunculan kerentanan, Pub/Sub akan mengirimkan detail dasar untuk membantu Anda mengidentifikasi kemunculan yang berubah dan waktunya. Payload menyertakan ID kemunculan. Anda dapat menggunakan ID kemunculan untuk membuat kueri detail guna membantu Anda melakukan triage masalah dan mengambil tindakan.
curl -X GET -H "Content-Type: application/json" -H \
"Authorization: Bearer $(gcloud auth print-access-token)" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences/OCCURRENCE_ID
Ganti kode berikut:
- PROJECT_ID adalah ID project Google Cloud Anda.
- OCCURRENCE_ID adalah nilai numerik dari daftar kemunculan dari contoh sebelumnya. Atau, jika Anda menerima pesan dari Pub/Sub, gunakan nilai numerik di akhir URL dalam pesan tersebut.
Output mencakup informasi seperti jenis paket, tingkat keparahan kerentanan, skor CVSS, dan informasi tentang perbaikan, jika tersedia.
Langkah selanjutnya
- Pelajari lebih lanjut opsi pemfilteran metadata.
- Jalankan pemindaian manual on demand.
- Pelajari praktik terbaik untuk melindungi supply chain software Anda.