Dieser Grundsatz in der Säule „Sicherheit“ des Google Cloud Well-Architected Framework hilft Ihnen, praktische Kontrollen zu identifizieren, die Sie früh im Softwareentwicklungszyklus implementieren können, um Ihren Sicherheitsstatus zu verbessern. Er enthält Empfehlungen, mit denen Sie präventive Sicherheitsvorkehrungen und Sicherheitskontrollen nach der Bereitstellung implementieren können.
Grundsatzübersicht
Shift-Left-Sicherheit bedeutet, Sicherheitspraktiken früh im Softwareentwicklungszyklus einzuführen. Dieser Grundsatz hat die folgenden Ziele:
- Sicherheitsfehler vermeiden, bevor Systemänderungen vorgenommen werden. Präventive Sicherheitsvorkehrungen implementieren und Praktiken wie Infrastructure as Code (IaC), Policy as Code und Sicherheitsprüfungen in der CI/CD-Pipeline einführen. Sie können auch andere plattformspezifische Funktionen wie den Organisationsrichtliniendienst und gehärtete GKE-Cluster in Google Cloudverwenden.
- Sicherheitsfehler nach Systemänderungen schnell, zuverlässig und frühzeitig erkennen und beheben. Praktiken wie Code Reviews, Scans auf Sicherheitslücken nach der Bereitstellung und Sicherheitstests einführen.
Die Grundsätze „Sicherheit durch Design implementieren“ und „Shift-Left-Sicherheit“ sind verwandt, unterscheiden sich aber im Umfang. Der Grundsatz „Sicherheit durch Design“ hilft Ihnen, grundlegende Designfehler zu vermeiden, die eine Neugestaltung des gesamten Systems erfordern würden. Bei einer Bedrohungsmodellierung wird beispielsweise festgestellt, dass das aktuelle Design keine Autorisierungsrichtlinie enthält und alle Nutzer ohne diese Richtlinie denselben Zugriff haben. Shift-Left-Sicherheit hilft Ihnen, Implementierungsfehler (Bugs und Fehlkonfigurationen) zu vermeiden, bevor Änderungen angewendet werden, und ermöglicht schnelle, zuverlässige Korrekturen nach der Bereitstellung.
Empfehlungen
Wenn Sie den Grundsatz der Shift-Left-Sicherheit für Ihre Cloud-Arbeitslasten implementieren möchten, sollten Sie die Empfehlungen in den folgenden Abschnitten berücksichtigen:
- Präventive Sicherheitskontrollen einführen
- Bereitstellung und Verwaltung von Cloud-Ressourcen automatisieren
- Sichere Anwendungsreleases automatisieren
- Sorgen Sie dafür, dass beim Bereitstellen von Anwendungen genehmigte Prozesse eingehalten werden.
- Vor der Anwendungsbereitstellung nach bekannten Sicherheitslücken scannen
- Anwendungscode auf bekannte Sicherheitslücken überwachen
Präventive Sicherheitskontrollen einführen
Diese Empfehlung ist für die folgenden Schwerpunkte relevant:
- Identitäts- und Zugriffsverwaltung
- Cloud-Governance, -Risiko und -Compliance
Präventive Sicherheitskontrollen sind entscheidend, um einen starken Sicherheitsstatus in der Cloud aufrechtzuerhalten. Mit diesen Kontrollen können Sie Risiken proaktiv minimieren. Sie können Fehlkonfigurationen und unbefugten Zugriff auf Ressourcen verhindern, Entwicklern die effiziente Arbeit ermöglichen und die Einhaltung von Branchenstandards und internen Richtlinien sicherstellen.
Präventive Sicherheitskontrollen sind effektiver, wenn sie mit Infrastructure as Code (IaC) implementiert werden. Mit IaC können präventive Sicherheitskontrollen umfassendere benutzerdefinierte Prüfungen des Infrastrukturcodes umfassen, bevor Änderungen bereitgestellt werden. In Kombination mit der Automatisierung können präventive Sicherheitskontrollen als Teil der automatischen Prüfungen Ihrer CI/CD-Pipeline ausgeführt werden.
Die folgenden Produkte und Google Cloud Funktionen können Ihnen helfen, präventive Kontrollen in Ihrer Umgebung zu implementieren:
- Einschränkungen des Organisationsrichtliniendienstes: Konfigurieren Sie vordefinierte und benutzerdefinierte Einschränkungen mit zentraler Steuerung.
- VPC Service Controls: Erstellen Sie Perimeter um Ihre Google Cloud Dienste.
- Identity and Access Management (IAM), Privileged Access Manager, und Richtlinien für die Zugriffsgrenze von Principals: Beschränken Sie den Zugriff auf Ressourcen.
- Policy Controller und Open Policy Agent (OPA): Erzwingen Sie IaC-Einschränkungen in Ihrer CI/CD-Pipeline und vermeiden Sie Fehlkonfigurationen in der Cloud.
Mit IAM können Sie anhand von Berechtigungen festlegen, wer Aktionen für bestimmte Ressourcen ausführen darf. Weitere Informationen finden Sie unter Zugriff auf Organisationsressourcen mit IAM steuern.
Mit dem Organisationsrichtliniendienst können Sie Einschränkungen für Ressourcen festlegen, um anzugeben, wie diese konfiguriert werden können. Sie können beispielsweise eine Organisationsrichtlinie für Folgendes verwenden:
- Beschränken der Ressourcenfreigabe auf Grundlage der Domain.
- Nutzung von Dienstkonten einschränken.
- Beschränken des physischen Standorts neu erstellter Ressourcen.
Zusätzlich zur Verwendung von Organisationsrichtlinien können Sie den Zugriff auf Ressourcen mit den folgenden Methoden einschränken:
- Tags mit IAM: Weisen Sie einer Reihe von Ressourcen ein Tag zu und legen Sie dann die Zugriffsdefinition für das Tag selbst fest, anstatt die Zugriffsberechtigungen für jede Ressource zu definieren.
- IAM Conditions: Definieren Sie eine bedingte, attributbasierte Zugriffssteuerung für Ressourcen.
- Gestaffelte Sicherheitsebenen: Verwenden Sie VPC Service Controls, um den Zugriff auf Ressourcen weiter einzuschränken.
Weitere Informationen zur Ressourcenverwaltung finden Sie unter Ressourcenhierarchie für Ihre Google Cloud Landing-Zone festlegen.
Bereitstellung und Verwaltung von Cloud-Ressourcen automatisieren
Diese Empfehlung ist für die folgenden Schwerpunkte relevant:
- Anwendungssicherheit
- Cloud-Governance, -Risiko und -Compliance
Die Automatisierung der Bereitstellung und Verwaltung von Cloud-Ressourcen und -Arbeitslasten ist effektiver, wenn Sie auch deklaratives IaC anstelle von imperativem Scripting verwenden. IaC ist kein eigenständiges Sicherheitstool oder keine eigenständige Sicherheitspraktik, trägt aber dazu bei, die Sicherheit Ihrer Plattform zu verbessern. Mit IaC können Sie wiederholbare Infrastrukturen erstellen und Ihrem Betriebsteam einen bekannten guten Zustand zur Verfügung stellen. IaC verbessert auch die Effizienz von Rollbacks, Prüfänderungen und Fehlerbehebung.
In Kombination mit CI/CD-Pipelines und Automatisierung ermöglicht IaC auch die Einführung von Praktiken wie Policy as Code mit Tools wie OPA. Sie können Infrastrukturänderungen im Zeitverlauf prüfen und automatische Prüfungen des Infrastrukturcodes ausführen, bevor Änderungen bereitgestellt werden.
Zur Automatisierung der Infrastrukturbereitstellung können Sie Tools wie Config Controller, Terraform, Jenkins und Cloud Build verwenden. Damit Sie eine sichere Anwendungsumgebung mit IaC und Automatisierung erstellen können, Google Cloud bietet den Blueprint für Unternehmensgrundlagen. Dieser Blueprint ist das von Google empfohlene Design, das alle unsere empfohlenen Praktiken und Konfigurationen berücksichtigt. Der Blueprint enthält eine Schritt-für-Schritt- Anleitung zum Konfigurieren und Bereitstellen Ihrer Google Cloud Topologie mit Terraform und Cloud Build.
Sie können die Skripts des Blueprints für Unternehmensgrundlagen ändern, um eine Umgebung zu konfigurieren, die den Empfehlungen von Google entspricht und Ihre eigenen Sicherheitsanforderungen erfüllt. Sie können auf dem Blueprint mit zusätzlichen Blueprints aufbauen oder Ihre eigene Automatisierung entwerfen. Im Google Cloud Architecture Center finden Sie weitere Blueprints, die zusätzlich zum Blueprint für Unternehmensgrundlagen implementiert werden können. Einige Beispiele für diese Blueprints:
- Entwicklerplattform für Unternehmen in bereitstellen Google Cloud
- Mit Cloud Run eine sichere serverlose Architektur bereitstellen
- Modelle für generative KI und maschinelles Lernen in einem Unternehmen erstellen und bereitstellen
- Daten aus Google Cloud in ein gesichertes BigQuery-Data Warehouse importieren
Sichere Anwendungsreleases automatisieren
Diese Empfehlung ist für den folgenden Schwerpunkt: Anwendungssicherheit relevant.
Ohne automatisierte Tools kann es schwierig sein, komplexe Anwendungsumgebungen bereitzustellen, zu aktualisieren und zu patchen, um konsistente Sicherheitsanforderungen zu erfüllen. Wir empfehlen, automatisierte CI/CD-Pipelines für Ihren Softwareentwicklungszyklus (SDLC) zu erstellen. Automatisierte CI/CD-Pipelines helfen Ihnen, manuelle Fehler zu vermeiden, standardisierte Entwicklungs-Feedbackschleifen zu erstellen und effiziente Produktiterationen zu ermöglichen. Kontinuierliche Bereitstellung ist eine der Best Practices, die im DORA-Framework empfohlen werden.
Die Automatisierung von Anwendungsreleases mit CI/CD-Pipelines trägt dazu bei, Sicherheitsfehler frühzeitig, schnell und zuverlässig zu erkennen und zu beheben. Sie können beispielsweise automatisch nach Sicherheitslücken suchen, wenn Artefakte erstellt werden, den Umfang von Sicherheitsprüfungen einschränken und zu einer bekannten und sicheren Version zurückkehren. Sie können auch Richtlinien für verschiedene Umgebungen (z. B. Entwicklungs-, Test- oder Produktionsumgebungen) definieren, damit nur geprüfte Artefakte bereitgestellt werden.
bietet mehrere Tools, mit denen Sie Anwendungsreleases automatisieren und Sicherheitsprüfungen in Ihre CI/CD-Pipeline Google Cloud einbetten können, darunter Cloud Build, Cloud Deploy, Web Security Scanner, und Binärautorisierung.
Wenn Sie einen Prozess einrichten möchten, mit dem mehrere Sicherheitsanforderungen in Ihrem SDLC überprüft werden, verwenden Sie das von Google definierte Framework Supply Chain Levels for Software Artifacts (SLSA). SLSA erfordert Sicherheitsprüfungen für Quellcode, Build-Prozess und Codeherkunft. Viele dieser Anforderungen können in eine automatisierte CI/CD-Pipeline aufgenommen werden. Informationen dazu, wie Google diese Praktiken intern anwendet, finden Sie unter Google CloudAnsatz von Google bei Änderungen.
Sorgen Sie dafür, dass beim Bereitstellen von Anwendungen genehmigte Prozesse eingehalten werden.
Diese Empfehlung ist für den folgenden Schwerpunkt: Anwendungssicherheit relevant.
Wenn ein Angreifer Ihre CI/CD-Pipeline manipuliert, kann sich dies auf Ihren gesamten Anwendungsstack auswirken. Zum Sichern der Pipeline sollten Sie einen festgelegten Genehmigungsprozess erzwingen, bevor Sie den Code in der Produktion bereitstellen.
Wenn Sie Google Kubernetes Engine (GKE) oder Cloud Run verwenden, können Sie mit der Binärautorisierung einen Genehmigungsprozess einrichten. Die Binärautorisierung hängt konfigurierbare Signaturen an Container-Images an. Diese Signaturen (auch Attestierungen genannt) helfen, das Image zu validieren. Bei der Bereitstellung verwendet die Binärautorisierung diese Attestierungen, um zu ermitteln, ob ein Prozess abgeschlossen wurde. Sie können die Binärautorisierung beispielsweise für Folgendes verwenden:
- Prüfen Sie, ob ein bestimmtes Build-System oder eine bestimmte CI-Pipeline ein Container-Image erstellt hat.
- Prüfen Sie, ob ein Container-Image mit einer Signaturrichtlinie für Sicherheitslücken kompatibel ist.
- Prüfen Sie, ob ein Container-Image die Kriterien für das Hochstufen in die nächste Bereitstellungsumgebung erfüllt, z. B. von Entwicklung zu QA.
Mit der Binärautorisierung können Sie erzwingen, dass nur vertrauenswürdiger Code auf Ihren Zielplattformen ausgeführt wird.
Vor der Anwendungsbereitstellung nach bekannten Sicherheitslücken scannen
Diese Empfehlung ist für den folgenden Schwerpunkt: Anwendungssicherheit relevant.
Wir empfehlen, automatisierte Tools zu verwenden, die kontinuierlich auf Sicherheitslücken für Anwendungsartefakte scannen können, bevor sie für die Produktion bereitgestellt werden.
Verwenden Sie für containerisierte Anwendungen die Artefaktanalyse um automatisch Scans auf Sicherheitslücken für Container-Images auszuführen. Die Artefaktanalyse scannt neue Images, sobald sie in Artifact Registry hochgeladen werden. Bei diesem Scan werden Informationen zu den Systempaketen im Container extrahiert. Nach dem ersten Scan überwacht die Artefaktanalyse kontinuierlich die Metadaten gescannter Images in Artifact Registry auf neue Sicherheitslücken. Wenn die Artefaktanalyse neue und aktualisierte Informationen zu Sicherheitslücken aus den entsprechenden Quellen, führt sie folgende Schritte aus:
- Aktualisiert die Metadaten der gescannten Bilder, um sie auf dem neuesten Stand zu halten.
- Erstellt neue Vorkommen von Sicherheitslücken für neue Hinweise.
- Löscht Vorkommen von Sicherheitslücken, die nicht mehr gültig sind.
Anwendungscode auf bekannte Sicherheitslücken überwachen
Diese Empfehlung ist für den folgenden Schwerpunkt: Anwendungssicherheit relevant.
Verwenden Sie automatisierte Tools, um Ihren Anwendungscode ständig auf bekannte Sicherheitslücken wie die OWASP Top 10 zu überwachen. Weitere Informationen zu Google Cloud Produkten und Funktionen, die OWASP-Top-10-Abhilfemaßnahmen unterstützen, finden Sie unter OWASP Top 10 – Optionen zur Risikominimierung in Google Cloud.
Mit dem Web Security Scanner können Sie Sicherheitslücken in Ihren App Engine-, Compute Engine- und GKE-Webanwendungen identifizieren. Der Scanner durchsucht Ihre Anwendung, folgt dabei allen Links im Bereich der Start-URLs und versucht, so viele Nutzereingaben und Event-Handler wie möglich anzuwenden. Er kann automatisch nach häufigen Sicherheitslücken suchen und diese erkennen, darunter Cross-Site-Scripting, Code-Injection, gemischte Inhalte, und veraltete oder unsichere Bibliotheken. Der Web Security Scanner ermöglicht eine frühzeitige Identifizierung solcher Sicherheitslücken, ohne Sie mit falsch positiven Ergebnissen abzulenken.
Wenn Sie GKE zum Verwalten von Flotten von Kubernetes-Clustern verwenden, bietet das Sicherheitsdashboard außerdem zielgerichtete, umsetzbare Empfehlungen zur Verbesserung des Sicherheitsstatus Ihrer Flotte.