Node.js-Pakete automatisch scannen

In diesem Dokument wird beschrieben, wie Sie die Container Scanning API aktivieren, ein Image per Push an Artifact Registry übertragen und die Liste der im Image gefundenen Sicherheitslücken aufrufen.

In der Artefaktanalyse werden Informationen zu Sicherheitslücken als Hinweise gespeichert. Für jede mit einem Bild verknüpfte Instanz eines Hinweises wird ein Vorkommen erstellt. Weitere Informationen finden Sie in der Übersicht und in der Preisdokumentation.

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry and Container Scanning APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Installieren Sie die Google Cloud CLI.

  6. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  7. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Artifact Registry and Container Scanning APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  11. Installieren Sie die Google Cloud CLI.

  12. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  13. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  14. Erstellen Sie ein Docker-Repository in Artifact Registry und übertragen Sie ein Container-Image mit Ihrem npm-Code per Push in das Repository. Wenn Sie mit Artifact Registry nicht vertraut sind, lesen Sie die Docker-Kurzanleitung.

Image-Sicherheitslücken ansehen

Die Artefaktanalyse scannt neue Images, wenn sie in Artifact Registry hochgeladen werden. Bei diesem Scan werden Informationen zu den Paketen im Container extrahiert.

Sie können Sicherheitslückenvorkommen für Ihre Images in Artifact Registry mit der Google Cloud Console, der Google Cloud CLI oder der Container Analysis API aufrufen. Wenn ein Image Sicherheitslücken aufweist, können Sie dann die Details abrufen.

Artefaktanalyse scannt Images und Pakete weiterhin, solange sie in den letzten 30 Tagen abgerufen wurden. Nach 30 Tagen werden die Metadaten für gescannte Bilder und Pakete nicht mehr aktualisiert und die Ergebnisse sind veraltet.

Die Artefaktanalyse archiviert Metadaten, die seit mehr als 90 Tagen inaktiv sind. Diese archivierten Metadaten können nur über die API ausgewertet werden. Sie können ein Image mit veralteten oder archivierten Metadaten noch einmal scannen, indem Sie das Image per Pull abrufen. Das Aktualisieren der Metadaten kann bis zu 24 Stunden dauern. Pakete mit veralteten oder archivierten Metadaten können nicht neu gescannt werden.

Vorkommen in der Google Cloud Console ansehen

So sehen Sie die Sicherheitslücken in einem Image:

  1. Rufen Sie die Liste der Repositories ab.

    Zur Seite „Repositories“

  2. Klicken Sie in der Liste der Repositories auf ein Repository.

  3. Klicken Sie in der Liste der Bilder auf einen Bildnamen.

    Alle Sicherheitslücken für jeden Image-Digest werden in der Spalte Sicherheitslücken angezeigt.

    Ein gescanntes Bild mit Sicherheitslücken

  4. Wenn Sie die Liste der Sicherheitslücken für ein Image aufrufen möchten, klicken Sie auf den Link in der Spalte Vulnerabilities (Sicherheitslücken).

    Im Bereich Scanergebnisse wird eine Zusammenfassung der gescannten Pakettypen, der Gesamtzahl der Sicherheitslücken, der Sicherheitslücken mit verfügbaren Korrekturen, der Sicherheitslücken ohne Korrekturen und des effektiven Schweregrads angezeigt.

    Auf der Seite mit den Scanergebnissen werden Sicherheitslücken, Korrekturen und der effektive Schweregrad aufgeführt.

    In der Tabelle mit den Sicherheitslücken sind für jede gefundene Sicherheitslücke der CVE-Name (Common Vulnerabilities and Exposures), der effektive Schweregrad, die CVSS-Punktzahl (Common Vulnerability Scoring System), Korrekturen (sofern verfügbar), der Name des Pakets, das die Sicherheitslücke enthält, und der Pakettyp aufgeführt.

    In derGoogle Cloud Console werden in dieser Tabelle bis zu 1.200 Sicherheitslücken pro Seite angezeigt. Sie können diese Dateien filtern und sortieren, um eine bestimmte Datei, ein bestimmtes Verzeichnis, eine bestimmte Ebene oder einen bestimmten Dateityp nach Dateiendung zu prüfen.

  5. Klicken Sie auf den Namen der CVE, um Details zu einer bestimmten CVE aufzurufen.

  6. Wenn Sie Details zum Auftreten von Sicherheitslücken wie Versionsnummer und betroffene Stelle aufrufen möchten, klicken Sie in der Zeile mit dem Namen der Sicherheitslücke auf Anzeigen oder Behobene anzeigen. Der Linktext lautet Ansehen für Sicherheitslücken ohne Korrektur und Behobene ansehen für Sicherheitslücken, bei denen eine Korrektur angewendet wurde.

Sicherheitslücken in einer bestimmten Ebene ansehen

Die Artefaktanalyse bietet schichtspezifische Metadaten, mit denen Sie ermitteln können, welches Paket Sicherheitslücken enthält und mit welchem Docker-Build-Befehl diese Schicht eingeführt wurde.

So rufen Sie schichtbasierte Metadaten zu Sicherheitslücken in der Google Cloud -Console auf:

  1. Öffnen Sie in Artifact Registry die Liste Ihrer Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf der Seite Repositories auf ein Repository.

  3. Klicken Sie auf der Seite Repository Details (Repository-Details) auf ein Bild.

  4. Klicken Sie in der Liste der Image-Versionen auf einen Image-Digest.

  5. Klicken Sie auf der Seite mit den Details zum Image-Digest auf den Tab Sicherheitslücken.

    Wenn schichtbasierte Metadaten verfügbar sind, wird in der Leiste Layer (Ebene) eine auswählbare Liste von Ebenen angezeigt:

    Ein Bild der Seite „Sicherheitslücken“ für einen Image-Digest, einschließlich der Ebenenleiste. Die Ebenenleiste enthält ein Drop-down-Menü, in dem Sie eine Ebene aus einer nummerierten Liste auswählen können.

  6. Klicken Sie auf das Drop-down-Menü für Ebenen, um die Liste der Ebenen aufzurufen.

    Eine Drop-down-Liste mit einer nummerierten Liste von Ebenen wird geöffnet. Ebene 0 stellt die unterste Ebene dar, wobei jede folgende Ebene auf der vorherigen aufbaut. Es werden nur Ebenen angezeigt, in denen Sicherheitslücken gefunden wurden.

    Bild eines geöffneten Drop-down-Menüs für Ebenen. Im Menü sehen Sie den Docker-Befehl, mit dem die Ebene erstellt wurde, sowie den Typ und die Anzahl der Sicherheitslücken für jede Ebene.

    Für jedes Layer zeigt die Artefaktanalyse den Docker-Befehl, der zum Erstellen des Layers verwendet wurde, und die Anzahl der in diesem Layer gefundenen Sicherheitslücken.

  7. Wenn Sie mehr über die Sicherheitslücken in einer bestimmten Ebene erfahren möchten, wählen Sie eine Ebene aus der Liste aus.

    Die Tabelle mit den Sicherheitslücken wird aktualisiert und enthält nur die Sicherheitslücken, die in der ausgewählten Ebene gefunden wurden. Sie können weitere Filter anwenden oder bestimmte Sicherheitslücken untersuchen.

  8. Klicken Sie neben einer Sicherheitslücke auf ANSEHEN oder KORREKTUR ANSEHEN, um detailliertere Informationen zur Sicherheitslücke aufzurufen.

    In der Seitenleiste Details zur Sicherheitslücke werden Dateipfade angezeigt, in denen Pakete Sicherheitslücken aufweisen.

  9. Bewegen Sie den Mauszeiger in der Tabelle Dateispeicherorte auf das Fragezeichen, um zusätzliche Metadaten für die Ebene aufzurufen.

    In einem Dialogfeld werden der Layer-Index, der Layer-Build-Befehl, der Layer-Digest und das Basis-Image angezeigt, in dem Sie die Sicherheitslücke beheben können.

Vorkommen mit gcloud ansehen

Führen Sie den Befehl gcloud artifacts docker images list aus, um Vorkommen für Bilder in Artifact Registry aufzurufen:

  gcloud artifacts docker images list --show-occurrences \
      LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID

Wobei:

  • LOCATION ist der regionale oder multiregionale Speicherort des Repositorys.
  • PROJECT_ID ist Ihre Projekt-ID der Google Cloud Console.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • IMAGE_ID ist der Name des Images im Repository. Mit diesem Befehl können Sie kein Image-Tag angeben.

Standardmäßig werden mit dem Befehl die zehn letzten Ergebnisse zurückgegeben. Verwenden Sie das Flag --show-occurrences-from, um eine andere Anzahl von Ergebnissen anzuzeigen. Der folgende Befehl gibt beispielsweise die 25 neuesten Ergebnisse zurück:

gcloud artifacts docker images list --show-occurrences-from=25 \
    us-central1-docker.pkg.dev/my-project/my-repo/my-image

Die Ausgabe sieht etwa so aus: