Assured OSS menyediakan metadata keamanan untuk setiap paket yang tersedia. Setiap versi paket memiliki metadatanya sendiri. Halaman ini menjelaskan informasi apa yang diberikan sebagai bagian dari metadata dan cara Anda mengakses metadata ini.
Anda dapat mengakses metadata keamanan menggunakan salah satu opsi berikut:
- Artifact Analysis API
- Cloud Storage
Halaman ini hanya berlaku untuk paket gratis.
File metadata keamanan
Metadata keamanan untuk setiap versi paket OSS Tepercaya didistribusikan di empat file berikut dalam bucket Cloud Storage:
buildinfo.zip: File ini berisi metadata tentang informasi build paket. Metadata ini akan berubah dalam skenario yang sangat jarang terjadi seperti membangun ulang paket, rotasi sertifikat, dan penambahan kolom baru.vexinfo.zip: File ini berisi informasi kerentanan untuk paket dalam format CycloneDX 1.4. Nilai ini diperkirakan akan berubah setiap kali ada informasi tentang kerentanan paket.healthinfo.zip: File ini berisi detail tentang pengujian yang dilakukan pada paket. Nilai ini dapat berubah jika status pengujian paket dimodifikasi. Misalnya, jika pengujian keamanan baru dilakukan atau jika hasil cakupan berubah.licenseinfo.zip: File ini berisi metadata yang berkaitan dengan informasi lisensi paket. Informasi lisensi paket dapat berubah jika penerbit paket mengubah informasi tersebut.
Setiap file ZIP berisi dua file berikut:
- File JSON yang berisi data.
- File
signature.zipyang berisi tanda tangan untuk data tersebut.
Struktur file JSON
Struktur untuk file JSON dijelaskan di bagian berikut:
buildInfo.json
creationTime: waktu pembuatan dokumen ini dalam format string RFC 3339.creator: pemilik dokumen. Detail berikut diberikan:name: nama organisasi yang membuat dokumen ini.email: alamat email organisasi jika ada pertanyaan atau keluhan.
buildDetails: detail yang terkait dengan pembuatan biner. Detail berikut diberikan:packageFileName: nama file yang detail build-nya berlaku.buildProvenance: string yang merepresentasikan asal build paket dalam format SLSA v0.2. Ini dihasilkan oleh Cloud Build.envelope: string yang merepresentasikan envelope DSSE yang dapat digunakan untuk memverifikasi integritas dokumen asal. Hal ini juga dihasilkan oleh Cloud Build.slsaLevel: Ini menunjukkan tingkat SLSA yang dipatuhi oleh sistem build.buildTool: Nama alat yang digunakan untuk membangun paket, yaitu Cloud Build. Untuk mengetahui informasi selengkapnya, lihat Cloud Build.transitiveClosureState: Ini adalah ENUM yang menunjukkan apakah semua dependensi build untuk paket (langsung atau tidak langsung) juga ada dalam portofolio Assured OSS atau tidak. Properti ini dapat memiliki dua nilai:OPEN: Jika nol atau hanya dependensi transitif parsial yang didukung oleh Assured OSS.CLOSED: Jika semua dependensi transitif didukung oleh Assured OSS.
sourceInfo: informasi tentang kode sumber yang digunakan untuk membangun paket. Detail berikut diberikan:sourceUrl: string URL GitHub.commitHash: string hash commit yang dilampirkan ke rilis.tag: tag rilis yang terkait dengan versi paket.host: nama sistem yang menghosting kode sumber di GitHub.commitTime: waktu commit dalam format string RFC 3339.
sbom- String SBOM dalam format SPDX 2.3.
vexInfo.json
creationTime: waktu pembuatan dokumen ini dalam format string RFC 3339.creator: pemilik dokumen. Detail berikut diberikan:name: nama organisasi yang membuat dokumen ini.email: alamat email organisasi jika ada pertanyaan atau keluhan.
vexData: String Vulnerability Exploitability eXchange (VEX) dalam format CycloneDX 1.4.
healthInfo.json
creationTime: waktu pembuatan dokumen ini dalam format string RFC 3339.creator: pemilik dokumen. Detail berikut diberikan:name: nama organisasi yang membuat dokumen ini.email: alamat email organisasi jika ada pertanyaan atau keluhan.
testingData: detail tentang pengujian keamanan yang dilakukan pada paket. Detail berikut diberikan:testType: jenis pengujian yang dilakukan. Contoh,FUZZ.tool: nama alat yang digunakan untuk melakukan pengujian.testStatus: status pengujian. Statusnya dapat berupa salah satu dari berikut:TESTED: pengujian dijalankan.NOT_REQUIRED: pengujian tidak diperlukan untuk paket. Misalnya, pengujian fuzz tidak diperlukan pada paket yang hanya berisi antarmuka.UNTESTED: paket tidak diuji.
licenseInfo.json
package_name: Nama paket dalam format string.package_version: Versi paket.license_info: Lisensi yang terkait dengan paket.
Mengakses metadata keamanan dari Cloud Storage
Untuk mengakses metadata keamanan dari Cloud Storage, ikuti langkah-langkah berikut:
Langkah 1 - Siapkan autentikasi
Untuk mengetahui informasi tentang cara menyiapkan autentikasi, lihat Menyiapkan autentikasi.
Langkah 2 - Buat URL
Anda dapat menggunakan perintah gcloud storage atau curl untuk mendownload metadata.
Buat URL untuk keduanya menggunakan informasi berikut:
- Bahasa:
javaataupython. Nilai harus dalam huruf kecil. - Package_ID: untuk Java, ini adalah groupId:artifactId dan untuk Python, ini adalah packageName. Nilai harus dalam huruf kecil.
- Versi: versi paket.
- Metadata_Type: pilih antara
buildinfo.zip,vexinfo.zip, danhealthinfo.zip.
URL harus memiliki format berikut:
gcloud
gs://cloud-aoss-metadata/<language>/<package_id>/<version>/<metadata_type>
Perhatikan bahwa URL harus dalam huruf kecil.
Contoh URL Python: gs://cloud-aoss-metadata/python/cryptography/37.0.4/buildinfo.zip
Contoh URL Java: gs://cloud-aoss-metadata/java/com.google.errorprone:error_prone_annotations/2.15.0/buildinfo.zip
curl
https://storage.googleapis.com/cloud-aoss-metadata/<language>/<package_id>/<version>/<metadata_type>
Perhatikan bahwa URL harus dalam huruf kecil.
Contoh URL Python: https://storage.googleapis.com/cloud-aoss-metadata/python/cryptography/37.0.4/buildinfo.zip
Contoh URL Java: https://storage.googleapis.com/cloud-aoss-metadata/java/com.google.errorprone:error_prone_annotations/2.15.0/buildinfo.zip
Langkah 3 - Download metadata
Gunakan perintah berikut untuk mendownload metadata:
gcloud
gcloud storage cp "gs://cloud-aoss-metadata/<language>/<package_id>/<version>/<metadata_type>" outputFolderLocation
Untuk mendownload semua jenis metadata seperti informasi build, informasi kesehatan, dan informasi VEX secara bersamaan untuk paket dan versi tertentu, gunakan perintah berikut:
gcloud storage cp "gs://cloud-aoss-metadata/<language>/<package_id>/<version>" outputFolderLocation --recursive
Metadata didistribusikan di tiga file ZIP (buildinfo.zip, healthinfo.zip, vexinfo.zip)
dan didownload ke folder output.
curl
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -L https://storage.googleapis.com/cloud-aoss-metadata/<language>/<package_id>/<version>/<metadata_type> -o output.zip
Langkah 4 - Ekstrak metadata
Ekstrak file ZIP. Di macOS atau Linux, gunakan perintah unzip: unzip input.zip -d outputFolder.
Setiap file ZIP berisi file JSON dan file signature.zip. File JSON
berisi metadata keamanan sebenarnya dan file signature.zip berisi
file untuk memverifikasi tanda tangan Google pada JSON.
Download informasi lisensi
Informasi lisensi untuk semua paket Assured OSS tersedia dalam satu file JSON. Untuk mendownload file ini, jalankan perintah berikut:
gcloud
gcloud storage cp "gs://cloud-aoss/info/LicenseInfo.json" outputFolderLocation
curl
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -L https://storage.googleapis.com/cloud-aoss/info/LicenseInfo.json
Untuk mendownload tanda tangan file metadata lisensi, jalankan perintah berikut:
gcloud
gcloud storage cp "gs://cloud-aoss/info/LicenseInfo.json-sig.zip" outputFolderLocation
curl
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -L https://storage.googleapis.com/cloud-aoss/info/LicenseInfo.json-sig.zip -o output.zip
Langkah berikutnya
- Mengakses metadata keamanan menggunakan Artifact Analysis API
- Berlangganan notifikasi
- Ringkasan tanda tangan artefak
- Verifikasi tanda tangan
- Memverifikasi provenance build