Nesta página, explicamos como verificar a assinatura nos artefatos do Assured OSS.
Esta página se aplica apenas ao nível sem custo financeiro. Para o nível premium, consulte Acessar metadados de segurança e verificar pacotes.
Verificação de pacote
As assinaturas de pacote são armazenadas separadamente do pacote em um bucket do Cloud Storage no formato zip.
É possível verificar as assinaturas usando a
ferramenta de verificação do OSS garantido (aoss-verifier) ou um script de verificação.
Como usar a ferramenta aoss-verifier
Antes de usar essa ferramenta, verifique se o Go está instalado no seu sistema. Se o Go não estiver instalado, faça isso no site do Go.
Para verificar a autenticidade e a integridade dos pacotes de software de código aberto, instale a ferramenta aoss-verifier (link em inglês).
Exporte
$(go env GOPATH)/bine execute o 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]Substitua:
- LANGUAGE: a linguagem do pacote de programação,
javaoupython. O valor precisa estar em letras minúsculas. - PACKAGE_ID: para Java, é groupId:artifactId e para Python é packageName. O valor precisa estar em letras minúsculas.
- VERSION: a versão do pacote.
- ARTIFACT_PATH: o caminho para o arquivo de dados no diretório
local que você quer verificar. Use as seguintes extensões de nome de arquivo:
- Extensão de arquivo
jarpara um pacote Java - Extensão de arquivo
whlpara um pacote Python.
- Extensão de arquivo
--disable_certificate_verificationé uma flag opcional que ignora a correspondência do certificado de folha com o certificado raiz pela cadeia de certificados, se usada.--temp_downloads_pathé uma flag opcional para definir o caminho em que você quer fazer o download dos arquivos. (substitua TEMP_DOWNLOADS_DIR_PATH). Se essa flag não estiver definida, os arquivos serão baixados para a pastatmp_downloadsno diretório atual.--disable_deletesé uma flag opcional que mantém os arquivos baixados. Por padrão, a ferramenta limpa todos os arquivos baixados.- LANGUAGE: a linguagem do pacote de programação,
Consulte o README para mais informações.
Usar o script de verificação
Nesta seção, descrevemos como usar um script de verificação para verificar as assinaturas dos pacotes baixados.
Etapa 1: extrair o URL de assinatura
O URL do arquivo ZIP está disponível nos metadados de segurança de cada pacote. O exemplo a seguir é uma amostra dos metadados do Container Analysis.
Como mostrado no exemplo a seguir, você pode encontrar o URL do zip da assinatura no 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}"
}
}
Exemplo de metadados do Cloud Storage (buildInfo.json file). Como mostrado
no exemplo a seguir, é possível extrair o URL do zip de assinatura do 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"
}
],
É possível usar o zip de assinatura local para verificação manual ou
o URL do Cloud Storage diretamente para usar o script de verificação. Siga estas etapas para fazer o download do arquivo signature.zip:
Configure a autenticação usando Application Default Credentials (ADC).
Faça o download do
signature.zipusando o seguinte comando:gcloud storage cp SIGNATURE_ZIP_URL PATH_TO_LOCAL_STORE --recursiveSubstitua:
- SIGNATURE_ZIP_URL: o URL do ZIP de assinatura.
- PATH_TO_LOCAL_STORE: o caminho local onde você quer baixar o arquivo.
Etapa 2: acessar o certificado raiz
Para acessar o certificado raiz, use o seguinte URL:
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
Você pode fazer o download do certificado localmente ou usar o link dele diretamente. Para fazer o download do certificado, execute o seguinte comando:
curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
Substitua PATH_TO_LOCAL_STORE pelo caminho local em que você quer fazer o download do certificado.
Etapa 3: encontrar o local do arquivo do pacote
O arquivo que vamos verificar é o jar para pacotes Java e o arquivo wheel para pacotes Python. Esse arquivo seria o PATH_TO_DATA_FILE para verificação.
Etapa 4: verificação
É possível verificar manualmente o zip de assinatura seguindo as etapas em verificação manual de assinatura ou usar o script de verificação.
Para verificar usando o script de verificação, execute os seguintes comandos:
Baixe o script de verificação e conceda permissões.
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.shExecute o script de verificação e confira. É possível usar os URLs remotos ou caminhos locais para o zip de assinatura e o certificado raiz.
./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url SIGNATURE_ZIP_URL --root_cert_url ROOT_CERT_URLSubstitua:
- PATH_TO_DATA_FILE com o caminho para o arquivo de pacote identificado na etapa 3
- SIGNATURE_ZIP_URL com o URL ZIP da assinatura obtido na etapa 1.
- ROOT_CERT_URL com o URL do certificado raiz obtido na etapa 2.
Verificação de metadados
Nesta seção, explicamos como verificar a assinatura nos metadados do Assured OSS acessados usando o Cloud Storage.
Usar a ferramenta aoss-verifier
Use a ferramenta aoss-verifier para verificar os metadados.
Antes de usar essa ferramenta, instale o Go.
Instale a ferramenta aoss-verifier.
Exporte
$(go env GOPATH)/bine execute o 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]Substitua:
- TYPE: os valores possíveis são
buildinfo,vexinfoehealthinfo. - LANGUAGE: a linguagem do pacote de programação,
javaoupython. O valor precisa estar em letras minúsculas. - PACKAGE_ID: para Java, o formato é groupId:artifactId. Para Python, o formato é packageName. O valor precisa estar em letras minúsculas.
- VERSION: a versão do pacote.
--disable_certificate_verificationé uma flag opcional que ignora a correspondência do certificado de folha com o certificado raiz pela cadeia de certificados, se usada.--temp_downloads_pathé uma flag opcional para definir o caminho em que você quer baixar os arquivos (substitua TEMP_DOWNLOADS_DIR_PATH). Se essa flag não for definida, os arquivos serão baixados para a pastatmp_downloadsno diretório atual.--disable_deletesé uma flag opcional que mantém os arquivos baixados. Por padrão, a ferramenta limpa todos os arquivos baixados.- TYPE: os valores possíveis são
Para mais informações, consulte o README.
Usar o script de verificação
Nesta seção, descrevemos como usar um script de verificação para verificar o arquivo de metadados de segurança.
Etapa 1: extrair o arquivo ZIP de assinatura e o arquivo de metadados
Podemos acessar os metadados como em Acessar metadados. O arquivo de metadados estaria presente com o arquivo signature.zip.
Exemplo: conteúdo de buildInfo.zip
buildInfo.json
signature.zip
O buildInfo.json é o arquivo de metadados que precisa ser verificado, e o
signature.zip é o ZIP de assinatura.
Etapa 2: acessar o certificado raiz
Use o seguinte link de URL para receber o certificado raiz:
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
Você pode fazer o download do certificado localmente ou usar o link dele diretamente. Para fazer o download do certificado, execute o seguinte comando:
curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
Substitua PATH_TO_LOCAL_STORE pelo caminho local em que você quer fazer o download do certificado.
Etapa 3: verificação
Você pode verificar o signature.zip usando a verificação manual ou
usando o script de verificação.
Para verificar usando o script de verificação, execute os seguintes comandos:
Baixe o script de verificação e conceda permissões.
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.shExecute o script de verificação e confira. Use o caminho local do arquivo ZIP de assinatura. Para o certificado raiz, use o URL ou o caminho local. O arquivo de dados seria o arquivo de metadados que estamos verificando:
buildInfo.json,vexInfo.jsonouhealthInfo.json../signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_local_path SIGNATURE_LOCAL_PATH --root_cert_url ROOT_CERT_URLSubstitua:
PATH_TO_DATA_FILE com o arquivo de metadados que estamos verificando, conforme obtido na etapa 1.
SIGNATURE_LOCAL_PATH com o URL ZIP da assinatura obtido na etapa 1.
ROOT_CERT_URL com o URL do certificado raiz obtido na etapa 2.
Se você quiser usar um certificado local já baixado, use esta opção:
--root_cert_local ROOT_CERT_LOCALSubstitua ROOT_CERT_LOCAL pelo caminho do certificado local.
Verificação de script utilitário
O Assured OSS fornece três scripts de utilidade. Esta seção descreve como verificar a assinatura nesses scripts.
Gerador de Python Requirements.txt
Acesse a assinatura deste arquivo em
gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator-sig.zip. Você pode verificar o
signature.zip usando a verificação manual ou
usando o script de verificação.
Para verificar rapidamente a assinatura usando o script de verificação, siga estas etapas:
Se você ainda não fez o download do arquivo de script do gerador
requirements.txt, faça isso.gcloud storage cp "gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh" . --recursiveExtraia o certificado raiz. O link do URL é
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtVocê pode fazer o download do certificado localmente ou usar o link dele diretamente. Para fazer o download do certificado, execute o seguinte comando:curl -o PATH_TO_LOCAL_STORE/ca.crt "https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt"Substitua PATH_TO_LOCAL_STORE pelo caminho local em que você quer baixar o certificado.
Baixe o script de verificação, se ainda não tiver feito isso.
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.shExecute o script de verificação e confira.
./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_URLSubstitua:
- PATH_TO_DATA_FILE com o caminho local do script
generator.shque queremos verificar, conforme obtido na etapa 2. - ROOT_CERT_URL com o URL do certificado raiz. Se você quiser usar um certificado local já baixado, execute o seguinte comando:
–root_cert_local ROOT_CERT_LOCALSubstitua ROOT_CERT_LOCAL pelo caminho local do certificado raiz.
- PATH_TO_DATA_FILE com o caminho local do script
Script de verificação de assinatura
Acesse a assinatura deste arquivo em gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification-sig.zip. Você pode verificar o
signature.zip usando a verificação manual ou
usando o script de verificação.
Para verificar rapidamente a assinatura usando o script de verificação, siga estas etapas:
Se você ainda não fez o download do arquivo de script de verificação de assinatura, faça isso.
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.shExtraia o certificado raiz. O link do URL é
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtVocê pode fazer o download do certificado localmente ou usar o link dele diretamente. Comando para fazer o download do certificado:curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtSubstitua PATH_TO_LOCAL_STORE pelo caminho local em que você quer baixar o certificado.
Execute o script de verificação e confira.
./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_URLSubstitua:
PATH_TO_DATA_FILE com o caminho local do script de verificação que queremos verificar, conforme obtido na etapa 2. ROOT_CERT_URL com o URL do certificado raiz. Se você quiser usar um certificado local já baixado, use esta opção:
–root_cert_local ROOT_CERT_LOCALSubstitua ROOT_CERT_LOCAL pelo caminho local do certificado raiz.
Fazer o download do script de metadados
Acesse a assinatura deste arquivo em gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata-sig.zip. Você pode verificar o
signature.zip usando a verificação manual ou
usando o script de verificação.
Para verificar rapidamente a assinatura usando o script de verificação, siga estas etapas:
Se você ainda não fez o download do arquivo de script
download_metadata.py, faça isso agora.gcloud storage cp "gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata.py" . --recursiveExtraia o certificado raiz. O link do URL é
https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtVocê pode fazer o download do certificado localmente ou usar o link dele diretamente.Para fazer o download do certificado, execute o seguinte comando:
curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crtSubstitua PATH_TO_LOCAL_STORE pelo caminho local em que você quer baixar o certificado.
Baixe o script de verificação.
gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive chmod +x signatureverification.shExecute o script de verificação e confira.
./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_URLSubstitua:
- PATH_TO_DATA_FILE com o caminho local do script
download_metadata.pyque queremos verificar, conforme obtido na etapa 2. - ROOT_CERT_URL com o URL do certificado raiz. Se você quiser usar um certificado local já baixado, execute o seguinte comando:
–root_cert_local ROOT_CERT_LOCALSubstitua ROOT_CERT_LOCAL pelo caminho local do certificado raiz.
- PATH_TO_DATA_FILE com o caminho local do script