Assured Open Source Software (Assured OSS) menyediakan metadata keamanan untuk setiap paket dan versi paket yang tersedia. Anda dapat mengakses metadata ini di Artifact Analysis untuk meninjau detail build, status kerentanan, hasil pengujian, dan informasi lisensi.
Dokumen ini hanya berlaku untuk paket gratis. Untuk mengetahui petunjuk cara mengakses metadata menggunakan Cloud Storage, lihat Mengakses metadata menggunakan Cloud Storage.
Metadata keamanan
Artifact Analysis menyediakan penyimpanan metadata sesuai dengan model Grafeas open source. Informasi berikut diberikan untuk setiap versi paket:
PackageNote untuk setiap versi paket yang dirilis oleh Assured OSS. Catatan paket berisi hal berikut:
distributiondengan setiapdistributionsesuai dengan satu artefak yang disediakan oleh Assured OSS. Hal ini mencakup lokasi dan ringkasanurl(tempat tanda tangan dan hash dapat didownload) untuk sumber biner dan yang dapat direproduksi.relatedURLyang berisi link ke metadata seperti provenance build, pengesahan pengujian, dan kerentanan.
BuildOccurrence. Link ke kemunculan build ini diberikan di bagian
relatedURLcatatan paket pada labelBUILD_OCCURRENCE.intotoStatementdalam kemunculan build berisi provenance SLSA v0.2.BuildOccurrenance kedua. Link ke kemunculan build ini diberikan di bagian
relatedURLcatatan paket pada labelORIGINAL_SOURCE_PROVENANCE. File ini berisi detail sumber asli (GitHub) dalam bentuk Source.AttestationOccurrence. Link ke kemunculan pengesahan ini diberikan di bagian
relatedURLcatatan paket terhadap labelTEST_OCCURRENCE. Payload yang diserialisasi dalam pengesahan berisi JSON yang mewakili semua pengujian keamanan yang dilakukan pada versi paket.AttestationOccurrence kedua. Link ke kemunculan pengesahan ini diberikan di bagian
relatedURLcatatan paket terhadap labelPACKAGE_ATTESTATION_OCCURRENCE. Payload yang diserialisasi JSON dalam pengesahan adalah payload catatan paket dan tanda tangannya. Pengesahan ini digunakan untuk memverifikasi integritas konten catatan paket.VulnerabilityNote dan VulnerabilityOccurrence untuk setiap kerentanan yang terkait dengan paket. Gabungan catatan dan kemunculan memberikan informasi tentang kerentanan seperti ringkasan atau deskripsi kerentanan, tingkat keparahan, skor CVSSV3, informasi versi yang terpengaruh dan diperbaiki, serta perbaikan.
Mengakses metadata keamanan dari Artifact Analysis
Anda dapat mengakses metadata keamanan dari Artifact Analysis menggunakan klien Artifact Analysis API yang tersedia dalam berbagai bahasa. Untuk mulai menggunakan Library Klien Cloud untuk Artifact Analysis API, lihat Menginstal library klien Artifact Analysis yang diperlukan.
Untuk mengakses metadata keamanan, ikuti langkah-langkah berikut:
Langkah 1 - Menyiapkan autentikasi
Siapkan autentikasi menggunakan Kredensial Default Aplikasi (ADC).
Langkah 2 - Mengambil metadata keamanan
Untuk mengambil metadata keamanan, buat paket note_name menggunakan informasi berikut:
- Project_ID: ID alfanumerik untuk project Google Cloud Anda.
- Package Language: Java atau Python. Nilai ini harus dalam huruf besar.
- Package_ID: untuk Java, nilainya adalah groupId_artifactId dan untuk Python, nilainya adalah packageName. Nilai ini peka huruf besar/kecil. Casing yang valid untuk nama rilis paket dapat ditemukan di Mencantumkan semua Paket di Assured OSS.
- Version: Versi paket.
note_name harus memiliki struktur berikut:
projects/<project_id>/notes/<language>-<package_id>-<version>.
Contoh: projects/cloud-aoss/notes/JAVA-org.apache.commons_commons-compress-1.21
Opsi 1:
Jika Anda menggunakan Library Klien Container Analysis, gunakan getNotes dengan note_name
untuk mengkueri PackageNote. PackageNote memiliki link ke catatan dan
kemunculan lainnya.
Opsi 2:
Jika Anda menggunakan perintah curl, gunakan perintah berikut:
curl -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" $URL
- Untuk Java, gunakan URL:
https://containeranalysis.googleapis.com/v1/projects/cloud-aoss/notes/JAVA-org.jsoup_jsoup-1.15.2 - Untuk Python, gunakan URL:
https://containeranalysis.googleapis.com/v1/projects/cloud-aoss/notes/PYTHON-Flask-Cors-3.0.10
Metadata Sampel
{
"name": "projects/cloud-aoss/notes/JAVA-org.jsoup_jsoup-1.15.2",
"kind": "PACKAGE",
"relatedUrl": [
{
"url": "projects/cloud-aoss/occurrences/621d7e7b-8e6c-4313-b24b-eae3a1d1b884",
"label": "ORIGINAL_SOURCE_PROVENANCE"
},
{
"url": "https://containeranalysis.googleapis.com/v1/projects/cloud-aoss/occurrences/a0967d97-634c-4066-b6da-0a723273a165",
"label": "BUILD_OCCURRENCE"
},
{
"url": "projects/cloud-aoss/occurrences/6005db73-7310-44f9-9a36-6ca0174732a1",
"label": "TEST_OCCURRENCE"
},
{
"url": "projects/cloud-aoss/notes/GHSA-gp7f-rwcx-9369",
"label": "VULNERABILITY_GHSA-gp7f-rwcx-9369"
}
],
"createTime": "2022-10-12T06:48:19.162016Z",
"updateTime": "2022-10-18T05:31:15.081736Z",
"package": {
"distribution": [
{
"cpeUri": "cpe:2.3:a:JAVA::org.jsoup:jsoup:1.15.2:*:*:*:*:*:*:*",
"url": "https://us-maven.pkg.dev/…/org/jsoup/jsoup/1.15.2/jsoup-1.15.2.jar",
"description": "..."
},
{
"cpeUri": "cpe:2.3:a:JAVA::org.jsoup:jsoup:1.15.2:*:*:*:*:*:*:*",
"url": "https://us-maven.pkg.dev/…/org/jsoup/jsoup/1.15.2/jsoup-1.15.2-sources.jar",
"description": "..."
}
]}}
Gunakan nama catatan dan kemunculan yang disediakan dalam peta relatedURL untuk mengambil data tambahan terkait sumber, build, pengujian, dan kerentanan. Untuk melakukannya, gunakan API GetNote dan GetOccurrence atau perintah curl.
Untuk BUILD_OCCURRENCE, hapus awalan awal https://containeranalysis.googleapis.com/v1/ saat Anda menggunakan API. Untuk entitas lain, gunakan URL secara langsung sebagai note_name atau occurrence_name dalam parameter API.
Contoh skrip Python
Contoh skrip Python yang mencetak seluruh metadata yang didownload tersedia di lokasi Cloud Storage berikut beserta file README-nya:
gs://cloud-aoss/utils/python-download-metadata/v1.1
Ikuti langkah-langkah berikut untuk mendownload skrip menggunakan Google Cloud CLI:
Siapkan autentikasi menggunakan Kredensial Default Aplikasi (ADC).
Instal library klien container-analysis. Secara khusus, perintah ini akan menginstal:
pip install google-cloud-containeranalysisInstal paket cloud-kms dan cryptography menggunakan perintah berikut:
pip install --upgrade google-cloud-kms pip install --upgrade cryptographyDownload
download_metadata.pyke sistem Anda menggunakan perintah berikut:gcloud storage cp gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata.py PATH_TO_LOCAL_STORE --recursiveGanti PATH_TO_LOCAL_STORE dengan jalur lokal tempat Anda ingin menyimpan file.
Download
README.mdyang berisi petunjuk untuk menggunakan skrip menggunakan perintah berikut:gcloud storage cp gs://cloud-aoss/utils/python-download-metadata/v1.1/README.md PATH_TO_LOCAL_STORE --recursiveGanti PATH_TO_LOCAL_STORE dengan jalur lokal tempat Anda ingin menyimpan file.
Contoh Perintah
python ./download_metadata.py -l 'JAVA' -p 'org.apache.logging.log4j:log4j-core' -v '2.17.1'
Untuk memverifikasi tanda tangan dalam metadata analisis container, tambahkan perintah berikut ke skrip:
python ./download_metadata.py -l 'JAVA' -p 'org.apache.logging.log4j:log4j-core' -v '2.17.1' -s`