In diesem Dokument des Google Cloud-Architektur-Frameworks werden Best Practices für die sichere Bereitstellung von Anwendungen vorgestellt.
Für die Bereitstellung sicherer Anwendungen müssen Sie einen klar definierten Lebenszyklus für die Softwareentwicklung mit entsprechenden Sicherheitsprüfungen während der Design-, Entwicklungs-, Test- und Bereitstellungsphasen haben. Beim Entwerfen von Anwendungen empfehlen wir eine mehrschichtige Systemarchitektur, die standardisierte Frameworks für die Identitäts-, Autorisierungs- und Zugriffssteuerung nutzt.
Sichere Releases automatisieren
Ohne automatisierte Tools kann es schwierig sein, komplexe Anwendungsumgebungen bereitzustellen, zu aktualisieren und zu patchen, um konsistente Sicherheitsanforderungen zu erfüllen. Daher empfehlen wir Ihnen, für diese Aufgaben eine CI/CD-Pipeline zu erstellen, die viele dieser Probleme lösen kann. Automatisierte Pipelines entfernen manuelle Fehler, bieten standardisierte Entwicklungs-Feedbackschleifen und ermöglichen schnelle Produktiterationen. Mit privaten Pools von Cloud Build können Sie beispielsweise eine hochsichere, verwaltete CI/CD-Pipeline für stark regulierte Branchen wie Finanzen und das Gesundheitswesen bereitstellen.
Sie können die Automatisierung nutzen, um beim Erstellen von Artefakten nach Sicherheitslücken zu suchen. Sie können auch Richtlinien für verschiedene Umgebungen (Entwicklung, Test, Produktion usw.) definieren, damit nur verifizierte Artefakte bereitgestellt werden.
Garantieren, dass Anwendungsbereitstellungen genehmigten Prozessen folgen
Wenn ein Angreifer Ihre CI/CD-Pipeline manipuliert, kann sich dies auf Ihren gesamten Stack 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 GKE Enterprise verwenden möchten, können Sie diese Prüfungen und Balancings 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 zuvor abgeschlossen wurde. Sie können die Binärautorisierung beispielsweise für Folgendes verwenden:
- Prüfen Sie, ob eine bestimmte Build-System- oder CI-Pipeline (Container 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.
Vor der Bereitstellung nach bekannten Sicherheitslücken scannen
Es wird empfohlen, automatisierte Tools zu nutzen, die kontinuierlich auf Sicherheitslücken für Container-Images scannen können, bevor Container für die Produktion bereitgestellt werden.
Mit Artefaktanalyse automatisch nach Sicherheitslücken für Container suchen, die in Artifact Registry und Container Registry gespeichert sind. Dieser Vorgang umfasst zwei Aufgaben: Scannen und kontinuierliche Analyse.
Als Erstes scannt Artefaktanalyse neue Images, sobald diese in Artifact Registry oder Container Registry hochgeladen werden. Bei diesem Scan werden Informationen zu den Systempaketen im Container extrahiert.
Artefaktanalyse sucht dann während des Hochladens des Image nach Sicherheitslücken. Nach dem ersten Scan überwacht Artefaktanalyse kontinuierlich die Metadaten gescannter Images in Artifact Registry und Container 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.
Anwendungscode auf bekannte Sicherheitslücken überwachen
Es empfiehlt sich, automatisierte Tools zu verwenden, die Ihren Anwendungscode ständig auf bekannte Sicherheitslücken wie die OWASP Top 10 überwachen. Eine Beschreibung der Google Cloud-Produkte und -Features, 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 Google Kubernetes Engine-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 (XSS), Flash Injection, gemischtem Inhalt (HTTP in HTTPS) und veralteter oder unsicherer Bibliotheken. Der Web Security Scanner ermöglicht Ihnen eine frühzeitige Identifizierung solcher Sicherheitslücken bei nur wenigen falsch positiven Ergebnissen.
Die Bewegung von Daten über Perimeter hinweg steuern
Um die Bewegung von Daten über einen Perimeter zu steuern, können Sie Sicherheitsperimeter für die Ressourcen Ihrer von Google verwalteten Dienste konfigurieren. Mit VPC Service Controls können Sie alle Komponenten und Dienste in Ihrer CI/CD-Pipeline (z. B. Container Registry, Artifact Registry, Artefaktanalyse und Binärautorisierung) innerhalb eines Sicherheitsperimeters platzieren.
Mit VPC Service Controls verringern Sie das Risiko unerlaubten Kopierens oder unbefugten Übertragens von Daten (Daten-Exfiltration) aus von Google verwalteten Diensten. Sie können Sicherheitsperimeter für die Ressourcen Ihrer von Google verwalteten Dienste konfigurieren und die Übertragung von Daten in und aus dem Perimeter steuern. Wenn ein Dienstperimeter erzwungen wird, werden Anfragen, die gegen die Perimeterrichtlinie verstoßen, abgelehnt, darunter Anfragen an geschützte Dienste von außerhalb eines Perimeters. Wenn ein Dienst durch einen erzwungenen Perimeter geschützt ist, garantiert VPC Service Controls Folgendes:
- Ein Dienst kann keine Daten über die Perimetergrenzen hinaus übertragen. Innerhalb des Perimeters funktionieren geschützte Dienste wie gewohnt, es können jedoch keine Ressourcen und Daten außerhalb des Perimeters gesendet werden. Diese Einschränkung verhindert, dass böswillige Insider, die möglicherweise Zugriff auf Projekte innerhalb des Perimeters haben, Daten unbefugt weitergeben.
- Anfragen von außerhalb des Perimeters an den geschützten Dienst werden nur akzeptiert, wenn die Anfragen die Kriterien der Zugriffsebenen erfüllen, die dem Perimeter zugewiesen wurden.
- Ein Dienst kann über Perimeter-Bridges für Projekte in anderen Perimetern zugänglich gemacht werden.
Container-Images verschlüsseln
In Google Cloud können Sie Ihre Container-Images mit kundenverwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEKs) verschlüsseln. CMEK-Schlüssel werden vom Cloud Key Management Service (Cloud KMS) verwaltet. Wenn Sie CMEK verwenden, können Sie den Zugriff auf ein verschlüsseltes Container-Image vorübergehend oder dauerhaft deaktivieren, indem Sie den Schlüssel deaktivieren oder löschen.
Nächste Schritte
Hier erfahren Sie mehr über die Sicherung Ihrer Lieferkette und die Anwendungssicherheit:
- Compliance-Verpflichtungen verwalten (nächstes Dokument in dieser Reihe)
- Operative Exzellenz
- Binärautorisierung
- Artefaktanalyse
- Artifact Registry