Die Artefaktanalyse bietet zwei Möglichkeiten zum Scannen von Images: automatisches Scannen und On-Demand-Scannen. In diesem Dokument werden die Funktionen für beide Arten des Scannens beschrieben.
Artefaktanalyse bietet auch die Verwaltung von Metadaten. Weitere Informationen dazu, wie Sie Scanning und Metadatenspeicherung kombinieren können, um Ihre CI/CD-Pipeline von Anfang bis Ende zu schützen, finden Sie in der Übersicht zu Artifact Analysis.
Weitere Informationen zu den Kosten für das Scannen von Container-Images finden Sie unter Preise.
In dieser Übersicht wird davon ausgegangen, dass Sie bereits mit der Verwendung von Docker-Repositories in Artifact Registry oder Container Registry (eingestellt) vertraut sind.
Automatisches Scannen
Mit der Artefaktanalyse werden Scans auf Sicherheitslücken für Ihre Artefakte in Artifact Registry oder Container Registry (eingestellt) durchgeführt. Bei der Artefaktanalyse werden auch Abhängigkeiten und Lizenzen ermittelt, damit Sie die Zusammensetzung Ihrer Software besser nachvollziehen können.
Das automatische Scannen umfasst zwei Hauptaufgaben: das Scannen beim Push und die kontinuierliche Analyse.
Push-Scanning
Die Artefaktanalyse scannt neue Images, sobald sie in Artifact Registry oder Container Registry hochgeladen werden. Bei diesem Scan werden Informationen zu den Paketen im Container extrahiert. Die Bilder werden nur einmal gescannt, und zwar anhand des Digest des Bildes. Das Hinzufügen oder Ändern von Tags löst also keine neuen Scans aus.
Mit Artefaktanalyse werden nur Sicherheitslücken in Paketen erkannt, die öffentlich auf Sicherheitslücken überwacht werden.
Wenn der Scan eines Images abgeschlossen ist, ist das entstandene Sicherheitslückenergebnis die Sammlung der Vorkommen von Sicherheitslücken in einem Image.
Kontinuierliche Analyse
Die Artefaktanalyse erstellt Vorkommen für Sicherheitslücken, die beim Hochladen des Images festgestellt wurden. Nach dem ersten Scan werden die Metadaten für gescannte Images in Artifact Registry und Container Registry kontinuierlich auf neue Sicherheitslücken geprüft.
Die Artefaktanalyse erhält mehrmals täglich neue und aktualisierte Informationen zu Sicherheitslücken aus Sicherheitslückenquellen. Wenn neue Daten zu Sicherheitslücken eingehen, aktualisiert die Artefaktanalyse die Metadaten der gescannten Images, um sie auf dem neuesten Stand zu halten. Artefaktanalyse aktualisiert vorhandene Vorkommen von Sicherheitslücken, erstellt neue Vorkommen von Sicherheitslücken für neue Hinweise und löscht Vorkommen von Sicherheitslücken, die nicht mehr gültig sind.
Die Artefaktanalyse aktualisiert nur die Metadaten für Images, die in den letzten 30 Tagen per Push oder Pull übertragen wurden. Nach 30 Tagen werden die Metadaten nicht mehr aktualisiert und die Ergebnisse sind veraltet. Außerdem archiviert die Artefaktanalyse Metadaten, die seit mehr als 90 Tagen inaktiv sind. Diese Metadaten sind dann nicht mehr in der Google Cloud -Konsole, in gcloud oder über die API verfügbar. Wenn Sie ein Image mit veralteten oder archivierten Metadaten noch einmal scannen möchten, rufen Sie dieses Image per Pull ab. Das Aktualisieren der Metadaten kann bis zu 24 Stunden dauern.
Manifestlisten
Sie können auch Manifestlisten für das Scannen auf Sicherheitslücken verwenden. Eine Manifestliste ist eine Liste von Zeigern auf Manifeste für mehrere Plattformen. Sie ermöglichen es, dass ein einzelnes Image mit mehreren Architekturen oder Varianten eines Betriebssystems funktioniert.
Das Scannen auf Sicherheitslücken mit der Artefaktanalyse wird nur für Linux-amd64-Images unterstützt. Wenn Ihre Manifestliste auf mehr als ein Linux-amd64-Image verweist, wird nur das erste gescannt. Wenn es keine Verweise auf Linux-amd64-Images gibt, erhalten Sie keine Scanergebnisse.
On-Demand-Scanning
Mit dem On-Demand-Scanning können Sie Container-Images lokal auf Ihrem Computer oder in Ihrer Registry mit der gcloud CLI scannen. So haben Sie die Flexibilität, Ihre CI/CD-Pipeline anzupassen, je nachdem, wann Sie auf die Ergebnisse der Sicherheitslücken zugreifen müssen.
Unterstützte Pakettypen
Wenn Sie Container-Images per Push in Docker-Repositories in Artifact Registry übertragen, kann Artefaktanalyse Sicherheitslücken in verschiedenen Arten von Betriebssystempaketen und Anwendungssprachpaketen scannen.
Container Registry wurde eingestellt. In Container Registry werden beim automatischen Scannen nur Betriebssystempakete gescannt. Wenn Sie Container Registry verwenden, erfahren Sie hier, wie Sie zu Artifact Registry wechseln.
In den folgenden Tabellen werden die Arten von Paketen verglichen, die von Artefaktanalyse mit den einzelnen Scanservices gescannt werden können:
Unterstützte Betriebssystempakete
Automatisches Scannen mit Artifact Registry | Automatisches Scannen mit Container Registry (eingestellt) | On-Demand-Scanning | |
---|---|---|---|
AlmaLinux OS | |||
Alpine | |||
CentOS | |||
Chainguard | |||
Debian | |||
Google Distroless | |||
Red Hat Enterprise Linux (RHEL) | |||
Red Hat Universal Base Image (UBI) | |||
Rocky Linux | |||
SUSE Linux Enterprise Server (SLES) | |||
Ubuntu | |||
Wolfi |
Unterstützte Sprachpakete für Anwendungen
Automatisches Scannen mit Artifact Registry | Automatisches Scannen mit Container Registry (eingestellt) | On-Demand-Scanning | |
---|---|---|---|
Go-Pakete | |||
Java-Pakete | |||
Node.js-Pakete | |||
PHP-Pakete | |||
Python-Pakete | |||
Ruby-Pakete | |||
Rust-Pakete | |||
.NET-Pakete |
Die Artefaktanalyse scannt nur Anwendungs-Sprachpakete in Artifact Registry, wenn die Pakete in Containern gespeichert und in einem Repository im Docker-Format gespeichert sind. Die anderen Repository-Formate von Artifact Registry werden nicht unterstützt.
Weitere Informationen zu den Funktionen, die für die einzelnen Registry-Produkte verfügbar sind, finden Sie in der Vergleichstabelle.
Die Artefaktanalyse wird für Windows Server-Container nicht unterstützt.
Schnittstellen für die Artefaktanalyse
In der Google Cloud -Konsole können Sie Sicherheitslücken und Metadaten von Images für Container in Artifact Registry ansehen.
Mit der gcloud CLI können Sie Sicherheitslücken und Image-Metadaten einsehen.
Sie können zu diesem Zweck auch die Artifact Analysis REST API verwenden. Wie bei anderen Cloud Platform-APIs müssen Sie sich vor dem Zugriff mit OAuth2 authentifizieren. Nach der Authentifizierung können Sie mit der API auch benutzerdefinierte Hinweise und Vorkommen erstellen und Sicherheitslückenvorkommen ansehen.
Die Artifact Analysis API unterstützt sowohl gRPC als auch REST/JSON. Sie können die API entweder über die Clientbibliotheken oder über cURL für REST/JSON aufrufen.
Bereitstellung von anfälligen Images steuern
Sie können Artefaktanalyse in die Binärautorisierung einbinden, um Attestierungen zu erstellen. Dadurch wird verhindert, dass Container-Images mit bekannten Sicherheitslücken in Ihrer Bereitstellungsumgebung ausgeführt werden.
Sie können die Binärautorisierung auch verwenden, um im Rahmen Ihres Deployments eine Zulassungsliste für Sicherheitslücken auf Grundlage der von Artefaktanalyse bereitgestellten Informationen zu Sicherheitslücken zu erstellen. Wenn die Sicherheitslücken gegen die Richtlinie in der Zulassungsliste verstoßen, werden Sie benachrichtigt.
Schließlich können Sie On-Demand-Scans verwenden, um Builds basierend auf dem Schweregrad der gefundenen Sicherheitslücken zu blockieren und fehlzuschlagen.
Quellen von Sicherheitslücken
Im folgenden Abschnitt sind die Sicherheitslückenquellen aufgeführt, die von Artefaktanalyse zum Abrufen von CVE-Daten verwendet werden.
Scans von Betriebssystempaketen
Artefaktanalyse verwendet die folgenden Quellen:
- AlmaLinux OS
- Alpine
- CentOS: Red Hat und CentOS verwenden dieselbe Quelle für Sicherheitslücken. Da CentOS-Pakete nach Red Hat-Paketen veröffentlicht werden, kann es einige Zeit dauern, bis ein Fix für eine Sicherheitslücke in Red Hat auch für CentOS verfügbar ist.
- Kettenschutz
- Debian
- Google Distroless basiert auf Debian und verwendet die Debian-Schwachstellendaten.
- National Vulnerability Database
- Red Hat Enterprise Linux (RHEL)
- Red Hat Universal Base Image (UBI)
- Rocky Linux
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
- Wolfi
Scans von Sprachpaketen
Artefaktanalyse unterstützt das Scannen auf Sicherheitslücken für Sprachpakete in einem Container-Image. Die Daten zu Sicherheitslücken stammen aus der GitHub Advisory Database.
In den meisten Fällen wird jeder Sicherheitslücke eine CVE-ID zugewiesen, die zur Haupt-ID für diese Sicherheitslücke wird. Wenn einer Sicherheitslücke keine CVE-ID zugewiesen ist, wird stattdessen eine GHSA-ID als Kennung zugewiesen. Wenn diese Sicherheitslücke später eine CVE-ID erhält, wird die Sicherheitslücken-ID entsprechend aktualisiert. Weitere Informationen finden Sie unter Nach einer bestimmten Sicherheitslücke in einem Projekt suchen.
Unterstützte Betriebssystemversionen
Artefaktanalyse unterstützt das Scannen auf Sicherheitslücken für die folgenden Versionen von Betriebssystemsoftware:
- AlmaLinux OS-Versionen: 8, 9 und Nebenversionen
- Alpine Linux-Versionen: 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.15, 3.16, 3.17, 3.18, 3.19, 3.20, 3.21
- CentOS-Versionen: 6, 7, 8 und Nebenversionen
- Chainguard: Rolling Updates auf einem einzelnen Release-Track.
- Debian GNU/Linux-Versionen: 11, 12, 13
- Red Hat Enterprise Linux (RHEL) – Versionen: 7, 8, 9 und Nebenversionen werden für automatische Registry-Scans unterstützt.
- Red Hat Universal Base Image (UBI) – Versionen 8, 9 und Nebenversionen
- Rocky Linux-Versionen: 8, 9 und Nebenversionen
- SUSE Linux Enterprise Server (SLES) – Versionen: 12, 15 und Nebenversionen; SLES for SAP wird auch mit denselben Versionen unterstützt
- Ubuntu-Versionen: 14.04, 16.04, 18.04, 20.04, 22.04, 24.04, 24.10
- Wolfi – Rolling Updates auf einem einzelnen Release-Track.
Beschränkungen
Die Hauptfunktion von Artefaktanalyse besteht darin, Sicherheitslücken in Containern zu scannen und zu erkennen und diese Sicherheitslücken für Ihre Organisation sichtbar zu machen. Die Artefaktanalyse beansprucht nicht, Merkmale von Bildern zu identifizieren, die die Fähigkeit Ihrer Organisation erhöhen oder verringern könnten, die Integrität oder Vertrauenswürdigkeit eines Bildes zu überprüfen. Um dieses Vertrauen weiter zu stärken, bietet Google Lösungen an, die Sie einzeln oder in Kombination verwenden können. Weitere Informationen zu unserem Ansatz für die Sicherheit der Softwarelieferkette
Artefaktanalyse liefert Ergebnisse des Scans auf Sicherheitslücken für RHEL basierend auf der neuesten Nebenversion für jede veröffentlichte Hauptversion. Bei älteren Nebenversionen von RHEL kann es zu Ungenauigkeiten bei den Scanergebnissen kommen.
RHEL Version 9 wird für On-Demand-Scans nicht unterstützt.
Paketmanager und semantische Versionierung
- Go Artefaktanalyse meldet Sicherheitslücken für Pakete in der Go-Standardbibliothek und für externe Go-Pakete, die nicht in der Standardbibliothek enthalten sind. Die Sicherheitslücken werden für jeden Pakettyp mit einem anderen Label gemeldet.
- Java: Die Artefaktanalyse unterstützt Maven-Pakete, die den Maven-Namenskonventionen entsprechen. Wenn die Paketversion Leerzeichen enthält, wird sie nicht gescannt.
- Node.js: Die Abgleichung von Paketversionen folgt der Spezifikation für semantische Versionsverwaltung.
- PHP: Bei der Artefaktanalyse werden Composer-Pakete gescannt. Weitere Informationen finden Sie unter Semantische Versionsverwaltung für Composer.
- Python: Die Python-Version entspricht der Semantik von PEP 440.
- Ruby: Bei Artefaktanalyse-Scans werden RubyGems-Pakete gescannt. Weitere Informationen finden Sie unter Semantische Versionsverwaltung von RubyGems.
- Rust: Die Artefaktanalyse scannt Cargo-Pakete. Weitere Informationen finden Sie unter Semantische Versionsverwaltung in Rust.
- .NET: Bei der Artefaktanalyse werden NuGet-Pakete gescannt. Weitere Informationen finden Sie unter Semantische NuGet-Versionierung.