Signaturen im Assured OSS-Free-Tier überprüfen

Um die Integrität der ausgewählten Open-Source-Pakete zu bestätigen, können Sie die Signatur der Assured Open Source Software-Artefakte (Assured OSS) prüfen.

Dieses Dokument gilt nur für die kostenlose Stufe. Informationen zur Premium-Stufe finden Sie unter Auf Sicherheitsmetadaten zugreifen und Pakete verifizieren.

Paketüberprüfung

Paketsignaturen werden separat vom Paket in einem Cloud Storage-Bucket im ZIP-Format gespeichert. Sie können Signaturen mit dem Assured OSS-Prüftool (aoss-verifier) oder mit einem Prüfskript verifizieren.

Tool „aoss-verifier“ verwenden

Bevor Sie dieses Tool verwenden, muss Go auf Ihrem System installiert sein. Wenn Go nicht installiert ist, installieren Sie es über die Go-Website.

  1. Installieren Sie das Tool aoss-verifier, um die Authentizität und Integrität von Open-Source-Softwarepaketen zu prüfen.

  2. Exportieren Sie $(go env GOPATH)/bin und führen Sie den Befehl aoss-verifier verify-package aus.

    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]
    

    Ersetzen Sie Folgendes:

    • LANGUAGE: Die Sprache des Programmierpakets, entweder java oder python. Der Wert muss in Kleinbuchstaben geschrieben werden.
    • PACKAGE_ID: Für Java ist es groupId:artifactId und für Python packageName. Der Wert muss in Kleinbuchstaben geschrieben werden.
    • VERSION: Die Version des Pakets.
    • ARTIFACT_PATH: Der Pfad zur Datendatei in Ihrem lokalen Verzeichnis, die Sie prüfen möchten. Verwenden Sie die folgenden Dateiendungen:
      • jar-Dateiendung für ein Java-Paket
      • whl-Dateiendung für ein Python-Paket

    --disable_certificate_verification ist ein optionales Flag, mit dem der Abgleich des untergeordneten Zertifikats mit dem Root-Zertifikat über die Zertifikatskette übersprungen wird, falls verwendet.

    --temp_downloads_path ist ein optionales Flag, mit dem Sie den Pfad festlegen, in den die Dateien heruntergeladen werden sollen. (Ersetzen Sie TEMP_DOWNLOADS_DIR_PATH.) Wenn dieses Flag nicht festgelegt ist, werden die Dateien in den Ordner tmp_downloads im aktuellen Verzeichnis heruntergeladen.

    --disable_deletes ist ein optionales Flag, mit dem die heruntergeladenen Dateien beibehalten werden. Standardmäßig bereinigt das Tool alle heruntergeladenen Dateien.

Weitere Informationen finden Sie in der README.

Überprüfungsskript verwenden

In diesem Abschnitt wird beschrieben, wie Sie die Signaturen heruntergeladener Pakete mit einem Bestätigungsskript prüfen.

Schritt 1: Signatur-URL abrufen

Die URL der ZIP-Datei ist in den Sicherheitsmetadaten jedes Pakets verfügbar. Das folgende Beispiel ist ein Beispiel für Container Analysis-Metadaten.

Wie im folgenden Beispiel gezeigt, finden Sie die Signatur-ZIP-URL im Feld 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}"
  }
}

Beispiel aus Cloud Storage-Metadaten (buildInfo.json file). Wie im folgenden Beispiel gezeigt, können Sie die ZIP-URL der Signatur aus dem Feld externalRefs : referenceLocator abrufen.

"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"
                }
            ],

Sie können die lokale Signatur-ZIP-Datei für die manuelle Überprüfung oder die Cloud Storage-URL direkt für das Überprüfungsskript verwenden. So laden Sie die Datei signature.zip herunter:

  1. Richten Sie die Authentifizierung mit Standardanmeldedaten für Anwendungen ein.

  2. Laden Sie die signature.zip mit dem folgenden Befehl herunter:

      gcloud storage cp SIGNATURE_ZIP_URL PATH_TO_LOCAL_STORE --recursive
    

    Ersetzen Sie Folgendes:

    • SIGNATURE_ZIP_URL: die ZIP-URL der Signatur.
    • PATH_TO_LOCAL_STORE: der lokale Pfad, in den Sie die Datei herunterladen möchten.

Schritt 2: Root-Zertifikat abrufen

Verwenden Sie die folgende URL, um auf das Root-Zertifikat zuzugreifen:

https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt

Sie können das Zertifikat lokal herunterladen oder den Zertifikatslink direkt verwenden. Führen Sie den folgenden Befehl aus, um das Zertifikat herunterzuladen:

curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt

Ersetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, in den Sie das Zertifikat herunterladen möchten.

Schritt 3: Speicherort der Paketdatei abrufen

Die zu prüfende Datei ist die JAR-Datei für Java-Pakete und die Wheel-Datei für Python-Pakete. Diese Datei ist die PATH_TO_DATA_FILE für die Bestätigung.

Schritt 4: Bestätigung

Sie können die Signatur-ZIP-Datei manuell mit den Schritten unter Manuelle Signaturprüfung oder mit dem Prüfscript prüfen.

Führen Sie die folgenden Befehle aus, um die Überprüfung mit dem Prüfscript durchzuführen:

  1. Laden Sie das Bestätigungsskript herunter und erteilen Sie Berechtigungen.

      gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
      chmod +x signatureverification.sh
    
  2. Führen Sie das Überprüfungsskript aus und überprüfen Sie es. Sie können die Remote-URLs oder lokalen Pfade für die Signatur-ZIP-Datei und das Root-Zertifikat verwenden.

      ./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_url SIGNATURE_ZIP_URL --root_cert_url ROOT_CERT_URL
    

    Ersetzen Sie Folgendes:

    • PATH_TO_DATA_FILE durch den Pfad zur Paketdatei, die in Schritt 3 ermittelt wurde.
    • SIGNATURE_ZIP_URL durch die URL der ZIP-Datei mit der Signatur, die Sie in Schritt 1 erhalten haben.
    • ROOT_CERT_URL durch die URL des Root-Zertifikats, die Sie in Schritt 2 erhalten haben.

Metadatenüberprüfung

In diesem Abschnitt wird erläutert, wie Sie die Signatur der Assured OSS-Metadaten überprüfen können, auf die über Cloud Storage zugegriffen wird.

Tool „aoss-verifier“ verwenden

Verwenden Sie das Tool aoss-verifier, um Metadaten zu prüfen.

Bevor Sie dieses Tool verwenden, müssen Sie Go installieren.

  1. Installieren Sie das aoss-verifier-Tool.

  2. Exportieren Sie $(go env GOPATH)/bin und führen Sie den Befehl aoss-verifier verify-metadata aus.

    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]
    

    Ersetzen Sie Folgendes:

    • TYPE: Die möglichen Werte sind buildinfo, vexinfo und healthinfo.
    • LANGUAGE: Die Sprache des Programmierpakets, entweder java oder python. Der Wert muss in Kleinbuchstaben geschrieben werden.
    • PACKAGE_ID: Für Java lautet das Format groupId:artifactId. Für Python lautet das Format packageName. Der Wert muss in Kleinbuchstaben geschrieben werden.
    • VERSION: Die Version des Pakets.

    --disable_certificate_verification ist ein optionales Flag, mit dem der Abgleich des untergeordneten Zertifikats mit dem Root-Zertifikat über die Zertifikatskette übersprungen wird, falls verwendet.

    --temp_downloads_path ist ein optionales Flag, mit dem Sie den Pfad festlegen, in den die Dateien heruntergeladen werden sollen (ersetzen Sie TEMP_DOWNLOADS_DIR_PATH). Wenn dieses Flag nicht festgelegt ist, werden die Dateien in den Ordner tmp_downloads im aktuellen Verzeichnis heruntergeladen.

    --disable_deletes ist ein optionales Flag, mit dem die heruntergeladenen Dateien beibehalten werden. Standardmäßig bereinigt das Tool alle heruntergeladenen Dateien.

Weitere Informationen finden Sie in der README-Datei.

Überprüfungsskript verwenden

In diesem Abschnitt wird beschrieben, wie Sie die Sicherheitsmetadatendatei mit einem Verifizierungsskript verifizieren.

Schritt 1: ZIP-Datei mit Signatur und Metadatendatei abrufen

Wir können auf die Metadaten wie unter Auf Metadaten zugreifen beschrieben zugreifen. Die Metadatendatei ist in der Datei „signature.zip“ enthalten.

Beispiel – Inhalt von buildInfo.zip

buildInfo.json
signature.zip

buildInfo.json ist die Metadatendatei, die überprüft werden muss, und signature.zip ist die Signatur-ZIP-Datei.

Schritt 2: Root-Zertifikat abrufen

Verwenden Sie den folgenden URL-Link, um das Root-Zertifikat abzurufen:

https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt

Sie können das Zertifikat lokal herunterladen oder den Zertifikatslink direkt verwenden. Führen Sie den folgenden Befehl aus, um das Zertifikat herunterzuladen:

curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt

Ersetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, in den Sie das Zertifikat herunterladen möchten.

Schritt 3: Bestätigung

Sie können die signature.zip mit der manuellen Bestätigung oder mit dem Bestätigungsskript prüfen.

Führen Sie die folgenden Befehle aus, um die Überprüfung mit dem Prüfscript durchzuführen:

  1. Laden Sie das Bestätigungsskript herunter und erteilen Sie Berechtigungen.

      gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
      chmod +x signatureverification.sh
    
  2. Führen Sie das Überprüfungsskript aus und überprüfen Sie es. Sie sollten den lokalen Pfad für die Signatur-ZIP-Datei verwenden. Für das Root-Zertifikat können Sie entweder die URL oder den lokalen Pfad verwenden. Die Datendatei ist die Metadatendatei, die wir prüfen: buildInfo.json, vexInfo.json oder healthInfo.json.

      ./signatureverification.sh --data_file_path PATH_TO_DATA_FILE --signature_local_path SIGNATURE_LOCAL_PATH --root_cert_url ROOT_CERT_URL
    

    Ersetzen Sie Folgendes:

    • PATH_TO_DATA_FILE durch die Metadatendatei, die wir prüfen, wie in Schritt 1 beschrieben.

    • SIGNATURE_LOCAL_PATH durch die in Schritt 1 abgerufene URL der Signatur-ZIP-Datei.

    • ROOT_CERT_URL durch die URL des Root-Zertifikats, die Sie in Schritt 2 erhalten haben.

      Wenn Sie ein bereits heruntergeladenes lokales Zertifikat verwenden möchten, verwenden Sie stattdessen diese Option:

      --root_cert_local ROOT_CERT_LOCAL
      

      Ersetzen Sie ROOT_CERT_LOCAL durch den Pfad des lokalen Zertifikats.

Überprüfung des Dienstprogrammskripts

Assured OSS bietet drei Dienstprogrammskripts. In diesem Abschnitt wird beschrieben, wie Sie die Signatur dieser Skripts prüfen.

Python-Requirements.txt-Generator

Die Signatur für diese Datei finden Sie unter gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator-sig.zip. Sie können die signature.zip entweder manuell oder mit dem Bestätigungsskript prüfen. So überprüfen Sie die Signatur schnell mit dem Überprüfungsskript:

  1. Richten Sie die Authentifizierung ein.

  2. Wenn Sie die Skriptdatei für den requirements.txt-Generator noch nicht heruntergeladen haben, laden Sie sie herunter.

     gcloud storage cp "gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh" . --recursive
    
  3. Rufen Sie das Root-Zertifikat ab. Die URL lautet https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt. Sie können das Zertifikat lokal herunterladen oder den Zertifikatslink direkt verwenden. Führen Sie den folgenden Befehl aus, um das Zertifikat herunterzuladen:

    curl -o PATH_TO_LOCAL_STORE/ca.crt "https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt"
    

    Ersetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, in den Sie das Zertifikat herunterladen möchten.

  4. Laden Sie das Bestätigungsscript herunter, falls Sie dies noch nicht getan haben.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  5. Führen Sie das Überprüfungsskript aus und überprüfen Sie es.

    ./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_URL
    

    Ersetzen Sie Folgendes:

    • PATH_TO_DATA_FILE durch den lokalen Pfad des generator.sh-Skripts, das wir überprüfen möchten, wie in Schritt 2 beschrieben.
    • ROOT_CERT_URL durch die URL des Root-Zertifikats. Wenn Sie ein bereits heruntergeladenes lokales Zertifikat verwenden möchten, führen Sie den folgenden Befehl aus:
    –root_cert_local ROOT_CERT_LOCAL
    

    Ersetzen Sie ROOT_CERT_LOCAL durch den lokalen Pfad des Root-Zertifikats.

Skript zur Signaturüberprüfung

Die Signatur für diese Datei finden Sie unter gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification-sig.zip. Sie können die signature.zip entweder manuell oder mit dem Bestätigungsskript prüfen. So überprüfen Sie die Signatur schnell mit dem Überprüfungsskript:

  1. Richten Sie die Authentifizierung ein.

  2. Wenn Sie die Skriptdatei zur Signaturprüfung noch nicht heruntergeladen haben, laden Sie sie herunter.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  3. Rufen Sie das Root-Zertifikat ab. Die URL lautet https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt. Sie können das Zertifikat lokal herunterladen oder den Zertifikatslink direkt verwenden. Befehl zum Herunterladen des Zertifikats:

    curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
    

    Ersetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, in den Sie das Zertifikat herunterladen möchten.

  4. Führen Sie das Überprüfungsskript aus und überprüfen Sie es.

    ./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_URL
    

    Ersetzen Sie Folgendes:

    PATH_TO_DATA_FILE durch den lokalen Pfad des Bestätigungsskripts, das Sie bestätigen möchten, wie in Schritt 2 beschrieben. ROOT_CERT_URL durch die URL des Root-Zertifikats. Wenn Sie ein bereits heruntergeladenes lokales Zertifikat verwenden möchten, verwenden Sie stattdessen diese Option:

    –root_cert_local ROOT_CERT_LOCAL
    

    Ersetzen Sie ROOT_CERT_LOCAL durch den lokalen Pfad des Root-Zertifikats.

Metadatenskript herunterladen

Die Signatur für diese Datei finden Sie unter gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata-sig.zip. Sie können die signature.zip entweder manuell oder mit dem Bestätigungsskript prüfen. So überprüfen Sie die Signatur schnell mit dem Überprüfungsskript:

  1. Richten Sie die Authentifizierung ein.

  2. Wenn Sie die Skriptdatei download_metadata.py noch nicht heruntergeladen haben, laden Sie sie herunter.

    gcloud storage cp "gs://cloud-aoss/utils/python-download-metadata/v1.1/download_metadata.py" . --recursive
    
  3. Rufen Sie das Root-Zertifikat ab. Die URL lautet https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt. Sie können das Zertifikat lokal herunterladen oder den Zertifikatslink direkt verwenden.

    Führen Sie den folgenden Befehl aus, um das Zertifikat herunterzuladen:

    curl -o PATH_TO_LOCAL_STORE/ca.crt https://privateca-content-6333d504-0000-2df7-afd6-30fd38154590.storage.googleapis.com/a2c725a592f1d586f1f8/ca.crt
    

    Ersetzen Sie PATH_TO_LOCAL_STORE durch den lokalen Pfad, in den Sie das Zertifikat herunterladen möchten.

  4. Laden Sie das Bestätigungsskript herunter.

    gcloud storage cp "gs://cloud-aoss/utils/signature-verification/v1.0/signatureverification.sh" . --recursive
    chmod +x signatureverification.sh
    
  5. Führen Sie das Überprüfungsskript aus und überprüfen Sie es.

    ./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_URL
    

    Ersetzen Sie Folgendes:

    • PATH_TO_DATA_FILE durch den lokalen Pfad des download_metadata.py-Skripts, das wir überprüfen möchten, wie in Schritt 2 beschrieben.
    • ROOT_CERT_URL durch die URL des Root-Zertifikats. Wenn Sie ein bereits heruntergeladenes lokales Zertifikat verwenden möchten, führen Sie den folgenden Befehl aus:
    –root_cert_local ROOT_CERT_LOCAL
    

    Ersetzen Sie ROOT_CERT_LOCAL durch den lokalen Pfad des Root-Zertifikats.

Nächste Schritte