Questa pagina spiega come verificare la firma sugli artefatti di Assured OSS.
Questa pagina si applica solo al livello senza costi. Per il livello premium, vedi Accedere ai metadati di sicurezza e verificare i pacchetti.
Verifica del pacchetto
Le firme dei pacchetti vengono archiviate separatamente dal pacchetto in un bucket Cloud Storage in formato zip.
Puoi verificare le firme utilizzando lo
strumento di verifica Assured OSS (aoss-verifier) o uno script di verifica.
Utilizzo dello strumento aoss-verifier
Prima di utilizzare questo strumento, assicurati che Go sia installato sul tuo sistema. Se Go non è installato, installalo dal sito web di Go.
Per verificare l'autenticità e l'integrità dei pacchetti software open source, installa lo strumento aoss-verifier.
Esporta
$(go env GOPATH)/bined esegui il comandoaoss-verifier verify-package.aoss-verifier verify-package \ --language LANGUAGE \ --package_id PACKAGE_ID \ --version VERSION \ --artifact_path ARTIFACT_PATH \ [--disable_certificate_verification] \ [--temp_downloads_path TEMP_DOWNLOADS_DIR_PATH] \ [--disable_deletes]Sostituisci quanto segue:
- LANGUAGE: il linguaggio del pacchetto di programmazione,
javaopython. Il valore deve essere in minuscolo. - PACKAGE_ID: per Java è groupId:artifactId e per Python è packageName. Il valore deve essere in minuscolo.
- VERSION: la versione del pacchetto.
- ARTIFACT_PATH: il percorso del file di dati nella directory locale che vuoi verificare. Utilizza le seguenti estensioni
dei nomi dei file:
- Estensione del file
jarper un pacchetto Java - Estensione file
whlper un pacchetto Python
- Estensione del file
--disable_certificate_verificationè un flag facoltativo che, se utilizzato, salta la corrispondenza tra il certificato foglia e il certificato radice tramite la catena di certificati.--temp_downloads_pathè un flag facoltativo per impostare il percorso in cui vuoi scaricare i file. (sostituisci TEMP_DOWNLOADS_DIR_PATH). Se questo flag non è impostato, i file vengono scaricati nella cartellatmp_downloadsdella directory attuale.--disable_deletesè un flag facoltativo che conserva i file scaricati. Per impostazione predefinita, lo strumento pulisce tutti i file scaricati.- LANGUAGE: il linguaggio del pacchetto di programmazione,
Per ulteriori informazioni, consulta il file README.
Utilizzo dello script di verifica
Questa sezione descrive come utilizzare uno script di verifica per verificare le firme dei pacchetti scaricati.
Passaggio 1: ottieni l'URL della firma
L'URL del file ZIP è disponibile nei metadati di sicurezza di ogni pacchetto. L'esempio seguente è un campione dei metadati di Container Analysis.
Come mostrato nell'esempio seguente, puoi trovare l'URL zip della firma nel campo
description: digestUrl.
package {
distribution {
cpe_uri: "cpe:2.3:a:JAVA::com.fasterxml.jackson.core:jackson-databind:2.13.3:*:*:*:*:*:*:*"
maintainer: "<nil>"
url: "https://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/com/fasterxml/jackson/core/jackson-databind/2.13.3/jackson-databind-2.13.3.jar"
description: "{\n \"artifactMetadataList\": [\n {\n \"digestUrl\": \"gs://cloud-aoss/java/com.fasterxml.jackson.core:jackson-databind/2.13.3/jackson-databind-2.13.3_binary_2022-10-12T06:54:05Z.zip\"\n }\n ]\n}"
}
distribution {
cpe_uri: "cpe:2.3:a:JAVA::com.fasterxml.jackson.core:jackson-databind:2.13.3:*:*:*:*:*:*:*"
url: "https://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/com/fasterxml/jackson/core/jackson-databind/2.13.3/jackson-databind-2.13.3-sources.jar"
description: "{\n \"digestUrl\": \"gs://cloud-aoss/java/com.fasterxml.jackson.core:jackson-databind/2.13.3/jackson-databind-2.13.3-sources_source_2022-10-12T06:54:05Z.zip\"\n}"
}
}
Esempio tratto dai metadati di Cloud Storage (buildInfo.json file). Come mostrato
nell'esempio seguente, puoi ottenere l'URL zip della firma dal campo
externalRefs : referenceLocator.
"packages": [
{
"SPDXID": "SPDXRef-Package-logback-core-1.2.11.jar",
"checksums": [
{
"algorithm": "SHA256",
"checksumValue": "c847e0e310acda8bc1347c9d9cc051e91210b9f943e131fceb5034c2f0c9a5d8"
}
],
"downloadLocation": "https://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/ch/qos/logback/logback-core/1.2.11/logback-core-1.2.11.jar",
"externalRefs": [
{
"referenceCategory": "SECURITY",
"referenceLocator": "cpe:2.3:a:*:JAVA\\:\\:ch\\.qos\\.logback\\:logback\\-core:1\\.2\\.11:*:*:*:*:*:*:*",
"referenceType": "cpe23Type"
},
{
"referenceCategory": "OTHER",
"referenceLocator": "gs://cloud-aoss/java/ch.qos.logback:logback-core/1.2.11/logback-core-1.2.11_binary_2022-10-12T14:19:11Z.zip",
"referenceType": "digestURL"
}
],
Puoi utilizzare il file zip della firma locale per la verifica manuale o
l'URL di Cloud Storage direttamente per l'utilizzo dello script di verifica. Puoi scaricare
il file signature.zip seguendo questi passaggi:
Configura l'autenticazione utilizzando le Credenziali predefinite dell'applicazione (ADC).
Scarica
signature.ziputilizzando il seguente comando:gcloud storage cp SIGNATURE_ZIP_URL PATH_TO_LOCAL_STORE --recursiveSostituisci quanto segue:
- SIGNATURE_ZIP_URL: l'URL del file zip della firma.
- PATH_TO_LOCAL_STORE: il percorso locale in cui vuoi scaricare il file.
Passaggio 2: scarica il certificato principale
Per accedere al certificato radice, utilizza il seguente URL:
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
Puoi scaricare il certificato localmente o utilizzare direttamente il link del certificato. Per scaricare il certificato, esegui questo comando:
curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
Sostituisci PATH_TO_LOCAL_STORE con il percorso locale in cui vuoi scaricare il certificato.
Passaggio 3: recupera la posizione del file del pacchetto
Il file che verificheremo è il file JAR per i pacchetti Java e il file wheel per i pacchetti Python. Questo file sarà il PATH_TO_DATA_FILE per la verifica.
Passaggio 4: verifica
Puoi verificare manualmente il file zip della firma seguendo i passaggi descritti in Verifica manuale della firma o utilizzare lo script di verifica.
Per eseguire la verifica utilizzando lo script di verifica, esegui i seguenti comandi:
Scarica lo script di verifica e concedi le autorizzazioni.
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.shEsegui lo script di verifica e verifica. Puoi utilizzare gli URL remoti o i percorsi locali per lo zip della firma e il certificato radice.
./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url SIGNATURE_ZIP_URL --root_cert_url ROOT_CERT_URLSostituisci quanto segue:
- PATH_TO_DATA_FILE con il percorso del file del pacchetto identificato nel passaggio 3
- SIGNATURE_ZIP_URL con l'URL zip della firma ottenuto nel passaggio 1.
- ROOT_CERT_URL con l'URL del certificato radice ottenuto nel passaggio 2.
Verifica dei metadati
Questa sezione spiega come verificare la firma dei metadati di Assured OSS a cui si accede utilizzando Cloud Storage.
Utilizzare lo strumento aoss-verifier
Utilizza lo strumento aoss-verifier per verificare i metadati.
Prima di utilizzare questo strumento, installa Go.
Installa lo strumento aoss-verifier.
Esporta
$(go env GOPATH)/bined esegui il comandoaoss-verifier verify-metadata.aoss-verifier verify-metadata \ --metadata_type TYPE \ --language LANGUAGE \ --package_id PACKAGE_ID \ --version VERSION \ [--disable_certificate_verification] \ [--temp_downloads_path TEMP_DOWNLOADS_DIR_PATH] \ [--disable_deletes]Sostituisci quanto segue:
- TYPE: i valori possibili sono
buildinfo,vexinfoehealthinfo. - LANGUAGE: il linguaggio del pacchetto di programmazione,
javaopython. Il valore deve essere in minuscolo. - PACKAGE_ID: per Java, il formato è groupId:artifactId. Per Python, il formato è packageName. Il valore deve essere in minuscolo.
- VERSION: la versione del pacchetto.
--disable_certificate_verificationè un flag facoltativo che, se utilizzato, ignora la corrispondenza tra il certificato end-entity e il certificato radice tramite la catena di certificati.--temp_downloads_pathè un flag facoltativo per impostare il percorso in cui vuoi scaricare i file (sostituisci TEMP_DOWNLOADS_DIR_PATH). Se questo flag non è impostato, i file vengono scaricati nella cartellatmp_downloadsdella directory corrente.--disable_deletesè un flag facoltativo che conserva i file scaricati. Per impostazione predefinita, lo strumento pulisce tutti i file scaricati.- TYPE: i valori possibili sono
Per ulteriori informazioni, consulta il file README.
Utilizzo dello script di verifica
Questa sezione descrive come utilizzare uno script di verifica per verificare il file dei metadati di sicurezza.
Passaggio 1: recupera il file ZIP della firma e il file di metadati
Possiamo accedere ai metadati come descritto in Accesso ai metadati. Il file dei metadati sarà presente nel file signature.zip.
Esempio: contenuti di buildInfo.zip
buildInfo.json
signature.zip
buildInfo.json è il file dei metadati da verificare e
signature.zip è il file ZIP della firma.
Passaggio 2: scarica il certificato principale
Utilizza il seguente link URL per ottenere il certificato radice:
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
Puoi scaricare il certificato localmente o utilizzare direttamente il link del certificato. Per scaricare il certificato, esegui questo comando:
curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
Sostituisci PATH_TO_LOCAL_STORE con il percorso locale in cui vuoi scaricare il certificato.
Passaggio 3: verifica
Puoi verificare signature.zip utilizzando la verifica manuale o
utilizzando lo script di verifica.
Per eseguire la verifica utilizzando lo script di verifica, esegui i seguenti comandi:
Scarica lo script di verifica e concedi le autorizzazioni.
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.shEsegui lo script di verifica e verifica. Devi utilizzare il percorso locale per il file zip della firma. Per il certificato root, puoi utilizzare l'URL o il percorso locale. Il file di dati sarebbe il file di metadati che stiamo verificando:
buildInfo.json,vexInfo.jsonohealthInfo.json../signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_local_path SIGNATURE_LOCAL_PATH --root_cert_url ROOT_CERT_URLSostituisci quanto segue:
PATH_TO_DATA_FILE con il file dei metadati che stiamo verificando come ottenuto nel passaggio 1.
SIGNATURE_LOCAL_PATH con l'URL zip della firma ottenuto nel passaggio 1.
ROOT_CERT_URL con l'URL del certificato radice ottenuto nel passaggio 2.
Se vuoi utilizzare un certificato locale già scaricato, utilizza questa opzione:
--root_cert_local ROOT_CERT_LOCALSostituisci ROOT_CERT_LOCAL con il percorso del certificato locale.
Verifica dello script di utilità
Assured OSS fornisce tre script di utilità. Questa sezione descrive come verificare la firma di questi script.
Generatore Python Requirements.txt
Accedi alla firma di questo file all'indirizzo
gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator-sig.zip. Puoi verificare
signature.zip utilizzando la verifica manuale o
utilizzando lo script di verifica.
Per verificare rapidamente la firma utilizzando lo script di verifica, segui questi passaggi:
Se non hai ancora scaricato il file di script del generatore
requirements.txt, scaricalo.gcloud storage cp "gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh" . --recursiveRecupera il certificato radice. Il link all'URL è
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtPuoi scaricare il certificato localmente o utilizzare direttamente il link al certificato. Per scaricare il certificato, esegui questo comando:curl -o PATH_TO_LOCAL_STORE/ca.crt "https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt"Sostituisci PATH_TO_LOCAL_STORE con il percorso locale in cui vuoi scaricare il certificato.
Scarica lo script di verifica, se non l'hai ancora fatto.
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.shEsegui lo script di verifica e verifica.
./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url "gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator-sig.zip" --root_cert_url ROOT_CERT_URLSostituisci quanto segue:
- PATH_TO_DATA_FILE con il percorso locale dello script
generator.shche vogliamo verificare, come ottenuto nel passaggio 2. - ROOT_CERT_URL con l'URL del certificato radice. Se vuoi utilizzare un certificato locale già scaricato, esegui il seguente comando:
–root_cert_local ROOT_CERT_LOCALSostituisci ROOT_CERT_LOCAL con il percorso locale del certificato radice.
- PATH_TO_DATA_FILE con il percorso locale dello script
Script di verifica della firma
Accedi alla firma di questo file all'indirizzo gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification-sig.zip. Puoi verificare
signature.zip utilizzando la verifica manuale o
utilizzando lo script di verifica.
Per verificare rapidamente la firma utilizzando lo script di verifica, segui questi passaggi:
Se non hai ancora scaricato il file dello script di verifica della firma, scaricalo.
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.shRecupera il certificato radice. Il link all'URL è
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtPuoi scaricare il certificato localmente o utilizzare direttamente il link al certificato. Comando per scaricare il certificato:curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtSostituisci PATH_TO_LOCAL_STORE con il percorso locale in cui vuoi scaricare il certificato.
Esegui lo script di verifica e verifica.
./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification-sig.zip" --root_cert_url ROOT_CERT_URLSostituisci quanto segue:
PATH_TO_DATA_FILE con il percorso locale dello script di verifica che vogliamo verificare, come ottenuto nel passaggio 2. ROOT_CERT_URL con l'URL del certificato radice. Se vuoi utilizzare un certificato locale già scaricato, utilizza questa opzione:
–root_cert_local ROOT_CERT_LOCALSostituisci ROOT_CERT_LOCAL con il percorso locale del certificato radice.
Scarica lo script dei metadati
Accedi alla firma di questo file all'indirizzo gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata-sig.zip. Puoi verificare
signature.zip utilizzando la verifica manuale o
utilizzando lo script di verifica.
Per verificare rapidamente la firma utilizzando lo script di verifica, segui questi passaggi:
Se non hai ancora scaricato il file dello script
download_metadata.py, scaricalo.gcloud storage cp "gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata.py" . --recursiveRecupera il certificato radice. Il link all'URL è
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtPuoi scaricare il certificato localmente o utilizzare direttamente il link al certificato.Per scaricare il certificato, esegui questo comando:
curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtSostituisci PATH_TO_LOCAL_STORE con il percorso locale in cui vuoi scaricare il certificato.
Scarica lo script di verifica.
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.shEsegui lo script di verifica e verifica.
./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata-sig.zip --root_cert_url ROOT_CERT_URLSostituisci quanto segue:
- PATH_TO_DATA_FILE con il percorso locale dello script
download_metadata.pyche vogliamo verificare, come ottenuto nel passaggio 2. - ROOT_CERT_URL con l'URL del certificato radice. Se vuoi utilizzare un certificato locale già scaricato, esegui il seguente comando:
–root_cert_local ROOT_CERT_LOCALSostituisci ROOT_CERT_LOCAL con il percorso locale del certificato radice.
- PATH_TO_DATA_FILE con il percorso locale dello script
Passaggi successivi
- Verificare la provenienza della build
- Scopri di più sulla protezione della catena di fornitura del software