Dieses Prinzip in der Sicherheitssäule des Google Cloud Well-Architected Framework bietet Empfehlungen, wie Sie robuste Sicherheitsfunktionen, ‑kontrollen und ‑praktiken in das Design Ihrer Cloud-Anwendungen, ‑Dienste und ‑Plattformen einbinden können. Von der Ideenfindung bis zum Betrieb ist Sicherheit effektiver, wenn sie als integraler Bestandteil jeder Phase Ihres Designprozesses eingebettet ist.
Übersicht über die Prinzipien
Wie in An Overview of Google's Commitment to Secure by Design erläutert, werden standardmäßig sicher und von Grund auf sicher oft synonym verwendet, sie stellen jedoch unterschiedliche Ansätze für die Entwicklung sicherer Systeme dar. Beide Ansätze zielen darauf ab, Sicherheitslücken zu minimieren und die Sicherheit zu erhöhen, unterscheiden sich jedoch in Umfang und Implementierung:
- Standardmäßig sicher: Hierbei wird darauf geachtet, dass die Standardeinstellungen eines Systems auf einen sicheren Modus eingestellt sind. Dadurch müssen Nutzer oder Administratoren weniger Maßnahmen ergreifen, um das System zu schützen. Dieser Ansatz soll allen Nutzern ein grundlegendes Sicherheitsniveau bieten.
- Sicherheit durch Design: Betont die proaktive Einbeziehung von Sicherheitsaspekten während des gesamten Entwicklungszyklus eines Systems. Bei diesem Ansatz geht es darum, potenzielle Bedrohungen und Sicherheitslücken frühzeitig zu erkennen und Designentscheidungen zu treffen, die Risiken minimieren. Dazu gehören sichere Programmierpraktiken, Sicherheitsüberprüfungen und die Einbindung von Sicherheit in den gesamten Designprozess. Der Secure-by-Design-Ansatz ist eine übergreifende Philosophie, die den Entwicklungsprozess leitet und dafür sorgt, dass Sicherheit kein nachträglicher Gedanke, sondern ein integraler Bestandteil des Systemdesigns ist.
Empfehlungen
Wenn Sie das Prinzip „Secure by Design“ für Ihre Cloud-Arbeitslasten implementieren möchten, beachten Sie die Empfehlungen in den folgenden Abschnitten:
- Systemkomponenten auswählen, die zum Schutz Ihrer Arbeitslasten beitragen
- Einen mehrstufigen Sicherheitsansatz entwickeln
- Gehärtete und attestierte Infrastruktur und Dienste verwenden
- Ruhende Daten und Daten bei der Übertragung verschlüsseln
Systemkomponenten auswählen, die zum Schutz Ihrer Arbeitslasten beitragen
Diese Empfehlung ist für alle Schwerpunktbereiche relevant.
Eine grundlegende Entscheidung für effektive Sicherheit ist die Auswahl robuster Systemkomponenten, einschließlich Hardware- und Softwarekomponenten, die Ihre Plattform, Lösung oder Ihren Dienst ausmachen. Um die Angriffsfläche zu verringern und potenzielle Schäden zu begrenzen, müssen Sie auch die Bereitstellungsmuster dieser Komponenten und ihre Konfigurationen sorgfältig berücksichtigen.
Wir empfehlen, in Ihrem Anwendungscode einfache, sichere und zuverlässige Bibliotheken, Abstraktionen und Anwendungs-Frameworks zu verwenden, um Sicherheitslücken zu vermeiden. Wenn Sie nach Sicherheitslücken in Softwarebibliotheken suchen möchten, können Sie Drittanbietertools verwenden. Sie können auch Assured Open Source Software verwenden, um die Risiken für Ihre Softwarelieferkette zu reduzieren. Dazu werden Open-Source-Softwarepakete (OSS) verwendet, die Google verwendet und sichert.
Ihre Infrastruktur muss Netzwerk-, Speicher- und Computing-Optionen verwenden, die einen sicheren Betrieb unterstützen und Ihren Sicherheitsanforderungen und Risikoakzeptanzstufen entsprechen. Infrastruktursicherheit ist sowohl für internetorientierte als auch für interne Arbeitslasten wichtig.
Informationen zu anderen Google-Lösungen, die diese Empfehlung unterstützen, finden Sie unter Shift-Left-Sicherheit implementieren.
Einen mehrstufigen Sicherheitsansatz entwickeln
Diese Empfehlung ist für die folgenden Schwerpunkte relevant:
- KI- und ML-Sicherheit
- Sichere Infrastruktur
- Identitäts- und Zugriffsverwaltung
- Datensicherheit
Wir empfehlen, die Sicherheit auf jeder Ebene Ihrer Anwendung und Ihres Infrastruktur-Stacks zu implementieren, indem Sie ein mehrstufiges Sicherheitskonzept anwenden.
Verwenden Sie die Sicherheitsfunktionen in jeder Komponente Ihrer Plattform. So beschränken Sie den Zugriff und ermitteln die Grenzen der potenziellen Auswirkungen (den Explosionsradius) im Falle eines Sicherheitsvorfalls:
- Vereinfachen Sie das Design Ihres Systems, um nach Möglichkeit Flexibilität zu ermöglichen.
- Dokumentieren Sie die Sicherheitsanforderungen für jede Komponente.
- Integrieren Sie einen robusten Sicherheitsmechanismus, um die Anforderungen an Ausfallsicherheit und Wiederherstellung zu erfüllen.
Führen Sie beim Entwerfen der Sicherheitsebenen eine Risikobewertung durch, um zu ermitteln, welche Sicherheitsfunktionen Sie benötigen, um interne Sicherheitsanforderungen und externe gesetzliche Anforderungen zu erfüllen. Wir empfehlen die Verwendung eines branchenüblichen Frameworks zur Risikobewertung für Cloud-Umgebungen, das die jeweils geltenden gesetzlichen Vorschriften berücksichtigt. Beispielsweise bietet die Cloud Security Alliance (CSA) die Cloud Controls Matrix (CCM). Ihre Risikobewertung liefert Ihnen einen Katalog von Risiken und entsprechenden Sicherheitskontrollen, um diese zu minimieren.
Denken Sie bei der Risikobewertung daran, dass Sie eine Vereinbarung zur gemeinsamen Verantwortung mit Ihrem Cloud-Anbieter haben. Daher unterscheiden sich die Risiken in einer Cloud-Umgebung von den Risiken in einer lokalen Umgebung. In einer lokalen Umgebung müssen Sie beispielsweise Sicherheitslücken im Hardware-Stack minimieren. Im Gegensatz dazu werden diese Risiken in einer Cloud-Umgebung vom Cloud-Anbieter übernommen. Beachten Sie auch, dass sich die Grenzen der gemeinsamen Verantwortung zwischen IaaS-, PaaS- und SaaS-Diensten bei jedem Cloud-Anbieter unterscheiden.
Nachdem Sie potenzielle Risiken identifiziert haben, müssen Sie einen Plan zur Risikominimierung entwerfen und erstellen, der technische, administrative und operative Kontrollen sowie vertragliche Schutzmaßnahmen und Bestätigungen von Drittanbietern umfasst. Darüber hinaus hilft Ihnen eine Methode zur Bedrohungsmodellierung wie die OWASP-Methode zur Bedrohungsmodellierung für Anwendungen, potenzielle Lücken zu identifizieren und Maßnahmen zur Behebung der Lücken vorzuschlagen.
Gehärtete und attestierte Infrastruktur und Dienste verwenden
Diese Empfehlung ist für alle Schwerpunktbereiche relevant.
Ein ausgereiftes Sicherheitsprogramm minimiert neue Sicherheitslücken, wie in Sicherheitsbulletins beschrieben. Das Sicherheitsprogramm sollte auch Abhilfemaßnahmen zur Behebung von Sicherheitslücken in vorhandenen Bereitstellungen und zum Schutz Ihrer VM- und Container-Images bieten. Sie können Härtungsleitfäden verwenden, die für das Betriebssystem und die Anwendung Ihrer Images spezifisch sind, sowie Benchmarks wie die vom Center of Internet Security (CIS) bereitgestellten.
Wenn Sie benutzerdefinierte Images für Ihre Compute Engine-VMs verwenden, müssen Sie die Images selbst patchen. Alternativ können Sie von Google bereitgestellte ausgewählte Betriebssystem-Images verwenden, die regelmäßig gepatcht werden. Verwenden Sie zum Ausführen von Containern auf Compute Engine-VMs von Google zusammengestellte Container-Optimized OS-Images. Google patcht und aktualisiert diese Images regelmäßig.
Wenn Sie die Google Kubernetes Engine (GKE) verwenden, empfehlen wir, automatische Knotenupgrades zu aktivieren, damit Google Ihre Clusterknoten mit den neuesten Patches aktualisiert. Google verwaltet GKE-Steuerungsebenen, die automatisch aktualisiert und gepatcht werden. Wenn Sie die Angriffsfläche Ihrer Container weiter reduzieren möchten, können Sie Distroless-Images verwenden. Distroless-Images sind ideal für sicherheitsrelevante Anwendungen, Mikrodienste und Situationen, in denen die Minimierung der Image-Größe und der Angriffsfläche von entscheidender Bedeutung ist.
Verwenden Sie für sensible Arbeitslasten Shielded VM, um zu verhindern, dass während des VM-Bootvorgangs schädlicher Code geladen wird. Shielded VM-Instanzen bieten Bootsicherheit, überwachen die Integrität und verwenden das Virtual Trusted Platform Module (vTPM).
Um den SSH-Zugriff zu sichern, ermöglicht es OS Login Ihren Mitarbeitern, Verbindungen zu Ihren VMs herzustellen. Dazu verwenden Sie IAM (Identity and Access Management)-Berechtigungen statt SSH-Schlüsseln als „Source of Truth“. Entsprechend müssen Sie SSH-Schlüssel nicht in Ihrer gesamten Organisation verwalten. OS Login verknüpft den Zugriff eines Administrators mit seinem Mitarbeiterlebenszyklus. Wenn Mitarbeiter also die Rolle wechseln oder Ihre Organisation verlassen, wird ihr Zugriff zusammen mit ihrem Konto widerrufen. OS Login unterstützt auch die 2-Faktor-Authentifizierung von Google, die eine zusätzliche Sicherheitsebene bei Kontoübernahmeangriffen bietet.
In GKE werden Anwendungsinstanzen in Docker-Containern ausgeführt. Achten Sie darauf, dass Ihre Container zustandslos und unveränderlich sind, um ein definiertes Risikoprofil zu aktivieren und zu verhindern, dass Mitarbeiter Änderungen an Containern vornehmen. Das Prinzip der Unveränderlichkeit bedeutet, dass Ihre Mitarbeiter den Container nicht ändern oder interaktiv aufrufen. Wenn der Container geändert werden muss, erstellen Sie ein neues Image und stellen es noch einmal bereit. Aktivieren Sie den SSH-Zugriff auf die zugrunde liegenden Container nur in bestimmten Debugging-Szenarien.
Um Konfigurationen in Ihrer Umgebung global zu sichern, können Sie Organisationsrichtlinien verwenden, um Einschränkungen oder Schutzmaßnahmen für Ressourcen festzulegen, die sich auf das Verhalten Ihrer Cloud-Assets auswirken. Sie können beispielsweise die folgenden Organisationsrichtlinien definieren und entweder global auf eine Google Cloud -Organisation oder selektiv auf einen Ordner oder ein Projekt anwenden:
- Zuweisung externer IP-Adressen zu VMs deaktivieren.
- Erstellung von Ressourcen auf bestimmte geografische Standorte beschränken
- Deaktivieren Sie das Erstellen von Dienstkonten oder deren Schlüsseln.
Verschlüsselung von ruhenden Daten und Daten bei der Übertragung
Diese Empfehlung ist für die folgenden Schwerpunkte relevant:
- Sichere Infrastruktur
- Datensicherheit
Die Datenverschlüsselung ist eine grundlegende Maßnahme zum Schutz sensibler Informationen und ein wichtiger Bestandteil der Data Governance. Eine effektive Datenschutzstrategie umfasst die Zugriffssteuerung, die Datensegmentierung und den geografischen Standort, die Prüfung und die Implementierung der Verschlüsselung, die auf einer sorgfältigen Bewertung der Anforderungen basiert.
Standardmäßig Google Cloud verschlüsseltinaktive Kundendaten, ohne dass Sie etwas unternehmen müssen. Zusätzlich zur Standardverschlüsselung bietetGoogle Cloud Optionen für die Umschlagverschlüsselung und die Verwaltung von Verschlüsselungsschlüsseln. Sie müssen die Lösungen ermitteln, die Ihren Anforderungen an die Schlüsselgenerierung, ‑speicherung und ‑rotation am besten entsprechen, unabhängig davon, ob Sie die Schlüssel für Ihre Speicher-, Computing- oder Big-Data-Arbeitslasten auswählen. Beispielsweise können kundenverwaltete Verschlüsselungsschlüssel (CMEKs) im Cloud Key Management Service (Cloud KMS) erstellt werden. Die CMEKs können entweder softwarebasiert oder HSM-geschützt sein, um Ihre gesetzlichen oder Compliance-Anforderungen zu erfüllen, z. B. die Notwendigkeit, Verschlüsselungsschlüssel regelmäßig zu rotieren. Mit Cloud KMS Autokey können Sie die Bereitstellung und Zuweisung von CMEKs automatisieren. Darüber hinaus können Sie mit Cloud External Key Manager (Cloud EKM) eigene Schlüssel aus einem Schlüsselverwaltungssystem eines Drittanbieters verwenden.
Wir empfehlen dringend, Daten während der Übertragung zu verschlüsseln. Google verschlüsselt und authentifiziert Daten bei der Übertragung auf einer oder mehreren Netzwerkschichten, wenn Daten außerhalb der physischen Grenzen übertragen werden, die nicht von Google oder im Auftrag von Google kontrolliert werden. Der gesamte VM-zu-VM-Traffic in einem VPC-Netzwerk und zwischen Peering-VPC-Netzwerken wird verschlüsselt. Sie können MACsec für die Verschlüsselung von Traffic über Cloud Interconnect-Verbindungen verwenden. IPsec bietet Verschlüsselung für Traffic über Cloud VPN-Verbindungen. Sie können den Traffic zwischen Anwendungen in der Cloud mit Sicherheitsfunktionen wie TLS- und mTLS-Konfigurationen in Apigee und Cloud Service Mesh für containerisierte Anwendungen schützen.
Standardmäßig verschlüsselt Google Cloud ruhende Daten und Daten bei der Übertragung über das Netzwerk. Daten werden jedoch nicht standardmäßig verschlüsselt, während sie im Arbeitsspeicher verwendet werden. Wenn Ihre Organisation vertrauliche Daten verarbeitet, müssen Sie alle Bedrohungen minimieren, die die Vertraulichkeit und Integrität der Anwendung oder der Daten im Systemspeicher gefährden. Um diese Bedrohungen zu minimieren, können Sie Confidential Computing verwenden, das eine vertrauenswürdige Ausführungsumgebung für Ihre Compute-Arbeitslasten bietet. Weitere Informationen finden Sie unter Confidential VM – Übersicht.