Dieses Prinzip im Sicherheitsbereich des Google Cloud Well-Architected Framework hilft Ihnen, praktische Kontrollen zu identifizieren, die Sie frühzeitig im Lebenszyklus der Softwareentwicklung implementieren können, um Ihren Sicherheitsstatus zu verbessern. Es bietet Empfehlungen, mit denen Sie präventive Sicherheitsmaßnahmen und Sicherheitskontrollen nach der Bereitstellung implementieren können.
Übersicht über die Grundsätze
Shift-Left-Sicherheit bedeutet, dass Sicherheitsmaßnahmen frühzeitig im Softwareentwicklungszyklus eingeführt werden. Mit diesem Grundsatz werden folgende Ziele verfolgt:
- Sicherheitsmängel vermeiden, bevor Systemänderungen vorgenommen werden Implementieren Sie präventive Sicherheitsleitplanken und führen Sie Praktiken wie Infrastruktur als Code (IaC), Richtlinie als Code und Sicherheitsprüfungen in der CI/CD-Pipeline ein. Sie können auch andere plattformspezifische Funktionen wie den Organisationsrichtliniendienst und abgehärtete GKE-Cluster in Google Cloudverwenden.
- Sicherheitsfehler nach jeder Systemänderung frühzeitig, schnell und zuverlässig erkennen und beheben. Führen Sie Verfahren wie Code Reviews, Scans auf Sicherheitslücken nach der Bereitstellung und Sicherheitstests ein.
Die Prinzipien Implement security by design und „Shift-Left Security“ sind verwandt, unterscheiden sich aber im Umfang. Das Prinzip „Security by 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. Mit Shift-Left-Sicherheit können Sie Implementierungsfehler (Bugs und Fehlkonfigurationen) vermeiden, bevor Änderungen angewendet werden. Außerdem ermöglicht sie schnelle, zuverlässige Korrekturen nach der Bereitstellung.
Empfehlungen
Wenn Sie das Shift-Left-Sicherheitsprinzip 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 Bereitstellung der Anwendung nach bekannten Sicherheitslücken scannen
- Anwendungscode auf bekannte Sicherheitslücken überwachen
Präventive Sicherheitskontrollen einführen
Diese Empfehlung ist für die folgenden Schwerpunktbereiche relevant:
- Identitäts- und Zugriffsverwaltung
- Cloud-Governance, ‑Risiko und ‑Compliance
Präventive Sicherheitskontrollen sind entscheidend, um eine starke Sicherheitslage in der Cloud aufrechtzuerhalten. Mit diesen Funktionen können Sie Risiken proaktiv minimieren. Sie können Fehlkonfigurationen und unbefugten Zugriff auf Ressourcen verhindern, Entwicklern ermöglichen, effizient zu arbeiten, und die Einhaltung von Branchenstandards und internen Richtlinien sicherstellen.
Präventive Sicherheitskontrollen sind effektiver, wenn sie mit Infrastruktur als Code (Infrastructure as Code, IaC) implementiert werden. Mit IaC können präventive Sicherheitskontrollen 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 Funktionen können Ihnen dabei helfen, präventive Kontrollen in Ihrer Umgebung zu implementieren: Google Cloud
- Einschränkungen für den Organisationsrichtliniendienst: Konfigurieren Sie vordefinierte und benutzerdefinierte Einschränkungen mit zentraler Steuerung.
- VPC Service Controls: Erstellen Sie Perimeter für Ihre Google Cloud -Dienste.
- Identity and Access Management (IAM), Privileged Access Manager und Richtlinien für die Zugriffsgrenze von Identitäten: beschränken 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 Nutzer autorisieren, auf der Grundlage ihrer Berechtigungen auf bestimmte Ressourcen zuzugreifen. 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 den folgenden Methoden einschränken:
- Tags mit IAM: Weisen Sie einer Gruppe 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 auswählen.
Bereitstellung und Verwaltung von Cloud-Ressourcen automatisieren
Diese Empfehlung ist für die folgenden Schwerpunktbereiche 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 eine eigenständige Sicherheitspraxis, sondern trägt dazu bei, die Sicherheit Ihrer Plattform zu verbessern. Durch die Einführung von IaC können Sie wiederholbare Infrastruktur erstellen und Ihrem Betriebsteam einen als funktionierend bekannten Zustand zur Verfügung stellen. Außerdem verbessert IaC die Effizienz von Rollbacks, Audit-Änderungen und der Fehlerbehebung.
In Kombination mit CI/CD-Pipelines und Automatisierung ermöglicht IaC auch die Einführung von Praktiken wie Richtlinie als 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, bietetGoogle Cloud den Blueprint zu Unternehmensgrundlagen. Dieser Blueprint ist ein von Google entwickeltes Design, das alle unsere empfohlenen Verfahren 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 Scripts des Enterprise Foundations-Blueprints ändern, um eine Umgebung zu konfigurieren, die den Empfehlungen von Google entspricht und Ihre eigenen Sicherheitsanforderungen erfüllt. Sie können auf diesen Blueprint mit zusätzlichen Blueprints 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. Hier einige Beispiele für diese Blaupausen:
- Entwicklerplattform für Unternehmen auf Google Cloudbereitstellen
- 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 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, 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. Die kontinuierliche Bereitstellung ist eine der Best Practices, die im DORA-Framework empfohlen werden.
Durch die Automatisierung von Anwendungsreleases mithilfe von CI/CD-Pipelines können Sie Sicherheitsfehler frühzeitig, schnell und zuverlässig erkennen und beheben. Sie können beispielsweise automatisch nach Sicherheitslücken suchen, wenn Artefakte erstellt werden, den Umfang von Sicherheitsüberprü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 verifizierte Artefakte bereitgestellt werden.
Um Ihnen zu helfen, Anwendungsreleases zu automatisieren und Sicherheitsprüfungen in Ihre CI/CD-Pipeline einzubetten, bietet Google Cloud mehrere Tools, darunter Cloud Build, Cloud Deploy, Web Security Scanner und Binärautorisierung.
Um einen Prozess zu etablieren, der mehrere Sicherheitsanforderungen in Ihrem SDLC überprüft, verwenden Sie das von Google definierte Framework Supply-chain Levels for Software Artifacts (SLSA). SLSA erfordert Sicherheitsprüfungen für Quellcode, Build-Prozess und Code-Herkunftsbeleg. Viele dieser Anforderungen können in eine automatisierte CI/CD-Pipeline aufgenommen werden. Informationen dazu, wie Google diese Praktiken intern anwendet, finden 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 einen Genehmigungsprozess mithilfe der Binärautorisierung 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, 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 Bereitstellung von Anwendungen nach bekannten Sicherheitslücken scannen
Diese Empfehlung bezieht sich auf den folgenden Fokusbereich: Anwendungssicherheit.
Es wird empfohlen, 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. 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 Artefaktanalyse kontinuierlich die Metadaten gescannter Images in Artifact Registry auf neue Sicherheitslücken. Wenn die Artefaktanalyse neue und aktualisierte Informationen zu Sicherheitslücken aus Sicherheitslückenquellen erhält, 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.
Ü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 – 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. Es kann automatisch nach allgemeinen Sicherheitslücken suchen und diese erkennen, einschließlich Cross-Site-Scripting, Code Injection, gemischter Inhalt und veralteter oder unsicherer Bibliotheken. Der Web Security Scanner ermöglicht Ihnen eine frühzeitige Identifizierung solcher Sicherheitslücken, ohne Sie durch falsch positive Ergebnisse abzulenken.
Wenn Sie GKE Enterprise zum Verwalten von Flotten von Kubernetes-Clustern verwenden, enthält das Sicherheitsstatus-Dashboard außerdem fundierte, umsetzbare Empfehlungen zur Verbesserung des Sicherheitsstatus Ihrer Flotte.