Dieses Prinzip in der Sicherheitssäule des Google Cloud Well-Architected Framework hilft Ihnen, praktische Steuerelemente zu identifizieren, die Sie frühzeitig im Lebenszyklus der Softwareentwicklung implementieren können, um Ihre Sicherheitsposition zu verbessern. Es enthält Empfehlungen, die Ihnen helfen, vorbeugende Sicherheitsmaßnahmen und Sicherheitskontrollen nach der Bereitstellung zu implementieren.
Grundsatzübersicht
Shift-Left-Sicherheit bedeutet, Sicherheitspraktiken frühzeitig im Softwareentwicklungszyklus zu übernehmen. Dieses Prinzip hat folgende Ziele:
- Sicherheitslücken vermeiden, bevor Systemänderungen vorgenommen werden Implementieren Sie präventive Sicherheitsleitplanken und wenden Sie Praktiken wie Infrastruktur als Code (IaC), Richtlinien als Code und Sicherheitsprüfungen in der CI/CD-Pipeline an. Sie können auch andere plattformspezifische Funktionen wie den Organisationsrichtliniendienst und gehärtete GKE-Cluster in Google Cloudverwenden.
- Sicherheitsfehler frühzeitig, schnell und zuverlässig erkennen und beheben, nachdem Systemänderungen vorgenommen wurden. Verwenden Sie Verfahren wie Code Reviews, Sicherheitslückenscans nach der Bereitstellung und Sicherheitstests.
Die Sicherheitsprinzipien Sicherheit durch Design implementieren und „Shift-Left“ sind miteinander verwandt, unterscheiden sich aber hinsichtlich ihres Umfangs. Das Prinzip „Sicherheit durch Design“ hilft Ihnen, grundlegende Designfehler zu vermeiden, die eine Neuarchitektur des gesamten Systems erfordern würden. Eine Übung zum Bedrohungsmodellieren zeigt beispielsweise, dass das aktuelle Design keine Autorisierungsrichtlinie enthält und alle Nutzer ohne diese Richtlinie dieselbe Zugriffsebene hätten. Mit der Shift-Left-Sicherheit können Sie Implementierungsfehler (Fehler und Fehlkonfigurationen) vermeiden, bevor Änderungen angewendet werden, und nach der Bereitstellung schnelle, zuverlässige Fehlerkorrekturen vornehmen.
Empfehlungen
Wenn Sie das Prinzip „Shift-Left Security“ für Ihre Cloud-Arbeitslasten implementieren möchten, beachten Sie die Empfehlungen in den folgenden Abschnitten:
- Präventive Sicherheitsmaßnahmen ergreifen
- Bereitstellung und Verwaltung von Cloud-Ressourcen automatisieren
- Sichere Anwendungsreleases automatisieren
- Achten Sie darauf, dass beim Bereitstellen von Anwendungen genehmigte Prozesse eingehalten werden.
- Vor der Anwendungsbereitstellung nach bekannten Sicherheitslücken scannen
- Überwachen Sie den Anwendungscode hinsichtlich bekannter Sicherheitslücken.
Vorbeugende Sicherheitsmaßnahmen ergreifen
Diese Empfehlung ist für die folgenden Fokusbereiche relevant:
- Identitäts- und Zugriffsverwaltung
- Cloud-Governance, -Risiken und -Compliance
Präventive Sicherheitsmaßnahmen sind entscheidend für eine starke Sicherheitsposition in der Cloud. Mit diesen Steuerelementen können Sie Risiken proaktiv minimieren. So können Sie Fehlkonfigurationen und unbefugten Zugriff auf Ressourcen verhindern, Entwicklern effizientes Arbeiten ermöglichen und die Einhaltung von Branchenstandards und internen Richtlinien unterstützen.
Präventive Sicherheitskontrollen sind effektiver, wenn sie mithilfe von Infrastructure as Code (IaC) implementiert werden. Bei IaC können präventive Sicherheitsmaßnahmen benutzerdefiniertere Prüfungen des Infrastrukturcodes vor der Bereitstellung von Änderungen umfassen. In Kombination mit 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 dabei helfen, vorbeugende Maßnahmen in Ihrer Umgebung zu implementieren:
- Einschränkungen des Organisationsrichtliniendiensts: Sie können vordefinierte und benutzerdefinierte Einschränkungen mit zentraler Steuerung konfigurieren.
- VPC Service Controls: Mit dieser Funktion können Sie Perimeter um Ihre Google Cloud Dienste erstellen.
- Identity and Access Management (IAM), Privileged Access Manager und Richtlinien für die Zugriffsgrenze des Hauptzugriffs: Beschränken den Zugriff auf Ressourcen.
- Policy Controller und Open Policy Agent (OPA): Mit diesen Tools können Sie IaC-Einschränkungen in Ihrer CI/CD-Pipeline erzwingen und Fehlkonfigurationen in der Cloud vermeiden.
Mit IAM können Sie autorisieren, wer auf der Grundlage von Berechtigungen Aktionen für bestimmte Ressourcen ausführen darf. Weitere Informationen finden Sie unter Zugriffssteuerung für Organisationsressourcen mit IAM.
Mit dem Organisationsrichtliniendienst können Sie Einschränkungen für Ressourcen festlegen, um anzugeben, wie diese konfiguriert werden können. Mit einer Organisationsrichtlinie können Sie beispielsweise Folgendes tun:
- 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 einer der folgenden Methoden einschränken:
- Tags mit IAM: Sie weisen einer Gruppe von Ressourcen ein Tag zu und legen dann die Zugriffsdefinition für das Tag selbst fest, anstatt die Zugriffsberechtigungen für jede Ressource zu definieren.
- IAM-Bedingungen: Mit dieser Funktion können Sie eine bedingte, attributbasierte Zugriffssteuerung für Ressourcen definieren.
- Gestaffelte Sicherheitsebenen: Mit VPC Service Controls können Sie den Zugriff auf Ressourcen weiter einschränken.
Weitere Informationen zur Ressourcenverwaltung finden Sie unter Ressourcenhierarchie für Ihre Google Cloud Landing-Zone auswählen.
Bereitstellung und Verwaltung von Cloud-Ressourcen automatisieren
Diese Empfehlung ist für die folgenden Fokusbereiche relevant:
- Anwendungssicherheit
- Cloud-Governance, -Risiken und -Compliance
Die Automatisierung der Bereitstellung und Verwaltung von Cloud-Ressourcen und ‑Arbeitslasten ist effektiver, wenn Sie deklarative IaC anstelle imperativer Scripts verwenden. IaC ist kein Sicherheitstool oder -verfahren, sondern hilft Ihnen, die Sicherheit Ihrer Plattform zu verbessern. Wenn Sie IaC verwenden, können Sie eine wiederholbare Infrastruktur erstellen und Ihrem Betriebsteam einen als fehlerfrei bekannten Zustand zur Verfügung stellen. IaC verbessert auch die Effizienz von Rollbacks, Änderungen bei der Prüfung und Fehlerbehebung.
In Kombination mit CI/CD-Pipelines und Automatisierung können Sie mit IaC auch Praktiken wie Richtlinien als Code mit Tools wie OPA anwenden. 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, bietetGoogle Cloud den Blueprint zu Unternehmensgrundlagen. Dieser Blueprint ist das von Google empfohlene Design, das allen unseren Best Practices und Konfigurationen entspricht. Der Blueprint enthält eine detaillierte Anleitung zum Konfigurieren und Bereitstellen Ihrer Google Cloud -Topologie mit Terraform und Cloud Build.
Sie können die Scripts des Blueprints zu Unternehmensgrundlagen ändern, um eine Umgebung zu konfigurieren, die den Empfehlungen von Google entspricht und Ihre eigenen Sicherheitsanforderungen erfüllt. Sie können mit zusätzlichen Blueprints auf dem Blueprint aufbauen oder Ihre eigene Automatisierung entwerfen. DasGoogle Cloud Architecture Center bietet weitere Blueprints, die zusätzlich zum Blueprint für Unternehmensgrundlagen implementiert werden können. Im Folgenden finden Sie einige Beispiele für diese Blueprints:
- Entwicklerplattform für Unternehmen in Google Cloud bereitstellen
- 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
- Netzwerk-Monitoring- und Telemetriefunktionen in Google Cloud bereitstellen
Sichere Anwendungsreleases automatisieren
Diese Empfehlung bezieht sich auf den folgenden Fokusbereich: Anwendungssicherheit.
Ohne automatisierte Tools kann es schwierig sein, komplexe Anwendungsumgebungen bereitzustellen, zu aktualisieren und zu patchen, um konsistente Sicherheitsanforderungen zu erfüllen. Wir empfehlen Ihnen, automatisierte CI/CD-Pipelines für Ihren Softwareentwicklungslebenszyklus (Software Development Life Cycle, SDLC) zu erstellen. Automatisierte CI/CD-Pipelines helfen Ihnen, manuelle Fehler zu beseitigen, standardisierte Entwicklungs-Feedbackschleifen bereitzustellen und effiziente Produktiterationen zu ermöglichen. Die kontinuierliche Bereitstellung ist eine der Best Practices, die im DORA-Framework empfohlen werden.
Wenn Sie Anwendungsveröffentlichungen mithilfe von CI/CD-Pipelines automatisieren, können Sie Sicherheitslücken frühzeitig, schnell und zuverlässig erkennen und beheben. So können Sie beispielsweise beim Erstellen von Artefakten automatisch nach Sicherheitslücken suchen, den Umfang der Sicherheitsüberprüfungen eingrenzen 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 verifizierte Artefakte bereitgestellt werden.
Um die Bereitstellung von Anwendungen zu automatisieren und Sicherheitsprüfungen in Ihre CI/CD-Pipeline einzubetten, bietet Google Cloud verschiedene Tools wie Cloud Build, Cloud Deploy, Web Security Scanner und Binary Authorization.
Verwenden Sie das von Google definierte Framework Supply-chain Levels for Software Artifacts (SLSA), um einen Prozess einzurichten, mit dem mehrere Sicherheitsanforderungen in Ihrem SDLC überprüft werden. SLSA erfordert Sicherheitsprüfungen für Quellcode, Build-Prozess und Codeherkunft. Viele dieser Anforderungen können in eine automatisierte CI/CD-Pipeline aufgenommen werden. Wie Google diese Praktiken intern umsetzt, erfahren Sie unter Herangehensweise vonGoogle Cloudan Veränderungen.
Sorgen Sie dafür, dass beim Bereitstellen von Anwendungen genehmigte Prozesse eingehalten werden.
Diese Empfehlung bezieht sich auf den folgenden Fokusbereich: Anwendungssicherheit.
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), GKE Enterprise oder Cloud Run verwenden, können Sie mithilfe 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. Beim Deployment 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 (Continuous Integration) 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 auf Ihren Zielplattformen nur vertrauenswürdiger Code ausgeführt wird.
Vor der Anwendungsbereitstellung nach bekannten Sicherheitslücken scannen
Diese Empfehlung bezieht sich auf den folgenden Fokusbereich: Anwendungssicherheit.
Wir empfehlen, automatisierte Tools zu nutzen, 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 Sicherheitslückenscans für Container-Images auszuführen. 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 Artefaktanalyse kontinuierlich die Metadaten gescannter Images in Artifact Registry auf neue Sicherheitslücken. Wenn Artefaktanalyse neue und aktualisierte Informationen zu Sicherheitslücken aus den entsprechenden Quellen erhält, führt es 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.
Überwachen Sie den Anwendungscode hinsichtlich bekannter Sicherheitslücken.
Diese Empfehlung bezieht sich auf den folgenden Fokusbereich: Anwendungssicherheit.
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-Abhilfemaßnahmen 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 allgemeinen Sicherheitslücken suchen und diese erkennen, einschließlich Cross-Site-Scripting, Code Injection, gemischten Inhalten und veralteter oder unsicherer Bibliotheken. Der Web Security Scanner ermöglicht eine frühzeitige Identifizierung solcher Sicherheitslücken, ohne dass Sie von falsch positiven Ergebnissen abgelenkt werden.
Wenn Sie GKE Enterprise zum Verwalten von Flotten von Kubernetes-Clustern verwenden, enthält das Dashboard für den Sicherheitsstatus außerdem fundierte, umsetzbare Empfehlungen zur Verbesserung des Sicherheitsstatus Ihrer Flotte.