Per confermare l'integrità dei pacchetti open source selezionati, puoi verificare la firma sugli artefatti di Assured Open Source Software (Assured OSS).
Questo documento si applica solo al Livello senza costi. Per il livello Premium, consulta Accedi ai metadati di sicurezza e verifica i pacchetti.
Verifica dei pacchetti
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 di 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 file:
- Estensione del file
jarper un pacchetto Java - Estensione del file
whlper un pacchetto Python
- Estensione del file
--disable_certificate_verificationè un flag facoltativo che, se utilizzato, ignora la corrispondenza del certificato foglia con 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_downloadsnella directory corrente.--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: recupera 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 del file 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 di metadati di Cloud Storage (buildInfo.json file). Come mostrato nell'esempio seguente, puoi ottenere l'URL del file 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 utilizzare lo 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 radice
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: sottoponi tutto a 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 questi 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 il file 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 del file 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 sui metadati di Assured OSS a cui accedi utilizzando Cloud Storage.
Utilizza 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 del certificato foglia con 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_downloadsnella 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 saperne di più, 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: scarica il file ZIP della firma e il file dei metadati
Possiamo accedere ai metadati come descritto in Accedi ai metadati. Il file dei metadati sarà presente insieme al file signature.zip.
Esempio: contenuti di buildInfo.zip
buildInfo.json
signature.zip
buildInfo.json è il file dei metadati che deve essere verificato e
signature.zip è il file ZIP della firma.
Passaggio 2: scarica il certificato radice
Utilizza il seguente link 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 questi 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 radice, puoi utilizzare l'URL o il percorso locale. Il file di dati sarà 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 del file 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 la 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 dell'URL è
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtPuoi 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.
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 questo 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 la 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 per la 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 dell'URL è
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtPuoi scaricare il certificato localmente o utilizzare direttamente il link del 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 la 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
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 dell'URL è
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtPuoi 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.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 questo 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